@lucca-front/ng 17.2.1 → 17.2.3-backfix

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (68) hide show
  1. package/core-select/api/api-v3.directive.d.ts +25 -0
  2. package/core-select/api/api-v4.directive.d.ts +22 -0
  3. package/core-select/api/api.directive.d.ts +31 -0
  4. package/core-select/api/index.d.ts +5 -0
  5. package/core-select/api/public-api.d.ts +3 -0
  6. package/core-select/input/select-input.component.d.ts +3 -3
  7. package/core-select/option/option.component.d.ts +1 -0
  8. package/esm2022/core-select/api/api-v3.directive.mjs +62 -0
  9. package/esm2022/core-select/api/api-v4.directive.mjs +56 -0
  10. package/esm2022/core-select/api/api.directive.mjs +46 -0
  11. package/esm2022/core-select/api/lucca-front-ng-core-select-api.mjs +5 -0
  12. package/esm2022/core-select/api/public-api.mjs +4 -0
  13. package/esm2022/core-select/input/select-input.component.mjs +13 -12
  14. package/esm2022/core-select/option/option.component.mjs +5 -4
  15. package/esm2022/establishment/select/establishment-select.token.mjs +4 -0
  16. package/esm2022/establishment/select/input/establishment-select-input.component.mjs +13 -16
  17. package/esm2022/establishment/select/legal-unit-selector/legal-unit-selector.directive.mjs +9 -10
  18. package/esm2022/establishment/select/searcher/establishment-searcher.component.mjs +9 -10
  19. package/esm2022/establishment/select/select-all/establishment-select-all.component.mjs +9 -10
  20. package/esm2022/icon/icon.component.mjs +3 -3
  21. package/esm2022/multi-select/displayer/default-displayer.component.mjs +4 -2
  22. package/esm2022/multi-select/input/panel-ref.factory.mjs +6 -6
  23. package/esm2022/multi-select/input/select-input.component.mjs +3 -10
  24. package/esm2022/multi-select/panel/panel.component.mjs +18 -18
  25. package/esm2022/multi-select/select.model.mjs +2 -2
  26. package/esm2022/option/item/option-item.component.mjs +3 -3
  27. package/esm2022/option/item/tree-option-item.component.mjs +3 -3
  28. package/esm2022/simple-select/api/api-v3.directive.mjs +6 -62
  29. package/esm2022/simple-select/api/api-v4.directive.mjs +6 -56
  30. package/esm2022/simple-select/api/api.directive.mjs +6 -40
  31. package/esm2022/simple-select/input/panel-ref.factory.mjs +7 -7
  32. package/esm2022/simple-select/input/select-input.component.mjs +2 -9
  33. package/esm2022/simple-select/panel/option-selected.pipe.mjs +17 -0
  34. package/esm2022/simple-select/panel/panel.component.mjs +21 -20
  35. package/esm2022/simple-select/select.model.mjs +2 -2
  36. package/establishment/select/establishment-select.token.d.ts +4 -0
  37. package/establishment/select/input/establishment-select-input.component.d.ts +2 -2
  38. package/establishment/select/legal-unit-selector/legal-unit-selector.directive.d.ts +2 -2
  39. package/establishment/select/searcher/establishment-searcher.component.d.ts +2 -2
  40. package/establishment/select/select-all/establishment-select-all.component.d.ts +2 -2
  41. package/fesm2022/lucca-front-ng-core-select-api.mjs +162 -0
  42. package/fesm2022/lucca-front-ng-core-select-api.mjs.map +1 -0
  43. package/fesm2022/lucca-front-ng-core-select.mjs +16 -14
  44. package/fesm2022/lucca-front-ng-core-select.mjs.map +1 -1
  45. package/fesm2022/lucca-front-ng-establishment.mjs +32 -39
  46. package/fesm2022/lucca-front-ng-establishment.mjs.map +1 -1
  47. package/fesm2022/lucca-front-ng-icon.mjs +2 -2
  48. package/fesm2022/lucca-front-ng-icon.mjs.map +1 -1
  49. package/fesm2022/lucca-front-ng-multi-select.mjs +26 -31
  50. package/fesm2022/lucca-front-ng-multi-select.mjs.map +1 -1
  51. package/fesm2022/lucca-front-ng-option.mjs +4 -4
  52. package/fesm2022/lucca-front-ng-option.mjs.map +1 -1
  53. package/fesm2022/lucca-front-ng-simple-select-api.mjs +13 -146
  54. package/fesm2022/lucca-front-ng-simple-select-api.mjs.map +1 -1
  55. package/fesm2022/lucca-front-ng-simple-select.mjs +40 -32
  56. package/fesm2022/lucca-front-ng-simple-select.mjs.map +1 -1
  57. package/multi-select/input/panel-ref.factory.d.ts +2 -2
  58. package/multi-select/panel/panel.component.d.ts +5 -5
  59. package/multi-select/select.model.d.ts +3 -12
  60. package/package.json +38 -32
  61. package/simple-select/api/api-v3.directive.d.ts +5 -25
  62. package/simple-select/api/api-v4.directive.d.ts +5 -22
  63. package/simple-select/api/api.directive.d.ts +5 -32
  64. package/simple-select/input/panel-ref.factory.d.ts +2 -2
  65. package/simple-select/panel/option-selected.pipe.d.ts +7 -0
  66. package/simple-select/panel/panel.component.d.ts +5 -5
  67. package/simple-select/select.model.d.ts +3 -12
  68. package/src/definitions/option/_option-item.scss +1 -0
@@ -0,0 +1,25 @@
1
+ import { HttpClient } from '@angular/common/http';
2
+ import { ILuApiItem } from '@lucca-front/ng/api';
3
+ import { BehaviorSubject, Observable, ReplaySubject } from 'rxjs';
4
+ import { ALuCoreSelectApiDirective } from './api.directive';
5
+ import * as i0 from "@angular/core";
6
+ export declare class LuCoreSelectApiV3Directive<T extends ILuApiItem> extends ALuCoreSelectApiDirective<T> {
7
+ set apiV3(value: string);
8
+ set fields(value: string);
9
+ set orderBy(value: string | null);
10
+ set filters(value: Record<string, string | number | boolean>);
11
+ protected url$: ReplaySubject<string>;
12
+ protected fields$: BehaviorSubject<string>;
13
+ protected orderBy$: BehaviorSubject<string>;
14
+ protected filters$: BehaviorSubject<Record<string, string | number | boolean>>;
15
+ protected httpClient: HttpClient;
16
+ protected params$: Observable<{
17
+ name?: string;
18
+ orderBy?: string;
19
+ fields: string;
20
+ }>;
21
+ protected getOptions(params: Record<string, string | number | boolean>, page: number): Observable<T[]>;
22
+ protected optionComparer: (a: T, b: T) => boolean;
23
+ static ɵfac: i0.ɵɵFactoryDeclaration<LuCoreSelectApiV3Directive<any>, never>;
24
+ static ɵdir: i0.ɵɵDirectiveDeclaration<LuCoreSelectApiV3Directive<any>, "lu-simple-select[apiV3],lu-multi-select[apiV3]", never, { "apiV3": { "alias": "apiV3"; "required": false; }; "fields": { "alias": "fields"; "required": false; }; "orderBy": { "alias": "orderBy"; "required": false; }; "filters": { "alias": "filters"; "required": false; }; }, {}, never, never, true, never>;
25
+ }
@@ -0,0 +1,22 @@
1
+ import { HttpClient } from '@angular/common/http';
2
+ import { ILuApiItem } from '@lucca-front/ng/api';
3
+ import { BehaviorSubject, Observable, ReplaySubject } from 'rxjs';
4
+ import { ALuCoreSelectApiDirective } from './api.directive';
5
+ import * as i0 from "@angular/core";
6
+ export declare class LuCoreSelectApiV4Directive<T extends ILuApiItem> extends ALuCoreSelectApiDirective<T> {
7
+ set apiV4(value: string);
8
+ set sort(value: string | null);
9
+ set filters(value: Record<string, string | number | boolean>);
10
+ protected url$: ReplaySubject<string>;
11
+ protected sort$: BehaviorSubject<string>;
12
+ protected filters$: BehaviorSubject<Record<string, string | number | boolean>>;
13
+ protected httpClient: HttpClient;
14
+ protected params$: Observable<{
15
+ search?: string;
16
+ sort?: string;
17
+ }>;
18
+ protected getOptions(params: Record<string, string | number | boolean>, page: number): Observable<T[]>;
19
+ protected optionComparer: (a: T, b: T) => boolean;
20
+ static ɵfac: i0.ɵɵFactoryDeclaration<LuCoreSelectApiV4Directive<any>, never>;
21
+ static ɵdir: i0.ɵɵDirectiveDeclaration<LuCoreSelectApiV4Directive<any>, "lu-simple-select[apiV4],lu-multi-select[apiV4]", never, { "apiV4": { "alias": "apiV4"; "required": false; }; "sort": { "alias": "sort"; "required": false; }; "filters": { "alias": "filters"; "required": false; }; }, {}, never, never, true, never>;
22
+ }
@@ -0,0 +1,31 @@
1
+ import { OnDestroy, OnInit } from '@angular/core';
2
+ import { ALuSelectInputComponent } from '@lucca-front/ng/core-select';
3
+ import { Observable, Subject } from 'rxjs';
4
+ import * as i0 from "@angular/core";
5
+ export declare const MAGIC_PAGE_SIZE = 20;
6
+ export declare const MAGIC_DEBOUNCE_DURATION = 250;
7
+ export declare abstract class ALuCoreSelectApiDirective<TOption, TParams = Record<string, string | number | boolean>> implements OnDestroy, OnInit {
8
+ protected destroy$: Subject<void>;
9
+ protected pageSize: number;
10
+ protected debounceDuration: number;
11
+ protected select: ALuSelectInputComponent<TOption, unknown>;
12
+ protected page$: Observable<number>;
13
+ protected clue$: Observable<string>;
14
+ /**
15
+ * Create an object that will be used as params for the api call
16
+ */
17
+ protected abstract params$: Observable<TParams>;
18
+ /**
19
+ * Compare two options to know if they are the same. For example, compare by id or by JSON
20
+ */
21
+ protected abstract optionComparer: (a: TOption, b: TOption) => boolean;
22
+ /**
23
+ * Return the options for the given params and page
24
+ */
25
+ protected abstract getOptions(params: TParams, page: number): Observable<TOption[]>;
26
+ ngOnInit(): void;
27
+ protected buildOptions(): Observable<TOption[]>;
28
+ ngOnDestroy(): void;
29
+ static ɵfac: i0.ɵɵFactoryDeclaration<ALuCoreSelectApiDirective<any, any>, never>;
30
+ static ɵdir: i0.ɵɵDirectiveDeclaration<ALuCoreSelectApiDirective<any, any>, never, never, {}, {}, never, never, false, never>;
31
+ }
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ /// <amd-module name="@lucca-front/ng/core-select/api" />
5
+ export * from './public-api';
@@ -0,0 +1,3 @@
1
+ export * from './api-v3.directive';
2
+ export * from './api-v4.directive';
3
+ export { ALuCoreSelectApiDirective } from './api.directive';
@@ -34,9 +34,9 @@ export declare abstract class ALuSelectInputComponent<TOption, TValue> implement
34
34
  clueChanged(clue: string): void;
35
35
  protected _value?: TValue;
36
36
  options$: ReplaySubject<TOption[]>;
37
- loading$: ReplaySubject<boolean>;
37
+ loading$: BehaviorSubject<boolean>;
38
38
  clue: string | null;
39
- previousClue: string | null;
39
+ lastEmittedClue: string;
40
40
  protected onChange?: (value: TValue | null) => void;
41
41
  protected onTouched?: () => void;
42
42
  get panelRef(): LuSelectPanelRef<TOption, TValue> | undefined;
@@ -54,7 +54,7 @@ export declare abstract class ALuSelectInputComponent<TOption, TValue> implement
54
54
  ngOnDestroy(): void;
55
55
  ngOnInit(): void;
56
56
  clearValue(event: Event): void;
57
- openPanel(): void;
57
+ openPanel(clue?: string): void;
58
58
  protected abstract buildPanelRef(): this['panelRef'];
59
59
  protected bindInputToPanelRefEvents(): void;
