@ethlete/cdk 3.19.2 → 3.20.0
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/CHANGELOG.md +6 -0
- package/esm2022/lib/components/forms/components/select/components/combobox/components/combobox/combobox.component.mjs +9 -3
- package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox/combobox.directive.mjs +66 -2
- package/esm2022/lib/components/forms/components/select/components/combobox/partials/combobox-body/combobox-body.component.mjs +8 -4
- package/esm2022/lib/components/forms/components/select/components/combobox/partials/combobox-option/combobox-option.component.mjs +8 -4
- package/fesm2022/ethlete-cdk.mjs +85 -7
- package/fesm2022/ethlete-cdk.mjs.map +1 -1
- package/lib/components/forms/components/select/components/combobox/components/combobox/combobox.component.d.ts +1 -1
- package/lib/components/forms/components/select/components/combobox/directives/combobox/combobox.directive.d.ts +29 -1
- package/lib/components/forms/components/select/components/combobox/partials/combobox-body/combobox-body.component.d.ts +3 -2
- package/lib/components/forms/components/select/components/combobox/partials/combobox-option/combobox-option.component.d.ts +3 -0
- package/package.json +1 -1
|
@@ -3,7 +3,7 @@ import { ChangeDetectionStrategy, Component, ElementRef, InjectionToken, ViewChi
|
|
|
3
3
|
import { toSignal } from '@angular/core/rxjs-interop';
|
|
4
4
|
import { ANIMATED_LIFECYCLE_TOKEN, AnimatedLifecycleDirective, ClickOutsideDirective, LetDirective, TypedQueryList, createDestroy, signalHostAttributes, signalHostClasses, } from '@ethlete/core';
|
|
5
5
|
import { ProvideThemeDirective, THEME_PROVIDER } from '@ethlete/theming';
|
|
6
|
-
import { BehaviorSubject, takeUntil, tap } from 'rxjs';
|
|
6
|
+
import { BehaviorSubject, combineLatest, map, takeUntil, tap } from 'rxjs';
|
|
7
7
|
import { COMBOBOX_TOKEN } from '../../directives';
|
|
8
8
|
import { ComboboxOptionComponent } from '../combobox-option';
|
|
9
9
|
import * as i0 from "@angular/core";
|
|
@@ -27,6 +27,10 @@ export class ComboboxBodyComponent {
|
|
|
27
27
|
'aria-multiselectable': toSignal(this.combobox.multiple$),
|
|
28
28
|
'aria-labelledby': toSignal(this.combobox._input.labelId$),
|
|
29
29
|
});
|
|
30
|
+
this.customErrorComponentInputs$ = combineLatest([
|
|
31
|
+
this.combobox.error$,
|
|
32
|
+
this.combobox.customBodyErrorComponentInputs$,
|
|
33
|
+
]).pipe(map(([error, inputs]) => ({ error, ...inputs })));
|
|
30
34
|
this._bodyTemplate = null;
|
|
31
35
|
this.trackByFn = (index, item) => this.combobox._selectionModel.getKey(item);
|
|
32
36
|
}
|
|
@@ -47,7 +51,7 @@ export class ComboboxBodyComponent {
|
|
|
47
51
|
provide: COMBOBOX_BODY_TOKEN,
|
|
48
52
|
useExisting: ComboboxBodyComponent,
|
|
49
53
|
},
|
|
50
|
-
], viewQueries: [{ propertyName: "_containerElementRef", first: true, predicate: ["containerElement"], descendants: true, read: ElementRef, static: true }, { propertyName: "_animatedLifecycle", first: true, predicate: ANIMATED_LIFECYCLE_TOKEN, descendants: true, static: true }, { propertyName: "_options", predicate: ComboboxOptionComponent, descendants: true }], hostDirectives: [{ directive: i1.ClickOutsideDirective }, { directive: i2.ProvideThemeDirective }], ngImport: i0, template: "<div #containerElement class=\"et-combobox-body-container\" etAnimatedLifecycle>\n <ng-container *etLet=\"combobox.options$ | async as options\">\n <ng-container *ngIf=\"!options?.length && !combobox.error && !combobox.loading\">\n <ng-container *ngIf=\"combobox.customBodyEmptyTpl$ | async as tpl; else componentOrNone\">\n <ng-container *ngTemplateOutlet=\"tpl\" />\n </ng-container>\n <ng-template #componentOrNone>\n <ng-container *ngIf=\"combobox.customBodyEmptyComponent$ | async as comp; else default\">\n <ng-container
|
|
54
|
+
], viewQueries: [{ propertyName: "_containerElementRef", first: true, predicate: ["containerElement"], descendants: true, read: ElementRef, static: true }, { propertyName: "_animatedLifecycle", first: true, predicate: ANIMATED_LIFECYCLE_TOKEN, descendants: true, static: true }, { propertyName: "_options", predicate: ComboboxOptionComponent, descendants: true }], hostDirectives: [{ directive: i1.ClickOutsideDirective }, { directive: i2.ProvideThemeDirective }], ngImport: i0, template: "<div #containerElement class=\"et-combobox-body-container\" etAnimatedLifecycle>\n <ng-container *etLet=\"combobox.options$ | async as options\">\n <ng-container *ngIf=\"!options?.length && !combobox.error && !combobox.loading\">\n <ng-container *ngIf=\"combobox.customBodyEmptyTpl$ | async as tpl; else componentOrNone\">\n <ng-container *ngTemplateOutlet=\"tpl\" />\n </ng-container>\n <ng-template #componentOrNone>\n <ng-container *ngIf=\"combobox.customBodyEmptyComponent$ | async as comp; else default\">\n <ng-container\n *ngComponentOutlet=\"comp; inputs: (combobox.customBodyEmptyComponentInputs$ | async) ?? undefined\"\n />\n </ng-container>\n <ng-template #default>\n <p class=\"et-combobox-body--empty\">{{ combobox._tempEmptyText }}</p>\n </ng-template>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"combobox.error && !combobox.loading\">\n <ng-container *ngIf=\"combobox.customBodyErrorTpl$ | async as tpl; else componentOrNone\">\n <ng-container *ngTemplateOutlet=\"tpl; context: { error: combobox.error }\" />\n </ng-container>\n <ng-template #componentOrNone>\n <ng-container *ngIf=\"combobox.customBodyErrorComponent$ | async as comp\">\n <ng-container\n *ngComponentOutlet=\"comp; inputs: (customErrorComponentInputs$ | async) ?? { error: combobox.error }\"\n />\n </ng-container>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"combobox.loading$ | async\">\n <ng-container *ngIf=\"combobox.customBodyLoadingTpl$ | async as tpl; else componentOrNone\">\n <ng-container *ngTemplateOutlet=\"tpl\" />\n </ng-container>\n <ng-template #componentOrNone>\n <ng-container *ngIf=\"combobox.customBodyLoadingComponent$ | async as comp\">\n <ng-container\n *ngComponentOutlet=\"comp; inputs: (combobox.customBodyLoadingComponentInputs$ | async) ?? undefined\"\n />\n </ng-container>\n </ng-template>\n </ng-container>\n\n <et-combobox-option *ngFor=\"let option of options; trackBy: trackByFn\" [option]=\"option\" />\n\n <ng-container *ngIf=\"options?.length && combobox.showBodyMoreItemsHint\">\n <ng-container *ngIf=\"combobox.customBodyMoreItemsHintTpl$ | async as tpl; else componentOrNone\">\n <ng-container *ngTemplateOutlet=\"tpl\" />\n </ng-container>\n <ng-template #componentOrNone>\n <ng-container *ngIf=\"combobox.customBodyMoreItemsHintComponent$ | async as comp; else default\">\n <ng-container\n *ngComponentOutlet=\"comp; inputs: (combobox.customBodyMoreItemsHintComponentInputs$ | async) ?? undefined\"\n />\n </ng-container>\n <ng-template #default>\n <p *ngIf=\"combobox.bodyMoreItemsHintText\" class=\"et-combobox-body--more-items-hint\">\n {{ combobox.bodyMoreItemsHintText }}\n </p>\n </ng-template>\n </ng-template>\n </ng-container>\n </ng-container>\n</div>\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: ComboboxOptionComponent, selector: "et-combobox-option", inputs: ["option"] }, { kind: "directive", type: LetDirective, selector: "[etLet]", inputs: ["etLet"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: AnimatedLifecycleDirective, selector: "[etAnimatedLifecycle]", exportAs: ["etAnimatedLifecycle"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
51
55
|
}
|
|
52
56
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: ComboboxBodyComponent, decorators: [{
|
|
53
57
|
type: Component,
|
|
@@ -70,7 +74,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
|
|
|
70
74
|
provide: COMBOBOX_BODY_TOKEN,
|
|
71
75
|
useExisting: ComboboxBodyComponent,
|
|
72
76
|
},
|
|
73
|
-
], template: "<div #containerElement class=\"et-combobox-body-container\" etAnimatedLifecycle>\n <ng-container *etLet=\"combobox.options$ | async as options\">\n <ng-container *ngIf=\"!options?.length && !combobox.error && !combobox.loading\">\n <ng-container *ngIf=\"combobox.customBodyEmptyTpl$ | async as tpl; else componentOrNone\">\n <ng-container *ngTemplateOutlet=\"tpl\" />\n </ng-container>\n <ng-template #componentOrNone>\n <ng-container *ngIf=\"combobox.customBodyEmptyComponent$ | async as comp; else default\">\n <ng-container
|
|
77
|
+
], template: "<div #containerElement class=\"et-combobox-body-container\" etAnimatedLifecycle>\n <ng-container *etLet=\"combobox.options$ | async as options\">\n <ng-container *ngIf=\"!options?.length && !combobox.error && !combobox.loading\">\n <ng-container *ngIf=\"combobox.customBodyEmptyTpl$ | async as tpl; else componentOrNone\">\n <ng-container *ngTemplateOutlet=\"tpl\" />\n </ng-container>\n <ng-template #componentOrNone>\n <ng-container *ngIf=\"combobox.customBodyEmptyComponent$ | async as comp; else default\">\n <ng-container\n *ngComponentOutlet=\"comp; inputs: (combobox.customBodyEmptyComponentInputs$ | async) ?? undefined\"\n />\n </ng-container>\n <ng-template #default>\n <p class=\"et-combobox-body--empty\">{{ combobox._tempEmptyText }}</p>\n </ng-template>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"combobox.error && !combobox.loading\">\n <ng-container *ngIf=\"combobox.customBodyErrorTpl$ | async as tpl; else componentOrNone\">\n <ng-container *ngTemplateOutlet=\"tpl; context: { error: combobox.error }\" />\n </ng-container>\n <ng-template #componentOrNone>\n <ng-container *ngIf=\"combobox.customBodyErrorComponent$ | async as comp\">\n <ng-container\n *ngComponentOutlet=\"comp; inputs: (customErrorComponentInputs$ | async) ?? { error: combobox.error }\"\n />\n </ng-container>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"combobox.loading$ | async\">\n <ng-container *ngIf=\"combobox.customBodyLoadingTpl$ | async as tpl; else componentOrNone\">\n <ng-container *ngTemplateOutlet=\"tpl\" />\n </ng-container>\n <ng-template #componentOrNone>\n <ng-container *ngIf=\"combobox.customBodyLoadingComponent$ | async as comp\">\n <ng-container\n *ngComponentOutlet=\"comp; inputs: (combobox.customBodyLoadingComponentInputs$ | async) ?? undefined\"\n />\n </ng-container>\n </ng-template>\n </ng-container>\n\n <et-combobox-option *ngFor=\"let option of options; trackBy: trackByFn\" [option]=\"option\" />\n\n <ng-container *ngIf=\"options?.length && combobox.showBodyMoreItemsHint\">\n <ng-container *ngIf=\"combobox.customBodyMoreItemsHintTpl$ | async as tpl; else componentOrNone\">\n <ng-container *ngTemplateOutlet=\"tpl\" />\n </ng-container>\n <ng-template #componentOrNone>\n <ng-container *ngIf=\"combobox.customBodyMoreItemsHintComponent$ | async as comp; else default\">\n <ng-container\n *ngComponentOutlet=\"comp; inputs: (combobox.customBodyMoreItemsHintComponentInputs$ | async) ?? undefined\"\n />\n </ng-container>\n <ng-template #default>\n <p *ngIf=\"combobox.bodyMoreItemsHintText\" class=\"et-combobox-body--more-items-hint\">\n {{ combobox.bodyMoreItemsHintText }}\n </p>\n </ng-template>\n </ng-template>\n </ng-container>\n </ng-container>\n</div>\n" }]
|
|
74
78
|
}], propDecorators: { _containerElementRef: [{
|
|
75
79
|
type: ViewChild,
|
|
76
80
|
args: ['containerElement', { static: true, read: ElementRef }]
|
|
@@ -81,4 +85,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
|
|
|
81
85
|
type: ViewChildren,
|
|
82
86
|
args: [ComboboxOptionComponent]
|
|
83
87
|
}] } });
|
|
84
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYm9ib3gtYm9keS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvZm9ybXMvY29tcG9uZW50cy9zZWxlY3QvY29tcG9uZW50cy9jb21ib2JveC9wYXJ0aWFscy9jb21ib2JveC1ib2R5L2NvbWJvYm94LWJvZHkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm1zL2NvbXBvbmVudHMvc2VsZWN0L2NvbXBvbmVudHMvY29tYm9ib3gvcGFydGlhbHMvY29tYm9ib3gtYm9keS9jb21ib2JveC1ib2R5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlGLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixjQUFjLEVBSWQsU0FBUyxFQUNULFlBQVksRUFDWixpQkFBaUIsRUFDakIsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLDBCQUEwQixFQUMxQixxQkFBcUIsRUFDckIsWUFBWSxFQUNaLGNBQWMsRUFDZCxhQUFhLEVBQ2Isb0JBQW9CLEVBQ3BCLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFF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aUJBQWlCO3dCQUNqQixLQUFLO3dCQUNMLHVCQUF1Qjt3QkFDdkIsWUFBWTt3QkFDWixTQUFTO3dCQUNULDBCQUEwQjt3QkFDMUIsSUFBSTtxQkFDTCxrQkFDZSxDQUFDLHFCQUFxQixFQUFFLHFCQUFxQixDQUFDLGFBQ25EO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxtQkFBbUI7NEJBQzVCLFdBQVcsdUJBQXVCO3lCQUNuQztxQkFDRjs4QkFhUSxvQkFBb0I7c0JBRDVCLFNBQVM7dUJBQUMsa0JBQWtCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxVQUFVLEVBQUU7Z0JBSXhELGtCQUFrQjtzQkFEMUIsU0FBUzt1QkFBQyx3QkFBd0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSWpELFFBQVE7c0JBRFgsWUFBWTt1QkFBQyx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBc3luY1BpcGUsIE5nQ29tcG9uZW50T3V0bGV0LCBOZ0ZvciwgTmdJZiwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbmplY3Rpb25Ub2tlbixcbiAgT25Jbml0LFxuICBUZW1wbGF0ZVJlZixcbiAgVHJhY2tCeUZ1bmN0aW9uLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDaGlsZHJlbixcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0b1NpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7XG4gIEFOSU1BVEVEX0xJRkVDWUNMRV9UT0tFTixcbiAgQW5pbWF0ZWRMaWZlY3ljbGVEaXJlY3RpdmUsXG4gIENsaWNrT3V0c2lkZURpcmVjdGl2ZSxcbiAgTGV0RGlyZWN0aXZlLFxuICBUeXBlZFF1ZXJ5TGlzdCxcbiAgY3JlYXRlRGVzdHJveSxcbiAgc2lnbmFsSG9zdEF0dHJpYnV0ZXMsXG4gIHNpZ25hbEhvc3RDbGFzc2VzLFxufSBmcm9tICdAZXRobGV0ZS9jb3JlJztcbmltcG9ydCB7IFByb3ZpZGVUaGVtZURpcmVjdGl2ZSwgVEhFTUVfUFJPVklERVIgfSBmcm9tICdAZXRobGV0ZS90aGVtaW5nJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgdGFrZVVudGlsLCB0YXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFic3RyYWN0Q29tYm9ib3hCb2R5LCBBYnN0cmFjdENvbWJvYm94T3B0aW9uLCBDT01CT0JPWF9UT0tFTiB9IGZyb20gJy4uLy4uL2RpcmVjdGl2ZXMnO1xuaW1wb3J0IHsgQ29tYm9ib3hPcHRpb25Db21wb25lbnQgfSBmcm9tICcuLi9jb21ib2JveC1vcHRpb24nO1xuXG5leHBvcnQgY29uc3QgQ09NQk9CT1hfQk9EWV9UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxDb21ib2JveEJvZHlDb21wb25lbnQ+KCdFVF9DT01CT0JPWF9CT0RZX1RPS0VOJyk7XG5cbmxldCBfdW5pcXVlSWQgPSAwO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdldC1jb21ib2JveC1ib2R5JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbWJvYm94LWJvZHkuY29tcG9uZW50Lmh0bWwnLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgaG9zdDoge1xuICAgIGNsYXNzOiAnZXQtY29tYm9ib3gtYm9keSBldC13aXRoLWRlZmF1bHQtYW5pbWF0aW9uJyxcbiAgICB0YWJpbmRleDogJy0xJyxcbiAgICAnW2F0dHIuaWRdJzogJ2lkJyxcbiAgICByb2xlOiAnbGlzdGJveCcsXG4gIH0sXG4gIGltcG9ydHM6IFtcbiAgICBOZ1RlbXBsYXRlT3V0bGV0LFxuICAgIE5nQ29tcG9uZW50T3V0bGV0LFxuICAgIE5nRm9yLFxuICAgIENvbWJvYm94T3B0aW9uQ29tcG9uZW50LFxuICAgIExldERpcmVjdGl2ZSxcbiAgICBBc3luY1BpcGUsXG4gICAgQW5pbWF0ZWRMaWZlY3ljbGVEaXJlY3RpdmUsXG4gICAgTmdJZixcbiAgXSxcbiAgaG9zdERpcmVjdGl2ZXM6IFtDbGlja091dHNpZGVEaXJlY3RpdmUsIFByb3ZpZGVUaGVtZURpcmVjdGl2ZV0sXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IENPTUJPQk9YX0JPRFlfVE9LRU4sXG4gICAgICB1c2VFeGlzdGluZzogQ29tYm9ib3hCb2R5Q29tcG9uZW50LFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIENvbWJvYm94Qm9keUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQWJzdHJhY3RDb21ib2JveEJvZHkge1xuICByZWFkb25seSBpZCA9IGBldC1jb21ib2JveC1ib2R5LSR7X3VuaXF1ZUlkKyt9YDtcblxuICBfZWxlbWVudFJlZj86IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+IHwgdW5kZWZpbmVkO1xuICBfbWFya0ZvckNoZWNrPzogKCgpID0+IHZvaWQpIHwgdW5kZWZpbmVkO1xuICBwcml2YXRlIHJlYWRvbmx5IF9kZXN0cm95JCA9IGNyZWF0ZURlc3Ryb3koKTtcbiAgcHJpdmF0ZSByZWFkb25seSBfY2xpY2tPdXRzaWRlID0gaW5qZWN0KENsaWNrT3V0c2lkZURpcmVjdGl2ZSk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX3RoZW1lUHJvdmlkZXIgPSBpbmplY3QoVEhFTUVfUFJPVklERVIpO1xuICBwcm90ZWN0ZWQgcmVhZG9ubHkgY29tYm9ib3ggPSBpbmplY3QoQ09NQk9CT1hfVE9LRU4pO1xuXG4gIEBWaWV3Q2hpbGQoJ2NvbnRhaW5lckVsZW1lbnQnLCB7IHN0YXRpYzogdHJ1ZSwgcmVhZDogRWxlbWVudFJlZiB9KVxuICByZWFkb25seSBfY29udGFpbmVyRWxlbWVudFJlZjogRWxlbWVudFJlZjxIVE1MRWxlbWVudD4gfCB1bmRlZmluZWQ7XG5cbiAgQFZpZXdDaGlsZChBTklNQVRFRF9MSUZFQ1lDTEVfVE9LRU4sIHsgc3RhdGljOiB0cnVlIH0pXG4gIHJlYWRvbmx5IF9hbmltYXRlZExpZmVjeWNsZT86IEFuaW1hdGVkTGlmZWN5Y2xlRGlyZWN0aXZlO1xuXG4gIEBWaWV3Q2hpbGRyZW4oQ29tYm9ib3hPcHRpb25Db21wb25lbnQpXG4gIHNldCBfb3B0aW9ucyhvcHRpb25zOiBUeXBlZFF1ZXJ5TGlzdDxDb21ib2JveE9wdGlvbkNvbXBvbmVudD4pIHtcbiAgICB0aGlzLl9vcHRpb25zJC5uZXh0KG9wdGlvbnMpO1xuICB9XG4gIHJlYWRvbmx5IF9vcHRpb25zJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8VHlwZWRRdWVyeUxpc3Q8QWJzdHJhY3RDb21ib2JveE9wdGlvbj4gfCBudWxsPihudWxsKTtcblxuICByZWFkb25seSBob3N0Q2xhc3NCaW5kaW5ncyA9IHNpZ25hbEhvc3RDbGFzc2VzKHtcbiAgICAnZXQtY29tYm9ib3gtYm9keS0tbG9hZGluZyc6IHRvU2lnbmFsKHRoaXMuY29tYm9ib3gubG9hZGluZyQpLFxuICAgICdldC1jb21ib2JveC1ib2R5LS1tdWx0aXBsZSc6IHRvU2lnbmFsKHRoaXMuY29tYm9ib3gubXVsdGlwbGUkKSxcbiAgfSk7XG5cbiAgcmVhZG9ubHkgaG9zdEF0dHJpYnV0ZUJpbmRpbmdzID0gc2lnbmFsSG9zdEF0dHJpYnV0ZXMoe1xuICAgICdhcmlhLW11bHRpc2VsZWN0YWJsZSc6IHRvU2lnbmFsKHRoaXMuY29tYm9ib3gubXVsdGlwbGUkKSxcbiAgICAnYXJpYS1sYWJlbGxlZGJ5JzogdG9TaWduYWwodGhpcy5jb21ib2JveC5faW5wdXQubGFiZWxJZCQpLFxuICB9KTtcblxuICBfYm9keVRlbXBsYXRlOiBUZW1wbGF0ZVJlZjx1bmtub3duPiB8IG51bGwgPSBudWxsO1xuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuX2NsaWNrT3V0c2lkZS5ldENsaWNrT3V0c2lkZVxuICAgICAgLnBpcGUoXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLl9kZXN0cm95JCksXG4gICAgICAgIHRhcCgoKSA9PiB0aGlzLmNvbWJvYm94LmNsb3NlKCkpLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHJvdGVjdGVkIHRyYWNrQnlGbjogVHJhY2tCeUZ1bmN0aW9uPHVua25vd24+ID0gKGluZGV4LCBpdGVtKSA9PiB0aGlzLmNvbWJvYm94Ll9zZWxlY3Rpb25Nb2RlbC5nZXRLZXkoaXRlbSk7XG5cbiAgX3NldFRoZW1lRnJvbVByb3ZpZGVyKHByb3ZpZGVyOiBQcm92aWRlVGhlbWVEaXJlY3RpdmUpIHtcbiAgICB0aGlzLl90aGVtZVByb3ZpZGVyLnN5bmNXaXRoUHJvdmlkZXIocHJvdmlkZXIpO1xuICB9XG59XG4iLCI8ZGl2ICNjb250YWluZXJFbGVtZW50IGNsYXNzPVwiZXQtY29tYm9ib3gtYm9keS1jb250YWluZXJcIiBldEFuaW1hdGVkTGlmZWN5Y2xlPlxuICA8bmctY29udGFpbmVyICpldExldD1cImNvbWJvYm94Lm9wdGlvbnMkIHwgYXN5bmMgYXMgb3B0aW9uc1wiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhb3B0aW9ucz8ubGVuZ3RoICYmICFjb21ib2JveC5lcnJvciAmJiAhY29tYm9ib3gubG9hZGluZ1wiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbWJvYm94LmN1c3RvbUJvZHlFbXB0eVRwbCQgfCBhc3luYyBhcyB0cGw7IGVsc2UgY29tcG9uZW50T3JOb25lXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0cGxcIiAvPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctdGVtcGxhdGUgI2NvbXBvbmVudE9yTm9uZT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbWJvYm94LmN1c3RvbUJvZHlFbXB0eUNvbXBvbmVudCQgfCBhc3luYyBhcyBjb21wOyBlbHNlIGRlZmF1bHRcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0NvbXBvbmVudE91dGxldD1cImNvbXBcIiAvPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0PlxuICAgICAgICAgIDxwIGNsYXNzPVwiZXQtY29tYm9ib3gtYm9keS0tZW1wdHlcIj57eyBjb21ib2JveC5fdGVtcEVtcHR5VGV4dCB9fTwvcD5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29tYm9ib3guZXJyb3IgJiYgIWNvbWJvYm94LmxvYWRpbmdcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb21ib2JveC5jdXN0b21Cb2R5RXJyb3JUcGwkIHwgYXN5bmMgYXMgdHBsOyBlbHNlIGNvbXBvbmVudE9yTm9uZVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidHBsOyBjb250ZXh0OiB7IGVycm9yOiBjb21ib2JveC5lcnJvciB9XCIgLz5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLXRlbXBsYXRlICNjb21wb25lbnRPck5vbmU+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb21ib2JveC5jdXN0b21Cb2R5RXJyb3JDb21wb25lbnQkIHwgYXN5bmMgYXMgY29tcFwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nQ29tcG9uZW50T3V0bGV0PVwiY29tcDsgaW5wdXRzOiB7IGVycm9yOiBjb21ib2JveC5lcnJvciB9XCIgLz5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbWJvYm94LmxvYWRpbmckIHwgYXN5bmNcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb21ib2JveC5jdXN0b21Cb2R5TG9hZGluZ1RwbCQgfCBhc3luYyBhcyB0cGw7IGVsc2UgY29tcG9uZW50T3JOb25lXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0cGxcIiAvPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctdGVtcGxhdGUgI2NvbXBvbmVudE9yTm9uZT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbWJvYm94LmN1c3RvbUJvZHlMb2FkaW5nQ29tcG9uZW50JCB8IGFzeW5jIGFzIGNvbXBcIj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0NvbXBvbmVudE91dGxldD1cImNvbXBcIiAvPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8ZXQtY29tYm9ib3gtb3B0aW9uICpuZ0Zvcj1cImxldCBvcHRpb24gb2Ygb3B0aW9uczsgdHJhY2tCeTogdHJhY2tCeUZuXCIgW29wdGlvbl09XCJvcHRpb25cIiAvPlxuXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm9wdGlvbnM/Lmxlbmd0aCAmJiBjb21ib2JveC5zaG93Qm9keU1vcmVJdGVtc0hpbnRcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb21ib2JveC5jdXN0b21Cb2R5TW9yZUl0ZW1zSGludFRwbCQgfCBhc3luYyBhcyB0cGw7IGVsc2UgY29tcG9uZW50T3JOb25lXCI+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJ0cGxcIiAvPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctdGVtcGxhdGUgI2NvbXBvbmVudE9yTm9uZT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbWJvYm94LmN1c3RvbUJvZHlNb3JlSXRlbXNIaW50Q29tcG9uZW50JCB8IGFzeW5jIGFzIGNvbXA7IGVsc2UgZGVmYXVsdFwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nQ29tcG9uZW50T3V0bGV0PVwiY29tcFwiIC8+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8bmctdGVtcGxhdGUgI2RlZmF1bHQ+XG4gICAgICAgICAgPHAgKm5nSWY9XCJjb21ib2JveC5ib2R5TW9yZUl0ZW1zSGludFRleHRcIiBjbGFzcz1cImV0LWNvbWJvYm94LWJvZHktLW1vcmUtaXRlbXMtaGludFwiPlxuICAgICAgICAgICAge3sgY29tYm9ib3guYm9keU1vcmVJdGVtc0hpbnRUZXh0IH19XG4gICAgICAgICAgPC9wPlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9uZy1jb250YWluZXI+XG48L2Rpdj5cbiJdfQ==
|
|
88
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYm9ib3gtYm9keS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2Nkay9zcmMvbGliL2NvbXBvbmVudHMvZm9ybXMvY29tcG9uZW50cy9zZWxlY3QvY29tcG9uZW50cy9jb21ib2JveC9wYXJ0aWFscy9jb21ib2JveC1ib2R5L2NvbWJvYm94LWJvZHkuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm1zL2NvbXBvbmVudHMvc2VsZWN0L2NvbXBvbmVudHMvY29tYm9ib3gvcGFydGlhbHMvY29tYm9ib3gtYm9keS9jb21ib2JveC1ib2R5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzlGLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixjQUFjLEVBSWQsU0FBUyxFQUNULFlBQVksRUFDWixpQkFBaUIsRUFDakIsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RCxPQUFPLEVBQ0wsd0JBQXdCLEVBQ3hCLDBCQUEwQixFQUMxQixxQkFBcUIsRUFDckIsWUFBWSxFQUNaLGNBQWMsRUFDZCxhQUFhLEVBQ2Isb0JBQW9CLEVBQ3BCLGlCQUFpQixHQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUscUJBQXFCLEVBQUUsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDekUsT0FBTyxFQUFFLGVBQWUsRUFBRSxhQUFhLEVBQUUsR0FBRyxFQUFF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Uyw4Q0FDVCwwQkFBMEIscUdBQzFCLElBQUk7OzJGQVVLLHFCQUFxQjtrQkE5QmpDLFNBQVM7K0JBQ0Usa0JBQWtCLGNBRWhCLElBQUksbUJBQ0MsdUJBQXVCLENBQUMsTUFBTSxpQkFDaEMsaUJBQWlCLENBQUMsSUFBSSxRQUMvQjt3QkFDSixLQUFLLEVBQUUsNENBQTRDO3dCQUNuRCxRQUFRLEVBQUUsSUFBSTt3QkFDZCxXQUFXLEVBQUUsSUFBSTt3QkFDakIsSUFBSSxFQUFFLFNBQVM7cUJBQ2hCLFdBQ1E7d0JBQ1AsZ0JBQWdCO3dCQUNoQixpQkFBaUI7d0JBQ2pCLEtBQUs7d0JBQ0wsdUJBQXVCO3dCQUN2QixZQUFZO3dCQUNaLFNBQVM7d0JBQ1QsMEJBQTBCO3dCQUMxQixJQUFJO3FCQUNMLGtCQUNlLENBQUMscUJBQXFCLEVBQUUscUJBQXFCLENBQUMsYUFDbkQ7d0JBQ1Q7NEJBQ0UsT0FBTyxFQUFFLG1CQUFtQjs0QkFDNUIsV0FBVyx1QkFBdUI7eUJBQ25DO3FCQUNGOzhCQVdRLG9CQUFvQjtzQkFENUIsU0FBUzt1QkFBQyxrQkFBa0IsRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFJeEQsa0JBQWtCO3NCQUQxQixTQUFTO3VCQUFDLHdCQUF3QixFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJakQsUUFBUTtzQkFEWCxZQUFZO3VCQUFDLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFzeW5jUGlwZSwgTmdDb21wb25lbnRPdXRsZXQsIE5nRm9yLCBOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDb21wb25lbnQsXG4gIEVsZW1lbnRSZWYsXG4gIEluamVjdGlvblRva2VuLFxuICBPbkluaXQsXG4gIFRlbXBsYXRlUmVmLFxuICBUcmFja0J5RnVuY3Rpb24sXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NoaWxkcmVuLFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgaW5qZWN0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRvU2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZS9yeGpzLWludGVyb3AnO1xuaW1wb3J0IHtcbiAgQU5JTUFURURfTElGRUNZQ0xFX1RPS0VOLFxuICBBbmltYXRlZExpZmVjeWNsZURpcmVjdGl2ZSxcbiAgQ2xpY2tPdXRzaWRlRGlyZWN0aXZlLFxuICBMZXREaXJlY3RpdmUsXG4gIFR5cGVkUXVlcnlMaXN0LFxuICBjcmVhdGVEZXN0cm95LFxuICBzaWduYWxIb3N0QXR0cmlidXRlcyxcbiAgc2lnbmFsSG9zdENsYXNzZXMsXG59IGZyb20gJ0BldGhsZXRlL2NvcmUnO1xuaW1wb3J0IHsgUHJvdmlkZVRoZW1lRGlyZWN0aXZlLCBUSEVNRV9QUk9WSURFUiB9IGZyb20gJ0BldGhsZXRlL3RoZW1pbmcnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBtYXAsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBBYnN0cmFjdENvbWJvYm94Qm9keSwgQWJzdHJhY3RDb21ib2JveE9wdGlvbiwgQ09NQk9CT1hfVE9LRU4gfSBmcm9tICcuLi8uLi9kaXJlY3RpdmVzJztcbmltcG9ydCB7IENvbWJvYm94T3B0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi4vY29tYm9ib3gtb3B0aW9uJztcblxuZXhwb3J0IGNvbnN0IENPTUJPQk9YX0JPRFlfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW48Q29tYm9ib3hCb2R5Q29tcG9uZW50PignRVRfQ09NQk9CT1hfQk9EWV9UT0tFTicpO1xuXG5sZXQgX3VuaXF1ZUlkID0gMDtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZXQtY29tYm9ib3gtYm9keScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb21ib2JveC1ib2R5LmNvbXBvbmVudC5odG1sJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2V0LWNvbWJvYm94LWJvZHkgZXQtd2l0aC1kZWZhdWx0LWFuaW1hdGlvbicsXG4gICAgdGFiaW5kZXg6ICctMScsXG4gICAgJ1thdHRyLmlkXSc6ICdpZCcsXG4gICAgcm9sZTogJ2xpc3Rib3gnLFxuICB9LFxuICBpbXBvcnRzOiBbXG4gICAgTmdUZW1wbGF0ZU91dGxldCxcbiAgICBOZ0NvbXBvbmVudE91dGxldCxcbiAgICBOZ0ZvcixcbiAgICBDb21ib2JveE9wdGlvbkNvbXBvbmVudCxcbiAgICBMZXREaXJlY3RpdmUsXG4gICAgQXN5bmNQaXBlLFxuICAgIEFuaW1hdGVkTGlmZWN5Y2xlRGlyZWN0aXZlLFxuICAgIE5nSWYsXG4gIF0sXG4gIGhvc3REaXJlY3RpdmVzOiBbQ2xpY2tPdXRzaWRlRGlyZWN0aXZlLCBQcm92aWRlVGhlbWVEaXJlY3RpdmVdLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBDT01CT0JPWF9CT0RZX1RPS0VOLFxuICAgICAgdXNlRXhpc3Rpbmc6IENvbWJvYm94Qm9keUNvbXBvbmVudCxcbiAgICB9LFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBDb21ib2JveEJvZHlDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIEFic3RyYWN0Q29tYm9ib3hCb2R5IHtcbiAgcmVhZG9ubHkgaWQgPSBgZXQtY29tYm9ib3gtYm9keS0ke191bmlxdWVJZCsrfWA7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBfZGVzdHJveSQgPSBjcmVhdGVEZXN0cm95KCk7XG4gIHByaXZhdGUgcmVhZG9ubHkgX2NsaWNrT3V0c2lkZSA9IGluamVjdChDbGlja091dHNpZGVEaXJlY3RpdmUpO1xuICBwcml2YXRlIHJlYWRvbmx5IF90aGVtZVByb3ZpZGVyID0gaW5qZWN0KFRIRU1FX1BST1ZJREVSKTtcbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvbWJvYm94ID0gaW5qZWN0KENPTUJPQk9YX1RPS0VOKTtcblxuICBAVmlld0NoaWxkKCdjb250YWluZXJFbGVtZW50JywgeyBzdGF0aWM6IHRydWUsIHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgcmVhZG9ubHkgX2NvbnRhaW5lckVsZW1lbnRSZWY6IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+IHwgdW5kZWZpbmVkO1xuXG4gIEBWaWV3Q2hpbGQoQU5JTUFURURfTElGRUNZQ0xFX1RPS0VOLCB7IHN0YXRpYzogdHJ1ZSB9KVxuICByZWFkb25seSBfYW5pbWF0ZWRMaWZlY3ljbGU/OiBBbmltYXRlZExpZmVjeWNsZURpcmVjdGl2ZTtcblxuICBAVmlld0NoaWxkcmVuKENvbWJvYm94T3B0aW9uQ29tcG9uZW50KVxuICBzZXQgX29wdGlvbnMob3B0aW9uczogVHlwZWRRdWVyeUxpc3Q8Q29tYm9ib3hPcHRpb25Db21wb25lbnQ+KSB7XG4gICAgdGhpcy5fb3B0aW9ucyQubmV4dChvcHRpb25zKTtcbiAgfVxuICByZWFkb25seSBfb3B0aW9ucyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFR5cGVkUXVlcnlMaXN0PEFic3RyYWN0Q29tYm9ib3hPcHRpb24+IHwgbnVsbD4obnVsbCk7XG5cbiAgcmVhZG9ubHkgaG9zdENsYXNzQmluZGluZ3MgPSBzaWduYWxIb3N0Q2xhc3Nlcyh7XG4gICAgJ2V0LWNvbWJvYm94LWJvZHktLWxvYWRpbmcnOiB0b1NpZ25hbCh0aGlzLmNvbWJvYm94LmxvYWRpbmckKSxcbiAgICAnZXQtY29tYm9ib3gtYm9keS0tbXVsdGlwbGUnOiB0b1NpZ25hbCh0aGlzLmNvbWJvYm94Lm11bHRpcGxlJCksXG4gIH0pO1xuXG4gIHJlYWRvbmx5IGhvc3RBdHRyaWJ1dGVCaW5kaW5ncyA9IHNpZ25hbEhvc3RBdHRyaWJ1dGVzKHtcbiAgICAnYXJpYS1tdWx0aXNlbGVjdGFibGUnOiB0b1NpZ25hbCh0aGlzLmNvbWJvYm94Lm11bHRpcGxlJCksXG4gICAgJ2FyaWEtbGFiZWxsZWRieSc6IHRvU2lnbmFsKHRoaXMuY29tYm9ib3guX2lucHV0LmxhYmVsSWQkKSxcbiAgfSk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGN1c3RvbUVycm9yQ29tcG9uZW50SW5wdXRzJCA9IGNvbWJpbmVMYXRlc3QoW1xuICAgIHRoaXMuY29tYm9ib3guZXJyb3IkLFxuICAgIHRoaXMuY29tYm9ib3guY3VzdG9tQm9keUVycm9yQ29tcG9uZW50SW5wdXRzJCxcbiAgXSkucGlwZShtYXAoKFtlcnJvciwgaW5wdXRzXSkgPT4gKHsgZXJyb3IsIC4uLmlucHV0cyB9KSkpO1xuXG4gIF9ib2R5VGVtcGxhdGU6IFRlbXBsYXRlUmVmPHVua25vd24+IHwgbnVsbCA9IG51bGw7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5fY2xpY2tPdXRzaWRlLmV0Q2xpY2tPdXRzaWRlXG4gICAgICAucGlwZShcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuX2Rlc3Ryb3kkKSxcbiAgICAgICAgdGFwKCgpID0+IHRoaXMuY29tYm9ib3guY2xvc2UoKSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgdHJhY2tCeUZuOiBUcmFja0J5RnVuY3Rpb248dW5rbm93bj4gPSAoaW5kZXgsIGl0ZW0pID0+IHRoaXMuY29tYm9ib3guX3NlbGVjdGlvbk1vZGVsLmdldEtleShpdGVtKTtcblxuICBfc2V0VGhlbWVGcm9tUHJvdmlkZXIocHJvdmlkZXI6IFByb3ZpZGVUaGVtZURpcmVjdGl2ZSkge1xuICAgIHRoaXMuX3RoZW1lUHJvdmlkZXIuc3luY1dpdGhQcm92aWRlcihwcm92aWRlcik7XG4gIH1cbn1cbiIsIjxkaXYgI2NvbnRhaW5lckVsZW1lbnQgY2xhc3M9XCJldC1jb21ib2JveC1ib2R5LWNvbnRhaW5lclwiIGV0QW5pbWF0ZWRMaWZlY3ljbGU+XG4gIDxuZy1jb250YWluZXIgKmV0TGV0PVwiY29tYm9ib3gub3B0aW9ucyQgfCBhc3luYyBhcyBvcHRpb25zXCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFvcHRpb25zPy5sZW5ndGggJiYgIWNvbWJvYm94LmVycm9yICYmICFjb21ib2JveC5sb2FkaW5nXCI+XG4gICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29tYm9ib3guY3VzdG9tQm9keUVtcHR5VHBsJCB8IGFzeW5jIGFzIHRwbDsgZWxzZSBjb21wb25lbnRPck5vbmVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRwbFwiIC8+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjY29tcG9uZW50T3JOb25lPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29tYm9ib3guY3VzdG9tQm9keUVtcHR5Q29tcG9uZW50JCB8IGFzeW5jIGFzIGNvbXA7IGVsc2UgZGVmYXVsdFwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ0NvbXBvbmVudE91dGxldD1cImNvbXA7IGlucHV0czogKGNvbWJvYm94LmN1c3RvbUJvZHlFbXB0eUNvbXBvbmVudElucHV0cyQgfCBhc3luYykgPz8gdW5kZWZpbmVkXCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNkZWZhdWx0PlxuICAgICAgICAgIDxwIGNsYXNzPVwiZXQtY29tYm9ib3gtYm9keS0tZW1wdHlcIj57eyBjb21ib2JveC5fdGVtcEVtcHR5VGV4dCB9fTwvcD5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29tYm9ib3guZXJyb3IgJiYgIWNvbWJvYm94LmxvYWRpbmdcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb21ib2JveC5jdXN0b21Cb2R5RXJyb3JUcGwkIHwgYXN5bmMgYXMgdHBsOyBlbHNlIGNvbXBvbmVudE9yTm9uZVwiPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ1RlbXBsYXRlT3V0bGV0PVwidHBsOyBjb250ZXh0OiB7IGVycm9yOiBjb21ib2JveC5lcnJvciB9XCIgLz5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPG5nLXRlbXBsYXRlICNjb21wb25lbnRPck5vbmU+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJjb21ib2JveC5jdXN0b21Cb2R5RXJyb3JDb21wb25lbnQkIHwgYXN5bmMgYXMgY29tcFwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ0NvbXBvbmVudE91dGxldD1cImNvbXA7IGlucHV0czogKGN1c3RvbUVycm9yQ29tcG9uZW50SW5wdXRzJCB8IGFzeW5jKSA/PyB7IGVycm9yOiBjb21ib2JveC5lcnJvciB9XCJcbiAgICAgICAgICAvPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC9uZy1jb250YWluZXI+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29tYm9ib3gubG9hZGluZyQgfCBhc3luY1wiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbWJvYm94LmN1c3RvbUJvZHlMb2FkaW5nVHBsJCB8IGFzeW5jIGFzIHRwbDsgZWxzZSBjb21wb25lbnRPck5vbmVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRwbFwiIC8+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjY29tcG9uZW50T3JOb25lPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29tYm9ib3guY3VzdG9tQm9keUxvYWRpbmdDb21wb25lbnQkIHwgYXN5bmMgYXMgY29tcFwiPlxuICAgICAgICAgIDxuZy1jb250YWluZXJcbiAgICAgICAgICAgICpuZ0NvbXBvbmVudE91dGxldD1cImNvbXA7IGlucHV0czogKGNvbWJvYm94LmN1c3RvbUJvZHlMb2FkaW5nQ29tcG9uZW50SW5wdXRzJCB8IGFzeW5jKSA/PyB1bmRlZmluZWRcIlxuICAgICAgICAgIC8+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L25nLWNvbnRhaW5lcj5cblxuICAgIDxldC1jb21ib2JveC1vcHRpb24gKm5nRm9yPVwibGV0IG9wdGlvbiBvZiBvcHRpb25zOyB0cmFja0J5OiB0cmFja0J5Rm5cIiBbb3B0aW9uXT1cIm9wdGlvblwiIC8+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwib3B0aW9ucz8ubGVuZ3RoICYmIGNvbWJvYm94LnNob3dCb2R5TW9yZUl0ZW1zSGludFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbWJvYm94LmN1c3RvbUJvZHlNb3JlSXRlbXNIaW50VHBsJCB8IGFzeW5jIGFzIHRwbDsgZWxzZSBjb21wb25lbnRPck5vbmVcIj5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRwbFwiIC8+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjY29tcG9uZW50T3JOb25lPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29tYm9ib3guY3VzdG9tQm9keU1vcmVJdGVtc0hpbnRDb21wb25lbnQkIHwgYXN5bmMgYXMgY29tcDsgZWxzZSBkZWZhdWx0XCI+XG4gICAgICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAgICAgKm5nQ29tcG9uZW50T3V0bGV0PVwiY29tcDsgaW5wdXRzOiAoY29tYm9ib3guY3VzdG9tQm9keU1vcmVJdGVtc0hpbnRDb21wb25lbnRJbnB1dHMkIHwgYXN5bmMpID8/IHVuZGVmaW5lZFwiXG4gICAgICAgICAgLz5cbiAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjZGVmYXVsdD5cbiAgICAgICAgICA8cCAqbmdJZj1cImNvbWJvYm94LmJvZHlNb3JlSXRlbXNIaW50VGV4dFwiIGNsYXNzPVwiZXQtY29tYm9ib3gtYm9keS0tbW9yZS1pdGVtcy1oaW50XCI+XG4gICAgICAgICAgICB7eyBjb21ib2JveC5ib2R5TW9yZUl0ZW1zSGludFRleHQgfX1cbiAgICAgICAgICA8L3A+XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L25nLWNvbnRhaW5lcj5cbjwvZGl2PlxuIl19
|
|
@@ -2,7 +2,7 @@ import { AsyncPipe, NgComponentOutlet, NgIf, NgTemplateOutlet } from '@angular/c
|
|
|
2
2
|
import { ChangeDetectionStrategy, Component, ElementRef, InjectionToken, Input, ViewEncapsulation, inject, } from '@angular/core';
|
|
3
3
|
import { toSignal } from '@angular/core/rxjs-interop';
|
|
4
4
|
import { signalHostAttributes, signalHostClasses } from '@ethlete/core';
|
|
5
|
-
import { BehaviorSubject, map, switchMap } from 'rxjs';
|
|
5
|
+
import { BehaviorSubject, combineLatest, map, switchMap } from 'rxjs';
|
|
6
6
|
import { COMBOBOX_TOKEN } from '../../directives';
|
|
7
7
|
import { isOptionDisabled } from '../../utils';
|
|
8
8
|
import * as i0 from "@angular/core";
|
|
@@ -17,6 +17,10 @@ export class ComboboxOptionComponent {
|
|
|
17
17
|
this.disabled$ = this._option$.pipe(map((opt) => isOptionDisabled(opt)));
|
|
18
18
|
this.selected$ = this._option$.pipe(switchMap((opt) => this.combobox.isOptionSelected(opt)));
|
|
19
19
|
this.active$ = this._option$.pipe(switchMap((opt) => this.combobox.isOptionActive(opt)));
|
|
20
|
+
this.customOptionComponentInputs$ = combineLatest([
|
|
21
|
+
this._option$,
|
|
22
|
+
this.combobox.customOptionComponentInputs$,
|
|
23
|
+
]).pipe(map(([option, inputs]) => ({ option, ...inputs })));
|
|
20
24
|
this.hostClassBindings = signalHostClasses({
|
|
21
25
|
'et-combobox-option--selected': toSignal(this.selected$),
|
|
22
26
|
'et-combobox-option--disabled': toSignal(this.disabled$),
|
|
@@ -49,7 +53,7 @@ export class ComboboxOptionComponent {
|
|
|
49
53
|
provide: COMBOBOX_OPTION_TOKEN,
|
|
50
54
|
useExisting: ComboboxOptionComponent,
|
|
51
55
|
},
|
|
52
|
-
], ngImport: i0, template: "<ng-container *ngIf=\"combobox.customOptionTpl$ | async as customOptionTpl; else compOrDefaultOptionLabelTpl\">\n <ng-container *ngTemplateOutlet=\"customOptionTpl; context: { option }\" />\n</ng-container>\n\n<ng-template #compOrDefaultOptionLabelTpl>\n <ng-container *ngIf=\"combobox.customOptionComponent$ | async as comp; else defaultOptionLabelTpl\">\n <ng-container
|
|
56
|
+
], ngImport: i0, template: "<ng-container *ngIf=\"combobox.customOptionTpl$ | async as customOptionTpl; else compOrDefaultOptionLabelTpl\">\n <ng-container *ngTemplateOutlet=\"customOptionTpl; context: { option }\" />\n</ng-container>\n\n<ng-template #compOrDefaultOptionLabelTpl>\n <ng-container *ngIf=\"combobox.customOptionComponent$ | async as comp; else defaultOptionLabelTpl\">\n <ng-container\n *ngComponentOutlet=\"comp; inputs: (customOptionComponentInputs$ | async) ?? { option }\"\n ></ng-container>\n </ng-container>\n <ng-template #defaultOptionLabelTpl>\n {{ combobox.getOptionLabel(option) | async }}\n </ng-template>\n</ng-template>\n", dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
53
57
|
}
|
|
54
58
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: ComboboxOptionComponent, decorators: [{
|
|
55
59
|
type: Component,
|
|
@@ -64,9 +68,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
|
|
|
64
68
|
provide: COMBOBOX_OPTION_TOKEN,
|
|
65
69
|
useExisting: ComboboxOptionComponent,
|
|
66
70
|
},
|
|
67
|
-
], template: "<ng-container *ngIf=\"combobox.customOptionTpl$ | async as customOptionTpl; else compOrDefaultOptionLabelTpl\">\n <ng-container *ngTemplateOutlet=\"customOptionTpl; context: { option }\" />\n</ng-container>\n\n<ng-template #compOrDefaultOptionLabelTpl>\n <ng-container *ngIf=\"combobox.customOptionComponent$ | async as comp; else defaultOptionLabelTpl\">\n <ng-container
|
|
71
|
+
], template: "<ng-container *ngIf=\"combobox.customOptionTpl$ | async as customOptionTpl; else compOrDefaultOptionLabelTpl\">\n <ng-container *ngTemplateOutlet=\"customOptionTpl; context: { option }\" />\n</ng-container>\n\n<ng-template #compOrDefaultOptionLabelTpl>\n <ng-container *ngIf=\"combobox.customOptionComponent$ | async as comp; else defaultOptionLabelTpl\">\n <ng-container\n *ngComponentOutlet=\"comp; inputs: (customOptionComponentInputs$ | async) ?? { option }\"\n ></ng-container>\n </ng-container>\n <ng-template #defaultOptionLabelTpl>\n {{ combobox.getOptionLabel(option) | async }}\n </ng-template>\n</ng-template>\n" }]
|
|
68
72
|
}], propDecorators: { option: [{
|
|
69
73
|
type: Input,
|
|
70
74
|
args: [{ required: true }]
|
|
71
75
|
}] } });
|
|
72
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
76
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tYm9ib3gtb3B0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY2RrL3NyYy9saWIvY29tcG9uZW50cy9mb3Jtcy9jb21wb25lbnRzL3NlbGVjdC9jb21wb25lbnRzL2NvbWJvYm94L3BhcnRpYWxzL2NvbWJvYm94LW9wdGlvbi9jb21ib2JveC1vcHRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jZGsvc3JjL2xpYi9jb21wb25lbnRzL2Zvcm1zL2NvbXBvbmVudHMvc2VsZWN0L2NvbXBvbmVudHMvY29tYm9ib3gvcGFydGlhbHMvY29tYm9ib3gtb3B0aW9uL2NvbWJvYm94LW9wdGlvbi5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3ZGLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFVBQVUsRUFDVixjQUFjLEVBQ2QsS0FBSyxFQUNMLGlCQUFpQixFQUNqQixNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ3RELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4RSxPQUFPLEVBQUUsZUFBZSxFQUFFLGFBQWEsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RFLE9BQU8sRUFBMEIsY0FBYyxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDMUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sYUFBYSxDQUFDOztBQUUvQyxNQUFNLENBQUMsTUFBTSxx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dUI7a0JBdEJuQyxTQUFTOytCQUNFLG9CQUFvQixjQUVsQixJQUFJLG1CQUNDLHVCQUF1QixDQUFDLE1BQU0saUJBQ2hDLGlCQUFpQixDQUFDLElBQUksUUFDL0I7d0JBQ0osS0FBSyxFQUFFLG9CQUFvQjt3QkFDM0IsYUFBYSxFQUFFLGNBQWM7d0JBQzdCLFNBQVMsRUFBRSxnQkFBZ0I7d0JBQzNCLFdBQVcsRUFBRSxJQUFJO3dCQUNqQixJQUFJLEVBQUUsUUFBUTtxQkFDZixXQUNRLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxpQkFBaUIsQ0FBQyxrQkFDL0MsRUFBRSxhQUNQO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxxQkFBcUI7NEJBQzlCLFdBQVcseUJBQXlCO3lCQUNyQztxQkFDRjs4QkFVRyxNQUFNO3NCQURULEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlLCBOZ0NvbXBvbmVudE91dGxldCwgTmdJZiwgTmdUZW1wbGF0ZU91dGxldCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBJbmplY3Rpb25Ub2tlbixcbiAgSW5wdXQsXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxuICBpbmplY3QsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgdG9TaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBzaWduYWxIb3N0QXR0cmlidXRlcywgc2lnbmFsSG9zdENsYXNzZXMgfSBmcm9tICdAZXRobGV0ZS9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgbWFwLCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IEFic3RyYWN0Q29tYm9ib3hPcHRpb24sIENPTUJPQk9YX1RPS0VOIH0gZnJvbSAnLi4vLi4vZGlyZWN0aXZlcyc7XG5pbXBvcnQgeyBpc09wdGlvbkRpc2FibGVkIH0gZnJvbSAnLi4vLi4vdXRpbHMnO1xuXG5leHBvcnQgY29uc3QgQ09NQk9CT1hfT1BUSU9OX1RPS0VOID0gbmV3IEluamVjdGlvblRva2VuPENvbWJvYm94T3B0aW9uQ29tcG9uZW50PignRVRfQ09NQk9CT1hfT1BUSU9OX1RPS0VOJyk7XG5cbmxldCBfdW5pcXVlSWQgPSAwO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdldC1jb21ib2JveC1vcHRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vY29tYm9ib3gtb3B0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIGhvc3Q6IHtcbiAgICBjbGFzczogJ2V0LWNvbWJvYm94LW9wdGlvbicsXG4gICAgJyhtb3VzZWRvd24pJzogJ2lnbm9yZUJsdXIoKScsXG4gICAgJyhjbGljayknOiAnc2VsZWN0T3B0aW9uKCknLFxuICAgICdbYXR0ci5pZF0nOiAnaWQnLFxuICAgIHJvbGU6ICdvcHRpb24nLFxuICB9LFxuICBpbXBvcnRzOiBbQXN5bmNQaXBlLCBOZ0lmLCBOZ1RlbXBsYXRlT3V0bGV0LCBOZ0NvbXBvbmVudE91dGxldF0sXG4gIGhvc3REaXJlY3RpdmVzOiBbXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogQ09NQk9CT1hfT1BUSU9OX1RPS0VOLFxuICAgICAgdXNlRXhpc3Rpbmc6IENvbWJvYm94T3B0aW9uQ29tcG9uZW50LFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIENvbWJvYm94T3B0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgQWJzdHJhY3RDb21ib2JveE9wdGlvbiB7XG4gIHJlYWRvbmx5IGlkID0gYGV0LWNvbWJvYm94LW9wdGlvbi0ke191bmlxdWVJZCsrfWA7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGNvbWJvYm94ID0gaW5qZWN0KENPTUJPQk9YX1RPS0VOKTtcblxuICByZWFkb25seSBfZWxlbWVudFJlZiA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZik7XG5cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgZ2V0IG9wdGlvbigpIHtcbiAgICByZXR1cm4gdGhpcy5fb3B0aW9uJC52YWx1ZTtcbiAgfVxuICBzZXQgb3B0aW9uKHZhbHVlOiB1bmtub3duKSB7XG4gICAgdGhpcy5fb3B0aW9uJC5uZXh0KHZhbHVlKTtcbiAgfVxuICByZWFkb25seSBfb3B0aW9uJCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8dW5rbm93bj4obnVsbCk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGRpc2FibGVkJCA9IHRoaXMuX29wdGlvbiQucGlwZShtYXAoKG9wdCkgPT4gaXNPcHRpb25EaXNhYmxlZChvcHQpKSk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IHNlbGVjdGVkJCA9IHRoaXMuX29wdGlvbiQucGlwZShzd2l0Y2hNYXAoKG9wdCkgPT4gdGhpcy5jb21ib2JveC5pc09wdGlvblNlbGVjdGVkKG9wdCkpKTtcblxuICBwcm90ZWN0ZWQgcmVhZG9ubHkgYWN0aXZlJCA9IHRoaXMuX29wdGlvbiQucGlwZShzd2l0Y2hNYXAoKG9wdCkgPT4gdGhpcy5jb21ib2JveC5pc09wdGlvbkFjdGl2ZShvcHQpKSk7XG5cbiAgcHJvdGVjdGVkIHJlYWRvbmx5IGN1c3RvbU9wdGlvbkNvbXBvbmVudElucHV0cyQgPSBjb21iaW5lTGF0ZXN0KFtcbiAgICB0aGlzLl9vcHRpb24kLFxuICAgIHRoaXMuY29tYm9ib3guY3VzdG9tT3B0aW9uQ29tcG9uZW50SW5wdXRzJCxcbiAgXSkucGlwZShtYXAoKFtvcHRpb24sIGlucHV0c10pID0+ICh7IG9wdGlvbiwgLi4uaW5wdXRzIH0pKSk7XG5cbiAgcmVhZG9ubHkgaG9zdENsYXNzQmluZGluZ3MgPSBzaWduYWxIb3N0Q2xhc3Nlcyh7XG4gICAgJ2V0LWNvbWJvYm94LW9wdGlvbi0tc2VsZWN0ZWQnOiB0b1NpZ25hbCh0aGlzLnNlbGVjdGVkJCksXG4gICAgJ2V0LWNvbWJvYm94LW9wdGlvbi0tZGlzYWJsZWQnOiB0b1NpZ25hbCh0aGlzLmRpc2FibGVkJCksXG4gICAgJ2V0LWNvbWJvYm94LW9wdGlvbi0tYWN0aXZlJzogdG9TaWduYWwodGhpcy5hY3RpdmUkKSxcbiAgfSk7XG5cbiAgcmVhZG9ubHkgaG9zdEF0dHJpYnV0ZUJpbmRpbmdzID0gc2lnbmFsSG9zdEF0dHJpYnV0ZXMoe1xuICAgICdhcmlhLXNlbGVjdGVkJzogdG9TaWduYWwodGhpcy5zZWxlY3RlZCQpLFxuICAgICdhcmlhLWRpc2FibGVkJzogdG9TaWduYWwodGhpcy5kaXNhYmxlZCQpLFxuICB9KTtcblxuICBwcm90ZWN0ZWQgc2VsZWN0T3B0aW9uKCkge1xuICAgIGlmIChpc09wdGlvbkRpc2FibGVkKHRoaXMub3B0aW9uKSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHRoaXMuY29tYm9ib3gud3JpdGVWYWx1ZUZyb21PcHRpb24odGhpcy5vcHRpb24pO1xuICAgIHRoaXMuY29tYm9ib3guZm9jdXMoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBpZ25vcmVCbHVyKCkge1xuICAgIHRoaXMuY29tYm9ib3guX2lnbm9yZU5leHRCbHVyRXZlbnQoKTtcbiAgfVxufVxuIiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cImNvbWJvYm94LmN1c3RvbU9wdGlvblRwbCQgfCBhc3luYyBhcyBjdXN0b21PcHRpb25UcGw7IGVsc2UgY29tcE9yRGVmYXVsdE9wdGlvbkxhYmVsVHBsXCI+XG4gIDxuZy1jb250YWluZXIgKm5nVGVtcGxhdGVPdXRsZXQ9XCJjdXN0b21PcHRpb25UcGw7IGNvbnRleHQ6IHsgb3B0aW9uIH1cIiAvPlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjY29tcE9yRGVmYXVsdE9wdGlvbkxhYmVsVHBsPlxuICA8bmctY29udGFpbmVyICpuZ0lmPVwiY29tYm9ib3guY3VzdG9tT3B0aW9uQ29tcG9uZW50JCB8IGFzeW5jIGFzIGNvbXA7IGVsc2UgZGVmYXVsdE9wdGlvbkxhYmVsVHBsXCI+XG4gICAgPG5nLWNvbnRhaW5lclxuICAgICAgKm5nQ29tcG9uZW50T3V0bGV0PVwiY29tcDsgaW5wdXRzOiAoY3VzdG9tT3B0aW9uQ29tcG9uZW50SW5wdXRzJCB8IGFzeW5jKSA/PyB7IG9wdGlvbiB9XCJcbiAgICA+PC9uZy1jb250YWluZXI+XG4gIDwvbmctY29udGFpbmVyPlxuICA8bmctdGVtcGxhdGUgI2RlZmF1bHRPcHRpb25MYWJlbFRwbD5cbiAgICB7eyBjb21ib2JveC5nZXRPcHRpb25MYWJlbChvcHRpb24pIHwgYXN5bmMgfX1cbiAgPC9uZy10ZW1wbGF0ZT5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
|
package/fesm2022/ethlete-cdk.mjs
CHANGED
|
@@ -8395,36 +8395,72 @@ class ComboboxDirective {
|
|
|
8395
8395
|
set optionComponent(component) {
|
|
8396
8396
|
this._optionComponent$.next(component);
|
|
8397
8397
|
}
|
|
8398
|
+
get optionComponentInputs() {
|
|
8399
|
+
return this._optionComponentInputs$.value;
|
|
8400
|
+
}
|
|
8401
|
+
set optionComponentInputs(value) {
|
|
8402
|
+
this._optionComponentInputs$.next(value ?? {});
|
|
8403
|
+
}
|
|
8398
8404
|
get selectedOptionComponent() {
|
|
8399
8405
|
return this._selectedOptionComponent$.value;
|
|
8400
8406
|
}
|
|
8401
8407
|
set selectedOptionComponent(component) {
|
|
8402
8408
|
this._selectedOptionComponent$.next(component);
|
|
8403
8409
|
}
|
|
8410
|
+
get selectedOptionComponentInputs() {
|
|
8411
|
+
return this._selectedOptionComponentInputs$.value;
|
|
8412
|
+
}
|
|
8413
|
+
set selectedOptionComponentInputs(value) {
|
|
8414
|
+
this._selectedOptionComponentInputs$.next(value ?? {});
|
|
8415
|
+
}
|
|
8404
8416
|
get bodyErrorComponent() {
|
|
8405
8417
|
return this._bodyErrorComponent$.value;
|
|
8406
8418
|
}
|
|
8407
8419
|
set bodyErrorComponent(value) {
|
|
8408
8420
|
this._bodyErrorComponent$.next(value);
|
|
8409
8421
|
}
|
|
8422
|
+
get bodyErrorComponentInputs() {
|
|
8423
|
+
return this._bodyErrorComponentInputs$.value;
|
|
8424
|
+
}
|
|
8425
|
+
set bodyErrorComponentInputs(value) {
|
|
8426
|
+
this._bodyErrorComponentInputs$.next(value ?? {});
|
|
8427
|
+
}
|
|
8410
8428
|
get bodyLoadingComponent() {
|
|
8411
8429
|
return this._bodyLoadingComponent$.value;
|
|
8412
8430
|
}
|
|
8413
8431
|
set bodyLoadingComponent(value) {
|
|
8414
8432
|
this._bodyLoadingComponent$.next(value);
|
|
8415
8433
|
}
|
|
8434
|
+
get bodyLoadingComponentInputs() {
|
|
8435
|
+
return this._bodyLoadingComponentInputs$.value;
|
|
8436
|
+
}
|
|
8437
|
+
set bodyLoadingComponentInputs(value) {
|
|
8438
|
+
this._bodyLoadingComponentInputs$.next(value ?? {});
|
|
8439
|
+
}
|
|
8416
8440
|
get bodyEmptyComponent() {
|
|
8417
8441
|
return this._bodyEmptyComponent$.value;
|
|
8418
8442
|
}
|
|
8419
8443
|
set bodyEmptyComponent(value) {
|
|
8420
8444
|
this._bodyEmptyComponent$.next(value);
|
|
8421
8445
|
}
|
|
8446
|
+
get bodyEmptyComponentInputs() {
|
|
8447
|
+
return this._bodyEmptyComponentInputs$.value;
|
|
8448
|
+
}
|
|
8449
|
+
set bodyEmptyComponentInputs(value) {
|
|
8450
|
+
this._bodyEmptyComponentInputs$.next(value ?? {});
|
|
8451
|
+
}
|
|
8422
8452
|
get bodyMoreItemsHintComponent() {
|
|
8423
8453
|
return this._bodyMoreItemsHintComponent$.value;
|
|
8424
8454
|
}
|
|
8425
8455
|
set bodyMoreItemsHintComponent(value) {
|
|
8426
8456
|
this._bodyMoreItemsHintComponent$.next(value);
|
|
8427
8457
|
}
|
|
8458
|
+
get bodyMoreItemsHintComponentInputs() {
|
|
8459
|
+
return this._bodyMoreItemsHintComponentInputs$.value;
|
|
8460
|
+
}
|
|
8461
|
+
set bodyMoreItemsHintComponentInputs(value) {
|
|
8462
|
+
this._bodyMoreItemsHintComponentInputs$.next(value ?? {});
|
|
8463
|
+
}
|
|
8428
8464
|
get currentFilter() {
|
|
8429
8465
|
return this._currentFilter$.value;
|
|
8430
8466
|
}
|
|
@@ -8464,15 +8500,22 @@ class ComboboxDirective {
|
|
|
8464
8500
|
this._loading$ = new BehaviorSubject(false);
|
|
8465
8501
|
this.loading$ = this._loading$.asObservable();
|
|
8466
8502
|
this._error$ = new BehaviorSubject(null);
|
|
8503
|
+
this.error$ = this._error$.asObservable();
|
|
8467
8504
|
this._placeholder$ = new BehaviorSubject(null);
|
|
8468
8505
|
this._allowCustomValues$ = new BehaviorSubject(false);
|
|
8469
8506
|
this._showBodyMoreItemsHint$ = new BehaviorSubject(false);
|
|
8470
8507
|
this._optionComponent$ = new BehaviorSubject(this._comboboxConfig?.optionComponent ?? null);
|
|
8508
|
+
this._optionComponentInputs$ = new BehaviorSubject({});
|
|
8471
8509
|
this._selectedOptionComponent$ = new BehaviorSubject(this._comboboxConfig?.selectedOptionComponent ?? null);
|
|
8510
|
+
this._selectedOptionComponentInputs$ = new BehaviorSubject({});
|
|
8472
8511
|
this._bodyErrorComponent$ = new BehaviorSubject(this._comboboxConfig?.bodyErrorComponent ?? null);
|
|
8512
|
+
this._bodyErrorComponentInputs$ = new BehaviorSubject({});
|
|
8473
8513
|
this._bodyLoadingComponent$ = new BehaviorSubject(this._comboboxConfig?.bodyLoadingComponent ?? null);
|
|
8514
|
+
this._bodyLoadingComponentInputs$ = new BehaviorSubject({});
|
|
8474
8515
|
this._bodyEmptyComponent$ = new BehaviorSubject(this._comboboxConfig?.bodyEmptyComponent ?? null);
|
|
8516
|
+
this._bodyEmptyComponentInputs$ = new BehaviorSubject({});
|
|
8475
8517
|
this._bodyMoreItemsHintComponent$ = new BehaviorSubject(this._comboboxConfig?.bodyMoreItemsHintComponent ?? null);
|
|
8518
|
+
this._bodyMoreItemsHintComponentInputs$ = new BehaviorSubject({});
|
|
8476
8519
|
//#endregion
|
|
8477
8520
|
//#region Outputs
|
|
8478
8521
|
this.filterChange = new EventEmitter();
|
|
@@ -8525,6 +8568,12 @@ class ComboboxDirective {
|
|
|
8525
8568
|
this.customBodyEmptyComponent$ = this._bodyEmptyComponent$.asObservable();
|
|
8526
8569
|
this.customBodyMoreItemsHintTpl$ = this._bodyMoreItemsHintTemplate$.asObservable();
|
|
8527
8570
|
this.customBodyMoreItemsHintComponent$ = this._bodyMoreItemsHintComponent$.asObservable();
|
|
8571
|
+
this.customOptionComponentInputs$ = this._optionComponentInputs$.asObservable();
|
|
8572
|
+
this.customSelectedOptionComponentInputs$ = this._selectedOptionComponentInputs$.asObservable();
|
|
8573
|
+
this.customBodyLoadingComponentInputs$ = this._bodyLoadingComponentInputs$.asObservable();
|
|
8574
|
+
this.customBodyErrorComponentInputs$ = this._bodyErrorComponentInputs$.asObservable();
|
|
8575
|
+
this.customBodyEmptyComponentInputs$ = this._bodyEmptyComponentInputs$.asObservable();
|
|
8576
|
+
this.customBodyMoreItemsHintComponentInputs$ = this._bodyMoreItemsHintComponentInputs$.asObservable();
|
|
8528
8577
|
this.trackByOptionKeyFn = (index, item) => this._selectionModel.getKey(item);
|
|
8529
8578
|
this._activeSelectionModel.setSelectionModel(this._selectionModel);
|
|
8530
8579
|
this._animatedOverlay.placement = 'bottom';
|
|
@@ -8559,6 +8608,9 @@ class ComboboxDirective {
|
|
|
8559
8608
|
getOptionValue(option) {
|
|
8560
8609
|
return this._selectionModel.getValue$(option);
|
|
8561
8610
|
}
|
|
8611
|
+
combineSelectedOptionWithComponentInputs(option) {
|
|
8612
|
+
return this.customSelectedOptionComponentInputs$.pipe(map((inputs) => ({ option, ...inputs })), takeUntil(this._destroy$));
|
|
8613
|
+
}
|
|
8562
8614
|
removeSelectedOption(option) {
|
|
8563
8615
|
this._selectionModel.removeSelectedOption(option);
|
|
8564
8616
|
this._input._markAsTouched();
|
|
@@ -8879,7 +8931,7 @@ class ComboboxDirective {
|
|
|
8879
8931
|
.subscribe();
|
|
8880
8932
|
}
|
|
8881
8933
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: ComboboxDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
8882
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "16.2.5", type: ComboboxDirective, isStandalone: true, inputs: { options: "options", initialValue: "initialValue", filterInternal: "filterInternal", loading: "loading", error: "error", emptyText: "emptyText", bodyEmptyText: "bodyEmptyText", bodyMoreItemsHintText: "bodyMoreItemsHintText", placeholder: "placeholder", multiple: "multiple", bindLabel: "bindLabel", bindValue: "bindValue", bindKey: "bindKey", allowCustomValues: "allowCustomValues", showBodyMoreItemsHint: ["showBodyMoreItemsHint", "showBodyMoreItemsHint", booleanAttribute], optionComponent: "optionComponent", selectedOptionComponent: "selectedOptionComponent", bodyErrorComponent: "bodyErrorComponent", bodyLoadingComponent: "bodyLoadingComponent", bodyEmptyComponent: "bodyEmptyComponent", bodyMoreItemsHintComponent: "bodyMoreItemsHintComponent" }, outputs: { filterChange: "filterChange" }, providers: [
|
|
8934
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "16.2.5", type: ComboboxDirective, isStandalone: true, inputs: { options: "options", initialValue: "initialValue", filterInternal: "filterInternal", loading: "loading", error: "error", emptyText: "emptyText", bodyEmptyText: "bodyEmptyText", bodyMoreItemsHintText: "bodyMoreItemsHintText", placeholder: "placeholder", multiple: "multiple", bindLabel: "bindLabel", bindValue: "bindValue", bindKey: "bindKey", allowCustomValues: "allowCustomValues", showBodyMoreItemsHint: ["showBodyMoreItemsHint", "showBodyMoreItemsHint", booleanAttribute], optionComponent: "optionComponent", optionComponentInputs: "optionComponentInputs", selectedOptionComponent: "selectedOptionComponent", selectedOptionComponentInputs: "selectedOptionComponentInputs", bodyErrorComponent: "bodyErrorComponent", bodyErrorComponentInputs: "bodyErrorComponentInputs", bodyLoadingComponent: "bodyLoadingComponent", bodyLoadingComponentInputs: "bodyLoadingComponentInputs", bodyEmptyComponent: "bodyEmptyComponent", bodyEmptyComponentInputs: "bodyEmptyComponentInputs", bodyMoreItemsHintComponent: "bodyMoreItemsHintComponent", bodyMoreItemsHintComponentInputs: "bodyMoreItemsHintComponentInputs" }, outputs: { filterChange: "filterChange" }, providers: [
|
|
8883
8935
|
{
|
|
8884
8936
|
provide: COMBOBOX_TOKEN,
|
|
8885
8937
|
useExisting: ComboboxDirective,
|
|
@@ -8931,16 +8983,28 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
|
|
|
8931
8983
|
args: [{ transform: booleanAttribute }]
|
|
8932
8984
|
}], optionComponent: [{
|
|
8933
8985
|
type: Input
|
|
8986
|
+
}], optionComponentInputs: [{
|
|
8987
|
+
type: Input
|
|
8934
8988
|
}], selectedOptionComponent: [{
|
|
8935
8989
|
type: Input
|
|
8990
|
+
}], selectedOptionComponentInputs: [{
|
|
8991
|
+
type: Input
|
|
8936
8992
|
}], bodyErrorComponent: [{
|
|
8937
8993
|
type: Input
|
|
8994
|
+
}], bodyErrorComponentInputs: [{
|
|
8995
|
+
type: Input
|
|
8938
8996
|
}], bodyLoadingComponent: [{
|
|
8939
8997
|
type: Input
|
|
8998
|
+
}], bodyLoadingComponentInputs: [{
|
|
8999
|
+
type: Input
|
|
8940
9000
|
}], bodyEmptyComponent: [{
|
|
8941
9001
|
type: Input
|
|
9002
|
+
}], bodyEmptyComponentInputs: [{
|
|
9003
|
+
type: Input
|
|
8942
9004
|
}], bodyMoreItemsHintComponent: [{
|
|
8943
9005
|
type: Input
|
|
9006
|
+
}], bodyMoreItemsHintComponentInputs: [{
|
|
9007
|
+
type: Input
|
|
8944
9008
|
}], filterChange: [{
|
|
8945
9009
|
type: Output
|
|
8946
9010
|
}], optionTemplate: [{
|
|
@@ -8974,6 +9038,10 @@ class ComboboxOptionComponent {
|
|
|
8974
9038
|
this.disabled$ = this._option$.pipe(map((opt) => isOptionDisabled(opt)));
|
|
8975
9039
|
this.selected$ = this._option$.pipe(switchMap((opt) => this.combobox.isOptionSelected(opt)));
|
|
8976
9040
|
this.active$ = this._option$.pipe(switchMap((opt) => this.combobox.isOptionActive(opt)));
|
|
9041
|
+
this.customOptionComponentInputs$ = combineLatest([
|
|
9042
|
+
this._option$,
|
|
9043
|
+
this.combobox.customOptionComponentInputs$,
|
|
9044
|
+
]).pipe(map(([option, inputs]) => ({ option, ...inputs })));
|
|
8977
9045
|
this.hostClassBindings = signalHostClasses({
|
|
8978
9046
|
'et-combobox-option--selected': toSignal(this.selected$),
|
|
8979
9047
|
'et-combobox-option--disabled': toSignal(this.disabled$),
|
|
@@ -9006,7 +9074,7 @@ class ComboboxOptionComponent {
|
|
|
9006
9074
|
provide: COMBOBOX_OPTION_TOKEN,
|
|
9007
9075
|
useExisting: ComboboxOptionComponent,
|
|
9008
9076
|
},
|
|
9009
|
-
], ngImport: i0, template: "<ng-container *ngIf=\"combobox.customOptionTpl$ | async as customOptionTpl; else compOrDefaultOptionLabelTpl\">\n <ng-container *ngTemplateOutlet=\"customOptionTpl; context: { option }\" />\n</ng-container>\n\n<ng-template #compOrDefaultOptionLabelTpl>\n <ng-container *ngIf=\"combobox.customOptionComponent$ | async as comp; else defaultOptionLabelTpl\">\n <ng-container
|
|
9077
|
+
], ngImport: i0, template: "<ng-container *ngIf=\"combobox.customOptionTpl$ | async as customOptionTpl; else compOrDefaultOptionLabelTpl\">\n <ng-container *ngTemplateOutlet=\"customOptionTpl; context: { option }\" />\n</ng-container>\n\n<ng-template #compOrDefaultOptionLabelTpl>\n <ng-container *ngIf=\"combobox.customOptionComponent$ | async as comp; else defaultOptionLabelTpl\">\n <ng-container\n *ngComponentOutlet=\"comp; inputs: (customOptionComponentInputs$ | async) ?? { option }\"\n ></ng-container>\n </ng-container>\n <ng-template #defaultOptionLabelTpl>\n {{ combobox.getOptionLabel(option) | async }}\n </ng-template>\n</ng-template>\n", dependencies: [{ kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
9010
9078
|
}
|
|
9011
9079
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: ComboboxOptionComponent, decorators: [{
|
|
9012
9080
|
type: Component,
|
|
@@ -9021,7 +9089,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
|
|
|
9021
9089
|
provide: COMBOBOX_OPTION_TOKEN,
|
|
9022
9090
|
useExisting: ComboboxOptionComponent,
|
|
9023
9091
|
},
|
|
9024
|
-
], template: "<ng-container *ngIf=\"combobox.customOptionTpl$ | async as customOptionTpl; else compOrDefaultOptionLabelTpl\">\n <ng-container *ngTemplateOutlet=\"customOptionTpl; context: { option }\" />\n</ng-container>\n\n<ng-template #compOrDefaultOptionLabelTpl>\n <ng-container *ngIf=\"combobox.customOptionComponent$ | async as comp; else defaultOptionLabelTpl\">\n <ng-container
|
|
9092
|
+
], template: "<ng-container *ngIf=\"combobox.customOptionTpl$ | async as customOptionTpl; else compOrDefaultOptionLabelTpl\">\n <ng-container *ngTemplateOutlet=\"customOptionTpl; context: { option }\" />\n</ng-container>\n\n<ng-template #compOrDefaultOptionLabelTpl>\n <ng-container *ngIf=\"combobox.customOptionComponent$ | async as comp; else defaultOptionLabelTpl\">\n <ng-container\n *ngComponentOutlet=\"comp; inputs: (customOptionComponentInputs$ | async) ?? { option }\"\n ></ng-container>\n </ng-container>\n <ng-template #defaultOptionLabelTpl>\n {{ combobox.getOptionLabel(option) | async }}\n </ng-template>\n</ng-template>\n" }]
|
|
9025
9093
|
}], propDecorators: { option: [{
|
|
9026
9094
|
type: Input,
|
|
9027
9095
|
args: [{ required: true }]
|
|
@@ -9045,6 +9113,10 @@ class ComboboxBodyComponent {
|
|
|
9045
9113
|
'aria-multiselectable': toSignal(this.combobox.multiple$),
|
|
9046
9114
|
'aria-labelledby': toSignal(this.combobox._input.labelId$),
|
|
9047
9115
|
});
|
|
9116
|
+
this.customErrorComponentInputs$ = combineLatest([
|
|
9117
|
+
this.combobox.error$,
|
|
9118
|
+
this.combobox.customBodyErrorComponentInputs$,
|
|
9119
|
+
]).pipe(map(([error, inputs]) => ({ error, ...inputs })));
|
|
9048
9120
|
this._bodyTemplate = null;
|
|
9049
9121
|
this.trackByFn = (index, item) => this.combobox._selectionModel.getKey(item);
|
|
9050
9122
|
}
|
|
@@ -9065,7 +9137,7 @@ class ComboboxBodyComponent {
|
|
|
9065
9137
|
provide: COMBOBOX_BODY_TOKEN,
|
|
9066
9138
|
useExisting: ComboboxBodyComponent,
|
|
9067
9139
|
},
|
|
9068
|
-
], viewQueries: [{ propertyName: "_containerElementRef", first: true, predicate: ["containerElement"], descendants: true, read: ElementRef, static: true }, { propertyName: "_animatedLifecycle", first: true, predicate: ANIMATED_LIFECYCLE_TOKEN, descendants: true, static: true }, { propertyName: "_options", predicate: ComboboxOptionComponent, descendants: true }], hostDirectives: [{ directive: i1$2.ClickOutsideDirective }, { directive: i2$1.ProvideThemeDirective }], ngImport: i0, template: "<div #containerElement class=\"et-combobox-body-container\" etAnimatedLifecycle>\n <ng-container *etLet=\"combobox.options$ | async as options\">\n <ng-container *ngIf=\"!options?.length && !combobox.error && !combobox.loading\">\n <ng-container *ngIf=\"combobox.customBodyEmptyTpl$ | async as tpl; else componentOrNone\">\n <ng-container *ngTemplateOutlet=\"tpl\" />\n </ng-container>\n <ng-template #componentOrNone>\n <ng-container *ngIf=\"combobox.customBodyEmptyComponent$ | async as comp; else default\">\n <ng-container
|
|
9140
|
+
], viewQueries: [{ propertyName: "_containerElementRef", first: true, predicate: ["containerElement"], descendants: true, read: ElementRef, static: true }, { propertyName: "_animatedLifecycle", first: true, predicate: ANIMATED_LIFECYCLE_TOKEN, descendants: true, static: true }, { propertyName: "_options", predicate: ComboboxOptionComponent, descendants: true }], hostDirectives: [{ directive: i1$2.ClickOutsideDirective }, { directive: i2$1.ProvideThemeDirective }], ngImport: i0, template: "<div #containerElement class=\"et-combobox-body-container\" etAnimatedLifecycle>\n <ng-container *etLet=\"combobox.options$ | async as options\">\n <ng-container *ngIf=\"!options?.length && !combobox.error && !combobox.loading\">\n <ng-container *ngIf=\"combobox.customBodyEmptyTpl$ | async as tpl; else componentOrNone\">\n <ng-container *ngTemplateOutlet=\"tpl\" />\n </ng-container>\n <ng-template #componentOrNone>\n <ng-container *ngIf=\"combobox.customBodyEmptyComponent$ | async as comp; else default\">\n <ng-container\n *ngComponentOutlet=\"comp; inputs: (combobox.customBodyEmptyComponentInputs$ | async) ?? undefined\"\n />\n </ng-container>\n <ng-template #default>\n <p class=\"et-combobox-body--empty\">{{ combobox._tempEmptyText }}</p>\n </ng-template>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"combobox.error && !combobox.loading\">\n <ng-container *ngIf=\"combobox.customBodyErrorTpl$ | async as tpl; else componentOrNone\">\n <ng-container *ngTemplateOutlet=\"tpl; context: { error: combobox.error }\" />\n </ng-container>\n <ng-template #componentOrNone>\n <ng-container *ngIf=\"combobox.customBodyErrorComponent$ | async as comp\">\n <ng-container\n *ngComponentOutlet=\"comp; inputs: (customErrorComponentInputs$ | async) ?? { error: combobox.error }\"\n />\n </ng-container>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"combobox.loading$ | async\">\n <ng-container *ngIf=\"combobox.customBodyLoadingTpl$ | async as tpl; else componentOrNone\">\n <ng-container *ngTemplateOutlet=\"tpl\" />\n </ng-container>\n <ng-template #componentOrNone>\n <ng-container *ngIf=\"combobox.customBodyLoadingComponent$ | async as comp\">\n <ng-container\n *ngComponentOutlet=\"comp; inputs: (combobox.customBodyLoadingComponentInputs$ | async) ?? undefined\"\n />\n </ng-container>\n </ng-template>\n </ng-container>\n\n <et-combobox-option *ngFor=\"let option of options; trackBy: trackByFn\" [option]=\"option\" />\n\n <ng-container *ngIf=\"options?.length && combobox.showBodyMoreItemsHint\">\n <ng-container *ngIf=\"combobox.customBodyMoreItemsHintTpl$ | async as tpl; else componentOrNone\">\n <ng-container *ngTemplateOutlet=\"tpl\" />\n </ng-container>\n <ng-template #componentOrNone>\n <ng-container *ngIf=\"combobox.customBodyMoreItemsHintComponent$ | async as comp; else default\">\n <ng-container\n *ngComponentOutlet=\"comp; inputs: (combobox.customBodyMoreItemsHintComponentInputs$ | async) ?? undefined\"\n />\n </ng-container>\n <ng-template #default>\n <p *ngIf=\"combobox.bodyMoreItemsHintText\" class=\"et-combobox-body--more-items-hint\">\n {{ combobox.bodyMoreItemsHintText }}\n </p>\n </ng-template>\n </ng-template>\n </ng-container>\n </ng-container>\n</div>\n", dependencies: [{ kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: ComboboxOptionComponent, selector: "et-combobox-option", inputs: ["option"] }, { kind: "directive", type: LetDirective, selector: "[etLet]", inputs: ["etLet"] }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "directive", type: AnimatedLifecycleDirective, selector: "[etAnimatedLifecycle]", exportAs: ["etAnimatedLifecycle"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
9069
9141
|
}
|
|
9070
9142
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: ComboboxBodyComponent, decorators: [{
|
|
9071
9143
|
type: Component,
|
|
@@ -9088,7 +9160,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
|
|
|
9088
9160
|
provide: COMBOBOX_BODY_TOKEN,
|
|
9089
9161
|
useExisting: ComboboxBodyComponent,
|
|
9090
9162
|
},
|
|
9091
|
-
], template: "<div #containerElement class=\"et-combobox-body-container\" etAnimatedLifecycle>\n <ng-container *etLet=\"combobox.options$ | async as options\">\n <ng-container *ngIf=\"!options?.length && !combobox.error && !combobox.loading\">\n <ng-container *ngIf=\"combobox.customBodyEmptyTpl$ | async as tpl; else componentOrNone\">\n <ng-container *ngTemplateOutlet=\"tpl\" />\n </ng-container>\n <ng-template #componentOrNone>\n <ng-container *ngIf=\"combobox.customBodyEmptyComponent$ | async as comp; else default\">\n <ng-container
|
|
9163
|
+
], template: "<div #containerElement class=\"et-combobox-body-container\" etAnimatedLifecycle>\n <ng-container *etLet=\"combobox.options$ | async as options\">\n <ng-container *ngIf=\"!options?.length && !combobox.error && !combobox.loading\">\n <ng-container *ngIf=\"combobox.customBodyEmptyTpl$ | async as tpl; else componentOrNone\">\n <ng-container *ngTemplateOutlet=\"tpl\" />\n </ng-container>\n <ng-template #componentOrNone>\n <ng-container *ngIf=\"combobox.customBodyEmptyComponent$ | async as comp; else default\">\n <ng-container\n *ngComponentOutlet=\"comp; inputs: (combobox.customBodyEmptyComponentInputs$ | async) ?? undefined\"\n />\n </ng-container>\n <ng-template #default>\n <p class=\"et-combobox-body--empty\">{{ combobox._tempEmptyText }}</p>\n </ng-template>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"combobox.error && !combobox.loading\">\n <ng-container *ngIf=\"combobox.customBodyErrorTpl$ | async as tpl; else componentOrNone\">\n <ng-container *ngTemplateOutlet=\"tpl; context: { error: combobox.error }\" />\n </ng-container>\n <ng-template #componentOrNone>\n <ng-container *ngIf=\"combobox.customBodyErrorComponent$ | async as comp\">\n <ng-container\n *ngComponentOutlet=\"comp; inputs: (customErrorComponentInputs$ | async) ?? { error: combobox.error }\"\n />\n </ng-container>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"combobox.loading$ | async\">\n <ng-container *ngIf=\"combobox.customBodyLoadingTpl$ | async as tpl; else componentOrNone\">\n <ng-container *ngTemplateOutlet=\"tpl\" />\n </ng-container>\n <ng-template #componentOrNone>\n <ng-container *ngIf=\"combobox.customBodyLoadingComponent$ | async as comp\">\n <ng-container\n *ngComponentOutlet=\"comp; inputs: (combobox.customBodyLoadingComponentInputs$ | async) ?? undefined\"\n />\n </ng-container>\n </ng-template>\n </ng-container>\n\n <et-combobox-option *ngFor=\"let option of options; trackBy: trackByFn\" [option]=\"option\" />\n\n <ng-container *ngIf=\"options?.length && combobox.showBodyMoreItemsHint\">\n <ng-container *ngIf=\"combobox.customBodyMoreItemsHintTpl$ | async as tpl; else componentOrNone\">\n <ng-container *ngTemplateOutlet=\"tpl\" />\n </ng-container>\n <ng-template #componentOrNone>\n <ng-container *ngIf=\"combobox.customBodyMoreItemsHintComponent$ | async as comp; else default\">\n <ng-container\n *ngComponentOutlet=\"comp; inputs: (combobox.customBodyMoreItemsHintComponentInputs$ | async) ?? undefined\"\n />\n </ng-container>\n <ng-template #default>\n <p *ngIf=\"combobox.bodyMoreItemsHintText\" class=\"et-combobox-body--more-items-hint\">\n {{ combobox.bodyMoreItemsHintText }}\n </p>\n </ng-template>\n </ng-template>\n </ng-container>\n </ng-container>\n</div>\n" }]
|
|
9092
9164
|
}], propDecorators: { _containerElementRef: [{
|
|
9093
9165
|
type: ViewChild,
|
|
9094
9166
|
args: ['containerElement', { static: true, read: ElementRef }]
|
|
@@ -9107,7 +9179,7 @@ class ComboboxComponent extends DecoratedInputBase {
|
|
|
9107
9179
|
this.combobox.setBodyComponent(ComboboxBodyComponent);
|
|
9108
9180
|
}
|
|
9109
9181
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: ComboboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9110
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: ComboboxComponent, isStandalone: true, selector: "et-combobox", host: { listeners: { "click": "combobox.selectInputAndOpen()" }, classAttribute: "et-combobox" }, usesInheritance: true, hostDirectives: [{ directive: i1$2.AnimatedOverlayDirective }, { directive: InputDirective, inputs: ["placeholder", "placeholder"] }, { directive: ComboboxDirective, inputs: ["options", "options", "initialValue", "initialValue", "filterInternal", "filterInternal", "loading", "loading", "error", "error", "emptyText", "emptyText", "placeholder", "placeholder", "multiple", "multiple", "bindLabel", "bindLabel", "bindValue", "bindValue", "allowCustomValues", "allowCustomValues", "selectedOptionComponent", "selectedOptionComponent", "optionComponent", "optionComponent", "bodyErrorComponent", "bodyErrorComponent", "bodyLoadingComponent", "bodyLoadingComponent", "bodyEmptyComponent", "bodyEmptyComponent", "bodyMoreItemsHintComponent", "bodyMoreItemsHintComponent", "showBodyMoreItemsHint", "showBodyMoreItemsHint", "bodyEmptyText", "bodyEmptyText", "bodyMoreItemsHintText", "bodyMoreItemsHintText"], outputs: ["filterChange", "filterChange"] }], ngImport: i0, template: "<ng-content select=\"[etInputPrefix]\" />\n\n<div>\n <div *ngIf=\"combobox.multiple$ | async\" class=\"et-combobox-selected-options\">\n <div\n *ngFor=\"let item of combobox.selectedOptions$ | async; trackBy: combobox.trackByOptionKeyFn\"\n class=\"et-combobox-selected-option\"\n aria-hidden=\"true\"\n >\n <ng-container\n *ngIf=\"\n combobox.customSelectedOptionTpl$ | async as customSelectedOptionTpl;\n else compOrDefaultSelectedOptionLabelTpl\n \"\n >\n <ng-container *ngTemplateOutlet=\"customSelectedOptionTpl; context: { option: item }\" />\n </ng-container>\n\n <ng-template #compOrDefaultSelectedOptionLabelTpl>\n <ng-container\n *ngIf=\"combobox.customSelectedOptionComponent$ | async as comp; else defaultSelectedOptionLabelTpl\"\n >\n <ng-container
|
|
9182
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: ComboboxComponent, isStandalone: true, selector: "et-combobox", host: { listeners: { "click": "combobox.selectInputAndOpen()" }, classAttribute: "et-combobox" }, usesInheritance: true, hostDirectives: [{ directive: i1$2.AnimatedOverlayDirective }, { directive: InputDirective, inputs: ["placeholder", "placeholder"] }, { directive: ComboboxDirective, inputs: ["options", "options", "initialValue", "initialValue", "filterInternal", "filterInternal", "loading", "loading", "error", "error", "emptyText", "emptyText", "placeholder", "placeholder", "multiple", "multiple", "bindLabel", "bindLabel", "bindValue", "bindValue", "allowCustomValues", "allowCustomValues", "selectedOptionComponent", "selectedOptionComponent", "optionComponent", "optionComponent", "bodyErrorComponent", "bodyErrorComponent", "bodyLoadingComponent", "bodyLoadingComponent", "bodyEmptyComponent", "bodyEmptyComponent", "bodyMoreItemsHintComponent", "bodyMoreItemsHintComponent", "showBodyMoreItemsHint", "showBodyMoreItemsHint", "bodyEmptyText", "bodyEmptyText", "bodyMoreItemsHintText", "bodyMoreItemsHintText", "optionComponentInputs", "optionComponentInputs", "selectedOptionComponentInputs", "selectedOptionComponentInputs", "bodyErrorComponentInputs", "bodyErrorComponentInputs", "bodyLoadingComponentInputs", "bodyLoadingComponentInputs", "bodyEmptyComponentInputs", "bodyEmptyComponentInputs", "bodyMoreItemsHintComponentInputs", "bodyMoreItemsHintComponentInputs"], outputs: ["filterChange", "filterChange"] }], ngImport: i0, template: "<ng-content select=\"[etInputPrefix]\" />\n\n<div>\n <div *ngIf=\"combobox.multiple$ | async\" class=\"et-combobox-selected-options\">\n <div\n *ngFor=\"let item of combobox.selectedOptions$ | async; trackBy: combobox.trackByOptionKeyFn\"\n class=\"et-combobox-selected-option\"\n aria-hidden=\"true\"\n >\n <ng-container\n *ngIf=\"\n combobox.customSelectedOptionTpl$ | async as customSelectedOptionTpl;\n else compOrDefaultSelectedOptionLabelTpl\n \"\n >\n <ng-container *ngTemplateOutlet=\"customSelectedOptionTpl; context: { option: item }\" />\n </ng-container>\n\n <ng-template #compOrDefaultSelectedOptionLabelTpl>\n <ng-container\n *ngIf=\"combobox.customSelectedOptionComponent$ | async as comp; else defaultSelectedOptionLabelTpl\"\n >\n <ng-container\n *ngComponentOutlet=\"\n comp;\n inputs: (combobox.combineSelectedOptionWithComponentInputs(item) | async) ?? { option: item }\n \"\n ></ng-container>\n </ng-container>\n <ng-template #defaultSelectedOptionLabelTpl>\n {{ combobox.getOptionLabel(item) | async }}\n </ng-template>\n </ng-template>\n\n <button\n (click)=\"combobox.removeSelectedOption(item); $event.stopPropagation()\"\n class=\"et-combobox-selected-option-remove\"\n tabindex=\"-1\"\n >\n x\n </button>\n </div>\n <div class=\"et-combobox-muliple-input\">\n <ng-container *ngTemplateOutlet=\"inputTpl\" />\n </div>\n </div>\n\n <ng-template #inputTpl>\n <input\n [disabled]=\"input.disabled\"\n [attr.id]=\"input.id\"\n [attr.aria-required]=\"(input.required$ | async) || null\"\n [attr.aria-disabled]=\"(input.disabled$ | async) || null\"\n [attr.aria-invalid]=\"(input.invalid$ | async) || null\"\n [attr.aria-expanded]=\"combobox.isOpen$ | async\"\n [attr.aria-describedby]=\"input.describedBy$ | async\"\n [attr.placeholder]=\"input.placeholder || null\"\n [attr.aria-activedescendant]=\"combobox.activeOptionId$ | async\"\n [attr.aria-controls]=\"(combobox.selectBodyId$ | async) || null\"\n [attr.aria-owns]=\"(combobox.selectBodyId$ | async) || null\"\n (keydown)=\"combobox._processKeydownEvent($event)\"\n (keyup)=\"combobox._processKeyupEvent()\"\n (click)=\"combobox.open()\"\n (blur)=\"combobox._handleBlurEvent()\"\n (input)=\"combobox._processInputEvent($event)\"\n class=\"et-combobox-wrapper\"\n aria-haspopup=\"listbox\"\n role=\"combobox\"\n aria-autocomplete=\"list\"\n type=\"text\"\n value=\"{{ combobox.currentFilter }}\"\n etNativeInputRef\n />\n </ng-template>\n\n <ng-container *ngIf=\"(combobox.multiple$ | async) === false\">\n <ng-container *ngTemplateOutlet=\"inputTpl\" />\n </ng-container>\n\n <et-chevron-icon class=\"et-combobox-chevron\" />\n</div>\n\n<ng-content select=\"[etInputSuffix]\" />\n\n<ng-template>\n <ng-content />\n</ng-template>\n", styles: [".et-combobox-body.et-with-default-animation .et-combobox-body-container.et-animation-enter-from,.et-combobox-body.et-with-default-animation .et-combobox-body-container.et-animation-leave-to{opacity:0;transform:scaleY(0)}.et-combobox-body.et-with-default-animation .et-combobox-body-container.et-animation-enter-active{transition:transform 125ms var(--ease-out-5),opacity 125ms var(--ease-out-5)}.et-combobox-body.et-with-default-animation .et-combobox-body-container.et-animation-leave-active{transition:transform 50ms var(--ease-in-5),opacity 50ms var(--ease-in-5)}.et-combobox-body.et-with-default-animation[et-floating-placement^=top] .et-combobox-body-container{transform-origin:bottom}.et-combobox-body.et-with-default-animation[et-floating-placement^=bottom] .et-combobox-body-container{transform-origin:top}.et-combobox-body-container{display:block;background-color:#3d3d3d;color:#fff;max-height:min(200px,var(--et-floating-max-height, 200px));overflow:auto}@supports (overflow: overlay){.et-combobox-body-container{overflow:overlay}}.et-combobox-body{width:100%;display:grid;transform:var(--et-floating-translate);will-change:transform}.et-combobox-option{display:block}:where(.et-combobox-option--active){background-color:#1e1e1e}.et-combobox{display:block;border:1px solid #ccc;padding:15px;position:relative}.et-combobox-chevron{transform:rotate(180deg);display:block;inline-size:15px;block-size:15px;position:absolute;inset-inline-end:15px;inset-block-start:7px}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NativeInputRefDirective, selector: "input[etNativeInputRef], textarea[etNativeInputRef], select[etNativeInputRef], button[etNativeInputRef]" }, { kind: "pipe", type: AsyncPipe, name: "async" }, { kind: "component", type: ChevronIconComponent, selector: "et-chevron-icon" }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
9111
9183
|
}
|
|
9112
9184
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: ComboboxComponent, decorators: [{
|
|
9113
9185
|
type: Component,
|
|
@@ -9149,11 +9221,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
|
|
|
9149
9221
|
'showBodyMoreItemsHint',
|
|
9150
9222
|
'bodyEmptyText',
|
|
9151
9223
|
'bodyMoreItemsHintText',
|
|
9224
|
+
'optionComponentInputs',
|
|
9225
|
+
'selectedOptionComponentInputs',
|
|
9226
|
+
'bodyErrorComponentInputs',
|
|
9227
|
+
'bodyLoadingComponentInputs',
|
|
9228
|
+
'bodyEmptyComponentInputs',
|
|
9229
|
+
'bodyMoreItemsHintComponentInputs',
|
|
9152
9230
|
],
|
|
9153
9231
|
// eslint-disable-next-line @angular-eslint/no-outputs-metadata-property
|
|
9154
9232
|
outputs: ['filterChange'],
|
|
9155
9233
|
},
|
|
9156
|
-
], template: "<ng-content select=\"[etInputPrefix]\" />\n\n<div>\n <div *ngIf=\"combobox.multiple$ | async\" class=\"et-combobox-selected-options\">\n <div\n *ngFor=\"let item of combobox.selectedOptions$ | async; trackBy: combobox.trackByOptionKeyFn\"\n class=\"et-combobox-selected-option\"\n aria-hidden=\"true\"\n >\n <ng-container\n *ngIf=\"\n combobox.customSelectedOptionTpl$ | async as customSelectedOptionTpl;\n else compOrDefaultSelectedOptionLabelTpl\n \"\n >\n <ng-container *ngTemplateOutlet=\"customSelectedOptionTpl; context: { option: item }\" />\n </ng-container>\n\n <ng-template #compOrDefaultSelectedOptionLabelTpl>\n <ng-container\n *ngIf=\"combobox.customSelectedOptionComponent$ | async as comp; else defaultSelectedOptionLabelTpl\"\n >\n <ng-container
|
|
9234
|
+
], template: "<ng-content select=\"[etInputPrefix]\" />\n\n<div>\n <div *ngIf=\"combobox.multiple$ | async\" class=\"et-combobox-selected-options\">\n <div\n *ngFor=\"let item of combobox.selectedOptions$ | async; trackBy: combobox.trackByOptionKeyFn\"\n class=\"et-combobox-selected-option\"\n aria-hidden=\"true\"\n >\n <ng-container\n *ngIf=\"\n combobox.customSelectedOptionTpl$ | async as customSelectedOptionTpl;\n else compOrDefaultSelectedOptionLabelTpl\n \"\n >\n <ng-container *ngTemplateOutlet=\"customSelectedOptionTpl; context: { option: item }\" />\n </ng-container>\n\n <ng-template #compOrDefaultSelectedOptionLabelTpl>\n <ng-container\n *ngIf=\"combobox.customSelectedOptionComponent$ | async as comp; else defaultSelectedOptionLabelTpl\"\n >\n <ng-container\n *ngComponentOutlet=\"\n comp;\n inputs: (combobox.combineSelectedOptionWithComponentInputs(item) | async) ?? { option: item }\n \"\n ></ng-container>\n </ng-container>\n <ng-template #defaultSelectedOptionLabelTpl>\n {{ combobox.getOptionLabel(item) | async }}\n </ng-template>\n </ng-template>\n\n <button\n (click)=\"combobox.removeSelectedOption(item); $event.stopPropagation()\"\n class=\"et-combobox-selected-option-remove\"\n tabindex=\"-1\"\n >\n x\n </button>\n </div>\n <div class=\"et-combobox-muliple-input\">\n <ng-container *ngTemplateOutlet=\"inputTpl\" />\n </div>\n </div>\n\n <ng-template #inputTpl>\n <input\n [disabled]=\"input.disabled\"\n [attr.id]=\"input.id\"\n [attr.aria-required]=\"(input.required$ | async) || null\"\n [attr.aria-disabled]=\"(input.disabled$ | async) || null\"\n [attr.aria-invalid]=\"(input.invalid$ | async) || null\"\n [attr.aria-expanded]=\"combobox.isOpen$ | async\"\n [attr.aria-describedby]=\"input.describedBy$ | async\"\n [attr.placeholder]=\"input.placeholder || null\"\n [attr.aria-activedescendant]=\"combobox.activeOptionId$ | async\"\n [attr.aria-controls]=\"(combobox.selectBodyId$ | async) || null\"\n [attr.aria-owns]=\"(combobox.selectBodyId$ | async) || null\"\n (keydown)=\"combobox._processKeydownEvent($event)\"\n (keyup)=\"combobox._processKeyupEvent()\"\n (click)=\"combobox.open()\"\n (blur)=\"combobox._handleBlurEvent()\"\n (input)=\"combobox._processInputEvent($event)\"\n class=\"et-combobox-wrapper\"\n aria-haspopup=\"listbox\"\n role=\"combobox\"\n aria-autocomplete=\"list\"\n type=\"text\"\n value=\"{{ combobox.currentFilter }}\"\n etNativeInputRef\n />\n </ng-template>\n\n <ng-container *ngIf=\"(combobox.multiple$ | async) === false\">\n <ng-container *ngTemplateOutlet=\"inputTpl\" />\n </ng-container>\n\n <et-chevron-icon class=\"et-combobox-chevron\" />\n</div>\n\n<ng-content select=\"[etInputSuffix]\" />\n\n<ng-template>\n <ng-content />\n</ng-template>\n", styles: [".et-combobox-body.et-with-default-animation .et-combobox-body-container.et-animation-enter-from,.et-combobox-body.et-with-default-animation .et-combobox-body-container.et-animation-leave-to{opacity:0;transform:scaleY(0)}.et-combobox-body.et-with-default-animation .et-combobox-body-container.et-animation-enter-active{transition:transform 125ms var(--ease-out-5),opacity 125ms var(--ease-out-5)}.et-combobox-body.et-with-default-animation .et-combobox-body-container.et-animation-leave-active{transition:transform 50ms var(--ease-in-5),opacity 50ms var(--ease-in-5)}.et-combobox-body.et-with-default-animation[et-floating-placement^=top] .et-combobox-body-container{transform-origin:bottom}.et-combobox-body.et-with-default-animation[et-floating-placement^=bottom] .et-combobox-body-container{transform-origin:top}.et-combobox-body-container{display:block;background-color:#3d3d3d;color:#fff;max-height:min(200px,var(--et-floating-max-height, 200px));overflow:auto}@supports (overflow: overlay){.et-combobox-body-container{overflow:overlay}}.et-combobox-body{width:100%;display:grid;transform:var(--et-floating-translate);will-change:transform}.et-combobox-option{display:block}:where(.et-combobox-option--active){background-color:#1e1e1e}.et-combobox{display:block;border:1px solid #ccc;padding:15px;position:relative}.et-combobox-chevron{transform:rotate(180deg);display:block;inline-size:15px;block-size:15px;position:absolute;inset-inline-end:15px;inset-block-start:7px}\n"] }]
|
|
9157
9235
|
}], ctorParameters: function () { return []; } });
|
|
9158
9236
|
|
|
9159
9237
|
const ComboboxImports = [
|