@lucca-front/ng 16.3.1-rc.2 → 16.4.0-rc.1
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/api/select/feeder/api-feeder.component.d.ts +2 -2
- package/api/select/feeder/api-feeder.model.d.ts +2 -2
- package/api/select/input/api-select-input.component.d.ts +1 -1
- package/api/select/pager/api-pager.component.d.ts +1 -1
- package/api/select/pager/api-pager.model.d.ts +3 -3
- package/api/select/searcher/api-searcher.component.d.ts +2 -2
- package/api/select/searcher/api-searcher.model.d.ts +2 -2
- package/api/service/api-hybrid.service.d.ts +5 -5
- package/api/service/api-service.model.d.ts +8 -8
- package/api/service/api-v3.service.d.ts +7 -7
- package/api/service/api-v4.service.d.ts +7 -7
- package/callout/callout.component.d.ts +2 -1
- package/core/public-api.d.ts +1 -0
- package/core/tools/ng-clazz.directive.d.ts +6 -0
- package/{simple-select/option → core-select/displayer}/displayer.directive.d.ts +2 -2
- package/core-select/displayer/index.d.ts +1 -0
- package/core-select/index.d.ts +5 -0
- package/core-select/input/index.d.ts +2 -0
- package/core-select/input/select-input.component.d.ts +59 -0
- package/{simple-select → core-select}/option/index.d.ts +2 -1
- package/{simple-select → core-select}/option/option.component.d.ts +2 -1
- package/{simple-select → core-select}/option/option.directive.d.ts +2 -2
- package/core-select/panel/index.d.ts +1 -0
- package/{simple-select → core-select}/panel/panel.models.d.ts +4 -4
- package/core-select/public-api.d.ts +5 -0
- package/core-select/select.model.d.ts +7 -0
- package/department/select/feeder/department-feeder.component.d.ts +2 -2
- package/department/select/input/department-select-input.component.d.ts +2 -2
- package/department/service/department-v3.service.d.ts +2 -2
- package/esm2022/api/select/feeder/api-feeder.component.mjs +1 -1
- package/esm2022/api/select/feeder/api-feeder.model.mjs +1 -1
- package/esm2022/api/select/input/api-select-input.component.mjs +3 -3
- package/esm2022/api/select/pager/api-pager.component.mjs +1 -1
- package/esm2022/api/select/pager/api-pager.model.mjs +1 -1
- package/esm2022/api/select/searcher/api-searcher.component.mjs +1 -1
- package/esm2022/api/select/searcher/api-searcher.model.mjs +1 -1
- package/esm2022/api/service/api-hybrid.service.mjs +1 -1
- package/esm2022/api/service/api-service.model.mjs +1 -1
- package/esm2022/api/service/api-v3.service.mjs +1 -1
- package/esm2022/api/service/api-v4.service.mjs +1 -1
- package/esm2022/callout/callout.component.mjs +3 -3
- package/esm2022/core/public-api.mjs +2 -1
- package/esm2022/core/tools/ng-clazz.directive.mjs +18 -0
- package/esm2022/{simple-select/option → core-select/displayer}/displayer.directive.mjs +1 -1
- package/esm2022/core-select/displayer/index.mjs +2 -0
- package/esm2022/core-select/input/index.mjs +3 -0
- package/esm2022/core-select/input/select-input.component.mjs +203 -0
- package/esm2022/core-select/input/select-input.models.mjs +60 -0
- package/esm2022/core-select/lucca-front-ng-core-select.mjs +5 -0
- package/esm2022/{simple-select → core-select}/option/default-option.component.mjs +1 -1
- package/esm2022/core-select/option/disabled.directive.mjs +27 -0
- package/esm2022/core-select/option/index.mjs +7 -0
- package/esm2022/core-select/option/option-outlet.directive.mjs +71 -0
- package/esm2022/core-select/option/option.component.mjs +81 -0
- package/esm2022/core-select/option/option.directive.mjs +27 -0
- package/esm2022/core-select/option/option.token.mjs +22 -0
- package/esm2022/core-select/panel/index.mjs +2 -0
- package/esm2022/core-select/panel/panel.models.mjs +23 -0
- package/esm2022/core-select/public-api.mjs +6 -0
- package/esm2022/core-select/select.model.mjs +5 -0
- package/esm2022/date/input/date-input.translate.mjs +21 -21
- package/esm2022/date/select/date-select-input.component.mjs +3 -3
- package/esm2022/date/select/date-select-input.translate.mjs +16 -16
- package/esm2022/department/select/feeder/department-feeder.component.mjs +1 -1
- package/esm2022/department/select/input/department-select-input.component.mjs +3 -3
- package/esm2022/department/service/department-v3.service.mjs +1 -1
- package/esm2022/establishment/select/input/establishment-select-input.component.mjs +3 -3
- package/esm2022/establishment/select/legal-unit-selector/legal-unit-selector.directive.mjs +1 -1
- package/esm2022/establishment/select/searcher/establishment-searcher.component.mjs +1 -1
- package/esm2022/establishment/select/select-all/establishment-select-all.component.mjs +1 -1
- package/esm2022/establishment/service/establishment.service.mjs +1 -1
- package/esm2022/establishment/service/legal-unit.service.mjs +1 -1
- package/esm2022/form-field/form-field-size.mjs +2 -0
- package/esm2022/form-field/form-field.component.mjs +116 -0
- package/esm2022/form-field/input.directive.mjs +22 -0
- package/esm2022/form-field/lucca-front-ng-form-field.mjs +5 -0
- package/esm2022/form-field/public-api.mjs +4 -0
- package/esm2022/formly/types/api.mjs +1 -1
- package/esm2022/forms/abstract-field-component.mjs +25 -0
- package/esm2022/forms/checkboxfield/checkboxfield.component.mjs +41 -0
- package/esm2022/forms/form-field-id.directive.mjs +53 -0
- package/esm2022/forms/inject-ng-control.mjs +25 -0
- package/esm2022/forms/lucca-front-ng-forms.mjs +5 -0
- package/esm2022/forms/noop-value-accessor.directive.mjs +36 -0
- package/esm2022/forms/public-api.mjs +8 -0
- package/esm2022/forms/switchfield/switchfield.component.mjs +40 -0
- package/esm2022/forms/textfield/textfield-addon.mjs +2 -0
- package/esm2022/forms/textfield/textfield.component.mjs +73 -0
- package/esm2022/forms/textfield/textfield.translate.mjs +13 -0
- package/esm2022/icon/icon.component.mjs +27 -0
- package/esm2022/icon/lucca-front-ng-icon.mjs +5 -0
- package/esm2022/icon/public-api.mjs +2 -0
- package/esm2022/inline-message/inline-message-state.mjs +2 -0
- package/esm2022/inline-message/inline-message.component.mjs +15 -4
- package/esm2022/inline-message/public-api.mjs +2 -1
- package/esm2022/input/displayer/input-displayer.directive.mjs +1 -1
- package/esm2022/input/displayer/input-displayer.model.mjs +1 -1
- package/esm2022/multi-select/displayer/default-displayer.component.mjs +155 -0
- package/esm2022/multi-select/displayer/default-displayer.translate.mjs +32 -0
- package/esm2022/multi-select/displayer/displayer.directive.mjs +27 -0
- package/esm2022/multi-select/displayer/index.mjs +3 -0
- package/esm2022/multi-select/input/index.mjs +2 -0
- package/esm2022/multi-select/input/panel-ref.factory.mjs +121 -0
- package/esm2022/multi-select/input/panel.model.mjs +13 -0
- package/esm2022/multi-select/input/select-input.component.mjs +106 -0
- package/esm2022/multi-select/lucca-front-ng-multi-select.mjs +5 -0
- package/esm2022/multi-select/panel/index.mjs +2 -0
- package/esm2022/multi-select/panel/option-selected.pipe.mjs +18 -0
- package/esm2022/multi-select/panel/panel.component.mjs +146 -0
- package/esm2022/multi-select/panel/selected-chip.directive.mjs +27 -0
- package/esm2022/multi-select/public-api.mjs +4 -0
- package/esm2022/multi-select/select.model.mjs +3 -0
- package/esm2022/multi-select/select.translate.mjs +62 -0
- package/esm2022/option/item/option-item.component.mjs +3 -3
- package/esm2022/option/item/tree-option-item.component.mjs +3 -3
- package/esm2022/option/operator/feeder/option-feeder.component.mjs +1 -1
- package/esm2022/option/operator/for-options/for-options.directive.mjs +1 -1
- package/esm2022/option/operator/option-operator.model.mjs +1 -1
- package/esm2022/option/operator/pager/tree-option-pager.component.mjs +1 -1
- package/esm2022/option/picker/option-picker-advanced.component.mjs +1 -1
- package/esm2022/option/picker/option-picker.model.mjs +1 -1
- package/esm2022/option/picker/tree-option-picker-advanced.component.mjs +1 -1
- package/esm2022/option/picker/tree-option-picker.component.mjs +1 -1
- package/esm2022/option/selector/all/select-all.component.mjs +1 -1
- package/esm2022/option/selector/all/tree-select-all.component.mjs +1 -1
- package/esm2022/option/selector/option-selector.model.mjs +1 -1
- package/esm2022/picker/input-picker.model.mjs +1 -1
- package/esm2022/popover/panel/popover-panel.model.mjs +1 -1
- package/esm2022/qualification/select/input/qualification-select-input.component.mjs +3 -3
- package/esm2022/select/input/select-input.component.mjs +2 -2
- package/esm2022/select/input/select-input.model.mjs +1 -1
- package/esm2022/simple-select/api/api-v3.directive.mjs +3 -3
- package/esm2022/simple-select/api/api-v4.directive.mjs +3 -3
- package/esm2022/simple-select/api/api.directive.mjs +3 -3
- package/esm2022/simple-select/input/panel-ref.factory.mjs +5 -4
- package/esm2022/simple-select/input/select-input.component.mjs +26 -189
- package/esm2022/simple-select/panel/index.mjs +1 -2
- package/esm2022/simple-select/panel/panel.component.mjs +6 -7
- package/esm2022/simple-select/public-api.mjs +1 -2
- package/esm2022/simple-select/select.model.mjs +2 -5
- package/esm2022/user/select/homonyms/user-homonyms.service.mjs +1 -1
- package/esm2022/user/select/input/user-select-input.component.mjs +3 -3
- package/esm2022/user/select/me/me-option.directive.mjs +1 -1
- package/esm2022/user/select/searcher/user-searcher.component.mjs +1 -1
- package/esm2022/user/service/user-v3.service.mjs +1 -1
- package/establishment/select/input/establishment-select-input.component.d.ts +2 -2
- package/establishment/select/legal-unit-selector/legal-unit-selector.directive.d.ts +2 -2
- package/establishment/select/searcher/establishment-searcher.component.d.ts +2 -2
- package/establishment/select/select-all/establishment-select-all.component.d.ts +2 -2
- package/establishment/service/establishment.service.d.ts +4 -4
- package/establishment/service/legal-unit.service.d.ts +4 -4
- package/fesm2022/lucca-front-ng-api.mjs +2 -2
- package/fesm2022/lucca-front-ng-api.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-callout.mjs +2 -2
- package/fesm2022/lucca-front-ng-callout.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-core-select.mjs +537 -0
- package/fesm2022/lucca-front-ng-core-select.mjs.map +1 -0
- package/fesm2022/lucca-front-ng-core.mjs +17 -3
- package/fesm2022/lucca-front-ng-core.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-date.mjs +37 -37
- package/fesm2022/lucca-front-ng-date.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-department.mjs +2 -2
- package/fesm2022/lucca-front-ng-department.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-establishment.mjs +2 -2
- package/fesm2022/lucca-front-ng-establishment.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-form-field.mjs +140 -0
- package/fesm2022/lucca-front-ng-form-field.mjs.map +1 -0
- package/fesm2022/lucca-front-ng-formly.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-forms.mjs +271 -0
- package/fesm2022/lucca-front-ng-forms.mjs.map +1 -0
- package/fesm2022/lucca-front-ng-icon.mjs +33 -0
- package/fesm2022/lucca-front-ng-icon.mjs.map +1 -0
- package/fesm2022/lucca-front-ng-inline-message.mjs +14 -3
- package/fesm2022/lucca-front-ng-inline-message.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-input.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-multi-select.mjs +669 -0
- package/fesm2022/lucca-front-ng-multi-select.mjs.map +1 -0
- package/fesm2022/lucca-front-ng-option.mjs +4 -4
- package/fesm2022/lucca-front-ng-option.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-picker.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-popover.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-qualification.mjs +2 -2
- package/fesm2022/lucca-front-ng-qualification.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-select.mjs +2 -2
- package/fesm2022/lucca-front-ng-select.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-simple-select-api.mjs +6 -6
- package/fesm2022/lucca-front-ng-simple-select-api.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-simple-select.mjs +34 -517
- package/fesm2022/lucca-front-ng-simple-select.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-user.mjs +2 -2
- package/fesm2022/lucca-front-ng-user.mjs.map +1 -1
- package/form-field/form-field-size.d.ts +1 -0
- package/form-field/form-field.component.d.ts +39 -0
- package/form-field/index.d.ts +5 -0
- package/form-field/input.directive.d.ts +8 -0
- package/form-field/public-api.d.ts +3 -0
- package/formly/types/api.d.ts +1 -1
- package/forms/abstract-field-component.d.ts +8 -0
- package/forms/checkboxfield/checkboxfield.component.d.ts +18 -0
- package/forms/form-field-id.directive.d.ts +13 -0
- package/forms/index.d.ts +5 -0
- package/forms/inject-ng-control.d.ts +2 -0
- package/forms/noop-value-accessor.directive.d.ts +9 -0
- package/forms/public-api.d.ts +7 -0
- package/forms/switchfield/switchfield.component.d.ts +18 -0
- package/forms/textfield/textfield-addon.d.ts +10 -0
- package/forms/textfield/textfield.component.d.ts +35 -0
- package/forms/textfield/textfield.translate.d.ts +7 -0
- package/icon/icon.component.d.ts +10 -0
- package/icon/index.d.ts +5 -0
- package/icon/public-api.d.ts +1 -0
- package/inline-message/inline-message-state.d.ts +1 -0
- package/inline-message/inline-message.component.d.ts +8 -3
- package/inline-message/public-api.d.ts +1 -0
- package/input/displayer/input-displayer.directive.d.ts +3 -3
- package/input/displayer/input-displayer.model.d.ts +2 -2
- package/multi-select/displayer/default-displayer.component.d.ts +32 -0
- package/multi-select/displayer/default-displayer.translate.d.ts +9 -0
- package/multi-select/displayer/displayer.directive.d.ts +12 -0
- package/multi-select/displayer/index.d.ts +2 -0
- package/multi-select/index.d.ts +5 -0
- package/multi-select/input/index.d.ts +1 -0
- package/multi-select/input/panel-ref.factory.d.ts +22 -0
- package/multi-select/input/panel.model.d.ts +11 -0
- package/multi-select/input/select-input.component.d.ts +26 -0
- package/multi-select/panel/index.d.ts +1 -0
- package/multi-select/panel/option-selected.pipe.d.ts +7 -0
- package/multi-select/panel/panel.component.d.ts +40 -0
- package/multi-select/panel/selected-chip.directive.d.ts +10 -0
- package/multi-select/public-api.d.ts +3 -0
- package/multi-select/select.model.d.ts +15 -0
- package/multi-select/select.translate.d.ts +15 -0
- package/option/operator/feeder/option-feeder.component.d.ts +2 -2
- package/option/operator/for-options/for-options.directive.d.ts +1 -1
- package/option/operator/option-operator.model.d.ts +2 -2
- package/option/operator/pager/tree-option-pager.component.d.ts +2 -2
- package/option/picker/option-picker-advanced.component.d.ts +1 -1
- package/option/picker/option-picker.model.d.ts +5 -5
- package/option/picker/tree-option-picker-advanced.component.d.ts +1 -1
- package/option/picker/tree-option-picker.component.d.ts +2 -2
- package/option/selector/all/select-all.component.d.ts +1 -1
- package/option/selector/all/tree-select-all.component.d.ts +3 -3
- package/option/selector/option-selector.model.d.ts +4 -4
- package/package.json +49 -19
- package/picker/input-picker.model.d.ts +4 -4
- package/popover/panel/popover-panel.model.d.ts +3 -3
- package/qualification/select/input/qualification-select-input.component.d.ts +1 -1
- package/schematics/lib/scss-ast.js +4 -4
- package/select/input/select-input.model.d.ts +8 -8
- package/simple-select/api/api-v3.directive.d.ts +1 -1
- package/simple-select/api/api-v4.directive.d.ts +1 -1
- package/simple-select/api/api.directive.d.ts +2 -2
- package/simple-select/input/panel-ref.factory.d.ts +3 -3
- package/simple-select/input/select-input.component.d.ts +5 -51
- package/simple-select/panel/index.d.ts +0 -1
- package/simple-select/panel/panel.component.d.ts +6 -7
- package/simple-select/public-api.d.ts +0 -1
- package/simple-select/select.model.d.ts +4 -9
- package/src/components/_popup.scss +1 -8
- package/src/definitions/option/_option-item.scss +5 -1
- package/src/definitions/select/_select-input.scss +18 -17
- package/user/select/input/user-select-input.component.d.ts +2 -2
- package/user/select/me/me-option.directive.d.ts +2 -2
- package/user/select/searcher/user-searcher.component.d.ts +2 -2
- package/user/service/user-v3.service.d.ts +2 -2
- package/esm2022/simple-select/input/select-input.models.mjs +0 -60
- package/esm2022/simple-select/option/disabled.directive.mjs +0 -27
- package/esm2022/simple-select/option/index.mjs +0 -6
- package/esm2022/simple-select/option/option-outlet.directive.mjs +0 -71
- package/esm2022/simple-select/option/option.component.mjs +0 -78
- package/esm2022/simple-select/option/option.directive.mjs +0 -27
- package/esm2022/simple-select/option/option.token.mjs +0 -22
- package/esm2022/simple-select/panel/panel.models.mjs +0 -23
- /package/{simple-select → core-select}/input/select-input.models.d.ts +0 -0
- /package/{simple-select → core-select}/option/default-option.component.d.ts +0 -0
- /package/{simple-select → core-select}/option/disabled.directive.d.ts +0 -0
- /package/{simple-select → core-select}/option/option-outlet.directive.d.ts +0 -0
- /package/{simple-select → core-select}/option/option.token.d.ts +0 -0
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
import { Overlay, OverlayPositionBuilder, ScrollStrategyOptions } from '@angular/cdk/overlay';
|
|
2
|
+
import { ComponentPortal } from '@angular/cdk/portal';
|
|
3
|
+
import { ChangeDetectorRef, ElementRef, inject, Injectable, Injector } from '@angular/core';
|
|
4
|
+
import { takeUntil } from 'rxjs';
|
|
5
|
+
import { LuMultiSelectPanelComponent } from '../panel';
|
|
6
|
+
import { MULTI_SELECT_PANEL_DATA } from '../select.model';
|
|
7
|
+
import { LuMultiSelectPanelRef } from './panel.model';
|
|
8
|
+
import * as i0 from "@angular/core";
|
|
9
|
+
class MultiSelectPanelRef extends LuMultiSelectPanelRef {
|
|
10
|
+
constructor(overlayRef, parentInjector, panelData, defaultPositionStrategy, expandedPositionStrategy) {
|
|
11
|
+
super();
|
|
12
|
+
this.overlayRef = overlayRef;
|
|
13
|
+
this.defaultPositionStrategy = defaultPositionStrategy;
|
|
14
|
+
this.expandedPositionStrategy = expandedPositionStrategy;
|
|
15
|
+
const injector = Injector.create({
|
|
16
|
+
providers: [
|
|
17
|
+
{ provide: LuMultiSelectPanelRef, useValue: this },
|
|
18
|
+
{ provide: MULTI_SELECT_PANEL_DATA, useValue: panelData },
|
|
19
|
+
],
|
|
20
|
+
parent: parentInjector,
|
|
21
|
+
});
|
|
22
|
+
this.portalRef = new ComponentPortal(LuMultiSelectPanelComponent, undefined, injector);
|
|
23
|
+
this.panelRef = overlayRef.attach(this.portalRef);
|
|
24
|
+
this.instance = this.panelRef.instance;
|
|
25
|
+
overlayRef
|
|
26
|
+
.backdropClick()
|
|
27
|
+
.pipe(takeUntil(this.closed))
|
|
28
|
+
.subscribe(() => this.close());
|
|
29
|
+
}
|
|
30
|
+
emitValue(value) {
|
|
31
|
+
this.valueChanged.emit(value);
|
|
32
|
+
}
|
|
33
|
+
updateSelectedOptions(selectedOptions) {
|
|
34
|
+
this.instance.selectedOptions = selectedOptions;
|
|
35
|
+
// Run change detection on the panel component
|
|
36
|
+
this.panelRef.injector.get(ChangeDetectorRef).markForCheck();
|
|
37
|
+
}
|
|
38
|
+
useExpandedPosition() {
|
|
39
|
+
this.overlayRef.updatePositionStrategy(this.expandedPositionStrategy);
|
|
40
|
+
}
|
|
41
|
+
useDefaultPosition() {
|
|
42
|
+
this.overlayRef.updatePositionStrategy(this.defaultPositionStrategy);
|
|
43
|
+
}
|
|
44
|
+
close() {
|
|
45
|
+
super.close();
|
|
46
|
+
this.panelRef.destroy();
|
|
47
|
+
this.overlayRef.detach();
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
class LuMultiSelectPanelRefFactory {
|
|
51
|
+
constructor() {
|
|
52
|
+
this.overlay = inject(Overlay);
|
|
53
|
+
this.elementRef = inject(ElementRef);
|
|
54
|
+
this.positionBuilder = inject(OverlayPositionBuilder);
|
|
55
|
+
this.scrollStrategies = inject(ScrollStrategyOptions);
|
|
56
|
+
this.parentInjector = inject(Injector);
|
|
57
|
+
}
|
|
58
|
+
buildPanelRef(panelData, defaultOverlayConfigOverride = {}, expandedPositionStrategy) {
|
|
59
|
+
const defaultOverlayConfig = this.buildDefaultOverlayConfig(defaultOverlayConfigOverride);
|
|
60
|
+
expandedPositionStrategy ??= this.buildExpandedPositionStrategy();
|
|
61
|
+
const overlayRef = this.overlay.create(defaultOverlayConfig);
|
|
62
|
+
overlayRef.hostElement.style.transitionProperty = 'height';
|
|
63
|
+
overlayRef.hostElement.style.transitionDuration = 'var(--commons-animations-durations-standard)';
|
|
64
|
+
return new MultiSelectPanelRef(overlayRef, this.parentInjector, panelData, defaultOverlayConfig.positionStrategy, expandedPositionStrategy);
|
|
65
|
+
}
|
|
66
|
+
buildDefaultOverlayConfig(overlayConfigOverride = {}) {
|
|
67
|
+
const overlayConfig = { ...overlayConfigOverride };
|
|
68
|
+
const config = { overlapInput: false, offsetY: 2 };
|
|
69
|
+
overlayConfig.positionStrategy = this.positionBuilder
|
|
70
|
+
.flexibleConnectedTo(this.elementRef)
|
|
71
|
+
.withViewportMargin(10)
|
|
72
|
+
.withPositions([
|
|
73
|
+
this.buildPosition('bottom', 'right', config),
|
|
74
|
+
this.buildPosition('bottom', 'left', config),
|
|
75
|
+
this.buildPosition('top', 'right', config),
|
|
76
|
+
this.buildPosition('top', 'left', config),
|
|
77
|
+
]);
|
|
78
|
+
overlayConfig.scrollStrategy = this.scrollStrategies.reposition();
|
|
79
|
+
overlayConfig.minWidth = this.elementRef.nativeElement.clientWidth;
|
|
80
|
+
overlayConfig.maxWidth = '100vw';
|
|
81
|
+
return overlayConfig;
|
|
82
|
+
}
|
|
83
|
+
buildExpandedPositionStrategy() {
|
|
84
|
+
const config = { overlapInput: true, offsetX: -4, offsetY: -4 };
|
|
85
|
+
return this.positionBuilder
|
|
86
|
+
.flexibleConnectedTo(this.elementRef)
|
|
87
|
+
.withViewportMargin(10)
|
|
88
|
+
.withPositions([
|
|
89
|
+
this.buildPosition('top', 'right', config),
|
|
90
|
+
this.buildPosition('top', 'left', config),
|
|
91
|
+
this.buildPosition('bottom', 'right', config),
|
|
92
|
+
this.buildPosition('bottom', 'left', config),
|
|
93
|
+
]);
|
|
94
|
+
}
|
|
95
|
+
buildPosition(yDirection, xDirection, config) {
|
|
96
|
+
const originX = xDirection === 'right' ? 'start' : 'end';
|
|
97
|
+
const overlayX = originX;
|
|
98
|
+
const oppositeYDirection = yDirection === 'top' ? 'bottom' : 'top';
|
|
99
|
+
const { originY, overlayY } = config.overlapInput
|
|
100
|
+
? {
|
|
101
|
+
originY: oppositeYDirection,
|
|
102
|
+
overlayY: oppositeYDirection,
|
|
103
|
+
}
|
|
104
|
+
: { originY: yDirection, overlayY: oppositeYDirection };
|
|
105
|
+
return {
|
|
106
|
+
originX,
|
|
107
|
+
originY,
|
|
108
|
+
overlayX,
|
|
109
|
+
overlayY,
|
|
110
|
+
...(config.offsetX ? { offsetX: xDirection === 'right' ? config.offsetX : -config.offsetX } : {}),
|
|
111
|
+
...(config.offsetY ? { offsetY: yDirection === 'bottom' ? config.offsetY : -config.offsetY } : {}),
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: LuMultiSelectPanelRefFactory, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
115
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: LuMultiSelectPanelRefFactory }); }
|
|
116
|
+
}
|
|
117
|
+
export { LuMultiSelectPanelRefFactory };
|
|
118
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: LuMultiSelectPanelRefFactory, decorators: [{
|
|
119
|
+
type: Injectable
|
|
120
|
+
}] });
|
|
121
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFuZWwtcmVmLmZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy9tdWx0aS1zZWxlY3QvaW5wdXQvcGFuZWwtcmVmLmZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixPQUFPLEVBQWlCLHNCQUFzQixFQUFnQyxxQkFBcUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQzlKLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsaUJBQWlCLEVBQWdCLFVBQVUsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMxRyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ2pDLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN2RCxPQUFPLEVBQTJCLHVCQUF1QixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUV0RCxNQUFNLG1CQUF1QixTQUFRLHFCQUF3QjtJQUs1RCxZQUNTLFVBQXNCLEVBQzlCLGNBQXdCLEVBQ3hCLFNBQXFDLEVBQzNCLHVCQUF5QyxFQUN6Qyx3QkFBMEM7UUFFcEQsS0FBSyxFQUFFLENBQUM7UUFOQSxlQUFVLEdBQVYsVUFBVSxDQUFZO1FBR3BCLDRCQUF1QixHQUF2Qix1QkFBdUIsQ0FBa0I7UUFDekMsNkJBQXdCLEdBQXhCLHdCQUF3QixDQUFrQjtRQUlwRCxNQUFNLFFBQVEsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDO1lBQ2hDLFNBQVMsRUFBRTtnQkFDVixFQUFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUNsRCxFQUFFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxRQUFRLEVBQUUsU0FBUyxF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QUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztTQUNsRyxDQUFDO0lBQ0gsQ0FBQzs4R0FoRlcsNEJBQTRCO2tIQUE1Qiw0QkFBNEI7O1NBQTVCLDRCQUE0QjsyRkFBNUIsNEJBQTRCO2tCQUR4QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29ubmVjdGVkUG9zaXRpb24sIE92ZXJsYXksIE92ZXJsYXlDb25maWcsIE92ZXJsYXlQb3NpdGlvbkJ1aWxkZXIsIE92ZXJsYXlSZWYsIFBvc2l0aW9uU3RyYXRlZ3ksIFNjcm9sbFN0cmF0ZWd5T3B0aW9ucyB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcclxuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL3BvcnRhbCc7XHJcbmltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnRSZWYsIEVsZW1lbnRSZWYsIGluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEx1TXVsdGlTZWxlY3RQYW5lbENvbXBvbmVudCB9IGZyb20gJy4uL3BhbmVsJztcclxuaW1wb3J0IHsgSUx1TXVsdGlTZWxlY3RQYW5lbERhdGEsIE1VTFRJX1NFTEVDVF9QQU5FTF9EQVRBIH0gZnJvbSAnLi4vc2VsZWN0Lm1vZGVsJztcclxuaW1wb3J0IHsgTHVNdWx0aVNlbGVjdFBhbmVsUmVmIH0gZnJvbSAnLi9wYW5lbC5tb2RlbCc7XHJcblxyXG5jbGFzcyBNdWx0aVNlbGVjdFBhbmVsUmVmPFQ+IGV4dGVuZHMgTHVNdWx0aVNlbGVjdFBhbmVsUmVmPFQ+IHtcclxuXHRpbnN0YW5jZTogTHVNdWx0aVNlbGVjdFBhbmVsQ29tcG9uZW50PFQ+O1xyXG5cdHByaXZhdGUgcGFuZWxSZWY6IENvbXBvbmVudFJlZjxMdU11bHRpU2VsZWN0UGFuZWxDb21wb25lbnQ8VD4+O1xyXG5cdHByaXZhdGUgcG9ydGFsUmVmOiBDb21wb25lbnRQb3J0YWw8THVNdWx0aVNlbGVjdFBhbmVsQ29tcG9uZW50PFQ+PjtcclxuXHJcblx0Y29uc3RydWN0b3IoXHJcblx0XHRwcml2YXRlIG92ZXJsYXlSZWY6IE92ZXJsYXlSZWYsXHJcblx0XHRwYXJlbnRJbmplY3RvcjogSW5qZWN0b3IsXHJcblx0XHRwYW5lbERhdGE6IElMdU11bHRpU2VsZWN0UGFuZWxEYXRhPFQ+LFxyXG5cdFx0cHJvdGVjdGVkIGRlZmF1bHRQb3NpdGlvblN0cmF0ZWd5OiBQb3NpdGlvblN0cmF0ZWd5LFxyXG5cdFx0cHJvdGVjdGVkIGV4cGFuZGVkUG9zaXRpb25TdHJhdGVneTogUG9zaXRpb25TdHJhdGVneSxcclxuXHQpIHtcclxuXHRcdHN1cGVyKCk7XHJcblxyXG5cdFx0Y29uc3QgaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoe1xyXG5cdFx0XHRwcm92aWRlcnM6IFtcclxuXHRcdFx0XHR7IHByb3ZpZGU6IEx1TXVsdGlTZWxlY3RQYW5lbFJlZiwgdXNlVmFsdWU6IHRoaXMgfSxcclxuXHRcdFx0XHR7IHByb3ZpZGU6IE1VTFRJX1NFTEVDVF9QQU5FTF9EQVRBLCB1c2VWYWx1ZTogcGFuZWxEYXRhIH0sXHJcblx0XHRcdF0sXHJcblx0XHRcdHBhcmVudDogcGFyZW50SW5qZWN0b3IsXHJcblx0XHR9KTtcclxuXHJcblx0XHR0aGlzLnBvcnRhbFJlZiA9IG5ldyBDb21wb25lbnRQb3J0YWw8THVNdWx0aVNlbGVjdFBhbmVsQ29tcG9uZW50PFQ+PihMdU11bHRpU2VsZWN0UGFuZWxDb21wb25lbnQsIHVuZGVmaW5lZCwgaW5qZWN0b3IpO1xyXG5cdFx0dGhpcy5wYW5lbFJlZiA9IG92ZXJsYXlSZWYuYXR0YWNoKHRoaXMucG9ydGFsUmVmKTtcclxuXHRcdHRoaXMuaW5zdGFuY2UgPSB0aGlzLnBhbmVsUmVmLmluc3RhbmNlO1xyXG5cclxuXHRcdG92ZXJsYXlSZWZcclxuXHRcdFx0LmJhY2tkcm9wQ2xpY2soKVxyXG5cdFx0XHQucGlwZSh0YWtlVW50aWwodGhpcy5jbG9zZWQpKVxyXG5cdFx0XHQuc3Vic2NyaWJlKCgpID0+IHRoaXMuY2xvc2UoKSk7XHJcblx0fVxyXG5cclxuXHRlbWl0VmFsdWUodmFsdWU6IFRbXSk6IHZvaWQge1xyXG5cdFx0dGhpcy52YWx1ZUNoYW5nZWQuZW1pdCh2YWx1ZSk7XHJcblx0fVxyXG5cclxuXHR1cGRhdGVTZWxlY3RlZE9wdGlvbnMoc2VsZWN0ZWRPcHRpb25zOiBUW10pOiB2b2lkIHtcclxuXHRcdHRoaXMuaW5zdGFuY2Uuc2VsZWN0ZWRPcHRpb25zID0gc2VsZWN0ZWRPcHRpb25zO1xyXG5cdFx0Ly8gUnVuIGNoYW5nZSBkZXRlY3Rpb24gb24gdGhlIHBhbmVsIGNvbXBvbmVudFxyXG5cdFx0dGhpcy5wYW5lbFJlZi5pbmplY3Rvci5nZXQoQ2hhbmdlRGV0ZWN0b3JSZWYpLm1hcmtGb3JDaGVjaygpO1xyXG5cdH1cclxuXHJcblx0dXNlRXhwYW5kZWRQb3NpdGlvbigpOiB2b2lkIHtcclxuXHRcdHRoaXMub3ZlcmxheVJlZi51cGRhdGVQb3NpdGlvblN0cmF0ZWd5KHRoaXMuZXhwYW5kZWRQb3NpdGlvblN0cmF0ZWd5KTtcclxuXHR9XHJcblxyXG5cdHVzZURlZmF1bHRQb3NpdGlvbigpOiB2b2lkIHtcclxuXHRcdHRoaXMub3ZlcmxheVJlZi51cGRhdGVQb3NpdGlvblN0cmF0ZWd5KHRoaXMuZGVmYXVsdFBvc2l0aW9uU3RyYXRlZ3kpO1xyXG5cdH1cclxuXHJcblx0b3ZlcnJpZGUgY2xvc2UoKTogdm9pZCB7XHJcblx0XHRzdXBlci5jbG9zZSgpO1xyXG5cdFx0dGhpcy5wYW5lbFJlZi5kZXN0cm95KCk7XHJcblx0XHR0aGlzLm92ZXJsYXlSZWYuZGV0YWNoKCk7XHJcblx0fVxyXG59XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBMdU11bHRpU2VsZWN0UGFuZWxSZWZGYWN0b3J5IHtcclxuXHRwcm90ZWN0ZWQgb3ZlcmxheSA9IGluamVjdChPdmVybGF5KTtcclxuXHRwcm90ZWN0ZWQgZWxlbWVudFJlZiA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZik7XHJcblx0cHJvdGVjdGVkIHBvc2l0aW9uQnVpbGRlciA9IGluamVjdChPdmVybGF5UG9zaXRpb25CdWlsZGVyKTtcclxuXHRwcm90ZWN0ZWQgc2Nyb2xsU3RyYXRlZ2llcyA9IGluamVjdChTY3JvbGxTdHJhdGVneU9wdGlvbnMpO1xyXG5cdHByb3RlY3RlZCBwYXJlbnRJbmplY3RvciA9IGluamVjdChJbmplY3Rvcik7XHJcblxyXG5cdGJ1aWxkUGFuZWxSZWY8VD4ocGFuZWxEYXRhOiBJTHVNdWx0aVNlbGVjdFBhbmVsRGF0YTxUPiwgZGVmYXVsdE92ZXJsYXlDb25maWdPdmVycmlkZTogT3ZlcmxheUNvbmZpZyA9IHt9LCBleHBhbmRlZFBvc2l0aW9uU3RyYXRlZ3k/OiBQb3NpdGlvblN0cmF0ZWd5KTogTHVNdWx0aVNlbGVjdFBhbmVsUmVmPFQ+IHtcclxuXHRcdGNvbnN0IGRlZmF1bHRPdmVybGF5Q29uZmlnID0gdGhpcy5idWlsZERlZmF1bHRPdmVybGF5Q29uZmlnKGRlZmF1bHRPdmVybGF5Q29uZmlnT3ZlcnJpZGUpO1xyXG5cdFx0ZXhwYW5kZWRQb3NpdGlvblN0cmF0ZWd5ID8/PSB0aGlzLmJ1aWxkRXhwYW5kZWRQb3NpdGlvblN0cmF0ZWd5KCk7XHJcblxyXG5cdFx0Y29uc3Qgb3ZlcmxheVJlZiA9IHRoaXMub3ZlcmxheS5jcmVhdGUoZGVmYXVsdE92ZXJsYXlDb25maWcpO1xyXG5cclxuXHRcdG92ZXJsYXlSZWYuaG9zdEVsZW1lbnQuc3R5bGUudHJhbnNpdGlvblByb3BlcnR5ID0gJ2hlaWdodCc7XHJcblx0XHRvdmVybGF5UmVmLmhvc3RFbGVtZW50LnN0eWxlLnRyYW5zaXRpb25EdXJhdGlvbiA9ICd2YXIoLS1jb21tb25zLWFuaW1hdGlvbnMtZHVyYXRpb25zLXN0YW5kYXJkKSc7XHJcblxyXG5cdFx0cmV0dXJuIG5ldyBNdWx0aVNlbGVjdFBhbmVsUmVmKG92ZXJsYXlSZWYsIHRoaXMucGFyZW50SW5qZWN0b3IsIHBhbmVsRGF0YSwgZGVmYXVsdE92ZXJsYXlDb25maWcucG9zaXRpb25TdHJhdGVneSwgZXhwYW5kZWRQb3NpdGlvblN0cmF0ZWd5KTtcclxuXHR9XHJcblxyXG5cdHByb3RlY3RlZCBidWlsZERlZmF1bHRPdmVybGF5Q29uZmlnKG92ZXJsYXlDb25maWdPdmVycmlkZTogT3ZlcmxheUNvbmZpZyA9IHt9KTogT3ZlcmxheUNvbmZpZyB7XHJcblx0XHRjb25zdCBvdmVybGF5Q29uZmlnOiBPdmVybGF5Q29uZmlnID0geyAuLi5vdmVybGF5Q29uZmlnT3ZlcnJpZGUgfTtcclxuXHJcblx0XHRjb25zdCBjb25maWcgPSB7IG92ZXJsYXBJbnB1dDogZmFsc2UsIG9mZnNldFk6IDIgfTtcclxuXHRcdG92ZXJsYXlDb25maWcucG9zaXRpb25TdHJhdGVneSA9IHRoaXMucG9zaXRpb25CdWlsZGVyXHJcblx0XHRcdC5mbGV4aWJsZUNvbm5lY3RlZFRvKHRoaXMuZWxlbWVudFJlZilcclxuXHRcdFx0LndpdGhWaWV3cG9ydE1hcmdpbigxMClcclxuXHRcdFx0LndpdGhQb3NpdGlvbnMoW1xyXG5cdFx0XHRcdHRoaXMuYnVpbGRQb3NpdGlvbignYm90dG9tJywgJ3JpZ2h0JywgY29uZmlnKSxcclxuXHRcdFx0XHR0aGlzLmJ1aWxkUG9zaXRpb24oJ2JvdHRvbScsICdsZWZ0JywgY29uZmlnKSxcclxuXHRcdFx0XHR0aGlzLmJ1aWxkUG9zaXRpb24oJ3RvcCcsICdyaWdodCcsIGNvbmZpZyksXHJcblx0XHRcdFx0dGhpcy5idWlsZFBvc2l0aW9uKCd0b3AnLCAnbGVmdCcsIGNvbmZpZyksXHJcblx0XHRcdF0pO1xyXG5cdFx0b3ZlcmxheUNvbmZpZy5zY3JvbGxTdHJhdGVneSA9IHRoaXMuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKCk7XHJcblx0XHRvdmVybGF5Q29uZmlnLm1pbldpZHRoID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuY2xpZW50V2lkdGg7XHJcblx0XHRvdmVybGF5Q29uZmlnLm1heFdpZHRoID0gJzEwMHZ3JztcclxuXHJcblx0XHRyZXR1cm4gb3ZlcmxheUNvbmZpZztcclxuXHR9XHJcblxyXG5cdGJ1aWxkRXhwYW5kZWRQb3NpdGlvblN0cmF0ZWd5KCk6IFBvc2l0aW9uU3RyYXRlZ3kge1xyXG5cdFx0Y29uc3QgY29uZmlnID0geyBvdmVybGFwSW5wdXQ6IHRydWUsIG9mZnNldFg6IC00LCBvZmZzZXRZOiAtNCB9O1xyXG5cdFx0cmV0dXJuIHRoaXMucG9zaXRpb25CdWlsZGVyXHJcblx0XHRcdC5mbGV4aWJsZUNvbm5lY3RlZFRvKHRoaXMuZWxlbWVudFJlZilcclxuXHRcdFx0LndpdGhWaWV3cG9ydE1hcmdpbigxMClcclxuXHRcdFx0LndpdGhQb3NpdGlvbnMoW1xyXG5cdFx0XHRcdHRoaXMuYnVpbGRQb3NpdGlvbigndG9wJywgJ3JpZ2h0JywgY29uZmlnKSxcclxuXHRcdFx0XHR0aGlzLmJ1aWxkUG9zaXRpb24oJ3RvcCcsICdsZWZ0JywgY29uZmlnKSxcclxuXHRcdFx0XHR0aGlzLmJ1aWxkUG9zaXRpb24oJ2JvdHRvbScsICdyaWdodCcsIGNvbmZpZyksXHJcblx0XHRcdFx0dGhpcy5idWlsZFBvc2l0aW9uKCdib3R0b20nLCAnbGVmdCcsIGNvbmZpZyksXHJcblx0XHRcdF0pO1xyXG5cdH1cclxuXHJcblx0cHJvdGVjdGVkIGJ1aWxkUG9zaXRpb24oXHJcblx0XHR5RGlyZWN0aW9uOiAndG9wJyB8ICdib3R0b20nLFxyXG5cdFx0eERpcmVjdGlvbjogJ2xlZnQnIHwgJ3JpZ2h0JyxcclxuXHRcdGNvbmZpZzoge1xyXG5cdFx0XHRvZmZzZXRYPzogbnVtYmVyO1xyXG5cdFx0XHRvZmZzZXRZPzogbnVtYmVyO1xyXG5cdFx0XHRvdmVybGFwSW5wdXQ6IGJvb2xlYW47XHJcblx0XHR9LFxyXG5cdCk6IENvbm5lY3RlZFBvc2l0aW9uIHtcclxuXHRcdGNvbnN0IG9yaWdpblggPSB4RGlyZWN0aW9uID09PSAncmlnaHQnID8gJ3N0YXJ0JyA6ICdlbmQnO1xyXG5cdFx0Y29uc3Qgb3ZlcmxheVggPSBvcmlnaW5YO1xyXG5cclxuXHRcdGNvbnN0IG9wcG9zaXRlWURpcmVjdGlvbiA9IHlEaXJlY3Rpb24gPT09ICd0b3AnID8gJ2JvdHRvbScgOiAndG9wJztcclxuXHRcdGNvbnN0IHsgb3JpZ2luWSwgb3ZlcmxheVkgfSA9IGNvbmZpZy5vdmVybGFwSW5wdXRcclxuXHRcdFx0PyAoe1xyXG5cdFx0XHRcdFx0b3JpZ2luWTogb3Bwb3NpdGVZRGlyZWN0aW9uLFxyXG5cdFx0XHRcdFx0b3ZlcmxheVk6IG9wcG9zaXRlWURpcmVjdGlvbixcclxuXHRcdFx0ICB9IGFzIGNvbnN0KVxyXG5cdFx0XHQ6ICh7IG9yaWdpblk6IHlEaXJlY3Rpb24sIG92ZXJsYXlZOiBvcHBvc2l0ZVlEaXJlY3Rpb24gfSBhcyBjb25zdCk7XHJcblxyXG5cdFx0cmV0dXJuIHtcclxuXHRcdFx0b3JpZ2luWCxcclxuXHRcdFx0b3JpZ2luWSxcclxuXHRcdFx0b3ZlcmxheVgsXHJcblx0XHRcdG92ZXJsYXlZLFxyXG5cdFx0XHQuLi4oY29uZmlnLm9mZnNldFggPyB7IG9mZnNldFg6IHhEaXJlY3Rpb24gPT09ICdyaWdodCcgPyBjb25maWcub2Zmc2V0WCA6IC1jb25maWcub2Zmc2V0WCB9IDoge30pLFxyXG5cdFx0XHQuLi4oY29uZmlnLm9mZnNldFkgPyB7IG9mZnNldFk6IHlEaXJlY3Rpb24gPT09ICdib3R0b20nID8gY29uZmlnLm9mZnNldFkgOiAtY29uZmlnLm9mZnNldFkgfSA6IHt9KSxcclxuXHRcdH07XHJcblx0fVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { EventEmitter } from '@angular/core';
|
|
2
|
+
import { LuSelectPanelRef } from '@lucca-front/ng/core-select';
|
|
3
|
+
export class LuMultiSelectPanelRef extends LuSelectPanelRef {
|
|
4
|
+
constructor() {
|
|
5
|
+
super(...arguments);
|
|
6
|
+
this.selectAll = new EventEmitter();
|
|
7
|
+
}
|
|
8
|
+
close() {
|
|
9
|
+
super.close();
|
|
10
|
+
this.selectAll.complete();
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFuZWwubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy9tdWx0aS1zZWxlY3QvaW5wdXQvcGFuZWwubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUcvRCxNQUFNLE9BQWdCLHFCQUF5QixTQUFRLGdCQUF3QjtJQUEvRTs7UUFDQyxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztJQWN0QyxDQUFDO0lBVlMsS0FBSztRQUNiLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNkLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0IsQ0FBQztDQU9EIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEx1U2VsZWN0UGFuZWxSZWYgfSBmcm9tICdAbHVjY2EtZnJvbnQvbmcvY29yZS1zZWxlY3QnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTHVNdWx0aVNlbGVjdFBhbmVsUmVmPFQ+IGV4dGVuZHMgTHVTZWxlY3RQYW5lbFJlZjxULCBUW10+IHtcclxuXHRzZWxlY3RBbGwgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcblxyXG5cdGFyZUFsbE9wdGlvbnNTZWxlY3RlZCQ6IE9ic2VydmFibGU8Ym9vbGVhbiB8IHVuZGVmaW5lZD47XHJcblxyXG5cdG92ZXJyaWRlIGNsb3NlKCk6IHZvaWQge1xyXG5cdFx0c3VwZXIuY2xvc2UoKTtcclxuXHRcdHRoaXMuc2VsZWN0QWxsLmNvbXBsZXRlKCk7XHJcblx0fVxyXG5cclxuXHRhYnN0cmFjdCB1cGRhdGVTZWxlY3RlZE9wdGlvbnMoc2VsZWN0ZWRPcHRpb25zOiBUW10pOiB2b2lkO1xyXG5cclxuXHRhYnN0cmFjdCB1c2VFeHBhbmRlZFBvc2l0aW9uKCk6IHZvaWQ7XHJcblxyXG5cdGFic3RyYWN0IHVzZURlZmF1bHRQb3NpdGlvbigpOiB2b2lkO1xyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,106 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
2
|
+
import { ChangeDetectionStrategy, Component, forwardRef, HostBinding, inject, Input } from '@angular/core';
|
|
3
|
+
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
4
|
+
import { getIntl } from '@lucca-front/ng/core';
|
|
5
|
+
import { ALuSelectInputComponent, provideLuSelectLabelsAndIds, provideLuSelectOverlayContainer, ɵLuOptionOutletDirective } from '@lucca-front/ng/core-select';
|
|
6
|
+
import { LuTooltipModule } from '@lucca-front/ng/tooltip';
|
|
7
|
+
import { ReplaySubject } from 'rxjs';
|
|
8
|
+
import { LuMultiSelectDefaultDisplayerComponent } from '../displayer/index';
|
|
9
|
+
import { LU_MULTI_SELECT_TRANSLATIONS } from '../select.translate';
|
|
10
|
+
import { LuMultiSelectPanelRefFactory } from './panel-ref.factory';
|
|
11
|
+
import * as i0 from "@angular/core";
|
|
12
|
+
import * as i1 from "@angular/common";
|
|
13
|
+
class LuMultiSelectInputComponent extends ALuSelectInputComponent {
|
|
14
|
+
constructor() {
|
|
15
|
+
super(...arguments);
|
|
16
|
+
this.intl = getIntl(LU_MULTI_SELECT_TRANSLATIONS);
|
|
17
|
+
this.modMultipleClass = true;
|
|
18
|
+
this.valuesTpl = LuMultiSelectDefaultDisplayerComponent;
|
|
19
|
+
// TODO this is for select all
|
|
20
|
+
// @Output() selectAll = new EventEmitter<void>();
|
|
21
|
+
this.expanded = false;
|
|
22
|
+
this.areAllOptionsSelected$ = new ReplaySubject(1);
|
|
23
|
+
this.panelRefFactory = inject(LuMultiSelectPanelRefFactory);
|
|
24
|
+
}
|
|
25
|
+
get panelRef() {
|
|
26
|
+
return this._panelRef;
|
|
27
|
+
}
|
|
28
|
+
writeValue(value) {
|
|
29
|
+
super.writeValue(value);
|
|
30
|
+
this.panelRef?.updateSelectedOptions(value);
|
|
31
|
+
}
|
|
32
|
+
buildPanelRef() {
|
|
33
|
+
return this.panelRefFactory.buildPanelRef({
|
|
34
|
+
initialValue: this.value,
|
|
35
|
+
optionComparer: this.optionComparer,
|
|
36
|
+
options$: this.options$,
|
|
37
|
+
loading$: this.loading$,
|
|
38
|
+
searchable: this.searchable,
|
|
39
|
+
optionTpl: this.optionTpl,
|
|
40
|
+
canSelectAll: false,
|
|
41
|
+
areAllOptionsSelected$: this.areAllOptionsSelected$,
|
|
42
|
+
expanded: this.expanded,
|
|
43
|
+
}, this.overlayConfig, this.expandedPositionStrategy);
|
|
44
|
+
}
|
|
45
|
+
bindInputToPanelRefEvents() {
|
|
46
|
+
if (!this.panelRef) {
|
|
47
|
+
return;
|
|
48
|
+
}
|
|
49
|
+
super.bindInputToPanelRefEvents();
|
|
50
|
+
// TODO This is for select all
|
|
51
|
+
// this.panelRef.selectAll.subscribe(() => this.selectAll.emit());
|
|
52
|
+
}
|
|
53
|
+
get hasValue() {
|
|
54
|
+
return this.value && this.value.length > 0;
|
|
55
|
+
}
|
|
56
|
+
clearValue(event) {
|
|
57
|
+
event.stopPropagation();
|
|
58
|
+
this.onChange?.([]);
|
|
59
|
+
this.value = [];
|
|
60
|
+
}
|
|
61
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: LuMultiSelectInputComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
62
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.3", type: LuMultiSelectInputComponent, isStandalone: true, selector: "lu-multi-select", inputs: { valuesTpl: "valuesTpl", expandedPositionStrategy: "expandedPositionStrategy", expanded: "expanded", panelRef: "panelRef" }, host: { properties: { "class.mod-multiple": "this.modMultipleClass" } }, providers: [
|
|
63
|
+
{
|
|
64
|
+
provide: NG_VALUE_ACCESSOR,
|
|
65
|
+
useExisting: forwardRef(() => LuMultiSelectInputComponent),
|
|
66
|
+
multi: true,
|
|
67
|
+
},
|
|
68
|
+
{
|
|
69
|
+
provide: ALuSelectInputComponent,
|
|
70
|
+
useExisting: forwardRef(() => LuMultiSelectInputComponent),
|
|
71
|
+
},
|
|
72
|
+
provideLuSelectOverlayContainer(),
|
|
73
|
+
provideLuSelectLabelsAndIds(),
|
|
74
|
+
LuMultiSelectPanelRefFactory,
|
|
75
|
+
], usesInheritance: true, 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=\"valuesTpl; value: value\"></ng-container>\r\n\t</div>\r\n</div>\r\n<div class=\"lu-select-suffix\">\r\n\t<a *ngIf=\"hasValue && clearable\" role=\"button\" class=\"clear\" (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: 2.25rem;--components-options-item-icon-color: var(--palettes-grey-800);--components-options-checkbox-left: .5rem;--components-options-checkbox-size: 1.25rem;--components-options-checkbox-color: var(--palettes-primary-700);--components-options-checkbox-border-radius: 6px;--components-options-checkbox-border-color: var(--palettes-grey-700);--components-options-establishment-multiple-padding: 2rem}:host{--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;gap:0}: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],:host.is-disabled{cursor:not-allowed;pointer-events:all}.lu-select-display-wrapper{display:flex;text-overflow:ellipsis;white-space:nowrap;gap:var(--spacings-XXS)}.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,.lu-select-clearer{position:absolute;bottom:.75rem;right:2.25rem}::ng-deep .lu-select-value lu-simple-select-default-option{max-width:5rem;text-overflow:ellipsis;overflow:hidden}::ng-deep .lu-select-value .label{padding:var(--spacings-XXS) var(--spacings-XS);margin-left:0}::ng-deep .lu-select-value .chip{vertical-align:baseline;max-width:100%;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){padding:0}: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) .lu-select-clearer{bottom:var(--spacings-XS)}: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:.5rem;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);padding-left:var(--spacings-XXS);padding-right:var(--spacings-XXS);gap:var(--spacings-XXS)}:host-context(.textfield.mod-S) ::ng-deep .lu-select-value .numericBadge{--components-numericBadge-size: 1.25rem;--components-numericBadge-borderRadius: 6px;--components-numericBadge-fontSize: var(--sizes-XS-fontSize);--components-numericBadge-lineHeight: var(--sizes-XS-lineHeight)}: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-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:visible;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[aria-expanded=true]{outline:none}.lu-select-value{padding-right:2rem}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: LuTooltipModule }, { kind: "directive", type: ɵLuOptionOutletDirective, selector: "[luOptionOutlet]", inputs: ["luOptionOutlet", "luOptionOutletValue"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
76
|
+
}
|
|
77
|
+
export { LuMultiSelectInputComponent };
|
|
78
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: LuMultiSelectInputComponent, decorators: [{
|
|
79
|
+
type: Component,
|
|
80
|
+
args: [{ selector: 'lu-multi-select', standalone: true, imports: [CommonModule, LuTooltipModule, ɵLuOptionOutletDirective], changeDetection: ChangeDetectionStrategy.OnPush, providers: [
|
|
81
|
+
{
|
|
82
|
+
provide: NG_VALUE_ACCESSOR,
|
|
83
|
+
useExisting: forwardRef(() => LuMultiSelectInputComponent),
|
|
84
|
+
multi: true,
|
|
85
|
+
},
|
|
86
|
+
{
|
|
87
|
+
provide: ALuSelectInputComponent,
|
|
88
|
+
useExisting: forwardRef(() => LuMultiSelectInputComponent),
|
|
89
|
+
},
|
|
90
|
+
provideLuSelectOverlayContainer(),
|
|
91
|
+
provideLuSelectLabelsAndIds(),
|
|
92
|
+
LuMultiSelectPanelRefFactory,
|
|
93
|
+
], 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=\"valuesTpl; value: value\"></ng-container>\r\n\t</div>\r\n</div>\r\n<div class=\"lu-select-suffix\">\r\n\t<a *ngIf=\"hasValue && clearable\" role=\"button\" class=\"clear\" (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: 2.25rem;--components-options-item-icon-color: var(--palettes-grey-800);--components-options-checkbox-left: .5rem;--components-options-checkbox-size: 1.25rem;--components-options-checkbox-color: var(--palettes-primary-700);--components-options-checkbox-border-radius: 6px;--components-options-checkbox-border-color: var(--palettes-grey-700);--components-options-establishment-multiple-padding: 2rem}:host{--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;gap:0}: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],:host.is-disabled{cursor:not-allowed;pointer-events:all}.lu-select-display-wrapper{display:flex;text-overflow:ellipsis;white-space:nowrap;gap:var(--spacings-XXS)}.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,.lu-select-clearer{position:absolute;bottom:.75rem;right:2.25rem}::ng-deep .lu-select-value lu-simple-select-default-option{max-width:5rem;text-overflow:ellipsis;overflow:hidden}::ng-deep .lu-select-value .label{padding:var(--spacings-XXS) var(--spacings-XS);margin-left:0}::ng-deep .lu-select-value .chip{vertical-align:baseline;max-width:100%;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){padding:0}: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) .lu-select-clearer{bottom:var(--spacings-XS)}: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:.5rem;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);padding-left:var(--spacings-XXS);padding-right:var(--spacings-XXS);gap:var(--spacings-XXS)}:host-context(.textfield.mod-S) ::ng-deep .lu-select-value .numericBadge{--components-numericBadge-size: 1.25rem;--components-numericBadge-borderRadius: 6px;--components-numericBadge-fontSize: var(--sizes-XS-fontSize);--components-numericBadge-lineHeight: var(--sizes-XS-lineHeight)}: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-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:visible;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[aria-expanded=true]{outline:none}.lu-select-value{padding-right:2rem}\n"] }]
|
|
94
|
+
}], propDecorators: { modMultipleClass: [{
|
|
95
|
+
type: HostBinding,
|
|
96
|
+
args: ['class.mod-multiple']
|
|
97
|
+
}], valuesTpl: [{
|
|
98
|
+
type: Input
|
|
99
|
+
}], expandedPositionStrategy: [{
|
|
100
|
+
type: Input
|
|
101
|
+
}], expanded: [{
|
|
102
|
+
type: Input
|
|
103
|
+
}], panelRef: [{
|
|
104
|
+
type: Input
|
|
105
|
+
}] } });
|
|
106
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nL211bHRpLXNlbGVjdC9pbnB1dC9zZWxlY3QtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmcvbXVsdGktc2VsZWN0L2lucHV0L3NlbGVjdC1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFNBQVMsRUFBRSxVQUFVLEVBQUUsV0FBVyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBQzlILE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0MsT0FBTyxFQUFFLHVCQUF1QixFQUFtQiwyQkFBMkIsRUFBRSwrQkFBK0IsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQy9LLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3JDLE9BQU8sRUFBRSxzQ0FBc0MsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQzVFLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ25FLE9BQU8sRUFBRSw0QkFBNEIsRUFBRSxNQUFNLHFCQUFxQixDQUFDOzs7QUFHbkUsTUFzQmEsMkJBQStCLFNBQVEsdUJBQStCO0lBdEJuRjs7UUF1QkMsU0FBSSxHQUFHLE9BQU8sQ0FBQyw0QkFBNEIsQ0FBQyxDQUFDO1FBRVYscUJBQWdCLEdBQUcsSUFBSSxDQUFDO1FBRWxELGNBQVMsR0FB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QUFFO3dCQUNqQywyQkFBMkIsRUFBRTt3QkFDN0IsNEJBQTRCO3FCQUM1Qjs4QkFLa0MsZ0JBQWdCO3NCQUFsRCxXQUFXO3VCQUFDLG9CQUFvQjtnQkFFeEIsU0FBUztzQkFBakIsS0FBSztnQkFRTix3QkFBd0I7c0JBRHZCLEtBQUs7Z0JBT04sUUFBUTtzQkFEUCxLQUFLO2dCQUljLFFBQVE7c0JBRDNCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQb3NpdGlvblN0cmF0ZWd5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBmb3J3YXJkUmVmLCBIb3N0QmluZGluZywgaW5qZWN0LCBJbnB1dCwgVGVtcGxhdGVSZWYsIFR5cGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBnZXRJbnRsIH0gZnJvbSAnQGx1Y2NhLWZyb250L25nL2NvcmUnO1xyXG5pbXBvcnQgeyBBTHVTZWxlY3RJbnB1dENvbXBvbmVudCwgTHVPcHRpb25Db250ZXh0LCBwcm92aWRlTHVTZWxlY3RMYWJlbHNBbmRJZHMsIHByb3ZpZGVMdVNlbGVjdE92ZXJsYXlDb250YWluZXIsIMm1THVPcHRpb25PdXRsZXREaXJlY3RpdmUgfSBmcm9tICdAbHVjY2EtZnJvbnQvbmcvY29yZS1zZWxlY3QnO1xyXG5pbXBvcnQgeyBMdVRvb2x0aXBNb2R1bGUgfSBmcm9tICdAbHVjY2EtZnJvbnQvbmcvdG9vbHRpcCc7XHJcbmltcG9ydCB7IFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgTHVNdWx0aVNlbGVjdERlZmF1bHREaXNwbGF5ZXJDb21wb25lbnQgfSBmcm9tICcuLi9kaXNwbGF5ZXIvaW5kZXgnO1xyXG5pbXBvcnQgeyBMVV9NVUxUSV9TRUxFQ1RfVFJBTlNMQVRJT05TIH0gZnJvbSAnLi4vc2VsZWN0LnRyYW5zbGF0ZSc7XHJcbmltcG9ydCB7IEx1TXVsdGlTZWxlY3RQYW5lbFJlZkZhY3RvcnkgfSBmcm9tICcuL3BhbmVsLXJlZi5mYWN0b3J5JztcclxuaW1wb3J0IHsgTHVNdWx0aVNlbGVjdFBhbmVsUmVmIH0gZnJvbSAnLi9wYW5lbC5tb2RlbCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuXHRzZWxlY3RvcjogJ2x1LW11bHRpLXNlbGVjdCcsXHJcblx0c3RhbmRhbG9uZTogdHJ1ZSxcclxuXHRpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBMdVRvb2x0aXBNb2R1bGUsIMm1THVPcHRpb25PdXRsZXREaXJlY3RpdmVdLFxyXG5cdHRlbXBsYXRlVXJsOiAnLi9zZWxlY3QtaW5wdXQuY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsczogWycuL3NlbGVjdC1pbnB1dC5jb21wb25lbnQuc2NzcyddLFxyXG5cdGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG5cdHByb3ZpZGVyczogW1xyXG5cdFx0e1xyXG5cdFx0XHRwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuXHRcdFx0dXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTHVNdWx0aVNlbGVjdElucHV0Q29tcG9uZW50KSxcclxuXHRcdFx0bXVsdGk6IHRydWUsXHJcblx0XHR9LFxyXG5cdFx0e1xyXG5cdFx0XHRwcm92aWRlOiBBTHVTZWxlY3RJbnB1dENvbXBvbmVudCxcclxuXHRcdFx0dXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gTHVNdWx0aVNlbGVjdElucHV0Q29tcG9uZW50KSxcclxuXHRcdH0sXHJcblx0XHRwcm92aWRlTHVTZWxlY3RPdmVybGF5Q29udGFpbmVyKCksXHJcblx0XHRwcm92aWRlTHVTZWxlY3RMYWJlbHNBbmRJZHMoKSxcclxuXHRcdEx1TXVsdGlTZWxlY3RQYW5lbFJlZkZhY3RvcnksXHJcblx0XSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEx1TXVsdGlTZWxlY3RJbnB1dENvbXBvbmVudDxUPiBleHRlbmRzIEFMdVNlbGVjdElucHV0Q29tcG9uZW50PFQsIFRbXT4gaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcblx0aW50bCA9IGdldEludGwoTFVfTVVMVElfU0VMRUNUX1RSQU5TTEFUSU9OUyk7XHJcblxyXG5cdEBIb3N0QmluZGluZygnY2xhc3MubW9kLW11bHRpcGxlJykgbW9kTXVsdGlwbGVDbGFzcyA9IHRydWU7XHJcblxyXG5cdEBJbnB1dCgpIHZhbHVlc1RwbD86IFRlbXBsYXRlUmVmPEx1T3B0aW9uQ29udGV4dDxUW10+PiB8IFR5cGU8dW5rbm93bj4gPSBMdU11bHRpU2VsZWN0RGVmYXVsdERpc3BsYXllckNvbXBvbmVudDtcclxuXHJcblx0Ly8gVE9ETyBUaGlzIGlzIGZvciBzZWxlY3QgYWxsXHJcblx0Ly8gQElucHV0KCkgc2V0IGFyZUFsbE9wdGlvbnNTZWxlY3RlZChzZWxlY3RlZDogYm9vbGVhbiB8IHVuZGVmaW5lZCkge1xyXG5cdC8vIFx0dGhpcy5hcmVBbGxPcHRpb25zU2VsZWN0ZWQkLm5leHQoc2VsZWN0ZWQpO1xyXG5cdC8vIH1cclxuXHJcblx0QElucHV0KClcclxuXHRleHBhbmRlZFBvc2l0aW9uU3RyYXRlZ3k/OiBQb3NpdGlvblN0cmF0ZWd5O1xyXG5cclxuXHQvLyBUT0RPIHRoaXMgaXMgZm9yIHNlbGVjdCBhbGxcclxuXHQvLyBAT3V0cHV0KCkgc2VsZWN0QWxsID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cclxuXHRASW5wdXQoKVxyXG5cdGV4cGFuZGVkID0gZmFsc2U7XHJcblxyXG5cdEBJbnB1dCgpXHJcblx0cHVibGljIG92ZXJyaWRlIGdldCBwYW5lbFJlZigpOiBMdU11bHRpU2VsZWN0UGFuZWxSZWY8VD4gfCB1bmRlZmluZWQge1xyXG5cdFx0cmV0dXJuIHRoaXMuX3BhbmVsUmVmO1xyXG5cdH1cclxuXHJcblx0cHJvdGVjdGVkIGFyZUFsbE9wdGlvbnNTZWxlY3RlZCQgPSBuZXcgUmVwbGF5U3ViamVjdDxib29sZWFuIHwgdW5kZWZpbmVkPigxKTtcclxuXHJcblx0cHJvdGVjdGVkIG92ZXJyaWRlIF9wYW5lbFJlZj86IEx1TXVsdGlTZWxlY3RQYW5lbFJlZjxUPjtcclxuXHJcblx0cHJvdGVjdGVkIHBhbmVsUmVmRmFjdG9yeSA9IGluamVjdChMdU11bHRpU2VsZWN0UGFuZWxSZWZGYWN0b3J5KTtcclxuXHJcblx0cHVibGljIG92ZXJyaWRlIHdyaXRlVmFsdWUodmFsdWU6IFRbXSk6IHZvaWQge1xyXG5cdFx0c3VwZXIud3JpdGVWYWx1ZSh2YWx1ZSk7XHJcblx0XHR0aGlzLnBhbmVsUmVmPy51cGRhdGVTZWxlY3RlZE9wdGlvbnModmFsdWUpO1xyXG5cdH1cclxuXHJcblx0cHJvdGVjdGVkIG92ZXJyaWRlIGJ1aWxkUGFuZWxSZWYoKTogTHVNdWx0aVNlbGVjdFBhbmVsUmVmPFQ+IHtcclxuXHRcdHJldHVybiB0aGlzLnBhbmVsUmVmRmFjdG9yeS5idWlsZFBhbmVsUmVmKFxyXG5cdFx0XHR7XHJcblx0XHRcdFx0aW5pdGlhbFZhbHVlOiB0aGlzLnZhbHVlLFxyXG5cdFx0XHRcdG9wdGlvbkNvbXBhcmVyOiB0aGlzLm9wdGlvbkNvbXBhcmVyLFxyXG5cdFx0XHRcdG9wdGlvbnMkOiB0aGlzLm9wdGlvbnMkLFxyXG5cdFx0XHRcdGxvYWRpbmckOiB0aGlzLmxvYWRpbmckLFxyXG5cdFx0XHRcdHNlYXJjaGFibGU6IHRoaXMuc2VhcmNoYWJsZSxcclxuXHRcdFx0XHRvcHRpb25UcGw6IHRoaXMub3B0aW9uVHBsLFxyXG5cdFx0XHRcdGNhblNlbGVjdEFsbDogZmFsc2UsIC8vIFRPRE8gQ29ubmVjdCB0aGlzIHRvIHRoaXMuc2VsZWN0QWxsLm9ic2VydmVkIHdoZW4gd2UnbGwgYmUgZml4ZWQgb24gaG93IHRvIGltcGxlbWVudCBzZWxlY3QgYWxsXHJcblx0XHRcdFx0YXJlQWxsT3B0aW9uc1NlbGVjdGVkJDogdGhpcy5hcmVBbGxPcHRpb25zU2VsZWN0ZWQkLFxyXG5cdFx0XHRcdGV4cGFuZGVkOiB0aGlzLmV4cGFuZGVkLFxyXG5cdFx0XHR9LFxyXG5cdFx0XHR0aGlzLm92ZXJsYXlDb25maWcsXHJcblx0XHRcdHRoaXMuZXhwYW5kZWRQb3NpdGlvblN0cmF0ZWd5LFxyXG5cdFx0KTtcclxuXHR9XHJcblxyXG5cdHByb3RlY3RlZCBvdmVycmlkZSBiaW5kSW5wdXRUb1BhbmVsUmVmRXZlbnRzKCk6IHZvaWQge1xyXG5cdFx0aWYgKCF0aGlzLnBhbmVsUmVmKSB7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHJcblx0XHRzdXBlci5iaW5kSW5wdXRUb1BhbmVsUmVmRXZlbnRzKCk7XHJcblx0XHQvLyBUT0RPIFRoaXMgaXMgZm9yIHNlbGVjdCBhbGxcclxuXHRcdC8vIHRoaXMucGFuZWxSZWYuc2VsZWN0QWxsLnN1YnNjcmliZSgoKSA9PiB0aGlzLnNlbGVjdEFsbC5lbWl0KCkpO1xyXG5cdH1cclxuXHJcblx0cHJvdGVjdGVkIG92ZXJyaWRlIGdldCBoYXNWYWx1ZSgpOiBib29sZWFuIHtcclxuXHRcdHJldHVybiB0aGlzLnZhbHVlICYmIHRoaXMudmFsdWUubGVuZ3RoID4gMDtcclxuXHR9XHJcblxyXG5cdG92ZXJyaWRlIGNsZWFyVmFsdWUoZXZlbnQ6IE1vdXNlRXZlbnQpOiB2b2lkIHtcclxuXHRcdGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG5cdFx0dGhpcy5vbkNoYW5nZT8uKFtdKTtcclxuXHRcdHRoaXMudmFsdWUgPSBbXTtcclxuXHR9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImx1LXNlbGVjdC1wbGFjZWhvbGRlclwiPnt7IHBsYWNlaG9sZGVyIH19PC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJsdS1zZWxlY3QtdmFsdWVcIj5cclxuXHQ8ZGl2IGNsYXNzPVwibHUtc2VsZWN0LWRpc3BsYXktd3JhcHBlclwiPlxyXG5cdFx0PG5nLWNvbnRhaW5lciAqbHVPcHRpb25PdXRsZXQ9XCJ2YWx1ZXNUcGw7IHZhbHVlOiB2YWx1ZVwiPjwvbmctY29udGFpbmVyPlxyXG5cdDwvZGl2PlxyXG48L2Rpdj5cclxuPGRpdiBjbGFzcz1cImx1LXNlbGVjdC1zdWZmaXhcIj5cclxuXHQ8YSAqbmdJZj1cImhhc1ZhbHVlICYmIGNsZWFyYWJsZVwiIHJvbGU9XCJidXR0b25cIiBjbGFzcz1cImNsZWFyXCIgKGNsaWNrKT1cImNsZWFyVmFsdWUoJGV2ZW50KVwiPlxyXG5cdFx0PHNwYW4gYXJpYS1oaWRkZW49XCJ0cnVlXCIgY2xhc3M9XCJsdWNjYS1pY29uIGljb24tdGhpbkNyb3NzXCI+PC9zcGFuPlxyXG5cdFx0PHNwYW4gY2xhc3M9XCJ1LW1hc2tcIj57eyBpbnRsLmNsZWFyIH19PC9zcGFuPlxyXG5cdDwvYT5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHVjY2EtZnJvbnQtbmctbXVsdGktc2VsZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvbmcvbXVsdGktc2VsZWN0L2x1Y2NhLWZyb250LW5nLW11bHRpLXNlbGVjdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './panel.component';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy9tdWx0aS1zZWxlY3QvcGFuZWwvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vcGFuZWwuY29tcG9uZW50JztcclxuIl19
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Pipe } from '@angular/core';
|
|
2
|
+
import * as i0 from "@angular/core";
|
|
3
|
+
class LuIsOptionSelectedPipe {
|
|
4
|
+
transform(option, comparer, selectedOptions) {
|
|
5
|
+
return selectedOptions.some((selectedOption) => comparer(option, selectedOption));
|
|
6
|
+
}
|
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: LuIsOptionSelectedPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
8
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.1.3", ngImport: i0, type: LuIsOptionSelectedPipe, isStandalone: true, name: "luIsOptionSelected" }); }
|
|
9
|
+
}
|
|
10
|
+
export { LuIsOptionSelectedPipe };
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: LuIsOptionSelectedPipe, decorators: [{
|
|
12
|
+
type: Pipe,
|
|
13
|
+
args: [{
|
|
14
|
+
name: 'luIsOptionSelected',
|
|
15
|
+
standalone: true,
|
|
16
|
+
}]
|
|
17
|
+
}] });
|
|
18
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uLXNlbGVjdGVkLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy9tdWx0aS1zZWxlY3QvcGFuZWwvb3B0aW9uLXNlbGVjdGVkLnBpcGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLElBQUksRUFBaUIsTUFBTSxlQUFlLENBQUM7O0FBRXBELE1BSWEsc0JBQXNCO0lBQ2xDLFNBQVMsQ0FBSSxNQUFTLEVBQUUsUUFBNkMsRUFBRSxlQUFvQjtRQUMxRixPQUFPLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsY0FBYyxDQUFDLENBQUMsQ0FBQztJQUNuRixDQUFDOzhHQUhXLHNCQUFzQjs0R0FBdEIsc0JBQXNCOztTQUF0QixzQkFBc0I7MkZBQXRCLHNCQUFzQjtrQkFKbEMsSUFBSTttQkFBQztvQkFDTCxJQUFJLEVBQUUsb0JBQW9CO29CQUMxQixVQUFVLEVBQUUsSUFBSTtpQkFDaEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQaXBlLCBQaXBlVHJhbnNmb3JtIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5AUGlwZSh7XHJcblx0bmFtZTogJ2x1SXNPcHRpb25TZWxlY3RlZCcsXHJcblx0c3RhbmRhbG9uZTogdHJ1ZSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEx1SXNPcHRpb25TZWxlY3RlZFBpcGUgaW1wbGVtZW50cyBQaXBlVHJhbnNmb3JtIHtcclxuXHR0cmFuc2Zvcm08VD4ob3B0aW9uOiBULCBjb21wYXJlcjogKG9wdGlvbjE6IFQsIG9wdGlvbjI6IFQpID0+IGJvb2xlYW4sIHNlbGVjdGVkT3B0aW9uczogVFtdKTogYm9vbGVhbiB7XHJcblx0XHRyZXR1cm4gc2VsZWN0ZWRPcHRpb25zLnNvbWUoKHNlbGVjdGVkT3B0aW9uKSA9PiBjb21wYXJlcihvcHRpb24sIHNlbGVjdGVkT3B0aW9uKSk7XHJcblx0fVxyXG59XHJcbiJdfQ==
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
import { A11yModule, ActiveDescendantKeyManager } from '@angular/cdk/a11y';
|
|
2
|
+
import { AsyncPipe, NgFor, NgIf, NgTemplateOutlet } from '@angular/common';
|
|
3
|
+
import { ChangeDetectionStrategy, Component, HostListener, inject, ViewChild, ViewChildren } from '@angular/core';
|
|
4
|
+
import { FormsModule } from '@angular/forms';
|
|
5
|
+
import { getIntl } from '@lucca-front/ng/core';
|
|
6
|
+
import { SELECT_ID, ɵLuOptionComponent, ɵLuOptionOutletDirective } from '@lucca-front/ng/core-select';
|
|
7
|
+
import { asyncScheduler, filter, map, observeOn, take, takeUntil } from 'rxjs';
|
|
8
|
+
import { LuMultiSelectPanelRef } from '../input/panel.model';
|
|
9
|
+
import { MULTI_SELECT_PANEL_DATA } from '../select.model';
|
|
10
|
+
import { LU_MULTI_SELECT_TRANSLATIONS } from '../select.translate';
|
|
11
|
+
import { LuIsOptionSelectedPipe } from './option-selected.pipe';
|
|
12
|
+
import { ɵLuMultiSelectSelectedChipDirective } from './selected-chip.directive';
|
|
13
|
+
import * as i0 from "@angular/core";
|
|
14
|
+
import * as i1 from "@angular/cdk/a11y";
|
|
15
|
+
import * as i2 from "@angular/forms";
|
|
16
|
+
class LuMultiSelectPanelComponent {
|
|
17
|
+
constructor() {
|
|
18
|
+
this.panelData = inject(MULTI_SELECT_PANEL_DATA);
|
|
19
|
+
this.panelRef = inject(LuMultiSelectPanelRef);
|
|
20
|
+
this.selectId = inject(SELECT_ID);
|
|
21
|
+
this.intl = getIntl(LU_MULTI_SELECT_TRANSLATIONS);
|
|
22
|
+
this.isExpanded = this.panelData.expanded;
|
|
23
|
+
this.options$ = this.panelData.options$;
|
|
24
|
+
this.loading$ = this.panelData.loading$;
|
|
25
|
+
this.areAllOptionsSelected$ = this.panelData.areAllOptionsSelected$;
|
|
26
|
+
this.canSelectAll = false; // TODO connect to panel options when we'll be ok on designing select all
|
|
27
|
+
this.optionComparer = this.panelData.optionComparer;
|
|
28
|
+
this.selectedOptions = this.panelData.initialValue || [];
|
|
29
|
+
this.optionTpl = this.panelData.optionTpl;
|
|
30
|
+
this.searchable = this.panelData.searchable;
|
|
31
|
+
this.search = null;
|
|
32
|
+
}
|
|
33
|
+
onScroll(evt) {
|
|
34
|
+
if (!(evt.target instanceof HTMLElement)) {
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
if (evt.target.scrollTop === 0) {
|
|
38
|
+
this.panelRef.previousPage.emit();
|
|
39
|
+
}
|
|
40
|
+
if (evt.target.scrollHeight - evt.target.scrollTop - evt.target.clientHeight < 1) {
|
|
41
|
+
this.panelRef.nextPage.emit();
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
ngAfterViewInit() {
|
|
45
|
+
if (!this.optionsQL) {
|
|
46
|
+
return;
|
|
47
|
+
}
|
|
48
|
+
this.initLeftColumnKeyManager();
|
|
49
|
+
this.initRightColumnKeyManager();
|
|
50
|
+
if (this.searchInput) {
|
|
51
|
+
setTimeout(() => this.searchInput.nativeElement.focus());
|
|
52
|
+
}
|
|
53
|
+
if (this.isExpanded) {
|
|
54
|
+
this.panelRef.useExpandedPosition();
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
this.panelRef.useDefaultPosition();
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
onKeyDown($event) {
|
|
61
|
+
if ($event.key === 'Escape') {
|
|
62
|
+
return this.panelRef.close();
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
onLeftColumnKeydown($event) {
|
|
66
|
+
if ($event.code === 'Space' || $event.code === 'Enter') {
|
|
67
|
+
this.toggleOption(this.leftColumnKeyManager?.activeItem?.option);
|
|
68
|
+
$event.preventDefault();
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
this.leftColumnKeyManager?.onKeydown($event);
|
|
72
|
+
}
|
|
73
|
+
onRightColumnKeydown($event) {
|
|
74
|
+
const option = this.rightColumnKeyManager?.activeItem?.option;
|
|
75
|
+
if (option && ($event.code === 'Space' || $event.code === 'Enter')) {
|
|
76
|
+
this.onChipKillClick(option);
|
|
77
|
+
$event.preventDefault();
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
this.rightColumnKeyManager?.onKeydown($event);
|
|
81
|
+
}
|
|
82
|
+
// toggleAll(shouldSelectAll: boolean): void {
|
|
83
|
+
// if (shouldSelectAll) {
|
|
84
|
+
// this.panelRef.selectAll.emit();
|
|
85
|
+
// } else {
|
|
86
|
+
// this.clear();
|
|
87
|
+
// }
|
|
88
|
+
// }
|
|
89
|
+
updateClue(clue) {
|
|
90
|
+
this.search = clue;
|
|
91
|
+
this.panelRef.clueChanged.emit(clue);
|
|
92
|
+
setTimeout(() => this.leftColumnKeyManager.setFirstItemActive());
|
|
93
|
+
}
|
|
94
|
+
toggleOption(option) {
|
|
95
|
+
const selectedOption = this.selectedOptions.find((o) => this.optionComparer(o, option));
|
|
96
|
+
this.selectedOptions = selectedOption ? this.selectedOptions.filter((o) => o !== selectedOption) : [...this.selectedOptions, option];
|
|
97
|
+
this.panelRef.emitValue(this.selectedOptions);
|
|
98
|
+
this.leftColumnKeyManager?.setActiveItem(this.optionsQL.toArray().findIndex((o) => o.option === option));
|
|
99
|
+
}
|
|
100
|
+
onChipKillClick(option) {
|
|
101
|
+
const optionToUnselectIndex = this.selectedOptions.findIndex((o) => this.optionComparer(o, option));
|
|
102
|
+
this.selectedOptions = this.selectedOptions.filter((_, index) => index !== optionToUnselectIndex);
|
|
103
|
+
this.panelRef.emitValue(this.selectedOptions);
|
|
104
|
+
if (this.selectedOptions.length && this.rightColumnKeyManager) {
|
|
105
|
+
optionToUnselectIndex >= this.selectedOptions.length ? this.rightColumnKeyManager.setPreviousItemActive() : this.rightColumnKeyManager.setNextItemActive();
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
clear() {
|
|
109
|
+
this.selectedOptions = [];
|
|
110
|
+
this.panelRef.emitValue(this.selectedOptions);
|
|
111
|
+
}
|
|
112
|
+
initLeftColumnKeyManager() {
|
|
113
|
+
this.leftColumnKeyManager = new ActiveDescendantKeyManager(this.optionsQL).withHomeAndEnd();
|
|
114
|
+
if (this.selectedOptions) {
|
|
115
|
+
this.options$
|
|
116
|
+
?.pipe(observeOn(asyncScheduler), map((options) => (this.selectedOptions.length ? options.findIndex((o) => this.optionComparer(o, this.selectedOptions[0])) : -1)), filter((index) => index !== -1), take(1), takeUntil(this.panelRef.closed))
|
|
117
|
+
.subscribe((selectedIndex) => this.leftColumnKeyManager.setActiveItem(selectedIndex));
|
|
118
|
+
}
|
|
119
|
+
this.leftColumnKeyManager.change
|
|
120
|
+
.pipe(map(() => this.leftColumnKeyManager.activeItem?.id), takeUntil(this.panelRef.closed))
|
|
121
|
+
.subscribe((activeDescendant) => this.panelRef.activeOptionIdChanged.emit(activeDescendant));
|
|
122
|
+
}
|
|
123
|
+
initRightColumnKeyManager() {
|
|
124
|
+
this.rightColumnKeyManager = new ActiveDescendantKeyManager(this.selectedChipsQL).withHomeAndEnd();
|
|
125
|
+
}
|
|
126
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: LuMultiSelectPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
127
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.3", type: LuMultiSelectPanelComponent, 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 }, { propertyName: "selectedChipsQL", predicate: ɵLuMultiSelectSelectedChipDirective, descendants: true }], ngImport: i0, template: "<!-- TODO : il faudrait remplacer la classe is-expanded par un attribut aria-expanded=\"true\"-->\r\n<ng-template #searchInputTpl>\r\n\t<label class=\"panel-search textfield mod-search mod-outlined lu-multiselect-search\">\r\n\t\t<input\r\n\t\t\t#searchInput\r\n\t\t\tclass=\"textfield-input\"\r\n\t\t\t[(ngModel)]=\"search\"\r\n\t\t\t(ngModelChange)=\"updateClue($event)\"\r\n\t\t\t[ngModelOptions]=\"{ standalone: true }\"\r\n\t\t/>\r\n\t\t<span class=\"u-mask textfield-label\">{{ intl.search }}</span>\r\n\t</label>\r\n</ng-template>\r\n\r\n<div\r\n\tclass=\"lu-picker-panel lu-option-picker-panel lu-multiselect-panel mod-multiple\"\r\n\trole=\"dialog\"\r\n\tcdkTrapFocus\r\n\t*ngIf=\"{ options: options$ | async } as ctx\"\r\n\t[cdkTrapFocusAutoCapture]=\"true\"\r\n\t[class.is-expanded]=\"isExpanded\"\r\n\t[attr.aria-expanded]=\"isExpanded ? 'true' : undefined\"\r\n>\r\n\t<div class=\"lu-multiselect-panel-form\" *ngIf=\"searchable && !isExpanded\">\r\n\t\t<ng-container *ngTemplateOutlet=\"searchInputTpl\"></ng-container>\r\n\t\t<!--\t\t<button class=\"button mod-text mod-icon lu-multiselect-expandbutton\" type=\"button\" (click)=\"toggleExpansion()\">-->\r\n\t\t<!--\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon\" [class.icon-fullscreen]=\"!isExpanded\" [class.icon-fullscreenExit]=\"isExpanded\"></span>-->\r\n\t\t<!--\t\t\t{{ isExpanded ? intl.reduce : intl.expand }}-->\r\n\t\t<!--\t\t</button>-->\r\n\t</div>\r\n\t<div class=\"lu-multiselect-panel-columns\">\r\n\t\t<div class=\"lu-multiselect-panel-columns-col1\" (keydown)=\"onLeftColumnKeydown($event)\">\r\n\t\t\t<div class=\"lu-multiselect-panel-form\" *ngIf=\"searchable && isExpanded\">\r\n\t\t\t\t<ng-container *ngTemplateOutlet=\"searchInputTpl\"></ng-container>\r\n\t\t\t</div>\r\n\t\t\t<div\r\n\t\t\t\tclass=\"lu-picker-content lu-multiselect-panel-columns-col1-content\"\r\n\t\t\t\t[class.is-loading]=\"loading$ | async\"\r\n\t\t\t\ttabindex=\"0\"\r\n\t\t\t\tcdkFocusInitial\r\n\t\t\t\trole=\"list\"\r\n\t\t\t\taria-multiselectable=\"true\"\r\n\t\t\t\t(scroll)=\"onScroll($event)\"\r\n\t\t\t>\r\n\t\t\t\t<ng-container *ngIf=\"searchable\">\r\n\t\t\t\t\t<div class=\"optionPlaceholder\" *ngIf=\"search && !ctx.options?.length\">\r\n\t\t\t\t\t\t<p class=\"optionPlaceholder-content u-marginBottom0\">{{ intl.emptyResults }}</p>\r\n\t\t\t\t\t\t<button type=\"button\" class=\"link\" (click)=\"updateClue(null); searchInput.nativeElement.focus()\">{{ intl.clearSearch }}</button>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</ng-container>\r\n\r\n\t\t\t\t<!--\t\t\t\t<ng-container *ngIf=\"canSelectAll\">-->\r\n\t\t\t\t<!--\t\t\t\t\t<label class=\"checkbox lu-multiselect-selectall\" role=\"option\" [for]=\"selectId + '-select-all'\">-->\r\n\t\t\t\t<!--\t\t\t\t\t\t<input-->\r\n\t\t\t\t<!--\t\t\t\t\t\t\tclass=\"checkbox-input\"-->\r\n\t\t\t\t<!--\t\t\t\t\t\t\ttype=\"checkbox\"-->\r\n\t\t\t\t<!--\t\t\t\t\t\t\t[class.is-incomplete]=\"(areAllOptionsSelected$ | async) !== true && selectedOptions.length\"-->\r\n\t\t\t\t<!--\t\t\t\t\t\t\t[id]=\"selectId + '-select-all'\"-->\r\n\t\t\t\t<!--\t\t\t\t\t\t\t[ngModel]=\"(areAllOptionsSelected$ | async) === true || !!selectedOptions.length\"-->\r\n\t\t\t\t<!--\t\t\t\t\t\t\t(ngModelChange)=\"toggleAll($event)\"-->\r\n\t\t\t\t<!--\t\t\t\t\t\t/>-->\r\n\t\t\t\t<!--\t\t\t\t\t\t<span class=\"checkbox-label\">{{ intl.selectAll }}</span>-->\r\n\t\t\t\t<!--\t\t\t\t\t</label>-->\r\n\t\t\t\t<!--\t\t\t\t</ng-container>-->\r\n\r\n\t\t\t\t<div class=\"lu-picker-content-option\">\r\n\t\t\t\t\t<lu-select-option\r\n\t\t\t\t\t\t*ngFor=\"let option of ctx.options; let index = index\"\r\n\t\t\t\t\t\t[option]=\"option\"\r\n\t\t\t\t\t\t[optionTpl]=\"optionTpl\"\r\n\t\t\t\t\t\t[optionIndex]=\"index\"\r\n\t\t\t\t\t\t[scrollIntoViewOptions]=\"{ block: 'nearest' }\"\r\n\t\t\t\t\t\t[isSelected]=\"option | luIsOptionSelected:optionComparer:selectedOptions\"\r\n\t\t\t\t\t\t(click)=\"toggleOption(option)\"\r\n\t\t\t\t\t></lu-select-option>\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t<div *ngIf=\"loading$ | async\" class=\"panel-loading loading lu-picker-loading\"></div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<div class=\"lu-multiselect-panel-columns-col2\" *ngIf=\"isExpanded\">\r\n\t\t\t<div class=\"lu-multiselect-emptystate\" *ngIf=\"!selectedOptions.length\">{{ intl.emptySelection }}</div>\r\n\t\t\t<div class=\"lu-multiselect-chips\" role=\"listbox\" tabindex=\"0\" *ngIf=\"selectedOptions.length\" (keydown)=\"onRightColumnKeydown($event)\">\r\n\t\t\t\t<div role=\"option\" class=\"chip lu-multiselect-chip\" *ngFor=\"let option of selectedOptions\" [luMultiSelectSelectedChip]=\"option\">\r\n\t\t\t\t\t<ng-container *luOptionOutlet=\"optionTpl; value: option\"></ng-container>\r\n\t\t\t\t\t<button type=\"button\" class=\"chip-kill\" tabindex=\"-1\" (click)=\"onChipKillClick(option)\"></button>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t\t<div *ngIf=\"selectedOptions.length\" class=\"lu-multiselect-panel-columns-col2-footer\">\r\n\t\t\t\t<button class=\"button mod-text\" type=\"button\" (click)=\"clear()\">{{ intl.clear }}</button>\r\n\t\t\t</div>\r\n\t\t</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: 2.25rem;--components-options-item-icon-color: var(--palettes-grey-800);--components-options-checkbox-left: .5rem;--components-options-checkbox-size: 1.25rem;--components-options-checkbox-color: var(--palettes-primary-700);--components-options-checkbox-border-radius: 6px;--components-options-checkbox-border-color: var(--palettes-grey-700);--components-options-establishment-multiple-padding: 2rem}.optionPlaceholder{display:block;padding:var(--components-options-item-padding-vertical) var(--components-options-item-padding-horizontal);font-style:italic;color:var(--palettes-grey-600)}.lu-multiselect-panel{display:flex;flex-direction:column;width:100%;border-radius:var(--commons-borderRadius-M);background-color:var(--colors-white-color);box-shadow:var(--commons-boxShadow-M);transition-property:width,min-width,margin-top,margin-left;transition-duration:var(--commons-animations-durations-fast);transition-timing-function:ease-in}.lu-multiselect-panel-form{padding:var(--spacings-XS);z-index:1}.lu-multiselect-panel-columns{display:flex;gap:var(--spacings-XS);padding:0;width:100%;transition:padding var(--commons-animations-durations-standard) ease}.is-expanded .lu-multiselect-panel-columns{padding:var(--spacings-XS)}[class*=lu-multiselect-panel-columns-col]{display:flex;flex-basis:100%;flex-direction:column}.is-expanded [class*=lu-multiselect-panel-columns-col]{border-radius:var(--commons-borderRadius-M)}.lu-multiselect-panel-columns-col2{align-items:flex-start;height:var(--components-picker-max-height);background-color:var(--palettes-grey-25);min-width:18rem}.is-expanded .lu-multiselect-panel-columns-col1{border:var(--commons-divider-width) solid var(--palettes-grey-200)}.lu-multiselect-panel-columns-col1-content{box-shadow:none;animation:none;padding:0;margin:0 var(--spacings-XS) var(--spacings-XS)}.lu-multiselect-panel-columns-col1-content,.lu-multiselect-chips{scroll-snap-type:y proximity;outline:none}.lu-multiselect-panel-columns-col1-content>*,.lu-multiselect-chips>*{scroll-snap-align:center}.lu-multiselect-panel-columns-col1-content:focus-visible,.lu-multiselect-chips:focus-visible{outline:2px solid var(--palettes-primary-700);outline-offset:2px}.lu-multiselect-search{flex-grow:1}.lu-multiselect-selectall{padding:var(--spacings-XS);font-weight:600;border-radius:var(--commons-borderRadius-M);margin-bottom:var(--spacings-XXS)}.lu-multiselect-selectall:hover,.lu-multiselect-selectall:focus-within{background-color:var(--palettes-grey-25)}.lu-multiselect-chips{overflow-y:auto;display:flex;max-height:18.5rem;flex-grow:1;flex-direction:column;align-items:flex-start;align-self:stretch;gap:var(--spacings-XXS);padding:var(--spacings-XS);border-top-left-radius:var(--commons-borderRadius-M);border-top-right-radius:var(--commons-borderRadius-M)}.lu-multiselect-panel-columns-col2-footer{display:flex;flex:0;align-items:flex-end;align-self:stretch;justify-content:flex-end;border-radius:0!important;border-top:var(--commons-divider-border);margin-top:auto;padding:var(--spacings-XXS) var(--spacings-XS)}.lu-multiselect-panel-form{display:flex;gap:var(--spacings-XS)}@media not all and (min-width: 50em){.lu-multiselect-expandbutton{display:none}}.lu-multiselect-emptystate{margin:auto;text-align:center;padding:var(--spacings-S);color:var(--palettes-grey-600)}\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: "pipe", type: LuIsOptionSelectedPipe, name: "luIsOptionSelected" }, { 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", "scrollIntoViewOptions"] }, { kind: "directive", type: ɵLuOptionOutletDirective, selector: "[luOptionOutlet]", inputs: ["luOptionOutlet", "luOptionOutletValue"] }, { kind: "directive", type: ɵLuMultiSelectSelectedChipDirective, selector: "[luMultiSelectSelectedChip]", inputs: ["luMultiSelectSelectedChip"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
128
|
+
}
|
|
129
|
+
export { LuMultiSelectPanelComponent };
|
|
130
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.3", ngImport: i0, type: LuMultiSelectPanelComponent, decorators: [{
|
|
131
|
+
type: Component,
|
|
132
|
+
args: [{ selector: 'lu-select-panel', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [A11yModule, AsyncPipe, FormsModule, LuIsOptionSelectedPipe, NgIf, NgFor, ɵLuOptionComponent, ɵLuOptionOutletDirective, ɵLuMultiSelectSelectedChipDirective, NgTemplateOutlet], template: "<!-- TODO : il faudrait remplacer la classe is-expanded par un attribut aria-expanded=\"true\"-->\r\n<ng-template #searchInputTpl>\r\n\t<label class=\"panel-search textfield mod-search mod-outlined lu-multiselect-search\">\r\n\t\t<input\r\n\t\t\t#searchInput\r\n\t\t\tclass=\"textfield-input\"\r\n\t\t\t[(ngModel)]=\"search\"\r\n\t\t\t(ngModelChange)=\"updateClue($event)\"\r\n\t\t\t[ngModelOptions]=\"{ standalone: true }\"\r\n\t\t/>\r\n\t\t<span class=\"u-mask textfield-label\">{{ intl.search }}</span>\r\n\t</label>\r\n</ng-template>\r\n\r\n<div\r\n\tclass=\"lu-picker-panel lu-option-picker-panel lu-multiselect-panel mod-multiple\"\r\n\trole=\"dialog\"\r\n\tcdkTrapFocus\r\n\t*ngIf=\"{ options: options$ | async } as ctx\"\r\n\t[cdkTrapFocusAutoCapture]=\"true\"\r\n\t[class.is-expanded]=\"isExpanded\"\r\n\t[attr.aria-expanded]=\"isExpanded ? 'true' : undefined\"\r\n>\r\n\t<div class=\"lu-multiselect-panel-form\" *ngIf=\"searchable && !isExpanded\">\r\n\t\t<ng-container *ngTemplateOutlet=\"searchInputTpl\"></ng-container>\r\n\t\t<!--\t\t<button class=\"button mod-text mod-icon lu-multiselect-expandbutton\" type=\"button\" (click)=\"toggleExpansion()\">-->\r\n\t\t<!--\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon\" [class.icon-fullscreen]=\"!isExpanded\" [class.icon-fullscreenExit]=\"isExpanded\"></span>-->\r\n\t\t<!--\t\t\t{{ isExpanded ? intl.reduce : intl.expand }}-->\r\n\t\t<!--\t\t</button>-->\r\n\t</div>\r\n\t<div class=\"lu-multiselect-panel-columns\">\r\n\t\t<div class=\"lu-multiselect-panel-columns-col1\" (keydown)=\"onLeftColumnKeydown($event)\">\r\n\t\t\t<div class=\"lu-multiselect-panel-form\" *ngIf=\"searchable && isExpanded\">\r\n\t\t\t\t<ng-container *ngTemplateOutlet=\"searchInputTpl\"></ng-container>\r\n\t\t\t</div>\r\n\t\t\t<div\r\n\t\t\t\tclass=\"lu-picker-content lu-multiselect-panel-columns-col1-content\"\r\n\t\t\t\t[class.is-loading]=\"loading$ | async\"\r\n\t\t\t\ttabindex=\"0\"\r\n\t\t\t\tcdkFocusInitial\r\n\t\t\t\trole=\"list\"\r\n\t\t\t\taria-multiselectable=\"true\"\r\n\t\t\t\t(scroll)=\"onScroll($event)\"\r\n\t\t\t>\r\n\t\t\t\t<ng-container *ngIf=\"searchable\">\r\n\t\t\t\t\t<div class=\"optionPlaceholder\" *ngIf=\"search && !ctx.options?.length\">\r\n\t\t\t\t\t\t<p class=\"optionPlaceholder-content u-marginBottom0\">{{ intl.emptyResults }}</p>\r\n\t\t\t\t\t\t<button type=\"button\" class=\"link\" (click)=\"updateClue(null); searchInput.nativeElement.focus()\">{{ intl.clearSearch }}</button>\r\n\t\t\t\t\t</div>\r\n\t\t\t\t</ng-container>\r\n\r\n\t\t\t\t<!--\t\t\t\t<ng-container *ngIf=\"canSelectAll\">-->\r\n\t\t\t\t<!--\t\t\t\t\t<label class=\"checkbox lu-multiselect-selectall\" role=\"option\" [for]=\"selectId + '-select-all'\">-->\r\n\t\t\t\t<!--\t\t\t\t\t\t<input-->\r\n\t\t\t\t<!--\t\t\t\t\t\t\tclass=\"checkbox-input\"-->\r\n\t\t\t\t<!--\t\t\t\t\t\t\ttype=\"checkbox\"-->\r\n\t\t\t\t<!--\t\t\t\t\t\t\t[class.is-incomplete]=\"(areAllOptionsSelected$ | async) !== true && selectedOptions.length\"-->\r\n\t\t\t\t<!--\t\t\t\t\t\t\t[id]=\"selectId + '-select-all'\"-->\r\n\t\t\t\t<!--\t\t\t\t\t\t\t[ngModel]=\"(areAllOptionsSelected$ | async) === true || !!selectedOptions.length\"-->\r\n\t\t\t\t<!--\t\t\t\t\t\t\t(ngModelChange)=\"toggleAll($event)\"-->\r\n\t\t\t\t<!--\t\t\t\t\t\t/>-->\r\n\t\t\t\t<!--\t\t\t\t\t\t<span class=\"checkbox-label\">{{ intl.selectAll }}</span>-->\r\n\t\t\t\t<!--\t\t\t\t\t</label>-->\r\n\t\t\t\t<!--\t\t\t\t</ng-container>-->\r\n\r\n\t\t\t\t<div class=\"lu-picker-content-option\">\r\n\t\t\t\t\t<lu-select-option\r\n\t\t\t\t\t\t*ngFor=\"let option of ctx.options; let index = index\"\r\n\t\t\t\t\t\t[option]=\"option\"\r\n\t\t\t\t\t\t[optionTpl]=\"optionTpl\"\r\n\t\t\t\t\t\t[optionIndex]=\"index\"\r\n\t\t\t\t\t\t[scrollIntoViewOptions]=\"{ block: 'nearest' }\"\r\n\t\t\t\t\t\t[isSelected]=\"option | luIsOptionSelected:optionComparer:selectedOptions\"\r\n\t\t\t\t\t\t(click)=\"toggleOption(option)\"\r\n\t\t\t\t\t></lu-select-option>\r\n\t\t\t\t</div>\r\n\r\n\t\t\t\t<div *ngIf=\"loading$ | async\" class=\"panel-loading loading lu-picker-loading\"></div>\r\n\t\t\t</div>\r\n\t\t</div>\r\n\t\t<div class=\"lu-multiselect-panel-columns-col2\" *ngIf=\"isExpanded\">\r\n\t\t\t<div class=\"lu-multiselect-emptystate\" *ngIf=\"!selectedOptions.length\">{{ intl.emptySelection }}</div>\r\n\t\t\t<div class=\"lu-multiselect-chips\" role=\"listbox\" tabindex=\"0\" *ngIf=\"selectedOptions.length\" (keydown)=\"onRightColumnKeydown($event)\">\r\n\t\t\t\t<div role=\"option\" class=\"chip lu-multiselect-chip\" *ngFor=\"let option of selectedOptions\" [luMultiSelectSelectedChip]=\"option\">\r\n\t\t\t\t\t<ng-container *luOptionOutlet=\"optionTpl; value: option\"></ng-container>\r\n\t\t\t\t\t<button type=\"button\" class=\"chip-kill\" tabindex=\"-1\" (click)=\"onChipKillClick(option)\"></button>\r\n\t\t\t\t</div>\r\n\t\t\t</div>\r\n\t\t\t<div *ngIf=\"selectedOptions.length\" class=\"lu-multiselect-panel-columns-col2-footer\">\r\n\t\t\t\t<button class=\"button mod-text\" type=\"button\" (click)=\"clear()\">{{ intl.clear }}</button>\r\n\t\t\t</div>\r\n\t\t</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: 2.25rem;--components-options-item-icon-color: var(--palettes-grey-800);--components-options-checkbox-left: .5rem;--components-options-checkbox-size: 1.25rem;--components-options-checkbox-color: var(--palettes-primary-700);--components-options-checkbox-border-radius: 6px;--components-options-checkbox-border-color: var(--palettes-grey-700);--components-options-establishment-multiple-padding: 2rem}.optionPlaceholder{display:block;padding:var(--components-options-item-padding-vertical) var(--components-options-item-padding-horizontal);font-style:italic;color:var(--palettes-grey-600)}.lu-multiselect-panel{display:flex;flex-direction:column;width:100%;border-radius:var(--commons-borderRadius-M);background-color:var(--colors-white-color);box-shadow:var(--commons-boxShadow-M);transition-property:width,min-width,margin-top,margin-left;transition-duration:var(--commons-animations-durations-fast);transition-timing-function:ease-in}.lu-multiselect-panel-form{padding:var(--spacings-XS);z-index:1}.lu-multiselect-panel-columns{display:flex;gap:var(--spacings-XS);padding:0;width:100%;transition:padding var(--commons-animations-durations-standard) ease}.is-expanded .lu-multiselect-panel-columns{padding:var(--spacings-XS)}[class*=lu-multiselect-panel-columns-col]{display:flex;flex-basis:100%;flex-direction:column}.is-expanded [class*=lu-multiselect-panel-columns-col]{border-radius:var(--commons-borderRadius-M)}.lu-multiselect-panel-columns-col2{align-items:flex-start;height:var(--components-picker-max-height);background-color:var(--palettes-grey-25);min-width:18rem}.is-expanded .lu-multiselect-panel-columns-col1{border:var(--commons-divider-width) solid var(--palettes-grey-200)}.lu-multiselect-panel-columns-col1-content{box-shadow:none;animation:none;padding:0;margin:0 var(--spacings-XS) var(--spacings-XS)}.lu-multiselect-panel-columns-col1-content,.lu-multiselect-chips{scroll-snap-type:y proximity;outline:none}.lu-multiselect-panel-columns-col1-content>*,.lu-multiselect-chips>*{scroll-snap-align:center}.lu-multiselect-panel-columns-col1-content:focus-visible,.lu-multiselect-chips:focus-visible{outline:2px solid var(--palettes-primary-700);outline-offset:2px}.lu-multiselect-search{flex-grow:1}.lu-multiselect-selectall{padding:var(--spacings-XS);font-weight:600;border-radius:var(--commons-borderRadius-M);margin-bottom:var(--spacings-XXS)}.lu-multiselect-selectall:hover,.lu-multiselect-selectall:focus-within{background-color:var(--palettes-grey-25)}.lu-multiselect-chips{overflow-y:auto;display:flex;max-height:18.5rem;flex-grow:1;flex-direction:column;align-items:flex-start;align-self:stretch;gap:var(--spacings-XXS);padding:var(--spacings-XS);border-top-left-radius:var(--commons-borderRadius-M);border-top-right-radius:var(--commons-borderRadius-M)}.lu-multiselect-panel-columns-col2-footer{display:flex;flex:0;align-items:flex-end;align-self:stretch;justify-content:flex-end;border-radius:0!important;border-top:var(--commons-divider-border);margin-top:auto;padding:var(--spacings-XXS) var(--spacings-XS)}.lu-multiselect-panel-form{display:flex;gap:var(--spacings-XS)}@media not all and (min-width: 50em){.lu-multiselect-expandbutton{display:none}}.lu-multiselect-emptystate{margin:auto;text-align:center;padding:var(--spacings-S);color:var(--palettes-grey-600)}\n"] }]
|
|
133
|
+
}], propDecorators: { searchInput: [{
|
|
134
|
+
type: ViewChild,
|
|
135
|
+
args: ['searchInput']
|
|
136
|
+
}], optionsQL: [{
|
|
137
|
+
type: ViewChildren,
|
|
138
|
+
args: [ɵLuOptionComponent]
|
|
139
|
+
}], selectedChipsQL: [{
|
|
140
|
+
type: ViewChildren,
|
|
141
|
+
args: [ɵLuMultiSelectSelectedChipDirective]
|
|
142
|
+
}], onKeyDown: [{
|
|
143
|
+
type: HostListener,
|
|
144
|
+
args: ['keydown', ['$event']]
|
|
145
|
+
}] } });
|
|
146
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFuZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmcvbXVsdGktc2VsZWN0L3BhbmVsL3BhbmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nL211bHRpLXNlbGVjdC9wYW5lbC9wYW5lbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLDBCQUEwQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDM0UsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0UsT0FBTyxFQUFpQix1QkFBdUIsRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLE1BQU0sRUFBYSxTQUFTLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hKLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFNBQVMsRUFBRSxrQkFBa0IsRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDZCQUE2QixDQUFDO0FBQ3RHLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUM3RCxPQUFPLEVBQTJCLHVCQUF1QixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkYsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDbkUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDaEUsT0FBTyxFQUFFLG1DQUFtQyxF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QUMvQjthQUNBLFNBQVMsQ0FBQyxDQUFDLGdCQUFnQixFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDLENBQUM7SUFDL0YsQ0FBQztJQUVTLHlCQUF5QjtRQUNsQyxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSwwQkFBMEIsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDcEcsQ0FBQzs4R0F2SlcsMkJBQTJCO2tHQUEzQiwyQkFBMkIsK1BBbUJ6QixrQkFBa0IscUVBR2xCLG1DQUFtQyxnREMzQ2xELHErSkE4RkEsdzhHRDNFVyxVQUFVLHFMQUFFLFNBQVMsNkNBQUUsV0FBVywwbUJBQUUsc0JBQXNCLDJEQUFFLElBQUksNkZBQUUsS0FBSyxtSEFBRSxrQkFBa0Isb0pBQUUsd0JBQXdCLGdIQUFFLG1DQUFtQywrR0FBRSxnQkFBZ0I7O1NBRTFLLDJCQUEyQjsyRkFBM0IsMkJBQTJCO2tCQVJ2QyxTQUFTOytCQUNDLGlCQUFpQixtQkFHVix1QkFBdUIsQ0FBQyxNQUFNLGNBQ25DLElBQUksV0FDUCxDQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLHNCQUFzQixFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsa0JBQWtCLEVBQUUsd0JBQXdCLEVBQUUsbUNBQW1DLEVBQUUsZ0JBQWdCLENBQUM7OEJBbUJ2TCxXQUFXO3NCQURWLFNBQVM7dUJBQUMsYUFBYTtnQkFHVSxTQUFTO3NCQUExQyxZQUFZO3VCQUFDLGtCQUFrQjtnQkFHbUIsZUFBZTtzQkFBakUsWUFBWTt1QkFBQyxtQ0FBbUM7Z0JBdUNqRCxTQUFTO3NCQURSLFlBQVk7dUJBQUMsU0FBUyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQTExeU1vZHVsZSwgQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XHJcbmltcG9ydCB7IEFzeW5jUGlwZSwgTmdGb3IsIE5nSWYsIE5nVGVtcGxhdGVPdXRsZXQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIGluamVjdCwgUXVlcnlMaXN0LCBWaWV3Q2hpbGQsIFZpZXdDaGlsZHJlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgZ2V0SW50bCB9IGZyb20gJ0BsdWNjYS1mcm9udC9uZy9jb3JlJztcclxuaW1wb3J0IHsgU0VMRUNUX0lELCDJtUx1T3B0aW9uQ29tcG9uZW50LCDJtUx1T3B0aW9uT3V0bGV0RGlyZWN0aXZlIH0gZnJvbSAnQGx1Y2NhLWZyb250L25nL2NvcmUtc2VsZWN0JztcclxuaW1wb3J0IHsgYXN5bmNTY2hlZHVsZXIsIGZpbHRlciwgbWFwLCBvYnNlcnZlT24sIHRha2UsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBMdU11bHRpU2VsZWN0UGFuZWxSZWYgfSBmcm9tICcuLi9pbnB1dC9wYW5lbC5tb2RlbCc7XHJcbmltcG9ydCB7IElMdU11bHRpU2VsZWN0UGFuZWxEYXRhLCBNVUxUSV9TRUxFQ1RfUEFORUxfREFUQSB9IGZyb20gJy4uL3NlbGVjdC5tb2RlbCc7XHJcbmltcG9ydCB7IExVX01VTFRJX1NFTEVDVF9UUkFOU0xBVElPTlMgfSBmcm9tICcuLi9zZWxlY3QudHJhbnNsYXRlJztcclxuaW1wb3J0IHsgTHVJc09wdGlvblNlbGVjdGVkUGlwZSB9IGZyb20gJy4vb3B0aW9uLXNlbGVjdGVkLnBpcGUnO1xyXG5pbXBvcnQgeyDJtUx1TXVsdGlTZWxlY3RTZWxlY3RlZENoaXBEaXJlY3RpdmUgfSBmcm9tICcuL3NlbGVjdGVkLWNoaXAuZGlyZWN0aXZlJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnbHUtc2VsZWN0LXBhbmVsJyxcclxuXHR0ZW1wbGF0ZVVybDogJy4vcGFuZWwuY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsczogWycuL3BhbmVsLmNvbXBvbmVudC5zY3NzJ10sXHJcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcblx0c3RhbmRhbG9uZTogdHJ1ZSxcclxuXHRpbXBvcnRzOiBbQTExeU1vZHVsZSwgQXN5bmNQaXBlLCBGb3Jtc01vZHVsZSwgTHVJc09wdGlvblNlbGVjdGVkUGlwZSwgTmdJZiwgTmdGb3IsIMm1THVPcHRpb25Db21wb25lbnQsIMm1THVPcHRpb25PdXRsZXREaXJlY3RpdmUsIMm1THVNdWx0aVNlbGVjdFNlbGVjdGVkQ2hpcERpcmVjdGl2ZSwgTmdUZW1wbGF0ZU91dGxldF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMdU11bHRpU2VsZWN0UGFuZWxDb21wb25lbnQ8VD4gaW1wbGVtZW50cyBBZnRlclZpZXdJbml0IHtcclxuXHRwcm90ZWN0ZWQgcGFuZWxEYXRhID0gaW5qZWN0PElMdU11bHRpU2VsZWN0UGFuZWxEYXRhPFQ+PihNVUxUSV9TRUxFQ1RfUEFORUxfREFUQSk7XHJcblx0cGFuZWxSZWYgPSBpbmplY3Q8THVNdWx0aVNlbGVjdFBhbmVsUmVmPFQ+PihMdU11bHRpU2VsZWN0UGFuZWxSZWYpO1xyXG5cdHNlbGVjdElkID0gaW5qZWN0KFNFTEVDVF9JRCk7XHJcblx0aW50bCA9IGdldEludGwoTFVfTVVMVElfU0VMRUNUX1RSQU5TTEFUSU9OUyk7XHJcblx0aXNFeHBhbmRlZCA9IHRoaXMucGFuZWxEYXRhLmV4cGFuZGVkO1xyXG5cclxuXHRvcHRpb25zJCA9IHRoaXMucGFuZWxEYXRhLm9wdGlvbnMkO1xyXG5cdGxvYWRpbmckID0gdGhpcy5wYW5lbERhdGEubG9hZGluZyQ7XHJcblx0YXJlQWxsT3B0aW9uc1NlbGVjdGVkJCA9IHRoaXMucGFuZWxEYXRhLmFyZUFsbE9wdGlvbnNTZWxlY3RlZCQ7XHJcblx0Y2FuU2VsZWN0QWxsID0gZmFsc2U7IC8vIFRPRE8gY29ubmVjdCB0byBwYW5lbCBvcHRpb25zIHdoZW4gd2UnbGwgYmUgb2sgb24gZGVzaWduaW5nIHNlbGVjdCBhbGxcclxuXHRvcHRpb25Db21wYXJlciA9IHRoaXMucGFuZWxEYXRhLm9wdGlvbkNvbXBhcmVyO1xyXG5cdHNlbGVjdGVkT3B0aW9uczogVFtdID0gdGhpcy5wYW5lbERhdGEuaW5pdGlhbFZhbHVlIHx8IFtdO1xyXG5cdG9wdGlvblRwbCA9IHRoaXMucGFuZWxEYXRhLm9wdGlvblRwbDtcclxuXHRzZWFyY2hhYmxlID0gdGhpcy5wYW5lbERhdGEuc2VhcmNoYWJsZTtcclxuXHJcblx0QFZpZXdDaGlsZCgnc2VhcmNoSW5wdXQnKVxyXG5cdHNlYXJjaElucHV0OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+IHwgdW5kZWZpbmVkO1xyXG5cclxuXHRAVmlld0NoaWxkcmVuKMm1THVPcHRpb25Db21wb25lbnQpIG9wdGlvbnNRTDogUXVlcnlMaXN0PMm1THVPcHRpb25Db21wb25lbnQ8VD4+O1xyXG5cdHByaXZhdGUgbGVmdENvbHVtbktleU1hbmFnZXI6IEFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyPMm1THVPcHRpb25Db21wb25lbnQ8VD4+O1xyXG5cclxuXHRAVmlld0NoaWxkcmVuKMm1THVNdWx0aVNlbGVjdFNlbGVjdGVkQ2hpcERpcmVjdGl2ZSkgc2VsZWN0ZWRDaGlwc1FMOiBRdWVyeUxpc3Q8ybVMdU11bHRpU2VsZWN0U2VsZWN0ZWRDaGlwRGlyZWN0aXZlPFQ+PjtcclxuXHRwcml2YXRlIHJpZ2h0Q29sdW1uS2V5TWFuYWdlcjogQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXI8ybVMdU11bHRpU2VsZWN0U2VsZWN0ZWRDaGlwRGlyZWN0aXZlPFQ+PjtcclxuXHJcblx0c2VhcmNoOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcclxuXHJcblx0b25TY3JvbGwoZXZ0OiBFdmVudCk6IHZvaWQge1xyXG5cdFx0aWYgKCEoZXZ0LnRhcmdldCBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSkge1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKGV2dC50YXJnZXQuc2Nyb2xsVG9wID09PSAwKSB7XHJcblx0XHRcdHRoaXMucGFuZWxSZWYucHJldmlvdXNQYWdlLmVtaXQoKTtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAoZXZ0LnRhcmdldC5zY3JvbGxIZWlnaHQgLSBldnQudGFyZ2V0LnNjcm9sbFRvcCAtIGV2dC50YXJnZXQuY2xpZW50SGVpZ2h0IDwgMSkge1xyXG5cdFx0XHR0aGlzLnBhbmVsUmVmLm5leHRQYWdlLmVtaXQoKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcclxuXHRcdGlmICghdGhpcy5vcHRpb25zUUwpIHtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXMuaW5pdExlZnRDb2x1bW5LZXlNYW5hZ2VyKCk7XHJcblx0XHR0aGlzLmluaXRSaWdodENvbHVtbktleU1hbmFnZXIoKTtcclxuXHJcblx0XHRpZiAodGhpcy5zZWFyY2hJbnB1dCkge1xyXG5cdFx0XHRzZXRUaW1lb3V0KCgpID0+IHRoaXMuc2VhcmNoSW5wdXQubmF0aXZlRWxlbWVudC5mb2N1cygpKTtcclxuXHRcdH1cclxuXHJcblx0XHRpZiAodGhpcy5pc0V4cGFuZGVkKSB7XHJcblx0XHRcdHRoaXMucGFuZWxSZWYudXNlRXhwYW5kZWRQb3NpdGlvbigpO1xyXG5cdFx0fSBlbHNlIHtcclxuXHRcdFx0dGhpcy5wYW5lbFJlZi51c2VEZWZhdWx0UG9zaXRpb24oKTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxyXG5cdG9uS2V5RG93bigkZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuXHRcdGlmICgkZXZlbnQua2V5ID09PSAnRXNjYXBlJykge1xyXG5cdFx0XHRyZXR1cm4gdGhpcy5wYW5lbFJlZi5jbG9zZSgpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0b25MZWZ0Q29sdW1uS2V5ZG93bigkZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuXHRcdGlmICgkZXZlbnQuY29kZSA9PT0gJ1NwYWNlJyB8fCAkZXZlbnQuY29kZSA9PT0gJ0VudGVyJykge1xyXG5cdFx0XHR0aGlzLnRvZ2dsZU9wdGlvbih0aGlzLmxlZnRDb2x1bW5LZXlNYW5hZ2VyPy5hY3RpdmVJdGVtPy5vcHRpb24pO1xyXG5cdFx0XHQkZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXMubGVmdENvbHVtbktleU1hbmFnZXI/Lm9uS2V5ZG93bigkZXZlbnQpO1xyXG5cdH1cclxuXHJcblx0b25SaWdodENvbHVtbktleWRvd24oJGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XHJcblx0XHRjb25zdCBvcHRpb24gPSB0aGlzLnJpZ2h0Q29sdW1uS2V5TWFuYWdlcj8uYWN0aXZlSXRlbT8ub3B0aW9uO1xyXG5cclxuXHRcdGlmIChvcHRpb24gJiYgKCRldmVudC5jb2RlID09PSAnU3BhY2UnIHx8ICRldmVudC5jb2RlID09PSAnRW50ZXInKSkge1xyXG5cdFx0XHR0aGlzLm9uQ2hpcEtpbGxDbGljayhvcHRpb24pO1xyXG5cdFx0XHQkZXZlbnQucHJldmVudERlZmF1bHQoKTtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXMucmlnaHRDb2x1bW5LZXlNYW5hZ2VyPy5vbktleWRvd24oJGV2ZW50KTtcclxuXHR9XHJcblxyXG5cdC8vIHRvZ2dsZUFsbChzaG91bGRTZWxlY3RBbGw6IGJvb2xlYW4pOiB2b2lkIHtcclxuXHQvLyBcdGlmIChzaG91bGRTZWxlY3RBbGwpIHtcclxuXHQvLyBcdFx0dGhpcy5wYW5lbFJlZi5zZWxlY3RBbGwuZW1pdCgpO1xyXG5cdC8vIFx0fSBlbHNlIHtcclxuXHQvLyBcdFx0dGhpcy5jbGVhcigpO1xyXG5cdC8vIFx0fVxyXG5cdC8vIH1cclxuXHJcblx0dXBkYXRlQ2x1ZShjbHVlOiBzdHJpbmcgfCBudWxsKTogdm9pZCB7XHJcblx0XHR0aGlzLnNlYXJjaCA9IGNsdWU7XHJcblx0XHR0aGlzLnBhbmVsUmVmLmNsdWVDaGFuZ2VkLmVtaXQoY2x1ZSk7XHJcblxyXG5cdFx0c2V0VGltZW91dCgoKSA9PiB0aGlzLmxlZnRDb2x1bW5LZXlNYW5hZ2VyLnNldEZpcnN0SXRlbUFjdGl2ZSgpKTtcclxuXHR9XHJcblxyXG5cdHRvZ2dsZU9wdGlvbihvcHRpb246IFQpOiB2b2lkIHtcclxuXHRcdGNvbnN0IHNlbGVjdGVkT3B0aW9uID0gdGhpcy5zZWxlY3RlZE9wdGlvbnMuZmluZCgobykgPT4gdGhpcy5vcHRpb25Db21wYXJlcihvLCBvcHRpb24pKTtcclxuXHRcdHRoaXMuc2VsZWN0ZWRPcHRpb25zID0gc2VsZWN0ZWRPcHRpb24gPyB0aGlzLnNlbGVjdGVkT3B0aW9ucy5maWx0ZXIoKG8pID0+IG8gIT09IHNlbGVjdGVkT3B0aW9uKSA6IFsuLi50aGlzLnNlbGVjdGVkT3B0aW9ucywgb3B0aW9uXTtcclxuXHRcdHRoaXMucGFuZWxSZWYuZW1pdFZhbHVlKHRoaXMuc2VsZWN0ZWRPcHRpb25zKTtcclxuXHRcdHRoaXMubGVmdENvbHVtbktleU1hbmFnZXI/LnNldEFjdGl2ZUl0ZW0odGhpcy5vcHRpb25zUUwudG9BcnJheSgpLmZpbmRJbmRleCgobykgPT4gby5vcHRpb24gPT09IG9wdGlvbikpO1xyXG5cdH1cclxuXHJcblx0b25DaGlwS2lsbENsaWNrKG9wdGlvbjogVCk6IHZvaWQge1xyXG5cdFx0Y29uc3Qgb3B0aW9uVG9VbnNlbGVjdEluZGV4ID0gdGhpcy5zZWxlY3RlZE9wdGlvbnMuZmluZEluZGV4KChvKSA9PiB0aGlzLm9wdGlvbkNvbXBhcmVyKG8sIG9wdGlvbikpO1xyXG5cdFx0dGhpcy5zZWxlY3RlZE9wdGlvbnMgPSB0aGlzLnNlbGVjdGVkT3B0aW9ucy5maWx0ZXIoKF8sIGluZGV4KSA9PiBpbmRleCAhPT0gb3B0aW9uVG9VbnNlbGVjdEluZGV4KTtcclxuXHRcdHRoaXMucGFuZWxSZWYuZW1pdFZhbHVlKHRoaXMuc2VsZWN0ZWRPcHRpb25zKTtcclxuXHJcblx0XHRpZiAodGhpcy5zZWxlY3RlZE9wdGlvbnMubGVuZ3RoICYmIHRoaXMucmlnaHRDb2x1bW5LZXlNYW5hZ2VyKSB7XHJcblx0XHRcdG9wdGlvblRvVW5zZWxlY3RJbmRleCA+PSB0aGlzLnNlbGVjdGVkT3B0aW9ucy5sZW5ndGggPyB0aGlzLnJpZ2h0Q29sdW1uS2V5TWFuYWdlci5zZXRQcmV2aW91c0l0ZW1BY3RpdmUoKSA6IHRoaXMucmlnaHRDb2x1bW5LZXlNYW5hZ2VyLnNldE5leHRJdGVtQWN0aXZlKCk7XHJcblx0XHR9XHJcblx0fVxyXG5cclxuXHRjbGVhcigpOiB2b2lkIHtcclxuXHRcdHRoaXMuc2VsZWN0ZWRPcHRpb25zID0gW107XHJcblx0XHR0aGlzLnBhbmVsUmVmLmVtaXRWYWx1ZSh0aGlzLnNlbGVjdGVkT3B0aW9ucyk7XHJcblx0fVxyXG5cclxuXHRwcm90ZWN0ZWQgaW5pdExlZnRDb2x1bW5LZXlNYW5hZ2VyKCk6IHZvaWQge1xyXG5cdFx0dGhpcy5sZWZ0Q29sdW1uS2V5TWFuYWdlciA9IG5ldyBBY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlcih0aGlzLm9wdGlvbnNRTCkud2l0aEhvbWVBbmRFbmQoKTtcclxuXHJcblx0XHRpZiAodGhpcy5zZWxlY3RlZE9wdGlvbnMpIHtcclxuXHRcdFx0dGhpcy5vcHRpb25zJFxyXG5cdFx0XHRcdD8ucGlwZShcclxuXHRcdFx0XHRcdG9ic2VydmVPbihhc3luY1NjaGVkdWxlciksXHJcblx0XHRcdFx0XHRtYXAoKG9wdGlvbnMpID0+ICh0aGlzLnNlbGVjdGVkT3B0aW9ucy5sZW5ndGggPyBvcHRpb25zLmZpbmRJbmRleCgobykgPT4gdGhpcy5vcHRpb25Db21wYXJlcihvLCB0aGlzLnNlbGVjdGVkT3B0aW9uc1swXSkpIDogLTEpKSxcclxuXHRcdFx0XHRcdGZpbHRlcigoaW5kZXgpID0+IGluZGV4ICE9PSAtMSksXHJcblx0XHRcdFx0XHR0YWtlKDEpLFxyXG5cdFx0XHRcdFx0dGFrZVVudGlsKHRoaXMucGFuZWxSZWYuY2xvc2VkKSxcclxuXHRcdFx0XHQpXHJcblx0XHRcdFx0LnN1YnNjcmliZSgoc2VsZWN0ZWRJbmRleCkgPT4gdGhpcy5sZWZ0Q29sdW1uS2V5TWFuYWdlci5zZXRBY3RpdmVJdGVtKHNlbGVjdGVkSW5kZXgpKTtcclxuXHRcdH1cclxuXHJcblx0XHR0aGlzLmxlZnRDb2x1bW5LZXlNYW5hZ2VyLmNoYW5nZVxyXG5cdFx0XHQucGlwZShcclxuXHRcdFx0XHRtYXAoKCkgPT4gdGhpcy5sZWZ0Q29sdW1uS2V5TWFuYWdlci5hY3RpdmVJdGVtPy5pZCksXHJcblx0XHRcdFx0dGFrZVVudGlsKHRoaXMucGFuZWxSZWYuY2xvc2VkKSxcclxuXHRcdFx0KVxyXG5cdFx0XHQuc3Vic2NyaWJlKChhY3RpdmVEZXNjZW5kYW50KSA9PiB0aGlzLnBhbmVsUmVmLmFjdGl2ZU9wdGlvbklkQ2hhbmdlZC5lbWl0KGFjdGl2ZURlc2NlbmRhbnQpKTtcclxuXHR9XHJcblxyXG5cdHByb3RlY3RlZCBpbml0UmlnaHRDb2x1bW5LZXlNYW5hZ2VyKCk6IHZvaWQge1xyXG5cdFx0dGhpcy5yaWdodENvbHVtbktleU1hbmFnZXIgPSBuZXcgQWN0aXZlRGVzY2VuZGFudEtleU1hbmFnZXIodGhpcy5zZWxlY3RlZENoaXBzUUwpLndpdGhIb21lQW5kRW5kKCk7XHJcblx0fVxyXG59XHJcbiIsIjwhLS0gVE9ETyA6IGlsIGZhdWRyYWl0IHJlbXBsYWNlciBsYSBjbGFzc2UgaXMtZXhwYW5kZWQgcGFyIHVuIGF0dHJpYnV0IGFyaWEtZXhwYW5kZWQ9XCJ0cnVlXCItLT5cclxuPG5nLXRlbXBsYXRlICNzZWFyY2hJbnB1dFRwbD5cclxuXHQ8bGFiZWwgY2xhc3M9XCJwYW5lbC1zZWFyY2ggdGV4dGZpZWxkIG1vZC1zZWFyY2ggbW9kLW91dGxpbmVkIGx1LW11bHRpc2VsZWN0LXNlYXJjaFwiPlxyXG5cdFx0PGlucHV0XHJcblx0XHRcdCNzZWFyY2hJbnB1dFxyXG5cdFx0XHRjbGFzcz1cInRleHRmaWVsZC1pbnB1dFwiXHJcblx0XHRcdFsobmdNb2RlbCldPVwic2VhcmNoXCJcclxuXHRcdFx0KG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlQ2x1ZSgkZXZlbnQpXCJcclxuXHRcdFx0W25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcclxuXHRcdC8+XHJcblx0XHQ8c3BhbiBjbGFzcz1cInUtbWFzayB0ZXh0ZmllbGQtbGFiZWxcIj57eyBpbnRsLnNlYXJjaCB9fTwvc3Bhbj5cclxuXHQ8L2xhYmVsPlxyXG48L25nLXRlbXBsYXRlPlxyXG5cclxuPGRpdlxyXG5cdGNsYXNzPVwibHUtcGlja2VyLXBhbmVsIGx1LW9wdGlvbi1waWNrZXItcGFuZWwgbHUtbXVsdGlzZWxlY3QtcGFuZWwgbW9kLW11bHRpcGxlXCJcclxuXHRyb2xlPVwiZGlhbG9nXCJcclxuXHRjZGtUcmFwRm9jdXNcclxuXHQqbmdJZj1cInsgb3B0aW9uczogb3B0aW9ucyQgfCBhc3luYyB9IGFzIGN0eFwiXHJcblx0W2Nka1RyYXBGb2N1c0F1dG9DYXB0dXJlXT1cInRydWVcIlxyXG5cdFtjbGFzcy5pcy1leHBhbmRlZF09XCJpc0V4cGFuZGVkXCJcclxuXHRbYXR0ci5hcmlhLWV4cGFuZGVkXT1cImlzRXhwYW5kZWQgPyAndHJ1ZScgOiB1bmRlZmluZWRcIlxyXG4+XHJcblx0PGRpdiBjbGFzcz1cImx1LW11bHRpc2VsZWN0LXBhbmVsLWZvcm1cIiAqbmdJZj1cInNlYXJjaGFibGUgJiYgIWlzRXhwYW5kZWRcIj5cclxuXHRcdDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJzZWFyY2hJbnB1dFRwbFwiPjwvbmctY29udGFpbmVyPlxyXG5cdFx0PCEtLVx0XHQ8YnV0dG9uIGNsYXNzPVwiYnV0dG9uIG1vZC10ZXh0IG1vZC1pY29uIGx1LW11bHRpc2VsZWN0LWV4cGFuZGJ1dHRvblwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwidG9nZ2xlRXhwYW5zaW9uKClcIj4tLT5cclxuXHRcdDwhLS1cdFx0XHQ8c3BhbiBhcmlhLWhpZGRlbj1cInRydWVcIiBjbGFzcz1cImx1Y2NhLWljb25cIiBbY2xhc3MuaWNvbi1mdWxsc2NyZWVuXT1cIiFpc0V4cGFuZGVkXCIgW2NsYXNzLmljb24tZnVsbHNjcmVlbkV4aXRdPVwiaXNFeHBhbmRlZFwiPjwvc3Bhbj4tLT5cclxuXHRcdDwhLS1cdFx0XHR7eyBpc0V4cGFuZGVkID8gaW50bC5yZWR1Y2UgOiBpbnRsLmV4cGFuZCB9fS0tPlxyXG5cdFx0PCEtLVx0XHQ8L2J1dHRvbj4tLT5cclxuXHQ8L2Rpdj5cclxuXHQ8ZGl2IGNsYXNzPVwibHUtbXVsdGlzZWxlY3QtcGFuZWwtY29sdW1uc1wiPlxyXG5cdFx0PGRpdiBjbGFzcz1cImx1LW11bHRpc2VsZWN0LXBhbmVsLWNvbHVtbnMtY29sMVwiIChrZXlkb3duKT1cIm9uTGVmdENvbHVtbktleWRvd24oJGV2ZW50KVwiPlxyXG5cdFx0XHQ8ZGl2IGNsYXNzPVwibHUtbXVsdGlzZWxlY3QtcGFuZWwtZm9ybVwiICpuZ0lmPVwic2VhcmNoYWJsZSAmJiBpc0V4cGFuZGVkXCI+XHJcblx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInNlYXJjaElucHV0VHBsXCI+PC9uZy1jb250YWluZXI+XHJcblx0XHRcdDwvZGl2PlxyXG5cdFx0XHQ8ZGl2XHJcblx0XHRcdFx0Y2xhc3M9XCJsdS1waWNrZXItY29udGVudCBsdS1tdWx0aXNlbGVjdC1wYW5lbC1jb2x1bW5zLWNvbDEtY29udGVudFwiXHJcblx0XHRcdFx0W2NsYXNzLmlzLWxvYWRpbmddPVwibG9hZGluZyQgfCBhc3luY1wiXHJcblx0XHRcdFx0dGFiaW5kZXg9XCIwXCJcclxuXHRcdFx0XHRjZGtGb2N1c0luaXRpYWxcclxuXHRcdFx0XHRyb2xlPVwibGlzdFwiXHJcblx0XHRcdFx0YXJpYS1tdWx0aXNlbGVjdGFibGU9XCJ0cnVlXCJcclxuXHRcdFx0XHQoc2Nyb2xsKT1cIm9uU2Nyb2xsKCRldmVudClcIlxyXG5cdFx0XHQ+XHJcblx0XHRcdFx0PG5nLWNvbnRhaW5lciAqbmdJZj1cInNlYXJjaGFibGVcIj5cclxuXHRcdFx0XHRcdDxkaXYgY2xhc3M9XCJvcHRpb25QbGFjZWhvbGRlclwiICpuZ0lmPVwic2VhcmNoICYmICFjdHgub3B0aW9ucz8ubGVuZ3RoXCI+XHJcblx0XHRcdFx0XHRcdDxwIGNsYXNzPVwib3B0aW9uUGxhY2Vob2xkZXItY29udGVudCB1LW1hcmdpbkJvdHRvbTBcIj57eyBpbnRsLmVtcHR5UmVzdWx0cyB9fTwvcD5cclxuXHRcdFx0XHRcdFx0PGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJsaW5rXCIgKGNsaWNrKT1cInVwZGF0ZUNsdWUobnVsbCk7IHNlYXJjaElucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKVwiPnt7IGludGwuY2xlYXJTZWFyY2ggfX08L2J1dHRvbj5cclxuXHRcdFx0XHRcdDwvZGl2PlxyXG5cdFx0XHRcdDwvbmctY29udGFpbmVyPlxyXG5cclxuXHRcdFx0XHQ8IS0tXHRcdFx0XHQ8bmctY29udGFpbmVyICpuZ0lmPVwiY2FuU2VsZWN0QWxsXCI+LS0+XHJcblx0XHRcdFx0PCEtLVx0XHRcdFx0XHQ8bGFiZWwgY2xhc3M9XCJjaGVja2JveCBsdS1tdWx0aXNlbGVjdC1zZWxlY3RhbGxcIiByb2xlPVwib3B0aW9uXCIgW2Zvcl09XCJzZWxlY3RJZCArICctc2VsZWN0LWFsbCdcIj4tLT5cclxuXHRcdFx0XHQ8IS0tXHRcdFx0XHRcdFx0PGlucHV0LS0+XHJcblx0XHRcdFx0PCEtLVx0XHRcdFx0XHRcdFx0Y2xhc3M9XCJjaGVja2JveC1pbnB1dFwiLS0+XHJcblx0XHRcdFx0PCEtLVx0XHRcdFx0XHRcdFx0dHlwZT1cImNoZWNrYm94XCItLT5cclxuXHRcdFx0XHQ8IS0tXHRcdFx0XHRcdFx0XHRbY2xhc3MuaXMtaW5jb21wbGV0ZV09XCIoYXJlQWxsT3B0aW9uc1NlbGVjdGVkJCB8IGFzeW5jKSAhPT0gdHJ1ZSAmJiBzZWxlY3RlZE9wdGlvbnMubGVuZ3RoXCItLT5cclxuXHRcdFx0XHQ8IS0tXHRcdFx0XHRcdFx0XHRbaWRdPVwic2VsZWN0SWQgKyAnLXNlbGVjdC1hbGwnXCItLT5cclxuXHRcdFx0XHQ8IS0tXHRcdFx0XHRcdFx0XHRbbmdNb2RlbF09XCIoYXJlQWxsT3B0aW9uc1NlbGVjdGVkJCB8IGFzeW5jKSA9PT0gdHJ1ZSB8fCAhIXNlbGVjdGVkT3B0aW9ucy5sZW5ndGhcIi0tPlxyXG5cdFx0XHRcdDwhLS1cdFx0XHRcdFx0XHRcdChuZ01vZGVsQ2hhbmdlKT1cInRvZ2dsZUFsbCgkZXZlbnQpXCItLT5cclxuXHRcdFx0XHQ8IS0tXHRcdFx0XHRcdFx0Lz4tLT5cclxuXHRcdFx0XHQ8IS0tXHRcdFx0XHRcdFx0PHNwYW4gY2xhc3M9XCJjaGVja2JveC1sYWJlbFwiPnt7IGludGwuc2VsZWN0QWxsIH19PC9zcGFuPi0tPlxyXG5cdFx0XHRcdDwhLS1cdFx0XHRcdFx0PC9sYWJlbD4tLT5cclxuXHRcdFx0XHQ8IS0tXHRcdFx0XHQ8L25nLWNvbnRhaW5lcj4tLT5cclxuXHJcblx0XHRcdFx0PGRpdiBjbGFzcz1cImx1LXBpY2tlci1jb250ZW50LW9wdGlvblwiPlxyXG5cdFx0XHRcdFx0PGx1LXNlbGVjdC1vcHRpb25cclxuXHRcdFx0XHRcdFx0Km5nRm9yPVwibGV0IG9wdGlvbiBvZiBjdHgub3B0aW9uczsgbGV0IGluZGV4ID0gaW5kZXhcIlxyXG5cdFx0XHRcdFx0XHRbb3B0aW9uXT1cIm9wdGlvblwiXHJcblx0XHRcdFx0XHRcdFtvcHRpb25UcGxdPVwib3B0aW9uVHBsXCJcclxuXHRcdFx0XHRcdFx0W29wdGlvbkluZGV4XT1cImluZGV4XCJcclxuXHRcdFx0XHRcdFx0W3Njcm9sbEludG9WaWV3T3B0aW9uc109XCJ7IGJsb2NrOiAnbmVhcmVzdCcgfVwiXHJcblx0XHRcdFx0XHRcdFtpc1NlbGVjdGVkXT1cIm9wdGlvbiB8IGx1SXNPcHRpb25TZWxlY3RlZDpvcHRpb25Db21wYXJlcjpzZWxlY3RlZE9wdGlvbnNcIlxyXG5cdFx0XHRcdFx0XHQoY2xpY2spPVwidG9nZ2xlT3B0aW9uKG9wdGlvbilcIlxyXG5cdFx0XHRcdFx0PjwvbHUtc2VsZWN0LW9wdGlvbj5cclxuXHRcdFx0XHQ8L2Rpdj5cclxuXHJcblx0XHRcdFx0PGRpdiAqbmdJZj1cImxvYWRpbmckIHwgYXN5bmNcIiBjbGFzcz1cInBhbmVsLWxvYWRpbmcgbG9hZGluZyBsdS1waWNrZXItbG9hZGluZ1wiPjwvZGl2PlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdDwvZGl2PlxyXG5cdFx0PGRpdiBjbGFzcz1cImx1LW11bHRpc2VsZWN0LXBhbmVsLWNvbHVtbnMtY29sMlwiICpuZ0lmPVwiaXNFeHBhbmRlZFwiPlxyXG5cdFx0XHQ8ZGl2IGNsYXNzPVwibHUtbXVsdGlzZWxlY3QtZW1wdHlzdGF0ZVwiICpuZ0lmPVwiIXNlbGVjdGVkT3B0aW9ucy5sZW5ndGhcIj57eyBpbnRsLmVtcHR5U2VsZWN0aW9uIH19PC9kaXY+XHJcblx0XHRcdDxkaXYgY2xhc3M9XCJsdS1tdWx0aXNlbGVjdC1jaGlwc1wiIHJvbGU9XCJsaXN0Ym94XCIgdGFiaW5kZXg9XCIwXCIgKm5nSWY9XCJzZWxlY3RlZE9wdGlvbnMubGVuZ3RoXCIgKGtleWRvd24pPVwib25SaWdodENvbHVtbktleWRvd24oJGV2ZW50KVwiPlxyXG5cdFx0XHRcdDxkaXYgcm9sZT1cIm9wdGlvblwiIGNsYXNzPVwiY2hpcCBsdS1tdWx0aXNlbGVjdC1jaGlwXCIgKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBzZWxlY3RlZE9wdGlvbnNcIiBbbHVNdWx0aVNlbGVjdFNlbGVjdGVkQ2hpcF09XCJvcHRpb25cIj5cclxuXHRcdFx0XHRcdDxuZy1jb250YWluZXIgKmx1T3B0aW9uT3V0bGV0PVwib3B0aW9uVHBsOyB2YWx1ZTogb3B0aW9uXCI+PC9uZy1jb250YWluZXI+XHJcblx0XHRcdFx0XHQ8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImNoaXAta2lsbFwiIHRhYmluZGV4PVwiLTFcIiAoY2xpY2spPVwib25DaGlwS2lsbENsaWNrKG9wdGlvbilcIj48L2J1dHRvbj5cclxuXHRcdFx0XHQ8L2Rpdj5cclxuXHRcdFx0PC9kaXY+XHJcblx0XHRcdDxkaXYgKm5nSWY9XCJzZWxlY3RlZE9wdGlvbnMubGVuZ3RoXCIgY2xhc3M9XCJsdS1tdWx0aXNlbGVjdC1wYW5lbC1jb2x1bW5zLWNvbDItZm9vdGVyXCI+XHJcblx0XHRcdFx0PGJ1dHRvbiBjbGFzcz1cImJ1dHRvbiBtb2QtdGV4dFwiIHR5cGU9XCJidXR0b25cIiAoY2xpY2spPVwiY2xlYXIoKVwiPnt7IGludGwuY2xlYXIgfX08L2J1dHRvbj5cclxuXHRcdFx0PC9kaXY+XHJcblx0XHQ8L2Rpdj5cclxuXHQ8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
|