@lucca-front/ng 17.2.0 → 17.2.2

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 (100) hide show
  1. package/button/button.component.d.ts +1 -2
  2. package/callout/callout-feedback-list/callout-feedback-list.component.d.ts +1 -2
  3. package/core/public-api.d.ts +1 -1
  4. package/core/tools/class.d.ts +11 -0
  5. package/core-select/api/api-v3.directive.d.ts +25 -0
  6. package/core-select/api/api-v4.directive.d.ts +22 -0
  7. package/core-select/api/api.directive.d.ts +31 -0
  8. package/core-select/api/index.d.ts +5 -0
  9. package/core-select/api/public-api.d.ts +3 -0
  10. package/core-select/input/select-input.component.d.ts +3 -3
  11. package/core-select/option/option.component.d.ts +1 -0
  12. package/esm2022/button/button.component.mjs +7 -8
  13. package/esm2022/callout/callout-feedback-list/callout-feedback-list.component.mjs +6 -7
  14. package/esm2022/core/public-api.mjs +2 -2
  15. package/esm2022/core/tools/class.mjs +75 -0
  16. package/esm2022/core-select/api/api-v3.directive.mjs +62 -0
  17. package/esm2022/core-select/api/api-v4.directive.mjs +56 -0
  18. package/esm2022/core-select/api/api.directive.mjs +46 -0
  19. package/esm2022/core-select/api/lucca-front-ng-core-select-api.mjs +5 -0
  20. package/esm2022/core-select/api/public-api.mjs +4 -0
  21. package/esm2022/core-select/input/select-input.component.mjs +13 -12
  22. package/esm2022/core-select/option/option.component.mjs +5 -4
  23. package/esm2022/empty-state/empty-state-page/empty-state-page.component.mjs +3 -3
  24. package/esm2022/empty-state/empty-state-section/empty-state-section.component.mjs +3 -3
  25. package/esm2022/establishment/select/establishment-select.token.mjs +4 -0
  26. package/esm2022/establishment/select/input/establishment-select-input.component.mjs +13 -16
  27. package/esm2022/establishment/select/legal-unit-selector/legal-unit-selector.directive.mjs +9 -10
  28. package/esm2022/establishment/select/searcher/establishment-searcher.component.mjs +9 -10
  29. package/esm2022/establishment/select/select-all/establishment-select-all.component.mjs +9 -10
  30. package/esm2022/form-field/form-field.component.mjs +11 -10
  31. package/esm2022/icon/icon.component.mjs +3 -3
  32. package/esm2022/inline-message/inline-message.component.mjs +7 -8
  33. package/esm2022/multi-select/displayer/default-displayer.component.mjs +4 -2
  34. package/esm2022/multi-select/input/panel-ref.factory.mjs +6 -6
  35. package/esm2022/multi-select/input/select-input.component.mjs +3 -10
  36. package/esm2022/multi-select/panel/panel.component.mjs +18 -18
  37. package/esm2022/multi-select/select.model.mjs +2 -2
  38. package/esm2022/numeric-badge/numeric-badge.component.mjs +7 -8
  39. package/esm2022/option/item/option-item.component.mjs +3 -3
  40. package/esm2022/option/item/tree-option-item.component.mjs +3 -3
  41. package/esm2022/simple-select/api/api-v3.directive.mjs +6 -62
  42. package/esm2022/simple-select/api/api-v4.directive.mjs +6 -56
  43. package/esm2022/simple-select/api/api.directive.mjs +6 -40
  44. package/esm2022/simple-select/input/panel-ref.factory.mjs +7 -7
  45. package/esm2022/simple-select/input/select-input.component.mjs +2 -9
  46. package/esm2022/simple-select/panel/option-selected.pipe.mjs +17 -0
  47. package/esm2022/simple-select/panel/panel.component.mjs +21 -20
  48. package/esm2022/simple-select/select.model.mjs +2 -2
  49. package/establishment/select/establishment-select.token.d.ts +4 -0
  50. package/establishment/select/input/establishment-select-input.component.d.ts +2 -2
  51. package/establishment/select/legal-unit-selector/legal-unit-selector.directive.d.ts +2 -2
  52. package/establishment/select/searcher/establishment-searcher.component.d.ts +2 -2
  53. package/establishment/select/select-all/establishment-select-all.component.d.ts +2 -2
  54. package/fesm2022/lucca-front-ng-button.mjs +6 -7
  55. package/fesm2022/lucca-front-ng-button.mjs.map +1 -1
  56. package/fesm2022/lucca-front-ng-callout.mjs +5 -6
  57. package/fesm2022/lucca-front-ng-callout.mjs.map +1 -1
  58. package/fesm2022/lucca-front-ng-core-select-api.mjs +162 -0
  59. package/fesm2022/lucca-front-ng-core-select-api.mjs.map +1 -0
  60. package/fesm2022/lucca-front-ng-core-select.mjs +16 -14
  61. package/fesm2022/lucca-front-ng-core-select.mjs.map +1 -1
  62. package/fesm2022/lucca-front-ng-core.mjs +72 -22
  63. package/fesm2022/lucca-front-ng-core.mjs.map +1 -1
  64. package/fesm2022/lucca-front-ng-empty-state.mjs +4 -4
  65. package/fesm2022/lucca-front-ng-empty-state.mjs.map +1 -1
  66. package/fesm2022/lucca-front-ng-establishment.mjs +32 -39
  67. package/fesm2022/lucca-front-ng-establishment.mjs.map +1 -1
  68. package/fesm2022/lucca-front-ng-form-field.mjs +10 -9
  69. package/fesm2022/lucca-front-ng-form-field.mjs.map +1 -1
  70. package/fesm2022/lucca-front-ng-icon.mjs +2 -2
  71. package/fesm2022/lucca-front-ng-icon.mjs.map +1 -1
  72. package/fesm2022/lucca-front-ng-inline-message.mjs +6 -7
  73. package/fesm2022/lucca-front-ng-inline-message.mjs.map +1 -1
  74. package/fesm2022/lucca-front-ng-multi-select.mjs +26 -31
  75. package/fesm2022/lucca-front-ng-multi-select.mjs.map +1 -1
  76. package/fesm2022/lucca-front-ng-numeric-badge.mjs +6 -7
  77. package/fesm2022/lucca-front-ng-numeric-badge.mjs.map +1 -1
  78. package/fesm2022/lucca-front-ng-option.mjs +4 -4
  79. package/fesm2022/lucca-front-ng-option.mjs.map +1 -1
  80. package/fesm2022/lucca-front-ng-simple-select-api.mjs +13 -146
  81. package/fesm2022/lucca-front-ng-simple-select-api.mjs.map +1 -1
  82. package/fesm2022/lucca-front-ng-simple-select.mjs +40 -32
  83. package/fesm2022/lucca-front-ng-simple-select.mjs.map +1 -1
  84. package/form-field/form-field.component.d.ts +1 -2
  85. package/inline-message/inline-message.component.d.ts +1 -2
  86. package/multi-select/input/panel-ref.factory.d.ts +2 -2
  87. package/multi-select/panel/panel.component.d.ts +5 -5
  88. package/multi-select/select.model.d.ts +3 -12
  89. package/numeric-badge/numeric-badge.component.d.ts +1 -2
  90. package/package.json +26 -20
  91. package/simple-select/api/api-v3.directive.d.ts +5 -25
  92. package/simple-select/api/api-v4.directive.d.ts +5 -22
  93. package/simple-select/api/api.directive.d.ts +5 -32
  94. package/simple-select/input/panel-ref.factory.d.ts +2 -2
  95. package/simple-select/panel/option-selected.pipe.d.ts +7 -0
  96. package/simple-select/panel/panel.component.d.ts +5 -5
  97. package/simple-select/select.model.d.ts +3 -12
  98. package/src/definitions/option/_option-item.scss +1 -0
  99. package/core/tools/ng-clazz.directive.d.ts +0 -9
  100. package/esm2022/core/tools/ng-clazz.directive.mjs +0 -26
@@ -1,152 +1,19 @@
1
- import { HttpClient } from '@angular/common/http';
2
- import * as i0 from '@angular/core';
3
- import { inject, Directive, Input } from '@angular/core';
4
- import { Subject, scan, startWith, debounceTime, BehaviorSubject, takeUntil, of, catchError, tap, concatMap, takeWhile, switchMap, combineLatest, ReplaySubject, map, take } from 'rxjs';
5
- import { ALuSelectInputComponent } from '@lucca-front/ng/core-select';
1
+ import { LuCoreSelectApiV3Directive, LuCoreSelectApiV4Directive, ALuCoreSelectApiDirective } from '@lucca-front/ng/core-select/api';
6
2
 
7
- const MAGIC_PAGE_SIZE = 20;
8
- const MAGIC_DEBOUNCE_DURATION = 250;
9
- class ALuSimpleSelectApiDirective {
10
- constructor() {
11
- this.destroy$ = new Subject();
12
- this.pageSize = MAGIC_PAGE_SIZE;
13
- this.debounceDuration = MAGIC_DEBOUNCE_DURATION;
14
- this.select = inject(ALuSelectInputComponent);
15
- this.page$ = this.select.nextPage.pipe(scan((page) => page + 1, 0), startWith(0));
16
- this.clue$ = this.select.clueChange.pipe(startWith(''), debounceTime(this.debounceDuration));
17
- this.loading$ = new BehaviorSubject(false);
18
- }
19
- ngOnInit() {
20
- this.select.optionComparer = this.optionComparer;
21
- this.buildOptions().pipe(takeUntil(this.destroy$)).subscribe(this.select.options$);
22
- this.loading$.pipe(debounceTime(0), takeUntil(this.destroy$)).subscribe(this.select.loading$);
23
- }
24
- buildOptions() {
25
- return combineLatest([this.params$.pipe(debounceTime(0)), this.select.isPanelOpen$]).pipe(switchMap(([params, isOpened]) => isOpened
26
- ? this.page$.pipe(concatMap((page) => {
27
- this.loading$.next(true);
28
- return this.getOptions(params, page).pipe(catchError(() => of([])), tap(() => this.loading$.next(false)));
29
- }), takeWhile((items) => items.length === this.pageSize, true), scan((acc, items) => [...acc, ...items], []))
30
- : of([])));
31
- }
32
- ngOnDestroy() {
33
- this.destroy$.next();
34
- this.destroy$.complete();
35
- }
36
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: ALuSimpleSelectApiDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
37
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.2", type: ALuSimpleSelectApiDirective, ngImport: i0 }); }
38
- }
39
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: ALuSimpleSelectApiDirective, decorators: [{
40
- type: Directive
41
- }] });
3
+ /**
4
+ * @deprecated use LuCoreSelectApiV3Directive from @lucca-front/ng/core-select/api instead
5
+ */
6
+ const LuSimpleSelectApiV3Directive = LuCoreSelectApiV3Directive;
42
7
 
43
- class LuSimpleSelectApiV3Directive extends ALuSimpleSelectApiDirective {
44
- constructor() {
45
- super(...arguments);
46
- this.url$ = new ReplaySubject(1);
47
- this.fields$ = new BehaviorSubject('id,name');
48
- this.orderBy$ = new BehaviorSubject('name,asc');
49
- this.filters$ = new BehaviorSubject({});
50
- this.httpClient = inject(HttpClient);
51
- this.params$ = combineLatest([this.fields$, this.filters$, this.orderBy$, this.clue$]).pipe(map(([fields, filters, orderBy, clue]) => ({
52
- ...filters,
53
- fields,
54
- ...(orderBy ? { orderBy } : {}),
55
- ...(clue ? { name: `like,${clue}` } : {}),
56
- })));
57
- this.optionComparer = (a, b) => a.id === b.id;
58
- }
59
- set apiV3(value) {
60
- this.url$.next(value);
61
- }
62
- set fields(value) {
63
- this.fields$.next(value);
64
- }
65
- set orderBy(value) {
66
- this.orderBy$.next(value);
67
- }
68
- set filters(value) {
69
- this.filters$.next(value);
70
- }
71
- getOptions(params, page) {
72
- return this.url$.pipe(take(1), switchMap((url) => this.httpClient.get(url, {
73
- params: {
74
- ...params,
75
- paging: `${page * this.pageSize},${this.pageSize}`,
76
- },
77
- })), map((res) => res.data.items));
78
- }
79
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: LuSimpleSelectApiV3Directive, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
80
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.2", type: LuSimpleSelectApiV3Directive, isStandalone: true, selector: "lu-simple-select[apiV3],lu-multi-select[apiV3]", inputs: { apiV3: "apiV3", fields: "fields", orderBy: "orderBy", filters: "filters" }, usesInheritance: true, ngImport: i0 }); }
81
- }
82
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: LuSimpleSelectApiV3Directive, decorators: [{
83
- type: Directive,
84
- args: [{
85
- // The attribute is already prefixed with "lu-simple-select"
86
- // eslint-disable-next-line @angular-eslint/directive-selector
87
- selector: 'lu-simple-select[apiV3],lu-multi-select[apiV3]',
88
- standalone: true,
89
- }]
90
- }], propDecorators: { apiV3: [{
91
- type: Input
92
- }], fields: [{
93
- type: Input
94
- }], orderBy: [{
95
- type: Input
96
- }], filters: [{
97
- type: Input
98
- }] } });
8
+ /**
9
+ * @deprecated use LuCoreSelectApiV4Directive from @lucca-front/ng/core-select/api instead
10
+ */
11
+ const LuSimpleSelectApiV4Directive = LuCoreSelectApiV4Directive;
99
12
 
100
- class LuSimpleSelectApiV4Directive extends ALuSimpleSelectApiDirective {
101
- constructor() {
102
- super(...arguments);
103
- this.url$ = new ReplaySubject(1);
104
- this.sort$ = new BehaviorSubject('+name');
105
- this.filters$ = new BehaviorSubject({});
106
- this.httpClient = inject(HttpClient);
107
- this.params$ = combineLatest([this.filters$, this.sort$, this.clue$]).pipe(map(([filters, sort, clue]) => ({
108
- ...filters,
109
- ...(sort ? { sort } : {}),
110
- ...(clue ? { search: clue } : {}),
111
- })));
112
- this.optionComparer = (a, b) => a.id === b.id;
113
- }
114
- set apiV4(value) {
115
- this.url$.next(value);
116
- }
117
- set sort(value) {
118
- this.sort$.next(value);
119
- }
120
- set filters(value) {
121
- this.filters$.next(value);
122
- }
123
- getOptions(params, page) {
124
- return this.url$.pipe(take(1), switchMap((url) => this.httpClient.get(url, {
125
- params: {
126
- ...params,
127
- page: page + 1,
128
- limit: this.pageSize,
129
- },
130
- })), map((res) => (Array.isArray(res) ? res : res?.items) ?? []));
131
- }
132
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: LuSimpleSelectApiV4Directive, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
133
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.2", type: LuSimpleSelectApiV4Directive, isStandalone: true, selector: "lu-simple-select[apiV4],lu-multi-select[apiV4]", inputs: { apiV4: "apiV4", sort: "sort", filters: "filters" }, usesInheritance: true, ngImport: i0 }); }
134
- }
135
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: LuSimpleSelectApiV4Directive, decorators: [{
136
- type: Directive,
137
- args: [{
138
- // The attribute is already prefixed with "lu-simple-select"
139
- // eslint-disable-next-line @angular-eslint/directive-selector
140
- selector: 'lu-simple-select[apiV4],lu-multi-select[apiV4]',
141
- standalone: true,
142
- }]
143
- }], propDecorators: { apiV4: [{
144
- type: Input
145
- }], sort: [{
146
- type: Input
147
- }], filters: [{
148
- type: Input
149
- }] } });
13
+ /**
14
+ * @deprecated use ALuCoreSelectApiDirective from @lucca-front/ng/core-select/api instead
15
+ */
16
+ const ALuSimpleSelectApiDirective = ALuCoreSelectApiDirective;
150
17
 