60
60
  protected focusInput(): void;
@@ -3,6 +3,7 @@ import { AfterViewInit, ElementRef, OnDestroy, TemplateRef, Type } from '@angula
3
3
  import { BehaviorSubject } from 'rxjs';
4
4
  import { LuOptionContext } from '../select.model';
5
5
  import * as i0 from "@angular/core";
6
+ export declare const MAGIC_OPTION_SCROLL_DELAY = 15;
6
7
  export declare class LuOptionComponent<T> implements Highlightable, AfterViewInit, OnDestroy {
7
8
  hasOptionItemClass: boolean;
8
9
  optionTpl: TemplateRef<LuOptionContext<T>> | Type<unknown> | undefined;
@@ -0,0 +1,62 @@
1
+ import { HttpClient } from '@angular/common/http';
2
+ import { Directive, inject, Input } from '@angular/core';
3
+ import { BehaviorSubject, combineLatest, map, ReplaySubject, switchMap, take } from 'rxjs';
4
+ import { ALuCoreSelectApiDirective } from './api.directive';
5
+ import * as i0 from "@angular/core";
6
+ export class LuCoreSelectApiV3Directive extends ALuCoreSelectApiDirective {
7
+ constructor() {
8
+ super(...arguments);
9
+ this.url$ = new ReplaySubject(1);
10
+ this.fields$ = new BehaviorSubject('id,name');
11
+ this.orderBy$ = new BehaviorSubject('name,asc');
12
+ this.filters$ = new BehaviorSubject({});
13
+ this.httpClient = inject(HttpClient);
14
+ this.params$ = combineLatest([this.fields$, this.filters$, this.orderBy$, this.clue$]).pipe(map(([fields, filters, orderBy, clue]) => ({
15
+ ...filters,
16
+ fields,
17
+ ...(orderBy ? { orderBy } : {}),
18
+ ...(clue ? { name: `like,${clue}` } : {}),
19
+ })));
20
+ this.optionComparer = (a, b) => a.id === b.id;
21
+ }
22
+ set apiV3(value) {
23
+ this.url$.next(value);
24
+ }
25
+ set fields(value) {
26
+ this.fields$.next(value);
27
+ }
28
+ set orderBy(value) {
29
+ this.orderBy$.next(value);
30
+ }
31
+ set filters(value) {
32
+ this.filters$.next(value);
33
+ }
34
+ getOptions(params, page) {
35
+ return this.url$.pipe(take(1), switchMap((url) => this.httpClient.get(url, {
36
+ params: {
37
+ ...params,
38
+ paging: `${page * this.pageSize},${this.pageSize}`,
39
+ },
40
+ })), map((res) => res.data.items));
41
+ }
42
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: LuCoreSelectApiV3Directive, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
43
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.2", type: LuCoreSelectApiV3Directive, isStandalone: true, selector: "lu-simple-select[apiV3],lu-multi-select[apiV3]", inputs: { apiV3: "apiV3", fields: "fields", orderBy: "orderBy", filters: "filters" }, usesInheritance: true, ngImport: i0 }); }
44
+ }
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: LuCoreSelectApiV3Directive, decorators: [{
46
+ type: Directive,
47
+ args: [{
48
+ // The attribute is already prefixed with "lu-simple-select"
49
+ // eslint-disable-next-line @angular-eslint/directive-selector
50
+ selector: 'lu-simple-select[apiV3],lu-multi-select[apiV3]',
51
+ standalone: true,
52
+ }]
53
+ }], propDecorators: { apiV3: [{
54
+ type: Input
55
+ }], fields: [{
56
+ type: Input
57
+ }], orderBy: [{
58
+ type: Input
59
+ }], filters: [{
60
+ type: Input
61
+ }] } });
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLXYzLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nL2NvcmUtc2VsZWN0L2FwaS9hcGktdjMuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFjLGFBQWEsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQVE1RCxNQUFNLE9BQU8sMEJBQWlELFNBQVEseUJBQTRCO0lBTmxHOztRQTJCVyxTQUFJLEdBQUcsSUFBSSxhQUFhLENBQVMsQ0FBQyxDQUFDLENBQUM7UUFDcEMsWUFBTyxHQUFHLElBQUksZUFBZSxDQUFTLFNBQVMsQ0FBQyxDQUFDO1FBQ2pELGFBQVEsR0FBRyxJQUFJLGVBQWUsQ0FBZ0IsVUFBVSxDQUFDLENBQUM7UUFDMUQsYUFBUSxHQUFHLElBQUksZUFBZSxDQUE0QyxFQUFFLENBQUMsQ0FBQztRQUU5RSxlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRXZCLFlBQU8sR0FBRyxhQUFhLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ3hHLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLE9BQU8sRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDMUMsR0FBRyxPQUFPO1lBQ1YsTUFBTTtZQUNOLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUMvQixHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxRQUFRLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztTQUN6QyxDQUFDLENBQUMsQ0FDSCxDQUFDO1FBaUJpQixtQkFBYyxHQUFHLENBQUMsQ0FBSSxFQUFFLENBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO0tBQ2xFO0lBcERBLElBQ1csS0FBSyxDQUFDLEtBQWE7UUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQ1csTUFBTSxDQUFDLEtBQWE7UUFDOUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVELElBQ1csT0FBTyxDQUFDLEtBQW9CO1FBQ3RDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRCxJQUNXLE9BQU8sQ0FBQyxLQUFnRDtRQUNsRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBa0JrQixVQUFVLENBQUMsTUFBaUQsRUFBRSxJQUFZO1FBQzVGLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ3BCLElBQUksQ0FBQyxDQUFDLENBQUMsRUFDUCxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUNqQixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBOEIsR0FBRyxFQUFFO1lBQ3JELE1BQU0sRUFBRTtnQkFDUCxHQUFHLE1BQU07Z0JBQ1QsTUFBTSxFQUFFLEdBQUcsSUFBSSxHQUFHLElBQUksQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRTthQUNsRDtTQUNELENBQUMsQ0FDRixFQUNELEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FDNUIsQ0FBQztJQUNILENBQUM7OEdBbERXLDBCQUEwQjtrR0FBMUIsMEJBQTBCOzsyRkFBMUIsMEJBQTBCO2tCQU50QyxTQUFTO21CQUFDO29CQUNWLDREQUE0RDtvQkFDNUQsOERBQThEO29CQUM5RCxRQUFRLEVBQUUsZ0RBQWdEO29CQUMxRCxVQUFVLEVBQUUsSUFBSTtpQkFDaEI7OEJBR1csS0FBSztzQkFEZixLQUFLO2dCQU1LLE1BQU07c0JBRGhCLEtBQUs7Z0JBTUssT0FBTztzQkFEakIsS0FBSztnQkFNSyxPQUFPO3NCQURqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IERpcmVjdGl2ZSwgaW5qZWN0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSUx1QXBpQ29sbGVjdGlvblJlc3BvbnNlLCBJTHVBcGlJdGVtIH0gZnJvbSAnQGx1Y2NhLWZyb250L25nL2FwaSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGNvbWJpbmVMYXRlc3QsIG1hcCwgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCwgc3dpdGNoTWFwLCB0YWtlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBTHVDb3JlU2VsZWN0QXBpRGlyZWN0aXZlIH0gZnJvbSAnLi9hcGkuZGlyZWN0aXZlJztcblxuQERpcmVjdGl2ZSh7XG5cdC8vIFRoZSBhdHRyaWJ1dGUgaXMgYWxyZWFkeSBwcmVmaXhlZCB3aXRoIFwibHUtc2ltcGxlLXNlbGVjdFwiXG5cdC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAYW5ndWxhci1lc2xpbnQvZGlyZWN0aXZlLXNlbGVjdG9yXG5cdHNlbGVjdG9yOiAnbHUtc2ltcGxlLXNlbGVjdFthcGlWM10sbHUtbXVsdGktc2VsZWN0W2FwaVYzXScsXG5cdHN0YW5kYWxvbmU6IHRydWUsXG59KVxuZXhwb3J0IGNsYXNzIEx1Q29yZVNlbGVjdEFwaVYzRGlyZWN0aXZlPFQgZXh0ZW5kcyBJTHVBcGlJdGVtPiBleHRlbmRzIEFMdUNvcmVTZWxlY3RBcGlEaXJlY3RpdmU8VD4ge1xuXHRASW5wdXQoKVxuXHRwdWJsaWMgc2V0IGFwaVYzKHZhbHVlOiBzdHJpbmcpIHtcblx0XHR0aGlzLnVybCQubmV4dCh2YWx1ZSk7XG5cdH1cblxuXHRASW5wdXQoKVxuXHRwdWJsaWMgc2V0IGZpZWxkcyh2YWx1ZTogc3RyaW5nKSB7XG5cdFx0dGhpcy5maWVsZHMkLm5leHQodmFsdWUpO1xuXHR9XG5cblx0QElucHV0KClcblx0cHVibGljIHNldCBvcmRlckJ5KHZhbHVlOiBzdHJpbmcgfCBudWxsKSB7XG5cdFx0dGhpcy5vcmRlckJ5JC5uZXh0KHZhbHVlKTtcblx0fVxuXG5cdEBJbnB1dCgpXG5cdHB1YmxpYyBzZXQgZmlsdGVycyh2YWx1ZTogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbj4pIHtcblx0XHR0aGlzLmZpbHRlcnMkLm5leHQodmFsdWUpO1xuXHR9XG5cblx0cHJvdGVjdGVkIHVybCQgPSBuZXcgUmVwbGF5U3ViamVjdDxzdHJpbmc+KDEpO1xuXHRwcm90ZWN0ZWQgZmllbGRzJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8c3RyaW5nPignaWQsbmFtZScpO1xuXHRwcm90ZWN0ZWQgb3JkZXJCeSQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZyB8IG51bGw+KCduYW1lLGFzYycpO1xuXHRwcm90ZWN0ZWQgZmlsdGVycyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4+Pih7fSk7XG5cblx0cHJvdGVjdGVkIGh0dHBDbGllbnQgPSBpbmplY3QoSHR0cENsaWVudCk7XG5cblx0cHJvdGVjdGVkIG92ZXJyaWRlIHBhcmFtcyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmZpZWxkcyQsIHRoaXMuZmlsdGVycyQsIHRoaXMub3JkZXJCeSQsIHRoaXMuY2x1ZSRdKS5waXBlKFxuXHRcdG1hcCgoW2ZpZWxkcywgZmlsdGVycywgb3JkZXJCeSwgY2x1ZV0pID0+ICh7XG5cdFx0XHQuLi5maWx0ZXJzLFxuXHRcdFx0ZmllbGRzLFxuXHRcdFx0Li4uKG9yZGVyQnkgPyB7IG9yZGVyQnkgfSA6IHt9KSxcblx0XHRcdC4uLihjbHVlID8geyBuYW1lOiBgbGlrZSwke2NsdWV9YCB9IDoge30pLFxuXHRcdH0pKSxcblx0KTtcblxuXHRwcm90ZWN0ZWQgb3ZlcnJpZGUgZ2V0T3B0aW9ucyhwYXJhbXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4+LCBwYWdlOiBudW1iZXIpOiBPYnNlcnZhYmxlPFRbXT4ge1xuXHRcdHJldHVybiB0aGlzLnVybCQucGlwZShcblx0XHRcdHRha2UoMSksXG5cdFx0XHRzd2l0Y2hNYXAoKHVybCkgPT5cblx0XHRcdFx0dGhpcy5odHRwQ2xpZW50LmdldDxJTHVBcGlDb2xsZWN0aW9uUmVzcG9uc2U8VD4+KHVybCwge1xuXHRcdFx0XHRcdHBhcmFtczoge1xuXHRcdFx0XHRcdFx0Li4ucGFyYW1zLFxuXHRcdFx0XHRcdFx0cGFnaW5nOiBgJHtwYWdlICogdGhpcy5wYWdlU2l6ZX0sJHt0aGlzLnBhZ2VTaXplfWAsXG5cdFx0XHRcdFx0fSxcblx0XHRcdFx0fSksXG5cdFx0XHQpLFxuXHRcdFx0bWFwKChyZXMpID0+IHJlcy5kYXRhLml0ZW1zKSxcblx0XHQpO1xuXHR9XG5cblx0cHJvdGVjdGVkIG92ZXJyaWRlIG9wdGlvbkNvbXBhcmVyID0gKGE6IFQsIGI6IFQpID0+IGEuaWQgPT09IGIuaWQ7XG59XG4iXX0=
@@ -0,0 +1,56 @@
1
+ import { HttpClient } from '@angular/common/http';
2
+ import { Directive, inject, Input } from '@angular/core';
3
+ import { BehaviorSubject, combineLatest, map, ReplaySubject, switchMap, take } from 'rxjs';
4
+ import { ALuCoreSelectApiDirective } from './api.directive';
5
+ import * as i0 from "@angular/core";
6
+ export class LuCoreSelectApiV4Directive extends ALuCoreSelectApiDirective {
7
+ constructor() {
8
+ super(...arguments);
9
+ this.url$ = new ReplaySubject(1);
10
+ this.sort$ = new BehaviorSubject('+name');
11
+ this.filters$ = new BehaviorSubject({});
12
+ this.httpClient = inject(HttpClient);
13
+ this.params$ = combineLatest([this.filters$, this.sort$, this.clue$]).pipe(map(([filters, sort, clue]) => ({
14
+ ...filters,
15
+ ...(sort ? { sort } : {}),
16
+ ...(clue ? { search: clue } : {}),
17
+ })));
18
+ this.optionComparer = (a, b) => a.id === b.id;
19
+ }
20
+ set apiV4(value) {
21
+ this.url$.next(value);
22
+ }
23
+ set sort(value) {
24
+ this.sort$.next(value);
25
+ }
26
+ set filters(value) {
27
+ this.filters$.next(value);
28
+ }
29
+ getOptions(params, page) {
30
+ return this.url$.pipe(take(1), switchMap((url) => this.httpClient.get(url, {
31
+ params: {
32
+ ...params,
33
+ page: page + 1,
34
+ limit: this.pageSize,
35
+ },
36
+ })), map((res) => (Array.isArray(res) ? res : res?.items) ?? []));
37
+ }
38
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: LuCoreSelectApiV4Directive, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
39
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.2", type: LuCoreSelectApiV4Directive, isStandalone: true, selector: "lu-simple-select[apiV4],lu-multi-select[apiV4]", inputs: { apiV4: "apiV4", sort: "sort", filters: "filters" }, usesInheritance: true, ngImport: i0 }); }
40
+ }
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: LuCoreSelectApiV4Directive, decorators: [{
42
+ type: Directive,
43
+ args: [{
44
+ // The attribute is already prefixed with "lu-simple-select"
45
+ // eslint-disable-next-line @angular-eslint/directive-selector
46
+ selector: 'lu-simple-select[apiV4],lu-multi-select[apiV4]',
47
+ standalone: true,
48
+ }]
49
+ }], propDecorators: { apiV4: [{
50
+ type: Input
51
+ }], sort: [{
52
+ type: Input
53
+ }], filters: [{
54
+ type: Input
55
+ }] } });
56
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLXY0LmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nL2NvcmUtc2VsZWN0L2FwaS9hcGktdjQuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFekQsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFjLGFBQWEsRUFBRSxTQUFTLEVBQUUsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZHLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQVE1RCxNQUFNLE9BQU8sMEJBQWlELFNBQVEseUJBQTRCO0lBTmxHOztRQXNCVyxTQUFJLEdBQUcsSUFBSSxhQUFhLENBQVMsQ0FBQyxDQUFDLENBQUM7UUFDcEMsVUFBSyxHQUFHLElBQUksZUFBZSxDQUFnQixPQUFPLENBQUMsQ0FBQztRQUNwRCxhQUFRLEdBQUcsSUFBSSxlQUFlLENBQTRDLEVBQUUsQ0FBQyxDQUFDO1FBRTlFLGVBQVUsR0FBRyxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFdkIsWUFBTyxHQUFHLGFBQWEsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQ3ZGLEdBQUcsQ0FBQyxDQUFDLENBQUMsT0FBTyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztZQUMvQixHQUFHLE9BQU87WUFDVixHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7WUFDekIsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztTQUNqQyxDQUFDLENBQUMsQ0FDSCxDQUFDO1FBa0JpQixtQkFBYyxHQUFHLENBQUMsQ0FBSSxFQUFFLENBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO0tBQ2xFO0lBOUNBLElBQ1csS0FBSyxDQUFDLEtBQWE7UUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdkIsQ0FBQztJQUVELElBQ1csSUFBSSxDQUFDLEtBQW9CO1FBQ25DLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hCLENBQUM7SUFFRCxJQUNXLE9BQU8sQ0FBQyxLQUFnRDtRQUNsRSxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDO0lBZ0JrQixVQUFVLENBQUMsTUFBaUQsRUFBRSxJQUFZO1FBQzVGLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQ3BCLElBQUksQ0FBQyxDQUFDLENBQUMsRUFDUCxTQUFTLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUNqQixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBdUIsR0FBRyxFQUFFO1lBQzlDLE1BQU0sRUFBRTtnQkFDUCxHQUFHLE1BQU07Z0JBQ1QsSUFBSSxFQUFFLElBQUksR0FBRyxDQUFDO2dCQUNkLEtBQUssRUFBRSxJQUFJLENBQUMsUUFBUTthQUNwQjtTQUNELENBQUMsQ0FDRixFQUNELEdBQUcsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FDM0QsQ0FBQztJQUNILENBQUM7OEdBNUNXLDBCQUEwQjtrR0FBMUIsMEJBQTBCOzsyRkFBMUIsMEJBQTBCO2tCQU50QyxTQUFTO21CQUFDO29CQUNWLDREQUE0RDtvQkFDNUQsOERBQThEO29CQUM5RCxRQUFRLEVBQUUsZ0RBQWdEO29CQUMxRCxVQUFVLEVBQUUsSUFBSTtpQkFDaEI7OEJBR1csS0FBSztzQkFEZixLQUFLO2dCQU1LLElBQUk7c0JBRGQsS0FBSztnQkFNSyxPQUFPO3NCQURqQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IERpcmVjdGl2ZSwgaW5qZWN0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSUx1QXBpSXRlbSB9IGZyb20gJ0BsdWNjYS1mcm9udC9uZy9hcGknO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBtYXAsIE9ic2VydmFibGUsIFJlcGxheVN1YmplY3QsIHN3aXRjaE1hcCwgdGFrZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQUx1Q29yZVNlbGVjdEFwaURpcmVjdGl2ZSB9IGZyb20gJy4vYXBpLmRpcmVjdGl2ZSc7XG5cbkBEaXJlY3RpdmUoe1xuXHQvLyBUaGUgYXR0cmlidXRlIGlzIGFscmVhZHkgcHJlZml4ZWQgd2l0aCBcImx1LXNpbXBsZS1zZWxlY3RcIlxuXHQvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGFuZ3VsYXItZXNsaW50L2RpcmVjdGl2ZS1zZWxlY3RvclxuXHRzZWxlY3RvcjogJ2x1LXNpbXBsZS1zZWxlY3RbYXBpVjRdLGx1LW11bHRpLXNlbGVjdFthcGlWNF0nLFxuXHRzdGFuZGFsb25lOiB0cnVlLFxufSlcbmV4cG9ydCBjbGFzcyBMdUNvcmVTZWxlY3RBcGlWNERpcmVjdGl2ZTxUIGV4dGVuZHMgSUx1QXBpSXRlbT4gZXh0ZW5kcyBBTHVDb3JlU2VsZWN0QXBpRGlyZWN0aXZlPFQ+IHtcblx0QElucHV0KClcblx0cHVibGljIHNldCBhcGlWNCh2YWx1ZTogc3RyaW5nKSB7XG5cdFx0dGhpcy51cmwkLm5leHQodmFsdWUpO1xuXHR9XG5cblx0QElucHV0KClcblx0cHVibGljIHNldCBzb3J0KHZhbHVlOiBzdHJpbmcgfCBudWxsKSB7XG5cdFx0dGhpcy5zb3J0JC5uZXh0KHZhbHVlKTtcblx0fVxuXG5cdEBJbnB1dCgpXG5cdHB1YmxpYyBzZXQgZmlsdGVycyh2YWx1ZTogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgbnVtYmVyIHwgYm9vbGVhbj4pIHtcblx0XHR0aGlzLmZpbHRlcnMkLm5leHQodmFsdWUpO1xuXHR9XG5cblx0cHJvdGVjdGVkIHVybCQgPSBuZXcgUmVwbGF5U3ViamVjdDxzdHJpbmc+KDEpO1xuXHRwcm90ZWN0ZWQgc29ydCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PHN0cmluZyB8IG51bGw+KCcrbmFtZScpO1xuXHRwcm90ZWN0ZWQgZmlsdGVycyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4+Pih7fSk7XG5cblx0cHJvdGVjdGVkIGh0dHBDbGllbnQgPSBpbmplY3QoSHR0cENsaWVudCk7XG5cblx0cHJvdGVjdGVkIG92ZXJyaWRlIHBhcmFtcyQgPSBjb21iaW5lTGF0ZXN0KFt0aGlzLmZpbHRlcnMkLCB0aGlzLnNvcnQkLCB0aGlzLmNsdWUkXSkucGlwZShcblx0XHRtYXAoKFtmaWx0ZXJzLCBzb3J0LCBjbHVlXSkgPT4gKHtcblx0XHRcdC4uLmZpbHRlcnMsXG5cdFx0XHQuLi4oc29ydCA/IHsgc29ydCB9IDoge30pLFxuXHRcdFx0Li4uKGNsdWUgPyB7IHNlYXJjaDogY2x1ZSB9IDoge30pLFxuXHRcdH0pKSxcblx0KTtcblxuXHRwcm90ZWN0ZWQgb3ZlcnJpZGUgZ2V0T3B0aW9ucyhwYXJhbXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4+LCBwYWdlOiBudW1iZXIpOiBPYnNlcnZhYmxlPFRbXT4ge1xuXHRcdHJldHVybiB0aGlzLnVybCQucGlwZShcblx0XHRcdHRha2UoMSksXG5cdFx0XHRzd2l0Y2hNYXAoKHVybCkgPT5cblx0XHRcdFx0dGhpcy5odHRwQ2xpZW50LmdldDxUW10gfCB7IGl0ZW1zOiBUW10gfT4odXJsLCB7XG5cdFx0XHRcdFx0cGFyYW1zOiB7XG5cdFx0XHRcdFx0XHQuLi5wYXJhbXMsXG5cdFx0XHRcdFx0XHRwYWdlOiBwYWdlICsgMSxcblx0XHRcdFx0XHRcdGxpbWl0OiB0aGlzLnBhZ2VTaXplLFxuXHRcdFx0XHRcdH0sXG5cdFx0XHRcdH0pLFxuXHRcdFx0KSxcblx0XHRcdG1hcCgocmVzKSA9PiAoQXJyYXkuaXNBcnJheShyZXMpID8gcmVzIDogcmVzPy5pdGVtcykgPz8gW10pLFxuXHRcdCk7XG5cdH1cblxuXHRwcm90ZWN0ZWQgb3ZlcnJpZGUgb3B0aW9uQ29tcGFyZXIgPSAoYTogVCwgYjogVCkgPT4gYS5pZCA9PT0gYi5pZDtcbn1cbiJdfQ==
@@ -0,0 +1,46 @@
1
+ import { Directive, inject } from '@angular/core';
2
+ import { ALuSelectInputComponent } from '@lucca-front/ng/core-select';
3
+ import { catchError, combineLatest, concatMap, debounceTime, distinctUntilChanged, map, merge, of, pairwise, scan, startWith, Subject, switchMap, takeUntil, takeWhile, tap } from 'rxjs';
4
+ import * as i0 from "@angular/core";
5
+ export const MAGIC_PAGE_SIZE = 20;
6
+ export const MAGIC_DEBOUNCE_DURATION = 250;
7
+ export class ALuCoreSelectApiDirective {
8
+ constructor() {
9
+ this.destroy$ = new Subject();
10
+ this.pageSize = MAGIC_PAGE_SIZE;
11
+ this.debounceDuration = MAGIC_DEBOUNCE_DURATION;
12
+ this.select = inject(ALuSelectInputComponent);
13
+ this.page$ = this.select.nextPage.pipe(scan((page) => page + 1, 0), startWith(0));
14
+ this.clue$ = this.select.clueChange.pipe(debounceTime(this.debounceDuration), startWith(''));
15
+ }
16
+ ngOnInit() {
17
+ this.select.optionComparer = this.optionComparer;
18
+ this.buildOptions().pipe(takeUntil(this.destroy$)).subscribe(this.select.options$);
19
+ }
20
+ buildOptions() {
21
+ // Prevent a double call to getOptions when the clue is changed while the panel is closed
22
+ const clueIsPendingDebounce$ = merge(this.select.clueChange.pipe(map(() => true)), this.clue$.pipe(map(() => false))).pipe(distinctUntilChanged());
23
+ const isOpen$ = combineLatest([this.select.isPanelOpen$, clueIsPendingDebounce$]).pipe(debounceTime(0), startWith([false, false]), pairwise(), tap(([[wasOpen], [isOpen, clueIsPendingDebounce]]) => {
24
+ // Start the loader as soon as the panel is opened to avoid a short display of the "no result" message
25
+ if (!wasOpen && isOpen && clueIsPendingDebounce) {
26
+ this.select.loading = true;
27
+ }
28
+ }), map(([[wasOpen], [isOpen, clueIsPendingDebounce]]) => (isOpen && !wasOpen ? !clueIsPendingDebounce : isOpen)), distinctUntilChanged());
29
+ return combineLatest([this.params$, isOpen$]).pipe(switchMap(([params, isOpened]) => isOpened
30
+ ? this.page$.pipe(concatMap((page) => {
31
+ this.select.loading = true;
32
+ return this.getOptions(params, page).pipe(catchError(() => of([])), tap(() => (this.select.loading = false)));
33
+ }), takeWhile((items) => items.length === this.pageSize, true), scan((acc, items) => [...acc, ...items], []))
34
+ : of([])));
35
+ }
36
+ ngOnDestroy() {
37
+ this.destroy$.next();
38
+ this.destroy$.complete();
39
+ }
40
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: ALuCoreSelectApiDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
41
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.0.2", type: ALuCoreSelectApiDirective, ngImport: i0 }); }
42
+ }
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImport: i0, type: ALuCoreSelectApiDirective, decorators: [{
44
+ type: Directive
45
+ }] });
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nL2NvcmUtc2VsZWN0L2FwaS9hcGkuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUNyRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw2QkFBNkIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsVUFBVSxFQUFFLGFBQWEsRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQWMsRUFBRSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBRXRNLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRyxFQUFFLENBQUM7QUFDbEMsTUFBTSxDQUFDLE1BQU0sdUJBQXVCLEdBQUcsR0FBRyxDQUFDO0FBRzNDLE1BQU0sT0FBZ0IseUJBQXlCO0lBRC9DO1FBRVcsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDL0IsYUFBUSxHQUFHLGVBQWUsQ0FBQztRQUMzQixxQkFBZ0IsR0FBRyx1QkFBdUIsQ0FBQztRQUUzQyxXQUFNLEdBQUcsTUFBTSxDQUE0Qyx1QkFBdUIsQ0FBQyxDQUFDO1FBRXBGLFVBQUssR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQzFDLElBQUksQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsRUFDM0IsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUNaLENBQUM7UUFFUSxVQUFLLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsSUFBSSxD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QWUsQ0FBQyxDQUN4RDtZQUNILENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBZSxDQUFDLENBQ3RCLENBQ0QsQ0FBQztJQUNILENBQUM7SUFFTSxXQUFXO1FBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUMxQixDQUFDOzhHQXpFb0IseUJBQXlCO2tHQUF6Qix5QkFBeUI7OzJGQUF6Qix5QkFBeUI7a0JBRDlDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIGluamVjdCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFMdVNlbGVjdElucHV0Q29tcG9uZW50IH0gZnJvbSAnQGx1Y2NhLWZyb250L25nL2NvcmUtc2VsZWN0JztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGNvbWJpbmVMYXRlc3QsIGNvbmNhdE1hcCwgZGVib3VuY2VUaW1lLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCwgbWFwLCBtZXJnZSwgT2JzZXJ2YWJsZSwgb2YsIHBhaXJ3aXNlLCBzY2FuLCBzdGFydFdpdGgsIFN1YmplY3QsIHN3aXRjaE1hcCwgdGFrZVVudGlsLCB0YWtlV2hpbGUsIHRhcCB9IGZyb20gJ3J4anMnO1xuXG5leHBvcnQgY29uc3QgTUFHSUNfUEFHRV9TSVpFID0gMjA7XG5leHBvcnQgY29uc3QgTUFHSUNfREVCT1VOQ0VfRFVSQVRJT04gPSAyNTA7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFMdUNvcmVTZWxlY3RBcGlEaXJlY3RpdmU8VE9wdGlvbiwgVFBhcmFtcyA9IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IG51bWJlciB8IGJvb2xlYW4+PiBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25Jbml0IHtcblx0cHJvdGVjdGVkIGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblx0cHJvdGVjdGVkIHBhZ2VTaXplID0gTUFHSUNfUEFHRV9TSVpFO1xuXHRwcm90ZWN0ZWQgZGVib3VuY2VEdXJhdGlvbiA9IE1BR0lDX0RFQk9VTkNFX0RVUkFUSU9OO1xuXG5cdHByb3RlY3RlZCBzZWxlY3QgPSBpbmplY3Q8QUx1U2VsZWN0SW5wdXRDb21wb25lbnQ8VE9wdGlvbiwgdW5rbm93bj4+KEFMdVNlbGVjdElucHV0Q29tcG9uZW50KTtcblxuXHRwcm90ZWN0ZWQgcGFnZSQgPSB0aGlzLnNlbGVjdC5uZXh0UGFnZS5waXBlKFxuXHRcdHNjYW4oKHBhZ2UpID0+IHBhZ2UgKyAxLCAwKSxcblx0XHRzdGFydFdpdGgoMCksXG5cdCk7XG5cblx0cHJvdGVjdGVkIGNsdWUkID0gdGhpcy5zZWxlY3QuY2x1ZUNoYW5nZS5waXBlKGRlYm91bmNlVGltZSh0aGlzLmRlYm91bmNlRHVyYXRpb24pLCBzdGFydFdpdGgoJycpKTtcblxuXHQvKipcblx0ICogQ3JlYXRlIGFuIG9iamVjdCB0aGF0IHdpbGwgYmUgdXNlZCBhcyBwYXJhbXMgZm9yIHRoZSBhcGkgY2FsbFxuXHQgKi9cblx0cHJvdGVjdGVkIGFic3RyYWN0IHBhcmFtcyQ6IE9ic2VydmFibGU8VFBhcmFtcz47XG5cblx0LyoqXG5cdCAqIENvbXBhcmUgdHdvIG9wdGlvbnMgdG8ga25vdyBpZiB0aGV5IGFyZSB0aGUgc2FtZS4gRm9yIGV4YW1wbGUsIGNvbXBhcmUgYnkgaWQgb3IgYnkgSlNPTlxuXHQgKi9cblx0cHJvdGVjdGVkIGFic3RyYWN0IG9wdGlvbkNvbXBhcmVyOiAoYTogVE9wdGlvbiwgYjogVE9wdGlvbikgPT4gYm9vbGVhbjtcblxuXHQvKipcblx0ICogUmV0dXJuIHRoZSBvcHRpb25zIGZvciB0aGUgZ2l2ZW4gcGFyYW1zIGFuZCBwYWdlXG5cdCAqL1xuXHRwcm90ZWN0ZWQgYWJzdHJhY3QgZ2V0T3B0aW9ucyhwYXJhbXM6IFRQYXJhbXMsIHBhZ2U6IG51bWJlcik6IE9ic2VydmFibGU8VE9wdGlvbltdPjtcblxuXHRwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG5cdFx0dGhpcy5zZWxlY3Qub3B0aW9uQ29tcGFyZXIgPSB0aGlzLm9wdGlvbkNvbXBhcmVyO1xuXHRcdHRoaXMuYnVpbGRPcHRpb25zKCkucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh0aGlzLnNlbGVjdC5vcHRpb25zJCk7XG5cdH1cblxuXHRwcm90ZWN0ZWQgYnVpbGRPcHRpb25zKCk6IE9ic2VydmFibGU8VE9wdGlvbltdPiB7XG5cdFx0Ly8gUHJldmVudCBhIGRvdWJsZSBjYWxsIHRvIGdldE9wdGlvbnMgd2hlbiB0aGUgY2x1ZSBpcyBjaGFuZ2VkIHdoaWxlIHRoZSBwYW5lbCBpcyBjbG9zZWRcblx0XHRjb25zdCBjbHVlSXNQZW5kaW5nRGVib3VuY2UkID0gbWVyZ2UodGhpcy5zZWxlY3QuY2x1ZUNoYW5nZS5waXBlKG1hcCgoKSA9PiB0cnVlKSksIHRoaXMuY2x1ZSQucGlwZShtYXAoKCkgPT4gZmFsc2UpKSkucGlwZShkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKTtcblx0XHRjb25zdCBpc09wZW4kID0gY29tYmluZUxhdGVzdChbdGhpcy5zZWxlY3QuaXNQYW5lbE9wZW4kLCBjbHVlSXNQZW5kaW5nRGVib3VuY2UkXSkucGlwZShcblx0XHRcdGRlYm91bmNlVGltZSgwKSxcblx0XHRcdHN0YXJ0V2l0aChbZmFsc2UsIGZhbHNlXSksXG5cdFx0XHRwYWlyd2lzZSgpLFxuXHRcdFx0dGFwKChbW3dhc09wZW5dLCBbaXNPcGVuLCBjbHVlSXNQZW5kaW5nRGVib3VuY2VdXSkgPT4ge1xuXHRcdFx0XHQvLyBTdGFydCB0aGUgbG9hZGVyIGFzIHNvb24gYXMgdGhlIHBhbmVsIGlzIG9wZW5lZCB0byBhdm9pZCBhIHNob3J0IGRpc3BsYXkgb2YgdGhlIFwibm8gcmVzdWx0XCIgbWVzc2FnZVxuXHRcdFx0XHRpZiAoIXdhc09wZW4gJiYgaXNPcGVuICYmIGNsdWVJc1BlbmRpbmdEZWJvdW5jZSkge1xuXHRcdFx0XHRcdHRoaXMuc2VsZWN0LmxvYWRpbmcgPSB0cnVlO1xuXHRcdFx0XHR9XG5cdFx0XHR9KSxcblx0XHRcdG1hcCgoW1t3YXNPcGVuXSwgW2lzT3BlbiwgY2x1ZUlzUGVuZGluZ0RlYm91bmNlXV0pID0+IChpc09wZW4gJiYgIXdhc09wZW4gPyAhY2x1ZUlzUGVuZGluZ0RlYm91bmNlIDogaXNPcGVuKSksXG5cdFx0XHRkaXN0aW5jdFVudGlsQ2hhbmdlZCgpLFxuXHRcdCk7XG5cblx0XHRyZXR1cm4gY29tYmluZUxhdGVzdChbdGhpcy5wYXJhbXMkLCBpc09wZW4kXSkucGlwZShcblx0XHRcdHN3aXRjaE1hcCgoW3BhcmFtcywgaXNPcGVuZWRdKSA9PlxuXHRcdFx0XHRpc09wZW5lZFxuXHRcdFx0XHRcdD8gdGhpcy5wYWdlJC5waXBlKFxuXHRcdFx0XHRcdFx0XHRjb25jYXRNYXAoKHBhZ2UpID0+IHtcblx0XHRcdFx0XHRcdFx0XHR0aGlzLnNlbGVjdC5sb2FkaW5nID0gdHJ1ZTtcblx0XHRcdFx0XHRcdFx0XHRyZXR1cm4gdGhpcy5nZXRPcHRpb25zKHBhcmFtcywgcGFnZSkucGlwZShcblx0XHRcdFx0XHRcdFx0XHRcdGNhdGNoRXJyb3IoKCkgPT4gb2YoW10gYXMgVE9wdGlvbltdKSksXG5cdFx0XHRcdFx0XHRcdFx0XHR0YXAoKCkgPT4gKHRoaXMuc2VsZWN0LmxvYWRpbmcgPSBmYWxzZSkpLFxuXHRcdFx0XHRcdFx0XHRcdCk7XG5cdFx0XHRcdFx0XHRcdH0pLFxuXHRcdFx0XHRcdFx0XHR0YWtlV2hpbGUoKGl0ZW1zKSA9PiBpdGVtcy5sZW5ndGggPT09IHRoaXMucGFnZVNpemUsIHRydWUpLFxuXHRcdFx0XHRcdFx0XHRzY2FuKChhY2MsIGl0ZW1zKSA9PiBbLi4uYWNjLCAuLi5pdGVtc10sIFtdIGFzIFRPcHRpb25bXSksXG5cdFx0XHRcdFx0ICApXG5cdFx0XHRcdFx0OiBvZihbXSBhcyBUT3B0aW9uW10pLFxuXHRcdFx0KSxcblx0XHQpO1xuXHR9XG5cblx0cHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuXHRcdHRoaXMuZGVzdHJveSQubmV4dCgpO1xuXHRcdHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcblx0fVxufVxuIl19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './public-api';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibHVjY2EtZnJvbnQtbmctY29yZS1zZWxlY3QtYXBpLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvbmcvY29yZS1zZWxlY3QvYXBpL2x1Y2NhLWZyb250LW5nLWNvcmUtc2VsZWN0LWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsY0FBYyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL3B1YmxpYy1hcGknO1xuIl19
@@ -0,0 +1,4 @@
1
+ export * from './api-v3.directive';
2
+ export * from './api-v4.directive';
3
+ export { ALuCoreSelectApiDirective } from './api.directive';
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nL2NvcmUtc2VsZWN0L2FwaS9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyxvQkFBb0IsQ0FBQztBQUNuQyxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYXBpLXYzLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL2FwaS12NC5kaXJlY3RpdmUnO1xuZXhwb3J0IHsgQUx1Q29yZVNlbGVjdEFwaURpcmVjdGl2ZSB9IGZyb20gJy4vYXBpLmRpcmVjdGl2ZSc7XG4iXX0=
@@ -22,10 +22,10 @@ export class ALuSelectInputComponent {
22
22
  this.nextPage = new EventEmitter();
23
23
  this.previousPage = new EventEmitter();
24
24
  this.options$ = new ReplaySubject(1);
25
- this.loading$ = new ReplaySubject(1);
25
+ this.loading$ = new BehaviorSubject(false);
26
26
  this.clue = null;
27
27
  // This is the clue stored after we selected an option to know if we should emit an empty clue on open or not
28
- this.previousClue = null;
28
+ this.lastEmittedClue = '';
29
29
  this.destroyed$ = new Subject();
30
30
  this.changeDetectorRef = inject(ChangeDetectorRef);
31
31
  this.overlayContainerRef = inject(OverlayContainer).getContainerElement();
@@ -48,7 +48,9 @@ export class ALuSelectInputComponent {
48
48
  return this.overlayContainerRef.id;
49
49
  }
50
50
  set loading(value) {
51
- this.loading$.next(value);
51
+ if (value !== this.loading) {
52
+ this.loading$.next(value);
53
+ }
52
54
  }
53
55
  set options(options) {
54
56
  this.options$.next(options);
@@ -64,9 +66,12 @@ export class ALuSelectInputComponent {
64
66
  return this.value ? null : this.placeholder;
65
67
  }
66
68
  clueChanged(clue) {
67
- this.clueChange.emit(clue);
68
69
  if (!this.isPanelOpen) {
69
- this.openPanel();
70
+ this.openPanel(clue);
71
+ }
72
+ else if (this.lastEmittedClue !== clue) {
73
+ this.clueChange.emit(clue);
74
+ this.lastEmittedClue = clue;
70
75
  }
71
76
  }
72
77
  get panelRef() {
@@ -132,15 +137,12 @@ export class ALuSelectInputComponent {
132
137
  this.updateValue(null);
133
138
  this.inputElementRef.nativeElement.focus();
134
139
  }
135
- openPanel() {
140
+ openPanel(clue = '') {
136
141
  if (this.isPanelOpen || this.disabled) {
137
142
  return;
138
143
  }
139
144
  this.isPanelOpen$.next(true);
140
- if (this.previousClue) {
141
- this.clueChanged('');
142
- this.previousClue = null;
143
- }
145
+ this.clueChanged(clue);
144
146
  this._panelRef = this.buildPanelRef();
145
147
  this.bindInputToPanelRefEvents();
146
148
  setTimeout(() => this.focusInput());
@@ -165,7 +167,6 @@ export class ALuSelectInputComponent {
165
167
  }
166
168
  emptyClue() {
167
169
  if (this.clue) {
168
- this.previousClue = this.clue;
169
170
  this.clue = null;
170
171
  }
171
172
  }
@@ -243,4 +244,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.2", ngImpor
243
244
  type: HostListener,
244
245
  args: ['keydown', ['$event']]
245
246
  }] } });
