@lucca-front/ng 9.0.3 → 9.0.4-select.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.
Files changed (44) hide show
  1. package/esm2020/date/lib/calendar/calendar-input.component.mjs +4 -1
  2. package/esm2020/date/lib/calendar/calendar-input.module.mjs +4 -6
  3. package/esm2020/select2/lib/index.mjs +5 -0
  4. package/esm2020/select2/lib/input/index.mjs +3 -0
  5. package/esm2020/select2/lib/input/select-input.component.mjs +343 -0
  6. package/esm2020/select2/lib/input/select-input.module.mjs +20 -0
  7. package/esm2020/select2/lib/option/displayer.directive.mjs +23 -0
  8. package/esm2020/select2/lib/option/index.mjs +5 -0
  9. package/esm2020/select2/lib/option/option.component.mjs +57 -0
  10. package/esm2020/select2/lib/option/option.directive.mjs +23 -0
  11. package/esm2020/select2/lib/option/option.module.mjs +20 -0
  12. package/esm2020/select2/lib/panel/index.mjs +3 -0
  13. package/esm2020/select2/lib/panel/panel.component.mjs +118 -0
  14. package/esm2020/select2/lib/panel/panel.module.mjs +21 -0
  15. package/esm2020/select2/lib/select.model.mjs +6 -0
  16. package/esm2020/select2/lib/select.module.mjs +18 -0
  17. package/esm2020/select2/lucca-front-ng-select2.mjs +5 -0
  18. package/esm2020/select2/public-api.mjs +5 -0
  19. package/fesm2015/lucca-front-ng-date.mjs +3 -2
  20. package/fesm2015/lucca-front-ng-date.mjs.map +1 -1
  21. package/fesm2015/lucca-front-ng-select2.mjs +628 -0
  22. package/fesm2015/lucca-front-ng-select2.mjs.map +1 -0
  23. package/fesm2020/lucca-front-ng-date.mjs +3 -2
  24. package/fesm2020/lucca-front-ng-date.mjs.map +1 -1
  25. package/fesm2020/lucca-front-ng-select2.mjs +617 -0
  26. package/fesm2020/lucca-front-ng-select2.mjs.map +1 -0
  27. package/package.json +11 -3
  28. package/select2/README.md +3 -0
  29. package/select2/index.d.ts +5 -0
  30. package/select2/lib/index.d.ts +4 -0
  31. package/select2/lib/input/index.d.ts +2 -0
  32. package/select2/lib/input/select-input.component.d.ts +75 -0
  33. package/select2/lib/input/select-input.module.d.ts +10 -0
  34. package/select2/lib/option/displayer.directive.d.ts +13 -0
  35. package/select2/lib/option/index.d.ts +4 -0
  36. package/select2/lib/option/option.component.d.ts +21 -0
  37. package/select2/lib/option/option.directive.d.ts +13 -0
  38. package/select2/lib/option/option.module.d.ts +10 -0
  39. package/select2/lib/panel/index.d.ts +2 -0
  40. package/select2/lib/panel/panel.component.d.ts +40 -0
  41. package/select2/lib/panel/panel.module.d.ts +11 -0
  42. package/select2/lib/select.model.d.ts +15 -0
  43. package/select2/lib/select.module.d.ts +9 -0
  44. package/select2/public-api.d.ts +1 -0