151
18
  /**
152
19
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"lucca-front-ng-simple-select-api.mjs","sources":["../../../packages/ng/simple-select/api/api.directive.ts","../../../packages/ng/simple-select/api/api-v3.directive.ts","../../../packages/ng/simple-select/api/api-v4.directive.ts","../../../packages/ng/simple-select/api/lucca-front-ng-simple-select-api.ts"],"sourcesContent":["import { Directive, inject, OnDestroy, OnInit } from '@angular/core';\nimport { ALuSelectInputComponent } from '@lucca-front/ng/core-select';\nimport { BehaviorSubject, catchError, combineLatest, concatMap, debounceTime, Observable, of, scan, startWith, Subject, switchMap, takeUntil, takeWhile, tap } from 'rxjs';\n\nexport const MAGIC_PAGE_SIZE = 20;\nexport const MAGIC_DEBOUNCE_DURATION = 250;\n\n@Directive()\nexport abstract class ALuSimpleSelectApiDirective<TOption, TParams = Record<string, string | number | boolean>> implements OnDestroy, OnInit {\n\tprotected destroy$ = new Subject<void>();\n\tprotected pageSize = MAGIC_PAGE_SIZE;\n\tprotected debounceDuration = MAGIC_DEBOUNCE_DURATION;\n\n\tprotected select = inject<ALuSelectInputComponent<TOption, unknown>>(ALuSelectInputComponent);\n\n\tprotected page$ = this.select.nextPage.pipe(\n\t\tscan((page) => page + 1, 0),\n\t\tstartWith(0),\n\t);\n\n\tprotected clue$ = this.select.clueChange.pipe(startWith(''), debounceTime(this.debounceDuration));\n\n\t/**\n\t * Create an object that will be used as params for the api call\n\t */\n\tprotected abstract params$: Observable<TParams>;\n\n\t/**\n\t * Compare two options to know if they are the same. For example, compare by id or by JSON\n\t */\n\tprotected abstract optionComparer: (a: TOption, b: TOption) => boolean;\n\n\t/**\n\t * Return the options for the given params and page\n\t */\n\tprotected abstract getOptions(params: TParams, page: number): Observable<TOption[]>;\n\n\tprotected loading$ = new BehaviorSubject(false);\n\n\tpublic ngOnInit(): void {\n\t\tthis.select.optionComparer = this.optionComparer;\n\t\tthis.buildOptions().pipe(takeUntil(this.destroy$)).subscribe(this.select.options$);\n\t\tthis.loading$.pipe(debounceTime(0), takeUntil(this.destroy$)).subscribe(this.select.loading$);\n\t}\n\n\tprotected buildOptions(): Observable<TOption[]> {\n\t\treturn combineLatest([this.params$.pipe(debounceTime(0)), this.select.isPanelOpen$]).pipe(\n\t\t\tswitchMap(([params, isOpened]) =>\n\t\t\t\tisOpened\n\t\t\t\t\t? this.page$.pipe(\n\t\t\t\t\t\t\tconcatMap((page) => {\n\t\t\t\t\t\t\t\tthis.loading$.next(true);\n\t\t\t\t\t\t\t\treturn this.getOptions(params, page).pipe(\n\t\t\t\t\t\t\t\t\tcatchError(() => of([] as TOption[])),\n\t\t\t\t\t\t\t\t\ttap(() => this.loading$.next(false)),\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}),\n\t\t\t\t\t\t\ttakeWhile((items) => items.length === this.pageSize, true),\n\t\t\t\t\t\t\tscan((acc, items) => [...acc, ...items], [] as TOption[]),\n\t\t\t\t\t )\n\t\t\t\t\t: of([] as TOption[]),\n\t\t\t),\n\t\t);\n\t}\n\n\tpublic ngOnDestroy(): void {\n\t\tthis.destroy$.next();\n\t\tthis.destroy$.complete();\n\t}\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Directive, inject, Input } from '@angular/core';\nimport { ILuApiCollectionResponse, ILuApiItem } from '@lucca-front/ng/api';\nimport { BehaviorSubject, combineLatest, map, Observable, ReplaySubject, switchMap, take } from 'rxjs';\nimport { ALuSimpleSelectApiDirective } from './api.directive';\n\n@Directive({\n\t// The attribute is already prefixed with \"lu-simple-select\"\n\t// eslint-disable-next-line @angular-eslint/directive-selector\n\tselector: 'lu-simple-select[apiV3],lu-multi-select[apiV3]',\n\tstandalone: true,\n})\nexport class LuSimpleSelectApiV3Directive<T extends ILuApiItem> extends ALuSimpleSelectApiDirective<T> {\n\t@Input()\n\tpublic set apiV3(value: string) {\n\t\tthis.url$.next(value);\n\t}\n\n\t@Input()\n\tpublic set fields(value: string) {\n\t\tthis.fields$.next(value);\n\t}\n\n\t@Input()\n\tpublic set orderBy(value: string | null) {\n\t\tthis.orderBy$.next(value);\n\t}\n\n\t@Input()\n\tpublic set filters(value: Record<string, string | number | boolean>) {\n\t\tthis.filters$.next(value);\n\t}\n\n\tprotected url$ = new ReplaySubject<string>(1);\n\tprotected fields$ = new BehaviorSubject<string>('id,name');\n\tprotected orderBy$ = new BehaviorSubject<string | null>('name,asc');\n\tprotected filters$ = new BehaviorSubject<Record<string, string | number | boolean>>({});\n\n\tprotected httpClient = inject(HttpClient);\n\n\tprotected override params$ = combineLatest([this.fields$, this.filters$, this.orderBy$, this.clue$]).pipe(\n\t\tmap(([fields, filters, orderBy, clue]) => ({\n\t\t\t...filters,\n\t\t\tfields,\n\t\t\t...(orderBy ? { orderBy } : {}),\n\t\t\t...(clue ? { name: `like,${clue}` } : {}),\n\t\t})),\n\t);\n\n\tprotected override getOptions(params: Record<string, string | number | boolean>, page: number): Observable<T[]> {\n\t\treturn this.url$.pipe(\n\t\t\ttake(1),\n\t\t\tswitchMap((url) =>\n\t\t\t\tthis.httpClient.get<ILuApiCollectionResponse<T>>(url, {\n\t\t\t\t\tparams: {\n\t\t\t\t\t\t...params,\n\t\t\t\t\t\tpaging: `${page * this.pageSize},${this.pageSize}`,\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t),\n\t\t\tmap((res) => res.data.items),\n\t\t);\n\t}\n\n\tprotected override optionComparer = (a: T, b: T) => a.id === b.id;\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Directive, inject, Input } from '@angular/core';\nimport { ILuApiItem } from '@lucca-front/ng/api';\nimport { BehaviorSubject, combineLatest, map, Observable, ReplaySubject, switchMap, take } from 'rxjs';\nimport { ALuSimpleSelectApiDirective } from './api.directive';\n\n@Directive({\n\t// The attribute is already prefixed with \"lu-simple-select\"\n\t// eslint-disable-next-line @angular-eslint/directive-selector\n\tselector: 'lu-simple-select[apiV4],lu-multi-select[apiV4]',\n\tstandalone: true,\n})\nexport class LuSimpleSelectApiV4Directive<T extends ILuApiItem> extends ALuSimpleSelectApiDirective<T> {\n\t@Input()\n\tpublic set apiV4(value: string) {\n\t\tthis.url$.next(value);\n\t}\n\n\t@Input()\n\tpublic set sort(value: string | null) {\n\t\tthis.sort$.next(value);\n\t}\n\n\t@Input()\n\tpublic set filters(value: Record<string, string | number | boolean>) {\n\t\tthis.filters$.next(value);\n\t}\n\n\tprotected url$ = new ReplaySubject<string>(1);\n\tprotected sort$ = new BehaviorSubject<string | null>('+name');\n\tprotected filters$ = new BehaviorSubject<Record<string, string | number | boolean>>({});\n\n\tprotected httpClient = inject(HttpClient);\n\n\tprotected override params$ = combineLatest([this.filters$, this.sort$, this.clue$]).pipe(\n\t\tmap(([filters, sort, clue]) => ({\n\t\t\t...filters,\n\t\t\t...(sort ? { sort } : {}),\n\t\t\t...(clue ? { search: clue } : {}),\n\t\t})),\n\t);\n\n\tprotected override getOptions(params: Record<string, string | number | boolean>, page: number): Observable<T[]> {\n\t\treturn this.url$.pipe(\n\t\t\ttake(1),\n\t\t\tswitchMap((url) =>\n\t\t\t\tthis.httpClient.get<T[] | { items: T[] }>(url, {\n\t\t\t\t\tparams: {\n\t\t\t\t\t\t...params,\n\t\t\t\t\t\tpage: page + 1,\n\t\t\t\t\t\tlimit: this.pageSize,\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t),\n\t\t\tmap((res) => (Array.isArray(res) ? res : res?.items) ?? []),\n\t\t);\n\t}\n\n\tprotected override optionComparer = (a: T, b: T) => a.id === b.id;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;AAIO,MAAM,eAAe,GAAG,EAAE,CAAC;AAC3B,MAAM,uBAAuB,GAAG,GAAG,CAAC;MAGrB,2BAA2B,CAAA;AADjD,IAAA,WAAA,GAAA;AAEW,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,OAAO,EAAQ,CAAC;QAC/B,IAAQ,CAAA,QAAA,GAAG,eAAe,CAAC;QAC3B,IAAgB,CAAA,gBAAA,GAAG,uBAAuB,CAAC;AAE3C,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAA4C,uBAAuB,CAAC,CAAC;AAEpF,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAC1C,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,GAAG,CAAC,EAAE,CAAC,CAAC,EAC3B,SAAS,CAAC,CAAC,CAAC,CACZ,CAAC;QAEQ,IAAK,CAAA,KAAA,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,YAAY,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;AAiBxF,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;AAgChD,KAAA;IA9BO,QAAQ,GAAA;QACd,IAAI,CAAC,MAAM,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QACjD,IAAI,CAAC,YAAY,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QACnF,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EAAE,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;KAC9F;IAES,YAAY,GAAA;AACrB,QAAA,OAAO,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,CACxF,SAAS,CAAC,CAAC,CAAC,MAAM,EAAE,QAAQ,CAAC,KAC5B,QAAQ;AACP,cAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CACf,SAAS,CAAC,CAAC,IAAI,KAAI;AAClB,gBAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AACzB,gBAAA,OAAO,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,IAAI,CACxC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAe,CAAC,CAAC,EACrC,GAAG,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CACpC,CAAC;AACH,aAAC,CAAC,EACF,SAAS,CAAC,CAAC,KAAK,KAAK,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,EAC1D,IAAI,CAAC,CAAC,GAAG,EAAE,KAAK,KAAK,CAAC,GAAG,GAAG,EAAE,GAAG,KAAK,CAAC,EAAE,EAAe,CAAC,CACxD;AACH,cAAE,EAAE,CAAC,EAAe,CAAC,CACtB,CACD,CAAC;KACF;IAEM,WAAW,GAAA;AACjB,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC;KACzB;8GA5DoB,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAA3B,2BAA2B,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBADhD,SAAS;;;ACKJ,MAAO,4BAAmD,SAAQ,2BAA8B,CAAA;AANtG,IAAA,WAAA,GAAA;;AA2BW,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,aAAa,CAAS,CAAC,CAAC,CAAC;AACpC,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,eAAe,CAAS,SAAS,CAAC,CAAC;AACjD,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,eAAe,CAAgB,UAAU,CAAC,CAAC;AAC1D,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,eAAe,CAA4C,EAAE,CAAC,CAAC;AAE9E,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AAEvB,QAAA,IAAA,CAAA,OAAO,GAAG,aAAa,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CACxG,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM;AAC1C,YAAA,GAAG,OAAO;YACV,MAAM;AACN,YAAA,IAAI,OAAO,GAAG,EAAE,OAAO,EAAE,GAAG,EAAE;AAC9B,YAAA,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,CAAQ,KAAA,EAAA,IAAI,EAAE,EAAE,GAAG,EAAE;SACxC,CAAC,CAAC,CACH,CAAC;AAiBiB,QAAA,IAAA,CAAA,cAAc,GAAG,CAAC,CAAI,EAAE,CAAI,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;AAClE,KAAA;IApDA,IACW,KAAK,CAAC,KAAa,EAAA;AAC7B,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACtB;IAED,IACW,MAAM,CAAC,KAAa,EAAA;AAC9B,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACzB;IAED,IACW,OAAO,CAAC,KAAoB,EAAA;AACtC,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC1B;IAED,IACW,OAAO,CAAC,KAAgD,EAAA;AAClE,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC1B;IAkBkB,UAAU,CAAC,MAAiD,EAAE,IAAY,EAAA;QAC5F,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACpB,IAAI,CAAC,CAAC,CAAC,EACP,SAAS,CAAC,CAAC,GAAG,KACb,IAAI,CAAC,UAAU,CAAC,GAAG,CAA8B,GAAG,EAAE;AACrD,YAAA,MAAM,EAAE;AACP,gBAAA,GAAG,MAAM;gBACT,MAAM,EAAE,CAAG,EAAA,IAAI,GAAG,IAAI,CAAC,QAAQ,CAAI,CAAA,EAAA,IAAI,CAAC,QAAQ,CAAE,CAAA;AAClD,aAAA;AACD,SAAA,CAAC,CACF,EACD,GAAG,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAC5B,CAAC;KACF;8GAlDW,4BAA4B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAA5B,4BAA4B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gDAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAA5B,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBANxC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;;AAGV,oBAAA,QAAQ,EAAE,gDAAgD;AAC1D,oBAAA,UAAU,EAAE,IAAI;AAChB,iBAAA,CAAA;8BAGW,KAAK,EAAA,CAAA;sBADf,KAAK;gBAMK,MAAM,EAAA,CAAA;sBADhB,KAAK;gBAMK,OAAO,EAAA,CAAA;sBADjB,KAAK;gBAMK,OAAO,EAAA,CAAA;sBADjB,KAAK;;;AChBD,MAAO,4BAAmD,SAAQ,2BAA8B,CAAA;AANtG,IAAA,WAAA,GAAA;;AAsBW,QAAA,IAAA,CAAA,IAAI,GAAG,IAAI,aAAa,CAAS,CAAC,CAAC,CAAC;AACpC,QAAA,IAAA,CAAA,KAAK,GAAG,IAAI,eAAe,CAAgB,OAAO,CAAC,CAAC;AACpD,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,eAAe,CAA4C,EAAE,CAAC,CAAC;AAE9E,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,CAAC;AAEvB,QAAA,IAAA,CAAA,OAAO,GAAG,aAAa,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CACvF,GAAG,CAAC,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM;AAC/B,YAAA,GAAG,OAAO;AACV,YAAA,IAAI,IAAI,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE;AACxB,YAAA,IAAI,IAAI,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE;SAChC,CAAC,CAAC,CACH,CAAC;AAkBiB,QAAA,IAAA,CAAA,cAAc,GAAG,CAAC,CAAI,EAAE,CAAI,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;AAClE,KAAA;IA9CA,IACW,KAAK,CAAC,KAAa,EAAA;AAC7B,QAAA,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACtB;IAED,IACW,IAAI,CAAC,KAAoB,EAAA;AACnC,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KACvB;IAED,IACW,OAAO,CAAC,KAAgD,EAAA;AAClE,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC1B;IAgBkB,UAAU,CAAC,MAAiD,EAAE,IAAY,EAAA;QAC5F,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACpB,IAAI,CAAC,CAAC,CAAC,EACP,SAAS,CAAC,CAAC,GAAG,KACb,IAAI,CAAC,UAAU,CAAC,GAAG,CAAuB,GAAG,EAAE;AAC9C,YAAA,MAAM,EAAE;AACP,gBAAA,GAAG,MAAM;gBACT,IAAI,EAAE,IAAI,GAAG,CAAC;gBACd,KAAK,EAAE,IAAI,CAAC,QAAQ;AACpB,aAAA;AACD,SAAA,CAAC,CACF,EACD,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,GAAG,EAAE,KAAK,KAAK,EAAE,CAAC,CAC3D,CAAC;KACF;8GA5CW,4BAA4B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAA5B,4BAA4B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,gDAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,OAAA,EAAA,IAAA,EAAA,MAAA,EAAA,OAAA,EAAA,SAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAA5B,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBANxC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;;AAGV,oBAAA,QAAQ,EAAE,gDAAgD;AAC1D,oBAAA,UAAU,EAAE,IAAI;AAChB,iBAAA,CAAA;8BAGW,KAAK,EAAA,CAAA;sBADf,KAAK;gBAMK,IAAI,EAAA,CAAA;sBADd,KAAK;gBAMK,OAAO,EAAA,CAAA;sBADjB,KAAK;;;ACvBP;;AAEG;;;;"}
1
+ {"version":3,"file":"lucca-front-ng-simple-select-api.mjs","sources":["../../../packages/ng/simple-select/api/api-v3.directive.ts","../../../packages/ng/simple-select/api/api-v4.directive.ts","../../../packages/ng/simple-select/api/api.directive.ts","../../../packages/ng/simple-select/api/lucca-front-ng-simple-select-api.ts"],"sourcesContent":["import { LuCoreSelectApiV3Directive } from '@lucca-front/ng/core-select/api';\n\n/**\n * @deprecated use LuCoreSelectApiV3Directive from @lucca-front/ng/core-select/api instead\n */\nexport const LuSimpleSelectApiV3Directive = LuCoreSelectApiV3Directive;\n","import { LuCoreSelectApiV4Directive } from '@lucca-front/ng/core-select/api';\n\n/**\n * @deprecated use LuCoreSelectApiV4Directive from @lucca-front/ng/core-select/api instead\n */\nexport const LuSimpleSelectApiV4Directive = LuCoreSelectApiV4Directive;\n","import { ALuCoreSelectApiDirective } from '@lucca-front/ng/core-select/api';\n\n/**\n * @deprecated use ALuCoreSelectApiDirective from @lucca-front/ng/core-select/api instead\n */\nexport const ALuSimpleSelectApiDirective = ALuCoreSelectApiDirective;\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;AAEA;;AAEG;AACI,MAAM,4BAA4B,GAAG;;ACH5C;;AAEG;AACI,MAAM,4BAA4B,GAAG;;ACH5C;;AAEG;AACI,MAAM,2BAA2B,GAAG;;ACL3C;;AAEG;;;;"}
@@ -1,7 +1,7 @@
1
1
  import { Overlay, OverlayPositionBuilder, ScrollStrategyOptions, OverlayModule } from '@angular/cdk/overlay';
2
2
  import { AsyncPipe, NgIf, NgFor, NgTemplateOutlet } from '@angular/common';
3
3
  import * as i0 from '@angular/core';
4
- import { InjectionToken, inject, Component, ChangeDetectionStrategy, ViewChildren, Injector, ElementRef, Injectable, forwardRef, ViewEncapsulation } from '@angular/core';
4
+ import { InjectionToken, Pipe, inject, Component, ChangeDetectionStrategy, ViewChildren, Injector, ElementRef, Injectable, forwardRef, ViewEncapsulation } from '@angular/core';
5
5
  import * as i1$1 from '@angular/forms';
6
6
  import { FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';
7
7
  import { getIntl } from '@lucca-front/ng/core';
@@ -12,7 +12,7 @@ import { ComponentPortal } from '@angular/cdk/portal';
12
12
  import { map, EMPTY, takeUntil, asyncScheduler, observeOn, filter, take } from 'rxjs';
13
13
  import * as i1 from '@angular/cdk/a11y';
14
14
  import { ActiveDescendantKeyManager, A11yModule } from '@angular/cdk/a11y';
15
- import { skip } from 'rxjs/operators';
15
+ import { switchMap, debounceTime } from 'rxjs/operators';
16
16
 
17
17
  const LU_SIMPLE_SELECT_TRANSLATIONS = new InjectionToken('LuSimpleSelectTranslations', {
18
18
  factory: () => luSimpleSelectTranslations,
@@ -55,21 +55,36 @@ const luSimpleSelectTranslations = {
55
55
  },
56
56
  };
57
57
 
58
- const SIMPLE_SELECT_PANEL_DATA = new InjectionToken('SimpleSelectPanelData');
58
+ const SIMPLE_SELECT_INPUT = new InjectionToken('SimpleSelectInput');
59
+
60
+ class LuIsOptionSelectedPipe {
61
+ transform(option, comparer, selectedOption) {
62
+ return !!selectedOption && comparer(option, selectedOption);
63
+ }
64
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: LuIsOptionSelectedPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
65
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "17.0.2", ngImport: i0, type: LuIsOptionSelectedPipe, isStandalone: true, name: "luIsOptionSelected" }); }
66
+ }
67
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: LuIsOptionSelectedPipe, decorators: [{
68
+ type: Pipe,
69
+ args: [{
70
+ name: 'luIsOptionSelected',
71
+ standalone: true,
72
+ }]
73
+ }] });
59
74
 