246
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nL2NvcmUtc2VsZWN0L2lucHV0L3NlbGVjdC1pbnB1dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsd0RBQXdEO0FBQ3hELE9BQU8sRUFBaUIsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RSxPQUFPLEVBQ04saUJBQWlCLEVBQ2pCLFlBQVksRUFDWixTQUFTLEVBRVQsWUFBWSxFQUNaLFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFHTixTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2hCLE1BQU0sR0FDTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLG9DQUFvQyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXpGLE9BQU8sRUFBbUIsWUFBWSxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUdqRixNQUFNLE9BQWdCLHVCQUF1QjtJQUQ3QztRQUtVLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBSTFCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFPbEIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQWtCVixpQkFBWSxHQUFHLElBQUksZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTFDLHNCQUFpQixHQUFHLElBQUksZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBT25ELGtCQUFhLEdBQW1CO1lBQy9CLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLGFBQWEsRUFBRSxrQ0FBa0M7U0FDakQsQ0FBQztRQVVPLG1CQUFjLEdBQW9ELENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFP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UTtzQkFBN0MsWUFBWTt1QkFBQyxzQkFBc0I7Z0JBRTFCLFVBQVU7c0JBQW5CLE1BQU07Z0JBQ0csUUFBUTtzQkFBakIsTUFBTTtnQkFDRyxZQUFZO3NCQUFyQixNQUFNO2dCQTBDUCxnQkFBZ0I7c0JBRGYsWUFBWTt1QkFBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBVWpDLG1CQUFtQjtzQkFEbEIsWUFBWTt1QkFBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAYW5ndWxhci1lc2xpbnQvbm8tb3V0cHV0LW9uLXByZWZpeCAqL1xuaW1wb3J0IHsgT3ZlcmxheUNvbmZpZywgT3ZlcmxheUNvbnRhaW5lciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9vdmVybGF5JztcbmltcG9ydCB7XG5cdENoYW5nZURldGVjdG9yUmVmLFxuXHRDb250ZW50Q2hpbGQsXG5cdERpcmVjdGl2ZSxcblx0RWxlbWVudFJlZixcblx0RXZlbnRFbWl0dGVyLFxuXHRIb3N0QmluZGluZyxcblx0SG9zdExpc3RlbmVyLFxuXHRJbnB1dCxcblx0T25EZXN0cm95LFxuXHRPbkluaXQsXG5cdE91dHB1dCxcblx0VGVtcGxhdGVSZWYsXG5cdFR5cGUsXG5cdFZpZXdDaGlsZCxcblx0Ym9vbGVhbkF0dHJpYnV0ZSxcblx0aW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgUmVwbGF5U3ViamVjdCwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTHVPcHRpb25Hcm91cERpcmVjdGl2ZSwgTHVTaW1wbGVTZWxlY3REZWZhdWx0T3B0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vb3B0aW9uJztcbmltcG9ydCB7IEx1U2VsZWN0UGFuZWxSZWYgfSBmcm9tICcuLi9wYW5lbCc7XG5pbXBvcnQgeyBMdU9wdGlvbkNvbnRleHQsIFNFTEVDVF9MQUJFTCwgU0VMRUNUX0xBQkVMX0lEIH0gZnJvbSAnLi4vc2VsZWN0Lm1vZGVsJztcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQUx1U2VsZWN0SW5wdXRDb21wb25lbnQ8VE9wdGlvbiwgVFZhbHVlPiBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25Jbml0IHtcblx0QFZpZXdDaGlsZCgnaW5wdXRFbGVtZW50Jylcblx0cHJpdmF0ZSBpbnB1dEVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD47XG5cblx0QElucHV0KCkgcGxhY2Vob2xkZXIgPSAnJztcblxuXHRASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcblx0QEhvc3RCaW5kaW5nKCdjbGFzcy5pcy1jbGVhcmFibGUnKVxuXHRjbGVhcmFibGUgPSBmYWxzZTtcblxuXHRnZXQgc2VhcmNoYWJsZSgpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gdGhpcy5jbHVlQ2hhbmdlLm9ic2VydmVkO1xuXHR9XG5cblx0QElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pXG5cdGRpc2FibGVkID0gZmFsc2U7XG5cblx0QEhvc3RCaW5kaW5nKCdjbGFzcy5pcy1zZWxlY3RlZCcpXG5cdHByb3RlY3RlZCBnZXQgaXNTZWxlY3RlZENsYXNzKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiB0aGlzLmhhc1ZhbHVlO1xuXHR9XG5cblx0QEhvc3RCaW5kaW5nKCdjbGFzcy5pcy1zZWFyY2hGaWxsZWQnKVxuXHRwcm90ZWN0ZWQgZ2V0IGlzU2VhcmNoRmlsbGVkQ2xhc3MoKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIHRoaXMuY2x1ZT8ubGVuZ3RoID4gMDtcblx0fVxuXG5cdHByb3RlY3RlZCBhYnN0cmFjdCByZWFkb25seSBoYXNWYWx1ZTogYm9vbGVhbjtcblxuXHRwdWJsaWMgZ2V0IGlzUGFuZWxPcGVuKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiB0aGlzLmlzUGFuZWxPcGVuJC52YWx1ZTtcblx0fVxuXG5cdHB1YmxpYyBpc1BhbmVsT3BlbiQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcblxuXHRwdWJsaWMgYWN0aXZlRGVzY2VuZGFudCQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KCcnKTtcblxuXHRnZXQgYXJpYUNvbnRyb2xzKCk6IHN0cmluZyB7XG5cdFx0cmV0dXJuIHRoaXMub3ZlcmxheUNvbnRhaW5lclJlZi5pZDtcblx0fVxuXG5cdEBJbnB1dCgpXG5cdG92ZXJsYXlDb25maWc/OiBPdmVybGF5Q29uZmlnID0ge1xuXHRcdGhhc0JhY2tkcm9wOiB0cnVlLFxuXHRcdGJhY2tkcm9wQ2xhc3M6ICdjZGstb3ZlcmxheS10cmFuc3BhcmVudC1iYWNrZHJvcCcsXG5cdH07XG5cblx0QElucHV0KCkgc2V0IGxvYWRpbmcodmFsdWU6IGJvb2xlYW4pIHtcblx0XHR0aGlzLmxvYWRpbmckLm5leHQodmFsdWUpO1xuXHR9XG5cblx0QElucHV0KCkgc2V0IG9wdGlvbnMob3B0aW9uczogVE9wdGlvbltdKSB7XG5cdFx0dGhpcy5vcHRpb25zJC5uZXh0KG9wdGlvbnMpO1xuXHR9XG5cblx0QElucHV0KCkgb3B0aW9uQ29tcGFyZXI6IChvcHRpb24xOiBUT3B0aW9uLCBvcHRpb24yOiBUT3B0aW9uKSA9PiBib29sZWFuID0gKG9wdGlvbjEsIG9wdGlvbjIpID0+IEpTT04uc3RyaW5naWZ5KG9wdGlvbjEpID09PSBKU09OLnN0cmluZ2lmeShvcHRpb24yKTtcblx0QElucHV0KCkgb3B0aW9uVHBsPzogVGVtcGxhdGVSZWY8THVPcHRpb25Db250ZXh0PFRPcHRpb24+PiB8IFR5cGU8dW5rbm93bj4gPSBMdVNpbXBsZVNlbGVjdERlZmF1bHRPcHRpb25Db21wb25lbnQ7XG5cdEBJbnB1dCgpIHZhbHVlVHBsPzogVGVtcGxhdGVSZWY8THVPcHRpb25Db250ZXh0PFRPcHRpb24+PiB8IFR5cGU8dW5rbm93bj47XG5cdEBDb250ZW50Q2hpbGQoTHVPcHRpb25Hcm91cERpcmVjdGl2ZSkgZ3JvdXBpbmc/OiBMdU9wdGlvbkdyb3VwRGlyZWN0aXZlPFRPcHRpb24sIFRWYWx1ZSwgdW5rbm93bj47XG5cblx0QE91dHB1dCgpIGNsdWVDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcblx0QE91dHB1dCgpIG5leHRQYWdlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXHRAT3V0cHV0KCkgcHJldmlvdXNQYWdlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xuXG5cdHB1YmxpYyBnZXQgdmFsdWUoKTogVFZhbHVlIHtcblx0XHRyZXR1cm4gdGhpcy5fdmFsdWU7XG5cdH1cblxuXHRwcm90ZWN0ZWQgc2V0IHZhbHVlKHZhbHVlOiBUVmFsdWUpIHtcblx0XHR0aGlzLl92YWx1ZSA9IHZhbHVlO1xuXHRcdHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG5cdH1cblxuXHRwdWJsaWMgZ2V0IGlucHV0UGxhY2Vob2xkZXIoKTogc3RyaW5nIHwgbnVsbCB7XG5cdFx0cmV0dXJuIHRoaXMudmFsdWUgPyBudWxsIDogdGhpcy5wbGFjZWhvbGRlcjtcblx0fVxuXG5cdHB1YmxpYyBjbHVlQ2hhbmdlZChjbHVlOiBzdHJpbmcpOiB2b2lkIHtcblx0XHR0aGlzLmNsdWVDaGFuZ2UuZW1pdChjbHVlKTtcblx0XHRpZiAoIXRoaXMuaXNQYW5lbE9wZW4pIHtcblx0XHRcdHRoaXMub3BlblBhbmVsKCk7XG5cdFx0fVxuXHR9XG5cblx0cHJvdGVjdGVkIF92YWx1ZT86IFRWYWx1ZTtcblxuXHRvcHRpb25zJCA9IG5ldyBSZXBsYXlTdWJqZWN0PFRPcHRpb25bXT4oMSk7XG5cdGxvYWRpbmckID0gbmV3IFJlcGxheVN1YmplY3Q8Ym9vbGVhbj4oMSk7XG5cdGNsdWU6IHN0cmluZyB8IG51bGwgPSBudWxsO1xuXHQvLyBUaGlzIGlzIHRoZSBjbHVlIHN0b3JlZCBhZnRlciB3ZSBzZWxlY3RlZCBhbiBvcHRpb24gdG8ga25vdyBpZiB3ZSBzaG91bGQgZW1pdCBhbiBlbXB0eSBjbHVlIG9uIG9wZW4gb3Igbm90XG5cdHByZXZpb3VzQ2x1ZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cblx0cHJvdGVjdGVkIG9uQ2hhbmdlPzogKHZhbHVlOiBUVmFsdWUgfCBudWxsKSA9PiB2b2lkO1xuXHRwcm90ZWN0ZWQgb25Ub3VjaGVkPzogKCkgPT4gdm9pZDtcblxuXHRwdWJsaWMgZ2V0IHBhbmVsUmVmKCk6IEx1U2VsZWN0UGFuZWxSZWY8VE9wdGlvbiwgVFZhbHVlPiB8IHVuZGVmaW5lZCB7XG5cdFx0cmV0dXJuIHRoaXMuX3BhbmVsUmVmO1xuXHR9XG5cblx0cHJvdGVjdGVkIF9wYW5lbFJlZj86IEx1U2VsZWN0UGFuZWxSZWY8VE9wdGlvbiwgVFZhbHVlPjtcblxuXHRwcm90ZWN0ZWQgZGVzdHJveWVkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cblx0QEhvc3RMaXN0ZW5lcignY2xpY2snLCBbJyRldmVudCddKVxuXHRvbkNsaWNrT3BlblBhbmVsKCRldmVudDogS2V5Ym9hcmRFdmVudCkge1xuXHRcdGlmICghdGhpcy5pc1BhbmVsT3Blbikge1xuXHRcdFx0dGhpcy5vcGVuUGFuZWwoKTtcblx0XHRcdCRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblx0XHRcdCRldmVudC5wcmV2ZW50RGVmYXVsdCgpO1xuXHRcdH1cblx0fVxuXG5cdEBIb3N0TGlzdGVuZXIoJ2tleWRvd24nLCBbJyRldmVudCddKVxuXHRvbktleURvd25OYXZpZ2F0aW9uKCRldmVudDogS2V5Ym9hcmRFdmVudCk6IHZvaWQge1xuXHRcdHN3aXRjaCAoJGV2ZW50LmtleSkge1xuXHRcdFx0Y2FzZSAnRXNjYXBlJzpcblx0XHRcdGNhc2UgJ1RhYic6XG5cdFx0XHRcdHRoaXMucGFuZWxSZWY/LmNsb3NlKCk7XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSAnRW50ZXInOlxuXHRcdFx0XHRpZiAodGhpcy5pc1BhbmVsT3Blbikge1xuXHRcdFx0XHRcdHRoaXMucGFuZWxSZWYuc2VsZWN0Q3VycmVudGx5SGlnaGxpZ2h0ZWRWYWx1ZSgpO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHRoaXMucGFuZWxSZWY/LmhhbmRsZUtleU1hbmFnZXJFdmVudCgkZXZlbnQpO1xuXHRcdFx0XHR9XG5cdFx0XHRcdGJyZWFrO1xuXHRcdFx0Y2FzZSAnU3BhY2UnOlxuXHRcdFx0Y2FzZSAnQXJyb3dEb3duJzpcblx0XHRcdGNhc2UgJ0Fycm93VXAnOlxuXHRcdFx0XHRpZiAodGhpcy5pc1BhbmVsT3Blbikge1xuXHRcdFx0XHRcdHRoaXMucGFuZWxSZWY/LmhhbmRsZUtleU1hbmFnZXJFdmVudCgkZXZlbnQpO1xuXHRcdFx0XHR9IGVsc2Uge1xuXHRcdFx0XHRcdHRoaXMub3BlblBhbmVsKCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRkZWZhdWx0OlxuXHRcdFx0XHR0aGlzLnBhbmVsUmVmPy5oYW5kbGVLZXlNYW5hZ2VyRXZlbnQoJGV2ZW50KTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0fVxuXHR9XG5cblx0cHJvdGVjdGVkIGNoYW5nZURldGVjdG9yUmVmID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcblx0cHJvdGVjdGVkIG92ZXJsYXlDb250YWluZXJSZWY6IEhUTUxFbGVtZW50ID0gaW5qZWN0KE92ZXJsYXlDb250YWluZXIpLmdldENvbnRhaW5lckVsZW1lbnQoKTtcblxuXHRwcm90ZWN0ZWQgbGFiZWxFbGVtZW50OiBIVE1MRWxlbWVudCB8IHVuZGVmaW5lZCA9IGluamVjdChTRUxFQ1RfTEFCRUwpO1xuXHRwcm90ZWN0ZWQgbGFiZWxJZDogc3RyaW5nID0gaW5qZWN0KFNFTEVDVF9MQUJFTF9JRCk7XG5cblx0cmVnaXN0ZXJPbkNoYW5nZShvbkNoYW5nZTogKHZhbHVlOiBUVmFsdWUpID0+IHZvaWQpOiB2b2lkIHtcblx0XHR0aGlzLm9uQ2hhbmdlID0gb25DaGFuZ2U7XG5cdH1cblxuXHRyZWdpc3Rlck9uVG91Y2hlZChvblRvdWNoZWQ6ICgpID0+IHZvaWQpOiB2b2lkIHtcblx0XHR0aGlzLm9uVG91Y2hlZCA9IG9uVG91Y2hlZDtcblx0fVxuXG5cdHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYm9vbGVhbik6IHZvaWQge1xuXHRcdHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuXHR9XG5cblx0bmdPbkRlc3Ryb3koKTogdm9pZCB7XG5cdFx0dGhpcy5jbG9zZVBhbmVsKCk7XG5cdFx0dGhpcy5kZXN0cm95ZWQkLm5leHQoKTtcblx0XHR0aGlzLmRlc3Ryb3llZCQuY29tcGxldGUoKTtcblx0fVxuXG5cdG5nT25Jbml0KCk6IHZvaWQge1xuXHRcdGlmICh0aGlzLmxhYmVsRWxlbWVudCkge1xuXHRcdFx0dGhpcy5sYWJlbEVsZW1lbnQuaWQgPSB0aGlzLmxhYmVsSWQ7XG5cdFx0fVxuXHR9XG5cblx0Y2xlYXJWYWx1ZShldmVudDogRXZlbnQpOiB2b2lkIHtcblx0XHRldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcblx0XHR0aGlzLnVwZGF0ZVZhbHVlKG51bGwpO1xuXHRcdHRoaXMuaW5wdXRFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcblx0fVxuXG5cdG9wZW5QYW5lbCgpOiB2b2lkIHtcblx0XHRpZiAodGhpcy5pc1BhbmVsT3BlbiB8fCB0aGlzLmRpc2FibGVkKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXG5cdFx0dGhpcy5pc1BhbmVsT3BlbiQubmV4dCh0cnVlKTtcblx0XHRpZiAodGhpcy5wcmV2aW91c0NsdWUpIHtcblx0XHRcdHRoaXMuY2x1ZUNoYW5nZWQoJycpO1xuXHRcdFx0dGhpcy5wcmV2aW91c0NsdWUgPSBudWxsO1xuXHRcdH1cblx0XHR0aGlzLl9wYW5lbFJlZiA9IHRoaXMuYnVpbGRQYW5lbFJlZigpO1xuXHRcdHRoaXMuYmluZElucHV0VG9QYW5lbFJlZkV2ZW50cygpO1xuXHRcdHNldFRpbWVvdXQoKCkgPT4gdGhpcy5mb2N1c0lucHV0KCkpO1xuXHR9XG5cblx0cHJvdGVjdGVkIGFic3RyYWN0IGJ1aWxkUGFuZWxSZWYoKTogdGhpc1sncGFuZWxSZWYnXTtcblxuXHRwcm90ZWN0ZWQgYmluZElucHV0VG9QYW5lbFJlZkV2ZW50cygpOiB2b2lkIHtcblx0XHRpZiAoIXRoaXMucGFuZWxSZWYpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHR0aGlzLnBhbmVsUmVmLnZhbHVlQ2hhbmdlZC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB0aGlzLnVwZGF0ZVZhbHVlKHZhbHVlKSk7XG5cdFx0dGhpcy5wYW5lbFJlZi5uZXh0UGFnZS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5uZXh0UGFnZS5lbWl0KCkpO1xuXHRcdHRoaXMucGFuZWxSZWYucHJldmlvdXNQYWdlLnN1YnNjcmliZSgoKSA9PiB0aGlzLnByZXZpb3VzUGFnZS5lbWl0KCkpO1xuXHRcdHRoaXMucGFuZWxSZWYuYWN0aXZlT3B0aW9uSWRDaGFuZ2VkLnN1YnNjcmliZSgob3B0aW9uSWQpID0+IHtcblx0XHRcdHRoaXMuYWN0aXZlRGVzY2VuZGFudCQubmV4dChvcHRpb25JZCk7XG5cdFx0XHR0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuXHRcdH0pO1xuXHRcdHRoaXMucGFuZWxSZWYuY2xvc2VkLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNsb3NlUGFuZWwoKSk7XG5cdH1cblxuXHRwcm90ZWN0ZWQgZm9jdXNJbnB1dCgpOiB2b2lkIHtcblx0XHRpZiAodGhpcy5pbnB1dEVsZW1lbnRSZWYpIHtcblx0XHRcdHRoaXMuaW5wdXRFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcblx0XHR9XG5cdH1cblxuXHRwcm90ZWN0ZWQgZW1wdHlDbHVlKCk6IHZvaWQge1xuXHRcdGlmICh0aGlzLmNsdWUpIHtcblx0XHRcdHRoaXMucHJldmlvdXNDbHVlID0gdGhpcy5jbHVlO1xuXHRcdFx0dGhpcy5jbHVlID0gbnVsbDtcblx0XHR9XG5cdH1cblxuXHRwdWJsaWMgY2xvc2VQYW5lbCgpOiB2b2lkIHtcblx0XHRpZiAoIXRoaXMuaXNQYW5lbE9wZW4pIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cdFx0dGhpcy5lbXB0eUNsdWUoKTtcblx0XHR0aGlzLmFjdGl2ZURlc2NlbmRhbnQkLm5leHQoJycpO1xuXHRcdHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCk7XG5cdFx0dGhpcy5vblRvdWNoZWQ/LigpO1xuXHRcdHRoaXMuaXNQYW5lbE9wZW4kLm5leHQoZmFsc2UpO1xuXHRcdHRoaXMucGFuZWxSZWYuY2xvc2UoKTtcblx0XHR0aGlzLl9wYW5lbFJlZiA9IHVuZGVmaW5lZDtcblx0fVxuXG5cdHB1YmxpYyB3cml0ZVZhbHVlKHZhbHVlOiBUVmFsdWUpOiB2b2lkIHtcblx0XHR0aGlzLnZhbHVlID0gdmFsdWU7XG5cdH1cblxuXHRwdWJsaWMgdXBkYXRlVmFsdWUodmFsdWU6IFRWYWx1ZSk6IHZvaWQge1xuXHRcdHRoaXMudmFsdWUgPSB2YWx1ZTtcblx0XHR0aGlzLmVtcHR5Q2x1ZSgpO1xuXHRcdHRoaXMub25DaGFuZ2U/Lih2YWx1ZSk7XG5cdFx0dGhpcy5vblRvdWNoZWQ/LigpO1xuXHR9XG59XG4iXX0=
247
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWlucHV0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL25nL2NvcmUtc2VsZWN0L2lucHV0L3NlbGVjdC1pbnB1dC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsd0RBQXdEO0FBQ3hELE9BQU8sRUFBaUIsZ0JBQWdCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUN2RSxPQUFPLEVBQ04saUJBQWlCLEVBQ2pCLFlBQVksRUFDWixTQUFTLEVBRVQsWUFBWSxFQUNaLFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sRUFHTixTQUFTLEVBQ1QsZ0JBQWdCLEVBQ2hCLE1BQU0sR0FDTixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDL0QsT0FBTyxFQUFFLHNCQUFzQixFQUFFLG9DQUFvQyxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRXpGLE9BQU8sRUFBbUIsWUFBWSxFQUFFLGVBQWUsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUdqRixNQUFNLE9BQWdCLHVCQUF1QjtJQUQ3QztRQUtVLGdCQUFXLEdBQUcsRUFBRSxDQUFDO1FBSTFCLGNBQVMsR0FBRyxLQUFLLENBQUM7UUFPbEIsYUFBUSxHQUFHLEtBQUssQ0FBQztRQWtCVixpQkFBWSxHQUFHLElBQUksZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRTFDLHNCQUFpQixHQUFHLElBQUksZUFBZSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBT25ELGtCQUFhLEdBQW1CO1lBQy9CLFdBQVcsRUFBRSxJQUFJO1lBQ2pCLGFBQWEsRUFBRSxrQ0FBa0M7U0FDakQsQ0FBQztRQVlPLG1CQUFjLEdBQW9ELENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFP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SztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNnQyxRQUFRO3NCQUE3QyxZQUFZO3VCQUFDLHNCQUFzQjtnQkFFMUIsVUFBVTtzQkFBbkIsTUFBTTtnQkFDRyxRQUFRO3NCQUFqQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBNENQLGdCQUFnQjtzQkFEZixZQUFZO3VCQUFDLE9BQU8sRUFBRSxDQUFDLFFBQVEsQ0FBQztnQkFVakMsbUJBQW1CO3NCQURsQixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9uby1vdXRwdXQtb24tcHJlZml4ICovXG5pbXBvcnQgeyBPdmVybGF5Q29uZmlnLCBPdmVybGF5Q29udGFpbmVyIH0gZnJvbSAnQGFuZ3VsYXIvY2RrL292ZXJsYXknO1xuaW1wb3J0IHtcblx0Q2hhbmdlRGV0ZWN0b3JSZWYsXG5cdENvbnRlbnRDaGlsZCxcblx0RGlyZWN0aXZlLFxuXHRFbGVtZW50UmVmLFxuXHRFdmVudEVtaXR0ZXIsXG5cdEhvc3RCaW5kaW5nLFxuXHRIb3N0TGlzdGVuZXIsXG5cdElucHV0LFxuXHRPbkRlc3Ryb3ksXG5cdE9uSW5pdCxcblx0T3V0cHV0LFxuXHRUZW1wbGF0ZVJlZixcblx0VHlwZSxcblx0Vmlld0NoaWxkLFxuXHRib29sZWFuQXR0cmlidXRlLFxuXHRpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBSZXBsYXlTdWJqZWN0LCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBMdU9wdGlvbkdyb3VwRGlyZWN0aXZlLCBMdVNpbXBsZVNlbGVjdERlZmF1bHRPcHRpb25Db21wb25lbnQgfSBmcm9tICcuLi9vcHRpb24nO1xuaW1wb3J0IHsgTHVTZWxlY3RQYW5lbFJlZiB9IGZyb20gJy4uL3BhbmVsJztcbmltcG9ydCB7IEx1T3B0aW9uQ29udGV4dCwgU0VMRUNUX0xBQkVMLCBTRUxFQ1RfTEFCRUxfSUQgfSBmcm9tICcuLi9zZWxlY3QubW9kZWwnO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBTHVTZWxlY3RJbnB1dENvbXBvbmVudDxUT3B0aW9uLCBUVmFsdWU+IGltcGxlbWVudHMgT25EZXN0cm95LCBPbkluaXQge1xuXHRAVmlld0NoaWxkKCdpbnB1dEVsZW1lbnQnKVxuXHRwcml2YXRlIGlucHV0RWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcblxuXHRASW5wdXQoKSBwbGFjZWhvbGRlciA9ICcnO1xuXG5cdEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KVxuXHRASG9zdEJpbmRpbmcoJ2NsYXNzLmlzLWNsZWFyYWJsZScpXG5cdGNsZWFyYWJsZSA9IGZhbHNlO1xuXG5cdGdldCBzZWFyY2hhYmxlKCk6IGJvb2xlYW4ge1xuXHRcdHJldHVybiB0aGlzLmNsdWVDaGFuZ2Uub2JzZXJ2ZWQ7XG5cdH1cblxuXHRASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSlcblx0ZGlzYWJsZWQgPSBmYWxzZTtcblxuXHRASG9zdEJpbmRpbmcoJ2NsYXNzLmlzLXNlbGVjdGVkJylcblx0cHJvdGVjdGVkIGdldCBpc1NlbGVjdGVkQ2xhc3MoKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIHRoaXMuaGFzVmFsdWU7XG5cdH1cblxuXHRASG9zdEJpbmRpbmcoJ2NsYXNzLmlzLXNlYXJjaEZpbGxlZCcpXG5cdHByb3RlY3RlZCBnZXQgaXNTZWFyY2hGaWxsZWRDbGFzcygpOiBib29sZWFuIHtcblx0XHRyZXR1cm4gdGhpcy5jbHVlPy5sZW5ndGggPiAwO1xuXHR9XG5cblx0cHJvdGVjdGVkIGFic3RyYWN0IHJlYWRvbmx5IGhhc1ZhbHVlOiBib29sZWFuO1xuXG5cdHB1YmxpYyBnZXQgaXNQYW5lbE9wZW4oKTogYm9vbGVhbiB7XG5cdFx0cmV0dXJuIHRoaXMuaXNQYW5lbE9wZW4kLnZhbHVlO1xuXHR9XG5cblx0cHVibGljIGlzUGFuZWxPcGVuJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuXG5cdHB1YmxpYyBhY3RpdmVEZXNjZW5kYW50JCA9IG5ldyBCZWhhdmlvclN1YmplY3QoJycpO1xuXG5cdGdldCBhcmlhQ29udHJvbHMoKTogc3RyaW5nIHtcblx0XHRyZXR1cm4gdGhpcy5vdmVybGF5Q29udGFpbmVyUmVmLmlkO1xuXHR9XG5cblx0QElucHV0KClcblx0b3ZlcmxheUNvbmZpZz86IE92ZXJsYXlDb25maWcgPSB7XG5cdFx0aGFzQmFja2Ryb3A6IHRydWUsXG5cdFx0YmFja2Ryb3BDbGFzczogJ2Nkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wJyxcblx0fTtcblxuXHRASW5wdXQoKSBzZXQgbG9hZGluZyh2YWx1ZTogYm9vbGVhbikge1xuXHRcdGlmICh2YWx1ZSAhPT0gdGhpcy5sb2FkaW5nKSB7XG5cdFx0XHR0aGlzLmxvYWRpbmckLm5leHQodmFsdWUpO1xuXHRcdH1cblx0fVxuXG5cdEBJbnB1dCgpIHNldCBvcHRpb25zKG9wdGlvbnM6IFRPcHRpb25bXSkge1xuXHRcdHRoaXMub3B0aW9ucyQubmV4dChvcHRpb25zKTtcblx0fVxuXG5cdEBJbnB1dCgpIG9wdGlvbkNvbXBhcmVyOiAob3B0aW9uMTogVE9wdGlvbiwgb3B0aW9uMjogVE9wdGlvbikgPT4gYm9vbGVhbiA9IChvcHRpb24xLCBvcHRpb24yKSA9PiBKU09OLnN0cmluZ2lmeShvcHRpb24xKSA9PT0gSlNPTi5zdHJpbmdpZnkob3B0aW9uMik7XG5cdEBJbnB1dCgpIG9wdGlvblRwbD86IFRlbXBsYXRlUmVmPEx1T3B0aW9uQ29udGV4dDxUT3B0aW9uPj4gfCBUeXBlPHVua25vd24+ID0gTHVTaW1wbGVTZWxlY3REZWZhdWx0T3B0aW9uQ29tcG9uZW50O1xuXHRASW5wdXQoKSB2YWx1ZVRwbD86IFRlbXBsYXRlUmVmPEx1T3B0aW9uQ29udGV4dDxUT3B0aW9uPj4gfCBUeXBlPHVua25vd24+O1xuXHRAQ29udGVudENoaWxkKEx1T3B0aW9uR3JvdXBEaXJlY3RpdmUpIGdyb3VwaW5nPzogTHVPcHRpb25Hcm91cERpcmVjdGl2ZTxUT3B0aW9uLCBUVmFsdWUsIHVua25vd24+O1xuXG5cdEBPdXRwdXQoKSBjbHVlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG5cdEBPdXRwdXQoKSBuZXh0UGFnZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblx0QE91dHB1dCgpIHByZXZpb3VzUGFnZSA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcblxuXHRwdWJsaWMgZ2V0IHZhbHVlKCk6IFRWYWx1ZSB7XG5cdFx0cmV0dXJuIHRoaXMuX3ZhbHVlO1xuXHR9XG5cblx0cHJvdGVjdGVkIHNldCB2YWx1ZSh2YWx1ZTogVFZhbHVlKSB7XG5cdFx0dGhpcy5fdmFsdWUgPSB2YWx1ZTtcblx0XHR0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuXHR9XG5cblx0cHVibGljIGdldCBpbnB1dFBsYWNlaG9sZGVyKCk6IHN0cmluZyB8IG51bGwge1xuXHRcdHJldHVybiB0aGlzLnZhbHVlID8gbnVsbCA6IHRoaXMucGxhY2Vob2xkZXI7XG5cdH1cblxuXHRwdWJsaWMgY2x1ZUNoYW5nZWQoY2x1ZTogc3RyaW5nKTogdm9pZCB7XG5cdFx0aWYgKCF0aGlzLmlzUGFuZWxPcGVuKSB7XG5cdFx0XHR0aGlzLm9wZW5QYW5lbChjbHVlKTtcblx0XHR9IGVsc2UgaWYgKHRoaXMubGFzdEVtaXR0ZWRDbHVlICE9PSBjbHVlKSB7XG5cdFx0XHR0aGlzLmNsdWVDaGFuZ2UuZW1pdChjbHVlKTtcblx0XHRcdHRoaXMubGFzdEVtaXR0ZWRDbHVlID0gY2x1ZTtcblx0XHR9XG5cdH1cblxuXHRwcm90ZWN0ZWQgX3ZhbHVlPzogVFZhbHVlO1xuXG5cdG9wdGlvbnMkID0gbmV3IFJlcGxheVN1YmplY3Q8VE9wdGlvbltdPigxKTtcblx0bG9hZGluZyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKTtcblx0Y2x1ZTogc3RyaW5nIHwgbnVsbCA9IG51bGw7XG5cdC8vIFRoaXMgaXMgdGhlIGNsdWUgc3RvcmVkIGFmdGVyIHdlIHNlbGVjdGVkIGFuIG9wdGlvbiB0byBrbm93IGlmIHdlIHNob3VsZCBlbWl0IGFuIGVtcHR5IGNsdWUgb24gb3BlbiBvciBub3Rcblx0bGFzdEVtaXR0ZWRDbHVlOiBzdHJpbmcgPSAnJztcblxuXHRwcm90ZWN0ZWQgb25DaGFuZ2U/OiAodmFsdWU6IFRWYWx1ZSB8IG51bGwpID0+IHZvaWQ7XG5cdHByb3RlY3RlZCBvblRvdWNoZWQ/OiAoKSA9PiB2b2lkO1xuXG5cdHB1YmxpYyBnZXQgcGFuZWxSZWYoKTogTHVTZWxlY3RQYW5lbFJlZjxUT3B0aW9uLCBUVmFsdWU+IHwgdW5kZWZpbmVkIHtcblx0XHRyZXR1cm4gdGhpcy5fcGFuZWxSZWY7XG5cdH1cblxuXHRwcm90ZWN0ZWQgX3BhbmVsUmVmPzogTHVTZWxlY3RQYW5lbFJlZjxUT3B0aW9uLCBUVmFsdWU+O1xuXG5cdHByb3RlY3RlZCBkZXN0cm95ZWQkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuXHRASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG5cdG9uQ2xpY2tPcGVuUGFuZWwoJGV2ZW50OiBLZXlib2FyZEV2ZW50KSB7XG5cdFx0aWYgKCF0aGlzLmlzUGFuZWxPcGVuKSB7XG5cdFx0XHR0aGlzLm9wZW5QYW5lbCgpO1xuXHRcdFx0JGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXHRcdFx0JGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG5cdFx0fVxuXHR9XG5cblx0QEhvc3RMaXN0ZW5lcigna2V5ZG93bicsIFsnJGV2ZW50J10pXG5cdG9uS2V5RG93bk5hdmlnYXRpb24oJGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG5cdFx0c3dpdGNoICgkZXZlbnQua2V5KSB7XG5cdFx0XHRjYXNlICdFc2NhcGUnOlxuXHRcdFx0Y2FzZSAnVGFiJzpcblx0XHRcdFx0dGhpcy5wYW5lbFJlZj8uY2xvc2UoKTtcblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlICdFbnRlcic6XG5cdFx0XHRcdGlmICh0aGlzLmlzUGFuZWxPcGVuKSB7XG5cdFx0XHRcdFx0dGhpcy5wYW5lbFJlZi5zZWxlY3RDdXJyZW50bHlIaWdobGlnaHRlZFZhbHVlKCk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0dGhpcy5wYW5lbFJlZj8uaGFuZGxlS2V5TWFuYWdlckV2ZW50KCRldmVudCk7XG5cdFx0XHRcdH1cblx0XHRcdFx0YnJlYWs7XG5cdFx0XHRjYXNlICdTcGFjZSc6XG5cdFx0XHRjYXNlICdBcnJvd0Rvd24nOlxuXHRcdFx0Y2FzZSAnQXJyb3dVcCc6XG5cdFx0XHRcdGlmICh0aGlzLmlzUGFuZWxPcGVuKSB7XG5cdFx0XHRcdFx0dGhpcy5wYW5lbFJlZj8uaGFuZGxlS2V5TWFuYWdlckV2ZW50KCRldmVudCk7XG5cdFx0XHRcdH0gZWxzZSB7XG5cdFx0XHRcdFx0dGhpcy5vcGVuUGFuZWwoKTtcblx0XHRcdFx0fVxuXHRcdFx0XHRicmVhaztcblx0XHRcdGRlZmF1bHQ6XG5cdFx0XHRcdHRoaXMucGFuZWxSZWY/LmhhbmRsZUtleU1hbmFnZXJFdmVudCgkZXZlbnQpO1xuXHRcdFx0XHRicmVhaztcblx0XHR9XG5cdH1cblxuXHRwcm90ZWN0ZWQgY2hhbmdlRGV0ZWN0b3JSZWYgPSBpbmplY3QoQ2hhbmdlRGV0ZWN0b3JSZWYpO1xuXHRwcm90ZWN0ZWQgb3ZlcmxheUNvbnRhaW5lclJlZjogSFRNTEVsZW1lbnQgPSBpbmplY3QoT3ZlcmxheUNvbnRhaW5lcikuZ2V0Q29udGFpbmVyRWxlbWVudCgpO1xuXG5cdHByb3RlY3RlZCBsYWJlbEVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgdW5kZWZpbmVkID0gaW5qZWN0KFNFTEVDVF9MQUJFTCk7XG5cdHByb3RlY3RlZCBsYWJlbElkOiBzdHJpbmcgPSBpbmplY3QoU0VMRUNUX0xBQkVMX0lEKTtcblxuXHRyZWdpc3Rlck9uQ2hhbmdlKG9uQ2hhbmdlOiAodmFsdWU6IFRWYWx1ZSkgPT4gdm9pZCk6IHZvaWQge1xuXHRcdHRoaXMub25DaGFuZ2UgPSBvbkNoYW5nZTtcblx0fVxuXG5cdHJlZ2lzdGVyT25Ub3VjaGVkKG9uVG91Y2hlZDogKCkgPT4gdm9pZCk6IHZvaWQge1xuXHRcdHRoaXMub25Ub3VjaGVkID0gb25Ub3VjaGVkO1xuXHR9XG5cblx0c2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG5cdFx0dGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XG5cdH1cblxuXHRuZ09uRGVzdHJveSgpOiB2b2lkIHtcblx0XHR0aGlzLmNsb3NlUGFuZWwoKTtcblx0XHR0aGlzLmRlc3Ryb3llZCQubmV4dCgpO1xuXHRcdHRoaXMuZGVzdHJveWVkJC5jb21wbGV0ZSgpO1xuXHR9XG5cblx0bmdPbkluaXQoKTogdm9pZCB7XG5cdFx0aWYgKHRoaXMubGFiZWxFbGVtZW50KSB7XG5cdFx0XHR0aGlzLmxhYmVsRWxlbWVudC5pZCA9IHRoaXMubGFiZWxJZDtcblx0XHR9XG5cdH1cblxuXHRjbGVhclZhbHVlKGV2ZW50OiBFdmVudCk6IHZvaWQge1xuXHRcdGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuXHRcdHRoaXMudXBkYXRlVmFsdWUobnVsbCk7XG5cdFx0dGhpcy5pbnB1dEVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuXHR9XG5cblx0b3BlblBhbmVsKGNsdWU6IHN0cmluZyA9ICcnKTogdm9pZCB7XG5cdFx0aWYgKHRoaXMuaXNQYW5lbE9wZW4gfHwgdGhpcy5kaXNhYmxlZCkge1xuXHRcdFx0cmV0dXJuO1xuXHRcdH1cblxuXHRcdHRoaXMuaXNQYW5lbE9wZW4kLm5leHQodHJ1ZSk7XG5cdFx0dGhpcy5jbHVlQ2hhbmdlZChjbHVlKTtcblx0XHR0aGlzLl9wYW5lbFJlZiA9IHRoaXMuYnVpbGRQYW5lbFJlZigpO1xuXHRcdHRoaXMuYmluZElucHV0VG9QYW5lbFJlZkV2ZW50cygpO1xuXHRcdHNldFRpbWVvdXQoKCkgPT4gdGhpcy5mb2N1c0lucHV0KCkpO1xuXHR9XG5cblx0cHJvdGVjdGVkIGFic3RyYWN0IGJ1aWxkUGFuZWxSZWYoKTogdGhpc1sncGFuZWxSZWYnXTtcblxuXHRwcm90ZWN0ZWQgYmluZElucHV0VG9QYW5lbFJlZkV2ZW50cygpOiB2b2lkIHtcblx0XHRpZiAoIXRoaXMucGFuZWxSZWYpIHtcblx0XHRcdHJldHVybjtcblx0XHR9XG5cblx0XHR0aGlzLnBhbmVsUmVmLnZhbHVlQ2hhbmdlZC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB0aGlzLnVwZGF0ZVZhbHVlKHZhbHVlKSk7XG5cdFx0dGhpcy5wYW5lbFJlZi5uZXh0UGFnZS5zdWJzY3JpYmUoKCkgPT4gdGhpcy5uZXh0UGFnZS5lbWl0KCkpO1xuXHRcdHRoaXMucGFuZWxSZWYucHJldmlvdXNQYWdlLnN1YnNjcmliZSgoKSA9PiB0aGlzLnByZXZpb3VzUGFnZS5lbWl0KCkpO1xuXHRcdHRoaXMucGFuZWxSZWYuYWN0aXZlT3B0aW9uSWRDaGFuZ2VkLnN1YnNjcmliZSgob3B0aW9uSWQpID0+IHtcblx0XHRcdHRoaXMuYWN0aXZlRGVzY2VuZGFudCQubmV4dChvcHRpb25JZCk7XG5cdFx0XHR0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuXHRcdH0pO1xuXHRcdHRoaXMucGFuZWxSZWYuY2xvc2VkLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNsb3NlUGFuZWwoKSk7XG5cdH1cblxuXHRwcm90ZWN0ZWQgZm9jdXNJbnB1dCgpOiB2b2lkIHtcblx0XHRpZiAodGhpcy5pbnB1dEVsZW1lbnRSZWYpIHtcblx0XHRcdHRoaXMuaW5wdXRFbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcblx0XHR9XG5cdH1cblxuXHRwcm90ZWN0ZWQgZW1wdHlDbHVlKCk6IHZvaWQge1xuXHRcdGlmICh0aGlzLmNsdWUpIHtcblx0XHRcdHRoaXMuY2x1ZSA9IG51bGw7XG5cdFx0fVxuXHR9XG5cblx0cHVibGljIGNsb3NlUGFuZWwoKTogdm9pZCB7XG5cdFx0aWYgKCF0aGlzLmlzUGFuZWxPcGVuKSB7XG5cdFx0XHRyZXR1cm47XG5cdFx0fVxuXHRcdHRoaXMuZW1wdHlDbHVlKCk7XG5cdFx0dGhpcy5hY3RpdmVEZXNjZW5kYW50JC5uZXh0KCcnKTtcblx0XHR0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpO1xuXHRcdHRoaXMub25Ub3VjaGVkPy4oKTtcblx0XHR0aGlzLmlzUGFuZWxPcGVuJC5uZXh0KGZhbHNlKTtcblx0XHR0aGlzLnBhbmVsUmVmLmNsb3NlKCk7XG5cdFx0dGhpcy5fcGFuZWxSZWYgPSB1bmRlZmluZWQ7XG5cdH1cblxuXHRwdWJsaWMgd3JpdGVWYWx1ZSh2YWx1ZTogVFZhbHVlKTogdm9pZCB7XG5cdFx0dGhpcy52YWx1ZSA9IHZhbHVlO1xuXHR9XG5cblx0cHVibGljIHVwZGF0ZVZhbHVlKHZhbHVlOiBUVmFsdWUpOiB2b2lkIHtcblx0XHR0aGlzLnZhbHVlID0gdmFsdWU7XG5cdFx0dGhpcy5lbXB0eUNsdWUoKTtcblx0XHR0aGlzLm9uQ2hhbmdlPy4odmFsdWUpO1xuXHRcdHRoaXMub25Ub3VjaGVkPy4oKTtcblx0fVxufVxuIl19