@@ -0,0 +1,20 @@
1
+ import { CommonModule } from '@angular/common';
2
+ import { NgModule } from '@angular/core';
3
+ import { LuDisplayerDirective } from './displayer.directive';
4
+ import { LuOptionComponent } from './option.component';
5
+ import { LuOptionDirective } from './option.directive';
6
+ import * as i0 from "@angular/core";
7
+ export class LuOption2Module {
8
+ }
9
+ LuOption2Module.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: LuOption2Module, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
10
+ LuOption2Module.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.0", ngImport: i0, type: LuOption2Module, declarations: [LuOptionDirective, LuDisplayerDirective, LuOptionComponent], imports: [CommonModule], exports: [LuOptionDirective, LuDisplayerDirective, LuOptionComponent] });
11
+ LuOption2Module.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: LuOption2Module, imports: [CommonModule] });
12
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: LuOption2Module, decorators: [{
13
+ type: NgModule,
14
+ args: [{
15
+ imports: [CommonModule],
16
+ declarations: [LuOptionDirective, LuDisplayerDirective, LuOptionComponent],
17
+ exports: [LuOptionDirective, LuDisplayerDirective, LuOptionComponent],
18
+ }]
19
+ }] });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nL3NlbGVjdDIvc3JjL2xpYi9vcHRpb24vb3B0aW9uLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN2RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQzs7QUFPdkQsTUFBTSxPQUFPLGVBQWU7OzRHQUFmLGVBQWU7NkdBQWYsZUFBZSxpQkFIWixpQkFBaUIsRUFBRSxvQkFBb0IsRUFBRSxpQkFBaUIsYUFEL0QsWUFBWSxhQUVaLGlCQUFpQixFQUFFLG9CQUFvQixFQUFFLGlCQUFpQjs2R0FFeEQsZUFBZSxZQUpqQixZQUFZOzJGQUlWLGVBQWU7a0JBTDNCLFFBQVE7bUJBQUM7b0JBQ1QsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO29CQUN2QixZQUFZLEVBQUUsQ0FBQyxpQkFBaUIsRUFBRSxvQkFBb0IsRUFBRSxpQkFBaUIsQ0FBQztvQkFDMUUsT0FBTyxFQUFFLENBQUMsaUJBQWlCLEVBQUUsb0JBQW9CLEVBQUUsaUJBQWlCLENBQUM7aUJBQ3JFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTHVEaXNwbGF5ZXJEaXJlY3RpdmUgfSBmcm9tICcuL2Rpc3BsYXllci5kaXJlY3RpdmUnO1xyXG5pbXBvcnQgeyBMdU9wdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vb3B0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEx1T3B0aW9uRGlyZWN0aXZlIH0gZnJvbSAnLi9vcHRpb24uZGlyZWN0aXZlJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcblx0aW1wb3J0czogW0NvbW1vbk1vZHVsZV0sXHJcblx0ZGVjbGFyYXRpb25zOiBbTHVPcHRpb25EaXJlY3RpdmUsIEx1RGlzcGxheWVyRGlyZWN0aXZlLCBMdU9wdGlvbkNvbXBvbmVudF0sXHJcblx0ZXhwb3J0czogW0x1T3B0aW9uRGlyZWN0aXZlLCBMdURpc3BsYXllckRpcmVjdGl2ZSwgTHVPcHRpb25Db21wb25lbnRdLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgTHVPcHRpb24yTW9kdWxlIHt9XHJcbiJdfQ==
@@ -0,0 +1,3 @@
1
+ export * from './panel.component';
2
+ export * from './panel.module';
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy9zZWxlY3QyL3NyYy9saWIvcGFuZWwvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxtQkFBbUIsQ0FBQztBQUNsQyxjQUFjLGdCQUFnQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9wYW5lbC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL3BhbmVsLm1vZHVsZSc7XHJcbiJdfQ==
@@ -0,0 +1,118 @@
1
+ import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';
2
+ import { ChangeDetectionStrategy, Component, EventEmitter, HostListener, Inject, ViewChild, ViewChildren } from '@angular/core';
3
+ import { asyncScheduler, map, observeOn, take, takeUntil } from 'rxjs';
4
+ import { LuOptionComponent } from '../option/index';
5
+ import { SELECT_ID, SELECT_PANEL_DATA } from '../select.model';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@angular/common";
8
+ import * as i2 from "@angular/forms";
9
+ import * as i3 from "@angular/cdk/a11y";
10
+ import * as i4 from "../option/option.component";
11
+ export class LuSelectPanelRef {
12
+ constructor() {
13
+ this.closed = new EventEmitter();
14
+ this.previousPage = new EventEmitter();
15
+ this.nextPage = new EventEmitter();
16
+ this.valueChanged = new EventEmitter();
17
+ this.clueChanged = new EventEmitter();
18
+ this.activeOptionIdChanged = new EventEmitter();
19
+ }
20
+ close() {
21
+ this.closed.next();
22
+ this.closed.complete();
23
+ this.nextPage.next();
24
+ this.nextPage.complete();
25
+ this.previousPage.next();
26
+ this.previousPage.complete();
27
+ this.valueChanged.complete();
28
+ this.clueChanged.emit(null);
29
+ this.clueChanged.complete();
30
+ this.activeOptionIdChanged.emit(undefined);
31
+ this.activeOptionIdChanged.complete();
32
+ }
33
+ }
34
+ export class LuSelectPanelComponent {
35
+ constructor(panelRef, selectId, data) {
36
+ this.panelRef = panelRef;
37
+ this.selectId = selectId;
38
+ this.data = data;
39
+ this.search = null;
40
+ this.options$ = data.options$;
41
+ this.optionComparer = data.optionComparer;
42
+ this.initialValue = data.initialValue;
43
+ this.optionTpl = data.optionTpl;
44
+ this.searchable = data.searchable;
45
+ }
46
+ set searchInput(input) {
47
+ if (!input) {
48
+ return;
49
+ }
50
+ setTimeout(() => input.nativeElement.focus());
51
+ }
52
+ get selected() {
53
+ return this.keyManager?.activeItem?.option;
54
+ }
55
+ onScroll(evt) {
56
+ if (!(evt.target instanceof HTMLElement)) {
57
+ return;
58
+ }
59
+ if (evt.target.scrollTop === 0) {
60
+ this.panelRef.previousPage.emit();
61
+ }
62
+ if (evt.target.scrollHeight === evt.target.scrollTop + evt.target.clientHeight) {
63
+ this.panelRef.nextPage.emit();
64
+ }
65
+ }
66
+ ngAfterViewInit() {
67
+ if (!this.optionsQL) {
68
+ return;
69
+ }
70
+ this.keyManager = new ActiveDescendantKeyManager(this.optionsQL).withHomeAndEnd();
71
+ if (this.initialValue) {
72
+ this.options$
73
+ ?.pipe(take(1), observeOn(asyncScheduler), map((options) => options.findIndex((o) => this.optionComparer(o, this.initialValue))), takeUntil(this.panelRef.closed))
74
+ .subscribe((selectedIndex) => this.keyManager.setActiveItem(selectedIndex));
75
+ }
76
+ this.keyManager.change
77
+ .pipe(map(() => this.keyManager.activeItem?.id), takeUntil(this.panelRef.closed))
78
+ .subscribe((activeDescendant) => this.panelRef.activeOptionIdChanged.emit(activeDescendant));
79
+ }
80
+ onKeyDown($event) {
81
+ switch ($event.key) {
82
+ case 'Escape':
83
+ case 'Tab':
84
+ return this.panelRef.close();
85
+ case 'Enter':
86
+ return this.panelRef.emitValue(this.selected);
87
+ default:
88
+ this.keyManager?.onKeydown($event);
89
+ }
90
+ }
91
+ updateClue(clue) {
92
+ this.search = clue;
93
+ this.panelRef.clueChanged.emit(clue);
94
+ setTimeout(() => this.keyManager.setFirstItemActive());
95
+ }
96
+ }
97
+ LuSelectPanelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: LuSelectPanelComponent, deps: [{ token: LuSelectPanelRef }, { token: SELECT_ID }, { token: SELECT_PANEL_DATA }], target: i0.ɵɵFactoryTarget.Component });
98
+ LuSelectPanelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.0", type: LuSelectPanelComponent, selector: "lu-select-panel", host: { listeners: { "keydown": "onKeyDown($event)" } }, viewQueries: [{ propertyName: "searchInput", first: true, predicate: ["searchInput"], descendants: true }, { propertyName: "optionsQL", predicate: LuOptionComponent, descendants: true }], ngImport: i0, template: "<div\r\n\tclass=\"lu-picker-panel lu-option-picker-panel\"\r\n\trole=\"dialog\"\r\n\tcdkTrapFocus\r\n\t*ngIf=\"{ options: options$ | async } as ctx\"\r\n\t[cdkTrapFocusAutoCapture]=\"true\"\r\n>\r\n\t<div class=\"lu-picker-content\" tabindex=\"0\" (scroll)=\"onScroll($event)\">\r\n\t\t<ng-container *ngIf=\"searchable\">\r\n\t\t\t<div class=\"textfield mod-search\">\r\n\t\t\t\t<input #searchInput class=\"textfield-input\" [(ngModel)]=\"search\" (ngModelChange)=\"updateClue($event)\" />\r\n\t\t\t</div>\r\n\r\n\t\t\t<div class=\"optionPlaceholder\" *ngIf=\"search && !ctx.options?.length\">\r\n\t\t\t\t<p class=\"optionPlaceholder-content u-marginBottomReset\">Aucun r\u00E9sultat pour votre recherche</p>\r\n\t\t\t\t<button type=\"button\" class=\"link\" (click)=\"updateClue(null); searchInput.focus()\">Vider la recherche</button>\r\n\t\t\t</div>\r\n\t\t</ng-container>\r\n\r\n\t\t<lu-select-option\r\n\t\t\t*ngFor=\"let option of ctx.options; let index = index\"\r\n\t\t\t[option]=\"option\"\r\n\t\t\t[optionIndex]=\"index\"\r\n\t\t\t[isSelected]=\"option === selected\"\r\n\t\t\t[disabled]=\"false\"\r\n\t\t\t(click)=\"panelRef.emitValue(option)\"\r\n\t\t>\r\n\t\t\t<ng-container *ngTemplateOutlet=\"optionTpl; context: { $implicit: option }\"></ng-container>\r\n\t\t</lu-select-option>\r\n\t</div>\r\n</div>\r\n", styles: [".textfield.mod-search{width:100%}.textfield-input{border-radius:0;box-shadow:none;background:#FFFFFF;border-bottom:1px solid var(--palettes-grey-200);border-bottom:var(--commons-divider-width) solid var(--commons-divider-color)}.textfield-input:hover{background-color:#ebf0fa;background-color:var(--palettes-grey-50)}.textfield-input:focus{background-color:#fff;border-bottom-color:#ff7e29;border-bottom-color:var(--palettes-primary-600)}.checkbox.mod-formerEmployee{padding:.25rem .5rem;padding:var(--spacings-smallest) var(--components-options-item-padding-horizontal);border-bottom:1px solid var(--palettes-grey-200);border-bottom:var(--commons-divider-width) solid var(--commons-divider-color);background-color:#ebf0fa;background-color:var(--palettes-grey-50);font-style:italic}.optionPlaceholder{display:block;padding:.5rem;padding:var(--components-options-item-padding-vertical) var(--components-options-item-padding-horizontal);font-style:italic;color:#96a6c5;color:var(--colors-text-light-color)}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.CdkTrapFocus, selector: "[cdkTrapFocus]", inputs: ["cdkTrapFocus", "cdkTrapFocusAutoCapture"], exportAs: ["cdkTrapFocus"] }, { kind: "component", type: i4.LuOptionComponent, selector: "lu-select-option", inputs: ["isSelected", "option", "optionIndex", "disabled"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
99
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: LuSelectPanelComponent, decorators: [{
100
+ type: Component,
101
+ args: [{ selector: 'lu-select-panel', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div\r\n\tclass=\"lu-picker-panel lu-option-picker-panel\"\r\n\trole=\"dialog\"\r\n\tcdkTrapFocus\r\n\t*ngIf=\"{ options: options$ | async } as ctx\"\r\n\t[cdkTrapFocusAutoCapture]=\"true\"\r\n>\r\n\t<div class=\"lu-picker-content\" tabindex=\"0\" (scroll)=\"onScroll($event)\">\r\n\t\t<ng-container *ngIf=\"searchable\">\r\n\t\t\t<div class=\"textfield mod-search\">\r\n\t\t\t\t<input #searchInput class=\"textfield-input\" [(ngModel)]=\"search\" (ngModelChange)=\"updateClue($event)\" />\r\n\t\t\t</div>\r\n\r\n\t\t\t<div class=\"optionPlaceholder\" *ngIf=\"search && !ctx.options?.length\">\r\n\t\t\t\t<p class=\"optionPlaceholder-content u-marginBottomReset\">Aucun r\u00E9sultat pour votre recherche</p>\r\n\t\t\t\t<button type=\"button\" class=\"link\" (click)=\"updateClue(null); searchInput.focus()\">Vider la recherche</button>\r\n\t\t\t</div>\r\n\t\t</ng-container>\r\n\r\n\t\t<lu-select-option\r\n\t\t\t*ngFor=\"let option of ctx.options; let index = index\"\r\n\t\t\t[option]=\"option\"\r\n\t\t\t[optionIndex]=\"index\"\r\n\t\t\t[isSelected]=\"option === selected\"\r\n\t\t\t[disabled]=\"false\"\r\n\t\t\t(click)=\"panelRef.emitValue(option)\"\r\n\t\t>\r\n\t\t\t<ng-container *ngTemplateOutlet=\"optionTpl; context: { $implicit: option }\"></ng-container>\r\n\t\t</lu-select-option>\r\n\t</div>\r\n</div>\r\n", styles: [".textfield.mod-search{width:100%}.textfield-input{border-radius:0;box-shadow:none;background:#FFFFFF;border-bottom:1px solid var(--palettes-grey-200);border-bottom:var(--commons-divider-width) solid var(--commons-divider-color)}.textfield-input:hover{background-color:#ebf0fa;background-color:var(--palettes-grey-50)}.textfield-input:focus{background-color:#fff;border-bottom-color:#ff7e29;border-bottom-color:var(--palettes-primary-600)}.checkbox.mod-formerEmployee{padding:.25rem .5rem;padding:var(--spacings-smallest) var(--components-options-item-padding-horizontal);border-bottom:1px solid var(--palettes-grey-200);border-bottom:var(--commons-divider-width) solid var(--commons-divider-color);background-color:#ebf0fa;background-color:var(--palettes-grey-50);font-style:italic}.optionPlaceholder{display:block;padding:.5rem;padding:var(--components-options-item-padding-vertical) var(--components-options-item-padding-horizontal);font-style:italic;color:#96a6c5;color:var(--colors-text-light-color)}\n"] }]
102
+ }], ctorParameters: function () { return [{ type: LuSelectPanelRef }, { type: undefined, decorators: [{
103
+ type: Inject,
104
+ args: [SELECT_ID]
105
+ }] }, { type: undefined, decorators: [{
106
+ type: Inject,
107
+ args: [SELECT_PANEL_DATA]
108
+ }] }]; }, propDecorators: { searchInput: [{
109
+ type: ViewChild,
110
+ args: ['searchInput']
111
+ }], optionsQL: [{
112
+ type: ViewChildren,
113
+ args: [LuOptionComponent]
114
+ }], onKeyDown: [{
115
+ type: HostListener,
116
+ args: ['keydown', ['$event']]
117
+ }] } });
118
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFuZWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmcvc2VsZWN0Mi9zcmMvbGliL3BhbmVsL3BhbmVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nL3NlbGVjdDIvc3JjL2xpYi9wYW5lbC9wYW5lbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUMvRCxPQUFPLEVBQWlCLHVCQUF1QixFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsWUFBWSxFQUFFLE1BQU0sRUFBMEIsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuTCxPQUFPLEVBQUUsY0FBYyxFQUFFLEdBQUcsRUFBYyxTQUFTLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNuRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUNwRCxPQUFPLEVBQXNCLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDOzs7Ozs7QUFFbkYsTUFBTSxPQUFnQixnQkFBZ0I7SUFBdEM7UUFDQyxXQUFNLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUNsQyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDeEMsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDcEMsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBSyxDQUFDO1FBQ3JDLGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUN6QywwQkFBcUIsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBaUJwRCxDQUFDO0lBYkEsS0FBSztRQUNKLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDbkIsSUFBSSxD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QyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLGtCQUFrQixFQUFFLENBQUMsQ0FBQztJQUN4RCxDQUFDOzttSEEzRlcsc0JBQXNCLGtCQXlCTCxnQkFBZ0IsYUFBYSxTQUFTLGFBQW1DLGlCQUFpQjt1R0F6QjNHLHNCQUFzQiwyT0FnQnBCLGlCQUFpQixnRENyRGhDLDB5Q0ErQkE7MkZETWEsc0JBQXNCO2tCQU5sQyxTQUFTOytCQUNDLGlCQUFpQixtQkFHVix1QkFBdUIsQ0FBQyxNQUFNOzBEQTJCbEIsZ0JBQWdCOzBCQUFNLE1BQU07MkJBQUMsU0FBUzs7MEJBQTRCLE1BQU07MkJBQUMsaUJBQWlCOzRDQWpCNUcsV0FBVztzQkFEckIsU0FBUzt1QkFBQyxhQUFhO2dCQVNTLFNBQVM7c0JBQXpDLFlBQVk7dUJBQUMsaUJBQWlCO2dCQTBEL0IsU0FBUztzQkFEUixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2ExMXknO1xyXG5pbXBvcnQgeyBBZnRlclZpZXdJbml0LCBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ29tcG9uZW50LCBFbGVtZW50UmVmLCBFdmVudEVtaXR0ZXIsIEhvc3RMaXN0ZW5lciwgSW5qZWN0LCBRdWVyeUxpc3QsIFRlbXBsYXRlUmVmLCBWaWV3Q2hpbGQsIFZpZXdDaGlsZHJlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBhc3luY1NjaGVkdWxlciwgbWFwLCBPYnNlcnZhYmxlLCBvYnNlcnZlT24sIHRha2UsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBMdU9wdGlvbkNvbXBvbmVudCB9IGZyb20gJy4uL29wdGlvbi9pbmRleCc7XHJcbmltcG9ydCB7IElMdVNlbGVjdFBhbmVsRGF0YSwgU0VMRUNUX0lELCBTRUxFQ1RfUEFORUxfREFUQSB9IGZyb20gJy4uL3NlbGVjdC5tb2RlbCc7XHJcblxyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgTHVTZWxlY3RQYW5lbFJlZjxUPiB7XHJcblx0Y2xvc2VkID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG5cdHByZXZpb3VzUGFnZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHRuZXh0UGFnZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHR2YWx1ZUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPFQ+KCk7XHJcblx0Y2x1ZUNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHRhY3RpdmVPcHRpb25JZENoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuXHRvcHRpb25zJDogT2JzZXJ2YWJsZTxUPjtcclxuXHJcblx0YWJzdHJhY3QgZW1pdFZhbHVlKHZhbHVlOiBUKTogdm9pZDtcclxuXHRjbG9zZSgpOiB2b2lkIHtcclxuXHRcdHRoaXMuY2xvc2VkLm5leHQoKTtcclxuXHRcdHRoaXMuY2xvc2VkLmNvbXBsZXRlKCk7XHJcblx0XHR0aGlzLm5leHRQYWdlLm5leHQoKTtcclxuXHRcdHRoaXMubmV4dFBhZ2UuY29tcGxldGUoKTtcclxuXHRcdHRoaXMucHJldmlvdXNQYWdlLm5leHQoKTtcclxuXHRcdHRoaXMucHJldmlvdXNQYWdlLmNvbXBsZXRlKCk7XHJcblx0XHR0aGlzLnZhbHVlQ2hhbmdlZC5jb21wbGV0ZSgpO1xyXG5cdFx0dGhpcy5jbHVlQ2hhbmdlZC5lbWl0KG51bGwpO1xyXG5cdFx0dGhpcy5jbHVlQ2hhbmdlZC5jb21wbGV0ZSgpO1xyXG5cdFx0dGhpcy5hY3RpdmVPcHRpb25JZENoYW5nZWQuZW1pdCh1bmRlZmluZWQpO1xyXG5cdFx0dGhpcy5hY3RpdmVPcHRpb25JZENoYW5nZWQuY29tcGxldGUoKTtcclxuXHR9XHJcbn1cclxuXHJcbkBDb21wb25lbnQoe1xyXG5cdHNlbGVjdG9yOiAnbHUtc2VsZWN0LXBhbmVsJyxcclxuXHR0ZW1wbGF0ZVVybDogJy4vcGFuZWwuY29tcG9uZW50Lmh0bWwnLFxyXG5cdHN0eWxlVXJsczogWycuL3BhbmVsLmNvbXBvbmVudC5zY3NzJ10sXHJcblx0Y2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMdVNlbGVjdFBhbmVsQ29tcG9uZW50PFQ+IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XHJcblx0b3B0aW9ucyQ6IE9ic2VydmFibGU8VFtdPjtcclxuXHRvcHRpb25Db21wYXJlcjogKG9wdGlvbjE6IFQsIG9wdGlvbjI6IFQpID0+IGJvb2xlYW47XHJcblx0aW5pdGlhbFZhbHVlPzogVDtcclxuXHRvcHRpb25UcGw6IFRlbXBsYXRlUmVmPHsgJGltcGxpY2l0OiBUIH0+O1xyXG5cdHNlYXJjaGFibGU6IGJvb2xlYW47XHJcblxyXG5cdEBWaWV3Q2hpbGQoJ3NlYXJjaElucHV0JylcclxuXHRwdWJsaWMgc2V0IHNlYXJjaElucHV0KGlucHV0OiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+IHwgdW5kZWZpbmVkKSB7XHJcblx0XHRpZiAoIWlucHV0KSB7XHJcblx0XHRcdHJldHVybjtcclxuXHRcdH1cclxuXHJcblx0XHRzZXRUaW1lb3V0KCgpID0+IGlucHV0Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKSk7XHJcblx0fVxyXG5cclxuXHRAVmlld0NoaWxkcmVuKEx1T3B0aW9uQ29tcG9uZW50KSBvcHRpb25zUUw6IFF1ZXJ5TGlzdDxMdU9wdGlvbkNvbXBvbmVudDxUPj47XHJcblx0cHJpdmF0ZSBrZXlNYW5hZ2VyOiBBY3RpdmVEZXNjZW5kYW50S2V5TWFuYWdlcjxMdU9wdGlvbkNvbXBvbmVudDxUPj47XHJcblxyXG5cdHNlYXJjaDogc3RyaW5nIHwgbnVsbCA9IG51bGw7XHJcblxyXG5cdHB1YmxpYyBnZXQgc2VsZWN0ZWQoKTogVCB8IHVuZGVmaW5lZCB7XHJcblx0XHRyZXR1cm4gdGhpcy5rZXlNYW5hZ2VyPy5hY3RpdmVJdGVtPy5vcHRpb247XHJcblx0fVxyXG5cclxuXHRjb25zdHJ1Y3RvcihwdWJsaWMgcGFuZWxSZWY6IEx1U2VsZWN0UGFuZWxSZWY8VD4sIEBJbmplY3QoU0VMRUNUX0lEKSBwdWJsaWMgc2VsZWN0SWQ6IG51bWJlciwgQEluamVjdChTRUxFQ1RfUEFORUxfREFUQSkgcHJpdmF0ZSBkYXRhOiBJTHVTZWxlY3RQYW5lbERhdGE8VD4pIHtcclxuXHRcdHRoaXMub3B0aW9ucyQgPSBkYXRhLm9wdGlvbnMkO1xyXG5cdFx0dGhpcy5vcHRpb25Db21wYXJlciA9IGRhdGEub3B0aW9uQ29tcGFyZXI7XHJcblx0XHR0aGlzLmluaXRpYWxWYWx1ZSA9IGRhdGEuaW5pdGlhbFZhbHVlO1xyXG5cdFx0dGhpcy5vcHRpb25UcGwgPSBkYXRhLm9wdGlvblRwbDtcclxuXHRcdHRoaXMuc2VhcmNoYWJsZSA9IGRhdGEuc2VhcmNoYWJsZTtcclxuXHR9XHJcblxyXG5cdG9uU2Nyb2xsKGV2dDogRXZlbnQpOiB2b2lkIHtcclxuXHRcdGlmICghKGV2dC50YXJnZXQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkpIHtcclxuXHRcdFx0cmV0dXJuO1xyXG5cdFx0fVxyXG5cclxuXHRcdGlmIChldnQudGFyZ2V0LnNjcm9sbFRvcCA9PT0gMCkge1xyXG5cdFx0XHR0aGlzLnBhbmVsUmVmLnByZXZpb3VzUGFnZS5lbWl0KCk7XHJcblx0XHR9XHJcblxyXG5cdFx0aWYgKGV2dC50YXJnZXQuc2Nyb2xsSGVpZ2h0ID09PSBldnQudGFyZ2V0LnNjcm9sbFRvcCArIGV2dC50YXJnZXQuY2xpZW50SGVpZ2h0KSB7XHJcblx0XHRcdHRoaXMucGFuZWxSZWYubmV4dFBhZ2UuZW1pdCgpO1xyXG5cdFx0fVxyXG5cdH1cclxuXHJcblx0bmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xyXG5cdFx0aWYgKCF0aGlzLm9wdGlvbnNRTCkge1xyXG5cdFx0XHRyZXR1cm47XHJcblx0XHR9XHJcblxyXG5cdFx0dGhpcy5rZXlNYW5hZ2VyID0gbmV3IEFjdGl2ZURlc2NlbmRhbnRLZXlNYW5hZ2VyKHRoaXMub3B0aW9uc1FMKS53aXRoSG9tZUFuZEVuZCgpO1xyXG5cclxuXHRcdGlmICh0aGlzLmluaXRpYWxWYWx1ZSkge1xyXG5cdFx0XHR0aGlzLm9wdGlvbnMkXHJcblx0XHRcdFx0Py5waXBlKFxyXG5cdFx0XHRcdFx0dGFrZSgxKSxcclxuXHRcdFx0XHRcdG9ic2VydmVPbihhc3luY1NjaGVkdWxlciksXHJcblx0XHRcdFx0XHRtYXAoKG9wdGlvbnMpID0+IG9wdGlvbnMuZmluZEluZGV4KChvKSA9PiB0aGlzLm9wdGlvbkNvbXBhcmVyKG8sIHRoaXMuaW5pdGlhbFZhbHVlKSkpLFxyXG5cdFx0XHRcdFx0dGFrZVVudGlsKHRoaXMucGFuZWxSZWYuY2xvc2VkKSxcclxuXHRcdFx0XHQpXHJcblx0XHRcdFx0LnN1YnNjcmliZSgoc2VsZWN0ZWRJbmRleCkgPT4gdGhpcy5rZXlNYW5hZ2VyLnNldEFjdGl2ZUl0ZW0oc2VsZWN0ZWRJbmRleCkpO1xyXG5cdFx0fVxyXG5cclxuXHRcdHRoaXMua2V5TWFuYWdlci5jaGFuZ2VcclxuXHRcdFx0LnBpcGUoXHJcblx0XHRcdFx0bWFwKCgpID0+IHRoaXMua2V5TWFuYWdlci5hY3RpdmVJdGVtPy5pZCksXHJcblx0XHRcdFx0dGFrZVVudGlsKHRoaXMucGFuZWxSZWYuY2xvc2VkKSxcclxuXHRcdFx0KVxyXG5cdFx0XHQuc3Vic2NyaWJlKChhY3RpdmVEZXNjZW5kYW50KSA9PiB0aGlzLnBhbmVsUmVmLmFjdGl2ZU9wdGlvbklkQ2hhbmdlZC5lbWl0KGFjdGl2ZURlc2NlbmRhbnQpKTtcclxuXHR9XHJcblxyXG5cdEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxyXG5cdG9uS2V5RG93bigkZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcclxuXHRcdHN3aXRjaCAoJGV2ZW50LmtleSkge1xyXG5cdFx0XHRjYXNlICdFc2NhcGUnOlxyXG5cdFx0XHRjYXNlICdUYWInOlxyXG5cdFx0XHRcdHJldHVybiB0aGlzLnBhbmVsUmVmLmNsb3NlKCk7XHJcblx0XHRcdGNhc2UgJ0VudGVyJzpcclxuXHRcdFx0XHRyZXR1cm4gdGhpcy5wYW5lbFJlZi5lbWl0VmFsdWUodGhpcy5zZWxlY3RlZCk7XHJcblx0XHRcdGRlZmF1bHQ6XHJcblx0XHRcdFx0dGhpcy5rZXlNYW5hZ2VyPy5vbktleWRvd24oJGV2ZW50KTtcclxuXHRcdH1cclxuXHR9XHJcblxyXG5cdHVwZGF0ZUNsdWUoY2x1ZTogc3RyaW5nIHwgbnVsbCk6IHZvaWQge1xyXG5cdFx0dGhpcy5zZWFyY2ggPSBjbHVlO1xyXG5cdFx0dGhpcy5wYW5lbFJlZi5jbHVlQ2hhbmdlZC5lbWl0KGNsdWUpO1xyXG5cclxuXHRcdHNldFRpbWVvdXQoKCkgPT4gdGhpcy5rZXlNYW5hZ2VyLnNldEZpcnN0SXRlbUFjdGl2ZSgpKTtcclxuXHR9XHJcbn1cclxuIiwiPGRpdlxyXG5cdGNsYXNzPVwibHUtcGlja2VyLXBhbmVsIGx1LW9wdGlvbi1waWNrZXItcGFuZWxcIlxyXG5cdHJvbGU9XCJkaWFsb2dcIlxyXG5cdGNka1RyYXBGb2N1c1xyXG5cdCpuZ0lmPVwieyBvcHRpb25zOiBvcHRpb25zJCB8IGFzeW5jIH0gYXMgY3R4XCJcclxuXHRbY2RrVHJhcEZvY3VzQXV0b0NhcHR1cmVdPVwidHJ1ZVwiXHJcbj5cclxuXHQ8ZGl2IGNsYXNzPVwibHUtcGlja2VyLWNvbnRlbnRcIiB0YWJpbmRleD1cIjBcIiAoc2Nyb2xsKT1cIm9uU2Nyb2xsKCRldmVudClcIj5cclxuXHRcdDxuZy1jb250YWluZXIgKm5nSWY9XCJzZWFyY2hhYmxlXCI+XHJcblx0XHRcdDxkaXYgY2xhc3M9XCJ0ZXh0ZmllbGQgbW9kLXNlYXJjaFwiPlxyXG5cdFx0XHRcdDxpbnB1dCAjc2VhcmNoSW5wdXQgY2xhc3M9XCJ0ZXh0ZmllbGQtaW5wdXRcIiBbKG5nTW9kZWwpXT1cInNlYXJjaFwiIChuZ01vZGVsQ2hhbmdlKT1cInVwZGF0ZUNsdWUoJGV2ZW50KVwiIC8+XHJcblx0XHRcdDwvZGl2PlxyXG5cclxuXHRcdFx0PGRpdiBjbGFzcz1cIm9wdGlvblBsYWNlaG9sZGVyXCIgKm5nSWY9XCJzZWFyY2ggJiYgIWN0eC5vcHRpb25zPy5sZW5ndGhcIj5cclxuXHRcdFx0XHQ8cCBjbGFzcz1cIm9wdGlvblBsYWNlaG9sZGVyLWNvbnRlbnQgdS1tYXJnaW5Cb3R0b21SZXNldFwiPkF1Y3VuIHLDqXN1bHRhdCBwb3VyIHZvdHJlIHJlY2hlcmNoZTwvcD5cclxuXHRcdFx0XHQ8YnV0dG9uIHR5cGU9XCJidXR0b25cIiBjbGFzcz1cImxpbmtcIiAoY2xpY2spPVwidXBkYXRlQ2x1ZShudWxsKTsgc2VhcmNoSW5wdXQuZm9jdXMoKVwiPlZpZGVyIGxhIHJlY2hlcmNoZTwvYnV0dG9uPlxyXG5cdFx0XHQ8L2Rpdj5cclxuXHRcdDwvbmctY29udGFpbmVyPlxyXG5cclxuXHRcdDxsdS1zZWxlY3Qtb3B0aW9uXHJcblx0XHRcdCpuZ0Zvcj1cImxldCBvcHRpb24gb2YgY3R4Lm9wdGlvbnM7IGxldCBpbmRleCA9IGluZGV4XCJcclxuXHRcdFx0W29wdGlvbl09XCJvcHRpb25cIlxyXG5cdFx0XHRbb3B0aW9uSW5kZXhdPVwiaW5kZXhcIlxyXG5cdFx0XHRbaXNTZWxlY3RlZF09XCJvcHRpb24gPT09IHNlbGVjdGVkXCJcclxuXHRcdFx0W2Rpc2FibGVkXT1cImZhbHNlXCJcclxuXHRcdFx0KGNsaWNrKT1cInBhbmVsUmVmLmVtaXRWYWx1ZShvcHRpb24pXCJcclxuXHRcdD5cclxuXHRcdFx0PG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cIm9wdGlvblRwbDsgY29udGV4dDogeyAkaW1wbGljaXQ6IG9wdGlvbiB9XCI+PC9uZy1jb250YWluZXI+XHJcblx0XHQ8L2x1LXNlbGVjdC1vcHRpb24+XHJcblx0PC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -0,0 +1,21 @@
1
+ import { A11yModule } from '@angular/cdk/a11y';
2
+ import { CommonModule } from '@angular/common';
3
+ import { NgModule } from '@angular/core';
4
+ import { FormsModule } from '@angular/forms';
5
+ import { LuOption2Module } from '../option';
6
+ import { LuSelectPanelComponent } from './panel.component';
7
+ import * as i0 from "@angular/core";
8
+ export class LuSelectPanelModule {
9
+ }
10
+ LuSelectPanelModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: LuSelectPanelModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
11
+ LuSelectPanelModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.0", ngImport: i0, type: LuSelectPanelModule, declarations: [LuSelectPanelComponent], imports: [CommonModule, FormsModule, A11yModule, LuOption2Module], exports: [LuSelectPanelComponent] });
12
+ LuSelectPanelModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: LuSelectPanelModule, imports: [CommonModule, FormsModule, A11yModule, LuOption2Module] });
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: LuSelectPanelModule, decorators: [{
14
+ type: NgModule,
15
+ args: [{
16
+ imports: [CommonModule, FormsModule, A11yModule, LuOption2Module],
17
+ declarations: [LuSelectPanelComponent],
18
+ exports: [LuSelectPanelComponent],
19
+ }]
20
+ }] });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFuZWwubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmcvc2VsZWN0Mi9zcmMvbGliL3BhbmVsL3BhbmVsLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDL0MsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxXQUFXLENBQUM7QUFDNUMsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sbUJBQW1CLENBQUM7O0FBTzNELE1BQU0sT0FBTyxtQkFBbUI7O2dIQUFuQixtQkFBbUI7aUhBQW5CLG1CQUFtQixpQkFIaEIsc0JBQXNCLGFBRDNCLFlBQVksRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLGVBQWUsYUFFdEQsc0JBQXNCO2lIQUVwQixtQkFBbUIsWUFKckIsWUFBWSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsZUFBZTsyRkFJcEQsbUJBQW1CO2tCQUwvQixRQUFRO21CQUFDO29CQUNULE9BQU8sRUFBRSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLGVBQWUsQ0FBQztvQkFDakUsWUFBWSxFQUFFLENBQUMsc0JBQXNCLENBQUM7b0JBQ3RDLE9BQU8sRUFBRSxDQUFDLHNCQUFzQixDQUFDO2lCQUNqQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEExMXlNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBMdU9wdGlvbjJNb2R1bGUgfSBmcm9tICcuLi9vcHRpb24nO1xyXG5pbXBvcnQgeyBMdVNlbGVjdFBhbmVsQ29tcG9uZW50IH0gZnJvbSAnLi9wYW5lbC5jb21wb25lbnQnO1xyXG5cclxuQE5nTW9kdWxlKHtcclxuXHRpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgQTExeU1vZHVsZSwgTHVPcHRpb24yTW9kdWxlXSxcclxuXHRkZWNsYXJhdGlvbnM6IFtMdVNlbGVjdFBhbmVsQ29tcG9uZW50XSxcclxuXHRleHBvcnRzOiBbTHVTZWxlY3RQYW5lbENvbXBvbmVudF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMdVNlbGVjdFBhbmVsTW9kdWxlIHt9XHJcbiJdfQ==
@@ -0,0 +1,6 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ export const SELECT_ID = new InjectionToken('LuSelectPanelData');
3
+ export const SELECT_PANEL_DATA = new InjectionToken('LuSelectId');
4
+ export const SELECT_LABEL = new InjectionToken('LuSelectLabel');
5
+ export const SELECT_LABEL_ID = new InjectionToken('LuSelectLabelId');
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmcvc2VsZWN0Mi9zcmMvbGliL3NlbGVjdC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFlLE1BQU0sZUFBZSxDQUFDO0FBVzVELE1BQU0sQ0FBQyxNQUFNLFNBQVMsR0FBRyxJQUFJLGNBQWMsQ0FBUyxtQkFBbUIsQ0FBQyxDQUFDO0FBQ3pFLE1BQU0sQ0FBQyxNQUFNLGlCQUFpQixHQUFHLElBQUksY0FBYyxDQUFTLFlBQVksQ0FBQyxDQUFDO0FBQzFFLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxJQUFJLGNBQWMsQ0FBK0IsZUFBZSxDQUFDLENBQUM7QUFDOUYsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLElBQUksY0FBYyxDQUFTLGlCQUFpQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiwgVGVtcGxhdGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJTHVTZWxlY3RQYW5lbERhdGE8VD4ge1xyXG5cdG9wdGlvbnMkOiBPYnNlcnZhYmxlPFRbXT47XHJcblx0b3B0aW9uQ29tcGFyZXI6IChvcHRpb24xOiBULCBvcHRpb24yOiBUKSA9PiBib29sZWFuO1xyXG5cdGluaXRpYWxWYWx1ZTogVCB8IHVuZGVmaW5lZDtcclxuXHRvcHRpb25UcGw6IFRlbXBsYXRlUmVmPHsgJGltcGxpY2l0OiBUIH0+O1xyXG5cdHNlYXJjaGFibGU6IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBTRUxFQ1RfSUQgPSBuZXcgSW5qZWN0aW9uVG9rZW48bnVtYmVyPignTHVTZWxlY3RQYW5lbERhdGEnKTtcclxuZXhwb3J0IGNvbnN0IFNFTEVDVF9QQU5FTF9EQVRBID0gbmV3IEluamVjdGlvblRva2VuPG51bWJlcj4oJ0x1U2VsZWN0SWQnKTtcclxuZXhwb3J0IGNvbnN0IFNFTEVDVF9MQUJFTCA9IG5ldyBJbmplY3Rpb25Ub2tlbjxIVE1MTGFiZWxFbGVtZW50IHwgdW5kZWZpbmVkPignTHVTZWxlY3RMYWJlbCcpO1xyXG5leHBvcnQgY29uc3QgU0VMRUNUX0xBQkVMX0lEID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oJ0x1U2VsZWN0TGFiZWxJZCcpO1xyXG4iXX0=
@@ -0,0 +1,18 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { LuSelectInput2Module } from './input';
3
+ import { LuOption2Module } from './option';
4
+ import { LuSelectPanelModule } from './panel';
5
+ import * as i0 from "@angular/core";
6
+ export class LuSelect2Module {
7
+ }
8
+ LuSelect2Module.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: LuSelect2Module, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
9
+ LuSelect2Module.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.0", ngImport: i0, type: LuSelect2Module, imports: [LuSelectInput2Module, LuOption2Module, LuSelectPanelModule], exports: [LuSelectInput2Module, LuOption2Module, LuSelectPanelModule] });
10
+ LuSelect2Module.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: LuSelect2Module, imports: [LuSelectInput2Module, LuOption2Module, LuSelectPanelModule, LuSelectInput2Module, LuOption2Module, LuSelectPanelModule] });
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: LuSelect2Module, decorators: [{
12
+ type: NgModule,
13
+ args: [{
14
+ imports: [LuSelectInput2Module, LuOption2Module, LuSelectPanelModule],
15
+ exports: [LuSelectInput2Module, LuOption2Module, LuSelectPanelModule],
16
+ }]
17
+ }] });
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0Lm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nL3NlbGVjdDIvc3JjL2xpYi9zZWxlY3QubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sU0FBUyxDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxVQUFVLENBQUM7QUFDM0MsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sU0FBUyxDQUFDOztBQU05QyxNQUFNLE9BQU8sZUFBZTs7NEdBQWYsZUFBZTs2R0FBZixlQUFlLFlBSGpCLG9CQUFvQixFQUFFLGVBQWUsRUFBRSxtQkFBbUIsYUFDMUQsb0JBQW9CLEVBQUUsZUFBZSxFQUFFLG1CQUFtQjs2R0FFeEQsZUFBZSxZQUhqQixvQkFBb0IsRUFBRSxlQUFlLEVBQUUsbUJBQW1CLEVBQzFELG9CQUFvQixFQUFFLGVBQWUsRUFBRSxtQkFBbUI7MkZBRXhELGVBQWU7a0JBSjNCLFFBQVE7bUJBQUM7b0JBQ1QsT0FBTyxFQUFFLENBQUMsb0JBQW9CLEVBQUUsZUFBZSxFQUFFLG1CQUFtQixDQUFDO29CQUNyRSxPQUFPLEVBQUUsQ0FBQyxvQkFBb0IsRUFBRSxlQUFlLEVBQUUsbUJBQW1CLENBQUM7aUJBQ3JFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTHVTZWxlY3RJbnB1dDJNb2R1bGUgfSBmcm9tICcuL2lucHV0JztcclxuaW1wb3J0IHsgTHVPcHRpb24yTW9kdWxlIH0gZnJvbSAnLi9vcHRpb24nO1xyXG5pbXBvcnQgeyBMdVNlbGVjdFBhbmVsTW9kdWxlIH0gZnJvbSAnLi9wYW5lbCc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG5cdGltcG9ydHM6IFtMdVNlbGVjdElucHV0Mk1vZHVsZSwgTHVPcHRpb24yTW9kdWxlLCBMdVNlbGVjdFBhbmVsTW9kdWxlXSxcclxuXHRleHBvcnRzOiBbTHVTZWxlY3RJbnB1dDJNb2R1bGUsIEx1T3B0aW9uMk1vZHVsZSwgTHVTZWxlY3RQYW5lbE1vZHVsZV0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMdVNlbGVjdDJNb2R1bGUge31cclxuIl19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHVjY2EtZnJvbnQtbmctc2VsZWN0Mi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL25nL3NlbGVjdDIvc3JjL2x1Y2NhLWZyb250LW5nLXNlbGVjdDIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
@@ -0,0 +1,5 @@
1
+ /*
2
+ * Public API Surface of safe-content
3
+ */
4
+ export * from './lib/index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL25nL3NlbGVjdDIvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGFBQWEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBzYWZlLWNvbnRlbnRcclxuICovXHJcblxyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbmRleCc7XHJcbiJdfQ==
@@ -383,6 +383,7 @@ LuCalendarInputComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0
383
383
  useExisting: LuCalendarInputComponent,
