@lucca-front/ng 20.2.2-rc.2 → 20.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.
- package/core-select/department/index.d.ts +1 -0
- package/core-select/index.d.ts +1 -1
- package/fesm2022/lucca-front-ng-core-select-department.mjs +10 -1
- package/fesm2022/lucca-front-ng-core-select-department.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-core-select.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-form-field.mjs +2 -2
- package/fesm2022/lucca-front-ng-form-field.mjs.map +1 -1
- package/fesm2022/lucca-front-ng-formly.mjs +10 -10
- package/fesm2022/lucca-front-ng-formly.mjs.map +1 -1
- package/package.json +18 -18
- package/schematics/class-prefix/index.js +11 -0
|
@@ -31,6 +31,7 @@ declare class LuCoreSelectDepartmentsDirective<T extends ILuDepartment = ILuDepa
|
|
|
31
31
|
trim(options: TreeNode<T>[], clue: string): TreeNode<T>[];
|
|
32
32
|
protected params$: Observable<Record<string, string | number | boolean>>;
|
|
33
33
|
totalCount$: Observable<number>;
|
|
34
|
+
protected flattenTree(branch: TreeNode<T>): T[];
|
|
34
35
|
protected optionKey: (option: TreeNode<T> | T) => number;
|
|
35
36
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<LuCoreSelectDepartmentsDirective<any>, never>;
|
|
36
37
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<LuCoreSelectDepartmentsDirective<any>, "lu-simple-select[departments],lu-multi-select[departments]", ["luDepartments"], { "url": { "alias": "url"; "required": false; "isSignal": true; }; "filters": { "alias": "filters"; "required": false; "isSignal": true; }; "operationIds": { "alias": "operationIds"; "required": false; "isSignal": true; }; "uniqueOperationIds": { "alias": "uniqueOperationIds"; "required": false; "isSignal": true; }; "appInstanceId": { "alias": "appInstanceId"; "required": false; "isSignal": true; }; "searchDelimiter": { "alias": "searchDelimiter"; "required": false; "isSignal": true; }; }, {}, never, never, true, [{ directive: typeof NoopTreeSelectDirective; inputs: {}; outputs: {}; }]>;
|
package/core-select/index.d.ts
CHANGED
|
@@ -198,7 +198,7 @@ declare class CoreSelectKeyManager<T> {
|
|
|
198
198
|
|
|
199
199
|
declare class LuCoreSelectPanelHeaderDirective {
|
|
200
200
|
readonly templateRef: TemplateRef<void>;
|
|
201
|
-
readonly select: i0.InputSignal<ALuSelectInputComponent<unknown, unknown>>;
|
|
201
|
+
readonly select: i0.InputSignal<ALuSelectInputComponent<unknown, unknown> | ALuSelectInputComponent<unknown, unknown[]>>;
|
|
202
202
|
constructor();
|
|
203
203
|
static ngTemplateContextGuard(_dir: LuCoreSelectPanelHeaderDirective, ctx: unknown): ctx is void;
|
|
204
204
|
static ɵfac: i0.ɵɵFactoryDeclaration<LuCoreSelectPanelHeaderDirective, never>;
|
|
@@ -51,7 +51,9 @@ class LuCoreSelectDepartmentsDirective extends ALuCoreSelectApiDirective {
|
|
|
51
51
|
...(appInstanceId ? { appInstanceId } : {}),
|
|
52
52
|
};
|
|
53
53
|
}));
|
|
54
|
-
this.totalCount$ = this.select.options$.pipe(map((opts) =>
|
|
54
|
+
this.totalCount$ = this.select.options$.pipe(map((opts) => {
|
|
55
|
+
return opts.map((branch) => this.flattenTree(branch)).flat().length;
|
|
56
|
+
}));
|
|
55
57
|
this.optionKey = (option) => {
|
|
56
58
|
return 'node' in option ? option.node.id : option.id;
|
|
57
59
|
};
|
|
@@ -87,6 +89,13 @@ class LuCoreSelectDepartmentsDirective extends ALuCoreSelectApiDirective {
|
|
|
87
89
|
})
|
|
88
90
|
.filter((o) => !!o);
|
|
89
91
|
}
|
|
92
|
+
flattenTree(branch) {
|
|
93
|
+
const result = [branch.node];
|
|
94
|
+
if (branch.children.length > 0) {
|
|
95
|
+
result.push(...branch.children.map((child) => this.flattenTree(child)).flat());
|
|
96
|
+
}
|
|
97
|
+
return result;
|
|
98
|
+
}
|
|
90
99
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: LuCoreSelectDepartmentsDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
91
100
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.0.2", type: LuCoreSelectDepartmentsDirective, isStandalone: true, selector: "lu-simple-select[departments],lu-multi-select[departments]", inputs: { url: { classPropertyName: "url", publicName: "url", isSignal: true, isRequired: false, transformFunction: null }, filters: { classPropertyName: "filters", publicName: "filters", isSignal: true, isRequired: false, transformFunction: null }, operationIds: { classPropertyName: "operationIds", publicName: "operationIds", isSignal: true, isRequired: false, transformFunction: null }, uniqueOperationIds: { classPropertyName: "uniqueOperationIds", publicName: "uniqueOperationIds", isSignal: true, isRequired: false, transformFunction: null }, appInstanceId: { classPropertyName: "appInstanceId", publicName: "appInstanceId", isSignal: true, isRequired: false, transformFunction: null }, searchDelimiter: { classPropertyName: "searchDelimiter", publicName: "searchDelimiter", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
|
|
92
101
|
{
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lucca-front-ng-core-select-department.mjs","sources":["../../../packages/ng/core-select/department/noop-tree-select.directive.ts","../../../packages/ng/core-select/department/departments.directive.ts","../../../packages/ng/core-select/department/lucca-front-ng-core-select-department.ts"],"sourcesContent":["import { Directive, inject, input, linkedSignal } from '@angular/core';\nimport { ALuSelectInputComponent, TreeGenerator, TreeGroupingFn, TreeNode } from '@lucca-front/ng/core-select';\n\n@Directive({\n\t// eslint-disable-next-line @angular-eslint/directive-selector\n\tselector: 'lu-simple-select[noopTreeSelect],lu-multi-select[noopTreeSelect]',\n\tstandalone: true,\n})\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport class NoopTreeSelectDirective<T extends TreeNode<any>, V> implements TreeGenerator<T, T> {\n\t#select = inject<ALuSelectInputComponent<T, V>>(ALuSelectInputComponent);\n\n\tgroupingFnInput = input<TreeGroupingFn<T>>(() => null, { alias: 'noopTreeSelect' });\n\n\tgroupingFn = linkedSignal(() => this.groupingFnInput());\n\n\tconstructor() {\n\t\tthis.#select.treeGenerator = this;\n\t}\n\n\tgenerateTrees(items: T[]): T[] {\n\t\treturn items;\n\t}\n}\n","import { HttpClient } from '@angular/common/http';\nimport { computed, Directive, forwardRef, inject, input, OnInit } from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { CORE_SELECT_API_TOTAL_COUNT_PROVIDER, CoreSelectApiTotalCountProvider, TreeNode } from '@lucca-front/ng/core-select';\nimport { ALuCoreSelectApiDirective } from '@lucca-front/ng/core-select/api';\nimport { combineLatest, map, Observable } from 'rxjs';\nimport { NoopTreeSelectDirective } from './noop-tree-select.directive';\nimport { ILuDepartment } from '@lucca-front/ng/department';\n\n@Directive({\n\t// The attribute is already prefixed with \"lu-simple-select\" / \"lu-multi-select\"\n\t// eslint-disable-next-line @angular-eslint/directive-selector\n\tselector: 'lu-simple-select[departments],lu-multi-select[departments]',\n\tstandalone: true,\n\texportAs: 'luDepartments',\n\tproviders: [\n\t\t{\n\t\t\tprovide: CORE_SELECT_API_TOTAL_COUNT_PROVIDER,\n\t\t\tuseExisting: forwardRef(() => LuCoreSelectDepartmentsDirective),\n\t\t},\n\t],\n\thostDirectives: [NoopTreeSelectDirective],\n})\nexport class LuCoreSelectDepartmentsDirective<T extends ILuDepartment = ILuDepartment> extends ALuCoreSelectApiDirective<TreeNode<T>> implements OnInit, CoreSelectApiTotalCountProvider {\n\tprotected httpClient = inject(HttpClient);\n\n\turl = input<string>('/organization/structure/api/departments/tree');\n\tfilters = input<Record<string, string | number | boolean> | null>(null);\n\toperationIds = input<readonly number[] | null>(null);\n\tuniqueOperationIds = input<readonly number[] | null>(null);\n\tappInstanceId = input<number | null>(null);\n\tsearchDelimiter = input<string>(' ');\n\n\tpublic override ngOnInit(): void {\n\t\tsuper.ngOnInit();\n\t}\n\n\tprotected override buildOptions(): Observable<TreeNode<T>[]> {\n\t\treturn combineLatest([super.buildOptions(), this.clue$]).pipe(\n\t\t\tmap(([data, clue]) => {\n\t\t\t\treturn this.trim(data, clue);\n\t\t\t}),\n\t\t);\n\t}\n\n\tprotected override getOptions(params: Record<string, string | number | boolean> | null): Observable<TreeNode<T>[]> {\n\t\treturn this.httpClient\n\t\t\t.get<TreeNode<T>>(this.url(), {\n\t\t\t\tparams,\n\t\t\t})\n\t\t\t.pipe(\n\t\t\t\tmap((data) => {\n\t\t\t\t\treturn data.children;\n\t\t\t\t}),\n\t\t\t);\n\t}\n\n\ttrim(options: TreeNode<T>[], clue: string): TreeNode<T>[] {\n\t\treturn options\n\t\t\t.map((option) => {\n\t\t\t\tif (option.node.name.toLowerCase().includes(clue.toLowerCase())) {\n\t\t\t\t\treturn { ...option };\n\t\t\t\t}\n\t\t\t\tconst trimmedChildren = option.children ? this.trim(option.children, clue) : [];\n\t\t\t\tif (trimmedChildren.length) {\n\t\t\t\t\treturn { ...option, children: trimmedChildren };\n\t\t\t\t}\n\t\t\t\treturn undefined;\n\t\t\t})\n\t\t\t.filter((o) => !!o);\n\t}\n\n\tprotected override params$: Observable<Record<string, string | number | boolean>> = toObservable(\n\t\tcomputed(() => {\n\t\t\tconst operationIds = this.operationIds();\n\t\t\tconst uniqueOperationIds = this.uniqueOperationIds();\n\t\t\tconst appInstanceId = this.appInstanceId();\n\t\t\treturn {\n\t\t\t\t...this.filters(),\n\t\t\t\t...(operationIds ? { operations: operationIds.join(',') } : {}),\n\t\t\t\t...(uniqueOperationIds ? { uniqueOperations: uniqueOperationIds.join(',') } : {}),\n\t\t\t\t...(appInstanceId ? { appInstanceId } : {}),\n\t\t\t};\n\t\t}),\n\t);\n\n\tpublic totalCount$ = this.select.options$.pipe(map((opts) => opts.length));\n\n\tprotected override optionKey = (option: TreeNode<T> | T) => {\n\t\treturn 'node' in option ? option.node.id : option.id;\n\t};\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.NoopTreeSelectDirective"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lucca-front-ng-core-select-department.mjs","sources":["../../../packages/ng/core-select/department/noop-tree-select.directive.ts","../../../packages/ng/core-select/department/departments.directive.ts","../../../packages/ng/core-select/department/lucca-front-ng-core-select-department.ts"],"sourcesContent":["import { Directive, inject, input, linkedSignal } from '@angular/core';\nimport { ALuSelectInputComponent, TreeGenerator, TreeGroupingFn, TreeNode } from '@lucca-front/ng/core-select';\n\n@Directive({\n\t// eslint-disable-next-line @angular-eslint/directive-selector\n\tselector: 'lu-simple-select[noopTreeSelect],lu-multi-select[noopTreeSelect]',\n\tstandalone: true,\n})\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport class NoopTreeSelectDirective<T extends TreeNode<any>, V> implements TreeGenerator<T, T> {\n\t#select = inject<ALuSelectInputComponent<T, V>>(ALuSelectInputComponent);\n\n\tgroupingFnInput = input<TreeGroupingFn<T>>(() => null, { alias: 'noopTreeSelect' });\n\n\tgroupingFn = linkedSignal(() => this.groupingFnInput());\n\n\tconstructor() {\n\t\tthis.#select.treeGenerator = this;\n\t}\n\n\tgenerateTrees(items: T[]): T[] {\n\t\treturn items;\n\t}\n}\n","import { HttpClient } from '@angular/common/http';\nimport { computed, Directive, forwardRef, inject, input, OnInit } from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { CORE_SELECT_API_TOTAL_COUNT_PROVIDER, CoreSelectApiTotalCountProvider, TreeNode } from '@lucca-front/ng/core-select';\nimport { ALuCoreSelectApiDirective } from '@lucca-front/ng/core-select/api';\nimport { combineLatest, map, Observable } from 'rxjs';\nimport { NoopTreeSelectDirective } from './noop-tree-select.directive';\nimport { ILuDepartment } from '@lucca-front/ng/department';\n\n@Directive({\n\t// The attribute is already prefixed with \"lu-simple-select\" / \"lu-multi-select\"\n\t// eslint-disable-next-line @angular-eslint/directive-selector\n\tselector: 'lu-simple-select[departments],lu-multi-select[departments]',\n\tstandalone: true,\n\texportAs: 'luDepartments',\n\tproviders: [\n\t\t{\n\t\t\tprovide: CORE_SELECT_API_TOTAL_COUNT_PROVIDER,\n\t\t\tuseExisting: forwardRef(() => LuCoreSelectDepartmentsDirective),\n\t\t},\n\t],\n\thostDirectives: [NoopTreeSelectDirective],\n})\nexport class LuCoreSelectDepartmentsDirective<T extends ILuDepartment = ILuDepartment> extends ALuCoreSelectApiDirective<TreeNode<T>> implements OnInit, CoreSelectApiTotalCountProvider {\n\tprotected httpClient = inject(HttpClient);\n\n\turl = input<string>('/organization/structure/api/departments/tree');\n\tfilters = input<Record<string, string | number | boolean> | null>(null);\n\toperationIds = input<readonly number[] | null>(null);\n\tuniqueOperationIds = input<readonly number[] | null>(null);\n\tappInstanceId = input<number | null>(null);\n\tsearchDelimiter = input<string>(' ');\n\n\tpublic override ngOnInit(): void {\n\t\tsuper.ngOnInit();\n\t}\n\n\tprotected override buildOptions(): Observable<TreeNode<T>[]> {\n\t\treturn combineLatest([super.buildOptions(), this.clue$]).pipe(\n\t\t\tmap(([data, clue]) => {\n\t\t\t\treturn this.trim(data, clue);\n\t\t\t}),\n\t\t);\n\t}\n\n\tprotected override getOptions(params: Record<string, string | number | boolean> | null): Observable<TreeNode<T>[]> {\n\t\treturn this.httpClient\n\t\t\t.get<TreeNode<T>>(this.url(), {\n\t\t\t\tparams,\n\t\t\t})\n\t\t\t.pipe(\n\t\t\t\tmap((data) => {\n\t\t\t\t\treturn data.children;\n\t\t\t\t}),\n\t\t\t);\n\t}\n\n\ttrim(options: TreeNode<T>[], clue: string): TreeNode<T>[] {\n\t\treturn options\n\t\t\t.map((option) => {\n\t\t\t\tif (option.node.name.toLowerCase().includes(clue.toLowerCase())) {\n\t\t\t\t\treturn { ...option };\n\t\t\t\t}\n\t\t\t\tconst trimmedChildren = option.children ? this.trim(option.children, clue) : [];\n\t\t\t\tif (trimmedChildren.length) {\n\t\t\t\t\treturn { ...option, children: trimmedChildren };\n\t\t\t\t}\n\t\t\t\treturn undefined;\n\t\t\t})\n\t\t\t.filter((o) => !!o);\n\t}\n\n\tprotected override params$: Observable<Record<string, string | number | boolean>> = toObservable(\n\t\tcomputed(() => {\n\t\t\tconst operationIds = this.operationIds();\n\t\t\tconst uniqueOperationIds = this.uniqueOperationIds();\n\t\t\tconst appInstanceId = this.appInstanceId();\n\t\t\treturn {\n\t\t\t\t...this.filters(),\n\t\t\t\t...(operationIds ? { operations: operationIds.join(',') } : {}),\n\t\t\t\t...(uniqueOperationIds ? { uniqueOperations: uniqueOperationIds.join(',') } : {}),\n\t\t\t\t...(appInstanceId ? { appInstanceId } : {}),\n\t\t\t};\n\t\t}),\n\t);\n\n\tpublic totalCount$ = this.select.options$.pipe(\n\t\tmap((opts) => {\n\t\t\treturn opts.map((branch) => this.flattenTree(branch)).flat().length;\n\t\t}),\n\t);\n\n\tprotected flattenTree(branch: TreeNode<T>): T[] {\n\t\tconst result: T[] = [branch.node];\n\t\tif (branch.children.length > 0) {\n\t\t\tresult.push(...branch.children.map((child) => this.flattenTree(child)).flat());\n\t\t}\n\t\treturn result;\n\t}\n\n\tprotected override optionKey = (option: TreeNode<T> | T) => {\n\t\treturn 'node' in option ? option.node.id : option.id;\n\t};\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.NoopTreeSelectDirective"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lucca-front-ng-core-select.mjs","sources":["../../../packages/ng/core-select/displayer/displayer.directive.ts","../../../packages/ng/core-select/option/option.token.ts","../../../packages/ng/core-select/option/default-option.component.ts","../../../packages/ng/core-select/option/disabled.directive.ts","../../../packages/ng/core-select/option/group.directive.ts","../../../packages/ng/core-select/option/group.pipe.ts","../../../packages/ng/core-select/option/option-outlet.directive.ts","../../../packages/ng/core-select/select.model.ts","../../../packages/ng/core-select/panel/panel.instance.ts","../../../packages/ng/core-select/panel/selectable-item.ts","../../../packages/ng/core-select/option/translations.ts","../../../packages/ng/core-select/option/option.translate.ts","../../../packages/ng/core-select/option/option.component.ts","../../../packages/ng/core-select/option/option.component.html","../../../packages/ng/core-select/option/option.directive.ts","../../../packages/ng/core-select/translations.ts","../../../packages/ng/core-select/select.translate.ts","../../../packages/ng/core-select/input/select-input.component.ts","../../../packages/ng/core-select/input/select-input.models.ts","../../../packages/ng/core-select/input/total-count.directive.ts","../../../packages/ng/core-select/input/tree-display.pipe.ts","../../../packages/ng/core-select/no-clue/no-clue.directive.ts","../../../packages/ng/core-select/panel/key-manager.ts","../../../packages/ng/core-select/panel/panel-header-template.directive.ts","../../../packages/ng/core-select/panel/panel.models.ts","../../../packages/ng/core-select/panel/panel.utils.ts","../../../packages/ng/core-select/select.utils.ts","../../../packages/ng/core-select/option-selected.pipe.ts","../../../packages/ng/core-select/lucca-front-ng-core-select.ts"],"sourcesContent":["import { Directive, Input, TemplateRef } from '@angular/core';\nimport { ALuSelectInputComponent } from '../input';\nimport { LuOptionContext } from '../select.model';\n\n@Directive({\n\tselector: '[luDisplayer]',\n\tstandalone: true,\n})\nexport class LuDisplayerDirective<TOption, TValue> {\n\t@Input('luDisplayerSelect') set select(select: ALuSelectInputComponent<TOption, TValue>) {\n\t\tselect.valueTpl.set(this.templateRef);\n\t}\n\n\tpublic constructor(private templateRef: TemplateRef<LuOptionContext<TOption>>) {}\n\n\tpublic static ngTemplateContextGuard<TOption, TValue>(_dir: LuDisplayerDirective<TOption, TValue>, ctx: unknown): ctx is LuOptionContext<TOption> {\n\t\treturn true;\n\t}\n}\n","import { InjectionToken, Provider } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\nexport interface ILuOptionContext<T> {\n\tisDisabled$: BehaviorSubject<boolean>;\n\toption$: BehaviorSubject<T | undefined>;\n\tdestroy(): void;\n}\n\nexport const LU_OPTION_CONTEXT = new InjectionToken<ILuOptionContext<unknown>>('LuOptionContext');\n\nfunction optionContextFactory<T>(): ILuOptionContext<T> {\n\tconst isDisabled$ = new BehaviorSubject(false);\n\tconst option$ = new BehaviorSubject<T | undefined>(undefined);\n\treturn {\n\t\tisDisabled$,\n\t\toption$,\n\t\tdestroy(): void {\n\t\t\tisDisabled$.complete();\n\t\t\toption$.complete();\n\t\t},\n\t};\n}\n\nexport function provideOptionContext(): Provider {\n\treturn {\n\t\tprovide: LU_OPTION_CONTEXT,\n\t\tuseFactory: optionContextFactory,\n\t};\n}\n","import { AsyncPipe, NgIf } from '@angular/common';\nimport { Component, inject } from '@angular/core';\nimport { ILuOptionContext, LU_OPTION_CONTEXT } from './option.token';\n\n@Component({\n\tselector: 'lu-simple-select-default-option',\n\tstandalone: true,\n\timports: [AsyncPipe, NgIf],\n\ttemplate: `<ng-container *ngIf=\"context.option$ | async as option\">{{ option?.name ?? option }}</ng-container>`,\n\thost: { class: 'pr-u-ellipsis' },\n})\nexport class LuSimpleSelectDefaultOptionComponent {\n\tpublic context = inject<ILuOptionContext<{ name?: string }>>(LU_OPTION_CONTEXT);\n}\n","import { Directive, inject, Input } from '@angular/core';\nimport { LU_OPTION_CONTEXT } from './option.token';\n\n@Directive({\n\tselector: '[luDisabledOption]',\n\tstandalone: true,\n})\nexport class LuDisabledOptionDirective {\n\tprivate context = inject(LU_OPTION_CONTEXT);\n\n\t@Input('luDisabledOption') public set isDisabled(disabled: boolean | null) {\n\t\tif (disabled !== null) {\n\t\t\tthis.context.isDisabled$.next(disabled);\n\t\t}\n\t}\n}\n","import { Directive, inject, Input, OnInit, TemplateRef } from '@angular/core';\nimport { PortalContent } from '@lucca-front/ng/core';\nimport type { ALuSelectInputComponent } from '../input';\nimport type { LuOptionGroupByContext } from '../select.model';\n\nexport interface LuOptionGrouping<TOption, TGroup> {\n\tselector: (option: TOption) => TGroup;\n\tcontent: PortalContent<LuOptionGroupByContext<TOption, TGroup>>;\n}\n\n@Directive({\n\tselector: '[luOptionGroup]',\n\tstandalone: true,\n})\nexport class LuOptionGroupDirective<TOption, TValue, TGroup> implements LuOptionGrouping<TOption, TGroup>, OnInit {\n\t@Input('luOptionGroupSelect') select: ALuSelectInputComponent<TOption, TValue>;\n\n\t@Input('luOptionGroupBy') selector: (option: TOption) => TGroup;\n\n\treadonly content = inject<TemplateRef<LuOptionGroupByContext<TOption, TGroup>>>(TemplateRef);\n\n\tpublic static ngTemplateContextGuard<TOption, TValue, TGroup>(_dir: LuOptionGroupDirective<TOption, TValue, TGroup>, ctx: unknown): ctx is LuOptionGroupByContext<TOption, TGroup> {\n\t\treturn true;\n\t}\n\n\tpublic ngOnInit(): void {\n\t\tthis.select.grouping = this;\n\t}\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { LuOptionGroup } from '../select.model';\n\n/**\n * Generate groups with a O(n) complexity. Note that the options must be sorted by group.\n */\nexport function generateGroups<T, TGroup>(options: T[], selector: (option: T) => TGroup): LuOptionGroup<T, TGroup>[] {\n\tif (!options?.length) {\n\t\treturn [];\n\t}\n\n\tconst groups: Array<LuOptionGroup<T, TGroup>> = [];\n\tlet group: LuOptionGroup<T, TGroup>;\n\n\tfor (const option of options) {\n\t\tconst groupKey = selector(option);\n\t\tif (!group || group.key !== groupKey) {\n\t\t\tif (group) {\n\t\t\t\tgroups.push(group);\n\t\t\t}\n\t\t\tgroup = { key: groupKey, options: [option] };\n\t\t} else {\n\t\t\tgroup.options.push(option);\n\t\t}\n\t}\n\n\tif (group) {\n\t\tgroups.push(group);\n\t}\n\n\treturn groups;\n}\n\n@Pipe({\n\tname: 'luOptionGroup',\n\tstandalone: true,\n})\nexport class LuOptionGroupPipe<T, TGroup> implements PipeTransform {\n\tpublic transform(options: T[], selector: (option: T) => TGroup): LuOptionGroup<T, TGroup>[];\n\tpublic transform(options: T, selector: (option: T) => TGroup): LuOptionGroup<T, TGroup>;\n\tpublic transform(options: T[] | T, selector: (option: T) => TGroup): LuOptionGroup<T, TGroup>[] | LuOptionGroup<T, TGroup> {\n\t\treturn Array.isArray(options) ? generateGroups(options, selector) : generateGroups([options], selector)[0];\n\t}\n}\n","import { ComponentRef, Directive, EmbeddedViewRef, inject, Injector, Input, OnChanges, OnDestroy, SimpleChanges, TemplateRef, Type, ViewContainerRef } from '@angular/core';\nimport { LuOptionContext } from '../select.model';\nimport { LU_OPTION_CONTEXT, provideOptionContext } from './option.token';\n\n@Directive({\n\tselector: '[luOptionOutlet]',\n\tstandalone: true,\n\tproviders: [provideOptionContext()],\n})\nexport class LuOptionOutletDirective<T> implements OnChanges, OnDestroy {\n\t@Input() luOptionOutlet?: Type<unknown> | TemplateRef<LuOptionContext<T>>;\n\t@Input() luOptionOutletValue: T | undefined;\n\t@Input() luOptionShowNull = false;\n\n\tprivate viewContainerRef = inject(ViewContainerRef);\n\tprivate injector = inject(Injector);\n\tprivate embeddedViewRef?: EmbeddedViewRef<LuOptionContext<T>>;\n\tprivate componentRef?: ComponentRef<unknown>;\n\tprivate optionContext = inject(LU_OPTION_CONTEXT);\n\n\tngOnChanges(changes: SimpleChanges): void {\n\t\tif (changes['luOptionOutlet'] || !this.luOptionOutletValue) {\n\t\t\tthis.clearContainer();\n\t\t}\n\n\t\tconst hasRef = this.embeddedViewRef || this.componentRef;\n\n\t\tif (changes['luOptionOutlet'] || (changes['luOptionOutletValue'].currentValue !== null && changes['luOptionOutletValue'].currentValue !== undefined && !hasRef)) {\n\t\t\tconst newValue = changes['luOptionOutletValue'].currentValue as T | undefined;\n\t\t\tif (newValue !== null && newValue !== undefined) {\n\t\t\t\tthis.createComponent();\n\t\t\t}\n\t\t} else if (changes['luOptionOutletValue']) {\n\t\t\tthis.updateRefValue();\n\t\t}\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.optionContext.destroy();\n\t}\n\n\tprivate clearContainer(): void {\n\t\tthis.viewContainerRef.clear();\n\t\tthis.embeddedViewRef?.destroy();\n\t\tthis.componentRef?.destroy();\n\t\tthis.embeddedViewRef = undefined;\n\t\tthis.componentRef = undefined;\n\t}\n\n\tprivate createComponent(): void {\n\t\tif (!this.luOptionOutlet) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.luOptionOutlet instanceof TemplateRef) {\n\t\t\tthis.embeddedViewRef = this.viewContainerRef.createEmbeddedView(this.luOptionOutlet, { $implicit: this.luOptionOutletValue }, { injector: this.injector });\n\t\t} else {\n\t\t\tthis.optionContext.option$.next(this.luOptionOutletValue);\n\t\t\tthis.componentRef = this.viewContainerRef.createComponent(this.luOptionOutlet, { injector: this.injector });\n\t\t}\n\t}\n\n\tprivate updateRefValue(): void {\n\t\tif (this.embeddedViewRef) {\n\t\t\tthis.embeddedViewRef.context.$implicit = this.luOptionOutletValue;\n\t\t} else if (this.componentRef) {\n\t\t\tthis.optionContext.option$.next(this.luOptionOutletValue);\n\t\t}\n\t}\n\n\tpublic static ngTemplateContextGuard<T>(_dir: LuOptionOutletDirective<T>, ctx: unknown): ctx is void {\n\t\treturn true;\n\t}\n}\n","import { Injectable, InjectionToken } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nexport interface LuOptionContext<T> {\n\t$implicit: T;\n}\n\nexport interface LuOptionGroupByContext<T, TGroup> {\n\t$implicit: LuOptionGroup<T, TGroup>;\n}\n\nexport interface LuOptionGroup<T, TGroup> {\n\tkey: TGroup;\n\toptions: T[];\n}\n\nexport type LuOptionComparer<T> = (a: T, b: T) => boolean;\n\nexport type CoreSelectAddOptionStrategy = 'never' | 'always' | 'if-empty-clue' | 'if-not-empty-clue';\n\nexport const SELECT_ID = new InjectionToken<number>('LuSelectPanelData');\nexport const SELECT_LABEL = new InjectionToken<HTMLLabelElement | undefined>('LuSelectLabel');\nexport const SELECT_LABEL_ID = new InjectionToken<string>('LuSelectLabelId');\n\nexport interface CoreSelectApiTotalCountProvider {\n\ttotalCount$: Observable<number>;\n}\n\nexport const CORE_SELECT_API_TOTAL_COUNT_PROVIDER = new InjectionToken<CoreSelectApiTotalCountProvider>('CoreSelectApiTotalCountProvider');\n\n@Injectable({\n\tprovidedIn: 'root',\n\tuseFactory: () => new DefaultIsSelectedStrategy(),\n})\nexport abstract class ɵIsSelectedStrategy<TOption> {\n\tabstract isSelected(option: TOption, selectedOptions: TOption[], optionComparer: LuOptionComparer<TOption>): boolean;\n\tabstract isGroupSelected(options: TOption[], notSelectedOptions: TOption[]): boolean;\n}\n\nclass DefaultIsSelectedStrategy<TOption> extends ɵIsSelectedStrategy<TOption> {\n\tisSelected(option: TOption, selectedOptions: TOption[], optionComparer: LuOptionComparer<TOption>): boolean {\n\t\treturn selectedOptions.some((o) => optionComparer(o, option));\n\t}\n\n\tisGroupSelected(options: TOption[], notSelectedOptions: TOption[]): boolean {\n\t\treturn !notSelectedOptions.length && notSelectedOptions.length !== options.length;\n\t}\n}\n","import { CoreSelectPanelElement } from './selectable-item';\nimport { InjectionToken, WritableSignal } from '@angular/core';\n\nexport interface CoreSelectPanelInstance<T = unknown> {\n\toptions: WritableSignal<CoreSelectPanelElement<T>[]>;\n}\n\nexport const SELECT_PANEL_INSTANCE = new InjectionToken<CoreSelectPanelInstance>('CoreSelect:PanelInstance');\n","import { Highlightable } from '@angular/cdk/a11y';\nimport { computed, Directive, ElementRef, inject, Input, input, model, OnDestroy, output, signal } from '@angular/core';\nimport { CoreSelectPanelInstance, SELECT_PANEL_INSTANCE } from './panel.instance';\n\n@Directive({\n\tstandalone: true,\n\tselector: '[luCoreSelectPanelElement]',\n\texportAs: 'luCoreSelectPanelElement',\n\thost: {\n\t\t'[attr.id]': 'idAttribute()',\n\t\t'[attr.aria-selected]': 'isSelected()',\n\t\t'[class.is-highlighted]': 'isHighlighted()',\n\t\trole: 'option',\n\t},\n})\nexport class CoreSelectPanelElement<T> implements Highlightable, OnDestroy {\n\treadonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n\treadonly #panelRef = inject<CoreSelectPanelInstance<T>>(SELECT_PANEL_INSTANCE);\n\n\tid = signal<string>('');\n\n\telementId = input<string>('');\n\n\tidAttribute = computed(() => this.id() || this.elementId());\n\n\tisSelected = model(false);\n\n\toption = input<T>();\n\n\tisHighlighted = signal(false);\n\n\tselected = output<void>();\n\n\t// We have to use input here because this is consumed by ActiveKeyManager, which doesn't use a signal\n\t@Input()\n\tdisabled: boolean;\n\n\tconstructor() {\n\t\tthis.#panelRef.options.set([...this.#panelRef.options(), this]);\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.#panelRef.options.set(this.#panelRef.options().filter((opt) => opt !== this));\n\t}\n\n\tsetActiveStyles(): void {\n\t\tthis.isHighlighted.set(true);\n\t}\n\n\tsetInactiveStyles(): void {\n\t\tthis.isHighlighted.set(false);\n\t}\n}\n","export const Translations = {\n\tfr: {\n\t\tonlyParent: 'Seulement le parent (Ctrl + Entrée)',\n\t\tonlyChildren: 'Seulement les enfants (Shift + Entrée)',\n\t},\n\ten: {\n\t\tonlyParent: 'Only parent (Ctrl + Enter)',\n\t\tonlyChildren: 'Only children (Shift + Enter)',\n\t},\n};\n","import { InjectionToken } from '@angular/core';\nimport { LuTranslation } from '@lucca-front/ng/core';\nimport { Translations } from './translations';\n\nexport const LU_OPTION_TRANSLATIONS = new InjectionToken('LuOptionTranslations', {\n\tfactory: () => luOptionTranslations,\n});\n\nexport interface OptionTranslate {\n\tonlyParent: string;\n\tonlyChildren: string;\n}\n\nexport const luOptionTranslations: LuTranslation<OptionTranslate> = Translations;\n","import {\n\tAfterViewInit,\n\tbooleanAttribute,\n\tChangeDetectionStrategy,\n\tChangeDetectorRef,\n\tComponent,\n\teffect,\n\tElementRef,\n\tHostBinding,\n\tinject,\n\tInput,\n\tinput,\n\tOnDestroy,\n\tOnInit,\n\toutput,\n\tTemplateRef,\n\tType,\n\tViewChild,\n} from '@angular/core';\nimport { getIntl, PortalDirective } from '@lucca-front/ng/core';\nimport { asyncScheduler, observeOn, Subscription } from 'rxjs';\nimport { GroupTemplateLocation } from '../panel/panel.utils';\nimport { LuOptionContext, SELECT_ID } from '../select.model';\nimport { LuOptionGrouping } from './group.directive';\nimport { LuOptionGroupPipe } from './group.pipe';\nimport { LuOptionOutletDirective } from './option-outlet.directive';\nimport { ILuOptionContext, LU_OPTION_CONTEXT } from './option.token';\nimport { CoreSelectPanelElement } from '../panel/selectable-item';\nimport { LU_OPTION_TRANSLATIONS } from './option.translate';\nimport { LuTooltipTriggerDirective } from '@lucca-front/ng/tooltip';\n\nexport const MAGIC_OPTION_SCROLL_DELAY = 15;\n\n@Component({\n\tselector: 'lu-select-option',\n\ttemplateUrl: './option.component.html',\n\tstyleUrls: ['./option.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tstandalone: true,\n\timports: [LuOptionOutletDirective, PortalDirective, LuOptionGroupPipe, LuTooltipTriggerDirective],\n})\nexport class LuOptionComponent<T> implements AfterViewInit, OnDestroy, OnInit {\n\tprotected selectableItem = inject(CoreSelectPanelElement);\n\tprotected intl = getIntl(LU_OPTION_TRANSLATIONS);\n\n\t@HostBinding('class.optionItem')\n\tpublic hasOptionItemClass = true;\n\n\t@Input()\n\tpublic optionTpl: TemplateRef<LuOptionContext<T>> | Type<unknown> | undefined;\n\n\t@Input() option?: T;\n\t@Input() grouping?: LuOptionGrouping<T, unknown>;\n\n\thasChildren = input(false, { transform: booleanAttribute });\n\tonlyParent = output<void>();\n\tonlyChildren = output<void>();\n\n\tgroupIndex = input<number>();\n\n\tpublic optionIndex = input.required({ transform: (value: string | number) => `${value}` });\n\n\t@Input()\n\tscrollIntoViewOptions: ScrollIntoViewOptions = {};\n\n\tgroupTemplateLocation = input<GroupTemplateLocation>();\n\n\t@ViewChild(LuOptionOutletDirective, { read: LU_OPTION_CONTEXT, static: true })\n\tprivate optionContext?: ILuOptionContext<T>;\n\n\tprivate cdr = inject(ChangeDetectorRef);\n\tprivate subscription?: Subscription;\n\n\tget id(): string {\n\t\tconst groupPart = this.groupIndex() === undefined ? `` : `-group-${this.groupIndex()}`;\n\n\t\treturn `lu-select-${this.selectId}${groupPart}-option-${this.optionIndex()}`;\n\t}\n\n\tprotected elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\tprotected selectId = inject(SELECT_ID);\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tif (this.selectableItem.isHighlighted()) {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tthis.elementRef.nativeElement.scrollIntoView(this.scrollIntoViewOptions);\n\t\t\t\t}, MAGIC_OPTION_SCROLL_DELAY);\n\t\t\t}\n\t\t});\n\t}\n\n\tngOnInit(): void {\n\t\tthis.selectableItem.id.set(this.id);\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.subscription?.unsubscribe();\n\t}\n\n\tngAfterViewInit(): void {\n\t\tthis.subscription = this.optionContext.isDisabled$.pipe(observeOn(asyncScheduler)).subscribe((isDisabled) => {\n\t\t\tthis.selectableItem.disabled = isDisabled;\n\t\t\tthis.cdr.markForCheck();\n\t\t});\n\t}\n\n\tselectOption($event: Event): void {\n\t\tif (this.selectableItem.disabled) {\n\t\t\t$event.stopPropagation();\n\t\t}\n\t}\n}\n","<div class=\"optionItem-value\" [class.is-disabled]=\"selectableItem.disabled\" (click)=\"selectOption($event)\">\n\t<ng-container *luOptionOutlet=\"optionTpl; value: selectableItem.option()\" />\n\n\t@if (groupTemplateLocation() === \"option\") {\n\t\t<div class=\"optionItem-value-group\">\n\t\t\t<ng-container *luPortal=\"grouping.content; context: { $implicit: selectableItem.option() | luOptionGroup: grouping.selector }\" />\n\t\t</div>\n\t}\n\n\t@if (hasChildren() && !selectableItem.disabled) {\n\t\t<div class=\"optionItem-icons\">\n\t\t\t<span\n\t\t\t\tclass=\"optionItem-icon parentOnly\"\n\t\t\t\t(click)=\"$event.stopPropagation(); onlyParent.emit()\"\n\t\t\t\t[luTooltip]=\"intl.onlyParent\"\n\t\t\t\tluTooltipOnlyForDisplay\n\t\t\t>\n\t\t\t\t<svg class=\"optionItem-icon-shape\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\" aria-hidden=\"true\" focusable=\"false\">\n\t\t\t\t\t<path\n\t\t\t\t\t\topacity=\"0.2\"\n\t\t\t\t\t\td=\"M8 13C8.55 13 9 12.55 9 12C9 11.45 8.55 11 8 11C7.45 11 7 11.45 7 12C7 12.55 7.45 13 8 13ZM8 18C8.55 18 9 17.55 9 17C9 16.45 8.55 16 8 16C7.45 16 7 16.45 7 17C7 17.55 7.45 18 8 18ZM12 13H20C20.55 13 21 12.55 21 12C21 11.45 20.55 11 20 11H12C11.45 11 11 11.45 11 12C11 12.55 11.45 13 12 13ZM12 18H20C20.55 18 21 17.55 21 17C21 16.45 20.55 16 20 16H12C11.45 16 11 16.45 11 17C11 17.55 11.45 18 12 18ZM8 13C8.55 13 9 12.55 9 12C9 11.45 8.55 11 8 11C7.45 11 7 11.45 7 12C7 12.55 7.45 13 8 13ZM8 18C8.55 18 9 17.55 9 17C9 16.45 8.55 16 8 16C7.45 16 7 16.45 7 17C7 17.55 7.45 18 8 18ZM12 13H20C20.55 13 21 12.55 21 12C21 11.45 20.55 11 20 11H12C11.45 11 11 11.45 11 12C11 12.55 11.45 13 12 13ZM12 18H20C20.55 18 21 17.55 21 17C21 16.45 20.55 16 20 16H12C11.45 16 11 16.45 11 17C11 17.55 11.45 18 12 18Z\"\n\t\t\t\t\t/>\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M4 8C4.55 8 5 7.55 5 7C5 6.45 4.55 6 4 6C3.45 6 3 6.45 3 7C3 7.55 3.45 8 4 8ZM7 7C7 7.55 7.45 8 8 8H20C20.55 8 21 7.55 21 7C21 6.45 20.55 6 20 6H8C7.45 6 7 6.45 7 7ZM4 8C4.55 8 5 7.55 5 7C5 6.45 4.55 6 4 6C3.45 6 3 6.45 3 7C3 7.55 3.45 8 4 8ZM7 7C7 7.55 7.45 8 8 8H20C20.55 8 21 7.55 21 7C21 6.45 20.55 6 20 6H8C7.45 6 7 6.45 7 7Z\"\n\t\t\t\t\t/>\n\t\t\t\t</svg>\n\t\t\t\t<span class=\"pr-u-mask\">{{ intl.onlyParent }}</span>\n\t\t\t</span>\n\t\t\t<span\n\t\t\t\tclass=\"optionItem-icon childrenOnly\"\n\t\t\t\t(click)=\"$event.stopPropagation(); onlyChildren.emit()\"\n\t\t\t\t[luTooltip]=\"intl.onlyChildren\"\n\t\t\t\tluTooltipOnlyForDisplay\n\t\t\t>\n\t\t\t\t<svg class=\"optionItem-icon-shape\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\" aria-hidden=\"true\" focusable=\"false\">\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M8 13C8.55 13 9 12.55 9 12C9 11.45 8.55 11 8 11C7.45 11 7 11.45 7 12C7 12.55 7.45 13 8 13ZM8 18C8.55 18 9 17.55 9 17C9 16.45 8.55 16 8 16C7.45 16 7 16.45 7 17C7 17.55 7.45 18 8 18ZM12 13H20C20.55 13 21 12.55 21 12C21 11.45 20.55 11 20 11H12C11.45 11 11 11.45 11 12C11 12.55 11.45 13 12 13ZM12 18H20C20.55 18 21 17.55 21 17C21 16.45 20.55 16 20 16H12C11.45 16 11 16.45 11 17C11 17.55 11.45 18 12 18ZM8 13C8.55 13 9 12.55 9 12C9 11.45 8.55 11 8 11C7.45 11 7 11.45 7 12C7 12.55 7.45 13 8 13ZM8 18C8.55 18 9 17.55 9 17C9 16.45 8.55 16 8 16C7.45 16 7 16.45 7 17C7 17.55 7.45 18 8 18ZM12 13H20C20.55 13 21 12.55 21 12C21 11.45 20.55 11 20 11H12C11.45 11 11 11.45 11 12C11 12.55 11.45 13 12 13ZM12 18H20C20.55 18 21 17.55 21 17C21 16.45 20.55 16 20 16H12C11.45 16 11 16.45 11 17C11 17.55 11.45 18 12 18Z\"\n\t\t\t\t\t/>\n\t\t\t\t\t<path\n\t\t\t\t\t\topacity=\"0.2\"\n\t\t\t\t\t\td=\"M4 8C4.55 8 5 7.55 5 7C5 6.45 4.55 6 4 6C3.45 6 3 6.45 3 7C3 7.55 3.45 8 4 8ZM7 7C7 7.55 7.45 8 8 8H20C20.55 8 21 7.55 21 7C21 6.45 20.55 6 20 6H8C7.45 6 7 6.45 7 7ZM4 8C4.55 8 5 7.55 5 7C5 6.45 4.55 6 4 6C3.45 6 3 6.45 3 7C3 7.55 3.45 8 4 8ZM7 7C7 7.55 7.45 8 8 8H20C20.55 8 21 7.55 21 7C21 6.45 20.55 6 20 6H8C7.45 6 7 6.45 7 7Z\"\n\t\t\t\t\t/>\n\t\t\t\t</svg>\n\t\t\t\t<span class=\"pr-u-mask\">{{ intl.onlyChildren }}</span>\n\t\t\t</span>\n\t\t</div>\n\t}\n</div>\n","import { Directive, Input, TemplateRef } from '@angular/core';\nimport type { ALuSelectInputComponent } from '../input';\nimport type { LuOptionContext } from '../select.model';\n\n@Directive({\n\tselector: '[luOption]',\n\tstandalone: true,\n})\nexport class LuOptionDirective<TOption, TValue> {\n\t@Input('luOptionSelect') set select(select: ALuSelectInputComponent<TOption, TValue>) {\n\t\tselect.optionTpl.set(this.templateRef);\n\t}\n\n\tpublic constructor(private templateRef: TemplateRef<LuOptionContext<TOption>>) {}\n\n\tpublic static ngTemplateContextGuard<TOption, TValue>(_dir: LuOptionDirective<TOption, TValue>, ctx: unknown): ctx is LuOptionContext<TOption> {\n\t\treturn true;\n\t}\n}\n","export const Translations = {\n\ten: {\n\t\taddOption: 'Add option',\n\t},\n\tde: {\n\t\taddOption: 'Option hinzufügen',\n\t},\n\tfr: {\n\t\taddOption: 'Ajouter une option',\n\t},\n\tit: {\n\t\taddOption: 'Aggiungere un’opzione',\n\t},\n\tnl: {\n\t\taddOption: 'Een optie toevoegen',\n\t},\n\t'nl-BE': {\n\t\taddOption: 'Een optie toevoegen',\n\t},\n\tes: {\n\t\taddOption: 'Añadir una opción',\n\t},\n\tpt: {\n\t\taddOption: 'Adicionar opção',\n\t},\n};\n","import { InjectionToken } from '@angular/core';\nimport { LuTranslation } from '@lucca-front/ng/core';\nimport { Translations } from './translations';\n\nexport const LU_CORE_SELECT_TRANSLATIONS = new InjectionToken('LuCoreSelectTranslations', {\n\tfactory: () => luCoreSelectTranslations,\n});\n\nexport interface LuCoreSelectLabel {\n\taddOption: string;\n}\n\nexport const luCoreSelectTranslations: LuTranslation<LuCoreSelectLabel> = Translations;\n","import { OverlayConfig, OverlayContainer } from '@angular/cdk/overlay';\nimport {\n\tbooleanAttribute,\n\tChangeDetectorRef,\n\tcomputed,\n\tDirective,\n\tElementRef,\n\tEventEmitter,\n\tHostBinding,\n\tHostListener,\n\tinject,\n\tinput,\n\tInput,\n\tmodel,\n\tOnDestroy,\n\tOnInit,\n\tOutput,\n\tsignal,\n\tTemplateRef,\n\tType,\n\tViewChild,\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { getIntl, PortalContent } from '@lucca-front/ng/core';\nimport { FILTER_PILL_HOST_COMPONENT, FilterPillInputComponent } from '@lucca-front/ng/filter-pills';\nimport { BehaviorSubject, defer, map, Observable, of, ReplaySubject, startWith, Subject, switchMap, take } from 'rxjs';\nimport { LuOptionGrouping, LuSimpleSelectDefaultOptionComponent } from '../option';\nimport { LuSelectPanelRef } from '../panel';\nimport { CoreSelectAddOptionStrategy, LuOptionComparer, LuOptionContext, SELECT_LABEL, SELECT_LABEL_ID } from '../select.model';\nimport { LU_CORE_SELECT_TRANSLATIONS } from '../select.translate';\nimport { TreeGenerator } from './tree-generator';\nimport { TreeNode } from './model';\n\nexport const coreSelectDefaultOptionComparer: LuOptionComparer<unknown> = (option1, option2) => JSON.stringify(option1) === JSON.stringify(option2);\nexport const coreSelectDefaultOptionKey: (option: unknown) => unknown = (option) => option;\n\n@Directive()\nexport abstract class ALuSelectInputComponent<TOption, TValue> implements OnDestroy, OnInit, ControlValueAccessor, FilterPillInputComponent {\n\tprotected changeDetectorRef = inject(ChangeDetectorRef);\n\tprotected overlayContainerRef: HTMLElement = inject(OverlayContainer).getContainerElement();\n\n\tprotected labelElement: HTMLElement | undefined = inject(SELECT_LABEL);\n\tprotected labelId: string = inject(SELECT_LABEL_ID);\n\n\tprotected coreIntl = getIntl(LU_CORE_SELECT_TRANSLATIONS);\n\n\tprotected filterPillHost = inject(FILTER_PILL_HOST_COMPONENT, { optional: true });\n\tprotected afterCloseFn?: () => void;\n\tprotected updatePositionFn?: () => void;\n\tprotected filterPillMode = false;\n\n\tpublic selectParent$?: Subject<void>;\n\tpublic selectChildren$?: Subject<void>;\n\n\t@ViewChild('inputElement')\n\tprivate inputElementRef: ElementRef<HTMLInputElement>;\n\n\tpublic placeholder$ = new BehaviorSubject('');\n\n\tpublic disabled$ = new BehaviorSubject(false);\n\tfilterPillDisabled = toSignal(this.disabled$);\n\n\t@Input()\n\tset placeholder(value: string) {\n\t\tthis.placeholder$.next(value);\n\t}\n\n\t@Input({ transform: booleanAttribute })\n\t@HostBinding('class.is-clearable')\n\tset clearable(value: boolean) {\n\t\tthis.#inputClearable.set(value);\n\t}\n\tget clearable(): boolean {\n\t\treturn this.#clearable();\n\t}\n\t#clearable = computed(() => this.#inputClearable() ?? this.#defaultFilterPillClearable() ?? this.#defaultClearable);\n\t#defaultFilterPillClearable = signal<boolean | null>(null);\n\t#inputClearable = signal<boolean | null>(null);\n\t#defaultClearable = false;\n\n\tget searchable(): boolean {\n\t\treturn this.clueChange.observed;\n\t}\n\n\t@Input()\n\taddOptionLabel: PortalContent = this.coreIntl.addOption;\n\n\t@Input()\n\tset addOptionStrategy(strategy: CoreSelectAddOptionStrategy) {\n\t\tthis.addOptionStrategy$.next(strategy);\n\t}\n\n\t@HostBinding('class.is-selected')\n\tprotected get isSelectedClass(): boolean {\n\t\treturn this.hasValue();\n\t}\n\n\t@HostBinding('class.is-searchFilled')\n\tprotected get isSearchFilledClass(): boolean {\n\t\treturn this.clue?.length > 0;\n\t}\n\n\tprotected abstract hasValue(): boolean;\n\n\tpublic get isPanelOpen(): boolean {\n\t\treturn this.isPanelOpen$.value;\n\t}\n\n\tpublic isPanelOpen$ = new BehaviorSubject(false);\n\n\tpublic activeDescendant$ = new BehaviorSubject('');\n\n\tget ariaControls(): string {\n\t\treturn this.overlayContainerRef.id;\n\t}\n\n\t@Input()\n\toverlayConfig?: OverlayConfig = {\n\t\thasBackdrop: true,\n\t\tbackdropClass: 'cdk-overlay-transparent-backdrop',\n\t};\n\n\t@Input() set loading(value: boolean) {\n\t\tif (value !== this.loading) {\n\t\t\tthis.loading$.next(value);\n\t\t}\n\t}\n\n\t@Input() set options(options: readonly TOption[]) {\n\t\tthis.options$.next(options);\n\t\tif (this.panelRef) {\n\t\t\t// We have to put it in a setTimeout so it'll be triggered AFTER the DOM is updated and not right now,\n\t\t\t// which is before the panel size has been modified by the arrival of the new options\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.panelRef?.updatePosition();\n\t\t\t\tthis.updatePositionFn?.();\n\t\t\t});\n\t\t}\n\t}\n\n\t@Input() optionComparer: LuOptionComparer<TOption> = coreSelectDefaultOptionComparer;\n\t@Input() optionKey: (option: TOption) => unknown = coreSelectDefaultOptionKey;\n\n\tnoClueIcon = input(false, { transform: booleanAttribute });\n\tinputTabindex = input<number>(0);\n\n\t@HostBinding('class.mod-noClueIcon')\n\tprotected get isNoClueIconClass(): boolean {\n\t\treturn this.noClueIcon();\n\t}\n\n\toptionTpl = model<TemplateRef<LuOptionContext<TOption>> | Type<unknown>>(LuSimpleSelectDefaultOptionComponent);\n\tvalueTpl = model<TemplateRef<LuOptionContext<TOption>> | Type<unknown> | undefined>();\n\tpanelHeaderTpl = model<TemplateRef<void> | Type<unknown> | undefined>();\n\n\tdisplayerTpl = computed(() => this.valueTpl() || this.optionTpl());\n\n\tgrouping?: LuOptionGrouping<TOption, unknown>;\n\ttreeGenerator?: TreeGenerator<TOption, TreeNode<TOption>>;\n\n\t@Output() clueChange = new EventEmitter<string>();\n\t@Output() nextPage = new EventEmitter<void>();\n\t@Output() previousPage = new EventEmitter<void>();\n\t@Output() addOption = new EventEmitter<string>();\n\n\tpublic valueSignal = signal<TValue>(null);\n\tisFilterPillEmpty = computed(() => this.valueSignal() === null);\n\tisFilterPillClearable = computed(() => this.#clearable());\n\n\tpublic get value(): TValue {\n\t\treturn this._value;\n\t}\n\n\tprotected set value(value: TValue) {\n\t\t// TODO remove once migrated to signal, but there's an override\n\t\tthis._value = value;\n\t\tthis.valueSignal.set(value);\n\t\tthis.changeDetectorRef.markForCheck();\n\t}\n\n\tpublic get inputPlaceholder(): string | null {\n\t\treturn this.value ? null : this.placeholder$.value;\n\t}\n\n\tpublic clueChanged(clue: string, skipPanelOpen = false): void {\n\t\tthis.clue = clue;\n\n\t\tif (!skipPanelOpen && !this.isPanelOpen) {\n\t\t\tthis.openPanel(clue);\n\t\t} else if (this.lastEmittedClue !== clue) {\n\t\t\tthis.clueChange.emit(clue);\n\t\t\tthis.lastEmittedClue = clue;\n\t\t}\n\t}\n\n\tprotected _value?: TValue;\n\n\toptions$ = new ReplaySubject<readonly TOption[]>(1);\n\tloading$ = new BehaviorSubject(false);\n\tclue: string | null = null;\n\t// This is the clue stored after we selected an option to know if we should emit an empty clue on open or not\n\tlastEmittedClue: string = '';\n\tclue$ = defer(() => this.clueChange.pipe(startWith(this.clue)));\n\n\taddOptionStrategy$ = new BehaviorSubject<CoreSelectAddOptionStrategy>('never');\n\tshouldDisplayAddOption$ = this.addOptionStrategy$.pipe(\n\t\tswitchMap((strategy) => {\n\t\t\tswitch (strategy) {\n\t\t\t\tcase 'always':\n\t\t\t\t\treturn of(true);\n\t\t\t\tcase 'never':\n\t\t\t\t\treturn of(false);\n\t\t\t\tcase 'if-empty-clue':\n\t\t\t\t\treturn this.clue$.pipe(map((clue) => !clue));\n\t\t\t\tcase 'if-not-empty-clue':\n\t\t\t\t\treturn this.clue$.pipe(map((clue) => !!clue));\n\t\t\t}\n\t\t}),\n\t);\n\n\tprotected onChange?: (value: TValue | null) => void;\n\tprotected onTouched?: () => void;\n\n\tpublic get panelRef(): LuSelectPanelRef<TOption, TValue> | undefined {\n\t\treturn this._panelRef;\n\t}\n\n\tprotected _panelRef?: LuSelectPanelRef<TOption, TValue>;\n\n\tprotected destroyed$ = new Subject<void>();\n\n\tconstructor() {\n\t\tif (this.filterPillHost) {\n\t\t\tthis.filterPillHost.registerInput(this);\n\t\t}\n\t}\n\n\t@HostListener('click', ['$event'])\n\tonClickOpenPanel($event: KeyboardEvent) {\n\t\tif (!this.isPanelOpen) {\n\t\t\tthis.openPanel();\n\t\t\t$event.stopPropagation();\n\t\t\t$event.preventDefault();\n\t\t}\n\t}\n\n\t@HostListener('keydown', ['$event'])\n\tonKeyDownNavigation($event: KeyboardEvent): void {\n\t\tswitch ($event.key) {\n\t\t\tcase 'Escape':\n\t\t\t\tif (this.isPanelOpen) {\n\t\t\t\t\t$event.stopPropagation();\n\t\t\t\t}\n\t\t\t\tthis.panelRef?.close();\n\t\t\t\tbreak;\n\t\t\tcase 'Tab':\n\t\t\t\t// If we are in a filterpill, this will close it on tab press, but we want it to not lose any\n\t\t\t\t// displayed stuff and properly close on focus exit\n\t\t\t\tthis.panelRef?.close();\n\t\t\t\tbreak;\n\t\t\tcase 'Enter':\n\t\t\t\tif ($event.ctrlKey || $event.shiftKey) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (this.isPanelOpen) {\n\t\t\t\t\t// Prevent form submission when selecting a value with Enter\n\t\t\t\t\t$event.preventDefault();\n\t\t\t\t\tthis.panelRef.selectCurrentlyHighlightedValue();\n\t\t\t\t} else {\n\t\t\t\t\tthis.panelRef?.handleKeyManagerEvent($event);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase ' ':\n\t\t\tcase 'ArrowDown':\n\t\t\tcase 'ArrowUp':\n\t\t\t\t// Initial space should just open the panel, not trigger a clue change\n\t\t\t\tif (!this.clue && $event.key === ' ') {\n\t\t\t\t\t$event.preventDefault();\n\t\t\t\t}\n\t\t\t\tif (this.isPanelOpen) {\n\t\t\t\t\tthis.panelRef?.handleKeyManagerEvent($event);\n\t\t\t\t} else {\n\t\t\t\t\tthis.openPanel();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\t// For any other key, forward it to the panel if it's open\n\t\t\t\tif (this.isPanelOpen) {\n\t\t\t\t\tthis.panelRef?.handleKeyManagerEvent($event);\n\t\t\t\t} else if ($event.key.length === 1) {\n\t\t\t\t\tthis.openPanel($event.key);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tregisterOnChange(onChange: (value: TValue) => void): void {\n\t\tthis.onChange = onChange;\n\t}\n\n\tregisterOnTouched(onTouched: () => void): void {\n\t\tthis.onTouched = onTouched;\n\t}\n\n\tsetDisabledState(isDisabled: boolean): void {\n\t\tthis.disabled$.next(isDisabled);\n\t\tthis.changeDetectorRef.markForCheck();\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.closePanel();\n\t\tthis.destroyed$.next();\n\t\tthis.destroyed$.complete();\n\t}\n\n\tngOnInit(): void {\n\t\tif (this.labelElement) {\n\t\t\tthis.labelElement.id = this.labelId;\n\t\t}\n\t}\n\n\tclearValue(event?: Event): void {\n\t\tif (event) {\n\t\t\tevent.stopPropagation();\n\t\t}\n\t\tthis.updateValue(null, true);\n\t\tthis.inputElementRef.nativeElement.focus();\n\t}\n\n\topenPanel(clue: string = ''): void {\n\t\tif (this.filterPillMode || this.isPanelOpen || this.disabled$.value) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.focusInput();\n\n\t\t/**\n\t\t * I know what you're thinking, but let me explain:\n\t\t *\n\t\t * When setting isPanelOpen$'s internal value to true and then calling clueChanged,\n\t\t * it creates a race condition which calls this method again from inside clueChanged's code before\n\t\t * the change is applied inside the Subject, meaning this is called twice and we get a double tap.\n\t\t *\n\t\t * The only easy solution is this (or store yet another boolean like \"isOpeningPanel\" which is, imo, equally ugly.\n\t\t */\n\t\tsetTimeout(() => {\n\t\t\tif (this.isPanelOpen) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.isPanelOpen$.next(true);\n\n\t\t\tif (this.searchable) {\n\t\t\t\tthis.clueChanged(clue);\n\t\t\t}\n\n\t\t\tthis._panelRef = this.buildPanelRef();\n\t\t\tthis.bindInputToPanelRefEvents();\n\t\t});\n\t}\n\n\temitAddOption(): void {\n\t\tthis.addOption.emit(this.clue);\n\t\tthis.panelRef?.close();\n\t}\n\n\tprotected abstract buildPanelRef(): this['panelRef'];\n\n\tprotected bindInputToPanelRefEvents(): void {\n\t\tif (!this.panelRef) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.panelRef.valueChanged.subscribe((value) => this.updateValue(value));\n\n\t\tthis.#pageChanged(this.panelRef.nextPage).subscribe(() => this.nextPage.emit());\n\t\tthis.#pageChanged(this.panelRef.previousPage).subscribe(() => this.previousPage.emit());\n\n\t\tthis.panelRef.activeOptionIdChanged.subscribe((optionId) => {\n\t\t\tthis.activeDescendant$.next(optionId);\n\t\t\tthis.changeDetectorRef.markForCheck();\n\t\t});\n\t\tthis.panelRef.closed.subscribe(() => this.closePanel());\n\t}\n\n\tfocusInput(): void {\n\t\tif (this.inputElementRef) {\n\t\t\tthis.inputElementRef.nativeElement.focus();\n\t\t}\n\t}\n\n\tprotected emptyClue(): void {\n\t\tif (this.clue) {\n\t\t\tthis.clue = null;\n\t\t\tthis.changeDetectorRef.markForCheck();\n\t\t}\n\t}\n\n\tpublic closePanel(): void {\n\t\tif (!this.isPanelOpen) {\n\t\t\treturn;\n\t\t}\n\t\tthis.emptyClue();\n\t\tthis.activeDescendant$.next('');\n\t\tthis.changeDetectorRef.markForCheck();\n\t\tthis.onTouched?.();\n\t\tif (!this.filterPillMode) {\n\t\t\tthis.isPanelOpen$.next(false);\n\t\t\tthis.panelRef.close();\n\t\t\tthis._panelRef = undefined;\n\t\t\tthis.focusInput();\n\t\t}\n\t\tthis.afterCloseFn?.();\n\t}\n\n\tpublic writeValue(value: TValue): void {\n\t\tthis.value = value;\n\t}\n\n\tpublic updateValue(value: TValue, skipPanelOpen = false, noClear = false): void {\n\t\tthis.value = value;\n\t\tif (!noClear) {\n\t\t\tthis.emptyClue();\n\t\t\tthis.clueChanged('', skipPanelOpen);\n\t\t}\n\t\tthis.onChange?.(value);\n\t\tthis.onTouched?.();\n\t}\n\n\t// Ensure nextPage/previousPage does not emit too often\n\t#pageChanged(pageEmitter: EventEmitter<void>): Observable<void> {\n\t\treturn this.options$.pipe(switchMap(() => pageEmitter.pipe(take(1))));\n\t}\n\n\t// Filter pill interface\n\tclearFilterPillValue(): void {\n\t\tthis.clearValue();\n\t}\n\n\tregisterFilterPillClosePopover(closeFn: () => void): void {\n\t\tthis.afterCloseFn = closeFn;\n\t}\n\n\tregisterFilterPillUpdatePosition(updatePositionFn: () => void): void {\n\t\tthis.updatePositionFn = updatePositionFn;\n\t}\n\n\tenableFilterPillMode() {\n\t\tthis.filterPillMode = true;\n\t\tthis.#defaultFilterPillClearable.set(true);\n\t\tthis._panelRef.closed.subscribe(this.afterCloseFn);\n\t\tthis.bindInputToPanelRefEvents();\n\t}\n\n\tonFilterPillOpened(): void {\n\t\tthis.isPanelOpen$.next(true);\n\t}\n\n\tonFilterPillClosed(): void {\n\t\tthis.isPanelOpen$.next(false);\n\t}\n}\n","import { OverlayRef } from '@angular/cdk/overlay';\nimport { ElementRef, Provider, inject } from '@angular/core';\nimport { SELECT_ID, SELECT_LABEL, SELECT_LABEL_ID } from '../select.model';\n\nlet selectId = 0;\n\nfunction selectIdFactory(): number {\n\treturn selectId++;\n}\n\nfunction selectLabelFactory(): HTMLLabelElement | undefined {\n\tconst elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n\tfunction getLabel(node: HTMLElement): HTMLLabelElement | undefined {\n\t\tif (node instanceof HTMLLabelElement) {\n\t\t\treturn node;\n\t\t}\n\n\t\tif (!node.parentElement) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn getLabel(node.parentElement);\n\t}\n\n\treturn getLabel(elementRef.nativeElement);\n}\n\nfunction selectLabelIdFactory(): string {\n\treturn inject(SELECT_LABEL)?.id || `lu-select-label-${inject(SELECT_ID)}`;\n}\n\nexport function provideLuSelectLabelsAndIds(): Provider[] {\n\treturn [\n\t\t{ provide: SELECT_ID, useFactory: selectIdFactory },\n\t\t{ provide: SELECT_LABEL, useFactory: selectLabelFactory },\n\t\t{ provide: SELECT_LABEL_ID, useFactory: selectLabelIdFactory },\n\t];\n}\n\nexport function addAttributesOnCdkContainer(overlayRef: OverlayRef, selectLabelId: string, selectId: number) {\n\tconst potentialCdkOverlayContainer = overlayRef?.overlayElement?.parentElement?.parentElement;\n\tif (potentialCdkOverlayContainer && potentialCdkOverlayContainer.className.includes('cdk-overlay-container')) {\n\t\tpotentialCdkOverlayContainer.setAttribute('aria-labelledby', selectLabelId);\n\t\tpotentialCdkOverlayContainer.id = `lu-select-overlay-container-${selectId}`;\n\t}\n}\n","import { Directive, forwardRef, input } from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { CORE_SELECT_API_TOTAL_COUNT_PROVIDER, CoreSelectApiTotalCountProvider } from '../select.model';\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[totalCount],lu-multi-select[totalCount]',\n\tstandalone: true,\n\tproviders: [\n\t\t{\n\t\t\tprovide: CORE_SELECT_API_TOTAL_COUNT_PROVIDER,\n\t\t\tuseExisting: forwardRef(() => LuCoreSelectTotalCountDirective),\n\t\t},\n\t],\n})\nexport class LuCoreSelectTotalCountDirective implements CoreSelectApiTotalCountProvider {\n\ttotalCount = input.required<number>({ alias: 'totalCount' });\n\n\ttotalCount$ = toObservable(this.totalCount);\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { TreeGenerator } from './tree-generator';\nimport { TreeNode } from './model';\n\n@Pipe({\n\tname: 'luTreeDisplay',\n\tpure: true,\n})\nexport class TreeDisplayPipe<T> implements PipeTransform {\n\ttransform(items: T[], treeGenerator: TreeGenerator<T, TreeNode<T>>): TreeNode<T>[] {\n\t\treturn treeGenerator.generateTrees(items);\n\t}\n}\n","import { Directive, inject } from '@angular/core';\nimport { ALuSelectInputComponent } from '../input/index';\n\n@Directive({\n\t// eslint-disable-next-line @angular-eslint/directive-selector\n\tselector: 'lu-simple-select[noClue],lu-multi-select[noClue]',\n\tstandalone: true,\n})\nexport class LuCoreSelectNoClueDirective {\n\tconstructor() {\n\t\tinject(ALuSelectInputComponent).clueChange.complete();\n\t}\n}\n","import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport { computed, DestroyRef, EventEmitter, inject, Injectable, Injector, Signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { asyncScheduler, debounceTime, filter, map, Observable, observeOn, take } from 'rxjs';\nimport { LuOptionComparer } from '../select.model';\nimport { CoreSelectPanelElement } from './selectable-item';\n\ninterface CoreSelectKeyManagerOptions<T> {\n\tqueryList: Signal<readonly CoreSelectPanelElement<T>[]>;\n\toptions$: Observable<readonly T[]>;\n\toptionComparer: LuOptionComparer<T>;\n\tactiveOptionIdChanged$: EventEmitter<string>;\n\tclueChange$: Observable<string>;\n}\n\n@Injectable()\nexport class CoreSelectKeyManager<T> {\n\t#destroyRef = inject(DestroyRef);\n\t#cdkKeyManager?: ActiveDescendantKeyManager<CoreSelectPanelElement<T>>;\n\t#hasSearchChanged = false;\n\t#options?: CoreSelectKeyManagerOptions<T>;\n\t#injector = inject(Injector);\n\n\t#queryList: Signal<CoreSelectPanelElement<T>[]>;\n\n\tinit(options: CoreSelectKeyManagerOptions<T>): void {\n\t\tthis.#options = options;\n\t\tthis.#queryList = computed(() => {\n\t\t\treturn [...options.queryList()].sort((a, b) => {\n\t\t\t\tconst comparison = a.elementRef.nativeElement.compareDocumentPosition(b.elementRef.nativeElement);\n\t\t\t\tif (comparison & Node.DOCUMENT_POSITION_FOLLOWING) {\n\t\t\t\t\treturn -1;\n\t\t\t\t}\n\t\t\t\tif (comparison & Node.DOCUMENT_POSITION_PRECEDING) {\n\t\t\t\t\treturn 1;\n\t\t\t\t}\n\t\t\t\treturn 0;\n\t\t\t});\n\t\t});\n\t\tthis.#cdkKeyManager = new ActiveDescendantKeyManager(this.#queryList, this.#injector).withHomeAndEnd();\n\t\tthis.#bindClueChange(options.clueChange$);\n\t\tthis.#bindOptionsChange(options);\n\t\tthis.#bindActiveOptionIdChanged(options.activeOptionIdChanged$);\n\t\tthis.#cdkKeyManager.setFirstItemActive();\n\t}\n\n\tonKeydown(event: KeyboardEvent): void {\n\t\tthis.#cdkKeyManager?.onKeydown(event);\n\t}\n\n\tget activeItem(): CoreSelectPanelElement<T> | undefined {\n\t\treturn this.#cdkKeyManager?.activeItem;\n\t}\n\n\tget activeItemIndex(): number {\n\t\treturn this.#cdkKeyManager?.activeItemIndex ?? -1;\n\t}\n\n\tsetActiveItem(index: number): void {\n\t\tthis.#cdkKeyManager?.setActiveItem(index);\n\t}\n\n\thighlightOption(option: T): void {\n\t\tif (!this.#options) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { options$, optionComparer } = this.#options;\n\n\t\toptions$\n\t\t\t.pipe(\n\t\t\t\tobserveOn(asyncScheduler),\n\t\t\t\tmap((options) => options.findIndex((o) => optionComparer(o, option))),\n\t\t\t\tfilter((index) => index !== -1),\n\t\t\t\ttake(1),\n\t\t\t\ttakeUntilDestroyed(this.#destroyRef),\n\t\t\t)\n\t\t\t.subscribe((selectedIndex) => this.setActiveItem(selectedIndex));\n\t}\n\n\t#bindClueChange(clueChange$: Observable<string>): void {\n\t\tclueChange$.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe(() => {\n\t\t\tthis.#hasSearchChanged = true;\n\t\t});\n\t}\n\n\t#bindActiveOptionIdChanged(activeOptionIdChanged$: EventEmitter<string>): void {\n\t\tthis.#cdkKeyManager.change\n\t\t\t.pipe(\n\t\t\t\tmap(() => this.#cdkKeyManager.activeItem?.idAttribute()),\n\t\t\t\ttakeUntilDestroyed(this.#destroyRef),\n\t\t\t)\n\t\t\t.subscribe((activeDescendant) => activeOptionIdChanged$.emit(activeDescendant));\n\t}\n\n\t/**\n\t * Ensure always have the correct highlighted item:\n\t * \t- reset to null if no options\n\t * \t- set to first item if search has changed\n\t * \t- set to first item if no active item\n\t */\n\t#bindOptionsChange({ options$ }: CoreSelectKeyManagerOptions<T>): void {\n\t\toptions$\n\t\t\t.pipe(\n\t\t\t\tdebounceTime(0), // Wait until QueryList is updated\n\t\t\t\ttakeUntilDestroyed(this.#destroyRef),\n\t\t\t)\n\t\t\t.subscribe(() => {\n\t\t\t\tif (this.#queryList().length === 0) {\n\t\t\t\t\tthis.#cdkKeyManager.setActiveItem(-1);\n\t\t\t\t} else if (this.#hasSearchChanged) {\n\t\t\t\t\tthis.#hasSearchChanged = false;\n\t\t\t\t\tthis.#cdkKeyManager.setFirstItemActive();\n\t\t\t\t} else if (!this.#cdkKeyManager.activeItem) {\n\t\t\t\t\tthis.#cdkKeyManager.setFirstItemActive();\n\t\t\t\t}\n\t\t\t});\n\t}\n}\n","import { Directive, TemplateRef, effect, inject, input, untracked } from '@angular/core';\nimport { ALuSelectInputComponent } from '../input';\n\n@Directive({\n\tselector: '[luSelectPanelHeader]',\n\tstandalone: true,\n})\nexport class LuCoreSelectPanelHeaderDirective {\n\treadonly templateRef = inject<TemplateRef<void>>(TemplateRef);\n\n\treadonly select = input.required<ALuSelectInputComponent<unknown, unknown>>({ alias: 'luSelectPanelHeader' });\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tconst select = this.select();\n\t\t\tuntracked(() => select.panelHeaderTpl.set(this.templateRef));\n\t\t});\n\t}\n\n\tpublic static ngTemplateContextGuard(_dir: LuCoreSelectPanelHeaderDirective, ctx: unknown): ctx is void {\n\t\treturn true;\n\t}\n}\n","import { EventEmitter } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nexport abstract class LuSelectPanelRef<TOption, TValue> {\n\tclosed = new EventEmitter<void>();\n\tpreviousPage = new EventEmitter<void>();\n\tnextPage = new EventEmitter<void>();\n\tvalueChanged = new EventEmitter<TValue>();\n\tclueChanged = new EventEmitter<string>();\n\tactiveOptionIdChanged = new EventEmitter<string>();\n\toptions$: Observable<TOption>;\n\n\tabstract updatePosition(): void;\n\n\tabstract handleKeyManagerEvent(event: KeyboardEvent): void;\n\n\tabstract emitValue(value: TValue): void;\n\n\tabstract selectCurrentlyHighlightedValue(): void;\n\n\tclose(): void {\n\t\tthis.closed.next();\n\t\tthis.closed.complete();\n\t\tthis.nextPage.complete();\n\t\tthis.previousPage.complete();\n\t\tthis.valueChanged.complete();\n\t\tthis.clueChanged.emit('');\n\t\tthis.clueChanged.complete();\n\t\tthis.activeOptionIdChanged.complete();\n\t}\n}\n","import { Observable, distinctUntilChanged, map, of, skip, startWith, switchMap, take } from 'rxjs';\n\nexport type GroupTemplateLocation = 'group-header' | 'option' | 'none';\n\n/**\n * In order to avoid a blinking when we go from empty clue to a clue\n * We need to delay the change of group displayer location by waiting for the options to be updated.\n */\nexport function getGroupTemplateLocation(hasGrouping: boolean, clueChange$: Observable<string>, options$: Observable<readonly unknown[]>, searchable = true): Observable<GroupTemplateLocation> {\n\tif (hasGrouping) {\n\t\tconst getGroupTemplateLocation$ = (hasClue: boolean) =>\n\t\t\toptions$.pipe(\n\t\t\t\tskip(1),\n\t\t\t\ttake(1),\n\t\t\t\tmap((): GroupTemplateLocation => (hasClue ? 'option' : 'group-header')),\n\t\t\t\tstartWith('group-header' as const satisfies GroupTemplateLocation),\n\t\t\t);\n\t\treturn searchable\n\t\t\t? clueChange$.pipe(\n\t\t\t\t\tmap((clue) => !!clue),\n\t\t\t\t\tdistinctUntilChanged(),\n\t\t\t\t\tswitchMap(getGroupTemplateLocation$),\n\t\t\t\t)\n\t\t\t: getGroupTemplateLocation$(false);\n\t}\n\treturn of<GroupTemplateLocation>('none');\n}\n","export const applySearchDelimiter = (clue: string, delimiter: string): string => clue.split(' ').join(delimiter);\n","import { Pipe, PipeTransform, inject } from '@angular/core';\nimport { LuOptionComparer, ɵIsSelectedStrategy } from './select.model';\n\n@Pipe({\n\tname: 'luIsOptionSelected',\n\tstandalone: true,\n})\nexport class LuIsOptionSelectedPipe<T> implements PipeTransform {\n\t#selectionStrategy = inject<ɵIsSelectedStrategy<T>>(ɵIsSelectedStrategy);\n\n\ttransform(option: T, comparer: LuOptionComparer<T>, selectedOptions: T[]): boolean {\n\t\treturn this.#selectionStrategy.isSelected(option, selectedOptions, comparer);\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["Translations"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"lucca-front-ng-core-select.mjs","sources":["../../../packages/ng/core-select/displayer/displayer.directive.ts","../../../packages/ng/core-select/option/option.token.ts","../../../packages/ng/core-select/option/default-option.component.ts","../../../packages/ng/core-select/option/disabled.directive.ts","../../../packages/ng/core-select/option/group.directive.ts","../../../packages/ng/core-select/option/group.pipe.ts","../../../packages/ng/core-select/option/option-outlet.directive.ts","../../../packages/ng/core-select/select.model.ts","../../../packages/ng/core-select/panel/panel.instance.ts","../../../packages/ng/core-select/panel/selectable-item.ts","../../../packages/ng/core-select/option/translations.ts","../../../packages/ng/core-select/option/option.translate.ts","../../../packages/ng/core-select/option/option.component.ts","../../../packages/ng/core-select/option/option.component.html","../../../packages/ng/core-select/option/option.directive.ts","../../../packages/ng/core-select/translations.ts","../../../packages/ng/core-select/select.translate.ts","../../../packages/ng/core-select/input/select-input.component.ts","../../../packages/ng/core-select/input/select-input.models.ts","../../../packages/ng/core-select/input/total-count.directive.ts","../../../packages/ng/core-select/input/tree-display.pipe.ts","../../../packages/ng/core-select/no-clue/no-clue.directive.ts","../../../packages/ng/core-select/panel/key-manager.ts","../../../packages/ng/core-select/panel/panel-header-template.directive.ts","../../../packages/ng/core-select/panel/panel.models.ts","../../../packages/ng/core-select/panel/panel.utils.ts","../../../packages/ng/core-select/select.utils.ts","../../../packages/ng/core-select/option-selected.pipe.ts","../../../packages/ng/core-select/lucca-front-ng-core-select.ts"],"sourcesContent":["import { Directive, Input, TemplateRef } from '@angular/core';\nimport { ALuSelectInputComponent } from '../input';\nimport { LuOptionContext } from '../select.model';\n\n@Directive({\n\tselector: '[luDisplayer]',\n\tstandalone: true,\n})\nexport class LuDisplayerDirective<TOption, TValue> {\n\t@Input('luDisplayerSelect') set select(select: ALuSelectInputComponent<TOption, TValue>) {\n\t\tselect.valueTpl.set(this.templateRef);\n\t}\n\n\tpublic constructor(private templateRef: TemplateRef<LuOptionContext<TOption>>) {}\n\n\tpublic static ngTemplateContextGuard<TOption, TValue>(_dir: LuDisplayerDirective<TOption, TValue>, ctx: unknown): ctx is LuOptionContext<TOption> {\n\t\treturn true;\n\t}\n}\n","import { InjectionToken, Provider } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\n\nexport interface ILuOptionContext<T> {\n\tisDisabled$: BehaviorSubject<boolean>;\n\toption$: BehaviorSubject<T | undefined>;\n\tdestroy(): void;\n}\n\nexport const LU_OPTION_CONTEXT = new InjectionToken<ILuOptionContext<unknown>>('LuOptionContext');\n\nfunction optionContextFactory<T>(): ILuOptionContext<T> {\n\tconst isDisabled$ = new BehaviorSubject(false);\n\tconst option$ = new BehaviorSubject<T | undefined>(undefined);\n\treturn {\n\t\tisDisabled$,\n\t\toption$,\n\t\tdestroy(): void {\n\t\t\tisDisabled$.complete();\n\t\t\toption$.complete();\n\t\t},\n\t};\n}\n\nexport function provideOptionContext(): Provider {\n\treturn {\n\t\tprovide: LU_OPTION_CONTEXT,\n\t\tuseFactory: optionContextFactory,\n\t};\n}\n","import { AsyncPipe, NgIf } from '@angular/common';\nimport { Component, inject } from '@angular/core';\nimport { ILuOptionContext, LU_OPTION_CONTEXT } from './option.token';\n\n@Component({\n\tselector: 'lu-simple-select-default-option',\n\tstandalone: true,\n\timports: [AsyncPipe, NgIf],\n\ttemplate: `<ng-container *ngIf=\"context.option$ | async as option\">{{ option?.name ?? option }}</ng-container>`,\n\thost: { class: 'pr-u-ellipsis' },\n})\nexport class LuSimpleSelectDefaultOptionComponent {\n\tpublic context = inject<ILuOptionContext<{ name?: string }>>(LU_OPTION_CONTEXT);\n}\n","import { Directive, inject, Input } from '@angular/core';\nimport { LU_OPTION_CONTEXT } from './option.token';\n\n@Directive({\n\tselector: '[luDisabledOption]',\n\tstandalone: true,\n})\nexport class LuDisabledOptionDirective {\n\tprivate context = inject(LU_OPTION_CONTEXT);\n\n\t@Input('luDisabledOption') public set isDisabled(disabled: boolean | null) {\n\t\tif (disabled !== null) {\n\t\t\tthis.context.isDisabled$.next(disabled);\n\t\t}\n\t}\n}\n","import { Directive, inject, Input, OnInit, TemplateRef } from '@angular/core';\nimport { PortalContent } from '@lucca-front/ng/core';\nimport type { ALuSelectInputComponent } from '../input';\nimport type { LuOptionGroupByContext } from '../select.model';\n\nexport interface LuOptionGrouping<TOption, TGroup> {\n\tselector: (option: TOption) => TGroup;\n\tcontent: PortalContent<LuOptionGroupByContext<TOption, TGroup>>;\n}\n\n@Directive({\n\tselector: '[luOptionGroup]',\n\tstandalone: true,\n})\nexport class LuOptionGroupDirective<TOption, TValue, TGroup> implements LuOptionGrouping<TOption, TGroup>, OnInit {\n\t@Input('luOptionGroupSelect') select: ALuSelectInputComponent<TOption, TValue>;\n\n\t@Input('luOptionGroupBy') selector: (option: TOption) => TGroup;\n\n\treadonly content = inject<TemplateRef<LuOptionGroupByContext<TOption, TGroup>>>(TemplateRef);\n\n\tpublic static ngTemplateContextGuard<TOption, TValue, TGroup>(_dir: LuOptionGroupDirective<TOption, TValue, TGroup>, ctx: unknown): ctx is LuOptionGroupByContext<TOption, TGroup> {\n\t\treturn true;\n\t}\n\n\tpublic ngOnInit(): void {\n\t\tthis.select.grouping = this;\n\t}\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { LuOptionGroup } from '../select.model';\n\n/**\n * Generate groups with a O(n) complexity. Note that the options must be sorted by group.\n */\nexport function generateGroups<T, TGroup>(options: T[], selector: (option: T) => TGroup): LuOptionGroup<T, TGroup>[] {\n\tif (!options?.length) {\n\t\treturn [];\n\t}\n\n\tconst groups: Array<LuOptionGroup<T, TGroup>> = [];\n\tlet group: LuOptionGroup<T, TGroup>;\n\n\tfor (const option of options) {\n\t\tconst groupKey = selector(option);\n\t\tif (!group || group.key !== groupKey) {\n\t\t\tif (group) {\n\t\t\t\tgroups.push(group);\n\t\t\t}\n\t\t\tgroup = { key: groupKey, options: [option] };\n\t\t} else {\n\t\t\tgroup.options.push(option);\n\t\t}\n\t}\n\n\tif (group) {\n\t\tgroups.push(group);\n\t}\n\n\treturn groups;\n}\n\n@Pipe({\n\tname: 'luOptionGroup',\n\tstandalone: true,\n})\nexport class LuOptionGroupPipe<T, TGroup> implements PipeTransform {\n\tpublic transform(options: T[], selector: (option: T) => TGroup): LuOptionGroup<T, TGroup>[];\n\tpublic transform(options: T, selector: (option: T) => TGroup): LuOptionGroup<T, TGroup>;\n\tpublic transform(options: T[] | T, selector: (option: T) => TGroup): LuOptionGroup<T, TGroup>[] | LuOptionGroup<T, TGroup> {\n\t\treturn Array.isArray(options) ? generateGroups(options, selector) : generateGroups([options], selector)[0];\n\t}\n}\n","import { ComponentRef, Directive, EmbeddedViewRef, inject, Injector, Input, OnChanges, OnDestroy, SimpleChanges, TemplateRef, Type, ViewContainerRef } from '@angular/core';\nimport { LuOptionContext } from '../select.model';\nimport { LU_OPTION_CONTEXT, provideOptionContext } from './option.token';\n\n@Directive({\n\tselector: '[luOptionOutlet]',\n\tstandalone: true,\n\tproviders: [provideOptionContext()],\n})\nexport class LuOptionOutletDirective<T> implements OnChanges, OnDestroy {\n\t@Input() luOptionOutlet?: Type<unknown> | TemplateRef<LuOptionContext<T>>;\n\t@Input() luOptionOutletValue: T | undefined;\n\t@Input() luOptionShowNull = false;\n\n\tprivate viewContainerRef = inject(ViewContainerRef);\n\tprivate injector = inject(Injector);\n\tprivate embeddedViewRef?: EmbeddedViewRef<LuOptionContext<T>>;\n\tprivate componentRef?: ComponentRef<unknown>;\n\tprivate optionContext = inject(LU_OPTION_CONTEXT);\n\n\tngOnChanges(changes: SimpleChanges): void {\n\t\tif (changes['luOptionOutlet'] || !this.luOptionOutletValue) {\n\t\t\tthis.clearContainer();\n\t\t}\n\n\t\tconst hasRef = this.embeddedViewRef || this.componentRef;\n\n\t\tif (changes['luOptionOutlet'] || (changes['luOptionOutletValue'].currentValue !== null && changes['luOptionOutletValue'].currentValue !== undefined && !hasRef)) {\n\t\t\tconst newValue = changes['luOptionOutletValue'].currentValue as T | undefined;\n\t\t\tif (newValue !== null && newValue !== undefined) {\n\t\t\t\tthis.createComponent();\n\t\t\t}\n\t\t} else if (changes['luOptionOutletValue']) {\n\t\t\tthis.updateRefValue();\n\t\t}\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.optionContext.destroy();\n\t}\n\n\tprivate clearContainer(): void {\n\t\tthis.viewContainerRef.clear();\n\t\tthis.embeddedViewRef?.destroy();\n\t\tthis.componentRef?.destroy();\n\t\tthis.embeddedViewRef = undefined;\n\t\tthis.componentRef = undefined;\n\t}\n\n\tprivate createComponent(): void {\n\t\tif (!this.luOptionOutlet) {\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.luOptionOutlet instanceof TemplateRef) {\n\t\t\tthis.embeddedViewRef = this.viewContainerRef.createEmbeddedView(this.luOptionOutlet, { $implicit: this.luOptionOutletValue }, { injector: this.injector });\n\t\t} else {\n\t\t\tthis.optionContext.option$.next(this.luOptionOutletValue);\n\t\t\tthis.componentRef = this.viewContainerRef.createComponent(this.luOptionOutlet, { injector: this.injector });\n\t\t}\n\t}\n\n\tprivate updateRefValue(): void {\n\t\tif (this.embeddedViewRef) {\n\t\t\tthis.embeddedViewRef.context.$implicit = this.luOptionOutletValue;\n\t\t} else if (this.componentRef) {\n\t\t\tthis.optionContext.option$.next(this.luOptionOutletValue);\n\t\t}\n\t}\n\n\tpublic static ngTemplateContextGuard<T>(_dir: LuOptionOutletDirective<T>, ctx: unknown): ctx is void {\n\t\treturn true;\n\t}\n}\n","import { Injectable, InjectionToken } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nexport interface LuOptionContext<T> {\n\t$implicit: T;\n}\n\nexport interface LuOptionGroupByContext<T, TGroup> {\n\t$implicit: LuOptionGroup<T, TGroup>;\n}\n\nexport interface LuOptionGroup<T, TGroup> {\n\tkey: TGroup;\n\toptions: T[];\n}\n\nexport type LuOptionComparer<T> = (a: T, b: T) => boolean;\n\nexport type CoreSelectAddOptionStrategy = 'never' | 'always' | 'if-empty-clue' | 'if-not-empty-clue';\n\nexport const SELECT_ID = new InjectionToken<number>('LuSelectPanelData');\nexport const SELECT_LABEL = new InjectionToken<HTMLLabelElement | undefined>('LuSelectLabel');\nexport const SELECT_LABEL_ID = new InjectionToken<string>('LuSelectLabelId');\n\nexport interface CoreSelectApiTotalCountProvider {\n\ttotalCount$: Observable<number>;\n}\n\nexport const CORE_SELECT_API_TOTAL_COUNT_PROVIDER = new InjectionToken<CoreSelectApiTotalCountProvider>('CoreSelectApiTotalCountProvider');\n\n@Injectable({\n\tprovidedIn: 'root',\n\tuseFactory: () => new DefaultIsSelectedStrategy(),\n})\nexport abstract class ɵIsSelectedStrategy<TOption> {\n\tabstract isSelected(option: TOption, selectedOptions: TOption[], optionComparer: LuOptionComparer<TOption>): boolean;\n\tabstract isGroupSelected(options: TOption[], notSelectedOptions: TOption[]): boolean;\n}\n\nclass DefaultIsSelectedStrategy<TOption> extends ɵIsSelectedStrategy<TOption> {\n\tisSelected(option: TOption, selectedOptions: TOption[], optionComparer: LuOptionComparer<TOption>): boolean {\n\t\treturn selectedOptions.some((o) => optionComparer(o, option));\n\t}\n\n\tisGroupSelected(options: TOption[], notSelectedOptions: TOption[]): boolean {\n\t\treturn !notSelectedOptions.length && notSelectedOptions.length !== options.length;\n\t}\n}\n","import { CoreSelectPanelElement } from './selectable-item';\nimport { InjectionToken, WritableSignal } from '@angular/core';\n\nexport interface CoreSelectPanelInstance<T = unknown> {\n\toptions: WritableSignal<CoreSelectPanelElement<T>[]>;\n}\n\nexport const SELECT_PANEL_INSTANCE = new InjectionToken<CoreSelectPanelInstance>('CoreSelect:PanelInstance');\n","import { Highlightable } from '@angular/cdk/a11y';\nimport { computed, Directive, ElementRef, inject, Input, input, model, OnDestroy, output, signal } from '@angular/core';\nimport { CoreSelectPanelInstance, SELECT_PANEL_INSTANCE } from './panel.instance';\n\n@Directive({\n\tstandalone: true,\n\tselector: '[luCoreSelectPanelElement]',\n\texportAs: 'luCoreSelectPanelElement',\n\thost: {\n\t\t'[attr.id]': 'idAttribute()',\n\t\t'[attr.aria-selected]': 'isSelected()',\n\t\t'[class.is-highlighted]': 'isHighlighted()',\n\t\trole: 'option',\n\t},\n})\nexport class CoreSelectPanelElement<T> implements Highlightable, OnDestroy {\n\treadonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n\treadonly #panelRef = inject<CoreSelectPanelInstance<T>>(SELECT_PANEL_INSTANCE);\n\n\tid = signal<string>('');\n\n\telementId = input<string>('');\n\n\tidAttribute = computed(() => this.id() || this.elementId());\n\n\tisSelected = model(false);\n\n\toption = input<T>();\n\n\tisHighlighted = signal(false);\n\n\tselected = output<void>();\n\n\t// We have to use input here because this is consumed by ActiveKeyManager, which doesn't use a signal\n\t@Input()\n\tdisabled: boolean;\n\n\tconstructor() {\n\t\tthis.#panelRef.options.set([...this.#panelRef.options(), this]);\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.#panelRef.options.set(this.#panelRef.options().filter((opt) => opt !== this));\n\t}\n\n\tsetActiveStyles(): void {\n\t\tthis.isHighlighted.set(true);\n\t}\n\n\tsetInactiveStyles(): void {\n\t\tthis.isHighlighted.set(false);\n\t}\n}\n","export const Translations = {\n\tfr: {\n\t\tonlyParent: 'Seulement le parent (Ctrl + Entrée)',\n\t\tonlyChildren: 'Seulement les enfants (Shift + Entrée)',\n\t},\n\ten: {\n\t\tonlyParent: 'Only parent (Ctrl + Enter)',\n\t\tonlyChildren: 'Only children (Shift + Enter)',\n\t},\n};\n","import { InjectionToken } from '@angular/core';\nimport { LuTranslation } from '@lucca-front/ng/core';\nimport { Translations } from './translations';\n\nexport const LU_OPTION_TRANSLATIONS = new InjectionToken('LuOptionTranslations', {\n\tfactory: () => luOptionTranslations,\n});\n\nexport interface OptionTranslate {\n\tonlyParent: string;\n\tonlyChildren: string;\n}\n\nexport const luOptionTranslations: LuTranslation<OptionTranslate> = Translations;\n","import {\n\tAfterViewInit,\n\tbooleanAttribute,\n\tChangeDetectionStrategy,\n\tChangeDetectorRef,\n\tComponent,\n\teffect,\n\tElementRef,\n\tHostBinding,\n\tinject,\n\tInput,\n\tinput,\n\tOnDestroy,\n\tOnInit,\n\toutput,\n\tTemplateRef,\n\tType,\n\tViewChild,\n} from '@angular/core';\nimport { getIntl, PortalDirective } from '@lucca-front/ng/core';\nimport { asyncScheduler, observeOn, Subscription } from 'rxjs';\nimport { GroupTemplateLocation } from '../panel/panel.utils';\nimport { LuOptionContext, SELECT_ID } from '../select.model';\nimport { LuOptionGrouping } from './group.directive';\nimport { LuOptionGroupPipe } from './group.pipe';\nimport { LuOptionOutletDirective } from './option-outlet.directive';\nimport { ILuOptionContext, LU_OPTION_CONTEXT } from './option.token';\nimport { CoreSelectPanelElement } from '../panel/selectable-item';\nimport { LU_OPTION_TRANSLATIONS } from './option.translate';\nimport { LuTooltipTriggerDirective } from '@lucca-front/ng/tooltip';\n\nexport const MAGIC_OPTION_SCROLL_DELAY = 15;\n\n@Component({\n\tselector: 'lu-select-option',\n\ttemplateUrl: './option.component.html',\n\tstyleUrls: ['./option.component.scss'],\n\tchangeDetection: ChangeDetectionStrategy.OnPush,\n\tstandalone: true,\n\timports: [LuOptionOutletDirective, PortalDirective, LuOptionGroupPipe, LuTooltipTriggerDirective],\n})\nexport class LuOptionComponent<T> implements AfterViewInit, OnDestroy, OnInit {\n\tprotected selectableItem = inject(CoreSelectPanelElement);\n\tprotected intl = getIntl(LU_OPTION_TRANSLATIONS);\n\n\t@HostBinding('class.optionItem')\n\tpublic hasOptionItemClass = true;\n\n\t@Input()\n\tpublic optionTpl: TemplateRef<LuOptionContext<T>> | Type<unknown> | undefined;\n\n\t@Input() option?: T;\n\t@Input() grouping?: LuOptionGrouping<T, unknown>;\n\n\thasChildren = input(false, { transform: booleanAttribute });\n\tonlyParent = output<void>();\n\tonlyChildren = output<void>();\n\n\tgroupIndex = input<number>();\n\n\tpublic optionIndex = input.required({ transform: (value: string | number) => `${value}` });\n\n\t@Input()\n\tscrollIntoViewOptions: ScrollIntoViewOptions = {};\n\n\tgroupTemplateLocation = input<GroupTemplateLocation>();\n\n\t@ViewChild(LuOptionOutletDirective, { read: LU_OPTION_CONTEXT, static: true })\n\tprivate optionContext?: ILuOptionContext<T>;\n\n\tprivate cdr = inject(ChangeDetectorRef);\n\tprivate subscription?: Subscription;\n\n\tget id(): string {\n\t\tconst groupPart = this.groupIndex() === undefined ? `` : `-group-${this.groupIndex()}`;\n\n\t\treturn `lu-select-${this.selectId}${groupPart}-option-${this.optionIndex()}`;\n\t}\n\n\tprotected elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\tprotected selectId = inject(SELECT_ID);\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tif (this.selectableItem.isHighlighted()) {\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tthis.elementRef.nativeElement.scrollIntoView(this.scrollIntoViewOptions);\n\t\t\t\t}, MAGIC_OPTION_SCROLL_DELAY);\n\t\t\t}\n\t\t});\n\t}\n\n\tngOnInit(): void {\n\t\tthis.selectableItem.id.set(this.id);\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.subscription?.unsubscribe();\n\t}\n\n\tngAfterViewInit(): void {\n\t\tthis.subscription = this.optionContext.isDisabled$.pipe(observeOn(asyncScheduler)).subscribe((isDisabled) => {\n\t\t\tthis.selectableItem.disabled = isDisabled;\n\t\t\tthis.cdr.markForCheck();\n\t\t});\n\t}\n\n\tselectOption($event: Event): void {\n\t\tif (this.selectableItem.disabled) {\n\t\t\t$event.stopPropagation();\n\t\t}\n\t}\n}\n","<div class=\"optionItem-value\" [class.is-disabled]=\"selectableItem.disabled\" (click)=\"selectOption($event)\">\n\t<ng-container *luOptionOutlet=\"optionTpl; value: selectableItem.option()\" />\n\n\t@if (groupTemplateLocation() === \"option\") {\n\t\t<div class=\"optionItem-value-group\">\n\t\t\t<ng-container *luPortal=\"grouping.content; context: { $implicit: selectableItem.option() | luOptionGroup: grouping.selector }\" />\n\t\t</div>\n\t}\n\n\t@if (hasChildren() && !selectableItem.disabled) {\n\t\t<div class=\"optionItem-icons\">\n\t\t\t<span\n\t\t\t\tclass=\"optionItem-icon parentOnly\"\n\t\t\t\t(click)=\"$event.stopPropagation(); onlyParent.emit()\"\n\t\t\t\t[luTooltip]=\"intl.onlyParent\"\n\t\t\t\tluTooltipOnlyForDisplay\n\t\t\t>\n\t\t\t\t<svg class=\"optionItem-icon-shape\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\" aria-hidden=\"true\" focusable=\"false\">\n\t\t\t\t\t<path\n\t\t\t\t\t\topacity=\"0.2\"\n\t\t\t\t\t\td=\"M8 13C8.55 13 9 12.55 9 12C9 11.45 8.55 11 8 11C7.45 11 7 11.45 7 12C7 12.55 7.45 13 8 13ZM8 18C8.55 18 9 17.55 9 17C9 16.45 8.55 16 8 16C7.45 16 7 16.45 7 17C7 17.55 7.45 18 8 18ZM12 13H20C20.55 13 21 12.55 21 12C21 11.45 20.55 11 20 11H12C11.45 11 11 11.45 11 12C11 12.55 11.45 13 12 13ZM12 18H20C20.55 18 21 17.55 21 17C21 16.45 20.55 16 20 16H12C11.45 16 11 16.45 11 17C11 17.55 11.45 18 12 18ZM8 13C8.55 13 9 12.55 9 12C9 11.45 8.55 11 8 11C7.45 11 7 11.45 7 12C7 12.55 7.45 13 8 13ZM8 18C8.55 18 9 17.55 9 17C9 16.45 8.55 16 8 16C7.45 16 7 16.45 7 17C7 17.55 7.45 18 8 18ZM12 13H20C20.55 13 21 12.55 21 12C21 11.45 20.55 11 20 11H12C11.45 11 11 11.45 11 12C11 12.55 11.45 13 12 13ZM12 18H20C20.55 18 21 17.55 21 17C21 16.45 20.55 16 20 16H12C11.45 16 11 16.45 11 17C11 17.55 11.45 18 12 18Z\"\n\t\t\t\t\t/>\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M4 8C4.55 8 5 7.55 5 7C5 6.45 4.55 6 4 6C3.45 6 3 6.45 3 7C3 7.55 3.45 8 4 8ZM7 7C7 7.55 7.45 8 8 8H20C20.55 8 21 7.55 21 7C21 6.45 20.55 6 20 6H8C7.45 6 7 6.45 7 7ZM4 8C4.55 8 5 7.55 5 7C5 6.45 4.55 6 4 6C3.45 6 3 6.45 3 7C3 7.55 3.45 8 4 8ZM7 7C7 7.55 7.45 8 8 8H20C20.55 8 21 7.55 21 7C21 6.45 20.55 6 20 6H8C7.45 6 7 6.45 7 7Z\"\n\t\t\t\t\t/>\n\t\t\t\t</svg>\n\t\t\t\t<span class=\"pr-u-mask\">{{ intl.onlyParent }}</span>\n\t\t\t</span>\n\t\t\t<span\n\t\t\t\tclass=\"optionItem-icon childrenOnly\"\n\t\t\t\t(click)=\"$event.stopPropagation(); onlyChildren.emit()\"\n\t\t\t\t[luTooltip]=\"intl.onlyChildren\"\n\t\t\t\tluTooltipOnlyForDisplay\n\t\t\t>\n\t\t\t\t<svg class=\"optionItem-icon-shape\" viewBox=\"0 0 24 24\" width=\"24\" height=\"24\" aria-hidden=\"true\" focusable=\"false\">\n\t\t\t\t\t<path\n\t\t\t\t\t\td=\"M8 13C8.55 13 9 12.55 9 12C9 11.45 8.55 11 8 11C7.45 11 7 11.45 7 12C7 12.55 7.45 13 8 13ZM8 18C8.55 18 9 17.55 9 17C9 16.45 8.55 16 8 16C7.45 16 7 16.45 7 17C7 17.55 7.45 18 8 18ZM12 13H20C20.55 13 21 12.55 21 12C21 11.45 20.55 11 20 11H12C11.45 11 11 11.45 11 12C11 12.55 11.45 13 12 13ZM12 18H20C20.55 18 21 17.55 21 17C21 16.45 20.55 16 20 16H12C11.45 16 11 16.45 11 17C11 17.55 11.45 18 12 18ZM8 13C8.55 13 9 12.55 9 12C9 11.45 8.55 11 8 11C7.45 11 7 11.45 7 12C7 12.55 7.45 13 8 13ZM8 18C8.55 18 9 17.55 9 17C9 16.45 8.55 16 8 16C7.45 16 7 16.45 7 17C7 17.55 7.45 18 8 18ZM12 13H20C20.55 13 21 12.55 21 12C21 11.45 20.55 11 20 11H12C11.45 11 11 11.45 11 12C11 12.55 11.45 13 12 13ZM12 18H20C20.55 18 21 17.55 21 17C21 16.45 20.55 16 20 16H12C11.45 16 11 16.45 11 17C11 17.55 11.45 18 12 18Z\"\n\t\t\t\t\t/>\n\t\t\t\t\t<path\n\t\t\t\t\t\topacity=\"0.2\"\n\t\t\t\t\t\td=\"M4 8C4.55 8 5 7.55 5 7C5 6.45 4.55 6 4 6C3.45 6 3 6.45 3 7C3 7.55 3.45 8 4 8ZM7 7C7 7.55 7.45 8 8 8H20C20.55 8 21 7.55 21 7C21 6.45 20.55 6 20 6H8C7.45 6 7 6.45 7 7ZM4 8C4.55 8 5 7.55 5 7C5 6.45 4.55 6 4 6C3.45 6 3 6.45 3 7C3 7.55 3.45 8 4 8ZM7 7C7 7.55 7.45 8 8 8H20C20.55 8 21 7.55 21 7C21 6.45 20.55 6 20 6H8C7.45 6 7 6.45 7 7Z\"\n\t\t\t\t\t/>\n\t\t\t\t</svg>\n\t\t\t\t<span class=\"pr-u-mask\">{{ intl.onlyChildren }}</span>\n\t\t\t</span>\n\t\t</div>\n\t}\n</div>\n","import { Directive, Input, TemplateRef } from '@angular/core';\nimport type { ALuSelectInputComponent } from '../input';\nimport type { LuOptionContext } from '../select.model';\n\n@Directive({\n\tselector: '[luOption]',\n\tstandalone: true,\n})\nexport class LuOptionDirective<TOption, TValue> {\n\t@Input('luOptionSelect') set select(select: ALuSelectInputComponent<TOption, TValue>) {\n\t\tselect.optionTpl.set(this.templateRef);\n\t}\n\n\tpublic constructor(private templateRef: TemplateRef<LuOptionContext<TOption>>) {}\n\n\tpublic static ngTemplateContextGuard<TOption, TValue>(_dir: LuOptionDirective<TOption, TValue>, ctx: unknown): ctx is LuOptionContext<TOption> {\n\t\treturn true;\n\t}\n}\n","export const Translations = {\n\ten: {\n\t\taddOption: 'Add option',\n\t},\n\tde: {\n\t\taddOption: 'Option hinzufügen',\n\t},\n\tfr: {\n\t\taddOption: 'Ajouter une option',\n\t},\n\tit: {\n\t\taddOption: 'Aggiungere un’opzione',\n\t},\n\tnl: {\n\t\taddOption: 'Een optie toevoegen',\n\t},\n\t'nl-BE': {\n\t\taddOption: 'Een optie toevoegen',\n\t},\n\tes: {\n\t\taddOption: 'Añadir una opción',\n\t},\n\tpt: {\n\t\taddOption: 'Adicionar opção',\n\t},\n};\n","import { InjectionToken } from '@angular/core';\nimport { LuTranslation } from '@lucca-front/ng/core';\nimport { Translations } from './translations';\n\nexport const LU_CORE_SELECT_TRANSLATIONS = new InjectionToken('LuCoreSelectTranslations', {\n\tfactory: () => luCoreSelectTranslations,\n});\n\nexport interface LuCoreSelectLabel {\n\taddOption: string;\n}\n\nexport const luCoreSelectTranslations: LuTranslation<LuCoreSelectLabel> = Translations;\n","import { OverlayConfig, OverlayContainer } from '@angular/cdk/overlay';\nimport {\n\tbooleanAttribute,\n\tChangeDetectorRef,\n\tcomputed,\n\tDirective,\n\tElementRef,\n\tEventEmitter,\n\tHostBinding,\n\tHostListener,\n\tinject,\n\tinput,\n\tInput,\n\tmodel,\n\tOnDestroy,\n\tOnInit,\n\tOutput,\n\tsignal,\n\tTemplateRef,\n\tType,\n\tViewChild,\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { ControlValueAccessor } from '@angular/forms';\nimport { getIntl, PortalContent } from '@lucca-front/ng/core';\nimport { FILTER_PILL_HOST_COMPONENT, FilterPillInputComponent } from '@lucca-front/ng/filter-pills';\nimport { BehaviorSubject, defer, map, Observable, of, ReplaySubject, startWith, Subject, switchMap, take } from 'rxjs';\nimport { LuOptionGrouping, LuSimpleSelectDefaultOptionComponent } from '../option';\nimport { LuSelectPanelRef } from '../panel';\nimport { CoreSelectAddOptionStrategy, LuOptionComparer, LuOptionContext, SELECT_LABEL, SELECT_LABEL_ID } from '../select.model';\nimport { LU_CORE_SELECT_TRANSLATIONS } from '../select.translate';\nimport { TreeGenerator } from './tree-generator';\nimport { TreeNode } from './model';\n\nexport const coreSelectDefaultOptionComparer: LuOptionComparer<unknown> = (option1, option2) => JSON.stringify(option1) === JSON.stringify(option2);\nexport const coreSelectDefaultOptionKey: (option: unknown) => unknown = (option) => option;\n\n@Directive()\nexport abstract class ALuSelectInputComponent<TOption, TValue> implements OnDestroy, OnInit, ControlValueAccessor, FilterPillInputComponent {\n\tprotected changeDetectorRef = inject(ChangeDetectorRef);\n\tprotected overlayContainerRef: HTMLElement = inject(OverlayContainer).getContainerElement();\n\n\tprotected labelElement: HTMLElement | undefined = inject(SELECT_LABEL);\n\tprotected labelId: string = inject(SELECT_LABEL_ID);\n\n\tprotected coreIntl = getIntl(LU_CORE_SELECT_TRANSLATIONS);\n\n\tprotected filterPillHost = inject(FILTER_PILL_HOST_COMPONENT, { optional: true });\n\tprotected afterCloseFn?: () => void;\n\tprotected updatePositionFn?: () => void;\n\tprotected filterPillMode = false;\n\n\tpublic selectParent$?: Subject<void>;\n\tpublic selectChildren$?: Subject<void>;\n\n\t@ViewChild('inputElement')\n\tprivate inputElementRef: ElementRef<HTMLInputElement>;\n\n\tpublic placeholder$ = new BehaviorSubject('');\n\n\tpublic disabled$ = new BehaviorSubject(false);\n\tfilterPillDisabled = toSignal(this.disabled$);\n\n\t@Input()\n\tset placeholder(value: string) {\n\t\tthis.placeholder$.next(value);\n\t}\n\n\t@Input({ transform: booleanAttribute })\n\t@HostBinding('class.is-clearable')\n\tset clearable(value: boolean) {\n\t\tthis.#inputClearable.set(value);\n\t}\n\tget clearable(): boolean {\n\t\treturn this.#clearable();\n\t}\n\t#clearable = computed(() => this.#inputClearable() ?? this.#defaultFilterPillClearable() ?? this.#defaultClearable);\n\t#defaultFilterPillClearable = signal<boolean | null>(null);\n\t#inputClearable = signal<boolean | null>(null);\n\t#defaultClearable = false;\n\n\tget searchable(): boolean {\n\t\treturn this.clueChange.observed;\n\t}\n\n\t@Input()\n\taddOptionLabel: PortalContent = this.coreIntl.addOption;\n\n\t@Input()\n\tset addOptionStrategy(strategy: CoreSelectAddOptionStrategy) {\n\t\tthis.addOptionStrategy$.next(strategy);\n\t}\n\n\t@HostBinding('class.is-selected')\n\tprotected get isSelectedClass(): boolean {\n\t\treturn this.hasValue();\n\t}\n\n\t@HostBinding('class.is-searchFilled')\n\tprotected get isSearchFilledClass(): boolean {\n\t\treturn this.clue?.length > 0;\n\t}\n\n\tprotected abstract hasValue(): boolean;\n\n\tpublic get isPanelOpen(): boolean {\n\t\treturn this.isPanelOpen$.value;\n\t}\n\n\tpublic isPanelOpen$ = new BehaviorSubject(false);\n\n\tpublic activeDescendant$ = new BehaviorSubject('');\n\n\tget ariaControls(): string {\n\t\treturn this.overlayContainerRef.id;\n\t}\n\n\t@Input()\n\toverlayConfig?: OverlayConfig = {\n\t\thasBackdrop: true,\n\t\tbackdropClass: 'cdk-overlay-transparent-backdrop',\n\t};\n\n\t@Input() set loading(value: boolean) {\n\t\tif (value !== this.loading) {\n\t\t\tthis.loading$.next(value);\n\t\t}\n\t}\n\n\t@Input() set options(options: readonly TOption[]) {\n\t\tthis.options$.next(options);\n\t\tif (this.panelRef) {\n\t\t\t// We have to put it in a setTimeout so it'll be triggered AFTER the DOM is updated and not right now,\n\t\t\t// which is before the panel size has been modified by the arrival of the new options\n\t\t\tsetTimeout(() => {\n\t\t\t\tthis.panelRef?.updatePosition();\n\t\t\t\tthis.updatePositionFn?.();\n\t\t\t});\n\t\t}\n\t}\n\n\t@Input() optionComparer: LuOptionComparer<TOption> = coreSelectDefaultOptionComparer;\n\t@Input() optionKey: (option: TOption) => unknown = coreSelectDefaultOptionKey;\n\n\tnoClueIcon = input(false, { transform: booleanAttribute });\n\tinputTabindex = input<number>(0);\n\n\t@HostBinding('class.mod-noClueIcon')\n\tprotected get isNoClueIconClass(): boolean {\n\t\treturn this.noClueIcon();\n\t}\n\n\toptionTpl = model<TemplateRef<LuOptionContext<TOption>> | Type<unknown>>(LuSimpleSelectDefaultOptionComponent);\n\tvalueTpl = model<TemplateRef<LuOptionContext<TOption>> | Type<unknown> | undefined>();\n\tpanelHeaderTpl = model<TemplateRef<void> | Type<unknown> | undefined>();\n\n\tdisplayerTpl = computed(() => this.valueTpl() || this.optionTpl());\n\n\tgrouping?: LuOptionGrouping<TOption, unknown>;\n\ttreeGenerator?: TreeGenerator<TOption, TreeNode<TOption>>;\n\n\t@Output() clueChange = new EventEmitter<string>();\n\t@Output() nextPage = new EventEmitter<void>();\n\t@Output() previousPage = new EventEmitter<void>();\n\t@Output() addOption = new EventEmitter<string>();\n\n\tpublic valueSignal = signal<TValue>(null);\n\tisFilterPillEmpty = computed(() => this.valueSignal() === null);\n\tisFilterPillClearable = computed(() => this.#clearable());\n\n\tpublic get value(): TValue {\n\t\treturn this._value;\n\t}\n\n\tprotected set value(value: TValue) {\n\t\t// TODO remove once migrated to signal, but there's an override\n\t\tthis._value = value;\n\t\tthis.valueSignal.set(value);\n\t\tthis.changeDetectorRef.markForCheck();\n\t}\n\n\tpublic get inputPlaceholder(): string | null {\n\t\treturn this.value ? null : this.placeholder$.value;\n\t}\n\n\tpublic clueChanged(clue: string, skipPanelOpen = false): void {\n\t\tthis.clue = clue;\n\n\t\tif (!skipPanelOpen && !this.isPanelOpen) {\n\t\t\tthis.openPanel(clue);\n\t\t} else if (this.lastEmittedClue !== clue) {\n\t\t\tthis.clueChange.emit(clue);\n\t\t\tthis.lastEmittedClue = clue;\n\t\t}\n\t}\n\n\tprotected _value?: TValue;\n\n\toptions$ = new ReplaySubject<readonly TOption[]>(1);\n\tloading$ = new BehaviorSubject(false);\n\tclue: string | null = null;\n\t// This is the clue stored after we selected an option to know if we should emit an empty clue on open or not\n\tlastEmittedClue: string = '';\n\tclue$ = defer(() => this.clueChange.pipe(startWith(this.clue)));\n\n\taddOptionStrategy$ = new BehaviorSubject<CoreSelectAddOptionStrategy>('never');\n\tshouldDisplayAddOption$ = this.addOptionStrategy$.pipe(\n\t\tswitchMap((strategy) => {\n\t\t\tswitch (strategy) {\n\t\t\t\tcase 'always':\n\t\t\t\t\treturn of(true);\n\t\t\t\tcase 'never':\n\t\t\t\t\treturn of(false);\n\t\t\t\tcase 'if-empty-clue':\n\t\t\t\t\treturn this.clue$.pipe(map((clue) => !clue));\n\t\t\t\tcase 'if-not-empty-clue':\n\t\t\t\t\treturn this.clue$.pipe(map((clue) => !!clue));\n\t\t\t}\n\t\t}),\n\t);\n\n\tprotected onChange?: (value: TValue | null) => void;\n\tprotected onTouched?: () => void;\n\n\tpublic get panelRef(): LuSelectPanelRef<TOption, TValue> | undefined {\n\t\treturn this._panelRef;\n\t}\n\n\tprotected _panelRef?: LuSelectPanelRef<TOption, TValue>;\n\n\tprotected destroyed$ = new Subject<void>();\n\n\tconstructor() {\n\t\tif (this.filterPillHost) {\n\t\t\tthis.filterPillHost.registerInput(this);\n\t\t}\n\t}\n\n\t@HostListener('click', ['$event'])\n\tonClickOpenPanel($event: KeyboardEvent) {\n\t\tif (!this.isPanelOpen) {\n\t\t\tthis.openPanel();\n\t\t\t$event.stopPropagation();\n\t\t\t$event.preventDefault();\n\t\t}\n\t}\n\n\t@HostListener('keydown', ['$event'])\n\tonKeyDownNavigation($event: KeyboardEvent): void {\n\t\tswitch ($event.key) {\n\t\t\tcase 'Escape':\n\t\t\t\tif (this.isPanelOpen) {\n\t\t\t\t\t$event.stopPropagation();\n\t\t\t\t}\n\t\t\t\tthis.panelRef?.close();\n\t\t\t\tbreak;\n\t\t\tcase 'Tab':\n\t\t\t\t// If we are in a filterpill, this will close it on tab press, but we want it to not lose any\n\t\t\t\t// displayed stuff and properly close on focus exit\n\t\t\t\tthis.panelRef?.close();\n\t\t\t\tbreak;\n\t\t\tcase 'Enter':\n\t\t\t\tif ($event.ctrlKey || $event.shiftKey) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tif (this.isPanelOpen) {\n\t\t\t\t\t// Prevent form submission when selecting a value with Enter\n\t\t\t\t\t$event.preventDefault();\n\t\t\t\t\tthis.panelRef.selectCurrentlyHighlightedValue();\n\t\t\t\t} else {\n\t\t\t\t\tthis.panelRef?.handleKeyManagerEvent($event);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase ' ':\n\t\t\tcase 'ArrowDown':\n\t\t\tcase 'ArrowUp':\n\t\t\t\t// Initial space should just open the panel, not trigger a clue change\n\t\t\t\tif (!this.clue && $event.key === ' ') {\n\t\t\t\t\t$event.preventDefault();\n\t\t\t\t}\n\t\t\t\tif (this.isPanelOpen) {\n\t\t\t\t\tthis.panelRef?.handleKeyManagerEvent($event);\n\t\t\t\t} else {\n\t\t\t\t\tthis.openPanel();\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tdefault:\n\t\t\t\t// For any other key, forward it to the panel if it's open\n\t\t\t\tif (this.isPanelOpen) {\n\t\t\t\t\tthis.panelRef?.handleKeyManagerEvent($event);\n\t\t\t\t} else if ($event.key.length === 1) {\n\t\t\t\t\tthis.openPanel($event.key);\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t}\n\n\tregisterOnChange(onChange: (value: TValue) => void): void {\n\t\tthis.onChange = onChange;\n\t}\n\n\tregisterOnTouched(onTouched: () => void): void {\n\t\tthis.onTouched = onTouched;\n\t}\n\n\tsetDisabledState(isDisabled: boolean): void {\n\t\tthis.disabled$.next(isDisabled);\n\t\tthis.changeDetectorRef.markForCheck();\n\t}\n\n\tngOnDestroy(): void {\n\t\tthis.closePanel();\n\t\tthis.destroyed$.next();\n\t\tthis.destroyed$.complete();\n\t}\n\n\tngOnInit(): void {\n\t\tif (this.labelElement) {\n\t\t\tthis.labelElement.id = this.labelId;\n\t\t}\n\t}\n\n\tclearValue(event?: Event): void {\n\t\tif (event) {\n\t\t\tevent.stopPropagation();\n\t\t}\n\t\tthis.updateValue(null, true);\n\t\tthis.inputElementRef.nativeElement.focus();\n\t}\n\n\topenPanel(clue: string = ''): void {\n\t\tif (this.filterPillMode || this.isPanelOpen || this.disabled$.value) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.focusInput();\n\n\t\t/**\n\t\t * I know what you're thinking, but let me explain:\n\t\t *\n\t\t * When setting isPanelOpen$'s internal value to true and then calling clueChanged,\n\t\t * it creates a race condition which calls this method again from inside clueChanged's code before\n\t\t * the change is applied inside the Subject, meaning this is called twice and we get a double tap.\n\t\t *\n\t\t * The only easy solution is this (or store yet another boolean like \"isOpeningPanel\" which is, imo, equally ugly.\n\t\t */\n\t\tsetTimeout(() => {\n\t\t\tif (this.isPanelOpen) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.isPanelOpen$.next(true);\n\n\t\t\tif (this.searchable) {\n\t\t\t\tthis.clueChanged(clue);\n\t\t\t}\n\n\t\t\tthis._panelRef = this.buildPanelRef();\n\t\t\tthis.bindInputToPanelRefEvents();\n\t\t});\n\t}\n\n\temitAddOption(): void {\n\t\tthis.addOption.emit(this.clue);\n\t\tthis.panelRef?.close();\n\t}\n\n\tprotected abstract buildPanelRef(): this['panelRef'];\n\n\tprotected bindInputToPanelRefEvents(): void {\n\t\tif (!this.panelRef) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.panelRef.valueChanged.subscribe((value) => this.updateValue(value));\n\n\t\tthis.#pageChanged(this.panelRef.nextPage).subscribe(() => this.nextPage.emit());\n\t\tthis.#pageChanged(this.panelRef.previousPage).subscribe(() => this.previousPage.emit());\n\n\t\tthis.panelRef.activeOptionIdChanged.subscribe((optionId) => {\n\t\t\tthis.activeDescendant$.next(optionId);\n\t\t\tthis.changeDetectorRef.markForCheck();\n\t\t});\n\t\tthis.panelRef.closed.subscribe(() => this.closePanel());\n\t}\n\n\tfocusInput(): void {\n\t\tif (this.inputElementRef) {\n\t\t\tthis.inputElementRef.nativeElement.focus();\n\t\t}\n\t}\n\n\tprotected emptyClue(): void {\n\t\tif (this.clue) {\n\t\t\tthis.clue = null;\n\t\t\tthis.changeDetectorRef.markForCheck();\n\t\t}\n\t}\n\n\tpublic closePanel(): void {\n\t\tif (!this.isPanelOpen) {\n\t\t\treturn;\n\t\t}\n\t\tthis.emptyClue();\n\t\tthis.activeDescendant$.next('');\n\t\tthis.changeDetectorRef.markForCheck();\n\t\tthis.onTouched?.();\n\t\tif (!this.filterPillMode) {\n\t\t\tthis.isPanelOpen$.next(false);\n\t\t\tthis.panelRef.close();\n\t\t\tthis._panelRef = undefined;\n\t\t\tthis.focusInput();\n\t\t}\n\t\tthis.afterCloseFn?.();\n\t}\n\n\tpublic writeValue(value: TValue): void {\n\t\tthis.value = value;\n\t}\n\n\tpublic updateValue(value: TValue, skipPanelOpen = false, noClear = false): void {\n\t\tthis.value = value;\n\t\tif (!noClear) {\n\t\t\tthis.emptyClue();\n\t\t\tthis.clueChanged('', skipPanelOpen);\n\t\t}\n\t\tthis.onChange?.(value);\n\t\tthis.onTouched?.();\n\t}\n\n\t// Ensure nextPage/previousPage does not emit too often\n\t#pageChanged(pageEmitter: EventEmitter<void>): Observable<void> {\n\t\treturn this.options$.pipe(switchMap(() => pageEmitter.pipe(take(1))));\n\t}\n\n\t// Filter pill interface\n\tclearFilterPillValue(): void {\n\t\tthis.clearValue();\n\t}\n\n\tregisterFilterPillClosePopover(closeFn: () => void): void {\n\t\tthis.afterCloseFn = closeFn;\n\t}\n\n\tregisterFilterPillUpdatePosition(updatePositionFn: () => void): void {\n\t\tthis.updatePositionFn = updatePositionFn;\n\t}\n\n\tenableFilterPillMode() {\n\t\tthis.filterPillMode = true;\n\t\tthis.#defaultFilterPillClearable.set(true);\n\t\tthis._panelRef.closed.subscribe(this.afterCloseFn);\n\t\tthis.bindInputToPanelRefEvents();\n\t}\n\n\tonFilterPillOpened(): void {\n\t\tthis.isPanelOpen$.next(true);\n\t}\n\n\tonFilterPillClosed(): void {\n\t\tthis.isPanelOpen$.next(false);\n\t}\n}\n","import { OverlayRef } from '@angular/cdk/overlay';\nimport { ElementRef, Provider, inject } from '@angular/core';\nimport { SELECT_ID, SELECT_LABEL, SELECT_LABEL_ID } from '../select.model';\n\nlet selectId = 0;\n\nfunction selectIdFactory(): number {\n\treturn selectId++;\n}\n\nfunction selectLabelFactory(): HTMLLabelElement | undefined {\n\tconst elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n\tfunction getLabel(node: HTMLElement): HTMLLabelElement | undefined {\n\t\tif (node instanceof HTMLLabelElement) {\n\t\t\treturn node;\n\t\t}\n\n\t\tif (!node.parentElement) {\n\t\t\treturn undefined;\n\t\t}\n\n\t\treturn getLabel(node.parentElement);\n\t}\n\n\treturn getLabel(elementRef.nativeElement);\n}\n\nfunction selectLabelIdFactory(): string {\n\treturn inject(SELECT_LABEL)?.id || `lu-select-label-${inject(SELECT_ID)}`;\n}\n\nexport function provideLuSelectLabelsAndIds(): Provider[] {\n\treturn [\n\t\t{ provide: SELECT_ID, useFactory: selectIdFactory },\n\t\t{ provide: SELECT_LABEL, useFactory: selectLabelFactory },\n\t\t{ provide: SELECT_LABEL_ID, useFactory: selectLabelIdFactory },\n\t];\n}\n\nexport function addAttributesOnCdkContainer(overlayRef: OverlayRef, selectLabelId: string, selectId: number) {\n\tconst potentialCdkOverlayContainer = overlayRef?.overlayElement?.parentElement?.parentElement;\n\tif (potentialCdkOverlayContainer && potentialCdkOverlayContainer.className.includes('cdk-overlay-container')) {\n\t\tpotentialCdkOverlayContainer.setAttribute('aria-labelledby', selectLabelId);\n\t\tpotentialCdkOverlayContainer.id = `lu-select-overlay-container-${selectId}`;\n\t}\n}\n","import { Directive, forwardRef, input } from '@angular/core';\nimport { toObservable } from '@angular/core/rxjs-interop';\nimport { CORE_SELECT_API_TOTAL_COUNT_PROVIDER, CoreSelectApiTotalCountProvider } from '../select.model';\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[totalCount],lu-multi-select[totalCount]',\n\tstandalone: true,\n\tproviders: [\n\t\t{\n\t\t\tprovide: CORE_SELECT_API_TOTAL_COUNT_PROVIDER,\n\t\t\tuseExisting: forwardRef(() => LuCoreSelectTotalCountDirective),\n\t\t},\n\t],\n})\nexport class LuCoreSelectTotalCountDirective implements CoreSelectApiTotalCountProvider {\n\ttotalCount = input.required<number>({ alias: 'totalCount' });\n\n\ttotalCount$ = toObservable(this.totalCount);\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { TreeGenerator } from './tree-generator';\nimport { TreeNode } from './model';\n\n@Pipe({\n\tname: 'luTreeDisplay',\n\tpure: true,\n})\nexport class TreeDisplayPipe<T> implements PipeTransform {\n\ttransform(items: T[], treeGenerator: TreeGenerator<T, TreeNode<T>>): TreeNode<T>[] {\n\t\treturn treeGenerator.generateTrees(items);\n\t}\n}\n","import { Directive, inject } from '@angular/core';\nimport { ALuSelectInputComponent } from '../input/index';\n\n@Directive({\n\t// eslint-disable-next-line @angular-eslint/directive-selector\n\tselector: 'lu-simple-select[noClue],lu-multi-select[noClue]',\n\tstandalone: true,\n})\nexport class LuCoreSelectNoClueDirective {\n\tconstructor() {\n\t\tinject(ALuSelectInputComponent).clueChange.complete();\n\t}\n}\n","import { ActiveDescendantKeyManager } from '@angular/cdk/a11y';\nimport { computed, DestroyRef, EventEmitter, inject, Injectable, Injector, Signal } from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { asyncScheduler, debounceTime, filter, map, Observable, observeOn, take } from 'rxjs';\nimport { LuOptionComparer } from '../select.model';\nimport { CoreSelectPanelElement } from './selectable-item';\n\ninterface CoreSelectKeyManagerOptions<T> {\n\tqueryList: Signal<readonly CoreSelectPanelElement<T>[]>;\n\toptions$: Observable<readonly T[]>;\n\toptionComparer: LuOptionComparer<T>;\n\tactiveOptionIdChanged$: EventEmitter<string>;\n\tclueChange$: Observable<string>;\n}\n\n@Injectable()\nexport class CoreSelectKeyManager<T> {\n\t#destroyRef = inject(DestroyRef);\n\t#cdkKeyManager?: ActiveDescendantKeyManager<CoreSelectPanelElement<T>>;\n\t#hasSearchChanged = false;\n\t#options?: CoreSelectKeyManagerOptions<T>;\n\t#injector = inject(Injector);\n\n\t#queryList: Signal<CoreSelectPanelElement<T>[]>;\n\n\tinit(options: CoreSelectKeyManagerOptions<T>): void {\n\t\tthis.#options = options;\n\t\tthis.#queryList = computed(() => {\n\t\t\treturn [...options.queryList()].sort((a, b) => {\n\t\t\t\tconst comparison = a.elementRef.nativeElement.compareDocumentPosition(b.elementRef.nativeElement);\n\t\t\t\tif (comparison & Node.DOCUMENT_POSITION_FOLLOWING) {\n\t\t\t\t\treturn -1;\n\t\t\t\t}\n\t\t\t\tif (comparison & Node.DOCUMENT_POSITION_PRECEDING) {\n\t\t\t\t\treturn 1;\n\t\t\t\t}\n\t\t\t\treturn 0;\n\t\t\t});\n\t\t});\n\t\tthis.#cdkKeyManager = new ActiveDescendantKeyManager(this.#queryList, this.#injector).withHomeAndEnd();\n\t\tthis.#bindClueChange(options.clueChange$);\n\t\tthis.#bindOptionsChange(options);\n\t\tthis.#bindActiveOptionIdChanged(options.activeOptionIdChanged$);\n\t\tthis.#cdkKeyManager.setFirstItemActive();\n\t}\n\n\tonKeydown(event: KeyboardEvent): void {\n\t\tthis.#cdkKeyManager?.onKeydown(event);\n\t}\n\n\tget activeItem(): CoreSelectPanelElement<T> | undefined {\n\t\treturn this.#cdkKeyManager?.activeItem;\n\t}\n\n\tget activeItemIndex(): number {\n\t\treturn this.#cdkKeyManager?.activeItemIndex ?? -1;\n\t}\n\n\tsetActiveItem(index: number): void {\n\t\tthis.#cdkKeyManager?.setActiveItem(index);\n\t}\n\n\thighlightOption(option: T): void {\n\t\tif (!this.#options) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { options$, optionComparer } = this.#options;\n\n\t\toptions$\n\t\t\t.pipe(\n\t\t\t\tobserveOn(asyncScheduler),\n\t\t\t\tmap((options) => options.findIndex((o) => optionComparer(o, option))),\n\t\t\t\tfilter((index) => index !== -1),\n\t\t\t\ttake(1),\n\t\t\t\ttakeUntilDestroyed(this.#destroyRef),\n\t\t\t)\n\t\t\t.subscribe((selectedIndex) => this.setActiveItem(selectedIndex));\n\t}\n\n\t#bindClueChange(clueChange$: Observable<string>): void {\n\t\tclueChange$.pipe(takeUntilDestroyed(this.#destroyRef)).subscribe(() => {\n\t\t\tthis.#hasSearchChanged = true;\n\t\t});\n\t}\n\n\t#bindActiveOptionIdChanged(activeOptionIdChanged$: EventEmitter<string>): void {\n\t\tthis.#cdkKeyManager.change\n\t\t\t.pipe(\n\t\t\t\tmap(() => this.#cdkKeyManager.activeItem?.idAttribute()),\n\t\t\t\ttakeUntilDestroyed(this.#destroyRef),\n\t\t\t)\n\t\t\t.subscribe((activeDescendant) => activeOptionIdChanged$.emit(activeDescendant));\n\t}\n\n\t/**\n\t * Ensure always have the correct highlighted item:\n\t * \t- reset to null if no options\n\t * \t- set to first item if search has changed\n\t * \t- set to first item if no active item\n\t */\n\t#bindOptionsChange({ options$ }: CoreSelectKeyManagerOptions<T>): void {\n\t\toptions$\n\t\t\t.pipe(\n\t\t\t\tdebounceTime(0), // Wait until QueryList is updated\n\t\t\t\ttakeUntilDestroyed(this.#destroyRef),\n\t\t\t)\n\t\t\t.subscribe(() => {\n\t\t\t\tif (this.#queryList().length === 0) {\n\t\t\t\t\tthis.#cdkKeyManager.setActiveItem(-1);\n\t\t\t\t} else if (this.#hasSearchChanged) {\n\t\t\t\t\tthis.#hasSearchChanged = false;\n\t\t\t\t\tthis.#cdkKeyManager.setFirstItemActive();\n\t\t\t\t} else if (!this.#cdkKeyManager.activeItem) {\n\t\t\t\t\tthis.#cdkKeyManager.setFirstItemActive();\n\t\t\t\t}\n\t\t\t});\n\t}\n}\n","import { Directive, TemplateRef, effect, inject, input, untracked } from '@angular/core';\nimport { ALuSelectInputComponent } from '../input';\n\n@Directive({\n\tselector: '[luSelectPanelHeader]',\n\tstandalone: true,\n})\nexport class LuCoreSelectPanelHeaderDirective {\n\treadonly templateRef = inject<TemplateRef<void>>(TemplateRef);\n\n\treadonly select = input.required<ALuSelectInputComponent<unknown, unknown> | ALuSelectInputComponent<unknown, unknown[]>>({ alias: 'luSelectPanelHeader' });\n\n\tconstructor() {\n\t\teffect(() => {\n\t\t\tconst select = this.select();\n\t\t\tuntracked(() => select.panelHeaderTpl.set(this.templateRef));\n\t\t});\n\t}\n\n\tpublic static ngTemplateContextGuard(_dir: LuCoreSelectPanelHeaderDirective, ctx: unknown): ctx is void {\n\t\treturn true;\n\t}\n}\n","import { EventEmitter } from '@angular/core';\nimport { Observable } from 'rxjs';\n\nexport abstract class LuSelectPanelRef<TOption, TValue> {\n\tclosed = new EventEmitter<void>();\n\tpreviousPage = new EventEmitter<void>();\n\tnextPage = new EventEmitter<void>();\n\tvalueChanged = new EventEmitter<TValue>();\n\tclueChanged = new EventEmitter<string>();\n\tactiveOptionIdChanged = new EventEmitter<string>();\n\toptions$: Observable<TOption>;\n\n\tabstract updatePosition(): void;\n\n\tabstract handleKeyManagerEvent(event: KeyboardEvent): void;\n\n\tabstract emitValue(value: TValue): void;\n\n\tabstract selectCurrentlyHighlightedValue(): void;\n\n\tclose(): void {\n\t\tthis.closed.next();\n\t\tthis.closed.complete();\n\t\tthis.nextPage.complete();\n\t\tthis.previousPage.complete();\n\t\tthis.valueChanged.complete();\n\t\tthis.clueChanged.emit('');\n\t\tthis.clueChanged.complete();\n\t\tthis.activeOptionIdChanged.complete();\n\t}\n}\n","import { Observable, distinctUntilChanged, map, of, skip, startWith, switchMap, take } from 'rxjs';\n\nexport type GroupTemplateLocation = 'group-header' | 'option' | 'none';\n\n/**\n * In order to avoid a blinking when we go from empty clue to a clue\n * We need to delay the change of group displayer location by waiting for the options to be updated.\n */\nexport function getGroupTemplateLocation(hasGrouping: boolean, clueChange$: Observable<string>, options$: Observable<readonly unknown[]>, searchable = true): Observable<GroupTemplateLocation> {\n\tif (hasGrouping) {\n\t\tconst getGroupTemplateLocation$ = (hasClue: boolean) =>\n\t\t\toptions$.pipe(\n\t\t\t\tskip(1),\n\t\t\t\ttake(1),\n\t\t\t\tmap((): GroupTemplateLocation => (hasClue ? 'option' : 'group-header')),\n\t\t\t\tstartWith('group-header' as const satisfies GroupTemplateLocation),\n\t\t\t);\n\t\treturn searchable\n\t\t\t? clueChange$.pipe(\n\t\t\t\t\tmap((clue) => !!clue),\n\t\t\t\t\tdistinctUntilChanged(),\n\t\t\t\t\tswitchMap(getGroupTemplateLocation$),\n\t\t\t\t)\n\t\t\t: getGroupTemplateLocation$(false);\n\t}\n\treturn of<GroupTemplateLocation>('none');\n}\n","export const applySearchDelimiter = (clue: string, delimiter: string): string => clue.split(' ').join(delimiter);\n","import { Pipe, PipeTransform, inject } from '@angular/core';\nimport { LuOptionComparer, ɵIsSelectedStrategy } from './select.model';\n\n@Pipe({\n\tname: 'luIsOptionSelected',\n\tstandalone: true,\n})\nexport class LuIsOptionSelectedPipe<T> implements PipeTransform {\n\t#selectionStrategy = inject<ɵIsSelectedStrategy<T>>(ɵIsSelectedStrategy);\n\n\ttransform(option: T, comparer: LuOptionComparer<T>, selectedOptions: T[]): boolean {\n\t\treturn this.#selectionStrategy.isSelected(option, selectedOptions, comparer);\n\t}\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["Translations"],"mappings":";;;;;;;;;;;MAQa,oBAAoB,CAAA;IAChC,IAAgC,MAAM,CAAC,MAAgD,EAAA;QACtF,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;;AAGtC,IAAA,WAAA,CAA2B,WAAkD,EAAA;QAAlD,IAAW,CAAA,WAAA,GAAX,WAAW;;AAE/B,IAAA,OAAO,sBAAsB,CAAkB,IAA2C,EAAE,GAAY,EAAA;AAC9G,QAAA,OAAO,IAAI;;8GARA,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAApB,oBAAoB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAJhC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,UAAU,EAAE,IAAI;AAChB,iBAAA;gFAEgC,MAAM,EAAA,CAAA;sBAArC,KAAK;uBAAC,mBAAmB;;;MCAd,iBAAiB,GAAG,IAAI,cAAc,CAA4B,iBAAiB;AAEhG,SAAS,oBAAoB,GAAA;AAC5B,IAAA,MAAM,WAAW,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC;AAC9C,IAAA,MAAM,OAAO,GAAG,IAAI,eAAe,CAAgB,SAAS,CAAC;IAC7D,OAAO;QACN,WAAW;QACX,OAAO;QACP,OAAO,GAAA;YACN,WAAW,CAAC,QAAQ,EAAE;YACtB,OAAO,CAAC,QAAQ,EAAE;SAClB;KACD;AACF;SAEgB,oBAAoB,GAAA;IACnC,OAAO;AACN,QAAA,OAAO,EAAE,iBAAiB;AAC1B,QAAA,UAAU,EAAE,oBAAoB;KAChC;AACF;;MClBa,oCAAoC,CAAA;AAPjD,IAAA,WAAA,GAAA;AAQQ,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAsC,iBAAiB,CAAC;AAC/E;8GAFY,oCAAoC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApC,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oCAAoC,EAHtC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iCAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,eAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,mGAAA,CAAqG,EADrG,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,SAAS,8CAAE,IAAI,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;2FAIb,oCAAoC,EAAA,UAAA,EAAA,CAAA;kBAPhD,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,iCAAiC;AAC3C,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,OAAO,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC;AAC1B,oBAAA,QAAQ,EAAE,CAAqG,mGAAA,CAAA;AAC/G,oBAAA,IAAI,EAAE,EAAE,KAAK,EAAE,eAAe,EAAE;AAChC,iBAAA;;;MCHY,yBAAyB,CAAA;AAJtC,IAAA,WAAA,GAAA;AAKS,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAO3C;IALA,IAAsC,UAAU,CAAC,QAAwB,EAAA;AACxE,QAAA,IAAI,QAAQ,KAAK,IAAI,EAAE;YACtB,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC;;;8GAL7B,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAzB,yBAAyB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,CAAA,kBAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAJrC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,oBAAoB;AAC9B,oBAAA,UAAU,EAAE,IAAI;AAChB,iBAAA;8BAIsC,UAAU,EAAA,CAAA;sBAA/C,KAAK;uBAAC,kBAAkB;;;MCIb,sBAAsB,CAAA;AAJnC,IAAA,WAAA,GAAA;AASU,QAAA,IAAA,CAAA,OAAO,GAAG,MAAM,CAAuD,WAAW,CAAC;AAS5F;AAPO,IAAA,OAAO,sBAAsB,CAA0B,IAAqD,EAAE,GAAY,EAAA;AAChI,QAAA,OAAO,IAAI;;IAGL,QAAQ,GAAA;AACd,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI;;8GAZhB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,EAAA,QAAA,CAAA,EAAA,QAAA,EAAA,CAAA,iBAAA,EAAA,UAAA,CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAJlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,iBAAiB;AAC3B,oBAAA,UAAU,EAAE,IAAI;AAChB,iBAAA;8BAE8B,MAAM,EAAA,CAAA;sBAAnC,KAAK;uBAAC,qBAAqB;gBAEF,QAAQ,EAAA,CAAA;sBAAjC,KAAK;uBAAC,iBAAiB;;;ACdzB;;AAEG;AACa,SAAA,cAAc,CAAY,OAAY,EAAE,QAA+B,EAAA;AACtF,IAAA,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE;AACrB,QAAA,OAAO,EAAE;;IAGV,MAAM,MAAM,GAAoC,EAAE;AAClD,IAAA,IAAI,KAA+B;AAEnC,IAAA,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE;AAC7B,QAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC;QACjC,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,GAAG,KAAK,QAAQ,EAAE;YACrC,IAAI,KAAK,EAAE;AACV,gBAAA,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;;AAEnB,YAAA,KAAK,GAAG,EAAE,GAAG,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,MAAM,CAAC,EAAE;;aACtC;AACN,YAAA,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC;;;IAI5B,IAAI,KAAK,EAAE;AACV,QAAA,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;;AAGnB,IAAA,OAAO,MAAM;AACd;MAMa,iBAAiB,CAAA;IAGtB,SAAS,CAAC,OAAgB,EAAE,QAA+B,EAAA;AACjE,QAAA,OAAO,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,cAAc,CAAC,OAAO,EAAE,QAAQ,CAAC,GAAG,cAAc,CAAC,CAAC,OAAO,CAAC,EAAE,QAAQ,CAAC,CAAC,CAAC,CAAC;;8GAJ/F,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,eAAA,EAAA,CAAA,CAAA;;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAJ7B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACL,oBAAA,IAAI,EAAE,eAAe;AACrB,oBAAA,UAAU,EAAE,IAAI;AAChB,iBAAA;;;MC3BY,uBAAuB,CAAA;AALpC,IAAA,WAAA,GAAA;QAQU,IAAgB,CAAA,gBAAA,GAAG,KAAK;AAEzB,QAAA,IAAA,CAAA,gBAAgB,GAAG,MAAM,CAAC,gBAAgB,CAAC;AAC3C,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;AAG3B,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAuDjD;AArDA,IAAA,WAAW,CAAC,OAAsB,EAAA;QACjC,IAAI,OAAO,CAAC,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE;YAC3D,IAAI,CAAC,cAAc,EAAE;;QAGtB,MAAM,MAAM,GAAG,IAAI,CAAC,eAAe,IAAI,IAAI,CAAC,YAAY;AAExD,QAAA,IAAI,OAAO,CAAC,gBAAgB,CAAC,KAAK,OAAO,CAAC,qBAAqB,CAAC,CAAC,YAAY,KAAK,IAAI,IAAI,OAAO,CAAC,qBAAqB,CAAC,CAAC,YAAY,KAAK,SAAS,IAAI,CAAC,MAAM,CAAC,EAAE;YAChK,MAAM,QAAQ,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC,YAA6B;YAC7E,IAAI,QAAQ,KAAK,IAAI,IAAI,QAAQ,KAAK,SAAS,EAAE;gBAChD,IAAI,CAAC,eAAe,EAAE;;;AAEjB,aAAA,IAAI,OAAO,CAAC,qBAAqB,CAAC,EAAE;YAC1C,IAAI,CAAC,cAAc,EAAE;;;IAIvB,WAAW,GAAA;AACV,QAAA,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE;;IAGrB,cAAc,GAAA;AACrB,QAAA,IAAI,CAAC,gBAAgB,CAAC,KAAK,EAAE;AAC7B,QAAA,IAAI,CAAC,eAAe,EAAE,OAAO,EAAE;AAC/B,QAAA,IAAI,CAAC,YAAY,EAAE,OAAO,EAAE;AAC5B,QAAA,IAAI,CAAC,eAAe,GAAG,SAAS;AAChC,QAAA,IAAI,CAAC,YAAY,GAAG,SAAS;;IAGtB,eAAe,GAAA;AACtB,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;YACzB;;AAGD,QAAA,IAAI,IAAI,CAAC,cAAc,YAAY,WAAW,EAAE;AAC/C,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,SAAS,EAAE,IAAI,CAAC,mBAAmB,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;;aACpJ;YACN,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC;YACzD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,gBAAgB,CAAC,eAAe,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC;;;IAIrG,cAAc,GAAA;AACrB,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;YACzB,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,mBAAmB;;AAC3D,aAAA,IAAI,IAAI,CAAC,YAAY,EAAE;YAC7B,IAAI,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,mBAAmB,CAAC;;;AAIpD,IAAA,OAAO,sBAAsB,CAAI,IAAgC,EAAE,GAAY,EAAA;AACrF,QAAA,OAAO,IAAI;;8GA9DA,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,EAFxB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,qBAAA,EAAA,gBAAA,EAAA,kBAAA,EAAA,EAAA,SAAA,EAAA,CAAC,oBAAoB,EAAE,CAAC,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAEvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBALnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,SAAS,EAAE,CAAC,oBAAoB,EAAE,CAAC;AACnC,iBAAA;8BAES,cAAc,EAAA,CAAA;sBAAtB;gBACQ,mBAAmB,EAAA,CAAA;sBAA3B;gBACQ,gBAAgB,EAAA,CAAA;sBAAxB;;;MCQW,SAAS,GAAG,IAAI,cAAc,CAAS,mBAAmB;MAC1D,YAAY,GAAG,IAAI,cAAc,CAA+B,eAAe;MAC/E,eAAe,GAAG,IAAI,cAAc,CAAS,iBAAiB;MAM9D,oCAAoC,GAAG,IAAI,cAAc,CAAkC,iCAAiC;MAMnH,mBAAmB,CAAA;8GAAnB,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAAnB,mBAAmB,EAAA,UAAA,EAH5B,MAAM,EACN,UAAA,EAAA,MAAM,IAAI,yBAAyB,EAAE,EAAA,CAAA,CAAA;;2FAE5B,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAJxC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACX,oBAAA,UAAU,EAAE,MAAM;AAClB,oBAAA,UAAU,EAAE,MAAM,IAAI,yBAAyB,EAAE;AACjD,iBAAA;;AAMD,MAAM,yBAAmC,SAAQ,mBAA4B,CAAA;AAC5E,IAAA,UAAU,CAAC,MAAe,EAAE,eAA0B,EAAE,cAAyC,EAAA;AAChG,QAAA,OAAO,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,cAAc,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;;IAG9D,eAAe,CAAC,OAAkB,EAAE,kBAA6B,EAAA;AAChE,QAAA,OAAO,CAAC,kBAAkB,CAAC,MAAM,IAAI,kBAAkB,CAAC,MAAM,KAAK,OAAO,CAAC,MAAM;;AAElF;;MCxCY,qBAAqB,GAAG,IAAI,cAAc,CAA0B,0BAA0B;;MCQ9F,sBAAsB,CAAA;AAGzB,IAAA,SAAS;AAoBlB,IAAA,WAAA,GAAA;AAtBS,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAA0B,UAAU,CAAC;AAExD,QAAA,IAAA,CAAA,SAAS,GAAG,MAAM,CAA6B,qBAAqB,CAAC;AAE9E,QAAA,IAAA,CAAA,EAAE,GAAG,MAAM,CAAS,EAAE,CAAC;AAEvB,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAS,EAAE,CAAC;AAE7B,QAAA,IAAA,CAAA,WAAW,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,EAAE,EAAE,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;AAE3D,QAAA,IAAA,CAAA,UAAU,GAAG,KAAK,CAAC,KAAK,CAAC;QAEzB,IAAM,CAAA,MAAA,GAAG,KAAK,EAAK;AAEnB,QAAA,IAAA,CAAA,aAAa,GAAG,MAAM,CAAC,KAAK,CAAC;QAE7B,IAAQ,CAAA,QAAA,GAAG,MAAM,EAAQ;AAOxB,QAAA,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,EAAE,IAAI,CAAC,CAAC;;IAGhE,WAAW,GAAA;QACV,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC,GAAG,KAAK,GAAG,KAAK,IAAI,CAAC,CAAC;;IAGnF,eAAe,GAAA;AACd,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,CAAC;;IAG7B,iBAAiB,GAAA;AAChB,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,KAAK,CAAC;;8GApClB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,4BAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,UAAA,EAAA,EAAA,SAAA,EAAA,eAAA,EAAA,oBAAA,EAAA,cAAA,EAAA,sBAAA,EAAA,iBAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAXlC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,4BAA4B;AACtC,oBAAA,QAAQ,EAAE,0BAA0B;AACpC,oBAAA,IAAI,EAAE;AACL,wBAAA,WAAW,EAAE,eAAe;AAC5B,wBAAA,sBAAsB,EAAE,cAAc;AACtC,wBAAA,wBAAwB,EAAE,iBAAiB;AAC3C,wBAAA,IAAI,EAAE,QAAQ;AACd,qBAAA;AACD,iBAAA;wDAsBA,QAAQ,EAAA,CAAA;sBADP;;;ACnCK,MAAMA,cAAY,GAAG;AAC3B,IAAA,EAAE,EAAE;AACH,QAAA,UAAU,EAAE,qCAAqC;AACjD,QAAA,YAAY,EAAE,wCAAwC;AACtD,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,UAAU,EAAE,4BAA4B;AACxC,QAAA,YAAY,EAAE,+BAA+B;AAC7C,KAAA;CACD;;ACLM,MAAM,sBAAsB,GAAG,IAAI,cAAc,CAAC,sBAAsB,EAAE;AAChF,IAAA,OAAO,EAAE,MAAM,oBAAoB;AACnC,CAAA,CAAC;AAOK,MAAM,oBAAoB,GAAmCA,cAAY;;ACkBzE,MAAM,yBAAyB,GAAG,EAAE;MAU9B,iBAAiB,CAAA;AAgC7B,IAAA,IAAI,EAAE,GAAA;QACL,MAAM,SAAS,GAAG,IAAI,CAAC,UAAU,EAAE,KAAK,SAAS,GAAG,CAAE,CAAA,GAAG,CAAA,OAAA,EAAU,IAAI,CAAC,UAAU,EAAE,CAAA,CAAE;AAEtF,QAAA,OAAO,CAAa,UAAA,EAAA,IAAI,CAAC,QAAQ,CAAG,EAAA,SAAS,CAAW,QAAA,EAAA,IAAI,CAAC,WAAW,EAAE,CAAA,CAAE;;AAM7E,IAAA,WAAA,GAAA;AAxCU,QAAA,IAAA,CAAA,cAAc,GAAG,MAAM,CAAC,sBAAsB,CAAC;AAC/C,QAAA,IAAA,CAAA,IAAI,GAAG,OAAO,CAAC,sBAAsB,CAAC;QAGzC,IAAkB,CAAA,kBAAA,GAAG,IAAI;QAQhC,IAAW,CAAA,WAAA,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;QAC3D,IAAU,CAAA,UAAA,GAAG,MAAM,EAAQ;QAC3B,IAAY,CAAA,YAAA,GAAG,MAAM,EAAQ;QAE7B,IAAU,CAAA,UAAA,GAAG,KAAK,EAAU;AAErB,QAAA,IAAA,CAAA,WAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAC,KAAsB,KAAK,CAAA,EAAG,KAAK,CAAE,CAAA,EAAE,CAAC;QAG1F,IAAqB,CAAA,qBAAA,GAA0B,EAAE;QAEjD,IAAqB,CAAA,qBAAA,GAAG,KAAK,EAAyB;AAK9C,QAAA,IAAA,CAAA,GAAG,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAS7B,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAA0B,UAAU,CAAC;AACxD,QAAA,IAAA,CAAA,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC;QAGrC,MAAM,CAAC,MAAK;AACX,YAAA,IAAI,IAAI,CAAC,cAAc,CAAC,aAAa,EAAE,EAAE;gBACxC,UAAU,CAAC,MAAK;oBACf,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,cAAc,CAAC,IAAI,CAAC,qBAAqB,CAAC;iBACxE,EAAE,yBAAyB,CAAC;;AAE/B,SAAC,CAAC;;IAGH,QAAQ,GAAA;QACP,IAAI,CAAC,cAAc,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;;IAGpC,WAAW,GAAA;AACV,QAAA,IAAI,CAAC,YAAY,EAAE,WAAW,EAAE;;IAGjC,eAAe,GAAA;QACd,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,UAAU,KAAI;AAC3G,YAAA,IAAI,CAAC,cAAc,CAAC,QAAQ,GAAG,UAAU;AACzC,YAAA,IAAI,CAAC,GAAG,CAAC,YAAY,EAAE;AACxB,SAAC,CAAC;;AAGH,IAAA,YAAY,CAAC,MAAa,EAAA;AACzB,QAAA,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE;YACjC,MAAM,CAAC,eAAe,EAAE;;;8GApEd,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAjB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,iBAAiB,EA0BlB,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,QAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,WAAA,EAAA,EAAA,iBAAA,EAAA,aAAA,EAAA,UAAA,EAAA,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,qBAAA,EAAA,EAAA,iBAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,uBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,qBAAA,EAAA,EAAA,iBAAA,EAAA,uBAAA,EAAA,UAAA,EAAA,uBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,YAAA,EAAA,cAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,kBAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,uBAAuB,EAAU,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA,iBAAiB,ECnE9D,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,i4HAgDA,EDTW,MAAA,EAAA,CAAA,yxPAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,uBAAuB,EAAE,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,qBAAA,EAAA,kBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,eAAe,EAAE,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,iBAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,iBAAiB,sDAAE,yBAAyB,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,qBAAA,EAAA,qBAAA,EAAA,mBAAA,EAAA,yBAAA,EAAA,mBAAA,EAAA,uBAAA,EAAA,iBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,CAAA,EAAA,eAAA,EAAA,EAAA,CAAA,uBAAA,CAAA,MAAA,EAAA,CAAA,CAAA;;2FAEpF,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAR7B,SAAS;AACC,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,kBAAkB,EAGX,eAAA,EAAA,uBAAuB,CAAC,MAAM,cACnC,IAAI,EAAA,OAAA,EACP,CAAC,uBAAuB,EAAE,eAAe,EAAE,iBAAiB,EAAE,yBAAyB,CAAC,EAAA,QAAA,EAAA,i4HAAA,EAAA,MAAA,EAAA,CAAA,yxPAAA,CAAA,EAAA;wDAO1F,kBAAkB,EAAA,CAAA;sBADxB,WAAW;uBAAC,kBAAkB;gBAIxB,SAAS,EAAA,CAAA;sBADf;gBAGQ,MAAM,EAAA,CAAA;sBAAd;gBACQ,QAAQ,EAAA,CAAA;sBAAhB;gBAWD,qBAAqB,EAAA,CAAA;sBADpB;gBAMO,aAAa,EAAA,CAAA;sBADpB,SAAS;uBAAC,uBAAuB,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,MAAM,EAAE,IAAI,EAAE;;;ME3DjE,iBAAiB,CAAA;IAC7B,IAA6B,MAAM,CAAC,MAAgD,EAAA;QACnF,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC;;AAGvC,IAAA,WAAA,CAA2B,WAAkD,EAAA;QAAlD,IAAW,CAAA,WAAA,GAAX,WAAW;;AAE/B,IAAA,OAAO,sBAAsB,CAAkB,IAAwC,EAAE,GAAY,EAAA;AAC3G,QAAA,OAAO,IAAI;;8GARA,iBAAiB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAJ7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,YAAY;AACtB,oBAAA,UAAU,EAAE,IAAI;AAChB,iBAAA;gFAE6B,MAAM,EAAA,CAAA;sBAAlC,KAAK;uBAAC,gBAAgB;;;ACTjB,MAAM,YAAY,GAAG;AAC3B,IAAA,EAAE,EAAE;AACH,QAAA,SAAS,EAAE,YAAY;AACvB,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,SAAS,EAAE,mBAAmB;AAC9B,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,SAAS,EAAE,oBAAoB;AAC/B,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,SAAS,EAAE,uBAAuB;AAClC,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,SAAS,EAAE,qBAAqB;AAChC,KAAA;AACD,IAAA,OAAO,EAAE;AACR,QAAA,SAAS,EAAE,qBAAqB;AAChC,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,SAAS,EAAE,mBAAmB;AAC9B,KAAA;AACD,IAAA,EAAE,EAAE;AACH,QAAA,SAAS,EAAE,iBAAiB;AAC5B,KAAA;CACD;;MCrBY,2BAA2B,GAAG,IAAI,cAAc,CAAC,0BAA0B,EAAE;AACzF,IAAA,OAAO,EAAE,MAAM,wBAAwB;AACvC,CAAA;AAMM,MAAM,wBAAwB,GAAqC;;ACsB7D,MAAA,+BAA+B,GAA8B,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,OAAO;AACrI,MAAA,0BAA0B,GAAiC,CAAC,MAAM,KAAK;MAG9D,uBAAuB,CAAA;IAyB5C,IACI,WAAW,CAAC,KAAa,EAAA;AAC5B,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;;IAG9B,IAEI,SAAS,CAAC,KAAc,EAAA;AAC3B,QAAA,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,KAAK,CAAC;;AAEhC,IAAA,IAAI,SAAS,GAAA;AACZ,QAAA,OAAO,IAAI,CAAC,UAAU,EAAE;;AAEzB,IAAA,UAAU;AACV,IAAA,2BAA2B;AAC3B,IAAA,eAAe;AACf,IAAA,iBAAiB;AAEjB,IAAA,IAAI,UAAU,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,UAAU,CAAC,QAAQ;;IAMhC,IACI,iBAAiB,CAAC,QAAqC,EAAA;AAC1D,QAAA,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC;;AAGvC,IAAA,IACc,eAAe,GAAA;AAC5B,QAAA,OAAO,IAAI,CAAC,QAAQ,EAAE;;AAGvB,IAAA,IACc,mBAAmB,GAAA;AAChC,QAAA,OAAO,IAAI,CAAC,IAAI,EAAE,MAAM,GAAG,CAAC;;AAK7B,IAAA,IAAW,WAAW,GAAA;AACrB,QAAA,OAAO,IAAI,CAAC,YAAY,CAAC,KAAK;;AAO/B,IAAA,IAAI,YAAY,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,mBAAmB,CAAC,EAAE;;IASnC,IAAa,OAAO,CAAC,KAAc,EAAA;AAClC,QAAA,IAAI,KAAK,KAAK,IAAI,CAAC,OAAO,EAAE;AAC3B,YAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;;;IAI3B,IAAa,OAAO,CAAC,OAA2B,EAAA;AAC/C,QAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC;AAC3B,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;;;YAGlB,UAAU,CAAC,MAAK;AACf,gBAAA,IAAI,CAAC,QAAQ,EAAE,cAAc,EAAE;AAC/B,gBAAA,IAAI,CAAC,gBAAgB,IAAI;AAC1B,aAAC,CAAC;;;AAUJ,IAAA,IACc,iBAAiB,GAAA;AAC9B,QAAA,OAAO,IAAI,CAAC,UAAU,EAAE;;AAqBzB,IAAA,IAAW,KAAK,GAAA;QACf,OAAO,IAAI,CAAC,MAAM;;IAGnB,IAAc,KAAK,CAAC,KAAa,EAAA;;AAEhC,QAAA,IAAI,CAAC,MAAM,GAAG,KAAK;AACnB,QAAA,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC;AAC3B,QAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE;;AAGtC,IAAA,IAAW,gBAAgB,GAAA;AAC1B,QAAA,OAAO,IAAI,CAAC,KAAK,GAAG,IAAI,GAAG,IAAI,CAAC,YAAY,CAAC,KAAK;;AAG5C,IAAA,WAAW,CAAC,IAAY,EAAE,aAAa,GAAG,KAAK,EAAA;AACrD,QAAA,IAAI,CAAC,IAAI,GAAG,IAAI;QAEhB,IAAI,CAAC,aAAa,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;AACxC,YAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC;;AACd,aAAA,IAAI,IAAI,CAAC,eAAe,KAAK,IAAI,EAAE;AACzC,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC;AAC1B,YAAA,IAAI,CAAC,eAAe,GAAG,IAAI;;;AAgC7B,IAAA,IAAW,QAAQ,GAAA;QAClB,OAAO,IAAI,CAAC,SAAS;;AAOtB,IAAA,WAAA,GAAA;AAjMU,QAAA,IAAA,CAAA,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC;QAC7C,IAAmB,CAAA,mBAAA,GAAgB,MAAM,CAAC,gBAAgB,CAAC,CAAC,mBAAmB,EAAE;AAEjF,QAAA,IAAA,CAAA,YAAY,GAA4B,MAAM,CAAC,YAAY,CAAC;AAC5D,QAAA,IAAA,CAAA,OAAO,GAAW,MAAM,CAAC,eAAe,CAAC;AAEzC,QAAA,IAAA,CAAA,QAAQ,GAAG,OAAO,CAAC,2BAA2B,CAAC;QAE/C,IAAc,CAAA,cAAA,GAAG,MAAM,CAAC,0BAA0B,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC;QAGvE,IAAc,CAAA,cAAA,GAAG,KAAK;AAQzB,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,eAAe,CAAC,EAAE,CAAC;AAEtC,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC;AAC7C,QAAA,IAAA,CAAA,kBAAkB,GAAG,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC;QAe7C,IAAU,CAAA,UAAA,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,eAAe,EAAE,IAAI,IAAI,CAAC,2BAA2B,EAAE,IAAI,IAAI,CAAC,iBAAiB,CAAC;AACnH,QAAA,IAAA,CAAA,2BAA2B,GAAG,MAAM,CAAiB,IAAI,CAAC;AAC1D,QAAA,IAAA,CAAA,eAAe,GAAG,MAAM,CAAiB,IAAI,CAAC;QAC9C,IAAiB,CAAA,iBAAA,GAAG,KAAK;AAOzB,QAAA,IAAA,CAAA,cAAc,GAAkB,IAAI,CAAC,QAAQ,CAAC,SAAS;AAuBhD,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC;AAEzC,QAAA,IAAA,CAAA,iBAAiB,GAAG,IAAI,eAAe,CAAC,EAAE,CAAC;AAOlD,QAAA,IAAA,CAAA,aAAa,GAAmB;AAC/B,YAAA,WAAW,EAAE,IAAI;AACjB,YAAA,aAAa,EAAE,kCAAkC;SACjD;QAoBQ,IAAc,CAAA,cAAA,GAA8B,+BAA+B;QAC3E,IAAS,CAAA,SAAA,GAAiC,0BAA0B;QAE7E,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC;AAC1D,QAAA,IAAA,CAAA,aAAa,GAAG,KAAK,CAAS,CAAC,CAAC;AAOhC,QAAA,IAAA,CAAA,SAAS,GAAG,KAAK,CAAwD,oCAAoC,CAAC;QAC9G,IAAQ,CAAA,QAAA,GAAG,KAAK,EAAqE;QACrF,IAAc,CAAA,cAAA,GAAG,KAAK,EAAiD;AAEvE,QAAA,IAAA,CAAA,YAAY,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,QAAQ,EAAE,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;AAKxD,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,YAAY,EAAU;AACvC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAQ;AACnC,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAQ;AACvC,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,YAAY,EAAU;AAEzC,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAS,IAAI,CAAC;AACzC,QAAA,IAAA,CAAA,iBAAiB,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC;QAC/D,IAAqB,CAAA,qBAAA,GAAG,QAAQ,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;AA8BzD,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,aAAa,CAAqB,CAAC,CAAC;AACnD,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC;QACrC,IAAI,CAAA,IAAA,GAAkB,IAAI;;QAE1B,IAAe,CAAA,eAAA,GAAW,EAAE;QAC5B,IAAK,CAAA,KAAA,GAAG,KAAK,CAAC,MAAM,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;AAE/D,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,eAAe,CAA8B,OAAO,CAAC;AAC9E,QAAA,IAAA,CAAA,uBAAuB,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CACrD,SAAS,CAAC,CAAC,QAAQ,KAAI;YACtB,QAAQ,QAAQ;AACf,gBAAA,KAAK,QAAQ;AACZ,oBAAA,OAAO,EAAE,CAAC,IAAI,CAAC;AAChB,gBAAA,KAAK,OAAO;AACX,oBAAA,OAAO,EAAE,CAAC,KAAK,CAAC;AACjB,gBAAA,KAAK,eAAe;AACnB,oBAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC;AAC7C,gBAAA,KAAK,mBAAmB;AACvB,oBAAA,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,CAAC;;SAE/C,CAAC,CACF;AAWS,QAAA,IAAA,CAAA,UAAU,GAAG,IAAI,OAAO,EAAQ;AAGzC,QAAA,IAAI,IAAI,CAAC,cAAc,EAAE;AACxB,YAAA,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,IAAI,CAAC;;;AAKzC,IAAA,gBAAgB,CAAC,MAAqB,EAAA;AACrC,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACtB,IAAI,CAAC,SAAS,EAAE;YAChB,MAAM,CAAC,eAAe,EAAE;YACxB,MAAM,CAAC,cAAc,EAAE;;;AAKzB,IAAA,mBAAmB,CAAC,MAAqB,EAAA;AACxC,QAAA,QAAQ,MAAM,CAAC,GAAG;AACjB,YAAA,KAAK,QAAQ;AACZ,gBAAA,IAAI,IAAI,CAAC,WAAW,EAAE;oBACrB,MAAM,CAAC,eAAe,EAAE;;AAEzB,gBAAA,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE;gBACtB;AACD,YAAA,KAAK,KAAK;;;AAGT,gBAAA,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE;gBACtB;AACD,YAAA,KAAK,OAAO;gBACX,IAAI,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,QAAQ,EAAE;oBACtC;;AAED,gBAAA,IAAI,IAAI,CAAC,WAAW,EAAE;;oBAErB,MAAM,CAAC,cAAc,EAAE;AACvB,oBAAA,IAAI,CAAC,QAAQ,CAAC,+BAA+B,EAAE;;qBACzC;AACN,oBAAA,IAAI,CAAC,QAAQ,EAAE,qBAAqB,CAAC,MAAM,CAAC;;gBAE7C;AACD,YAAA,KAAK,GAAG;AACR,YAAA,KAAK,WAAW;AAChB,YAAA,KAAK,SAAS;;gBAEb,IAAI,CAAC,IAAI,CAAC,IAAI,IAAI,MAAM,CAAC,GAAG,KAAK,GAAG,EAAE;oBACrC,MAAM,CAAC,cAAc,EAAE;;AAExB,gBAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AACrB,oBAAA,IAAI,CAAC,QAAQ,EAAE,qBAAqB,CAAC,MAAM,CAAC;;qBACtC;oBACN,IAAI,CAAC,SAAS,EAAE;;gBAEjB;AACD,YAAA;;AAEC,gBAAA,IAAI,IAAI,CAAC,WAAW,EAAE;AACrB,oBAAA,IAAI,CAAC,QAAQ,EAAE,qBAAqB,CAAC,MAAM,CAAC;;qBACtC,IAAI,MAAM,CAAC,GAAG,CAAC,MAAM,KAAK,CAAC,EAAE;AACnC,oBAAA,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC;;gBAE3B;;;AAIH,IAAA,gBAAgB,CAAC,QAAiC,EAAA;AACjD,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;;AAGzB,IAAA,iBAAiB,CAAC,SAAqB,EAAA;AACtC,QAAA,IAAI,CAAC,SAAS,GAAG,SAAS;;AAG3B,IAAA,gBAAgB,CAAC,UAAmB,EAAA;AACnC,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC;AAC/B,QAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE;;IAGtC,WAAW,GAAA;QACV,IAAI,CAAC,UAAU,EAAE;AACjB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;AACtB,QAAA,IAAI,CAAC,UAAU,CAAC,QAAQ,EAAE;;IAG3B,QAAQ,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;YACtB,IAAI,CAAC,YAAY,CAAC,EAAE,GAAG,IAAI,CAAC,OAAO;;;AAIrC,IAAA,UAAU,CAAC,KAAa,EAAA;QACvB,IAAI,KAAK,EAAE;YACV,KAAK,CAAC,eAAe,EAAE;;AAExB,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,IAAI,CAAC;AAC5B,QAAA,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,KAAK,EAAE;;IAG3C,SAAS,CAAC,OAAe,EAAE,EAAA;AAC1B,QAAA,IAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;YACpE;;QAGD,IAAI,CAAC,UAAU,EAAE;AAEjB;;;;;;;;AAQG;QACH,UAAU,CAAC,MAAK;AACf,YAAA,IAAI,IAAI,CAAC,WAAW,EAAE;gBACrB;;AAGD,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;AAE5B,YAAA,IAAI,IAAI,CAAC,UAAU,EAAE;AACpB,gBAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC;;AAGvB,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,EAAE;YACrC,IAAI,CAAC,yBAAyB,EAAE;AACjC,SAAC,CAAC;;IAGH,aAAa,GAAA;QACZ,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AAC9B,QAAA,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE;;IAKb,yBAAyB,GAAA;AAClC,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YACnB;;AAGD,QAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAExE,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAC/E,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;QAEvF,IAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,SAAS,CAAC,CAAC,QAAQ,KAAI;AAC1D,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,CAAC;AACrC,YAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE;AACtC,SAAC,CAAC;AACF,QAAA,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,IAAI,CAAC,UAAU,EAAE,CAAC;;IAGxD,UAAU,GAAA;AACT,QAAA,IAAI,IAAI,CAAC,eAAe,EAAE;AACzB,YAAA,IAAI,CAAC,eAAe,CAAC,aAAa,CAAC,KAAK,EAAE;;;IAIlC,SAAS,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,IAAI,EAAE;AACd,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI;AAChB,YAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE;;;IAIhC,UAAU,GAAA;AAChB,QAAA,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE;YACtB;;QAED,IAAI,CAAC,SAAS,EAAE;AAChB,QAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,EAAE,CAAC;AAC/B,QAAA,IAAI,CAAC,iBAAiB,CAAC,YAAY,EAAE;AACrC,QAAA,IAAI,CAAC,SAAS,IAAI;AAClB,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,EAAE;AACzB,YAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;AAC7B,YAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;AACrB,YAAA,IAAI,CAAC,SAAS,GAAG,SAAS;YAC1B,IAAI,CAAC,UAAU,EAAE;;AAElB,QAAA,IAAI,CAAC,YAAY,IAAI;;AAGf,IAAA,UAAU,CAAC,KAAa,EAAA;AAC9B,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;;IAGZ,WAAW,CAAC,KAAa,EAAE,aAAa,GAAG,KAAK,EAAE,OAAO,GAAG,KAAK,EAAA;AACvE,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK;QAClB,IAAI,CAAC,OAAO,EAAE;YACb,IAAI,CAAC,SAAS,EAAE;AAChB,YAAA,IAAI,CAAC,WAAW,CAAC,EAAE,EAAE,aAAa,CAAC;;AAEpC,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACtB,QAAA,IAAI,CAAC,SAAS,IAAI;;;AAInB,IAAA,YAAY,CAAC,WAA+B,EAAA;QAC3C,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;;;IAItE,oBAAoB,GAAA;QACnB,IAAI,CAAC,UAAU,EAAE;;AAGlB,IAAA,8BAA8B,CAAC,OAAmB,EAAA;AACjD,QAAA,IAAI,CAAC,YAAY,GAAG,OAAO;;AAG5B,IAAA,gCAAgC,CAAC,gBAA4B,EAAA;AAC5D,QAAA,IAAI,CAAC,gBAAgB,GAAG,gBAAgB;;IAGzC,oBAAoB,GAAA;AACnB,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI;AAC1B,QAAA,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC,IAAI,CAAC;QAC1C,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,YAAY,CAAC;QAClD,IAAI,CAAC,yBAAyB,EAAE;;IAGjC,kBAAkB,GAAA;AACjB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC;;IAG7B,kBAAkB,GAAA;AACjB,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC;;8GAtaT,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAvB,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,uBAAuB,wSA8BxB,gBAAgB,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,iBAAA,EAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,UAAA,EAAA,mBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,OAAA,EAAA,EAAA,iBAAA,EAAA,SAAA,EAAA,UAAA,EAAA,SAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,KAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,aAAA,EAAA,EAAA,iBAAA,EAAA,eAAA,EAAA,UAAA,EAAA,eAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,iBAAA,EAAA,WAAA,EAAA,UAAA,EAAA,WAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,QAAA,EAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,cAAA,EAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAAA,SAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,sBAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,UAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,OAAA,EAAA,0BAAA,EAAA,SAAA,EAAA,6BAAA,EAAA,EAAA,UAAA,EAAA,EAAA,oBAAA,EAAA,gBAAA,EAAA,mBAAA,EAAA,sBAAA,EAAA,uBAAA,EAAA,0BAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,cAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FA9Bf,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAD5C;wDAmBQ,eAAe,EAAA,CAAA;sBADtB,SAAS;uBAAC,cAAc;gBASrB,WAAW,EAAA,CAAA;sBADd;gBAOG,SAAS,EAAA,CAAA;sBAFZ,KAAK;uBAAC,EAAE,SAAS,EAAE,gBAAgB,EAAE;;sBACrC,WAAW;uBAAC,oBAAoB;gBAiBjC,cAAc,EAAA,CAAA;sBADb;gBAIG,iBAAiB,EAAA,CAAA;sBADpB;gBAMa,eAAe,EAAA,CAAA;sBAD5B,WAAW;uBAAC,mBAAmB;gBAMlB,mBAAmB,EAAA,CAAA;sBADhC,WAAW;uBAAC,uBAAuB;gBAoBpC,aAAa,EAAA,CAAA;sBADZ;gBAMY,OAAO,EAAA,CAAA;sBAAnB;gBAMY,OAAO,EAAA,CAAA;sBAAnB;gBAYQ,cAAc,EAAA,CAAA;sBAAtB;gBACQ,SAAS,EAAA,CAAA;sBAAjB;gBAMa,iBAAiB,EAAA,CAAA;sBAD9B,WAAW;uBAAC,sBAAsB;gBAczB,UAAU,EAAA,CAAA;sBAAnB;gBACS,QAAQ,EAAA,CAAA;sBAAjB;gBACS,YAAY,EAAA,CAAA;sBAArB;gBACS,SAAS,EAAA,CAAA;sBAAlB;gBA2ED,gBAAgB,EAAA,CAAA;sBADf,YAAY;uBAAC,OAAO,EAAE,CAAC,QAAQ,CAAC;gBAUjC,mBAAmB,EAAA,CAAA;sBADlB,YAAY;uBAAC,SAAS,EAAE,CAAC,QAAQ,CAAC;;;ACnPpC,IAAI,QAAQ,GAAG,CAAC;AAEhB,SAAS,eAAe,GAAA;IACvB,OAAO,QAAQ,EAAE;AAClB;AAEA,SAAS,kBAAkB,GAAA;AAC1B,IAAA,MAAM,UAAU,GAAG,MAAM,CAA0B,UAAU,CAAC;IAE9D,SAAS,QAAQ,CAAC,IAAiB,EAAA;AAClC,QAAA,IAAI,IAAI,YAAY,gBAAgB,EAAE;AACrC,YAAA,OAAO,IAAI;;AAGZ,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AACxB,YAAA,OAAO,SAAS;;AAGjB,QAAA,OAAO,QAAQ,CAAC,IAAI,CAAC,aAAa,CAAC;;AAGpC,IAAA,OAAO,QAAQ,CAAC,UAAU,CAAC,aAAa,CAAC;AAC1C;AAEA,SAAS,oBAAoB,GAAA;AAC5B,IAAA,OAAO,MAAM,CAAC,YAAY,CAAC,EAAE,EAAE,IAAI,CAAA,gBAAA,EAAmB,MAAM,CAAC,SAAS,CAAC,EAAE;AAC1E;SAEgB,2BAA2B,GAAA;IAC1C,OAAO;AACN,QAAA,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,eAAe,EAAE;AACnD,QAAA,EAAE,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,kBAAkB,EAAE;AACzD,QAAA,EAAE,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,oBAAoB,EAAE;KAC9D;AACF;SAEgB,2BAA2B,CAAC,UAAsB,EAAE,aAAqB,EAAE,QAAgB,EAAA;IAC1G,MAAM,4BAA4B,GAAG,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,aAAa;IAC7F,IAAI,4BAA4B,IAAI,4BAA4B,CAAC,SAAS,CAAC,QAAQ,CAAC,uBAAuB,CAAC,EAAE;AAC7G,QAAA,4BAA4B,CAAC,YAAY,CAAC,iBAAiB,EAAE,aAAa,CAAC;AAC3E,QAAA,4BAA4B,CAAC,EAAE,GAAG,CAA+B,4BAAA,EAAA,QAAQ,EAAE;;AAE7E;;MC9Ba,+BAA+B,CAAA;AAZ5C,IAAA,WAAA,GAAA;QAaC,IAAU,CAAA,UAAA,GAAG,KAAK,CAAC,QAAQ,CAAS,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC;AAE5D,QAAA,IAAA,CAAA,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,UAAU,CAAC;AAC3C;8GAJY,+BAA+B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA/B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,+BAA+B,EAPhC,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,0DAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,UAAA,EAAA,YAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,SAAA,EAAA;AACV,YAAA;AACC,gBAAA,OAAO,EAAE,oCAAoC;AAC7C,gBAAA,WAAW,EAAE,UAAU,CAAC,MAAM,+BAA+B,CAAC;AAC9D,aAAA;AACD,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAEW,+BAA+B,EAAA,UAAA,EAAA,CAAA;kBAZ3C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;;AAGV,oBAAA,QAAQ,EAAE,0DAA0D;AACpE,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,SAAS,EAAE;AACV,wBAAA;AACC,4BAAA,OAAO,EAAE,oCAAoC;AAC7C,4BAAA,WAAW,EAAE,UAAU,CAAC,qCAAqC,CAAC;AAC9D,yBAAA;AACD,qBAAA;AACD,iBAAA;;;MCPY,eAAe,CAAA;IAC3B,SAAS,CAAC,KAAU,EAAE,aAA4C,EAAA;AACjE,QAAA,OAAO,aAAa,CAAC,aAAa,CAAC,KAAK,CAAC;;8GAF9B,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAAf,eAAe,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,eAAA,EAAA,CAAA,CAAA;;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAJ3B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACL,oBAAA,IAAI,EAAE,eAAe;AACrB,oBAAA,IAAI,EAAE,IAAI;AACV,iBAAA;;;MCCY,2BAA2B,CAAA;AACvC,IAAA,WAAA,GAAA;QACC,MAAM,CAAC,uBAAuB,CAAC,CAAC,UAAU,CAAC,QAAQ,EAAE;;8GAF1C,2BAA2B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAA3B,2BAA2B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kDAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAA3B,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBALvC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;;AAEV,oBAAA,QAAQ,EAAE,kDAAkD;AAC5D,oBAAA,UAAU,EAAE,IAAI;AAChB,iBAAA;;;MCSY,oBAAoB,CAAA;AAChC,IAAA,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;AAChC,IAAA,cAAc;IACd,iBAAiB,GAAG,KAAK;AACzB,IAAA,QAAQ;AACR,IAAA,SAAS,GAAG,MAAM,CAAC,QAAQ,CAAC;AAE5B,IAAA,UAAU;AAEV,IAAA,IAAI,CAAC,OAAuC,EAAA;AAC3C,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO;AACvB,QAAA,IAAI,CAAC,UAAU,GAAG,QAAQ,CAAC,MAAK;AAC/B,YAAA,OAAO,CAAC,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAI;AAC7C,gBAAA,MAAM,UAAU,GAAG,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC,uBAAuB,CAAC,CAAC,CAAC,UAAU,CAAC,aAAa,CAAC;AACjG,gBAAA,IAAI,UAAU,GAAG,IAAI,CAAC,2BAA2B,EAAE;oBAClD,OAAO,CAAC,CAAC;;AAEV,gBAAA,IAAI,UAAU,GAAG,IAAI,CAAC,2BAA2B,EAAE;AAClD,oBAAA,OAAO,CAAC;;AAET,gBAAA,OAAO,CAAC;AACT,aAAC,CAAC;AACH,SAAC,CAAC;AACF,QAAA,IAAI,CAAC,cAAc,GAAG,IAAI,0BAA0B,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,cAAc,EAAE;AACtG,QAAA,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,WAAW,CAAC;AACzC,QAAA,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC;AAChC,QAAA,IAAI,CAAC,0BAA0B,CAAC,OAAO,CAAC,sBAAsB,CAAC;AAC/D,QAAA,IAAI,CAAC,cAAc,CAAC,kBAAkB,EAAE;;AAGzC,IAAA,SAAS,CAAC,KAAoB,EAAA;AAC7B,QAAA,IAAI,CAAC,cAAc,EAAE,SAAS,CAAC,KAAK,CAAC;;AAGtC,IAAA,IAAI,UAAU,GAAA;AACb,QAAA,OAAO,IAAI,CAAC,cAAc,EAAE,UAAU;;AAGvC,IAAA,IAAI,eAAe,GAAA;QAClB,OAAO,IAAI,CAAC,cAAc,EAAE,eAAe,IAAI,CAAC,CAAC;;AAGlD,IAAA,aAAa,CAAC,KAAa,EAAA;AAC1B,QAAA,IAAI,CAAC,cAAc,EAAE,aAAa,CAAC,KAAK,CAAC;;AAG1C,IAAA,eAAe,CAAC,MAAS,EAAA;AACxB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;YACnB;;QAGD,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,GAAG,IAAI,CAAC,QAAQ;QAElD;aACE,IAAI,CACJ,SAAS,CAAC,cAAc,CAAC,EACzB,GAAG,CAAC,CAAC,OAAO,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,cAAc,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,EACrE,MAAM,CAAC,CAAC,KAAK,KAAK,KAAK,KAAK,CAAC,CAAC,CAAC,EAC/B,IAAI,CAAC,CAAC,CAAC,EACP,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;AAEpC,aAAA,SAAS,CAAC,CAAC,aAAa,KAAK,IAAI,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;;AAGlE,IAAA,eAAe,CAAC,WAA+B,EAAA;AAC9C,QAAA,WAAW,CAAC,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,SAAS,CAAC,MAAK;AACrE,YAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI;AAC9B,SAAC,CAAC;;AAGH,IAAA,0BAA0B,CAAC,sBAA4C,EAAA;QACtE,IAAI,CAAC,cAAc,CAAC;aAClB,IAAI,CACJ,GAAG,CAAC,MAAM,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE,WAAW,EAAE,CAAC,EACxD,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;AAEpC,aAAA,SAAS,CAAC,CAAC,gBAAgB,KAAK,sBAAsB,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;;AAGjF;;;;;AAKG;IACH,kBAAkB,CAAC,EAAE,QAAQ,EAAkC,EAAA;QAC9D;AACE,aAAA,IAAI,CACJ,YAAY,CAAC,CAAC,CAAC;AACf,QAAA,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;aAEpC,SAAS,CAAC,MAAK;YACf,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC,MAAM,KAAK,CAAC,EAAE;gBACnC,IAAI,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;;AAC/B,iBAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE;AAClC,gBAAA,IAAI,CAAC,iBAAiB,GAAG,KAAK;AAC9B,gBAAA,IAAI,CAAC,cAAc,CAAC,kBAAkB,EAAE;;AAClC,iBAAA,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,EAAE;AAC3C,gBAAA,IAAI,CAAC,cAAc,CAAC,kBAAkB,EAAE;;AAE1C,SAAC,CAAC;;8GApGQ,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kHAApB,oBAAoB,EAAA,CAAA,CAAA;;2FAApB,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBADhC;;;MCRY,gCAAgC,CAAA;AAK5C,IAAA,WAAA,GAAA;AAJS,QAAA,IAAA,CAAA,WAAW,GAAG,MAAM,CAAoB,WAAW,CAAC;QAEpD,IAAM,CAAA,MAAA,GAAG,KAAK,CAAC,QAAQ,CAA0F,EAAE,KAAK,EAAE,qBAAqB,EAAE,CAAC;QAG1J,MAAM,CAAC,MAAK;AACX,YAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE;AAC5B,YAAA,SAAS,CAAC,MAAM,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;AAC7D,SAAC,CAAC;;AAGI,IAAA,OAAO,sBAAsB,CAAC,IAAsC,EAAE,GAAY,EAAA;AACxF,QAAA,OAAO,IAAI;;8GAbA,gCAAgC,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAhC,gCAAgC,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,IAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAhC,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAJ5C,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,QAAQ,EAAE,uBAAuB;AACjC,oBAAA,UAAU,EAAE,IAAI;AAChB,iBAAA;;;MCHqB,gBAAgB,CAAA;AAAtC,IAAA,WAAA,GAAA;AACC,QAAA,IAAA,CAAA,MAAM,GAAG,IAAI,YAAY,EAAQ;AACjC,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAQ;AACvC,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAQ;AACnC,QAAA,IAAA,CAAA,YAAY,GAAG,IAAI,YAAY,EAAU;AACzC,QAAA,IAAA,CAAA,WAAW,GAAG,IAAI,YAAY,EAAU;AACxC,QAAA,IAAA,CAAA,qBAAqB,GAAG,IAAI,YAAY,EAAU;;IAWlD,KAAK,GAAA;AACJ,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE;AAClB,QAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;AACtB,QAAA,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;AACxB,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE;AAC5B,QAAA,IAAI,CAAC,YAAY,CAAC,QAAQ,EAAE;AAC5B,QAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;AACzB,QAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE;AAC3B,QAAA,IAAI,CAAC,qBAAqB,CAAC,QAAQ,EAAE;;AAEtC;;AC1BD;;;AAGG;AACG,SAAU,wBAAwB,CAAC,WAAoB,EAAE,WAA+B,EAAE,QAAwC,EAAE,UAAU,GAAG,IAAI,EAAA;IAC1J,IAAI,WAAW,EAAE;QAChB,MAAM,yBAAyB,GAAG,CAAC,OAAgB,KAClD,QAAQ,CAAC,IAAI,CACZ,IAAI,CAAC,CAAC,CAAC,EACP,IAAI,CAAC,CAAC,CAAC,EACP,GAAG,CAAC,OAA8B,OAAO,GAAG,QAAQ,GAAG,cAAc,CAAC,CAAC,EACvE,SAAS,CAAC,cAAuD,CAAC,CAClE;AACF,QAAA,OAAO;cACJ,WAAW,CAAC,IAAI,CAChB,GAAG,CAAC,CAAC,IAAI,KAAK,CAAC,CAAC,IAAI,CAAC,EACrB,oBAAoB,EAAE,EACtB,SAAS,CAAC,yBAAyB,CAAC;AAEtC,cAAE,yBAAyB,CAAC,KAAK,CAAC;;AAEpC,IAAA,OAAO,EAAE,CAAwB,MAAM,CAAC;AACzC;;MC1Ba,oBAAoB,GAAG,CAAC,IAAY,EAAE,SAAiB,KAAa,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,SAAS;;MCOlG,sBAAsB,CAAA;AAClC,IAAA,kBAAkB,GAAG,MAAM,CAAyB,mBAAmB,CAAC;AAExE,IAAA,SAAS,CAAC,MAAS,EAAE,QAA6B,EAAE,eAAoB,EAAA;AACvE,QAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,UAAU,CAAC,MAAM,EAAE,eAAe,EAAE,QAAQ,CAAC;;8GAJjE,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;4GAAtB,sBAAsB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,oBAAA,EAAA,CAAA,CAAA;;2FAAtB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAJlC,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACL,oBAAA,IAAI,EAAE,oBAAoB;AAC1B,oBAAA,UAAU,EAAE,IAAI;AAChB,iBAAA;;;ACND;;AAEG;;;;"}
|
|
@@ -278,7 +278,7 @@ class FramedInputComponent {
|
|
|
278
278
|
provide: FRAMED_INPUT_INSTANCE,
|
|
279
279
|
useExisting: forwardRef(() => FramedInputComponent),
|
|
280
280
|
},
|
|
281
|
-
], ngImport: i0, template: "<div class=\"inputFramed\">\n\t<div class=\"inputFramed-header\">\n\t\t<div class=\"form-field inputFramed-header-field\">\n\t\t\t<ng-content />\n\t\t</div>\n\t\t<div class=\"inputFramed-header-illustration\"><ng-content select=\"[illustration]\" /></div>\n\t\t<div class=\"inputFramed-header-info\"><ng-content select=\"[info]\" /></div>\n\t</div>\n\t@if (framedPortal()) {\n\t\t<div class=\"inputFramed-content\"><ng-container *luPortal=\"framedPortal()\" /></div>\n\t}\n</div>\n", styles: [""], dependencies: [{ kind: "directive", type: PortalDirective, selector: "[luPortal]", inputs: ["luPortal", "luPortalContext"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
281
|
+
], ngImport: i0, template: "<div class=\"inputFramed\">\n\t<div class=\"inputFramed-header\">\n\t\t<div class=\"form-field inputFramed-header-field\">\n\t\t\t<ng-content />\n\t\t</div>\n\t\t<div class=\"inputFramed-header-illustration\"><ng-content select=\"[illustration]\" /></div>\n\t\t<div class=\"inputFramed-header-info\"><ng-content select=\"[info]\" /></div>\n\t</div>\n\t@if (framedPortal()) {\n\t\t<div class=\"inputFramed-content\"><ng-container *luPortal=\"framedPortal()\" /></div>\n\t}\n</div>\n", styles: [".inputFramed{--components-inputFramed-content-display: none;--components-inputFramed-borderColor: var(--palettes-neutral-300);--components-inputFramed-header-info-borderColor: var(--palettes-neutral-200);--components-inputFramed-padding: var(--pr-t-spacings-150);--components-inputFramed-header-backgroundColor: transparent;--components-inputFramed-header-info-color: inherit;position:relative;overflow:hidden;padding:var(--pr-t-spacings-50);border:solid 1px var(--components-inputFramed-borderColor);border-radius:var(--pr-t-border-radius-default);background-color:var(--palettes-neutral-0);transition-property:box-shadow,border-color;transition-duration:var(--commons-animations-durations-fast);block-size:100%;display:flex;flex-direction:column}.inputFramed-header-label.formLabel{position:static;font-weight:600}.inputFramed-header-label.formLabel:after{content:\"\";position:absolute;inset:calc(var(--pr-t-spacings-50) * -1)}.inputFramed-header-field.form-field.form-field{position:static;margin-block:0}.inputFramed-header-input.radioField-input~.inputFramed-header-icon.radioField-icon:after,.inputFramed-header-input.radioField-input~.inputFramed-header-icon.checkboxField-icon:after,.inputFramed-header-input.checkboxField-input~.inputFramed-header-icon.radioField-icon:after,.inputFramed-header-input.checkboxField-input~.inputFramed-header-icon.checkboxField-icon:after{outline:none}.inputFramed-header{padding:var(--components-inputFramed-padding);border-radius:var(--pr-t-border-radius-50);background-color:var(--components-inputFramed-header-backgroundColor);transition-property:background-color;transition-duration:var(--commons-animations-durations-fast);position:relative;flex-grow:1;display:flex;flex-wrap:wrap;justify-content:space-between;align-content:flex-start;gap:var(--pr-t-spacings-100)}.inputFramed-header-illustration:empty{display:none}.inputFramed-header-info{flex-basis:100%;border-block-start:1px solid var(--components-inputFramed-header-info-borderColor);margin-block-start:var(--pr-t-spacings-100);padding-block-start:var(--pr-t-spacings-200);color:var(--components-inputFramed-header-info-color)}.inputFramed-header-info:empty{display:none}.inputFramed-content{display:var(--components-inputFramed-content-display);padding:var(--components-inputFramed-padding);margin-block-start:var(--pr-t-spacings-50)}.inputFramed:hover{--components-inputFramed-borderColor: var(--pr-t-color-input-border-hover)}.inputFramed:has(.inputFramed-header-input:checked){--components-inputFramed-content-display: block;--components-inputFramed-header-backgroundColor: var(--palettes-product-50);--components-inputFramed-borderColor: var(--pr-t-color-input-border-checked);--components-inputFramed-header-info-borderColor: var(--pr-t-color-input-border-checked)}.inputFramed:has(.inputFramed-header-input:checked):hover{--components-inputFramed-borderColor: var(--pr-t-color-input-border-checked-hover)}.inputFramed:has(.inputFramed-header-input:focus-visible){outline:2px solid var(--palettes-product-700);outline-offset:2px}.inputFramed:has(.inputFramed-header-input[aria-invalid=true]){--components-inputFramed-borderColor: var(--pr-t-color-input-border-critical)}.inputFramed:has(.inputFramed-header-input[aria-invalid=true]):hover{--components-inputFramed-borderColor: var(--pr-t-color-input-border-critical-hover)}.inputFramed:has(.inputFramed-header-input:disabled),.inputFramed:has(.inputFramed-header-input:disabled):hover{--components-inputFramed-header-backgroundColor: var(--palettes-neutral-25);--components-inputFramed-header-borderColor: var(--palettes-neutral-50);--components-inputFramed-borderColor: var(--palettes-neutral-300);--components-inputFramed-header-info-color: var(--pr-t-color-input-text-disabled)}.inputFramedWrapper{--components-inputFramed-content-display: none;--components-inputFramed-borderColor: var(--palettes-neutral-300);--components-inputFramed-header-info-borderColor: var(--palettes-neutral-200);--components-inputFramed-padding: var(--pr-t-spacings-150);--components-inputFramed-header-backgroundColor: transparent;--components-inputFramed-header-info-color: inherit;display:flex;flex-direction:column;gap:var(--pr-t-spacings-150);margin-block:var(--pr-t-spacings-50)}\n"], dependencies: [{ kind: "directive", type: PortalDirective, selector: "[luPortal]", inputs: ["luPortal", "luPortalContext"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
282
282
|
}
|
|
283
283
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImport: i0, type: FramedInputComponent, decorators: [{
|
|
284
284
|
type: Component,
|
|
@@ -287,7 +287,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.0.2", ngImpor
|
|
|
287
287
|
provide: FRAMED_INPUT_INSTANCE,
|
|
288
288
|
useExisting: forwardRef(() => FramedInputComponent),
|
|
289
289
|
},
|
|
290
|
-
], template: "<div class=\"inputFramed\">\n\t<div class=\"inputFramed-header\">\n\t\t<div class=\"form-field inputFramed-header-field\">\n\t\t\t<ng-content />\n\t\t</div>\n\t\t<div class=\"inputFramed-header-illustration\"><ng-content select=\"[illustration]\" /></div>\n\t\t<div class=\"inputFramed-header-info\"><ng-content select=\"[info]\" /></div>\n\t</div>\n\t@if (framedPortal()) {\n\t\t<div class=\"inputFramed-content\"><ng-container *luPortal=\"framedPortal()\" /></div>\n\t}\n</div>\n" }]
|
|
290
|
+
], template: "<div class=\"inputFramed\">\n\t<div class=\"inputFramed-header\">\n\t\t<div class=\"form-field inputFramed-header-field\">\n\t\t\t<ng-content />\n\t\t</div>\n\t\t<div class=\"inputFramed-header-illustration\"><ng-content select=\"[illustration]\" /></div>\n\t\t<div class=\"inputFramed-header-info\"><ng-content select=\"[info]\" /></div>\n\t</div>\n\t@if (framedPortal()) {\n\t\t<div class=\"inputFramed-content\"><ng-container *luPortal=\"framedPortal()\" /></div>\n\t}\n</div>\n", styles: [".inputFramed{--components-inputFramed-content-display: none;--components-inputFramed-borderColor: var(--palettes-neutral-300);--components-inputFramed-header-info-borderColor: var(--palettes-neutral-200);--components-inputFramed-padding: var(--pr-t-spacings-150);--components-inputFramed-header-backgroundColor: transparent;--components-inputFramed-header-info-color: inherit;position:relative;overflow:hidden;padding:var(--pr-t-spacings-50);border:solid 1px var(--components-inputFramed-borderColor);border-radius:var(--pr-t-border-radius-default);background-color:var(--palettes-neutral-0);transition-property:box-shadow,border-color;transition-duration:var(--commons-animations-durations-fast);block-size:100%;display:flex;flex-direction:column}.inputFramed-header-label.formLabel{position:static;font-weight:600}.inputFramed-header-label.formLabel:after{content:\"\";position:absolute;inset:calc(var(--pr-t-spacings-50) * -1)}.inputFramed-header-field.form-field.form-field{position:static;margin-block:0}.inputFramed-header-input.radioField-input~.inputFramed-header-icon.radioField-icon:after,.inputFramed-header-input.radioField-input~.inputFramed-header-icon.checkboxField-icon:after,.inputFramed-header-input.checkboxField-input~.inputFramed-header-icon.radioField-icon:after,.inputFramed-header-input.checkboxField-input~.inputFramed-header-icon.checkboxField-icon:after{outline:none}.inputFramed-header{padding:var(--components-inputFramed-padding);border-radius:var(--pr-t-border-radius-50);background-color:var(--components-inputFramed-header-backgroundColor);transition-property:background-color;transition-duration:var(--commons-animations-durations-fast);position:relative;flex-grow:1;display:flex;flex-wrap:wrap;justify-content:space-between;align-content:flex-start;gap:var(--pr-t-spacings-100)}.inputFramed-header-illustration:empty{display:none}.inputFramed-header-info{flex-basis:100%;border-block-start:1px solid var(--components-inputFramed-header-info-borderColor);margin-block-start:var(--pr-t-spacings-100);padding-block-start:var(--pr-t-spacings-200);color:var(--components-inputFramed-header-info-color)}.inputFramed-header-info:empty{display:none}.inputFramed-content{display:var(--components-inputFramed-content-display);padding:var(--components-inputFramed-padding);margin-block-start:var(--pr-t-spacings-50)}.inputFramed:hover{--components-inputFramed-borderColor: var(--pr-t-color-input-border-hover)}.inputFramed:has(.inputFramed-header-input:checked){--components-inputFramed-content-display: block;--components-inputFramed-header-backgroundColor: var(--palettes-product-50);--components-inputFramed-borderColor: var(--pr-t-color-input-border-checked);--components-inputFramed-header-info-borderColor: var(--pr-t-color-input-border-checked)}.inputFramed:has(.inputFramed-header-input:checked):hover{--components-inputFramed-borderColor: var(--pr-t-color-input-border-checked-hover)}.inputFramed:has(.inputFramed-header-input:focus-visible){outline:2px solid var(--palettes-product-700);outline-offset:2px}.inputFramed:has(.inputFramed-header-input[aria-invalid=true]){--components-inputFramed-borderColor: var(--pr-t-color-input-border-critical)}.inputFramed:has(.inputFramed-header-input[aria-invalid=true]):hover{--components-inputFramed-borderColor: var(--pr-t-color-input-border-critical-hover)}.inputFramed:has(.inputFramed-header-input:disabled),.inputFramed:has(.inputFramed-header-input:disabled):hover{--components-inputFramed-header-backgroundColor: var(--palettes-neutral-25);--components-inputFramed-header-borderColor: var(--palettes-neutral-50);--components-inputFramed-borderColor: var(--palettes-neutral-300);--components-inputFramed-header-info-color: var(--pr-t-color-input-text-disabled)}.inputFramedWrapper{--components-inputFramed-content-display: none;--components-inputFramed-borderColor: var(--palettes-neutral-300);--components-inputFramed-header-info-borderColor: var(--palettes-neutral-200);--components-inputFramed-padding: var(--pr-t-spacings-150);--components-inputFramed-header-backgroundColor: transparent;--components-inputFramed-header-info-color: inherit;display:flex;flex-direction:column;gap:var(--pr-t-spacings-150);margin-block:var(--pr-t-spacings-50)}\n"] }]
|
|
291
291
|
}] });
|
|
292
292
|
|
|
293
293
|
/**
|