60
75
  class LuSelectPanelComponent {
61
76
  constructor() {
62
- this.panelData = inject(SIMPLE_SELECT_PANEL_DATA);
77
+ this.selectInput = inject(SIMPLE_SELECT_INPUT);
63
78
  this.panelRef = inject(LuSelectPanelRef);
64
79
  this.selectId = inject(SELECT_ID);
65
80
  this.intl = getIntl(LU_SIMPLE_SELECT_TRANSLATIONS);
66
- this.options$ = this.panelData.options$;
67
- this.groups$ = this.panelData.grouping ? this.panelData.options$.pipe(map((options) => ɵgenerateGroups(options, this.panelData.grouping.selector))) : EMPTY;
68
- this.loading$ = this.panelData.loading$;
69
- this.optionComparer = this.panelData.optionComparer;
70
- this.grouping = this.panelData.grouping;
71
- this.initialValue = this.panelData.initialValue;
72
- this.optionTpl = this.panelData.optionTpl;
81
+ this.options$ = this.selectInput.options$;
82
+ this.grouping = this.selectInput.grouping;
83
+ this.groups$ = this.grouping ? this.options$.pipe(map((options) => ɵgenerateGroups(options, this.grouping.selector))) : EMPTY;
84
+ this.loading$ = this.selectInput.loading$;
85
+ this.optionComparer = this.selectInput.optionComparer;
86
+ this.initialValue = this.selectInput.value;
87
+ this.optionTpl = this.selectInput.optionTpl;
73
88
  }
74
89
  get keyManager() {
75
90
  return this._keyManager;
@@ -96,7 +111,7 @@ class LuSelectPanelComponent {
96
111
  this.keyManager.change
97
112
  .pipe(map(() => this.keyManager.activeItem?.id), takeUntil(this.panelRef.closed))
98
113
  .subscribe((activeDescendant) => this.panelRef.activeOptionIdChanged.emit(activeDescendant));
99
- if (this.initialValue) {
114
+ if (this.initialValue && !this.selectInput.clue) {
100
115
  this.options$
101
116
  ?.pipe(observeOn(asyncScheduler), map((options) => options.findIndex((o) => this.optionComparer(o, this.initialValue))), filter((index) => index !== -1), take(1), takeUntil(this.panelRef.closed))
102
117
  .subscribe((selectedIndex) => this.keyManager.setActiveItem(selectedIndex));
@@ -106,33 +121,33 @@ class LuSelectPanelComponent {
106
121
  setTimeout(() => this.keyManager.setFirstItemActive());
107
122
  }
108
123
  /**
109
- * On new options, we want to select the first element with key manager
124
+ * On new options after a search, we want to select the first element with key manager
110
125
  */
111
- this.options$
112
- ?.pipe(observeOn(asyncScheduler),
113
- // Skip first so we don't override "select currently active", we only want new options anyways
114
- skip(1), takeUntil(this.panelRef.closed))
115
- .subscribe(() => this.keyManager.setFirstItemActive());
126
+ if (this.selectInput.searchable) {
127
+ this.selectInput.clueChange
128
+ .pipe(switchMap(() => this.optionsQL.changes.pipe(take(1))), debounceTime(0), takeUntil(this.panelRef.closed))
129
+ .subscribe(() => this.keyManager.setFirstItemActive());
130
+ }
116
131
  }
117
132
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: LuSelectPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
118
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: LuSelectPanelComponent, isStandalone: true, selector: "lu-select-panel", viewQueries: [{ propertyName: "optionsQL", predicate: ɵLuOptionComponent, descendants: true }], ngImport: i0, template: "<div\n\tclass=\"lu-picker-panel lu-option-picker-panel\"\n\tcdkTrapFocus\n\t*ngIf=\"{ options: options$ | async } as ctx\"\n\t[cdkTrapFocusAutoCapture]=\"true\"\n>\n\t<div class=\"lu-picker-content\" [class.is-loading]=\"loading$ | async\" (scroll)=\"onScroll($event)\">\n\t\t<div class=\"lu-picker-content-option\" role=\"listbox\">\n\t\t\t<ng-container *ngIf=\"grouping\">\n\t\t\t\t<div\n\t\t\t\t\t*ngFor=\"let group of groups$ | async\"\n\t\t\t\t\tclass=\"lu-picker-content-option-group\"\n\t\t\t\t\trole=\"group\"\n\t\t\t\t\t[attr.aria-labelledby]=\"selectId + '-group-' + group.key\"\n\t\t\t\t>\n\t\t\t\t\t<span class=\"lu-picker-content-option-group-title\" role=\"presentation\" [id]=\"selectId + '-group-' + group.key\">\n\t\t\t\t\t\t<ng-template [ngTemplateOutlet]=\"grouping.templateRef\" [ngTemplateOutletContext]=\"{ $implicit: group }\"></ng-template>\n\t\t\t\t\t</span>\n\t\t\t\t\t<ng-template [ngTemplateOutlet]=\"optionsList\" [ngTemplateOutletContext]=\"{ $implicit: group.options }\"></ng-template>\n\t\t\t\t</div>\n\t\t\t</ng-container>\n\t\t\t<ng-container *ngIf=\"!grouping\">\n\t\t\t\t<ng-template [ngTemplateOutlet]=\"optionsList\" [ngTemplateOutletContext]=\"{ $implicit: ctx.options }\"></ng-template>\n\t\t\t</ng-container>\n\n\t\t\t<ng-template #optionsList let-options>\n\t\t\t\t<lu-select-option\n\t\t\t\t\t*ngFor=\"let option of options; let index = index\"\n\t\t\t\t\t[option]=\"option\"\n\t\t\t\t\t[optionTpl]=\"optionTpl\"\n\t\t\t\t\t[optionIndex]=\"index\"\n\t\t\t\t\t[scrollIntoViewOptions]=\"{ block: 'center' }\"\n\t\t\t\t\t[isSelected]=\"option === selected\"\n\t\t\t\t\t(click)=\"panelRef.emitValue(option)\"\n\t\t\t\t></lu-select-option>\n\t\t\t</ng-template>\n\t\t\t<div class=\"lu-picker-content-option-emptyState\" *ngIf=\"ctx.options.length === 0 && (loading$ | async) === false\">\n\t\t\t\t{{intl.emptyResults}}\n\t\t\t</div>\n\t\t</div>\n\t\t<div *ngIf=\"loading$ | async\" class=\"lu-picker-content-loading\">\n\t\t\t<div class=\"loading\"></div>\n\t\t\t<span>{{intl.loading}}</span>\n\t\t</div>\n\t</div>\n\t<!--<div class=\"lu-picker-content-add\">\n\t\t<button class=\"button mod-text mod-icon palette-primary\" type=\"button\">\n\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-mathsPlus\"></span>Add a new supplier\n\t\t</button>\n\t</div>-->\n</div>\n", styles: [":root{--components-options-item-padding-vertical: var(--spacings-XXS);--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}.textfield.mod-search{width:100%}.textfield-input{outline:none}.checkbox.mod-formerEmployee{padding:var(--spacings-XXS) var(--components-options-item-padding-horizontal);border-bottom:var(--commons-divider-width) solid var(--commons-divider-color);background-color:var(--palettes-grey-50);font-style:italic}.optionPlaceholder{display:block;padding:var(--components-options-item-padding-vertical) var(--components-options-item-padding-horizontal);font-style:italic;color:var(--palettes-grey-600)}\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: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ɵLuOptionComponent, selector: "lu-select-option", inputs: ["optionTpl", "isSelected", "option", "optionIndex", "scrollIntoViewOptions"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
133
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.2", type: LuSelectPanelComponent, isStandalone: true, selector: "lu-select-panel", viewQueries: [{ propertyName: "optionsQL", predicate: ɵLuOptionComponent, descendants: true }], ngImport: i0, template: "<div\n\tclass=\"lu-picker-panel lu-option-picker-panel\"\n\tcdkTrapFocus\n\t*ngIf=\"{ options: (options$ | async) || [] } as ctx\"\n\t[cdkTrapFocusAutoCapture]=\"true\"\n>\n\t<div class=\"lu-picker-content\" [class.is-loading]=\"loading$ | async\" (scroll)=\"onScroll($event)\">\n\t\t<div class=\"lu-picker-content-option\" role=\"listbox\">\n\t\t\t<ng-container *ngIf=\"grouping\">\n\t\t\t\t<div\n\t\t\t\t\t*ngFor=\"let group of groups$ | async\"\n\t\t\t\t\tclass=\"lu-picker-content-option-group\"\n\t\t\t\t\trole=\"group\"\n\t\t\t\t\t[attr.aria-labelledby]=\"selectId + '-group-' + group.key\"\n\t\t\t\t>\n\t\t\t\t\t<span class=\"lu-picker-content-option-group-title\" role=\"presentation\" [id]=\"selectId + '-group-' + group.key\">\n\t\t\t\t\t\t<ng-template [ngTemplateOutlet]=\"grouping.templateRef\" [ngTemplateOutletContext]=\"{ $implicit: group }\"></ng-template>\n\t\t\t\t\t</span>\n\t\t\t\t\t<ng-template [ngTemplateOutlet]=\"optionsList\" [ngTemplateOutletContext]=\"{ $implicit: group.options }\"></ng-template>\n\t\t\t\t</div>\n\t\t\t</ng-container>\n\t\t\t<ng-container *ngIf=\"!grouping\">\n\t\t\t\t<ng-template [ngTemplateOutlet]=\"optionsList\" [ngTemplateOutletContext]=\"{ $implicit: ctx.options }\"></ng-template>\n\t\t\t</ng-container>\n\n\t\t\t<ng-template #optionsList let-options>\n\t\t\t\t<lu-select-option\n\t\t\t\t\t*ngFor=\"let option of options; let index = index\"\n\t\t\t\t\t[option]=\"option\"\n\t\t\t\t\t[optionTpl]=\"optionTpl\"\n\t\t\t\t\t[optionIndex]=\"index\"\n\t\t\t\t\t[scrollIntoViewOptions]=\"{ block: 'center' }\"\n\t\t\t\t\t[isSelected]=\"option | luIsOptionSelected:optionComparer:selected\"\n\t\t\t\t\t(click)=\"panelRef.emitValue(option)\"\n\t\t\t\t></lu-select-option>\n\t\t\t</ng-template>\n\t\t\t<div class=\"lu-picker-content-option-emptyState\" *ngIf=\"ctx.options.length === 0 && (loading$ | async) === false\">\n\t\t\t\t{{intl.emptyResults}}\n\t\t\t</div>\n\t\t</div>\n\t\t<div *ngIf=\"loading$ | async\" class=\"lu-picker-content-loading\">\n\t\t\t<div class=\"loading\"></div>\n\t\t\t<span>{{intl.loading}}</span>\n\t\t</div>\n\t</div>\n\t<!--<div class=\"lu-picker-content-add\">\n\t\t<button class=\"button mod-text mod-icon palette-primary\" type=\"button\">\n\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-mathsPlus\"></span>Add a new supplier\n\t\t</button>\n\t</div>-->\n</div>\n", styles: [":root{--components-options-item-padding-vertical: var(--spacings-XXS);--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}.textfield.mod-search{width:100%}.textfield-input{outline:none}.checkbox.mod-formerEmployee{padding:var(--spacings-XXS) var(--components-options-item-padding-horizontal);border-bottom:var(--commons-divider-width) solid var(--commons-divider-color);background-color:var(--palettes-grey-50);font-style:italic}.optionPlaceholder{display:block;padding:var(--components-options-item-padding-vertical) var(--components-options-item-padding-horizontal);font-style:italic;color:var(--palettes-grey-600)}\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: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: ɵLuOptionComponent, selector: "lu-select-option", inputs: ["optionTpl", "isSelected", "option", "optionIndex", "scrollIntoViewOptions"] }, { kind: "pipe", type: LuIsOptionSelectedPipe, name: "luIsOptionSelected" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
119
134
  }
120
135
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: LuSelectPanelComponent, decorators: [{
121
136
  type: Component,
122
- args: [{ selector: 'lu-select-panel', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [A11yModule, AsyncPipe, FormsModule, NgIf, NgFor, NgTemplateOutlet, ɵLuOptionComponent], template: "<div\n\tclass=\"lu-picker-panel lu-option-picker-panel\"\n\tcdkTrapFocus\n\t*ngIf=\"{ options: options$ | async } as ctx\"\n\t[cdkTrapFocusAutoCapture]=\"true\"\n>\n\t<div class=\"lu-picker-content\" [class.is-loading]=\"loading$ | async\" (scroll)=\"onScroll($event)\">\n\t\t<div class=\"lu-picker-content-option\" role=\"listbox\">\n\t\t\t<ng-container *ngIf=\"grouping\">\n\t\t\t\t<div\n\t\t\t\t\t*ngFor=\"let group of groups$ | async\"\n\t\t\t\t\tclass=\"lu-picker-content-option-group\"\n\t\t\t\t\trole=\"group\"\n\t\t\t\t\t[attr.aria-labelledby]=\"selectId + '-group-' + group.key\"\n\t\t\t\t>\n\t\t\t\t\t<span class=\"lu-picker-content-option-group-title\" role=\"presentation\" [id]=\"selectId + '-group-' + group.key\">\n\t\t\t\t\t\t<ng-template [ngTemplateOutlet]=\"grouping.templateRef\" [ngTemplateOutletContext]=\"{ $implicit: group }\"></ng-template>\n\t\t\t\t\t</span>\n\t\t\t\t\t<ng-template [ngTemplateOutlet]=\"optionsList\" [ngTemplateOutletContext]=\"{ $implicit: group.options }\"></ng-template>\n\t\t\t\t</div>\n\t\t\t</ng-container>\n\t\t\t<ng-container *ngIf=\"!grouping\">\n\t\t\t\t<ng-template [ngTemplateOutlet]=\"optionsList\" [ngTemplateOutletContext]=\"{ $implicit: ctx.options }\"></ng-template>\n\t\t\t</ng-container>\n\n\t\t\t<ng-template #optionsList let-options>\n\t\t\t\t<lu-select-option\n\t\t\t\t\t*ngFor=\"let option of options; let index = index\"\n\t\t\t\t\t[option]=\"option\"\n\t\t\t\t\t[optionTpl]=\"optionTpl\"\n\t\t\t\t\t[optionIndex]=\"index\"\n\t\t\t\t\t[scrollIntoViewOptions]=\"{ block: 'center' }\"\n\t\t\t\t\t[isSelected]=\"option === selected\"\n\t\t\t\t\t(click)=\"panelRef.emitValue(option)\"\n\t\t\t\t></lu-select-option>\n\t\t\t</ng-template>\n\t\t\t<div class=\"lu-picker-content-option-emptyState\" *ngIf=\"ctx.options.length === 0 && (loading$ | async) === false\">\n\t\t\t\t{{intl.emptyResults}}\n\t\t\t</div>\n\t\t</div>\n\t\t<div *ngIf=\"loading$ | async\" class=\"lu-picker-content-loading\">\n\t\t\t<div class=\"loading\"></div>\n\t\t\t<span>{{intl.loading}}</span>\n\t\t</div>\n\t</div>\n\t<!--<div class=\"lu-picker-content-add\">\n\t\t<button class=\"button mod-text mod-icon palette-primary\" type=\"button\">\n\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-mathsPlus\"></span>Add a new supplier\n\t\t</button>\n\t</div>-->\n</div>\n", styles: [":root{--components-options-item-padding-vertical: var(--spacings-XXS);--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}.textfield.mod-search{width:100%}.textfield-input{outline:none}.checkbox.mod-formerEmployee{padding:var(--spacings-XXS) var(--components-options-item-padding-horizontal);border-bottom:var(--commons-divider-width) solid var(--commons-divider-color);background-color:var(--palettes-grey-50);font-style:italic}.optionPlaceholder{display:block;padding:var(--components-options-item-padding-vertical) var(--components-options-item-padding-horizontal);font-style:italic;color:var(--palettes-grey-600)}\n"] }]
137
+ args: [{ selector: 'lu-select-panel', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [A11yModule, AsyncPipe, FormsModule, NgIf, NgFor, NgTemplateOutlet, ɵLuOptionComponent, LuIsOptionSelectedPipe], template: "<div\n\tclass=\"lu-picker-panel lu-option-picker-panel\"\n\tcdkTrapFocus\n\t*ngIf=\"{ options: (options$ | async) || [] } as ctx\"\n\t[cdkTrapFocusAutoCapture]=\"true\"\n>\n\t<div class=\"lu-picker-content\" [class.is-loading]=\"loading$ | async\" (scroll)=\"onScroll($event)\">\n\t\t<div class=\"lu-picker-content-option\" role=\"listbox\">\n\t\t\t<ng-container *ngIf=\"grouping\">\n\t\t\t\t<div\n\t\t\t\t\t*ngFor=\"let group of groups$ | async\"\n\t\t\t\t\tclass=\"lu-picker-content-option-group\"\n\t\t\t\t\trole=\"group\"\n\t\t\t\t\t[attr.aria-labelledby]=\"selectId + '-group-' + group.key\"\n\t\t\t\t>\n\t\t\t\t\t<span class=\"lu-picker-content-option-group-title\" role=\"presentation\" [id]=\"selectId + '-group-' + group.key\">\n\t\t\t\t\t\t<ng-template [ngTemplateOutlet]=\"grouping.templateRef\" [ngTemplateOutletContext]=\"{ $implicit: group }\"></ng-template>\n\t\t\t\t\t</span>\n\t\t\t\t\t<ng-template [ngTemplateOutlet]=\"optionsList\" [ngTemplateOutletContext]=\"{ $implicit: group.options }\"></ng-template>\n\t\t\t\t</div>\n\t\t\t</ng-container>\n\t\t\t<ng-container *ngIf=\"!grouping\">\n\t\t\t\t<ng-template [ngTemplateOutlet]=\"optionsList\" [ngTemplateOutletContext]=\"{ $implicit: ctx.options }\"></ng-template>\n\t\t\t</ng-container>\n\n\t\t\t<ng-template #optionsList let-options>\n\t\t\t\t<lu-select-option\n\t\t\t\t\t*ngFor=\"let option of options; let index = index\"\n\t\t\t\t\t[option]=\"option\"\n\t\t\t\t\t[optionTpl]=\"optionTpl\"\n\t\t\t\t\t[optionIndex]=\"index\"\n\t\t\t\t\t[scrollIntoViewOptions]=\"{ block: 'center' }\"\n\t\t\t\t\t[isSelected]=\"option | luIsOptionSelected:optionComparer:selected\"\n\t\t\t\t\t(click)=\"panelRef.emitValue(option)\"\n\t\t\t\t></lu-select-option>\n\t\t\t</ng-template>\n\t\t\t<div class=\"lu-picker-content-option-emptyState\" *ngIf=\"ctx.options.length === 0 && (loading$ | async) === false\">\n\t\t\t\t{{intl.emptyResults}}\n\t\t\t</div>\n\t\t</div>\n\t\t<div *ngIf=\"loading$ | async\" class=\"lu-picker-content-loading\">\n\t\t\t<div class=\"loading\"></div>\n\t\t\t<span>{{intl.loading}}</span>\n\t\t</div>\n\t</div>\n\t<!--<div class=\"lu-picker-content-add\">\n\t\t<button class=\"button mod-text mod-icon palette-primary\" type=\"button\">\n\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-mathsPlus\"></span>Add a new supplier\n\t\t</button>\n\t</div>-->\n</div>\n", styles: [":root{--components-options-item-padding-vertical: var(--spacings-XXS);--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}.textfield.mod-search{width:100%}.textfield-input{outline:none}.checkbox.mod-formerEmployee{padding:var(--spacings-XXS) var(--components-options-item-padding-horizontal);border-bottom:var(--commons-divider-width) solid var(--commons-divider-color);background-color:var(--palettes-grey-50);font-style:italic}.optionPlaceholder{display:block;padding:var(--components-options-item-padding-vertical) var(--components-options-item-padding-horizontal);font-style:italic;color:var(--palettes-grey-600)}\n"] }]
123
138
  }], propDecorators: { optionsQL: [{
124
139
  type: ViewChildren,
125
140
  args: [ɵLuOptionComponent]
126
141
  }] } });
127
142
 
128
143
  class SelectPanelRef extends LuSelectPanelRef {
129
- constructor(overlayRef, parentInjector, panelData) {
144
+ constructor(overlayRef, parentInjector, selectInput) {
130
145
  super();
131
146
  this.overlayRef = overlayRef;
132
147
  const injector = Injector.create({
133
148
  providers: [
134
149
  { provide: LuSelectPanelRef, useValue: this },
135
- { provide: SIMPLE_SELECT_PANEL_DATA, useValue: panelData },
150
+ { provide: SIMPLE_SELECT_INPUT, useValue: selectInput },
136
151
  ],
137
152
  parent: parentInjector,
138
153
  });
@@ -169,10 +184,10 @@ class LuSimpleSelectPanelRefFactory {
169
184
  this.scrollStrategies = inject(ScrollStrategyOptions);
170
185
  this.parentInjector = inject(Injector);
171
186
  }
172
- buildPanelRef(panelData, overlayConfigOverride = {}) {
187
+ buildPanelRef(selectInput, overlayConfigOverride = {}) {
173
188
  const overlayConfig = this.buildOverlayConfig(overlayConfigOverride);
174
189
  const overlayRef = this.overlay.create(overlayConfig);
175
- return new SelectPanelRef(overlayRef, this.parentInjector, panelData);
190
+ return new SelectPanelRef(overlayRef, this.parentInjector, selectInput);
176
191
  }
177
192
  buildOverlayConfig(overlayConfigOverride = {}) {
178
193
  const overlayConfig = overlayConfigOverride || {};
@@ -222,14 +237,7 @@ class LuSimpleSelectInputComponent extends ALuSelectInputComponent {
222
237
  this.panelRefFactory = inject(LuSimpleSelectPanelRefFactory);
223
238
  }
224
239
  buildPanelRef() {
225
- return this.panelRefFactory.buildPanelRef({
226
- initialValue: this.value,
227
- optionComparer: this.optionComparer,
228
- options$: this.options$,
229
- loading$: this.loading$,
230
- optionTpl: this.optionTpl,
231
- grouping: this.grouping,
232
- }, this.overlayConfig);
240
+ return this.panelRefFactory.buildPanelRef(this, this.overlayConfig);
233
241
  }
234
242
  get hasValue() {
235
243
  return this.value !== null && this.value !== undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"lucca-front-ng-simple-select.mjs","sources":["../../../packages/ng/simple-select/select.translate.ts","../../../packages/ng/simple-select/select.model.ts","../../../packages/ng/simple-select/panel/panel.component.ts","../../../packages/ng/simple-select/panel/panel.component.html","../../../packages/ng/simple-select/input/panel-ref.factory.ts","../../../packages/ng/simple-select/input/select-input.component.ts","../../../packages/ng/simple-select/input/select-input.component.html","../../../packages/ng/simple-select/lucca-front-ng-simple-select.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { ILuTranslation } from '@lucca-front/ng/core';\n\nexport const LU_SIMPLE_SELECT_TRANSLATIONS = new InjectionToken('LuSimpleSelectTranslations', {\n\tfactory: () => luSimpleSelectTranslations,\n});\n\nexport interface ILuSimpleSelectLabel {\n\tplaceholder: string;\n\tclear: string;\n\tclearSearch: string;\n\temptyResults: string;\n\tloading: string;\n}\n\nexport const luSimpleSelectTranslations: ILuTranslation<ILuSimpleSelectLabel> = {\n\ten: {\n\t\tplaceholder: 'Select an option',\n\t\tclear: 'Clear',\n\t\tclearSearch: 'Clear search',\n\t\temptyResults: 'No results',\n\t\tloading: 'Loading...',\n\t},\n\tfr: {\n\t\tplaceholder: 'Sélectionnez une option',\n\t\tclear: 'Effacer',\n\t\tclearSearch: 'Vider la recherche',\n\t\temptyResults: 'Aucun résultat pour votre recherche',\n\t\tloading: 'Chargement en cours...',\n\t},\n\tde: {\n\t\tplaceholder: 'Wählen Sie eine Option',\n\t\tclear: 'Löschen',\n\t\tclearSearch: 'Suche löschen',\n\t\temptyResults: 'Keine Ergebnisse für Ihre Suche',\n\t\tloading: 'Wird geladen...',\n\t},\n\tes: {\n\t\tplaceholder: 'Seleccione una opción',\n\t\tclear: 'Borrar',\n\t\tclearSearch: 'Borrar búsqueda',\n\t\temptyResults: 'No hay resultados para su búsqueda',\n\t\tloading: 'Cargando...',\n\t},\n\tpt: {\n\t\tplaceholder: 'Selecione uma opção',\n\t\tclear: 'Limpar',\n\t\tclearSearch: 'Limpar pesquisa',\n\t\temptyResults: 'Nenhum resultado para sua pesquisa',\n\t\tloading: 'Carregando...',\n\t},\n};\n","import { InjectionToken, TemplateRef, Type } from '@angular/core';\nimport { LuOptionContext, LuOptionGroupDirective } from '@lucca-front/ng/core-select';\nimport { Observable } from 'rxjs';\n\nexport interface ILuSimpleSelectPanelData<T> {\n\toptions$: Observable<T[]>;\n\tloading$: Observable<boolean>;\n\toptionComparer: (option1: T, option2: T) => boolean;\n\tinitialValue: T | undefined;\n\toptionTpl: TemplateRef<LuOptionContext<T>> | Type<unknown>;\n\tgrouping?: LuOptionGroupDirective<T, T, unknown>;\n}\n\nexport const SIMPLE_SELECT_PANEL_DATA = new InjectionToken<ILuSimpleSelectPanelData<unknown>>('SimpleSelectPanelData');\n","import { A11yModule, ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport { AsyncPipe, NgFor, NgIf, NgTemplateOutlet } from '@angular/common';\nimport { AfterViewInit, ChangeDetectionStrategy, Component, QueryList, ViewChildren, inject } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { getIntl } from '@lucca-front/ng/core';\nimport { LuSelectPanelRef, SELECT_ID, ɵLuOptionComponent, ɵgenerateGroups } from '@lucca-front/ng/core-select';\nimport { EMPTY, asyncScheduler, filter, map, observeOn, take, takeUntil } from 'rxjs';\nimport { skip } from 'rxjs/operators';\nimport { ILuSimpleSelectPanelData, SIMPLE_SELECT_PANEL_DATA } from '../select.model';\nimport { LU_SIMPLE_SELECT_TRANSLATIONS } from '../select.translate';\n\n@Component({\n\tselector: 'lu-select-panel',\n\ttemplateUrl: './panel.component.html',\n\tstyleUrls: ['./panel.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tstandalone: true,\n\timports: [A11yModule, AsyncPipe, FormsModule, NgIf, NgFor, NgTemplateOutlet, ɵLuOptionComponent],\n})\nexport class LuSelectPanelComponent<T> implements AfterViewInit {\n\tprotected panelData = inject<ILuSimpleSelectPanelData<T>>(SIMPLE_SELECT_PANEL_DATA);\n\tpublic panelRef = inject<LuSelectPanelRef<T, T>>(LuSelectPanelRef);\n\tpublic selectId = inject(SELECT_ID);\n\tpublic intl = getIntl(LU_SIMPLE_SELECT_TRANSLATIONS);\n\n\toptions$ = this.panelData.options$;\n\tgroups$ = this.panelData.grouping ? this.panelData.options$.pipe(map((options) => ɵgenerateGroups(options, this.panelData.grouping.selector))) : EMPTY;\n\tloading$ = this.panelData.loading$;\n\toptionComparer = this.panelData.optionComparer;\n\tgrouping = this.panelData.grouping;\n\tinitialValue: T | undefined = this.panelData.initialValue;\n\toptionTpl = this.panelData.optionTpl;\n\n\t@ViewChildren(ɵLuOptionComponent) optionsQL: QueryList<ɵLuOptionComponent<T>>;\n\tprivate _keyManager: ActiveDescendantKeyManager<ɵLuOptionComponent<T>>;\n\n\tpublic get keyManager(): ActiveDescendantKeyManager<ɵLuOptionComponent<T>> {\n\t\treturn this._keyManager;\n\t}\n\n\tpublic get selected(): T | undefined {\n\t\treturn this.initialValue;\n\t}\n\n\tonScroll(evt: Event): void {\n\t\tif (!(evt.target instanceof HTMLElement)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (evt.target.scrollTop === 0) {\n\t\t\tthis.panelRef.previousPage.emit();\n\t\t}\n\n\t\tif (evt.target.scrollHeight - evt.target.scrollTop - evt.target.clientHeight < 1) {\n\t\t\tthis.panelRef.nextPage.emit();\n\t\t}\n\t}\n\n\tngAfterViewInit(): void {\n\t\tif (!this.optionsQL) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._keyManager = new ActiveDescendantKeyManager(this.optionsQL).withHomeAndEnd();\n\n\t\tthis.keyManager.change\n\t\t\t.pipe(\n\t\t\t\tmap(() => this.keyManager.activeItem?.id),\n\t\t\t\ttakeUntil(this.panelRef.closed),\n\t\t\t)\n\t\t\t.subscribe((activeDescendant) => this.panelRef.activeOptionIdChanged.emit(activeDescendant));\n\n\t\tif (this.initialValue) {\n\t\t\tthis.options$\n\t\t\t\t?.pipe(\n\t\t\t\t\tobserveOn(asyncScheduler),\n\t\t\t\t\tmap((options) => options.findIndex((o) => this.optionComparer(o, this.initialValue))),\n\t\t\t\t\tfilter((index) => index !== -1),\n\t\t\t\t\ttake(1),\n\t\t\t\t\ttakeUntil(this.panelRef.closed),\n\t\t\t\t)\n\t\t\t\t.subscribe((selectedIndex) => this.keyManager.setActiveItem(selectedIndex));\n\t\t} else {\n\t\t\t// If no initial Value, set first as active\n\t\t\tsetTimeout(() => this.keyManager.setFirstItemActive());\n\t\t}\n\n\t\t/**\n\t\t * On new options, we want to select the first element with key manager\n\t\t */\n\t\tthis.options$\n\t\t\t?.pipe(\n\t\t\t\tobserveOn(asyncScheduler),\n\t\t\t\t// Skip first so we don't override \"select currently active\", we only want new options anyways\n\t\t\t\tskip(1),\n\t\t\t\ttakeUntil(this.panelRef.closed),\n\t\t\t)\n\t\t\t.subscribe(() => this.keyManager.setFirstItemActive());\n\t}\n}\n","<div\n\tclass=\"lu-picker-panel lu-option-picker-panel\"\n\tcdkTrapFocus\n\t*ngIf=\"{ options: options$ | async } as ctx\"\n\t[cdkTrapFocusAutoCapture]=\"true\"\n>\n\t<div class=\"lu-picker-content\" [class.is-loading]=\"loading$ | async\" (scroll)=\"onScroll($event)\">\n\t\t<div class=\"lu-picker-content-option\" role=\"listbox\">\n\t\t\t<ng-container *ngIf=\"grouping\">\n\t\t\t\t<div\n\t\t\t\t\t*ngFor=\"let group of groups$ | async\"\n\t\t\t\t\tclass=\"lu-picker-content-option-group\"\n\t\t\t\t\trole=\"group\"\n\t\t\t\t\t[attr.aria-labelledby]=\"selectId + '-group-' + group.key\"\n\t\t\t\t>\n\t\t\t\t\t<span class=\"lu-picker-content-option-group-title\" role=\"presentation\" [id]=\"selectId + '-group-' + group.key\">\n\t\t\t\t\t\t<ng-template [ngTemplateOutlet]=\"grouping.templateRef\" [ngTemplateOutletContext]=\"{ $implicit: group }\"></ng-template>\n\t\t\t\t\t</span>\n\t\t\t\t\t<ng-template [ngTemplateOutlet]=\"optionsList\" [ngTemplateOutletContext]=\"{ $implicit: group.options }\"></ng-template>\n\t\t\t\t</div>\n\t\t\t</ng-container>\n\t\t\t<ng-container *ngIf=\"!grouping\">\n\t\t\t\t<ng-template [ngTemplateOutlet]=\"optionsList\" [ngTemplateOutletContext]=\"{ $implicit: ctx.options }\"></ng-template>\n\t\t\t</ng-container>\n\n\t\t\t<ng-template #optionsList let-options>\n\t\t\t\t<lu-select-option\n\t\t\t\t\t*ngFor=\"let option of options; let index = index\"\n\t\t\t\t\t[option]=\"option\"\n\t\t\t\t\t[optionTpl]=\"optionTpl\"\n\t\t\t\t\t[optionIndex]=\"index\"\n\t\t\t\t\t[scrollIntoViewOptions]=\"{ block: 'center' }\"\n\t\t\t\t\t[isSelected]=\"option === selected\"\n\t\t\t\t\t(click)=\"panelRef.emitValue(option)\"\n\t\t\t\t></lu-select-option>\n\t\t\t</ng-template>\n\t\t\t<div class=\"lu-picker-content-option-emptyState\" *ngIf=\"ctx.options.length === 0 && (loading$ | async) === false\">\n\t\t\t\t{{intl.emptyResults}}\n\t\t\t</div>\n\t\t</div>\n\t\t<div *ngIf=\"loading$ | async\" class=\"lu-picker-content-loading\">\n\t\t\t<div class=\"loading\"></div>\n\t\t\t<span>{{intl.loading}}</span>\n\t\t</div>\n\t</div>\n\t<!--<div class=\"lu-picker-content-add\">\n\t\t<button class=\"button mod-text mod-icon palette-primary\" type=\"button\">\n\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-mathsPlus\"></span>Add a new supplier\n\t\t</button>\n\t</div>-->\n</div>\n","import { Overlay, OverlayConfig, OverlayPositionBuilder, OverlayRef, ScrollStrategyOptions } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { ComponentRef, ElementRef, inject, Injectable, Injector } from '@angular/core';\nimport { LuSelectPanelRef } from '@lucca-front/ng/core-select';\nimport { takeUntil } from 'rxjs';\nimport { LuSelectPanelComponent } from '../panel';\nimport { ILuSimpleSelectPanelData, SIMPLE_SELECT_PANEL_DATA } from '../select.model';\n\nclass SelectPanelRef<T> extends LuSelectPanelRef<T, T> {\n\tinstance: LuSelectPanelComponent<T>;\n\tprivate panelRef: ComponentRef<LuSelectPanelComponent<T>>;\n\tprivate portalRef: ComponentPortal<LuSelectPanelComponent<T>>;\n\n\tconstructor(private overlayRef: OverlayRef, parentInjector: Injector, panelData: ILuSimpleSelectPanelData<T>) {\n\t\tsuper();\n\n\t\tconst injector = Injector.create({\n\t\t\tproviders: [\n\t\t\t\t{ provide: LuSelectPanelRef, useValue: this },\n\t\t\t\t{ provide: SIMPLE_SELECT_PANEL_DATA, useValue: panelData },\n\t\t\t],\n\t\t\tparent: parentInjector,\n\t\t});\n\n\t\tthis.portalRef = new ComponentPortal<LuSelectPanelComponent<T>>(LuSelectPanelComponent, undefined, injector);\n\t\tthis.panelRef = overlayRef.attach(this.portalRef);\n\t\tthis.instance = this.panelRef.instance;\n\n\t\toverlayRef\n\t\t\t.backdropClick()\n\t\t\t.pipe(takeUntil(this.closed))\n\t\t\t.subscribe(() => this.close());\n\t}\n\n\temitValue(value: T): void {\n\t\tthis.valueChanged.emit(value);\n\t\tthis.close();\n\t}\n\n\toverride handleKeyManagerEvent(event: KeyboardEvent) {\n\t\tthis.instance.keyManager.onKeydown(event);\n\t}\n\n\toverride close(): void {\n\t\tsuper.close();\n\t\tthis.panelRef.destroy();\n\t\tthis.overlayRef.detach();\n\t}\n\n\tselectCurrentlyHighlightedValue(): void {\n\t\tthis.emitValue(this.instance.keyManager.activeItem?.option);\n\t\tthis.close();\n\t}\n}\n\n@Injectable()\nexport class LuSimpleSelectPanelRefFactory {\n\tprotected overlay = inject(Overlay);\n\tprotected elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\tprotected positionBuilder = inject(OverlayPositionBuilder);\n\tprotected scrollStrategies = inject(ScrollStrategyOptions);\n\tprotected parentInjector = inject(Injector);\n\n\tbuildPanelRef<T>(panelData: ILuSimpleSelectPanelData<T>, overlayConfigOverride: OverlayConfig = {}): LuSelectPanelRef<T, T> {\n\t\tconst overlayConfig = this.buildOverlayConfig(overlayConfigOverride);\n\t\tconst overlayRef = this.overlay.create(overlayConfig);\n\n\t\treturn new SelectPanelRef(overlayRef, this.parentInjector, panelData);\n\t}\n\n\tprotected buildOverlayConfig(overlayConfigOverride: OverlayConfig = {}): OverlayConfig {\n\t\tconst overlayConfig: OverlayConfig = overlayConfigOverride || {};\n\t\toverlayConfig.positionStrategy = this.positionBuilder.flexibleConnectedTo(this.elementRef).withPositions([\n\t\t\t{\n\t\t\t\toriginX: 'start',\n\t\t\t\toriginY: 'bottom',\n\t\t\t\toverlayX: 'start',\n\t\t\t\toverlayY: 'top',\n\t\t\t},\n\t\t\t{\n\t\t\t\toriginX: 'end',\n\t\t\t\toriginY: 'bottom',\n\t\t\t\toverlayX: 'end',\n\t\t\t\toverlayY: 'top',\n\t\t\t},\n\t\t\t{\n\t\t\t\toriginX: 'start',\n\t\t\t\toriginY: 'top',\n\t\t\t\toverlayX: 'start',\n\t\t\t\toverlayY: 'bottom',\n\t\t\t},\n\t\t\t{\n\t\t\t\toriginX: 'end',\n\t\t\t\toriginY: 'top',\n\t\t\t\toverlayX: 'end',\n\t\t\t\toverlayY: 'bottom',\n\t\t\t},\n\t\t]);\n\t\toverlayConfig.scrollStrategy = this.scrollStrategies.reposition();\n\t\toverlayConfig.minWidth = this.elementRef.nativeElement.clientWidth;\n\t\toverlayConfig.maxHeight = '100vh';\n\t\toverlayConfig.maxWidth = '100vw';\n\n\t\treturn overlayConfig;\n\t}\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { AsyncPipe, NgIf } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, forwardRef, inject } from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { getIntl } from '@lucca-front/ng/core';\nimport { ALuSelectInputComponent, LuSelectPanelRef, provideLuSelectLabelsAndIds, provideLuSelectOverlayContainer, ɵLuOptionOutletDirective } from '@lucca-front/ng/core-select';\nimport { InputDirective } from '@lucca-front/ng/form-field';\nimport { IconComponent } from '@lucca-front/ng/icon';\nimport { LU_SIMPLE_SELECT_TRANSLATIONS } from '../select.translate';\nimport { LuSimpleSelectPanelRefFactory } from './panel-ref.factory';\n\n@Component({\n\tselector: 'lu-simple-select',\n\ttemplateUrl: './select-input.component.html',\n\tstyleUrls: ['./select-input.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tstandalone: true,\n\timports: [AsyncPipe, ɵLuOptionOutletDirective, NgIf, OverlayModule, IconComponent, FormsModule, InputDirective],\n\tproviders: [\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tuseExisting: forwardRef(() => LuSimpleSelectInputComponent),\n\t\t\tmulti: true,\n\t\t},\n\t\t{\n\t\t\tprovide: ALuSelectInputComponent,\n\t\t\tuseExisting: forwardRef(() => LuSimpleSelectInputComponent),\n\t\t},\n\t\tLuSimpleSelectPanelRefFactory,\n\t\tprovideLuSelectOverlayContainer(),\n\t\tprovideLuSelectLabelsAndIds(),\n\t],\n\tencapsulation: ViewEncapsulation.None,\n\thost: {\n\t\tclass: 'simpleSelect',\n\t},\n})\nexport class LuSimpleSelectInputComponent<T> extends ALuSelectInputComponent<T, T> implements ControlValueAccessor {\n\tintl = getIntl(LU_SIMPLE_SELECT_TRANSLATIONS);\n\n\tprotected panelRefFactory = inject(LuSimpleSelectPanelRefFactory);\n\n\tprotected buildPanelRef(): LuSelectPanelRef<T, T> {\n\t\treturn this.panelRefFactory.buildPanelRef(\n\t\t\t{\n\t\t\t\tinitialValue: this.value,\n\t\t\t\toptionComparer: this.optionComparer,\n\t\t\t\toptions$: this.options$,\n\t\t\t\tloading$: this.loading$,\n\t\t\t\toptionTpl: this.optionTpl,\n\t\t\t\tgrouping: this.grouping,\n\t\t\t},\n\t\t\tthis.overlayConfig,\n\t\t);\n\t}\n\n\tprotected get hasValue(): boolean {\n\t\treturn this.value !== null && this.value !== undefined;\n\t}\n}\n","<input\n\tclass=\"simpleSelect-input\"\n\ttype=\"text\"\n\trole=\"combobox\"\n\taria-haspopup=\"listbox\"\n\t[attr.aria-activedescendant]=\"activeDescendant$ | async\"\n\t[attr.aria-expanded]=\"isPanelOpen\"\n\t[attr.aria-controls]=\"ariaControls\"\n\tplaceholder=\"{{inputPlaceholder}}\"\n\t[(ngModel)]=\"clue\"\n\t(ngModelChange)=\"clueChanged($event)\"\n\t[readonly]=\"!searchable\"\n\t[disabled]=\"disabled\"\n\tluInput\n\t#inputElement\n/>\n<div class=\"simpleSelect-value\">\n\t<ng-container *luOptionOutlet=\"valueTpl || optionTpl; value: value\"></ng-container>\n</div>\n<button\n\t*ngIf=\"clearable && hasValue\"\n\tclass=\"simpleSelect-clear clear\"\n\trole=\"button\"\n\ttype=\"button\"\n\t(click)=\"clearValue($event)\"\n\t(keydown.space)=\"clearValue($event)\"\n>\n\t<span class=\"u-mask\">{{intl.clear}}</span>\n</button>\n<span aria-hidden=\"true\" class=\"simpleSelect-arrow lucca-icon icon-arrowChevronBottom\"></span>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":";;;;;;;;;;;;;;;;MAGa,6BAA6B,GAAG,IAAI,cAAc,CAAC,4BAA4B,EAAE;AAC7F,IAAA,OAAO,EAAE,MAAM,0BAA0B;AACzC,CAAA,EAAE;AAUU,MAAA,0BAA0B,GAAyC;AAC/E,IAAA,EAAE,EAAE;AACH,QAAA,WAAW,EAAE,kBAAkB;AAC/B,QAAA,KAAK,EAAE,OAAO;AACd,QAAA,WAAW,EAAE,cAAc;AAC3B,QAAA,YAAY,EAAE,YAAY;AAC1B,QAAA,OAAO,EAAE,YAAY;AACrB,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,WAAW,EAAE,yBAAyB;AACtC,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,WAAW,EAAE,oBAAoB;AACjC,QAAA,YAAY,EAAE,qCAAqC;AACnD,QAAA,OAAO,EAAE,wBAAwB;AACjC,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,WAAW,EAAE,wBAAwB;AACrC,QAAA,KAAK,EAAE,SAAS;AAChB,QAAA,WAAW,EAAE,eAAe;AAC5B,QAAA,YAAY,EAAE,iCAAiC;AAC/C,QAAA,OAAO,EAAE,iBAAiB;AAC1B,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,WAAW,EAAE,uBAAuB;AACpC,QAAA,KAAK,EAAE,QAAQ;AACf,QAAA,WAAW,EAAE,iBAAiB;AAC9B,QAAA,YAAY,EAAE,oCAAoC;AAClD,QAAA,OAAO,EAAE,aAAa;AACtB,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,WAAW,EAAE,qBAAqB;AAClC,QAAA,KAAK,EAAE,QAAQ;AACf,QAAA,WAAW,EAAE,iBAAiB;AAC9B,QAAA,YAAY,EAAE,oCAAoC;AAClD,QAAA,OAAO,EAAE,eAAe;AACxB,KAAA;;;ACrCK,MAAM,wBAAwB,GAAG,IAAI,cAAc,CAAoC,uBAAuB,CAAC;;MCMzG,sBAAsB,CAAA;AARnC,IAAA,WAAA,GAAA;AASW,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAA8B,wBAAwB,CAAC,CAAC;AAC7E,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAyB,gBAAgB,CAAC,CAAC;AAC5D,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;AAC7B,QAAA,IAAA,CAAA,IAAI,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAAC;AAErD,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;AACnC,QAAA,IAAA,CAAA,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,KAAK,eAAe,CAAC,OAAO,EAAE,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;AACvJ,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;AACnC,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC;AAC/C,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ,CAAC;AACnC,QAAA,IAAA,CAAA,YAAY,GAAkB,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC;AAC1D,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;AAoErC,KAAA;AA/DA,IAAA,IAAW,UAAU,GAAA;QACpB,OAAO,IAAI,CAAC,WAAW,CAAC;KACxB;AAED,IAAA,IAAW,QAAQ,GAAA;QAClB,OAAO,IAAI,CAAC,YAAY,CAAC;KACzB;AAED,IAAA,QAAQ,CAAC,GAAU,EAAA;QAClB,IAAI,EAAE,GAAG,CAAC,MAAM,YAAY,WAAW,CAAC,EAAE;YACzC,OAAO;AACP,SAAA;AAED,QAAA,IAAI,GAAG,CAAC,MAAM,CAAC,SAAS,KAAK,CAAC,EAAE;AAC/B,YAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;AAClC,SAAA;AAED,QAAA,IAAI,GAAG,CAAC,MAAM,CAAC,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,SAAS,GAAG,GAAG,CAAC,MAAM,CAAC,YAAY,GAAG,CAAC,EAAE;AACjF,YAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AAC9B,SAAA;KACD;IAED,eAAe,GAAA;AACd,QAAA,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;YACpB,OAAO;AACP,SAAA;AAED,QAAA,IAAI,CAAC,WAAW,GAAG,IAAI,0BAA0B,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE,CAAC;QAEnF,IAAI,CAAC,UAAU,CAAC,MAAM;aACpB,IAAI,CACJ,GAAG,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE,EAAE,CAAC,EACzC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAC/B;AACA,aAAA,SAAS,CAAC,CAAC,gBAAgB,KAAK,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAE9F,IAAI,IAAI,CAAC,YAAY,EAAE;AACtB,YAAA,IAAI,CAAC,QAAQ;AACZ,kBAAE,IAAI,CACL,SAAS,CAAC,cAAc,CAAC,EACzB,GAAG,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC,CAAC,EACrF,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,EAC/B,IAAI,CAAC,CAAC,CAAC,EACP,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAC/B;AACA,iBAAA,SAAS,CAAC,CAAC,aAAa,KAAK,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC;AAC7E,SAAA;AAAM,aAAA;;YAEN,UAAU,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;AACvD,SAAA;AAED;;AAEG;AACH,QAAA,IAAI,CAAC,QAAQ;AACZ,cAAE,IAAI,CACL,SAAS,CAAC,cAAc,CAAC;;AAEzB,QAAA,IAAI,CAAC,CAAC,CAAC,EACP,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAC/B;aACA,SAAS,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,kBAAkB,EAAE,CAAC,CAAC;KACxD;8GA/EW,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAAtB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,yGAcpB,kBAAkB,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECjCjC,0wEAmDA,EAAA,MAAA,EAAA,CAAA,ojCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EDlCW,UAAU,EAAE,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,EAAA,yBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,SAAS,EAAE,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,WAAW,+BAAE,IAAI,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,KAAK,EAAE,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,gBAAgB,oJAAE,kBAAkB,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,YAAA,EAAA,QAAA,EAAA,aAAA,EAAA,uBAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA,EAAA;;2FAEnF,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBARlC,SAAS;+BACC,iBAAiB,EAAA,eAAA,EAGV,uBAAuB,CAAC,MAAM,cACnC,IAAI,EAAA,OAAA,EACP,CAAC,UAAU,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,gBAAgB,EAAE,kBAAkB,CAAC,EAAA,QAAA,EAAA,0wEAAA,EAAA,MAAA,EAAA,CAAA,ojCAAA,CAAA,EAAA,CAAA;8BAgB9D,SAAS,EAAA,CAAA;sBAA1C,YAAY;uBAAC,kBAAkB,CAAA;;;AEzBjC,MAAM,cAAkB,SAAQ,gBAAsB,CAAA;AAKrD,IAAA,WAAA,CAAoB,UAAsB,EAAE,cAAwB,EAAE,SAAsC,EAAA;AAC3G,QAAA,KAAK,EAAE,CAAC;QADW,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;AAGzC,QAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC;AAChC,YAAA,SAAS,EAAE;AACV,gBAAA,EAAE,OAAO,EAAE,gBAAgB,EAAE,QAAQ,EAAE,IAAI,EAAE;AAC7C,gBAAA,EAAE,OAAO,EAAE,wBAAwB,EAAE,QAAQ,EAAE,SAAS,EAAE;AAC1D,aAAA;AACD,YAAA,MAAM,EAAE,cAAc;AACtB,SAAA,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI,eAAe,CAA4B,sBAAsB,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QAC7G,IAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;QAEvC,UAAU;AACR,aAAA,aAAa,EAAE;AACf,aAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;aAC5B,SAAS,CAAC,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;KAChC;AAED,IAAA,SAAS,CAAC,KAAQ,EAAA;AACjB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC9B,IAAI,CAAC,KAAK,EAAE,CAAC;KACb;AAEQ,IAAA,qBAAqB,CAAC,KAAoB,EAAA;QAClD,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;KAC1C;IAEQ,KAAK,GAAA;QACb,KAAK,CAAC,KAAK,EAAE,CAAC;AACd,QAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;AACxB,QAAA,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC;KACzB;IAED,+BAA+B,GAAA;AAC9B,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;QAC5D,IAAI,CAAC,KAAK,EAAE,CAAC;KACb;AACD,CAAA;MAGY,6BAA6B,CAAA;AAD1C,IAAA,WAAA,GAAA;AAEW,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC;AAC1B,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAA0B,UAAU,CAAC,CAAC;AACzD,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,sBAAsB,CAAC,CAAC;AACjD,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,qBAAqB,CAAC,CAAC;AACjD,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;AA4C5C,KAAA;AA1CA,IAAA,aAAa,CAAI,SAAsC,EAAE,qBAAA,GAAuC,EAAE,EAAA;QACjG,MAAM,aAAa,GAAG,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,CAAC;QACrE,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;QAEtD,OAAO,IAAI,cAAc,CAAC,UAAU,EAAE,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,CAAC;KACtE;IAES,kBAAkB,CAAC,wBAAuC,EAAE,EAAA;AACrE,QAAA,MAAM,aAAa,GAAkB,qBAAqB,IAAI,EAAE,CAAC;AACjE,QAAA,aAAa,CAAC,gBAAgB,GAAG,IAAI,CAAC,eAAe,CAAC,mBAAmB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,aAAa,CAAC;AACxG,YAAA;AACC,gBAAA,OAAO,EAAE,OAAO;AAChB,gBAAA,OAAO,EAAE,QAAQ;AACjB,gBAAA,QAAQ,EAAE,OAAO;AACjB,gBAAA,QAAQ,EAAE,KAAK;AACf,aAAA;AACD,YAAA;AACC,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,OAAO,EAAE,QAAQ;AACjB,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,QAAQ,EAAE,KAAK;AACf,aAAA;AACD,YAAA;AACC,gBAAA,OAAO,EAAE,OAAO;AAChB,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,QAAQ,EAAE,OAAO;AACjB,gBAAA,QAAQ,EAAE,QAAQ;AAClB,aAAA;AACD,YAAA;AACC,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,OAAO,EAAE,KAAK;AACd,gBAAA,QAAQ,EAAE,KAAK;AACf,gBAAA,QAAQ,EAAE,QAAQ;AAClB,aAAA;AACD,SAAA,CAAC,CAAC;QACH,aAAa,CAAC,cAAc,GAAG,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,CAAC;QAClE,aAAa,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,WAAW,CAAC;AACnE,QAAA,aAAa,CAAC,SAAS,GAAG,OAAO,CAAC;AAClC,QAAA,aAAa,CAAC,QAAQ,GAAG,OAAO,CAAC;AAEjC,QAAA,OAAO,aAAa,CAAC;KACrB;8GAhDW,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA,EAAA;kHAA7B,6BAA6B,EAAA,CAAA,CAAA,EAAA;;2FAA7B,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBADzC,UAAU;;;AClBL,MAAO,4BAAgC,SAAQ,uBAA6B,CAAA;AA1BlF,IAAA,WAAA,GAAA;;AA2BC,QAAA,IAAA,CAAA,IAAI,GAAG,OAAO,CAAC,6BAA6B,CAAC,CAAC;AAEpC,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAC,6BAA6B,CAAC,CAAC;AAmBlE,KAAA;IAjBU,aAAa,GAAA;AACtB,QAAA,OAAO,IAAI,CAAC,eAAe,CAAC,aAAa,CACxC;YACC,YAAY,EAAE,IAAI,CAAC,KAAK;YACxB,cAAc,EAAE,IAAI,CAAC,cAAc;YACnC,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,QAAQ,EAAE,IAAI,CAAC,QAAQ;YACvB,SAAS,EAAE,IAAI,CAAC,SAAS;YACzB,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACvB,SAAA,EACD,IAAI,CAAC,aAAa,CAClB,CAAC;KACF;AAED,IAAA,IAAc,QAAQ,GAAA;QACrB,OAAO,IAAI,CAAC,KAAK,KAAK,IAAI,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,CAAC;KACvD;8GArBW,4BAA4B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA5B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,4BAA4B,EAnB7B,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,cAAA,EAAA,EAAA,SAAA,EAAA;AACV,YAAA;AACC,gBAAA,OAAO,EAAE,iBAAiB;AAC1B,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,4BAA4B,CAAC;AAC3D,gBAAA,KAAK,EAAE,IAAI;AACX,aAAA;AACD,YAAA;AACC,gBAAA,OAAO,EAAE,uBAAuB;AAChC,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,4BAA4B,CAAC;AAC3D,aAAA;YACD,6BAA6B;AAC7B,YAAA,+BAA+B,EAAE;AACjC,YAAA,2BAA2B,EAAE;AAC7B,SAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EC/BF,26BA8BA,EAAA,MAAA,EAAA,CAAA,y0IAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EDbW,SAAS,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,wBAAwB,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,qBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,IAAI,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAE,aAAa,EAAA,EAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAiB,WAAW,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,8MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAE,cAAc,EAAA,QAAA,EAAA,WAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,aAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,IAAA,EAAA,CAAA,CAAA,EAAA;;2FAoBlG,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBA1BxC,SAAS;+BACC,kBAAkB,EAAA,eAAA,EAGX,uBAAuB,CAAC,MAAM,cACnC,IAAI,EAAA,OAAA,EACP,CAAC,SAAS,EAAE,wBAAwB,EAAE,IAAI,EAAE,aAAa,EAAE,aAAa,EAAE,WAAW,EAAE,cAAc,CAAC,EACpG,SAAA,EAAA;AACV,wBAAA;AACC,4BAAA,OAAO,EAAE,iBAAiB;AAC1B,4BAAA,WAAW,EAAE,UAAU,CAAC,kCAAkC,CAAC;AAC3D,4BAAA,KAAK,EAAE,IAAI;AACX,yBAAA;AACD,wBAAA;AACC,4BAAA,OAAO,EAAE,uBAAuB;AAChC,4BAAA,WAAW,EAAE,UAAU,CAAC,kCAAkC,CAAC;AAC3D,yBAAA;wBACD,6BAA6B;AAC7B,wBAAA,+BAA+B,EAAE;AACjC,wBAAA,2BAA2B,EAAE;qBAC7B,EACc,aAAA,EAAA,iBAAiB,CAAC,IAAI,EAC/B,IAAA,EAAA;AACL,wBAAA,KAAK,EAAE,cAAc;AACrB,qBAAA,EAAA,QAAA,EAAA,26BAAA,EAAA,MAAA,EAAA,CAAA,y0IAAA,CAAA,EAAA,CAAA;;;AEnCF;;AAEG;;;;"}
1
+ {"version":3,"file":"lucca-front-ng-simple-select.mjs","sources":["../../../packages/ng/simple-select/select.translate.ts","../../../packages/ng/simple-select/select.model.ts","../../../packages/ng/simple-select/panel/option-selected.pipe.ts","../../../packages/ng/simple-select/panel/panel.component.ts","../../../packages/ng/simple-select/panel/panel.component.html","../../../packages/ng/simple-select/input/panel-ref.factory.ts","../../../packages/ng/simple-select/input/select-input.component.ts","../../../packages/ng/simple-select/input/select-input.component.html","../../../packages/ng/simple-select/lucca-front-ng-simple-select.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { ILuTranslation } from '@lucca-front/ng/core';\n\nexport const LU_SIMPLE_SELECT_TRANSLATIONS = new InjectionToken('LuSimpleSelectTranslations', {\n\tfactory: () => luSimpleSelectTranslations,\n});\n\nexport interface ILuSimpleSelectLabel {\n\tplaceholder: string;\n\tclear: string;\n\tclearSearch: string;\n\temptyResults: string;\n\tloading: string;\n}\n\nexport const luSimpleSelectTranslations: ILuTranslation<ILuSimpleSelectLabel> = {\n\ten: {\n\t\tplaceholder: 'Select an option',\n\t\tclear: 'Clear',\n\t\tclearSearch: 'Clear search',\n\t\temptyResults: 'No results',\n\t\tloading: 'Loading...',\n\t},\n\tfr: {\n\t\tplaceholder: 'Sélectionnez une option',\n\t\tclear: 'Effacer',\n\t\tclearSearch: 'Vider la recherche',\n\t\temptyResults: 'Aucun résultat pour votre recherche',\n\t\tloading: 'Chargement en cours...',\n\t},\n\tde: {\n\t\tplaceholder: 'Wählen Sie eine Option',\n\t\tclear: 'Löschen',\n\t\tclearSearch: 'Suche löschen',\n\t\temptyResults: 'Keine Ergebnisse für Ihre Suche',\n\t\tloading: 'Wird geladen...',\n\t},\n\tes: {\n\t\tplaceholder: 'Seleccione una opción',\n\t\tclear: 'Borrar',\n\t\tclearSearch: 'Borrar búsqueda',\n\t\temptyResults: 'No hay resultados para su búsqueda',\n\t\tloading: 'Cargando...',\n\t},\n\tpt: {\n\t\tplaceholder: 'Selecione uma opção',\n\t\tclear: 'Limpar',\n\t\tclearSearch: 'Limpar pesquisa',\n\t\temptyResults: 'Nenhum resultado para sua pesquisa',\n\t\tloading: 'Carregando...',\n\t},\n};\n","import { InjectionToken } from '@angular/core';\nimport type { LuSimpleSelectInputComponent } from './input';\n\nexport const SIMPLE_SELECT_INPUT = new InjectionToken<LuSimpleSelectInputComponent<unknown>>('SimpleSelectInput');\n","import { Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n\tname: 'luIsOptionSelected',\n\tstandalone: true,\n})\nexport class LuIsOptionSelectedPipe implements PipeTransform {\n\ttransform<T>(option: T, comparer: (option1: T, option2: T) => boolean, selectedOption: T): boolean {\n\t\treturn !!selectedOption && comparer(option, selectedOption);\n\t}\n}\n","import { A11yModule, ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport { AsyncPipe, NgFor, NgIf, NgTemplateOutlet } from '@angular/common';\nimport { AfterViewInit, ChangeDetectionStrategy, Component, QueryList, ViewChildren, inject } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { getIntl } from '@lucca-front/ng/core';\nimport { LuSelectPanelRef, SELECT_ID, ɵLuOptionComponent, ɵgenerateGroups } from '@lucca-front/ng/core-select';\nimport { EMPTY, asyncScheduler, filter, map, observeOn, take, takeUntil } from 'rxjs';\nimport { debounceTime, switchMap } from 'rxjs/operators';\nimport { LuSimpleSelectInputComponent } from '../input/select-input.component';\nimport { SIMPLE_SELECT_INPUT } from '../select.model';\nimport { LU_SIMPLE_SELECT_TRANSLATIONS } from '../select.translate';\nimport { LuIsOptionSelectedPipe } from './option-selected.pipe';\n\n@Component({\n\tselector: 'lu-select-panel',\n\ttemplateUrl: './panel.component.html',\n\tstyleUrls: ['./panel.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tstandalone: true,\n\timports: [A11yModule, AsyncPipe, FormsModule, NgIf, NgFor, NgTemplateOutlet, ɵLuOptionComponent, LuIsOptionSelectedPipe],\n})\nexport class LuSelectPanelComponent<T> implements AfterViewInit {\n\tpublic selectInput = inject<LuSimpleSelectInputComponent<T>>(SIMPLE_SELECT_INPUT);\n\tpublic panelRef = inject<LuSelectPanelRef<T, T>>(LuSelectPanelRef);\n\tpublic selectId = inject(SELECT_ID);\n\tpublic intl = getIntl(LU_SIMPLE_SELECT_TRANSLATIONS);\n\n\toptions$ = this.selectInput.options$;\n\tgrouping = this.selectInput.grouping;\n\tgroups$ = this.grouping ? this.options$.pipe(map((options) => ɵgenerateGroups(options, this.grouping.selector))) : EMPTY;\n\tloading$ = this.selectInput.loading$;\n\toptionComparer = this.selectInput.optionComparer;\n\tinitialValue: T | undefined = this.selectInput.value;\n\toptionTpl = this.selectInput.optionTpl;\n\n\t@ViewChildren(ɵLuOptionComponent) optionsQL: QueryList<ɵLuOptionComponent<T>>;\n\tprivate _keyManager: ActiveDescendantKeyManager<ɵLuOptionComponent<T>>;\n\n\tpublic get keyManager(): ActiveDescendantKeyManager<ɵLuOptionComponent<T>> {\n\t\treturn this._keyManager;\n\t}\n\n\tpublic get selected(): T | undefined {\n\t\treturn this.initialValue;\n\t}\n\n\tonScroll(evt: Event): void {\n\t\tif (!(evt.target instanceof HTMLElement)) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (evt.target.scrollTop === 0) {\n\t\t\tthis.panelRef.previousPage.emit();\n\t\t}\n\n\t\tif (evt.target.scrollHeight - evt.target.scrollTop - evt.target.clientHeight < 1) {\n\t\t\tthis.panelRef.nextPage.emit();\n\t\t}\n\t}\n\n\tngAfterViewInit(): void {\n\t\tif (!this.optionsQL) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis._keyManager = new ActiveDescendantKeyManager(this.optionsQL).withHomeAndEnd();\n\n\t\tthis.keyManager.change\n\t\t\t.pipe(\n\t\t\t\tmap(() => this.keyManager.activeItem?.id),\n\t\t\t\ttakeUntil(this.panelRef.closed),\n\t\t\t)\n\t\t\t.subscribe((activeDescendant) => this.panelRef.activeOptionIdChanged.emit(activeDescendant));\n\n\t\tif (this.initialValue && !this.selectInput.clue) {\n\t\t\tthis.options$\n\t\t\t\t?.pipe(\n\t\t\t\t\tobserveOn(asyncScheduler),\n\t\t\t\t\tmap((options) => options.findIndex((o) => this.optionComparer(o, this.initialValue))),\n\t\t\t\t\tfilter((index) => index !== -1),\n\t\t\t\t\ttake(1),\n\t\t\t\t\ttakeUntil(this.panelRef.closed),\n\t\t\t\t)\n\t\t\t\t.subscribe((selectedIndex) => this.keyManager.setActiveItem(selectedIndex));\n\t\t} else {\n\t\t\t// If no initial Value, set first as active\n\t\t\tsetTimeout(() => this.keyManager.setFirstItemActive());\n\t\t}\n\n\t\t/**\n\t\t * On new options after a search, we want to select the first element with key manager\n\t\t */\n\t\tif (this.selectInput.searchable) {\n\t\t\tthis.selectInput.clueChange\n\t\t\t\t.pipe(\n\t\t\t\t\tswitchMap(() => this.optionsQL.changes.pipe(take(1))),\n\t\t\t\t\tdebounceTime(0),\n\t\t\t\t\ttakeUntil(this.panelRef.closed),\n\t\t\t\t)\n\t\t\t\t.subscribe(() => this.keyManager.setFirstItemActive());\n\t\t}\n\t}\n}\n","<div\n\tclass=\"lu-picker-panel lu-option-picker-panel\"\n\tcdkTrapFocus\n\t*ngIf=\"{ options: (options$ | async) || [] } as ctx\"\n\t[cdkTrapFocusAutoCapture]=\"true\"\n>\n\t<div class=\"lu-picker-content\" [class.is-loading]=\"loading$ | async\" (scroll)=\"onScroll($event)\">\n\t\t<div class=\"lu-picker-content-option\" role=\"listbox\">\n\t\t\t<ng-container *ngIf=\"grouping\">\n\t\t\t\t<div\n\t\t\t\t\t*ngFor=\"let group of groups$ | async\"\n\t\t\t\t\tclass=\"lu-picker-content-option-group\"\n\t\t\t\t\trole=\"group\"\n\t\t\t\t\t[attr.aria-labelledby]=\"selectId + '-group-' + group.key\"\n\t\t\t\t>\n\t\t\t\t\t<span class=\"lu-picker-content-option-group-title\" role=\"presentation\" [id]=\"selectId + '-group-' + group.key\">\n\t\t\t\t\t\t<ng-template [ngTemplateOutlet]=\"grouping.templateRef\" [ngTemplateOutletContext]=\"{ $implicit: group }\"></ng-template>\n\t\t\t\t\t</span>\n\t\t\t\t\t<ng-template [ngTemplateOutlet]=\"optionsList\" [ngTemplateOutletContext]=\"{ $implicit: group.options }\"></ng-template>\n\t\t\t\t</div>\n\t\t\t</ng-container>\n\t\t\t<ng-container *ngIf=\"!grouping\">\n\t\t\t\t<ng-template [ngTemplateOutlet]=\"optionsList\" [ngTemplateOutletContext]=\"{ $implicit: ctx.options }\"></ng-template>\n\t\t\t</ng-container>\n\n\t\t\t<ng-template #optionsList let-options>\n\t\t\t\t<lu-select-option\n\t\t\t\t\t*ngFor=\"let option of options; let index = index\"\n\t\t\t\t\t[option]=\"option\"\n\t\t\t\t\t[optionTpl]=\"optionTpl\"\n\t\t\t\t\t[optionIndex]=\"index\"\n\t\t\t\t\t[scrollIntoViewOptions]=\"{ block: 'center' }\"\n\t\t\t\t\t[isSelected]=\"option | luIsOptionSelected:optionComparer:selected\"\n\t\t\t\t\t(click)=\"panelRef.emitValue(option)\"\n\t\t\t\t></lu-select-option>\n\t\t\t</ng-template>\n\t\t\t<div class=\"lu-picker-content-option-emptyState\" *ngIf=\"ctx.options.length === 0 && (loading$ | async) === false\">\n\t\t\t\t{{intl.emptyResults}}\n\t\t\t</div>\n\t\t</div>\n\t\t<div *ngIf=\"loading$ | async\" class=\"lu-picker-content-loading\">\n\t\t\t<div class=\"loading\"></div>\n\t\t\t<span>{{intl.loading}}</span>\n\t\t</div>\n\t</div>\n\t<!--<div class=\"lu-picker-content-add\">\n\t\t<button class=\"button mod-text mod-icon palette-primary\" type=\"button\">\n\t\t\t<span aria-hidden=\"true\" class=\"lucca-icon icon-mathsPlus\"></span>Add a new supplier\n\t\t</button>\n\t</div>-->\n</div>\n","import { Overlay, OverlayConfig, OverlayPositionBuilder, OverlayRef, ScrollStrategyOptions } from '@angular/cdk/overlay';\nimport { ComponentPortal } from '@angular/cdk/portal';\nimport { ComponentRef, ElementRef, Injectable, Injector, inject } from '@angular/core';\nimport { LuSelectPanelRef } from '@lucca-front/ng/core-select';\nimport { takeUntil } from 'rxjs';\nimport { LuSelectPanelComponent } from '../panel';\nimport { SIMPLE_SELECT_INPUT } from '../select.model';\nimport { LuSimpleSelectInputComponent } from './select-input.component';\n\nclass SelectPanelRef<T> extends LuSelectPanelRef<T, T> {\n\tinstance: LuSelectPanelComponent<T>;\n\tprivate panelRef: ComponentRef<LuSelectPanelComponent<T>>;\n\tprivate portalRef: ComponentPortal<LuSelectPanelComponent<T>>;\n\n\tconstructor(private overlayRef: OverlayRef, parentInjector: Injector, selectInput: LuSimpleSelectInputComponent<T>) {\n\t\tsuper();\n\n\t\tconst injector = Injector.create({\n\t\t\tproviders: [\n\t\t\t\t{ provide: LuSelectPanelRef, useValue: this },\n\t\t\t\t{ provide: SIMPLE_SELECT_INPUT, useValue: selectInput },\n\t\t\t],\n\t\t\tparent: parentInjector,\n\t\t});\n\n\t\tthis.portalRef = new ComponentPortal<LuSelectPanelComponent<T>>(LuSelectPanelComponent, undefined, injector);\n\t\tthis.panelRef = overlayRef.attach(this.portalRef);\n\t\tthis.instance = this.panelRef.instance;\n\n\t\toverlayRef\n\t\t\t.backdropClick()\n\t\t\t.pipe(takeUntil(this.closed))\n\t\t\t.subscribe(() => this.close());\n\t}\n\n\temitValue(value: T): void {\n\t\tthis.valueChanged.emit(value);\n\t\tthis.close();\n\t}\n\n\toverride handleKeyManagerEvent(event: KeyboardEvent) {\n\t\tthis.instance.keyManager.onKeydown(event);\n\t}\n\n\toverride close(): void {\n\t\tsuper.close();\n\t\tthis.panelRef.destroy();\n\t\tthis.overlayRef.detach();\n\t}\n\n\tselectCurrentlyHighlightedValue(): void {\n\t\tthis.emitValue(this.instance.keyManager.activeItem?.option);\n\t\tthis.close();\n\t}\n}\n\n@Injectable()\nexport class LuSimpleSelectPanelRefFactory {\n\tprotected overlay = inject(Overlay);\n\tprotected elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\tprotected positionBuilder = inject(OverlayPositionBuilder);\n\tprotected scrollStrategies = inject(ScrollStrategyOptions);\n\tprotected parentInjector = inject(Injector);\n\n\tbuildPanelRef<T>(selectInput: LuSimpleSelectInputComponent<T>, overlayConfigOverride: OverlayConfig = {}): LuSelectPanelRef<T, T> {\n\t\tconst overlayConfig = this.buildOverlayConfig(overlayConfigOverride);\n\t\tconst overlayRef = this.overlay.create(overlayConfig);\n\n\t\treturn new SelectPanelRef(overlayRef, this.parentInjector, selectInput);\n\t}\n\n\tprotected buildOverlayConfig(overlayConfigOverride: OverlayConfig = {}): OverlayConfig {\n\t\tconst overlayConfig: OverlayConfig = overlayConfigOverride || {};\n\t\toverlayConfig.positionStrategy = this.positionBuilder.flexibleConnectedTo(this.elementRef).withPositions([\n\t\t\t{\n\t\t\t\toriginX: 'start',\n\t\t\t\toriginY: 'bottom',\n\t\t\t\toverlayX: 'start',\n\t\t\t\toverlayY: 'top',\n\t\t\t},\n\t\t\t{\n\t\t\t\toriginX: 'end',\n\t\t\t\toriginY: 'bottom',\n\t\t\t\toverlayX: 'end',\n\t\t\t\toverlayY: 'top',\n\t\t\t},\n\t\t\t{\n\t\t\t\toriginX: 'start',\n\t\t\t\toriginY: 'top',\n\t\t\t\toverlayX: 'start',\n\t\t\t\toverlayY: 'bottom',\n\t\t\t},\n\t\t\t{\n\t\t\t\toriginX: 'end',\n\t\t\t\toriginY: 'top',\n\t\t\t\toverlayX: 'end',\n\t\t\t\toverlayY: 'bottom',\n\t\t\t},\n\t\t]);\n\t\toverlayConfig.scrollStrategy = this.scrollStrategies.reposition();\n\t\toverlayConfig.minWidth = this.elementRef.nativeElement.clientWidth;\n\t\toverlayConfig.maxHeight = '100vh';\n\t\toverlayConfig.maxWidth = '100vw';\n\n\t\treturn overlayConfig;\n\t}\n}\n","import { OverlayModule } from '@angular/cdk/overlay';\nimport { AsyncPipe, NgIf } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, ViewEncapsulation, forwardRef, inject } from '@angular/core';\nimport { ControlValueAccessor, FormsModule, NG_VALUE_ACCESSOR } from '@angular/forms';\nimport { getIntl } from '@lucca-front/ng/core';\nimport { ALuSelectInputComponent, LuSelectPanelRef, provideLuSelectLabelsAndIds, provideLuSelectOverlayContainer, ɵLuOptionOutletDirective } from '@lucca-front/ng/core-select';\nimport { InputDirective } from '@lucca-front/ng/form-field';\nimport { IconComponent } from '@lucca-front/ng/icon';\nimport { LU_SIMPLE_SELECT_TRANSLATIONS } from '../select.translate';\nimport { LuSimpleSelectPanelRefFactory } from './panel-ref.factory';\n\n@Component({\n\tselector: 'lu-simple-select',\n\ttemplateUrl: './select-input.component.html',\n\tstyleUrls: ['./select-input.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tstandalone: true,\n\timports: [AsyncPipe, ɵLuOptionOutletDirective, NgIf, OverlayModule, IconComponent, FormsModule, InputDirective],\n\tproviders: [\n\t\t{\n\t\t\tprovide: NG_VALUE_ACCESSOR,\n\t\t\tuseExisting: forwardRef(() => LuSimpleSelectInputComponent),\n\t\t\tmulti: true,\n\t\t},\n\t\t{\n\t\t\tprovide: ALuSelectInputComponent,\n\t\t\tuseExisting: forwardRef(() => LuSimpleSelectInputComponent),\n\t\t},\n\t\tLuSimpleSelectPanelRefFactory,\n\t\tprovideLuSelectOverlayContainer(),\n\t\tprovideLuSelectLabelsAndIds(),\n\t],\n\tencapsulation: ViewEncapsulation.None,\n\thost: {\n\t\tclass: 'simpleSelect',\n\t},\n})\nexport class LuSimpleSelectInputComponent<T> extends ALuSelectInputComponent<T, T> implements ControlValueAccessor {\n\tintl = getIntl(LU_SIMPLE_SELECT_TRANSLATIONS);\n\n\tprotected panelRefFactory = inject(LuSimpleSelectPanelRefFactory);\n\n\tprotected buildPanelRef(): LuSelectPanelRef<T, T> {\n\t\treturn this.panelRefFactory.buildPanelRef(this, this.overlayConfig);\n\t}\n\n\tprotected get hasValue(): boolean {\n\t\treturn this.value !== null && this.value !== undefined;\n\t}\n}\n","<input\n\tclass=\"simpleSelect-input\"\n\ttype=\"text\"\n\trole=\"combobox\"\n\taria-haspopup=\"listbox\"\n\t[attr.aria-activedescendant]=\"activeDescendant$ | async\"\n\t[attr.aria-expanded]=\"isPanelOpen\"\n\t[attr.aria-controls]=\"ariaControls\"\n\tplaceholder=\"{{inputPlaceholder}}\"\n\t[(ngModel)]=\"clue\"\n\t(ngModelChange)=\"clueChanged($event)\"\n\t[readonly]=\"!searchable\"\n\t[disabled]=\"disabled\"\n\tluInput\n\t#inputElement\n/>\n<div class=\"simpleSelect-value\">\n\t<ng-container *luOptionOutlet=\"valueTpl || optionTpl; value: value\"></ng-container>\n</div>\n<button\n\t*ngIf=\"clearable && hasValue\"\n\tclass=\"simpleSelect-clear clear\"\n\trole=\"button\"\n\ttype=\"button\"\n\t(click)=\"clearValue($event)\"\n\t(keydown.space)=\"clearValue($event)\"\n>\n\t<span class=\"u-mask\">{{intl.clear}}</span>\n</button>\n<span aria-hidden=\"true\" class=\"simpleSelect-arrow lucca-icon icon-arrowChevronBottom\"></span>\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1"],"mappings":"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"}
@@ -6,7 +6,6 @@ import { InlineMessageState } from '@lucca-front/ng/inline-message';
6
6
  import { SafeHtml } from '@angular/platform-browser';
7
7
  import { NgControl, Validator } from '@angular/forms';
8
8
  import * as i0 from "@angular/core";
9
- import * as i1 from "@lucca-front/ng/core";
10
9
  export declare class FormFieldComponent implements OnChanges, OnDestroy, DoCheck {
11
10
  #private;
12
11
  set validators(validators: QueryList<Validator | undefined>);
@@ -38,6 +37,6 @@ export declare class FormFieldComponent implements OnChanges, OnDestroy, DoCheck
38
37
  ngOnDestroy(): void;
39
38
  ngDoCheck(): void;
40
39
  static ɵfac: i0.ɵɵFactoryDeclaration<FormFieldComponent, never>;
41
- static ɵcmp: i0.ɵɵComponentDeclaration<FormFieldComponent, "lu-form-field", never, { "label": { "alias": "label"; "required": true; }; "hiddenLabel": { "alias": "hiddenLabel"; "required": false; }; "tooltip": { "alias": "tooltip"; "required": false; }; "inlineMessage": { "alias": "inlineMessage"; "required": false; }; "inlineMessageState": { "alias": "inlineMessageState"; "required": false; }; "size": { "alias": "size"; "required": false; }; "layout": { "alias": "layout"; "required": false; }; }, {}, ["control", "validators"], ["*"], true, [{ directive: typeof i1.NgClazz; inputs: {}; outputs: {}; }]>;
40
+ static ɵcmp: i0.ɵɵComponentDeclaration<FormFieldComponent, "lu-form-field", never, { "label": { "alias": "label"; "required": true; }; "hiddenLabel": { "alias": "hiddenLabel"; "required": false; }; "tooltip": { "alias": "tooltip"; "required": false; }; "inlineMessage": { "alias": "inlineMessage"; "required": false; }; "inlineMessageState": { "alias": "inlineMessageState"; "required": false; }; "size": { "alias": "size"; "required": false; }; "layout": { "alias": "layout"; "required": false; }; }, {}, ["control", "validators"], ["*"], true, never>;
42
41
  static ngAcceptInputType_hiddenLabel: unknown;
43
42
  }
@@ -1,7 +1,6 @@
1
1
  import { OnChanges } from '@angular/core';
2
2
  import { InlineMessageState } from './inline-message-state';
3
3
  import * as i0 from "@angular/core";
4
- import * as i1 from "@lucca-front/ng/core";
5
4
  export declare class InlineMessageComponent implements OnChanges {
6
5
  #private;
7
6
  label: string;
@@ -9,5 +8,5 @@ export declare class InlineMessageComponent implements OnChanges {
9
8
  size: 'S' | 'M';
10
9
  ngOnChanges(): void;
11
10
  static ɵfac: i0.ɵɵFactoryDeclaration<InlineMessageComponent, never>;
12
- static ɵcmp: i0.ɵɵComponentDeclaration<InlineMessageComponent, "lu-inline-message", never, { "label": { "alias": "label"; "required": true; }; "state": { "alias": "state"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, {}, never, never, true, [{ directive: typeof i1.NgClazz; inputs: {}; outputs: {}; }]>;
11
+ static ɵcmp: i0.ɵɵComponentDeclaration<InlineMessageComponent, "lu-inline-message", never, { "label": { "alias": "label"; "required": true; }; "state": { "alias": "state"; "required": false; }; "size": { "alias": "size"; "required": false; }; }, {}, never, never, true, never>;
13
12
  }
@@ -1,7 +1,7 @@
1
1
  import { ConnectedPosition, Overlay, OverlayConfig, OverlayPositionBuilder, ScrollStrategyOptions } from '@angular/cdk/overlay';
2
2
  import { ElementRef, Injector } from '@angular/core';
3
- import { ILuMultiSelectPanelData } from '../select.model';
4
3
  import { LuMultiSelectPanelRef } from './panel.model';
4
+ import { LuMultiSelectInputComponent } from './select-input.component';
5
5
  import * as i0 from "@angular/core";
6
6
  export declare class LuMultiSelectPanelRefFactory {
7
7
  protected overlay: Overlay;
@@ -9,7 +9,7 @@ export declare class LuMultiSelectPanelRefFactory {
9
9
  protected positionBuilder: OverlayPositionBuilder;
10
10
  protected scrollStrategies: ScrollStrategyOptions;
11
11
  protected parentInjector: Injector;
12
- buildPanelRef<T>(panelData: ILuMultiSelectPanelData<T>, defaultOverlayConfigOverride?: OverlayConfig): LuMultiSelectPanelRef<T>;
12
+ buildPanelRef<T>(selectInput: LuMultiSelectInputComponent<T>, defaultOverlayConfigOverride?: OverlayConfig): LuMultiSelectPanelRef<T>;
13
13
  protected buildDefaultOverlayConfig(overlayConfigOverride?: OverlayConfig): OverlayConfig;
14
14
  protected buildPosition(yDirection: 'top' | 'bottom', xDirection: 'left' | 'right', config: {
15
15
  offsetX?: number;
@@ -1,18 +1,18 @@
1
1
  import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';
2
2
  import { AfterViewInit, QueryList } from '@angular/core';
3
3
  import { ɵLuOptionComponent } from '@lucca-front/ng/core-select';
4
+ import { LuMultiSelectInputComponent } from '../input';
4
5
  import { LuMultiSelectPanelRef } from '../input/panel.model';
5
- import { ILuMultiSelectPanelData } from '../select.model';
6
6
  import * as i0 from "@angular/core";
7
7
  export declare class LuMultiSelectPanelComponent<T> implements AfterViewInit {
8
- protected panelData: ILuMultiSelectPanelData<T>;
8
+ protected selectInput: LuMultiSelectInputComponent<T>;
9
9
  panelRef: LuMultiSelectPanelRef<T>;
10
10
  selectId: number;
11
11
  intl: import("../select.translate").ILuMultiSelectLabel;
12
- options$: import("rxjs").Observable<T[]>;
13
- groups$: import("rxjs").Observable<import("@lucca-front/ng/core-select").LuOptionGroup<T, unknown>[]>;
12
+ options$: import("rxjs").ReplaySubject<T[]>;
14
13
  grouping: import("@lucca-front/ng/core-select").LuOptionGroupDirective<T, T[], unknown>;
15
- loading$: import("rxjs").Observable<boolean>;
14
+ groups$: import("rxjs").Observable<import("@lucca-front/ng/core-select").LuOptionGroup<T, unknown>[]>;
15
+ loading$: import("rxjs").BehaviorSubject<boolean>;
16
16
  optionComparer: (option1: T, option2: T) => boolean;
17
17
  selectedOptions: T[];
18
18
  optionTpl: import("@angular/core").Type<unknown> | import("@angular/core").TemplateRef<import("@lucca-front/ng/core-select").LuOptionContext<T>>;