384
384
  multi: true,
385
385
  },
386
+ LuCalendarItemFactory,
386
387
  ], usesInheritance: true, ngImport: i0, template: "<section class=\"calendar\">\r\n\t<header class=\"calendar-header\">\r\n\t\t<button type=\"button\" class=\"calendar-header-nav\" (click)=\"previous()\">\r\n\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon\">arrow_west</span>\r\n\t\t\t<span class=\"u-mask\">Previous</span>\r\n\t\t</button>\r\n\t\t<button type=\"button\" class=\"calendar-header-date\" (click)=\"increaseGranularity()\">{{ header.label }}</button>\r\n\t\t<button type=\"button\" class=\"calendar-header-nav\" (click)=\"next()\">\r\n\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon\">arrow_east</span>\r\n\t\t\t<span class=\"u-mask\">Next</span>\r\n\t\t</button>\r\n\t</header>\r\n\t<section class=\"calendar-labels\" [ngClass]=\"mod\">\r\n\t\t<div class=\"calendar-labels-item\" *ngFor=\"let label of labels\">{{ label }}</div>\r\n\t</section>\r\n\t<section class=\"calendar-grid\" [ngClass]=\"mod\">\r\n\t\t<button\r\n\t\t\ttype=\"button\"\r\n\t\t\t*ngFor=\"let item of items; trackBy: trackBy\"\r\n\t\t\tclass=\"calendar-grid-item\"\r\n\t\t\t[ngClass]=\"item.mods\"\r\n\t\t\t[disabled]=\"item.isDisabled\"\r\n\t\t\t(click)=\"select(item)\"\r\n\t\t>\r\n\t\t\t<div class=\"calendar-grid-item-content\">{{ item.label }}</div>\r\n\t\t</button>\r\n\t</section>\r\n</section>\r\n", styles: [".calendar{background:white;width:17.8rem;width:var(--components-calendar-width);padding:.5rem;padding:var(--spacings-smaller)}:host-context(.mod-block) .calendar{width:auto;max-width:17.8rem;max-width:var(--components-calendar-width)}.calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.calendar-header-nav{background:transparent;border:none;cursor:pointer}.calendar-header-nav .lucca-icon{font-size:.9rem;color:#131d35;color:var(--colors-text-dark-color)}.calendar-header-date{font-weight:600;color:#131d35;color:var(--colors-text-dark-color);font-size:1.125rem;font-size:var(--sizes-big-font-size);padding:0;background:transparent;border:none;cursor:pointer}.calendar-labels{display:none}.calendar-labels.mod-dailyView{display:flex;align-items:stretch;flex-wrap:wrap;text-align:center;font-size:.875rem;font-size:var(--sizes-small-font-size);color:#f60;color:var(--palettes-primary-color);margin-bottom:.5rem;margin-bottom:var(--spacings-smaller)}.calendar-labels.mod-dailyView .calendar-labels-item{width:14.1428571429%}.calendar-grid{display:flex;text-align:center;align-self:stretch;flex-wrap:wrap}.calendar-grid.mod-dailyView .calendar-grid-item{width:14.1428571429%}.calendar-grid.mod-monthlyView .calendar-grid-item,.calendar-grid.mod-yearlyView .calendar-grid-item{width:33%}.calendar-grid-item{height:2.4rem;border:none;cursor:pointer;background:transparent;position:relative;padding:0;outline:none}.calendar-grid-item.is-previousMonth,.calendar-grid-item.is-nextMonth,.calendar-grid-item.is-disabled{color:#acbbd7;color:var(--colors-text-placeholder-color)}.calendar-grid-item.is-today{color:#2a3551;color:var(--palettes-grey-800)}.calendar-grid-item.is-today:before{content:\"\";z-index:2;box-shadow:inset 0 0 0 2px #ffc79e;box-shadow:inset 0 0 0 2px var(--palettes-primary-300);position:absolute;top:0;bottom:0;left:0;right:0;border-radius:2rem}.calendar-grid-item:hover .calendar-grid-item-content{background:#E0E7F6;background:var(--palettes-grey-100)}.calendar-grid-item.is-active .calendar-grid-item-content{background:#FF6600;background:var(--palettes-primary-color);color:#fff;color:var(--palettes-primary-text)}.calendar-grid-item.is-active.is-today .calendar-grid-item-content:after{content:\"\";z-index:1;color:#f60;color:var(--palettes-primary-color);box-shadow:inset 0 0 0 4px #fff;position:absolute;top:0;bottom:0;left:0;right:0;border-radius:2rem}.calendar-grid-item.is-disabled:hover .calendar-grid-item-content{pointer-events:none;background-color:#fff}.calendar-grid-item-content{position:relative;height:2.4rem;width:100%;line-height:2.4rem;border-radius:2rem}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
387
388
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: LuCalendarInputComponent, decorators: [{
388
389
  type: Component,
@@ -397,6 +398,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImpor
397
398
  useExisting: LuCalendarInputComponent,
398
399
  multi: true,
399
400
  },
401
+ LuCalendarItemFactory,
400
402
  ], template: "<section class=\"calendar\">\r\n\t<header class=\"calendar-header\">\r\n\t\t<button type=\"button\" class=\"calendar-header-nav\" (click)=\"previous()\">\r\n\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon\">arrow_west</span>\r\n\t\t\t<span class=\"u-mask\">Previous</span>\r\n\t\t</button>\r\n\t\t<button type=\"button\" class=\"calendar-header-date\" (click)=\"increaseGranularity()\">{{ header.label }}</button>\r\n\t\t<button type=\"button\" class=\"calendar-header-nav\" (click)=\"next()\">\r\n\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon\">arrow_east</span>\r\n\t\t\t<span class=\"u-mask\">Next</span>\r\n\t\t</button>\r\n\t</header>\r\n\t<section class=\"calendar-labels\" [ngClass]=\"mod\">\r\n\t\t<div class=\"calendar-labels-item\" *ngFor=\"let label of labels\">{{ label }}</div>\r\n\t</section>\r\n\t<section class=\"calendar-grid\" [ngClass]=\"mod\">\r\n\t\t<button\r\n\t\t\ttype=\"button\"\r\n\t\t\t*ngFor=\"let item of items; trackBy: trackBy\"\r\n\t\t\tclass=\"calendar-grid-item\"\r\n\t\t\t[ngClass]=\"item.mods\"\r\n\t\t\t[disabled]=\"item.isDisabled\"\r\n\t\t\t(click)=\"select(item)\"\r\n\t\t>\r\n\t\t\t<div class=\"calendar-grid-item-content\">{{ item.label }}</div>\r\n\t\t</button>\r\n\t</section>\r\n</section>\r\n", styles: [".calendar{background:white;width:17.8rem;width:var(--components-calendar-width);padding:.5rem;padding:var(--spacings-smaller)}:host-context(.mod-block) .calendar{width:auto;max-width:17.8rem;max-width:var(--components-calendar-width)}.calendar-header{display:flex;align-items:center;justify-content:space-between;margin-bottom:1.5rem}.calendar-header-nav{background:transparent;border:none;cursor:pointer}.calendar-header-nav .lucca-icon{font-size:.9rem;color:#131d35;color:var(--colors-text-dark-color)}.calendar-header-date{font-weight:600;color:#131d35;color:var(--colors-text-dark-color);font-size:1.125rem;font-size:var(--sizes-big-font-size);padding:0;background:transparent;border:none;cursor:pointer}.calendar-labels{display:none}.calendar-labels.mod-dailyView{display:flex;align-items:stretch;flex-wrap:wrap;text-align:center;font-size:.875rem;font-size:var(--sizes-small-font-size);color:#f60;color:var(--palettes-primary-color);margin-bottom:.5rem;margin-bottom:var(--spacings-smaller)}.calendar-labels.mod-dailyView .calendar-labels-item{width:14.1428571429%}.calendar-grid{display:flex;text-align:center;align-self:stretch;flex-wrap:wrap}.calendar-grid.mod-dailyView .calendar-grid-item{width:14.1428571429%}.calendar-grid.mod-monthlyView .calendar-grid-item,.calendar-grid.mod-yearlyView .calendar-grid-item{width:33%}.calendar-grid-item{height:2.4rem;border:none;cursor:pointer;background:transparent;position:relative;padding:0;outline:none}.calendar-grid-item.is-previousMonth,.calendar-grid-item.is-nextMonth,.calendar-grid-item.is-disabled{color:#acbbd7;color:var(--colors-text-placeholder-color)}.calendar-grid-item.is-today{color:#2a3551;color:var(--palettes-grey-800)}.calendar-grid-item.is-today:before{content:\"\";z-index:2;box-shadow:inset 0 0 0 2px #ffc79e;box-shadow:inset 0 0 0 2px var(--palettes-primary-300);position:absolute;top:0;bottom:0;left:0;right:0;border-radius:2rem}.calendar-grid-item:hover .calendar-grid-item-content{background:#E0E7F6;background:var(--palettes-grey-100)}.calendar-grid-item.is-active .calendar-grid-item-content{background:#FF6600;background:var(--palettes-primary-color);color:#fff;color:var(--palettes-primary-text)}.calendar-grid-item.is-active.is-today .calendar-grid-item-content:after{content:\"\";z-index:1;color:#f60;color:var(--palettes-primary-color);box-shadow:inset 0 0 0 4px #fff;position:absolute;top:0;bottom:0;left:0;right:0;border-radius:2rem}.calendar-grid-item.is-disabled:hover .calendar-grid-item-content{pointer-events:none;background-color:#fff}.calendar-grid-item-content{position:relative;height:2.4rem;width:100%;line-height:2.4rem;border-radius:2rem}\n"] }]
401
403
  }], ctorParameters: function () {
402
404
  return [{ type: i0.ChangeDetectorRef }, { type: i0.ElementRef }, { type: i0.Renderer2 }, { type: undefined, decorators: [{
@@ -417,14 +419,13 @@ class LuCalendarInputModule {
417
419
  }
418
420
  LuCalendarInputModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: LuCalendarInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
419
421
  LuCalendarInputModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.0.0", ngImport: i0, type: LuCalendarInputModule, declarations: [LuCalendarInputComponent], imports: [FormsModule, CommonModule], exports: [LuCalendarInputComponent] });
420
- LuCalendarInputModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: LuCalendarInputModule, providers: [LuCalendarItemFactory], imports: [FormsModule, CommonModule] });
422
+ LuCalendarInputModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: LuCalendarInputModule, imports: [FormsModule, CommonModule] });
421
423
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.0", ngImport: i0, type: LuCalendarInputModule, decorators: [{
422
424
  type: NgModule,
423
425
  args: [{
424
426
  imports: [FormsModule, CommonModule],
425
427
  exports: [LuCalendarInputComponent],
426
428
  declarations: [LuCalendarInputComponent],
427
- providers: [LuCalendarItemFactory],
428
429
  }]
429
430
  }] });
430
431