@ethlete/cdk 3.20.1 → 3.22.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 +23 -0
- package/esm2022/lib/components/forms/components/select/components/combobox/components/combobox/combobox.component.mjs +9 -5
- package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox/combobox.directive.mjs +33 -7
- package/esm2022/lib/components/forms/components/select/components/combobox/partials/combobox-body/combobox-body.component.mjs +3 -3
- package/esm2022/lib/components/forms/components/select/components/combobox/partials/combobox-option/combobox-option.component.mjs +3 -4
- package/esm2022/lib/components/forms/components/select/components/combobox/private/combobox.private.types.mjs +1 -1
- package/esm2022/lib/components/forms/components/select/components/combobox/utils/public-api.mjs +1 -2
- package/esm2022/lib/components/forms/components/select/components/select/components/select/select.component.mjs +3 -3
- package/esm2022/lib/components/forms/components/select/components/select/directives/select/select.directive.mjs +144 -312
- package/esm2022/lib/components/forms/components/select/components/select/directives/select-body/select-body.directive.mjs +4 -3
- package/esm2022/lib/components/forms/components/select/components/select/directives/select-option/select-option.directive.mjs +15 -40
- package/esm2022/lib/components/forms/components/select/components/select/partials/select-body/select-body.component.mjs +8 -5
- package/esm2022/lib/components/forms/components/select/components/{combobox/utils → select/private}/index.mjs +2 -2
- package/esm2022/lib/components/forms/components/select/components/select/private/select.private.types.mjs +2 -0
- package/esm2022/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-container-base/bottom-sheet-container-base.component.mjs +4 -4
- package/esm2022/lib/components/overlay/components/dialog/partials/dialog-container-base/dialog-container-base.component.mjs +4 -4
- package/esm2022/lib/components/overlay/components/overlay/components/overlay-container/overlay-container.component.mjs +6 -4
- package/esm2022/lib/components/overlay/components/overlay/services/overlay.service.mjs +10 -3
- package/esm2022/lib/components/overlay/components/overlay/utils/overlay-ref.mjs +35 -6
- package/esm2022/lib/components/overlay/components/toggletip/directives/toggletip/toggletip.directive.mjs +5 -3
- package/esm2022/lib/components/overlay/components/tooltip/directives/tooltip/tooltip.directive.mjs +5 -3
- package/esm2022/lib/components/overlay/directives/overlay-close-auto-blocker/index.mjs +2 -0
- package/esm2022/lib/components/overlay/directives/overlay-close-auto-blocker/overlay-close-auto-blocker.directive.mjs +51 -0
- package/esm2022/lib/components/overlay/directives/overlay-close-auto-blocker/public-api.mjs +2 -0
- package/esm2022/lib/components/overlay/directives/public-api.mjs +2 -1
- package/esm2022/lib/components/overlay/public-api.mjs +2 -1
- package/esm2022/lib/components/overlay/utils/overlay-dismiss-checker.util.mjs +79 -0
- package/esm2022/lib/components/overlay/utils/public-api.mjs +2 -0
- package/esm2022/lib/components/picture/picture-data.directive.mjs +1 -1
- package/esm2022/lib/components/picture/picture.component.mjs +6 -8
- package/esm2022/lib/components/picture/picture.component.types.mjs +1 -1
- package/esm2022/lib/components/picture/pipes/index.mjs +2 -0
- package/esm2022/lib/components/picture/pipes/normalize-source/index.mjs +2 -0
- package/esm2022/lib/components/picture/pipes/normalize-source/normalize-source.pipe.mjs +18 -0
- package/esm2022/lib/components/picture/pipes/normalize-source/normalize-source.util.mjs +11 -0
- package/fesm2022/ethlete-cdk.mjs +425 -415
- package/fesm2022/ethlete-cdk.mjs.map +1 -1
- package/lib/components/forms/components/select/components/combobox/components/combobox/combobox.component.d.ts +4 -3
- package/lib/components/forms/components/select/components/combobox/directives/combobox/combobox.directive.d.ts +4 -1
- package/lib/components/forms/components/select/components/combobox/partials/combobox-option/combobox-option.component.d.ts +1 -1
- package/lib/components/forms/components/select/components/combobox/private/combobox.private.types.d.ts +1 -1
- package/lib/components/forms/components/select/components/combobox/utils/public-api.d.ts +0 -1
- package/lib/components/forms/components/select/components/select/directives/select/select.directive.d.ts +16 -53
- package/lib/components/forms/components/select/components/select/directives/select-body/select-body.directive.d.ts +2 -1
- package/lib/components/forms/components/select/components/select/directives/select-option/select-option.directive.d.ts +7 -9
- package/lib/components/forms/components/select/components/select/partials/select-body/select-body.component.d.ts +2 -1
- package/lib/components/forms/components/select/components/select/private/index.d.ts +1 -0
- package/lib/components/forms/components/select/components/select/private/select.private.types.d.ts +13 -0
- package/lib/components/overlay/components/bottom-sheet/partials/bottom-sheet-container-base/bottom-sheet-container-base.component.d.ts +1 -1
- package/lib/components/overlay/components/dialog/partials/dialog-container-base/dialog-container-base.component.d.ts +1 -1
- package/lib/components/overlay/components/overlay/components/overlay-container/overlay-container.component.d.ts +5 -3
- package/lib/components/overlay/components/overlay/utils/overlay-ref.d.ts +12 -3
- package/lib/components/overlay/components/toggletip/directives/toggletip/toggletip.directive.d.ts +2 -1
- package/lib/components/overlay/components/tooltip/directives/tooltip/tooltip.directive.d.ts +2 -1
- package/lib/components/overlay/directives/overlay-close-auto-blocker/overlay-close-auto-blocker.directive.d.ts +12 -0
- package/lib/components/overlay/directives/overlay-close-auto-blocker/public-api.d.ts +1 -0
- package/lib/components/overlay/directives/public-api.d.ts +1 -0
- package/lib/components/overlay/public-api.d.ts +1 -0
- package/lib/components/overlay/utils/overlay-dismiss-checker.util.d.ts +60 -0
- package/lib/components/overlay/utils/public-api.d.ts +1 -0
- package/lib/components/picture/picture-data.directive.d.ts +1 -1
- package/lib/components/picture/picture.component.d.ts +1 -1
- package/lib/components/picture/picture.component.types.d.ts +1 -1
- package/lib/components/picture/pipes/index.d.ts +1 -0
- package/lib/components/picture/pipes/normalize-source/index.d.ts +1 -0
- package/lib/components/picture/pipes/normalize-source/normalize-source.pipe.d.ts +7 -0
- package/lib/components/picture/pipes/normalize-source/normalize-source.util.d.ts +2 -0
- package/package.json +2 -2
- package/esm2022/lib/components/forms/components/select/components/combobox/utils/option.utils.mjs +0 -7
- package/lib/components/forms/components/select/components/combobox/utils/option.utils.d.ts +0 -1
- /package/lib/components/{forms/components/select/components/combobox/utils → overlay/directives/overlay-close-auto-blocker}/index.d.ts +0 -0
package/fesm2022/ethlete-cdk.mjs
CHANGED
|
@@ -2,20 +2,20 @@ import * as i1 from '@angular/cdk/portal';
|
|
|
2
2
|
import { CdkPortal, PortalModule, ComponentPortal, TemplatePortal, CdkPortalOutlet } from '@angular/cdk/portal';
|
|
3
3
|
import { AsyncPipe, NgIf, NgClass, NgTemplateOutlet, NgForOf, NgFor, NgComponentOutlet, DOCUMENT, JsonPipe, formatDate } from '@angular/common';
|
|
4
4
|
import * as i0 from '@angular/core';
|
|
5
|
-
import { Component, ViewEncapsulation, ChangeDetectionStrategy, Directive, InjectionToken, booleanAttribute, Input, ContentChild, ContentChildren, inject, ElementRef, Injector, HostBinding, computed, signal, Optional, Inject, Injectable, SkipSelf, HostListener, ViewContainerRef, EventEmitter, NgZone, isDevMode, Output, NgModule, ChangeDetectorRef, ViewChild, runInInjectionContext, TemplateRef, forwardRef, LOCALE_ID, numberAttribute, ViewChildren, Renderer2, Attribute } from '@angular/core';
|
|
5
|
+
import { Component, ViewEncapsulation, ChangeDetectionStrategy, Directive, InjectionToken, booleanAttribute, Input, ContentChild, ContentChildren, inject, ElementRef, Injector, HostBinding, computed, signal, Optional, Inject, Injectable, SkipSelf, HostListener, ViewContainerRef, EventEmitter, NgZone, isDevMode, Output, NgModule, ChangeDetectorRef, ViewChild, assertInInjectionContext, runInInjectionContext, TemplateRef, forwardRef, LOCALE_ID, numberAttribute, ViewChildren, Pipe, Renderer2, Attribute } from '@angular/core';
|
|
6
6
|
import * as i1$2 from '@ethlete/core';
|
|
7
|
-
import { LetDirective, createDestroy, ScrollObserverFirstElementDirective, ScrollObserverLastElementDirective, Memo, signalHostAttributes, signalHostClasses, AnimatedIfDirective, AnimatedLifecycleDirective, SmartBlockScrollStrategy, RouterStateService, ANIMATED_LIFECYCLE_TOKEN, nextFrame, elementCanScroll, equal, ViewportService, AnimatedOverlayDirective, ClickObserverService, FocusVisibleService, cloneFormGroup, getFormGroupValue, ObserveVisibilityDirective, signalVisibilityChangeClasses, IS_EMAIL, MUST_MATCH, IS_ARRAY_NOT_EMPTY, AT_LEAST_ONE_REQUIRED, switchQueryListChanges, signalAttributes, ResizeObserverService, createFlipAnimation, RuntimeError, SelectionModel, ActiveSelectionModel, KeyPressManager, signalClasses, scrollToElement, isEmptyArray, isObjectArray, isPrimitiveArray, ClickOutsideDirective, ObserveContentDirective, clamp, DELAYABLE_TOKEN, ObserveResizeDirective, getElementVisibleStates, IS_ACTIVE_ELEMENT, IS_ELEMENT, CursorDragScrollDirective, ObserveScrollStateDirective, IsElementDirective, IsActiveElementDirective, ScrollObserverIgnoreTargetDirective, TypedQueryList } from '@ethlete/core';
|
|
8
|
-
import { BehaviorSubject, startWith, map, switchMap, combineLatest, pairwise, tap, takeUntil, skip, of, Subject, filter, take, merge, skipUntil, defer, fromEvent, partition, debounceTime as debounceTime$1, Observable, distinctUntilChanged as distinctUntilChanged$1, withLatestFrom, skipWhile, catchError, throwError,
|
|
7
|
+
import { LetDirective, createDestroy, ScrollObserverFirstElementDirective, ScrollObserverLastElementDirective, Memo, signalHostAttributes, signalHostClasses, AnimatedIfDirective, AnimatedLifecycleDirective, SmartBlockScrollStrategy, RouterStateService, ANIMATED_LIFECYCLE_TOKEN, nextFrame, RootBoundaryDirective, elementCanScroll, equal, ViewportService, ROOT_BOUNDARY_TOKEN, AnimatedOverlayDirective, ClickObserverService, FocusVisibleService, cloneFormGroup, getFormGroupValue, ObserveVisibilityDirective, signalVisibilityChangeClasses, IS_EMAIL, MUST_MATCH, IS_ARRAY_NOT_EMPTY, AT_LEAST_ONE_REQUIRED, switchQueryListChanges, signalAttributes, ResizeObserverService, createFlipAnimation, RuntimeError, SelectionModel, ActiveSelectionModel, KeyPressManager, signalClasses, scrollToElement, isEmptyArray, isObjectArray, isPrimitiveArray, ClickOutsideDirective, ObserveContentDirective, clamp, DELAYABLE_TOKEN, ObserveResizeDirective, inferMimeType, getElementVisibleStates, IS_ACTIVE_ELEMENT, IS_ELEMENT, CursorDragScrollDirective, ObserveScrollStateDirective, IsElementDirective, IsActiveElementDirective, ScrollObserverIgnoreTargetDirective, TypedQueryList } from '@ethlete/core';
|
|
8
|
+
import { BehaviorSubject, startWith, map, switchMap, combineLatest, pairwise, tap, takeUntil, skip, of, Subject, filter, take, merge, skipUntil, defer, fromEvent, partition, debounceTime as debounceTime$1, Observable, from, distinctUntilChanged as distinctUntilChanged$1, withLatestFrom, skipWhile, catchError, throwError, timer, Subscription } from 'rxjs';
|
|
9
9
|
import { trigger, state, style, transition, animate } from '@angular/animations';
|
|
10
10
|
import { __decorate, __metadata } from 'tslib';
|
|
11
11
|
import { toSignal, takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
12
12
|
import { extractQuery, isQueryStateLoading, isQueryStateSuccess, isQueryStateFailure, QueryDirective, shouldRetryRequest, isClassValidatorError, isSymfonyFormViolationListError } from '@ethlete/query';
|
|
13
13
|
import { CdkDialogContainer, Dialog, DialogConfig, DIALOG_SCROLL_STRATEGY_PROVIDER as DIALOG_SCROLL_STRATEGY_PROVIDER$1 } from '@angular/cdk/dialog';
|
|
14
14
|
import * as i1$1 from '@angular/cdk/a11y';
|
|
15
|
-
import { InputModalityDetector, FocusKeyManager, FocusTrapFactory, InteractivityChecker, FocusMonitor, AriaDescriber,
|
|
15
|
+
import { InputModalityDetector, FocusKeyManager, FocusTrapFactory, InteractivityChecker, FocusMonitor, AriaDescriber, A11yModule } from '@angular/cdk/a11y';
|
|
16
16
|
import * as i2 from '@angular/cdk/overlay';
|
|
17
17
|
import { ViewportRuler, STANDARD_DROPDOWN_BELOW_POSITIONS, Overlay, OverlayConfig, STANDARD_DROPDOWN_ADJACENT_POSITIONS, OverlayModule, OverlayRef as OverlayRef$1 } from '@angular/cdk/overlay';
|
|
18
|
-
import { ESCAPE, hasModifierKey, UP_ARROW, DOWN_ARROW, LEFT_ARROW, RIGHT_ARROW, ENTER, SPACE, TAB as TAB$1, BACKSPACE, A
|
|
18
|
+
import { ESCAPE, hasModifierKey, UP_ARROW, DOWN_ARROW, LEFT_ARROW, RIGHT_ARROW, ENTER, SPACE, TAB as TAB$1, BACKSPACE, A } from '@angular/cdk/keycodes';
|
|
19
19
|
import * as i1$4 from '@angular/cdk/bidi';
|
|
20
20
|
import { Directionality } from '@angular/cdk/bidi';
|
|
21
21
|
import { coerceBooleanProperty, coerceCssPixelValue, coerceElement, _isNumberValue } from '@angular/cdk/coercion';
|
|
@@ -1496,11 +1496,11 @@ class BottomSheetContainerBaseComponent extends CdkDialogContainer {
|
|
|
1496
1496
|
}
|
|
1497
1497
|
}
|
|
1498
1498
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: BottomSheetContainerBaseComponent, deps: [{ token: i0.ElementRef }, { token: i1$1.FocusTrapFactory }, { token: DOCUMENT, optional: true }, { token: BOTTOM_SHEET_CONFIG }, { token: i1$1.InteractivityChecker }, { token: i0.NgZone }, { token: i2.OverlayRef }, { token: i1$1.FocusMonitor }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1499
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: BottomSheetContainerBaseComponent, selector: "
|
|
1499
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: BottomSheetContainerBaseComponent, selector: "et-bottom-sheet-container-base", usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
|
|
1500
1500
|
}
|
|
1501
1501
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: BottomSheetContainerBaseComponent, decorators: [{
|
|
1502
1502
|
type: Component,
|
|
1503
|
-
args: [{ template: '' }]
|
|
1503
|
+
args: [{ selector: 'et-bottom-sheet-container-base', template: '' }]
|
|
1504
1504
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1$1.FocusTrapFactory }, { type: Document, decorators: [{
|
|
1505
1505
|
type: Optional
|
|
1506
1506
|
}, {
|
|
@@ -1624,7 +1624,7 @@ const provideBottomSheetDefaultConfig = (config = {}) => {
|
|
|
1624
1624
|
return { provide: BOTTOM_SHEET_DEFAULT_OPTIONS, useValue: createBottomSheetConfig(config) };
|
|
1625
1625
|
};
|
|
1626
1626
|
|
|
1627
|
-
let uniqueId$
|
|
1627
|
+
let uniqueId$7 = 0;
|
|
1628
1628
|
class BottomSheetServiceBase {
|
|
1629
1629
|
get openBottomSheets() {
|
|
1630
1630
|
return this._parentBottomSheetService
|
|
@@ -1656,7 +1656,7 @@ class BottomSheetServiceBase {
|
|
|
1656
1656
|
open(componentOrTemplateRef, config) {
|
|
1657
1657
|
let bottomSheetRef;
|
|
1658
1658
|
config = createBottomSheetConfig(this._defaultOptions, config);
|
|
1659
|
-
config.id = config.id || `${this._idPrefix}${uniqueId$
|
|
1659
|
+
config.id = config.id || `${this._idPrefix}${uniqueId$7++}`;
|
|
1660
1660
|
config.scrollStrategy = config.scrollStrategy || this._scrollStrategy();
|
|
1661
1661
|
const cdkRef = this._dialog.open(componentOrTemplateRef, {
|
|
1662
1662
|
...config,
|
|
@@ -2257,7 +2257,7 @@ const provideDialogDefaultConfig = (config = {}) => {
|
|
|
2257
2257
|
return { provide: DIALOG_DEFAULT_OPTIONS, useValue: createDialogConfig(config) };
|
|
2258
2258
|
};
|
|
2259
2259
|
|
|
2260
|
-
let uniqueId$
|
|
2260
|
+
let uniqueId$6 = 0;
|
|
2261
2261
|
class DialogServiceBase {
|
|
2262
2262
|
get openDialogs() {
|
|
2263
2263
|
return this._parentDialogService ? this._parentDialogService.openDialogs : this._openDialogsAtThisLevel;
|
|
@@ -2287,7 +2287,7 @@ class DialogServiceBase {
|
|
|
2287
2287
|
open(componentOrTemplateRef, config) {
|
|
2288
2288
|
let dialogRef;
|
|
2289
2289
|
config = createDialogConfig(this._defaultOptions, config);
|
|
2290
|
-
config.id = config.id || `${this._idPrefix}${uniqueId$
|
|
2290
|
+
config.id = config.id || `${this._idPrefix}${uniqueId$6++}`;
|
|
2291
2291
|
config.scrollStrategy = config.scrollStrategy || this._scrollStrategy();
|
|
2292
2292
|
const cdkRef = this._dialog.open(componentOrTemplateRef, {
|
|
2293
2293
|
...config,
|
|
@@ -2462,11 +2462,11 @@ class DialogContainerBaseComponent extends CdkDialogContainer {
|
|
|
2462
2462
|
}
|
|
2463
2463
|
}
|
|
2464
2464
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: DialogContainerBaseComponent, deps: [{ token: i0.ElementRef }, { token: i1$1.FocusTrapFactory }, { token: DOCUMENT, optional: true }, { token: DIALOG_CONFIG }, { token: i1$1.InteractivityChecker }, { token: i0.NgZone }, { token: i2.OverlayRef }, { token: i1$1.FocusMonitor }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2465
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: DialogContainerBaseComponent, selector: "
|
|
2465
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: DialogContainerBaseComponent, selector: "et-dialog-container-base", usesInheritance: true, ngImport: i0, template: '', isInline: true }); }
|
|
2466
2466
|
}
|
|
2467
2467
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: DialogContainerBaseComponent, decorators: [{
|
|
2468
2468
|
type: Component,
|
|
2469
|
-
args: [{ template: '' }]
|
|
2469
|
+
args: [{ selector: 'et-dialog-container-base', template: '' }]
|
|
2470
2470
|
}], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1$1.FocusTrapFactory }, { type: Document, decorators: [{
|
|
2471
2471
|
type: Optional
|
|
2472
2472
|
}, {
|
|
@@ -4001,6 +4001,7 @@ class OverlayContainerComponent extends CdkDialogContainer {
|
|
|
4001
4001
|
this._dragToDismissStop$ = new Subject();
|
|
4002
4002
|
this._themeProvider = inject(THEME_PROVIDER);
|
|
4003
4003
|
this._parentThemeProvider = inject(THEME_PROVIDER, { optional: true, skipSelf: true });
|
|
4004
|
+
this._rootBoundary = inject(RootBoundaryDirective);
|
|
4004
4005
|
this._animatedLifecycle = inject(ANIMATED_LIFECYCLE_TOKEN);
|
|
4005
4006
|
this.cdkOverlayRef = inject(OverlayRef$1);
|
|
4006
4007
|
this.overlayRef = null;
|
|
@@ -4011,6 +4012,7 @@ class OverlayContainerComponent extends CdkDialogContainer {
|
|
|
4011
4012
|
}
|
|
4012
4013
|
_contentAttached() {
|
|
4013
4014
|
super._contentAttached();
|
|
4015
|
+
this._rootBoundary.boundaryElement = this._elementRef.nativeElement;
|
|
4014
4016
|
nextFrame(() => {
|
|
4015
4017
|
this._animatedLifecycle.enter();
|
|
4016
4018
|
});
|
|
@@ -4238,7 +4240,7 @@ class OverlayContainerComponent extends CdkDialogContainer {
|
|
|
4238
4240
|
}
|
|
4239
4241
|
}
|
|
4240
4242
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: OverlayContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4241
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: OverlayContainerComponent, isStandalone: true, selector: "et-overlay-container", host: { attributes: { "tabindex": "-1" }, properties: { "attr.aria-modal": "_config.ariaModal", "id": "_config.id", "attr.role": "_config.role", "attr.aria-labelledby": "_config.ariaLabel ? null : _ariaLabelledBy", "attr.aria-label": "_config.ariaLabel", "attr.aria-describedby": "_config.ariaDescribedBy || null", "class.et-with-default-animation": "!_config.customAnimated" }, classAttribute: "et-overlay" }, usesInheritance: true, hostDirectives: [{ directive: i1$2.AnimatedLifecycleDirective }, { directive: i2$1.ProvideThemeDirective }], ngImport: i0, template: `<ng-template cdkPortalOutlet></ng-template>`, isInline: true, styles: [".et-overlay{position:relative;display:grid;overflow:hidden;pointer-events:all;outline:none}.et-overlay>*{overflow:auto}.et-overlay-pane{pointer-events:none}.et-overlay.et-with-default-animation.et-overlay--full-screen-dialog.et-animation-enter-from,.et-overlay.et-with-default-animation.et-overlay--full-screen-dialog.et-animation-leave-to{transform:scale(0)!important;border-radius:250px}.et-overlay.et-with-default-animation.et-overlay--full-screen-dialog.et-animation-enter-active{transition:transform .3s var(--ease-out-5),border-radius .3s var(--ease-out-5)}@supports (transition-timing-function: linear(0,1)){.et-overlay.et-with-default-animation.et-overlay--full-screen-dialog.et-animation-enter-active{transition:transform .3s var(--ease-spring-1),border-radius .3s var(--ease-spring-1)}}.et-overlay.et-with-default-animation.et-overlay--full-screen-dialog.et-animation-leave-active{transition:transform .15s var(--ease-in-5),border-radius .15s var(--ease-in-5)}.et-overlay.et-with-default-animation.et-overlay--bottom-sheet{bottom:-50px;padding-bottom:50px}.et-overlay.et-with-default-animation.et-overlay--bottom-sheet.et-animation-enter-from,.et-overlay.et-with-default-animation.et-overlay--bottom-sheet.et-animation-leave-to{transform:translateY(100%)!important}.et-overlay.et-with-default-animation.et-overlay--bottom-sheet.et-animation-enter-active{transition:transform .3s var(--ease-out-5)}@supports (transition-timing-function: linear(0,1)){.et-overlay.et-with-default-animation.et-overlay--bottom-sheet.et-animation-enter-active{transition:transform .3s var(--ease-spring-1)}}.et-overlay.et-with-default-animation.et-overlay--bottom-sheet.et-animation-leave-active{transition:transform .15s var(--ease-in-5)}.et-overlay.et-with-default-animation.et-overlay--top-sheet{top:-50px;padding-top:50px}.et-overlay.et-with-default-animation.et-overlay--top-sheet.et-animation-enter-from,.et-overlay.et-with-default-animation.et-overlay--top-sheet.et-animation-leave-to{transform:translateY(-100%)!important}.et-overlay.et-with-default-animation.et-overlay--top-sheet.et-animation-enter-active{transition:transform .3s var(--ease-out-5)}@supports (transition-timing-function: linear(0,1)){.et-overlay.et-with-default-animation.et-overlay--top-sheet.et-animation-enter-active{transition:transform .3s var(--ease-spring-1)}}.et-overlay.et-with-default-animation.et-overlay--top-sheet.et-animation-leave-active{transition:transform .15s var(--ease-in-5)}.et-overlay.et-with-default-animation.et-overlay--left-sheet{left:-50px;padding-left:50px}.et-overlay.et-with-default-animation.et-overlay--left-sheet.et-animation-enter-from,.et-overlay.et-with-default-animation.et-overlay--left-sheet.et-animation-leave-to{transform:translate(-100%)!important}.et-overlay.et-with-default-animation.et-overlay--left-sheet.et-animation-enter-active{transition:transform .3s var(--ease-out-5)}@supports (transition-timing-function: linear(0,1)){.et-overlay.et-with-default-animation.et-overlay--left-sheet.et-animation-enter-active{transition:transform .3s var(--ease-spring-1)}}.et-overlay.et-with-default-animation.et-overlay--left-sheet.et-animation-leave-active{transition:transform .15s var(--ease-in-5)}.et-overlay.et-with-default-animation.et-overlay--right-sheet{right:-50px;padding-right:50px}.et-overlay.et-with-default-animation.et-overlay--right-sheet.et-animation-enter-from,.et-overlay.et-with-default-animation.et-overlay--right-sheet.et-animation-leave-to{transform:translate(100%)!important}.et-overlay.et-with-default-animation.et-overlay--right-sheet.et-animation-enter-active{transition:transform .3s var(--ease-out-5)}@supports (transition-timing-function: linear(0,1)){.et-overlay.et-with-default-animation.et-overlay--right-sheet.et-animation-enter-active{transition:transform .3s var(--ease-spring-1)}}.et-overlay.et-with-default-animation.et-overlay--right-sheet.et-animation-leave-active{transition:transform .15s var(--ease-in-5)}.et-overlay.et-with-default-animation.et-overlay--dialog.et-animation-enter-from{opacity:0!important;transform:scale(.85)!important}.et-overlay.et-with-default-animation.et-overlay--dialog.et-animation-leave-to{opacity:0!important;transform:scale(.7)!important}.et-overlay.et-with-default-animation.et-overlay--dialog.et-animation-enter-active{transition:transform .3s var(--ease-out-5),opacity .3s var(--ease-out-5)}@supports (transition-timing-function: linear(0,1)){.et-overlay.et-with-default-animation.et-overlay--dialog.et-animation-enter-active{transition:transform .3s var(--ease-spring-2),opacity .3s var(--ease-out-5)}}.et-overlay.et-with-default-animation.et-overlay--dialog.et-animation-leave-active{transition:transform .15s var(--ease-out-5),opacity .15s var(--ease-out-5)}\n"], dependencies: [{ kind: "ngmodule", type: PortalModule }, { kind: "directive", type: i1.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
4243
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: OverlayContainerComponent, isStandalone: true, selector: "et-overlay-container", host: { attributes: { "tabindex": "-1" }, properties: { "attr.aria-modal": "_config.ariaModal", "id": "_config.id", "attr.role": "_config.role", "attr.aria-labelledby": "_config.ariaLabel ? null : _ariaLabelledBy", "attr.aria-label": "_config.ariaLabel", "attr.aria-describedby": "_config.ariaDescribedBy || null", "class.et-with-default-animation": "!_config.customAnimated" }, classAttribute: "et-overlay" }, usesInheritance: true, hostDirectives: [{ directive: i1$2.RootBoundaryDirective }, { directive: i1$2.AnimatedLifecycleDirective }, { directive: i2$1.ProvideThemeDirective }], ngImport: i0, template: `<ng-template cdkPortalOutlet></ng-template>`, isInline: true, styles: [".et-overlay{position:relative;display:grid;overflow:hidden;pointer-events:all;outline:none}.et-overlay>*{overflow:auto}.et-overlay-pane{pointer-events:none}.et-overlay.et-with-default-animation.et-overlay--full-screen-dialog.et-animation-enter-from,.et-overlay.et-with-default-animation.et-overlay--full-screen-dialog.et-animation-leave-to{transform:scale(0)!important;border-radius:250px}.et-overlay.et-with-default-animation.et-overlay--full-screen-dialog.et-animation-enter-active{transition:transform .3s var(--ease-out-5),border-radius .3s var(--ease-out-5)}@supports (transition-timing-function: linear(0,1)){.et-overlay.et-with-default-animation.et-overlay--full-screen-dialog.et-animation-enter-active{transition:transform .3s var(--ease-spring-1),border-radius .3s var(--ease-spring-1)}}.et-overlay.et-with-default-animation.et-overlay--full-screen-dialog.et-animation-leave-active{transition:transform .15s var(--ease-in-5),border-radius .15s var(--ease-in-5)}.et-overlay.et-with-default-animation.et-overlay--bottom-sheet{bottom:-50px;padding-bottom:50px}.et-overlay.et-with-default-animation.et-overlay--bottom-sheet.et-animation-enter-from,.et-overlay.et-with-default-animation.et-overlay--bottom-sheet.et-animation-leave-to{transform:translateY(100%)!important}.et-overlay.et-with-default-animation.et-overlay--bottom-sheet.et-animation-enter-active{transition:transform .3s var(--ease-out-5)}@supports (transition-timing-function: linear(0,1)){.et-overlay.et-with-default-animation.et-overlay--bottom-sheet.et-animation-enter-active{transition:transform .3s var(--ease-spring-1)}}.et-overlay.et-with-default-animation.et-overlay--bottom-sheet.et-animation-leave-active{transition:transform .15s var(--ease-in-5)}.et-overlay.et-with-default-animation.et-overlay--top-sheet{top:-50px;padding-top:50px}.et-overlay.et-with-default-animation.et-overlay--top-sheet.et-animation-enter-from,.et-overlay.et-with-default-animation.et-overlay--top-sheet.et-animation-leave-to{transform:translateY(-100%)!important}.et-overlay.et-with-default-animation.et-overlay--top-sheet.et-animation-enter-active{transition:transform .3s var(--ease-out-5)}@supports (transition-timing-function: linear(0,1)){.et-overlay.et-with-default-animation.et-overlay--top-sheet.et-animation-enter-active{transition:transform .3s var(--ease-spring-1)}}.et-overlay.et-with-default-animation.et-overlay--top-sheet.et-animation-leave-active{transition:transform .15s var(--ease-in-5)}.et-overlay.et-with-default-animation.et-overlay--left-sheet{left:-50px;padding-left:50px}.et-overlay.et-with-default-animation.et-overlay--left-sheet.et-animation-enter-from,.et-overlay.et-with-default-animation.et-overlay--left-sheet.et-animation-leave-to{transform:translate(-100%)!important}.et-overlay.et-with-default-animation.et-overlay--left-sheet.et-animation-enter-active{transition:transform .3s var(--ease-out-5)}@supports (transition-timing-function: linear(0,1)){.et-overlay.et-with-default-animation.et-overlay--left-sheet.et-animation-enter-active{transition:transform .3s var(--ease-spring-1)}}.et-overlay.et-with-default-animation.et-overlay--left-sheet.et-animation-leave-active{transition:transform .15s var(--ease-in-5)}.et-overlay.et-with-default-animation.et-overlay--right-sheet{right:-50px;padding-right:50px}.et-overlay.et-with-default-animation.et-overlay--right-sheet.et-animation-enter-from,.et-overlay.et-with-default-animation.et-overlay--right-sheet.et-animation-leave-to{transform:translate(100%)!important}.et-overlay.et-with-default-animation.et-overlay--right-sheet.et-animation-enter-active{transition:transform .3s var(--ease-out-5)}@supports (transition-timing-function: linear(0,1)){.et-overlay.et-with-default-animation.et-overlay--right-sheet.et-animation-enter-active{transition:transform .3s var(--ease-spring-1)}}.et-overlay.et-with-default-animation.et-overlay--right-sheet.et-animation-leave-active{transition:transform .15s var(--ease-in-5)}.et-overlay.et-with-default-animation.et-overlay--dialog.et-animation-enter-from{opacity:0!important;transform:scale(.85)!important}.et-overlay.et-with-default-animation.et-overlay--dialog.et-animation-leave-to{opacity:0!important;transform:scale(.7)!important}.et-overlay.et-with-default-animation.et-overlay--dialog.et-animation-enter-active{transition:transform .3s var(--ease-out-5),opacity .3s var(--ease-out-5)}@supports (transition-timing-function: linear(0,1)){.et-overlay.et-with-default-animation.et-overlay--dialog.et-animation-enter-active{transition:transform .3s var(--ease-spring-2),opacity .3s var(--ease-out-5)}}.et-overlay.et-with-default-animation.et-overlay--dialog.et-animation-leave-active{transition:transform .15s var(--ease-out-5),opacity .15s var(--ease-out-5)}\n"], dependencies: [{ kind: "ngmodule", type: PortalModule }, { kind: "directive", type: i1.CdkPortalOutlet, selector: "[cdkPortalOutlet]", inputs: ["cdkPortalOutlet"], outputs: ["attached"], exportAs: ["cdkPortalOutlet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
4242
4244
|
}
|
|
4243
4245
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: OverlayContainerComponent, decorators: [{
|
|
4244
4246
|
type: Component,
|
|
@@ -4252,7 +4254,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
|
|
|
4252
4254
|
'[attr.aria-label]': '_config.ariaLabel',
|
|
4253
4255
|
'[attr.aria-describedby]': '_config.ariaDescribedBy || null',
|
|
4254
4256
|
'[class.et-with-default-animation]': '!_config.customAnimated',
|
|
4255
|
-
}, standalone: true, imports: [PortalModule], hostDirectives: [AnimatedLifecycleDirective, ProvideThemeDirective], styles: [".et-overlay{position:relative;display:grid;overflow:hidden;pointer-events:all;outline:none}.et-overlay>*{overflow:auto}.et-overlay-pane{pointer-events:none}.et-overlay.et-with-default-animation.et-overlay--full-screen-dialog.et-animation-enter-from,.et-overlay.et-with-default-animation.et-overlay--full-screen-dialog.et-animation-leave-to{transform:scale(0)!important;border-radius:250px}.et-overlay.et-with-default-animation.et-overlay--full-screen-dialog.et-animation-enter-active{transition:transform .3s var(--ease-out-5),border-radius .3s var(--ease-out-5)}@supports (transition-timing-function: linear(0,1)){.et-overlay.et-with-default-animation.et-overlay--full-screen-dialog.et-animation-enter-active{transition:transform .3s var(--ease-spring-1),border-radius .3s var(--ease-spring-1)}}.et-overlay.et-with-default-animation.et-overlay--full-screen-dialog.et-animation-leave-active{transition:transform .15s var(--ease-in-5),border-radius .15s var(--ease-in-5)}.et-overlay.et-with-default-animation.et-overlay--bottom-sheet{bottom:-50px;padding-bottom:50px}.et-overlay.et-with-default-animation.et-overlay--bottom-sheet.et-animation-enter-from,.et-overlay.et-with-default-animation.et-overlay--bottom-sheet.et-animation-leave-to{transform:translateY(100%)!important}.et-overlay.et-with-default-animation.et-overlay--bottom-sheet.et-animation-enter-active{transition:transform .3s var(--ease-out-5)}@supports (transition-timing-function: linear(0,1)){.et-overlay.et-with-default-animation.et-overlay--bottom-sheet.et-animation-enter-active{transition:transform .3s var(--ease-spring-1)}}.et-overlay.et-with-default-animation.et-overlay--bottom-sheet.et-animation-leave-active{transition:transform .15s var(--ease-in-5)}.et-overlay.et-with-default-animation.et-overlay--top-sheet{top:-50px;padding-top:50px}.et-overlay.et-with-default-animation.et-overlay--top-sheet.et-animation-enter-from,.et-overlay.et-with-default-animation.et-overlay--top-sheet.et-animation-leave-to{transform:translateY(-100%)!important}.et-overlay.et-with-default-animation.et-overlay--top-sheet.et-animation-enter-active{transition:transform .3s var(--ease-out-5)}@supports (transition-timing-function: linear(0,1)){.et-overlay.et-with-default-animation.et-overlay--top-sheet.et-animation-enter-active{transition:transform .3s var(--ease-spring-1)}}.et-overlay.et-with-default-animation.et-overlay--top-sheet.et-animation-leave-active{transition:transform .15s var(--ease-in-5)}.et-overlay.et-with-default-animation.et-overlay--left-sheet{left:-50px;padding-left:50px}.et-overlay.et-with-default-animation.et-overlay--left-sheet.et-animation-enter-from,.et-overlay.et-with-default-animation.et-overlay--left-sheet.et-animation-leave-to{transform:translate(-100%)!important}.et-overlay.et-with-default-animation.et-overlay--left-sheet.et-animation-enter-active{transition:transform .3s var(--ease-out-5)}@supports (transition-timing-function: linear(0,1)){.et-overlay.et-with-default-animation.et-overlay--left-sheet.et-animation-enter-active{transition:transform .3s var(--ease-spring-1)}}.et-overlay.et-with-default-animation.et-overlay--left-sheet.et-animation-leave-active{transition:transform .15s var(--ease-in-5)}.et-overlay.et-with-default-animation.et-overlay--right-sheet{right:-50px;padding-right:50px}.et-overlay.et-with-default-animation.et-overlay--right-sheet.et-animation-enter-from,.et-overlay.et-with-default-animation.et-overlay--right-sheet.et-animation-leave-to{transform:translate(100%)!important}.et-overlay.et-with-default-animation.et-overlay--right-sheet.et-animation-enter-active{transition:transform .3s var(--ease-out-5)}@supports (transition-timing-function: linear(0,1)){.et-overlay.et-with-default-animation.et-overlay--right-sheet.et-animation-enter-active{transition:transform .3s var(--ease-spring-1)}}.et-overlay.et-with-default-animation.et-overlay--right-sheet.et-animation-leave-active{transition:transform .15s var(--ease-in-5)}.et-overlay.et-with-default-animation.et-overlay--dialog.et-animation-enter-from{opacity:0!important;transform:scale(.85)!important}.et-overlay.et-with-default-animation.et-overlay--dialog.et-animation-leave-to{opacity:0!important;transform:scale(.7)!important}.et-overlay.et-with-default-animation.et-overlay--dialog.et-animation-enter-active{transition:transform .3s var(--ease-out-5),opacity .3s var(--ease-out-5)}@supports (transition-timing-function: linear(0,1)){.et-overlay.et-with-default-animation.et-overlay--dialog.et-animation-enter-active{transition:transform .3s var(--ease-spring-2),opacity .3s var(--ease-out-5)}}.et-overlay.et-with-default-animation.et-overlay--dialog.et-animation-leave-active{transition:transform .15s var(--ease-out-5),opacity .15s var(--ease-out-5)}\n"] }]
|
|
4257
|
+
}, standalone: true, imports: [PortalModule], hostDirectives: [RootBoundaryDirective, AnimatedLifecycleDirective, ProvideThemeDirective], styles: [".et-overlay{position:relative;display:grid;overflow:hidden;pointer-events:all;outline:none}.et-overlay>*{overflow:auto}.et-overlay-pane{pointer-events:none}.et-overlay.et-with-default-animation.et-overlay--full-screen-dialog.et-animation-enter-from,.et-overlay.et-with-default-animation.et-overlay--full-screen-dialog.et-animation-leave-to{transform:scale(0)!important;border-radius:250px}.et-overlay.et-with-default-animation.et-overlay--full-screen-dialog.et-animation-enter-active{transition:transform .3s var(--ease-out-5),border-radius .3s var(--ease-out-5)}@supports (transition-timing-function: linear(0,1)){.et-overlay.et-with-default-animation.et-overlay--full-screen-dialog.et-animation-enter-active{transition:transform .3s var(--ease-spring-1),border-radius .3s var(--ease-spring-1)}}.et-overlay.et-with-default-animation.et-overlay--full-screen-dialog.et-animation-leave-active{transition:transform .15s var(--ease-in-5),border-radius .15s var(--ease-in-5)}.et-overlay.et-with-default-animation.et-overlay--bottom-sheet{bottom:-50px;padding-bottom:50px}.et-overlay.et-with-default-animation.et-overlay--bottom-sheet.et-animation-enter-from,.et-overlay.et-with-default-animation.et-overlay--bottom-sheet.et-animation-leave-to{transform:translateY(100%)!important}.et-overlay.et-with-default-animation.et-overlay--bottom-sheet.et-animation-enter-active{transition:transform .3s var(--ease-out-5)}@supports (transition-timing-function: linear(0,1)){.et-overlay.et-with-default-animation.et-overlay--bottom-sheet.et-animation-enter-active{transition:transform .3s var(--ease-spring-1)}}.et-overlay.et-with-default-animation.et-overlay--bottom-sheet.et-animation-leave-active{transition:transform .15s var(--ease-in-5)}.et-overlay.et-with-default-animation.et-overlay--top-sheet{top:-50px;padding-top:50px}.et-overlay.et-with-default-animation.et-overlay--top-sheet.et-animation-enter-from,.et-overlay.et-with-default-animation.et-overlay--top-sheet.et-animation-leave-to{transform:translateY(-100%)!important}.et-overlay.et-with-default-animation.et-overlay--top-sheet.et-animation-enter-active{transition:transform .3s var(--ease-out-5)}@supports (transition-timing-function: linear(0,1)){.et-overlay.et-with-default-animation.et-overlay--top-sheet.et-animation-enter-active{transition:transform .3s var(--ease-spring-1)}}.et-overlay.et-with-default-animation.et-overlay--top-sheet.et-animation-leave-active{transition:transform .15s var(--ease-in-5)}.et-overlay.et-with-default-animation.et-overlay--left-sheet{left:-50px;padding-left:50px}.et-overlay.et-with-default-animation.et-overlay--left-sheet.et-animation-enter-from,.et-overlay.et-with-default-animation.et-overlay--left-sheet.et-animation-leave-to{transform:translate(-100%)!important}.et-overlay.et-with-default-animation.et-overlay--left-sheet.et-animation-enter-active{transition:transform .3s var(--ease-out-5)}@supports (transition-timing-function: linear(0,1)){.et-overlay.et-with-default-animation.et-overlay--left-sheet.et-animation-enter-active{transition:transform .3s var(--ease-spring-1)}}.et-overlay.et-with-default-animation.et-overlay--left-sheet.et-animation-leave-active{transition:transform .15s var(--ease-in-5)}.et-overlay.et-with-default-animation.et-overlay--right-sheet{right:-50px;padding-right:50px}.et-overlay.et-with-default-animation.et-overlay--right-sheet.et-animation-enter-from,.et-overlay.et-with-default-animation.et-overlay--right-sheet.et-animation-leave-to{transform:translate(100%)!important}.et-overlay.et-with-default-animation.et-overlay--right-sheet.et-animation-enter-active{transition:transform .3s var(--ease-out-5)}@supports (transition-timing-function: linear(0,1)){.et-overlay.et-with-default-animation.et-overlay--right-sheet.et-animation-enter-active{transition:transform .3s var(--ease-spring-1)}}.et-overlay.et-with-default-animation.et-overlay--right-sheet.et-animation-leave-active{transition:transform .15s var(--ease-in-5)}.et-overlay.et-with-default-animation.et-overlay--dialog.et-animation-enter-from{opacity:0!important;transform:scale(.85)!important}.et-overlay.et-with-default-animation.et-overlay--dialog.et-animation-leave-to{opacity:0!important;transform:scale(.7)!important}.et-overlay.et-with-default-animation.et-overlay--dialog.et-animation-enter-active{transition:transform .3s var(--ease-out-5),opacity .3s var(--ease-out-5)}@supports (transition-timing-function: linear(0,1)){.et-overlay.et-with-default-animation.et-overlay--dialog.et-animation-enter-active{transition:transform .3s var(--ease-spring-2),opacity .3s var(--ease-out-5)}}.et-overlay.et-with-default-animation.et-overlay--dialog.et-animation-leave-active{transition:transform .15s var(--ease-out-5),opacity .15s var(--ease-out-5)}\n"] }]
|
|
4256
4258
|
}], ctorParameters: function () { return []; } });
|
|
4257
4259
|
|
|
4258
4260
|
const createOverlayConfig = (globalConfig, localConfig) => ({
|
|
@@ -4438,6 +4440,9 @@ const OVERLAY_STATE = {
|
|
|
4438
4440
|
|
|
4439
4441
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
4440
4442
|
class OverlayRef {
|
|
4443
|
+
get _internalDisableClose() {
|
|
4444
|
+
return this._disableCloseFromInternalInitiators.size > 0;
|
|
4445
|
+
}
|
|
4441
4446
|
get _cdkRef() {
|
|
4442
4447
|
return this._ref;
|
|
4443
4448
|
}
|
|
@@ -4448,7 +4453,12 @@ class OverlayRef {
|
|
|
4448
4453
|
this.componentRef = null;
|
|
4449
4454
|
this._afterOpened = new Subject();
|
|
4450
4455
|
this._beforeClosed = new Subject();
|
|
4456
|
+
this._closeCalled = new Subject();
|
|
4451
4457
|
this._state = OVERLAY_STATE.OPEN;
|
|
4458
|
+
this._isEscCloseControlledExternally = false;
|
|
4459
|
+
this._isBackdropCloseControlledExternally = false;
|
|
4460
|
+
this._isCloseFnCloseControlledExternally = false;
|
|
4461
|
+
this._disableCloseFromInternalInitiators = new Set();
|
|
4452
4462
|
this.disableClose = config.disableClose;
|
|
4453
4463
|
this.id = _ref.id;
|
|
4454
4464
|
_containerInstance._animatedLifecycle.state$
|
|
@@ -4470,16 +4480,24 @@ class OverlayRef {
|
|
|
4470
4480
|
merge(this.backdropClick(), this.keydownEvents().pipe(filter((event) => event.keyCode === ESCAPE && !this.disableClose && !hasModifierKey(event))))
|
|
4471
4481
|
.pipe(skipUntil(_containerInstance._animatedLifecycle.state$.pipe(filter((e) => e === 'entering'))))
|
|
4472
4482
|
.subscribe((event) => {
|
|
4473
|
-
if (
|
|
4483
|
+
if ((this._isEscCloseControlledExternally && event.type === 'keydown') ||
|
|
4484
|
+
(this._isBackdropCloseControlledExternally && event.type !== 'keydown')) {
|
|
4485
|
+
return;
|
|
4486
|
+
}
|
|
4487
|
+
if (!this.disableClose && !this._internalDisableClose) {
|
|
4474
4488
|
event.preventDefault();
|
|
4475
|
-
this._closeOverlayVia(event.type === 'keydown' ? 'keyboard' : 'mouse');
|
|
4489
|
+
this._closeOverlayVia(event.type === 'keydown' ? 'keyboard' : 'mouse', undefined, true);
|
|
4476
4490
|
}
|
|
4477
4491
|
});
|
|
4478
4492
|
}
|
|
4479
|
-
close(result) {
|
|
4493
|
+
close(result, force) {
|
|
4480
4494
|
if (this._state === OVERLAY_STATE.CLOSING || this._state === OVERLAY_STATE.CLOSED) {
|
|
4481
4495
|
return;
|
|
4482
4496
|
}
|
|
4497
|
+
this._closeCalled.next(result);
|
|
4498
|
+
if (this._isCloseFnCloseControlledExternally && !force) {
|
|
4499
|
+
return;
|
|
4500
|
+
}
|
|
4483
4501
|
this._result = result;
|
|
4484
4502
|
this._containerInstance._animatedLifecycle.state$
|
|
4485
4503
|
.pipe(filter((event) => event === 'leaving'), take(1))
|
|
@@ -4509,6 +4527,9 @@ class OverlayRef {
|
|
|
4509
4527
|
keydownEvents() {
|
|
4510
4528
|
return this._ref.keydownEvents;
|
|
4511
4529
|
}
|
|
4530
|
+
closeCalled() {
|
|
4531
|
+
return this._closeCalled;
|
|
4532
|
+
}
|
|
4512
4533
|
updatePosition(position) {
|
|
4513
4534
|
const strategy = this._ref.config.positionStrategy;
|
|
4514
4535
|
if (position && (position.left || position.right)) {
|
|
@@ -4546,9 +4567,19 @@ class OverlayRef {
|
|
|
4546
4567
|
this._ref.close(this._result, { focusOrigin: this._closeInteractionType });
|
|
4547
4568
|
this.componentInstance = null;
|
|
4548
4569
|
}
|
|
4549
|
-
_closeOverlayVia(interactionType, result) {
|
|
4570
|
+
_closeOverlayVia(interactionType, result, force) {
|
|
4550
4571
|
this._closeInteractionType = interactionType;
|
|
4551
|
-
return this.close(result);
|
|
4572
|
+
return this.close(result, force);
|
|
4573
|
+
}
|
|
4574
|
+
_addInternalBackdropCloseInitiator(initiatorId) {
|
|
4575
|
+
if (this.disableClose)
|
|
4576
|
+
return;
|
|
4577
|
+
this._disableCloseFromInternalInitiators.add(initiatorId);
|
|
4578
|
+
}
|
|
4579
|
+
_removeInternalBackdropCloseInitiator(initiatorId) {
|
|
4580
|
+
if (this.disableClose)
|
|
4581
|
+
return;
|
|
4582
|
+
this._disableCloseFromInternalInitiators.delete(initiatorId);
|
|
4552
4583
|
}
|
|
4553
4584
|
}
|
|
4554
4585
|
|
|
@@ -4563,7 +4594,7 @@ const provideOverlayDefaultConfig = (config = {}) => {
|
|
|
4563
4594
|
return { provide: OVERLAY_DEFAULT_OPTIONS, useValue: createOverlayConfig(config) };
|
|
4564
4595
|
};
|
|
4565
4596
|
|
|
4566
|
-
let uniqueId$
|
|
4597
|
+
let uniqueId$5 = 0;
|
|
4567
4598
|
const ID_PREFIX = 'et-overlay-';
|
|
4568
4599
|
const setStyle = (el, style, value) => {
|
|
4569
4600
|
if (value === null || value === undefined) {
|
|
@@ -4630,7 +4661,7 @@ class OverlayService {
|
|
|
4630
4661
|
open(componentOrTemplateRef, config) {
|
|
4631
4662
|
let overlayRef;
|
|
4632
4663
|
const composedConfig = createOverlayConfig(this._defaultOptions, config);
|
|
4633
|
-
composedConfig.id = composedConfig.id || `${ID_PREFIX}${uniqueId$
|
|
4664
|
+
composedConfig.id = composedConfig.id || `${ID_PREFIX}${uniqueId$5++}`;
|
|
4634
4665
|
composedConfig.scrollStrategy = composedConfig.scrollStrategy || this._scrollStrategy();
|
|
4635
4666
|
const cdkRef = this._dialog.open(componentOrTemplateRef, {
|
|
4636
4667
|
...composedConfig,
|
|
@@ -4646,11 +4677,17 @@ class OverlayService {
|
|
|
4646
4677
|
},
|
|
4647
4678
|
templateContext: () => ({ dialogRef: overlayRef }),
|
|
4648
4679
|
providers: (ref, cdkConfig, overlayContainer) => {
|
|
4649
|
-
|
|
4680
|
+
const container = overlayContainer;
|
|
4681
|
+
overlayRef = new OverlayRef(ref, composedConfig, container);
|
|
4650
4682
|
return [
|
|
4651
4683
|
{ provide: OverlayContainerComponent, useValue: overlayContainer },
|
|
4684
|
+
{ provide: THEME_PROVIDER, useValue: container._themeProvider },
|
|
4685
|
+
{ provide: ProvideThemeDirective, useValue: container._themeProvider },
|
|
4686
|
+
{ provide: ROOT_BOUNDARY_TOKEN, useValue: container._rootBoundary },
|
|
4687
|
+
{ provide: RootBoundaryDirective, useValue: container._rootBoundary },
|
|
4652
4688
|
{ provide: OVERLAY_DATA, useValue: cdkConfig.data },
|
|
4653
4689
|
{ provide: OverlayRef, useValue: overlayRef },
|
|
4690
|
+
{ provide: OverlayRef, useValue: overlayRef },
|
|
4654
4691
|
...(composedConfig.providers ?? []),
|
|
4655
4692
|
];
|
|
4656
4693
|
},
|
|
@@ -4892,13 +4929,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
|
|
|
4892
4929
|
args: ['click', ['$event']]
|
|
4893
4930
|
}] } });
|
|
4894
4931
|
|
|
4895
|
-
let uniqueId$
|
|
4932
|
+
let uniqueId$4 = 0;
|
|
4896
4933
|
class OverlayTitleDirective {
|
|
4897
4934
|
constructor() {
|
|
4898
4935
|
this._overlayRef = inject(OverlayRef, { optional: true });
|
|
4899
4936
|
this._elementRef = inject(ElementRef);
|
|
4900
4937
|
this._overlayService = inject(OverlayService);
|
|
4901
|
-
this.id = `et-overlay-title-${uniqueId$
|
|
4938
|
+
this.id = `et-overlay-title-${uniqueId$4++}`;
|
|
4902
4939
|
}
|
|
4903
4940
|
ngOnInit() {
|
|
4904
4941
|
if (!this._overlayRef) {
|
|
@@ -4943,6 +4980,51 @@ const TOGGLETIP_DEFAULT_CONFIG = {
|
|
|
4943
4980
|
customAnimated: false,
|
|
4944
4981
|
};
|
|
4945
4982
|
|
|
4983
|
+
const OVERLAY_CLOSE_BLOCKER_TOKEN = new InjectionToken('OVERLAY_CLOSE_BLOCKER_TOKEN');
|
|
4984
|
+
let uniqueId$3 = 0;
|
|
4985
|
+
class OverlayCloseBlockerDirective {
|
|
4986
|
+
constructor() {
|
|
4987
|
+
this._id = `et-overlay-close-blocker-${uniqueId$3++}`;
|
|
4988
|
+
this._animatedOverlay = inject(AnimatedOverlayDirective, { optional: true });
|
|
4989
|
+
this._nearestOverlayRef = inject(OverlayRef, { optional: true });
|
|
4990
|
+
if (!this._animatedOverlay || !this._nearestOverlayRef)
|
|
4991
|
+
return;
|
|
4992
|
+
combineLatest([this._animatedOverlay.isMounted$, this._animatedOverlay.isHidden$])
|
|
4993
|
+
.pipe(takeUntilDestroyed(), tap(([mounted, hidden]) => {
|
|
4994
|
+
if (mounted && !hidden) {
|
|
4995
|
+
this._nearestOverlayRef?._addInternalBackdropCloseInitiator(this._id);
|
|
4996
|
+
}
|
|
4997
|
+
else {
|
|
4998
|
+
this._nearestOverlayRef?._removeInternalBackdropCloseInitiator(this._id);
|
|
4999
|
+
}
|
|
5000
|
+
}))
|
|
5001
|
+
.subscribe();
|
|
5002
|
+
}
|
|
5003
|
+
ngOnDestroy() {
|
|
5004
|
+
this._nearestOverlayRef?._removeInternalBackdropCloseInitiator(this._id);
|
|
5005
|
+
}
|
|
5006
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: OverlayCloseBlockerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
5007
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.5", type: OverlayCloseBlockerDirective, isStandalone: true, selector: "[etOverlayCloseBlocker]", providers: [
|
|
5008
|
+
{
|
|
5009
|
+
provide: OVERLAY_CLOSE_BLOCKER_TOKEN,
|
|
5010
|
+
useExisting: OverlayCloseBlockerDirective,
|
|
5011
|
+
},
|
|
5012
|
+
], ngImport: i0 }); }
|
|
5013
|
+
}
|
|
5014
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: OverlayCloseBlockerDirective, decorators: [{
|
|
5015
|
+
type: Directive,
|
|
5016
|
+
args: [{
|
|
5017
|
+
selector: '[etOverlayCloseBlocker]',
|
|
5018
|
+
standalone: true,
|
|
5019
|
+
providers: [
|
|
5020
|
+
{
|
|
5021
|
+
provide: OVERLAY_CLOSE_BLOCKER_TOKEN,
|
|
5022
|
+
useExisting: OverlayCloseBlockerDirective,
|
|
5023
|
+
},
|
|
5024
|
+
],
|
|
5025
|
+
}]
|
|
5026
|
+
}], ctorParameters: function () { return []; } });
|
|
5027
|
+
|
|
4946
5028
|
const createToggletipConfig = (config = {}) => ({
|
|
4947
5029
|
...TOGGLETIP_DEFAULT_CONFIG,
|
|
4948
5030
|
...(config || {}),
|
|
@@ -5053,7 +5135,7 @@ class ToggletipDirective {
|
|
|
5053
5135
|
provide: TOGGLETIP_DIRECTIVE,
|
|
5054
5136
|
useExisting: ToggletipDirective,
|
|
5055
5137
|
},
|
|
5056
|
-
], hostDirectives: [{ directive: i1$2.AnimatedOverlayDirective, inputs: ["placement", "placement"] }], ngImport: i0 }); }
|
|
5138
|
+
], hostDirectives: [{ directive: i1$2.AnimatedOverlayDirective, inputs: ["placement", "placement"] }, { directive: OverlayCloseBlockerDirective }], ngImport: i0 }); }
|
|
5057
5139
|
}
|
|
5058
5140
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: ToggletipDirective, decorators: [{
|
|
5059
5141
|
type: Directive,
|
|
@@ -5066,7 +5148,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
|
|
|
5066
5148
|
useExisting: ToggletipDirective,
|
|
5067
5149
|
},
|
|
5068
5150
|
],
|
|
5069
|
-
hostDirectives: [{ directive: AnimatedOverlayDirective, inputs: ['placement'] }],
|
|
5151
|
+
hostDirectives: [{ directive: AnimatedOverlayDirective, inputs: ['placement'] }, OverlayCloseBlockerDirective],
|
|
5070
5152
|
}]
|
|
5071
5153
|
}], ctorParameters: function () { return []; }, propDecorators: { toggletip: [{
|
|
5072
5154
|
type: Input,
|
|
@@ -5297,7 +5379,7 @@ class TooltipDirective {
|
|
|
5297
5379
|
provide: TOOLTIP_DIRECTIVE,
|
|
5298
5380
|
useExisting: TooltipDirective,
|
|
5299
5381
|
},
|
|
5300
|
-
], hostDirectives: [{ directive: i1$2.AnimatedOverlayDirective, inputs: ["placement", "placement"] }], ngImport: i0 }); }
|
|
5382
|
+
], hostDirectives: [{ directive: i1$2.AnimatedOverlayDirective, inputs: ["placement", "placement"] }, { directive: OverlayCloseBlockerDirective }], ngImport: i0 }); }
|
|
5301
5383
|
}
|
|
5302
5384
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TooltipDirective, decorators: [{
|
|
5303
5385
|
type: Directive,
|
|
@@ -5310,7 +5392,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
|
|
|
5310
5392
|
useExisting: TooltipDirective,
|
|
5311
5393
|
},
|
|
5312
5394
|
],
|
|
5313
|
-
hostDirectives: [{ directive: AnimatedOverlayDirective, inputs: ['placement'] }],
|
|
5395
|
+
hostDirectives: [{ directive: AnimatedOverlayDirective, inputs: ['placement'] }, OverlayCloseBlockerDirective],
|
|
5314
5396
|
}]
|
|
5315
5397
|
}], ctorParameters: function () { return []; }, propDecorators: { tooltip: [{
|
|
5316
5398
|
type: Input,
|
|
@@ -5447,6 +5529,80 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
|
|
|
5447
5529
|
}]
|
|
5448
5530
|
}] });
|
|
5449
5531
|
|
|
5532
|
+
/**
|
|
5533
|
+
* A utility function to enhance the ux of overlays containing forms.
|
|
5534
|
+
* It can prevent the user from accidentally closing the overlay when the form value is not equal to the default value.
|
|
5535
|
+
*/
|
|
5536
|
+
const createOverlayDismissChecker = (config) => {
|
|
5537
|
+
assertInInjectionContext(createOverlayDismissChecker);
|
|
5538
|
+
const { form, defaultValue = form.getRawValue(), dismissEvents = { backdropClick: true, escapeKey: true, closeCall: true }, dismissCheckFn, } = config;
|
|
5539
|
+
const checkBackdropClick = dismissEvents.backdropClick ?? true;
|
|
5540
|
+
const checkEscapeKey = dismissEvents.escapeKey ?? true;
|
|
5541
|
+
const checkCloseCall = dismissEvents.closeCall ?? true;
|
|
5542
|
+
if (!checkBackdropClick && !checkEscapeKey && !checkCloseCall) {
|
|
5543
|
+
throw new Error('At least one dismiss event must be enabled');
|
|
5544
|
+
}
|
|
5545
|
+
const destroy$ = createDestroy();
|
|
5546
|
+
const overlayRef = inject(OverlayRef);
|
|
5547
|
+
overlayRef._isBackdropCloseControlledExternally = checkBackdropClick;
|
|
5548
|
+
overlayRef._isEscCloseControlledExternally = checkEscapeKey;
|
|
5549
|
+
overlayRef._isCloseFnCloseControlledExternally = checkCloseCall;
|
|
5550
|
+
const eventStreams = [];
|
|
5551
|
+
if (checkBackdropClick) {
|
|
5552
|
+
if (!overlayRef.disableClose) {
|
|
5553
|
+
eventStreams.push(overlayRef.backdropClick().pipe(map(() => 'mouse')));
|
|
5554
|
+
}
|
|
5555
|
+
else if (isDevMode() && dismissEvents.backdropClick) {
|
|
5556
|
+
console.warn('dismissEvents.backdropClick being set to true has no effect when overlayRef.disableClose is true.');
|
|
5557
|
+
}
|
|
5558
|
+
}
|
|
5559
|
+
if (checkEscapeKey) {
|
|
5560
|
+
if (!overlayRef.disableClose) {
|
|
5561
|
+
eventStreams.push(overlayRef.keydownEvents().pipe(filter((event) => event.keyCode === ESCAPE), map(() => 'keyboard')));
|
|
5562
|
+
}
|
|
5563
|
+
else if (isDevMode() && dismissEvents.escapeKey) {
|
|
5564
|
+
console.warn('dismissEvents.escapeKey being set to true has no effect when overlayRef.disableClose is true.');
|
|
5565
|
+
}
|
|
5566
|
+
}
|
|
5567
|
+
if (checkCloseCall) {
|
|
5568
|
+
eventStreams.push(overlayRef.closeCalled());
|
|
5569
|
+
}
|
|
5570
|
+
const sub = merge(...eventStreams)
|
|
5571
|
+
.pipe(takeUntil(destroy$), filter(() => {
|
|
5572
|
+
const isNotEqual = !equal(form.getRawValue(), defaultValue);
|
|
5573
|
+
const hasNoOtherInternalOverlays = !overlayRef._internalDisableClose;
|
|
5574
|
+
const wasKeyboard = overlayRef._closeInteractionType === 'keyboard';
|
|
5575
|
+
const wasMouse = overlayRef._closeInteractionType === 'mouse';
|
|
5576
|
+
if ((wasKeyboard && !checkEscapeKey) || (wasMouse && !checkBackdropClick)) {
|
|
5577
|
+
return false;
|
|
5578
|
+
}
|
|
5579
|
+
return isNotEqual && hasNoOtherInternalOverlays;
|
|
5580
|
+
}), switchMap((result) => {
|
|
5581
|
+
const checkResponse = dismissCheckFn(form.getRawValue());
|
|
5582
|
+
let nextObservable;
|
|
5583
|
+
if (checkResponse instanceof Observable) {
|
|
5584
|
+
nextObservable = checkResponse;
|
|
5585
|
+
}
|
|
5586
|
+
else if (checkResponse instanceof Promise) {
|
|
5587
|
+
nextObservable = from(checkResponse);
|
|
5588
|
+
}
|
|
5589
|
+
else {
|
|
5590
|
+
nextObservable = of(checkResponse);
|
|
5591
|
+
}
|
|
5592
|
+
return nextObservable.pipe(filter((response) => !!response), tap((response) => {
|
|
5593
|
+
sub.unsubscribe();
|
|
5594
|
+
if (response === 'keyboard' || response === 'mouse') {
|
|
5595
|
+
overlayRef._closeOverlayVia(response, undefined, true);
|
|
5596
|
+
}
|
|
5597
|
+
else {
|
|
5598
|
+
overlayRef.close(result, true);
|
|
5599
|
+
}
|
|
5600
|
+
}), take(1));
|
|
5601
|
+
}), takeUntil(destroy$), take(1))
|
|
5602
|
+
.subscribe();
|
|
5603
|
+
return sub;
|
|
5604
|
+
};
|
|
5605
|
+
|
|
5450
5606
|
class FilterOverlayRef {
|
|
5451
5607
|
constructor(_config) {
|
|
5452
5608
|
this._config = _config;
|
|
@@ -8292,25 +8448,6 @@ const ComboboxOptionType = {
|
|
|
8292
8448
|
Object: 'object',
|
|
8293
8449
|
};
|
|
8294
8450
|
|
|
8295
|
-
const createComboboxConfig = (globalConfig = {}, localConfig = {}) => ({
|
|
8296
|
-
...COMBOBOX_DEFAULT_CONFIG,
|
|
8297
|
-
...(globalConfig || {}),
|
|
8298
|
-
...(localConfig || {}),
|
|
8299
|
-
});
|
|
8300
|
-
const provideComboboxConfig = (config = {}) => {
|
|
8301
|
-
return {
|
|
8302
|
-
provide: COMBOBOX_CONFIG_TOKEN,
|
|
8303
|
-
useValue: createComboboxConfig(config),
|
|
8304
|
-
};
|
|
8305
|
-
};
|
|
8306
|
-
|
|
8307
|
-
const isOptionDisabled = (opt) => {
|
|
8308
|
-
if (typeof opt === 'object' && opt !== null && 'disabled' in opt) {
|
|
8309
|
-
return !!opt.disabled;
|
|
8310
|
-
}
|
|
8311
|
-
return false;
|
|
8312
|
-
};
|
|
8313
|
-
|
|
8314
8451
|
const COMBOBOX_TOKEN = new InjectionToken('ET_COMBOBOX_INPUT_TOKEN');
|
|
8315
8452
|
class ComboboxDirective {
|
|
8316
8453
|
//#region Inputs
|
|
@@ -8377,6 +8514,9 @@ class ComboboxDirective {
|
|
|
8377
8514
|
set bindKey(value) {
|
|
8378
8515
|
this._selectionModel.setKeyBinding(value);
|
|
8379
8516
|
}
|
|
8517
|
+
set bindDisabled(value) {
|
|
8518
|
+
this._selectionModel.setDisabledBinding(value);
|
|
8519
|
+
}
|
|
8380
8520
|
get allowCustomValues() {
|
|
8381
8521
|
return this._allowCustomValues$.value;
|
|
8382
8522
|
}
|
|
@@ -8575,18 +8715,28 @@ class ComboboxDirective {
|
|
|
8575
8715
|
this.customBodyEmptyComponentInputs$ = this._bodyEmptyComponentInputs$.asObservable();
|
|
8576
8716
|
this.customBodyMoreItemsHintComponentInputs$ = this._bodyMoreItemsHintComponentInputs$.asObservable();
|
|
8577
8717
|
this.trackByOptionKeyFn = (index, item) => this._selectionModel.getKey(item);
|
|
8718
|
+
this._selectionModel.setDisabledBinding('disabled');
|
|
8578
8719
|
this._activeSelectionModel.setSelectionModel(this._selectionModel);
|
|
8579
8720
|
this._animatedOverlay.placement = 'bottom';
|
|
8580
8721
|
this._animatedOverlay.fallbackPlacements = ['bottom', 'top'];
|
|
8581
8722
|
this._animatedOverlay.autoResize = true;
|
|
8723
|
+
this._selectionModel.allowMultiple$
|
|
8724
|
+
.pipe(takeUntilDestroyed(), tap((allowMultiple) => {
|
|
8725
|
+
if (allowMultiple) {
|
|
8726
|
+
this._updateFilter('');
|
|
8727
|
+
}
|
|
8728
|
+
}))
|
|
8729
|
+
.subscribe();
|
|
8582
8730
|
this._input._setEmptyHelper(this._currentFilter$);
|
|
8583
8731
|
}
|
|
8584
8732
|
ngOnInit() {
|
|
8585
8733
|
this._initDispatchFilterChanges();
|
|
8734
|
+
this._closeBodyOnDisable();
|
|
8586
8735
|
if (isDevMode()) {
|
|
8587
8736
|
this._debugValidateComboboxConfig();
|
|
8588
8737
|
this._debugValidateOptionAndInitialValueSchema();
|
|
8589
8738
|
}
|
|
8739
|
+
this._selectionModel.setSelectionFromValue$(this._input.value);
|
|
8590
8740
|
this._selectionModel.value$
|
|
8591
8741
|
.pipe(takeUntil(this._destroy$), tap((value) => {
|
|
8592
8742
|
this._input._updateValue(value);
|
|
@@ -8594,7 +8744,7 @@ class ComboboxDirective {
|
|
|
8594
8744
|
}))
|
|
8595
8745
|
.subscribe();
|
|
8596
8746
|
this._input.onExternalUpdate$
|
|
8597
|
-
.pipe(takeUntil(this._destroy$), tap(() => this._selectionModel.
|
|
8747
|
+
.pipe(takeUntil(this._destroy$), tap(() => this._selectionModel.setSelectionFromValue$(this._input.value)))
|
|
8598
8748
|
.subscribe();
|
|
8599
8749
|
}
|
|
8600
8750
|
//#endregion
|
|
@@ -8685,7 +8835,10 @@ class ComboboxDirective {
|
|
|
8685
8835
|
return this._selectionModel.isSelected$(option);
|
|
8686
8836
|
}
|
|
8687
8837
|
isOptionActive(option) {
|
|
8688
|
-
return this._activeSelectionModel.
|
|
8838
|
+
return this._activeSelectionModel.isOptionActive$(option);
|
|
8839
|
+
}
|
|
8840
|
+
isOptionDisabled(option) {
|
|
8841
|
+
return this._selectionModel.isDisabled$(option);
|
|
8689
8842
|
}
|
|
8690
8843
|
//#endregion
|
|
8691
8844
|
//#region Protected Methods
|
|
@@ -8856,7 +9009,7 @@ class ComboboxDirective {
|
|
|
8856
9009
|
}
|
|
8857
9010
|
else {
|
|
8858
9011
|
const { type, option } = result.optionAction;
|
|
8859
|
-
if (
|
|
9012
|
+
if (this._selectionModel.isDisabled(option))
|
|
8860
9013
|
return;
|
|
8861
9014
|
if (type === 'add') {
|
|
8862
9015
|
this._selectionModel.addSelectedOption(option);
|
|
@@ -8870,6 +9023,15 @@ class ComboboxDirective {
|
|
|
8870
9023
|
}
|
|
8871
9024
|
}
|
|
8872
9025
|
}
|
|
9026
|
+
_closeBodyOnDisable() {
|
|
9027
|
+
this._input.disabled$
|
|
9028
|
+
.pipe(tap((disabled) => {
|
|
9029
|
+
if (!disabled)
|
|
9030
|
+
return;
|
|
9031
|
+
this.close();
|
|
9032
|
+
}), takeUntil(this._destroy$))
|
|
9033
|
+
.subscribe();
|
|
9034
|
+
}
|
|
8873
9035
|
//#endregion
|
|
8874
9036
|
//#region Dev mode
|
|
8875
9037
|
_debugValidateComboboxConfig(isRetry = false) {
|
|
@@ -8931,7 +9093,7 @@ class ComboboxDirective {
|
|
|
8931
9093
|
.subscribe();
|
|
8932
9094
|
}
|
|
8933
9095
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: ComboboxDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
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: [
|
|
9096
|
+
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", bindDisabled: "bindDisabled", 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: [
|
|
8935
9097
|
{
|
|
8936
9098
|
provide: COMBOBOX_TOKEN,
|
|
8937
9099
|
useExisting: ComboboxDirective,
|
|
@@ -8976,6 +9138,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
|
|
|
8976
9138
|
type: Input
|
|
8977
9139
|
}], bindKey: [{
|
|
8978
9140
|
type: Input
|
|
9141
|
+
}], bindDisabled: [{
|
|
9142
|
+
type: Input
|
|
8979
9143
|
}], allowCustomValues: [{
|
|
8980
9144
|
type: Input
|
|
8981
9145
|
}], showBodyMoreItemsHint: [{
|
|
@@ -9035,7 +9199,7 @@ class ComboboxOptionComponent {
|
|
|
9035
9199
|
this.combobox = inject(COMBOBOX_TOKEN);
|
|
9036
9200
|
this._elementRef = inject(ElementRef);
|
|
9037
9201
|
this._option$ = new BehaviorSubject(null);
|
|
9038
|
-
this.disabled$ = this._option$.pipe(map((opt) => isOptionDisabled(opt)));
|
|
9202
|
+
this.disabled$ = this._option$.pipe(map((opt) => this.combobox.isOptionDisabled(opt)));
|
|
9039
9203
|
this.selected$ = this._option$.pipe(switchMap((opt) => this.combobox.isOptionSelected(opt)));
|
|
9040
9204
|
this.active$ = this._option$.pipe(switchMap((opt) => this.combobox.isOptionActive(opt)));
|
|
9041
9205
|
this.customOptionComponentInputs$ = combineLatest([
|
|
@@ -9059,7 +9223,7 @@ class ComboboxOptionComponent {
|
|
|
9059
9223
|
this._option$.next(value);
|
|
9060
9224
|
}
|
|
9061
9225
|
selectOption() {
|
|
9062
|
-
if (
|
|
9226
|
+
if (this.combobox._selectionModel.isDisabled(this.option)) {
|
|
9063
9227
|
return;
|
|
9064
9228
|
}
|
|
9065
9229
|
this.combobox.writeValueFromOption(this.option);
|
|
@@ -9141,7 +9305,7 @@ class ComboboxBodyComponent {
|
|
|
9141
9305
|
provide: COMBOBOX_BODY_TOKEN,
|
|
9142
9306
|
useExisting: ComboboxBodyComponent,
|
|
9143
9307
|
},
|
|
9144
|
-
], 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 }); }
|
|
9308
|
+
], 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 <ng-container *ngIf=\"!combobox.error\">\n <et-combobox-option *ngFor=\"let option of options; trackBy: trackByFn\" [option]=\"option\" />\n </ng-container>\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 }); }
|
|
9145
9309
|
}
|
|
9146
9310
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: ComboboxBodyComponent, decorators: [{
|
|
9147
9311
|
type: Component,
|
|
@@ -9164,7 +9328,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
|
|
|
9164
9328
|
provide: COMBOBOX_BODY_TOKEN,
|
|
9165
9329
|
useExisting: ComboboxBodyComponent,
|
|
9166
9330
|
},
|
|
9167
|
-
], 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" }]
|
|
9331
|
+
], 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 <ng-container *ngIf=\"!combobox.error\">\n <et-combobox-option *ngFor=\"let option of options; trackBy: trackByFn\" [option]=\"option\" />\n </ng-container>\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" }]
|
|
9168
9332
|
}], propDecorators: { _containerElementRef: [{
|
|
9169
9333
|
type: ViewChild,
|
|
9170
9334
|
args: ['containerElement', { static: true, read: ElementRef }]
|
|
@@ -9183,7 +9347,7 @@ class ComboboxComponent extends DecoratedInputBase {
|
|
|
9183
9347
|
this.combobox.setBodyComponent(ComboboxBodyComponent);
|
|
9184
9348
|
}
|
|
9185
9349
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: ComboboxComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9186
|
-
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 }); }
|
|
9350
|
+
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: OverlayCloseBlockerDirective }, { 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", "bindDisabled", "bindDisabled", "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(); combobox.focus()\"\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 autocomplete=\"off\"\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 }); }
|
|
9187
9351
|
}
|
|
9188
9352
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: ComboboxComponent, decorators: [{
|
|
9189
9353
|
type: Component,
|
|
@@ -9201,6 +9365,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
|
|
|
9201
9365
|
NgComponentOutlet,
|
|
9202
9366
|
], hostDirectives: [
|
|
9203
9367
|
AnimatedOverlayDirective,
|
|
9368
|
+
OverlayCloseBlockerDirective,
|
|
9204
9369
|
{ directive: InputDirective, inputs: ['placeholder'] },
|
|
9205
9370
|
{
|
|
9206
9371
|
directive: ComboboxDirective,
|
|
@@ -9215,6 +9380,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
|
|
|
9215
9380
|
'multiple',
|
|
9216
9381
|
'bindLabel',
|
|
9217
9382
|
'bindValue',
|
|
9383
|
+
'bindDisabled',
|
|
9218
9384
|
'allowCustomValues',
|
|
9219
9385
|
'selectedOptionComponent',
|
|
9220
9386
|
'optionComponent',
|
|
@@ -9235,7 +9401,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
|
|
|
9235
9401
|
// eslint-disable-next-line @angular-eslint/no-outputs-metadata-property
|
|
9236
9402
|
outputs: ['filterChange'],
|
|
9237
9403
|
},
|
|
9238
|
-
], 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"] }]
|
|
9404
|
+
], 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(); combobox.focus()\"\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 autocomplete=\"off\"\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"] }]
|
|
9239
9405
|
}], ctorParameters: function () { return []; } });
|
|
9240
9406
|
|
|
9241
9407
|
const ComboboxImports = [
|
|
@@ -9251,6 +9417,18 @@ const ComboboxImports = [
|
|
|
9251
9417
|
ComboboxBodyEmptyTemplateDirective,
|
|
9252
9418
|
];
|
|
9253
9419
|
|
|
9420
|
+
const createComboboxConfig = (globalConfig = {}, localConfig = {}) => ({
|
|
9421
|
+
...COMBOBOX_DEFAULT_CONFIG,
|
|
9422
|
+
...(globalConfig || {}),
|
|
9423
|
+
...(localConfig || {}),
|
|
9424
|
+
});
|
|
9425
|
+
const provideComboboxConfig = (config = {}) => {
|
|
9426
|
+
return {
|
|
9427
|
+
provide: COMBOBOX_CONFIG_TOKEN,
|
|
9428
|
+
useValue: createComboboxConfig(config),
|
|
9429
|
+
};
|
|
9430
|
+
};
|
|
9431
|
+
|
|
9254
9432
|
const NATIVE_SELECT_OPTION_TOKEN = new InjectionToken('ET_NATIVE_SELECT_OPTION_DIRECTIVE_TOKEN');
|
|
9255
9433
|
class NativeSelectOptionDirective {
|
|
9256
9434
|
constructor() {
|
|
@@ -9406,23 +9584,17 @@ class SelectOptionDirective {
|
|
|
9406
9584
|
this._select = inject(SELECT_TOKEN);
|
|
9407
9585
|
this._elementRef = inject(ElementRef);
|
|
9408
9586
|
this._viewValue$ = new BehaviorSubject(this._elementRef.nativeElement.textContent?.trim() ?? '');
|
|
9409
|
-
this.
|
|
9587
|
+
this.isActive$ = this._select._activeSelectionModel.isOptionActive$(this);
|
|
9410
9588
|
this.id = `et-select-option-${uniqueId$2++}`;
|
|
9411
9589
|
this._value$ = new BehaviorSubject(null);
|
|
9412
9590
|
this._disabled$ = new BehaviorSubject(false);
|
|
9413
|
-
this.
|
|
9414
|
-
|
|
9415
|
-
return selectValue.includes(optionValue);
|
|
9416
|
-
}
|
|
9417
|
-
return selectValue === optionValue;
|
|
9418
|
-
}));
|
|
9591
|
+
this.disabled$ = this._disabled$.asObservable();
|
|
9592
|
+
this.isSelected$ = this._select._selectionModel.isSelected$(this);
|
|
9419
9593
|
this.isSelected = toSignal(this.isSelected$);
|
|
9420
9594
|
this.viewValue$ = this._viewValue$.asObservable();
|
|
9421
|
-
this.disabled$ = this._disabled$.asObservable();
|
|
9422
|
-
this.isActive$ = this._isActive$.asObservable();
|
|
9423
9595
|
this.hostClassBindings = signalHostClasses({
|
|
9424
9596
|
'et-select-option--selected': this.isSelected,
|
|
9425
|
-
'et-select-option--active': toSignal(this.
|
|
9597
|
+
'et-select-option--active': toSignal(this.isActive$),
|
|
9426
9598
|
});
|
|
9427
9599
|
this.hostAttributeBindings = signalHostAttributes({
|
|
9428
9600
|
'aria-selected': this.isSelected,
|
|
@@ -9443,43 +9615,24 @@ class SelectOptionDirective {
|
|
|
9443
9615
|
get viewValue() {
|
|
9444
9616
|
return this._viewValue$.value;
|
|
9445
9617
|
}
|
|
9446
|
-
|
|
9618
|
+
ngAfterViewInit() {
|
|
9447
9619
|
this._updateViewValue();
|
|
9448
9620
|
}
|
|
9449
|
-
|
|
9450
|
-
if (this.
|
|
9621
|
+
selectOption() {
|
|
9622
|
+
if (this._select._selectionModel.isDisabled(this)) {
|
|
9451
9623
|
return;
|
|
9452
|
-
if (this._select.multiple) {
|
|
9453
|
-
if (!Array.isArray(this._select.input.value)) {
|
|
9454
|
-
if (isDevMode()) {
|
|
9455
|
-
console.warn('Select multiple is enabled but the value is not an array');
|
|
9456
|
-
}
|
|
9457
|
-
return;
|
|
9458
|
-
}
|
|
9459
|
-
const isSelected = await firstValueFrom(this.isSelected$);
|
|
9460
|
-
if (isSelected) {
|
|
9461
|
-
this._select.setValue(this._select.input.value.filter((value) => value !== this.value));
|
|
9462
|
-
}
|
|
9463
|
-
else {
|
|
9464
|
-
this._select.setValue([...this._select.input.value, this.value]);
|
|
9465
|
-
}
|
|
9466
|
-
}
|
|
9467
|
-
else {
|
|
9468
|
-
this._select.setValue(this.value);
|
|
9469
|
-
this._select.unmountSelectBody();
|
|
9470
9624
|
}
|
|
9625
|
+
this._select.writeValueFromOption(this);
|
|
9626
|
+
this._select.focus();
|
|
9471
9627
|
}
|
|
9472
9628
|
_updateViewValue() {
|
|
9473
9629
|
this._viewValue$.next(this._elementRef.nativeElement.textContent?.trim() ?? '');
|
|
9474
9630
|
}
|
|
9475
|
-
_setActive(isActive) {
|
|
9476
|
-
this._isActive$.next(isActive);
|
|
9477
|
-
}
|
|
9478
9631
|
setActiveByHover() {
|
|
9479
|
-
this._select.
|
|
9632
|
+
this._select._activeSelectionModel.setActiveOption(this);
|
|
9480
9633
|
}
|
|
9481
9634
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: SelectOptionDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
9482
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.5", type: SelectOptionDirective, isStandalone: true, inputs: { value: "value", disabled: "disabled" }, host: { attributes: { "role": "option" }, listeners: { "click": "
|
|
9635
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.5", type: SelectOptionDirective, isStandalone: true, inputs: { value: "value", disabled: "disabled" }, host: { attributes: { "role": "option" }, listeners: { "click": "selectOption()", "mouseenter": "setActiveByHover()", "etObserveContent": "_updateViewValue()" }, properties: { "attr.id": "id", "attr.aria-disabled": "disabled", "class.et-select-option--disabled": "disabled" } }, providers: [
|
|
9483
9636
|
{
|
|
9484
9637
|
provide: SELECT_OPTION_TOKEN,
|
|
9485
9638
|
useExisting: SelectOptionDirective,
|
|
@@ -9500,7 +9653,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
|
|
|
9500
9653
|
'[attr.id]': 'id',
|
|
9501
9654
|
'[attr.aria-disabled]': 'disabled',
|
|
9502
9655
|
'[class.et-select-option--disabled]': 'disabled',
|
|
9503
|
-
'(click)': '
|
|
9656
|
+
'(click)': 'selectOption()',
|
|
9504
9657
|
'(mouseenter)': 'setActiveByHover()',
|
|
9505
9658
|
'(etObserveContent)': '_updateViewValue()',
|
|
9506
9659
|
role: 'option',
|
|
@@ -9518,12 +9671,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
|
|
|
9518
9671
|
const SELECT_TOKEN = new InjectionToken('ET_SELECT_INPUT_TOKEN');
|
|
9519
9672
|
let uniqueId$1 = 0;
|
|
9520
9673
|
class SelectDirective {
|
|
9521
|
-
get multiple() {
|
|
9522
|
-
return this._multiple$.value;
|
|
9523
|
-
}
|
|
9524
9674
|
set multiple(value) {
|
|
9525
|
-
this.
|
|
9526
|
-
this._migrateSelectValue();
|
|
9675
|
+
this._selectionModel.setAllowMultiple(booleanAttribute(value));
|
|
9527
9676
|
}
|
|
9528
9677
|
set _selectOptionsQueryList(value) {
|
|
9529
9678
|
this._selectOptionsQueryList$.next(value);
|
|
@@ -9532,7 +9681,6 @@ class SelectDirective {
|
|
|
9532
9681
|
this._selectBodyConfig = null;
|
|
9533
9682
|
this._animatedOverlay = inject(AnimatedOverlayDirective);
|
|
9534
9683
|
this._destroy$ = createDestroy();
|
|
9535
|
-
this._liveAnnouncer = inject(LiveAnnouncer);
|
|
9536
9684
|
this._selectField = inject(SELECT_FIELD_TOKEN);
|
|
9537
9685
|
this._themeProvider = inject(THEME_PROVIDER, { optional: true });
|
|
9538
9686
|
this.input = inject(INPUT_TOKEN);
|
|
@@ -9541,55 +9689,27 @@ class SelectDirective {
|
|
|
9541
9689
|
this.elementRef = inject(ElementRef);
|
|
9542
9690
|
this._selectionModel = new SelectionModel();
|
|
9543
9691
|
this._activeSelectionModel = new ActiveSelectionModel();
|
|
9544
|
-
this._multiple$ = new BehaviorSubject(false);
|
|
9545
9692
|
this._selectOptionsQueryList$ = new BehaviorSubject(null);
|
|
9546
|
-
this.selectOptions$ = this._selectOptionsQueryList$.pipe(switchQueryListChanges(), switchMap((queryList) => {
|
|
9547
|
-
if (!queryList)
|
|
9548
|
-
return of(null);
|
|
9549
|
-
const items = queryList.map((opt) => combineLatest([opt.isSelected$, opt.isActive$]).pipe(map(([selected, active]) => ({ opt, selected, active }))));
|
|
9550
|
-
return combineLatest(items ?? of(null));
|
|
9551
|
-
}));
|
|
9552
|
-
this.activeOption$ = this.selectOptions$.pipe(map((options) => {
|
|
9553
|
-
if (!options)
|
|
9554
|
-
return null;
|
|
9555
|
-
return options.find((option) => option.active) ?? null;
|
|
9556
|
-
}));
|
|
9557
|
-
this.selectedOptions$ = this.selectOptions$.pipe(map((options) => {
|
|
9558
|
-
if (!options)
|
|
9559
|
-
return null;
|
|
9560
|
-
const selectedOptions = options.filter((option) => option.selected);
|
|
9561
|
-
if (!selectedOptions.length)
|
|
9562
|
-
return null;
|
|
9563
|
-
const inputValue = this.input.value;
|
|
9564
|
-
if (this.multiple && Array.isArray(inputValue)) {
|
|
9565
|
-
// sort selected options by the order of the input value
|
|
9566
|
-
const selectedOptionsMap = new Map(selectedOptions.map((option) => [option.opt.value, option]));
|
|
9567
|
-
return inputValue
|
|
9568
|
-
.map((value) => selectedOptionsMap.get(value))
|
|
9569
|
-
.filter((option) => !!option);
|
|
9570
|
-
}
|
|
9571
|
-
return selectedOptions;
|
|
9572
|
-
}));
|
|
9573
|
-
this.selectedOption$ = this.selectedOptions$.pipe(map((options) => options?.[0] ?? null));
|
|
9574
9693
|
this.selectBodyId$ = this._selectBodyId$.asObservable();
|
|
9575
9694
|
this.isOpen$ = this._isOpen$.asObservable();
|
|
9576
9695
|
this.isOpen = toSignal(this.isOpen$);
|
|
9577
|
-
this.multiple$ = this.
|
|
9696
|
+
this.multiple$ = this._selectionModel.allowMultiple$;
|
|
9578
9697
|
this.selectCurrentValueId = `et-select-current-value-${uniqueId$1++}`;
|
|
9579
|
-
this.ariaViewValue$ = this.
|
|
9698
|
+
this.ariaViewValue$ = this._selectionModel.selection$.pipe(switchMap((options) => {
|
|
9580
9699
|
if (!options?.length)
|
|
9581
9700
|
return of(null);
|
|
9582
|
-
const viewValues = options.map((option) => option.
|
|
9701
|
+
const viewValues = options.map((option) => option.viewValue$);
|
|
9583
9702
|
return combineLatest(viewValues);
|
|
9584
9703
|
}), map((viewValues) => {
|
|
9585
9704
|
if (!viewValues)
|
|
9586
9705
|
return null;
|
|
9587
9706
|
return viewValues.join(', ');
|
|
9588
9707
|
}));
|
|
9589
|
-
this.
|
|
9708
|
+
this.ariaViewValue = toSignal(this.ariaViewValue$);
|
|
9709
|
+
this.activeDescendant$ = combineLatest([this.isOpen$, this._activeSelectionModel.activeOption$]).pipe(map(([isOpen, activeOption]) => {
|
|
9590
9710
|
if (!isOpen || !activeOption)
|
|
9591
9711
|
return null;
|
|
9592
|
-
return activeOption.
|
|
9712
|
+
return activeOption.id;
|
|
9593
9713
|
}));
|
|
9594
9714
|
this.owns$ = combineLatest([this.isOpen$, this.selectBodyId$]).pipe(map(([isOpen, selectBodyId]) => {
|
|
9595
9715
|
if (!isOpen || !selectBodyId) {
|
|
@@ -9609,6 +9729,7 @@ class SelectDirective {
|
|
|
9609
9729
|
'et-select-field--open': this.isOpen,
|
|
9610
9730
|
'et-select-field--multiple': toSignal(this.multiple$),
|
|
9611
9731
|
});
|
|
9732
|
+
this.inputElement = null;
|
|
9612
9733
|
this.trackByFn = (_, item) => item.id;
|
|
9613
9734
|
this._animatedOverlay.placement = 'bottom';
|
|
9614
9735
|
this._animatedOverlay.fallbackPlacements = ['bottom', 'top'];
|
|
@@ -9620,21 +9741,22 @@ class SelectDirective {
|
|
|
9620
9741
|
.setValueBinding((v) => v.value)
|
|
9621
9742
|
.setDisabledBinding((v) => v.disabled);
|
|
9622
9743
|
this._activeSelectionModel.setSelectionModel(this._selectionModel);
|
|
9623
|
-
//TODO: TO BE CONTINUED...
|
|
9624
9744
|
}
|
|
9625
9745
|
ngOnInit() {
|
|
9626
|
-
this.
|
|
9627
|
-
this.
|
|
9628
|
-
|
|
9629
|
-
|
|
9630
|
-
|
|
9746
|
+
this._closeBodyOnDisable();
|
|
9747
|
+
this._selectionModel.setSelectionFromValue$(this.input.value);
|
|
9748
|
+
this._selectionModel.value$
|
|
9749
|
+
.pipe(takeUntil(this._destroy$), tap((value) => this.input._updateValue(value)))
|
|
9750
|
+
.subscribe();
|
|
9751
|
+
this.input.onExternalUpdate$
|
|
9752
|
+
.pipe(takeUntil(this._destroy$), tap(() => this._selectionModel.setSelectionFromValue$(this.input.value)))
|
|
9753
|
+
.subscribe();
|
|
9631
9754
|
}
|
|
9632
|
-
|
|
9755
|
+
open() {
|
|
9633
9756
|
if (!this._selectBodyConfig)
|
|
9634
9757
|
return;
|
|
9635
9758
|
if (this._animatedOverlay.isMounted || this.input.disabled)
|
|
9636
9759
|
return;
|
|
9637
|
-
this._setSelectedOptionActive();
|
|
9638
9760
|
const instance = this._animatedOverlay.mount({
|
|
9639
9761
|
component: this._selectBodyConfig.component,
|
|
9640
9762
|
mirrorWidth: true,
|
|
@@ -9645,300 +9767,159 @@ class SelectDirective {
|
|
|
9645
9767
|
return;
|
|
9646
9768
|
this._selectBodyId$.next(instance.selectBody.id);
|
|
9647
9769
|
this._isOpen$.next(true);
|
|
9770
|
+
this._activeSelectionModel.activeOption$
|
|
9771
|
+
.pipe(debounceTime$1(0), tap((activeOption) => {
|
|
9772
|
+
if (!activeOption)
|
|
9773
|
+
return;
|
|
9774
|
+
scrollToElement({
|
|
9775
|
+
container: instance._containerElementRef?.nativeElement,
|
|
9776
|
+
element: activeOption._elementRef.nativeElement,
|
|
9777
|
+
behavior: 'instant',
|
|
9778
|
+
});
|
|
9779
|
+
}), takeUntil(this._destroy$), takeUntil(this._animatedOverlay.afterClosed()))
|
|
9780
|
+
.subscribe();
|
|
9781
|
+
this._animatedOverlay
|
|
9782
|
+
.afterClosed()
|
|
9783
|
+
.pipe(takeUntil(this._destroy$), tap(() => {
|
|
9784
|
+
this._selectBodyId$.next(null);
|
|
9785
|
+
this._isOpen$.next(false);
|
|
9786
|
+
}))
|
|
9787
|
+
.subscribe();
|
|
9648
9788
|
}
|
|
9649
|
-
|
|
9789
|
+
close() {
|
|
9650
9790
|
if (!this._animatedOverlay.isMounted)
|
|
9651
9791
|
return;
|
|
9652
9792
|
this._animatedOverlay.unmount();
|
|
9653
|
-
this._selectBodyId$.next(null);
|
|
9654
|
-
this._isOpen$.next(false);
|
|
9655
9793
|
}
|
|
9656
|
-
|
|
9657
|
-
this.input._updateValue(value);
|
|
9794
|
+
writeValueFromOption(option) {
|
|
9658
9795
|
this.input._markAsTouched();
|
|
9659
|
-
this.
|
|
9660
|
-
|
|
9661
|
-
handleKeyDown(event) {
|
|
9662
|
-
if (this._isOpen$.value) {
|
|
9663
|
-
this._handleKeyDownInOpenState(event);
|
|
9796
|
+
if (this._selectionModel.allowMultiple) {
|
|
9797
|
+
this._selectionModel.toggleSelectedOption(option);
|
|
9664
9798
|
}
|
|
9665
9799
|
else {
|
|
9666
|
-
this.
|
|
9800
|
+
this._selectionModel.addSelectedOption(option);
|
|
9667
9801
|
}
|
|
9802
|
+
if (!this._selectionModel.allowMultiple) {
|
|
9803
|
+
this.close();
|
|
9804
|
+
}
|
|
9805
|
+
}
|
|
9806
|
+
focus() {
|
|
9807
|
+
this.inputElement?.nativeElement.focus();
|
|
9668
9808
|
}
|
|
9669
9809
|
setSelectBody(config) {
|
|
9670
9810
|
this._selectBodyConfig = config;
|
|
9671
9811
|
}
|
|
9672
9812
|
removeOptionFromSelection(option) {
|
|
9673
|
-
|
|
9674
|
-
return;
|
|
9675
|
-
const value = this.input.value.filter((v) => v !== option.value);
|
|
9676
|
-
this.setValue(value);
|
|
9813
|
+
this._selectionModel.removeSelectedOption(option);
|
|
9677
9814
|
}
|
|
9678
9815
|
_controlTouched() {
|
|
9679
9816
|
this.input._markAsTouched();
|
|
9680
9817
|
this.input._setShouldDisplayError(true);
|
|
9681
9818
|
}
|
|
9682
|
-
|
|
9683
|
-
this.input.disabled$
|
|
9684
|
-
.pipe(tap((disabled) => {
|
|
9685
|
-
if (!disabled)
|
|
9686
|
-
return;
|
|
9687
|
-
this.unmountSelectBody();
|
|
9688
|
-
}), takeUntil(this._destroy$))
|
|
9689
|
-
.subscribe();
|
|
9690
|
-
}
|
|
9691
|
-
_handleKeyDownInClosedState(event) {
|
|
9692
|
-
const keyCode = event.keyCode;
|
|
9693
|
-
const isArrowKey = keyCode === DOWN_ARROW || keyCode === UP_ARROW || keyCode === LEFT_ARROW || keyCode === RIGHT_ARROW;
|
|
9694
|
-
const isOpenKey = keyCode === ENTER || keyCode === SPACE;
|
|
9695
|
-
if ((isOpenKey && !hasModifierKey(event)) || ((this.multiple || event.altKey) && isArrowKey)) {
|
|
9696
|
-
event.preventDefault();
|
|
9697
|
-
this.mountSelectBody();
|
|
9698
|
-
}
|
|
9699
|
-
else if (!this.multiple) {
|
|
9700
|
-
switch (keyCode) {
|
|
9701
|
-
case DOWN_ARROW:
|
|
9702
|
-
this._selectOptionByOffset(1, true);
|
|
9703
|
-
break;
|
|
9704
|
-
case UP_ARROW:
|
|
9705
|
-
this._selectOptionByOffset(-1, true);
|
|
9706
|
-
break;
|
|
9707
|
-
case HOME:
|
|
9708
|
-
this._selectFirstOption(true);
|
|
9709
|
-
break;
|
|
9710
|
-
case END:
|
|
9711
|
-
this._selectLastOption(true);
|
|
9712
|
-
break;
|
|
9713
|
-
case PAGE_UP:
|
|
9714
|
-
this._selectOptionByOffset(-10, true);
|
|
9715
|
-
break;
|
|
9716
|
-
case PAGE_DOWN:
|
|
9717
|
-
this._selectOptionByOffset(10, true);
|
|
9718
|
-
break;
|
|
9719
|
-
}
|
|
9720
|
-
}
|
|
9721
|
-
else if (this.multiple && isArrowKey) {
|
|
9722
|
-
event.preventDefault();
|
|
9723
|
-
this.mountSelectBody();
|
|
9724
|
-
}
|
|
9725
|
-
}
|
|
9726
|
-
async _handleKeyDownInOpenState(event) {
|
|
9819
|
+
_processKeydownEvent(event) {
|
|
9727
9820
|
const keyCode = event.keyCode;
|
|
9728
|
-
const
|
|
9729
|
-
|
|
9730
|
-
|
|
9731
|
-
|
|
9821
|
+
const isOpen = this.isOpen();
|
|
9822
|
+
const isMultiple = this._selectionModel.allowMultiple;
|
|
9823
|
+
const selection = this._selectionModel.selection;
|
|
9824
|
+
const isArrowKey = keyCode === UP_ARROW || keyCode === DOWN_ARROW;
|
|
9825
|
+
const isAltPressed = hasModifierKey(event, 'altKey');
|
|
9826
|
+
const result = {};
|
|
9827
|
+
if (isArrowKey && isAltPressed && !isOpen) {
|
|
9828
|
+
result.overlayOperation = 'open';
|
|
9829
|
+
return this._interpretKeyHandlerResult(result);
|
|
9732
9830
|
}
|
|
9733
|
-
|
|
9831
|
+
if (keyCode === ENTER) {
|
|
9734
9832
|
event.preventDefault();
|
|
9735
9833
|
event.stopPropagation();
|
|
9736
|
-
this.
|
|
9737
|
-
|
|
9738
|
-
|
|
9739
|
-
if (
|
|
9740
|
-
|
|
9834
|
+
const activeOption = this._activeSelectionModel.activeOption;
|
|
9835
|
+
if (activeOption && this._selectionModel.isDisabled(activeOption))
|
|
9836
|
+
return;
|
|
9837
|
+
if (activeOption) {
|
|
9838
|
+
if (isMultiple) {
|
|
9839
|
+
result.optionAction = { type: 'toggle', option: activeOption };
|
|
9840
|
+
}
|
|
9841
|
+
else {
|
|
9842
|
+
result.optionAction = { type: 'add', option: activeOption };
|
|
9843
|
+
}
|
|
9741
9844
|
}
|
|
9742
|
-
|
|
9743
|
-
|
|
9845
|
+
if (!isMultiple) {
|
|
9846
|
+
result.overlayOperation = 'close';
|
|
9744
9847
|
}
|
|
9745
|
-
|
|
9746
|
-
}
|
|
9747
|
-
else if (this.multiple && keyCode === A && event.ctrlKey) {
|
|
9748
|
-
event.preventDefault();
|
|
9749
|
-
this._toggleSelectionOfAllOptions();
|
|
9750
|
-
}
|
|
9751
|
-
else {
|
|
9752
|
-
switch (keyCode) {
|
|
9753
|
-
case DOWN_ARROW:
|
|
9754
|
-
this._activateOptionByOffset(1);
|
|
9755
|
-
break;
|
|
9756
|
-
case UP_ARROW:
|
|
9757
|
-
this._activateOptionByOffset(-1);
|
|
9758
|
-
break;
|
|
9759
|
-
case HOME:
|
|
9760
|
-
this._activateFirstOption();
|
|
9761
|
-
break;
|
|
9762
|
-
case END:
|
|
9763
|
-
this._activateLastOption();
|
|
9764
|
-
break;
|
|
9765
|
-
case PAGE_UP:
|
|
9766
|
-
this._activateOptionByOffset(-10);
|
|
9767
|
-
break;
|
|
9768
|
-
case PAGE_DOWN:
|
|
9769
|
-
this._activateOptionByOffset(10);
|
|
9770
|
-
break;
|
|
9771
|
-
}
|
|
9772
|
-
}
|
|
9773
|
-
}
|
|
9774
|
-
async _setActiveOption(option) {
|
|
9775
|
-
const currentActiveOption = await firstValueFrom(this.activeOption$);
|
|
9776
|
-
if (currentActiveOption?.opt === option)
|
|
9777
|
-
return false;
|
|
9778
|
-
currentActiveOption?.opt._setActive(false);
|
|
9779
|
-
if (option) {
|
|
9780
|
-
option._setActive(true);
|
|
9781
|
-
}
|
|
9782
|
-
return true;
|
|
9783
|
-
}
|
|
9784
|
-
async _addActiveOptionToSelection() {
|
|
9785
|
-
const activeOption = await firstValueFrom(this.activeOption$);
|
|
9786
|
-
if (!activeOption || activeOption.opt.disabled || activeOption.selected)
|
|
9787
|
-
return;
|
|
9788
|
-
if (!Array.isArray(this.input.value)) {
|
|
9789
|
-
this.setValue([activeOption.opt.value]);
|
|
9790
|
-
return;
|
|
9848
|
+
return this._interpretKeyHandlerResult(result);
|
|
9791
9849
|
}
|
|
9792
|
-
|
|
9793
|
-
|
|
9794
|
-
|
|
9795
|
-
|
|
9796
|
-
|
|
9797
|
-
|
|
9798
|
-
|
|
9799
|
-
this.setValue([]);
|
|
9800
|
-
return;
|
|
9850
|
+
if (keyCode === ESCAPE) {
|
|
9851
|
+
if (isOpen) {
|
|
9852
|
+
result.overlayOperation = 'close';
|
|
9853
|
+
event.preventDefault();
|
|
9854
|
+
event.stopPropagation();
|
|
9855
|
+
}
|
|
9856
|
+
return this._interpretKeyHandlerResult(result);
|
|
9801
9857
|
}
|
|
9802
|
-
|
|
9803
|
-
|
|
9804
|
-
|
|
9805
|
-
const allOptions = await firstValueFrom(this.selectOptions$);
|
|
9806
|
-
const hasDeselectedOption = allOptions?.some((opt) => !opt.opt.disabled && !opt.selected);
|
|
9807
|
-
if (hasDeselectedOption) {
|
|
9808
|
-
this._selectAllOptions();
|
|
9858
|
+
if (keyCode === TAB$1) {
|
|
9859
|
+
result.overlayOperation = 'close';
|
|
9860
|
+
return this._interpretKeyHandlerResult(result);
|
|
9809
9861
|
}
|
|
9810
|
-
|
|
9811
|
-
|
|
9862
|
+
if (keyCode === BACKSPACE) {
|
|
9863
|
+
const lastSelectedOption = selection[selection.length - 1];
|
|
9864
|
+
if (isMultiple && lastSelectedOption) {
|
|
9865
|
+
result.optionAction = { type: 'remove', option: lastSelectedOption };
|
|
9866
|
+
return this._interpretKeyHandlerResult(result);
|
|
9867
|
+
}
|
|
9812
9868
|
}
|
|
9813
|
-
|
|
9814
|
-
|
|
9815
|
-
|
|
9816
|
-
if (!allOptions)
|
|
9817
|
-
return;
|
|
9818
|
-
const selectedOptions = allOptions.filter((opt) => !opt.opt.disabled).map((opt) => opt.opt.value);
|
|
9819
|
-
this.setValue(selectedOptions);
|
|
9820
|
-
}
|
|
9821
|
-
async _deselectAllOptions() {
|
|
9822
|
-
this.setValue([]);
|
|
9823
|
-
}
|
|
9824
|
-
async _toggleActiveOptionSelection() {
|
|
9825
|
-
const activeOption = await firstValueFrom(this.activeOption$);
|
|
9826
|
-
if (!activeOption)
|
|
9827
|
-
return;
|
|
9828
|
-
if (activeOption.selected) {
|
|
9829
|
-
this._removeActiveOptionFromSelection();
|
|
9869
|
+
if (keyCode === SPACE) {
|
|
9870
|
+
result.overlayOperation = 'open';
|
|
9871
|
+
return this._interpretKeyHandlerResult(result);
|
|
9830
9872
|
}
|
|
9831
|
-
|
|
9832
|
-
|
|
9873
|
+
const newActiveOption = this._activeSelectionModel.evaluateKeyboardEvent(event, { skipDisabled: !isOpen });
|
|
9874
|
+
if (newActiveOption && !isOpen && !isMultiple) {
|
|
9875
|
+
result.optionAction = { type: 'add', option: newActiveOption };
|
|
9833
9876
|
}
|
|
9834
|
-
|
|
9835
|
-
|
|
9836
|
-
|
|
9837
|
-
if (!activeOption || activeOption.opt.disabled)
|
|
9838
|
-
return;
|
|
9839
|
-
this._setSelectedOption(activeOption.opt);
|
|
9840
|
-
this.unmountSelectBody();
|
|
9841
|
-
}
|
|
9842
|
-
async _setSelectedOptionActive() {
|
|
9843
|
-
const selectedOption = await firstValueFrom(this.selectedOption$);
|
|
9844
|
-
if (!selectedOption)
|
|
9845
|
-
return;
|
|
9846
|
-
this._setActiveOption(selectedOption.opt);
|
|
9847
|
-
}
|
|
9848
|
-
async _setSelectedOption(option) {
|
|
9849
|
-
const selectedOption = await firstValueFrom(this.selectedOption$);
|
|
9850
|
-
if (selectedOption === option)
|
|
9851
|
-
return false;
|
|
9852
|
-
this._setActiveOption(option);
|
|
9853
|
-
this.setValue(option?.value ?? null);
|
|
9854
|
-
return true;
|
|
9855
|
-
}
|
|
9856
|
-
async _selectFirstOption(announce) {
|
|
9857
|
-
const options = await firstValueFrom(this.selectOptions$);
|
|
9858
|
-
if (!options)
|
|
9859
|
-
return;
|
|
9860
|
-
const firstOption = options[0]?.opt;
|
|
9861
|
-
if (!firstOption)
|
|
9862
|
-
return;
|
|
9863
|
-
if (!this._setSelectedOption(firstOption))
|
|
9864
|
-
return;
|
|
9865
|
-
if (announce) {
|
|
9866
|
-
const text = await firstValueFrom(firstOption.viewValue$);
|
|
9867
|
-
this._liveAnnouncer.announce(text, 10000);
|
|
9877
|
+
if (keyCode === A && event.ctrlKey && isMultiple) {
|
|
9878
|
+
result.optionAction = 'toggleAll';
|
|
9879
|
+
event.preventDefault();
|
|
9868
9880
|
}
|
|
9881
|
+
return this._interpretKeyHandlerResult(result);
|
|
9869
9882
|
}
|
|
9870
|
-
|
|
9871
|
-
|
|
9872
|
-
|
|
9873
|
-
return;
|
|
9874
|
-
const lastOption = options[options.length - 1]?.opt;
|
|
9875
|
-
if (!lastOption)
|
|
9876
|
-
return;
|
|
9877
|
-
if (!this._setSelectedOption(lastOption))
|
|
9878
|
-
return;
|
|
9879
|
-
if (announce) {
|
|
9880
|
-
const text = await firstValueFrom(lastOption.viewValue$);
|
|
9881
|
-
this._liveAnnouncer.announce(text, 10000);
|
|
9883
|
+
_interpretKeyHandlerResult(result) {
|
|
9884
|
+
if (result.overlayOperation === 'close') {
|
|
9885
|
+
this.close();
|
|
9882
9886
|
}
|
|
9883
|
-
|
|
9884
|
-
|
|
9885
|
-
const options = await firstValueFrom(this.selectOptions$);
|
|
9886
|
-
if (!options)
|
|
9887
|
-
return;
|
|
9888
|
-
const selectedOption = await firstValueFrom(this.selectedOption$);
|
|
9889
|
-
const selectedOptionIndex = options.findIndex((o) => o.opt === selectedOption?.opt);
|
|
9890
|
-
const nextOptionIndex = selectedOptionIndex + offset;
|
|
9891
|
-
const nextOption = options[nextOptionIndex];
|
|
9892
|
-
if (!nextOption)
|
|
9893
|
-
return;
|
|
9894
|
-
if (nextOption.opt.disabled) {
|
|
9895
|
-
return this._selectOptionByOffset(offset + (offset < 0 ? -1 : 1), announce);
|
|
9887
|
+
else if (result.overlayOperation === 'open') {
|
|
9888
|
+
this.open();
|
|
9896
9889
|
}
|
|
9897
|
-
if (
|
|
9898
|
-
|
|
9899
|
-
|
|
9900
|
-
|
|
9901
|
-
|
|
9890
|
+
if (result.optionAction) {
|
|
9891
|
+
if (typeof result.optionAction === 'string') {
|
|
9892
|
+
if (result.optionAction === 'clear') {
|
|
9893
|
+
this._selectionModel.clearSelectedOptions();
|
|
9894
|
+
}
|
|
9895
|
+
else if (result.optionAction === 'toggleAll') {
|
|
9896
|
+
this._selectionModel.toggleAllSelectedOptions();
|
|
9897
|
+
}
|
|
9898
|
+
}
|
|
9899
|
+
else {
|
|
9900
|
+
const { type, option } = result.optionAction;
|
|
9901
|
+
if (this._selectionModel.isDisabled(option))
|
|
9902
|
+
return;
|
|
9903
|
+
if (type === 'add') {
|
|
9904
|
+
this._selectionModel.addSelectedOption(option);
|
|
9905
|
+
}
|
|
9906
|
+
if (type === 'remove') {
|
|
9907
|
+
this._selectionModel.removeSelectedOption(option);
|
|
9908
|
+
}
|
|
9909
|
+
if (type === 'toggle') {
|
|
9910
|
+
this._selectionModel.toggleSelectedOption(option);
|
|
9911
|
+
}
|
|
9912
|
+
}
|
|
9902
9913
|
}
|
|
9903
9914
|
}
|
|
9904
|
-
|
|
9905
|
-
|
|
9906
|
-
|
|
9907
|
-
|
|
9908
|
-
|
|
9909
|
-
|
|
9910
|
-
|
|
9911
|
-
|
|
9912
|
-
}
|
|
9913
|
-
async _activateLastOption() {
|
|
9914
|
-
const options = await firstValueFrom(this.selectOptions$);
|
|
9915
|
-
if (!options)
|
|
9916
|
-
return;
|
|
9917
|
-
const lastOption = options[options.length - 1]?.opt;
|
|
9918
|
-
if (!lastOption)
|
|
9919
|
-
return;
|
|
9920
|
-
await this._setActiveOption(lastOption);
|
|
9921
|
-
}
|
|
9922
|
-
async _activateOptionByOffset(offset) {
|
|
9923
|
-
const options = await firstValueFrom(this.selectOptions$);
|
|
9924
|
-
if (!options)
|
|
9925
|
-
return;
|
|
9926
|
-
const activatedOption = await firstValueFrom(this.activeOption$);
|
|
9927
|
-
const activatedOptionIndex = options.findIndex((o) => o.opt === activatedOption?.opt);
|
|
9928
|
-
const nextOptionIndex = activatedOptionIndex + offset;
|
|
9929
|
-
const nextOption = options[nextOptionIndex];
|
|
9930
|
-
if (!nextOption)
|
|
9931
|
-
return;
|
|
9932
|
-
await this._setActiveOption(nextOption.opt);
|
|
9933
|
-
}
|
|
9934
|
-
async _migrateSelectValue() {
|
|
9935
|
-
if (this.multiple && !Array.isArray(this.input.value)) {
|
|
9936
|
-
this.setValue([]);
|
|
9937
|
-
}
|
|
9938
|
-
else if (!this.multiple && Array.isArray(this.input.value)) {
|
|
9939
|
-
this.setValue(null);
|
|
9940
|
-
}
|
|
9941
|
-
this._setActiveOption(null);
|
|
9915
|
+
_closeBodyOnDisable() {
|
|
9916
|
+
this.input.disabled$
|
|
9917
|
+
.pipe(tap((disabled) => {
|
|
9918
|
+
if (!disabled)
|
|
9919
|
+
return;
|
|
9920
|
+
this.close();
|
|
9921
|
+
}), takeUntil(this._destroy$))
|
|
9922
|
+
.subscribe();
|
|
9942
9923
|
}
|
|
9943
9924
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: SelectDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
9944
9925
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.5", type: SelectDirective, isStandalone: true, inputs: { multiple: "multiple", emptyText: "emptyText" }, providers: [
|
|
@@ -9946,13 +9927,13 @@ class SelectDirective {
|
|
|
9946
9927
|
provide: SELECT_TOKEN,
|
|
9947
9928
|
useExisting: SelectDirective,
|
|
9948
9929
|
},
|
|
9949
|
-
], queries: [{ propertyName: "_selectOptionsQueryList", predicate: SELECT_OPTION_TOKEN, descendants: true }], hostDirectives: [{ directive: i1$2.AnimatedOverlayDirective }], ngImport: i0 }); }
|
|
9930
|
+
], queries: [{ propertyName: "_selectOptionsQueryList", predicate: SELECT_OPTION_TOKEN, descendants: true }], viewQueries: [{ propertyName: "inputElement", first: true, predicate: ["inputElement"], descendants: true }], hostDirectives: [{ directive: i1$2.AnimatedOverlayDirective }, { directive: OverlayCloseBlockerDirective }], ngImport: i0 }); }
|
|
9950
9931
|
}
|
|
9951
9932
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: SelectDirective, decorators: [{
|
|
9952
9933
|
type: Directive,
|
|
9953
9934
|
args: [{
|
|
9954
9935
|
standalone: true,
|
|
9955
|
-
hostDirectives: [AnimatedOverlayDirective],
|
|
9936
|
+
hostDirectives: [AnimatedOverlayDirective, OverlayCloseBlockerDirective],
|
|
9956
9937
|
providers: [
|
|
9957
9938
|
{
|
|
9958
9939
|
provide: SELECT_TOKEN,
|
|
@@ -9967,6 +9948,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
|
|
|
9967
9948
|
}], _selectOptionsQueryList: [{
|
|
9968
9949
|
type: ContentChildren,
|
|
9969
9950
|
args: [SELECT_OPTION_TOKEN, { descendants: true }]
|
|
9951
|
+
}], inputElement: [{
|
|
9952
|
+
type: ViewChild,
|
|
9953
|
+
args: ['inputElement']
|
|
9970
9954
|
}] } });
|
|
9971
9955
|
|
|
9972
9956
|
const SELECT_BODY_TOKEN = new InjectionToken('ET_SELECT_BODY_TOKEN');
|
|
@@ -9974,6 +9958,7 @@ let uniqueId = 0;
|
|
|
9974
9958
|
class SelectBodyDirective {
|
|
9975
9959
|
constructor() {
|
|
9976
9960
|
this._destroy$ = createDestroy();
|
|
9961
|
+
this._elementRef = inject(ElementRef);
|
|
9977
9962
|
this._select = inject(SELECT_TOKEN);
|
|
9978
9963
|
this._clickOutside = inject(ClickOutsideDirective);
|
|
9979
9964
|
this.id = `et-select-body-${uniqueId++}`;
|
|
@@ -9984,7 +9969,7 @@ class SelectBodyDirective {
|
|
|
9984
9969
|
}
|
|
9985
9970
|
ngOnInit() {
|
|
9986
9971
|
this._clickOutside.etClickOutside
|
|
9987
|
-
.pipe(takeUntil(this._destroy$), tap(() => this._select.
|
|
9972
|
+
.pipe(takeUntil(this._destroy$), tap(() => this._select.close()))
|
|
9988
9973
|
.subscribe();
|
|
9989
9974
|
}
|
|
9990
9975
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: SelectBodyDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
@@ -10024,8 +10009,8 @@ class SelectBodyComponent {
|
|
|
10024
10009
|
this._themeProvider.syncWithProvider(provider);
|
|
10025
10010
|
}
|
|
10026
10011
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: SelectBodyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10027
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: SelectBodyComponent, isStandalone: true, selector: "et-select-body", host: { classAttribute: "et-select-body et-with-default-animation" }, viewQueries: [{ propertyName: "_animatedLifecycle", first: true, predicate: ANIMATED_LIFECYCLE_TOKEN, descendants: true, static: true }], hostDirectives: [{ directive: SelectBodyDirective }, { directive: i2$1.ProvideThemeDirective }], ngImport: i0, template: `
|
|
10028
|
-
<div class="et-select-body-container" etAnimatedLifecycle>
|
|
10012
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: SelectBodyComponent, isStandalone: true, selector: "et-select-body", host: { classAttribute: "et-select-body et-with-default-animation" }, viewQueries: [{ propertyName: "_animatedLifecycle", first: true, predicate: ANIMATED_LIFECYCLE_TOKEN, descendants: true, static: true }, { propertyName: "_containerElementRef", first: true, predicate: ["containerElement"], descendants: true, read: ElementRef, static: true }], hostDirectives: [{ directive: SelectBodyDirective }, { directive: i2$1.ProvideThemeDirective }], ngImport: i0, template: `
|
|
10013
|
+
<div #containerElement class="et-select-body-container" etAnimatedLifecycle>
|
|
10029
10014
|
<ng-container [ngTemplateOutlet]="_bodyTemplate" />
|
|
10030
10015
|
</div>
|
|
10031
10016
|
`, isInline: true, styles: [".et-select-body.et-with-default-animation .et-select-body-container.et-animation-enter-from,.et-select-body.et-with-default-animation .et-select-body-container.et-animation-leave-to{opacity:0;transform:scaleY(0)}.et-select-body.et-with-default-animation .et-select-body-container.et-animation-enter-active{transition:transform 125ms var(--ease-out-5),opacity 125ms var(--ease-out-5)}.et-select-body.et-with-default-animation .et-select-body-container.et-animation-leave-active{transition:transform 50ms var(--ease-in-5),opacity 50ms var(--ease-in-5)}.et-select-body.et-with-default-animation[et-floating-placement^=top] .et-select-body-container{transform-origin:bottom}.et-select-body.et-with-default-animation[et-floating-placement^=bottom] .et-select-body-container{transform-origin:top}.et-select-body{transform:var(--et-floating-translate);will-change:transform}.et-select-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-select-body-container{overflow:overlay}}.et-select-body{width:100%;display:grid}\n"], dependencies: [{ kind: "directive", type: AnimatedLifecycleDirective, selector: "[etAnimatedLifecycle]", exportAs: ["etAnimatedLifecycle"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
@@ -10033,7 +10018,7 @@ class SelectBodyComponent {
|
|
|
10033
10018
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: SelectBodyComponent, decorators: [{
|
|
10034
10019
|
type: Component,
|
|
10035
10020
|
args: [{ selector: 'et-select-body', template: `
|
|
10036
|
-
<div class="et-select-body-container" etAnimatedLifecycle>
|
|
10021
|
+
<div #containerElement class="et-select-body-container" etAnimatedLifecycle>
|
|
10037
10022
|
<ng-container [ngTemplateOutlet]="_bodyTemplate" />
|
|
10038
10023
|
</div>
|
|
10039
10024
|
`, standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
@@ -10042,6 +10027,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
|
|
|
10042
10027
|
}], propDecorators: { _animatedLifecycle: [{
|
|
10043
10028
|
type: ViewChild,
|
|
10044
10029
|
args: [ANIMATED_LIFECYCLE_TOKEN, { static: true }]
|
|
10030
|
+
}], _containerElementRef: [{
|
|
10031
|
+
type: ViewChild,
|
|
10032
|
+
args: ['containerElement', { static: true, read: ElementRef }]
|
|
10045
10033
|
}] } });
|
|
10046
10034
|
|
|
10047
10035
|
class SelectOptionComponent {
|
|
@@ -10079,13 +10067,13 @@ class SelectComponent extends DecoratedInputBase {
|
|
|
10079
10067
|
this.select.setSelectBody({ component: SelectBodyComponent, template: this.selectBodyTpl });
|
|
10080
10068
|
}
|
|
10081
10069
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: SelectComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
|
|
10082
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: SelectComponent, isStandalone: true, selector: "et-select", host: { classAttribute: "et-select" }, viewQueries: [{ propertyName: "selectBodyTpl", first: true, predicate: ["selectBodyTpl"], descendants: true }], usesInheritance: true, hostDirectives: [{ directive: InputDirective }, { directive: SelectDirective, inputs: ["multiple", "multiple", "emptyText", "emptyText"] }], ngImport: i0, template: "<ng-content select=\"[etInputPrefix]\" />\n\n<div class=\"et-select-wrapper\">\n <div\n #inputElement\n [attr.id]=\"input.id\"\n [attr.aria-labelledby]=\"select.labelledBy$ | async\"\n [attr.aria-describedby]=\"input.describedBy$ | async\"\n [attr.tabindex]=\"(input.disabled$ | async) ? -1 : 0\"\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-controls]=\"(select.selectBodyId$ | async) || null\"\n [attr.aria-owns]=\"(select.owns$ | async) || null\"\n [attr.aria-expanded]=\"select.isOpen$ | async\"\n [attr.aria-activedescendant]=\"select.activeDescendant$ | async\"\n (click)=\"select.
|
|
10070
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: SelectComponent, isStandalone: true, selector: "et-select", host: { classAttribute: "et-select" }, viewQueries: [{ propertyName: "selectBodyTpl", first: true, predicate: ["selectBodyTpl"], descendants: true }], usesInheritance: true, hostDirectives: [{ directive: InputDirective }, { directive: SelectDirective, inputs: ["multiple", "multiple", "emptyText", "emptyText"] }], ngImport: i0, template: "<ng-content select=\"[etInputPrefix]\" />\n\n<div class=\"et-select-wrapper\">\n <div\n #inputElement\n [attr.id]=\"input.id\"\n [attr.aria-labelledby]=\"select.labelledBy$ | async\"\n [attr.aria-describedby]=\"input.describedBy$ | async\"\n [attr.tabindex]=\"(input.disabled$ | async) ? -1 : 0\"\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-controls]=\"(select.selectBodyId$ | async) || null\"\n [attr.aria-owns]=\"(select.owns$ | async) || null\"\n [attr.aria-expanded]=\"select.isOpen$ | async\"\n [attr.aria-activedescendant]=\"select.activeDescendant$ | async\"\n (click)=\"select.open()\"\n (keydown)=\"select._processKeydownEvent($event)\"\n (blur)=\"select._controlTouched()\"\n class=\"et-select-input et-select-input--static\"\n aria-haspopup=\"listbox\"\n role=\"combobox\"\n aria-autocomplete=\"none\"\n >\n <span\n [attr.id]=\"select.selectCurrentValueId\"\n [class.cdk-visually-hidden]=\"select._selectionModel.allowMultiple && select.ariaViewValue()\"\n class=\"et-select-current-value\"\n >\n <ng-container *ngIf=\"select.ariaViewValue(); else emptyTpl\">\n {{ select.ariaViewValue() }}\n </ng-container>\n <ng-template #emptyTpl> {{ select.emptyText }} </ng-template>\n </span>\n\n <ng-container *ngIf=\"select._selectionModel.allowMultiple\">\n <ng-container *ngIf=\"select._selectionModel.selection$ | async as selectedOptions\">\n <ul *ngIf=\"selectedOptions.length\" class=\"et-select-selected-options\" aria-hidden=\"true\">\n <li *ngFor=\"let opt of selectedOptions; trackBy: select.trackByFn\" class=\"et-select-selected-option\">\n {{ opt.viewValue$ | async }}\n <button\n (click)=\"$event.stopPropagation(); select.removeOptionFromSelection(opt); select.focus()\"\n class=\"et-select-selected-option-remove\"\n tabindex=\"-1\"\n type=\"button\"\n ></button>\n </li>\n </ul>\n </ng-container>\n </ng-container>\n </div>\n\n <et-chevron-icon class=\"et-select-chevron\" />\n</div>\n\n<ng-content select=\"[etInputSuffix]\" />\n\n<ng-template #selectBodyTpl>\n <ng-content />\n</ng-template>\n", styles: [".et-select{display:block;border:1px solid #ccc;padding:15px;position:relative}.et-select-input{position:absolute;inset:0}.et-select-option{display:block}.et-select-chevron{transform:rotate(180deg);display:block;inline-size:15px;block-size:15px;position:absolute;inset-inline-end:15px;inset-block-start:7px}.et-select-option--active{background-color:#1f1f1f}.et-select-option--selected{font-weight:700}.et-select-selected-options{display:flex;flex-wrap:wrap;list-style:none;margin:0;padding:0;gap:5px}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
10083
10071
|
}
|
|
10084
10072
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: SelectComponent, decorators: [{
|
|
10085
10073
|
type: Component,
|
|
10086
10074
|
args: [{ selector: 'et-select', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
10087
10075
|
class: 'et-select',
|
|
10088
|
-
}, imports: [NgIf, NativeInputRefDirective, AsyncPipe, ChevronIconComponent, LetDirective, NgFor], hostDirectives: [{ directive: InputDirective }, { directive: SelectDirective, inputs: ['multiple', 'emptyText'] }], template: "<ng-content select=\"[etInputPrefix]\" />\n\n<div class=\"et-select-wrapper\">\n <div\n #inputElement\n [attr.id]=\"input.id\"\n [attr.aria-labelledby]=\"select.labelledBy$ | async\"\n [attr.aria-describedby]=\"input.describedBy$ | async\"\n [attr.tabindex]=\"(input.disabled$ | async) ? -1 : 0\"\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-controls]=\"(select.selectBodyId$ | async) || null\"\n [attr.aria-owns]=\"(select.owns$ | async) || null\"\n [attr.aria-expanded]=\"select.isOpen$ | async\"\n [attr.aria-activedescendant]=\"select.activeDescendant$ | async\"\n (click)=\"select.
|
|
10076
|
+
}, imports: [NgIf, NativeInputRefDirective, AsyncPipe, ChevronIconComponent, LetDirective, NgFor], hostDirectives: [{ directive: InputDirective }, { directive: SelectDirective, inputs: ['multiple', 'emptyText'] }], template: "<ng-content select=\"[etInputPrefix]\" />\n\n<div class=\"et-select-wrapper\">\n <div\n #inputElement\n [attr.id]=\"input.id\"\n [attr.aria-labelledby]=\"select.labelledBy$ | async\"\n [attr.aria-describedby]=\"input.describedBy$ | async\"\n [attr.tabindex]=\"(input.disabled$ | async) ? -1 : 0\"\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-controls]=\"(select.selectBodyId$ | async) || null\"\n [attr.aria-owns]=\"(select.owns$ | async) || null\"\n [attr.aria-expanded]=\"select.isOpen$ | async\"\n [attr.aria-activedescendant]=\"select.activeDescendant$ | async\"\n (click)=\"select.open()\"\n (keydown)=\"select._processKeydownEvent($event)\"\n (blur)=\"select._controlTouched()\"\n class=\"et-select-input et-select-input--static\"\n aria-haspopup=\"listbox\"\n role=\"combobox\"\n aria-autocomplete=\"none\"\n >\n <span\n [attr.id]=\"select.selectCurrentValueId\"\n [class.cdk-visually-hidden]=\"select._selectionModel.allowMultiple && select.ariaViewValue()\"\n class=\"et-select-current-value\"\n >\n <ng-container *ngIf=\"select.ariaViewValue(); else emptyTpl\">\n {{ select.ariaViewValue() }}\n </ng-container>\n <ng-template #emptyTpl> {{ select.emptyText }} </ng-template>\n </span>\n\n <ng-container *ngIf=\"select._selectionModel.allowMultiple\">\n <ng-container *ngIf=\"select._selectionModel.selection$ | async as selectedOptions\">\n <ul *ngIf=\"selectedOptions.length\" class=\"et-select-selected-options\" aria-hidden=\"true\">\n <li *ngFor=\"let opt of selectedOptions; trackBy: select.trackByFn\" class=\"et-select-selected-option\">\n {{ opt.viewValue$ | async }}\n <button\n (click)=\"$event.stopPropagation(); select.removeOptionFromSelection(opt); select.focus()\"\n class=\"et-select-selected-option-remove\"\n tabindex=\"-1\"\n type=\"button\"\n ></button>\n </li>\n </ul>\n </ng-container>\n </ng-container>\n </div>\n\n <et-chevron-icon class=\"et-select-chevron\" />\n</div>\n\n<ng-content select=\"[etInputSuffix]\" />\n\n<ng-template #selectBodyTpl>\n <ng-content />\n</ng-template>\n", styles: [".et-select{display:block;border:1px solid #ccc;padding:15px;position:relative}.et-select-input{position:absolute;inset:0}.et-select-option{display:block}.et-select-chevron{transform:rotate(180deg);display:block;inline-size:15px;block-size:15px;position:absolute;inset-inline-end:15px;inset-block-start:7px}.et-select-option--active{background-color:#1f1f1f}.et-select-option--selected{font-weight:700}.et-select-selected-options{display:flex;flex-wrap:wrap;list-style:none;margin:0;padding:0;gap:5px}\n"] }]
|
|
10089
10077
|
}], propDecorators: { selectBodyTpl: [{
|
|
10090
10078
|
type: ViewChild,
|
|
10091
10079
|
args: ['selectBodyTpl']
|
|
@@ -11457,6 +11445,31 @@ const provideImageConfig = (config = {}) => {
|
|
|
11457
11445
|
};
|
|
11458
11446
|
};
|
|
11459
11447
|
|
|
11448
|
+
const normalizeSource = (source) => {
|
|
11449
|
+
if (typeof source === 'string') {
|
|
11450
|
+
return { type: inferMimeType(source), srcset: source };
|
|
11451
|
+
}
|
|
11452
|
+
else {
|
|
11453
|
+
const mimeType = source.type && source.type !== '' ? source.type : inferMimeType(source.srcset);
|
|
11454
|
+
return { type: mimeType, srcset: source.srcset };
|
|
11455
|
+
}
|
|
11456
|
+
};
|
|
11457
|
+
|
|
11458
|
+
class NormalizeSourcePipe {
|
|
11459
|
+
constructor() {
|
|
11460
|
+
this.transform = normalizeSource;
|
|
11461
|
+
}
|
|
11462
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: NormalizeSourcePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
|
|
11463
|
+
static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "16.2.5", ngImport: i0, type: NormalizeSourcePipe, isStandalone: true, name: "normalizeSource" }); }
|
|
11464
|
+
}
|
|
11465
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: NormalizeSourcePipe, decorators: [{
|
|
11466
|
+
type: Pipe,
|
|
11467
|
+
args: [{
|
|
11468
|
+
name: 'normalizeSource',
|
|
11469
|
+
standalone: true,
|
|
11470
|
+
}]
|
|
11471
|
+
}] });
|
|
11472
|
+
|
|
11460
11473
|
class PictureComponent {
|
|
11461
11474
|
constructor() {
|
|
11462
11475
|
this.pictureData = inject(PictureDataDirective);
|
|
@@ -11465,9 +11478,6 @@ class PictureComponent {
|
|
|
11465
11478
|
this.trackBySrc = (_, item) => item.srcset;
|
|
11466
11479
|
}
|
|
11467
11480
|
combineWithConfig(src) {
|
|
11468
|
-
if (isDevMode() && src.type === '') {
|
|
11469
|
-
console.warn(`The type attribute is missing for the following source`, src.srcset, this);
|
|
11470
|
-
}
|
|
11471
11481
|
if (!this.config?.baseUrl || src.srcset.startsWith('http')) {
|
|
11472
11482
|
return src;
|
|
11473
11483
|
}
|
|
@@ -11478,11 +11488,11 @@ class PictureComponent {
|
|
|
11478
11488
|
};
|
|
11479
11489
|
}
|
|
11480
11490
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: PictureComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
11481
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: PictureComponent, isStandalone: true, selector: "et-picture", inputs: { sources: "sources" }, host: { classAttribute: "et-picture" }, hostDirectives: [{ directive: PictureDataDirective, inputs: ["imgClass", "imgClass", "hasPriority", "hasPriority", "figureClass", "figureClass", "pictureClass", "pictureClass", "figcaptionClass", "figcaptionClass", "defaultSrc", "defaultSrc", "alt", "alt", "figcaption", "figcaption", "width", "width", "height", "height", "sizes", "sizes"] }], ngImport: i0, template: "<figure [ngClass]=\"pictureData.figureClass\" class=\"et-picture-figure\">\n <picture [ngClass]=\"pictureData.pictureClass\" class=\"et-picture-picture\">\n <ng-container *ngFor=\"let source of sources; trackBy: trackBySrc\">\n <source\n *etLet=\"combineWithConfig(source) as s\"\n [type]=\"s.type\"\n [attr.srcset]=\"s.srcset\"\n [attr.sizes]=\"pictureData.sizes\"\n />\n </ng-container>\n\n <ng-container *ngIf=\"pictureData.defaultSrc as source\">\n <img\n *etLet=\"combineWithConfig(source) as s\"\n [attr.loading]=\"pictureData.hasPriority ? 'eager' : 'lazy'\"\n [attr.fetchpriority]=\"pictureData.hasPriority ? 'high' : 'auto'\"\n [ngClass]=\"pictureData.imgClass\"\n [attr.srcset]=\"s.srcset\"\n [attr.type]=\"s.type\"\n [attr.alt]=\"pictureData.alt\"\n [attr.width]=\"pictureData.width\"\n [attr.height]=\"pictureData.height\"\n [attr.sizes]=\"pictureData.sizes\"\n class=\"et-picture-img\"\n />\n </ng-container>\n </picture>\n\n <figcaption *ngIf=\"pictureData.figcaption\" [ngClass]=\"pictureData.figcaptionClass\" class=\"et-picture-figcaption\">\n {{ pictureData.figcaption }}\n </figcaption>\n</figure>\n", dependencies: [{ kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: LetDirective, selector: "[etLet]", inputs: ["etLet"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
11491
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: PictureComponent, isStandalone: true, selector: "et-picture", inputs: { sources: "sources" }, host: { classAttribute: "et-picture" }, hostDirectives: [{ directive: PictureDataDirective, inputs: ["imgClass", "imgClass", "hasPriority", "hasPriority", "figureClass", "figureClass", "pictureClass", "pictureClass", "figcaptionClass", "figcaptionClass", "defaultSrc", "defaultSrc", "alt", "alt", "figcaption", "figcaption", "width", "width", "height", "height", "sizes", "sizes"] }], ngImport: i0, template: "<figure [ngClass]=\"pictureData.figureClass\" class=\"et-picture-figure\">\n <picture [ngClass]=\"pictureData.pictureClass\" class=\"et-picture-picture\">\n <ng-container *ngFor=\"let source of sources; trackBy: trackBySrc\">\n <source\n *etLet=\"combineWithConfig(source | normalizeSource) as s\"\n [type]=\"s.type\"\n [attr.srcset]=\"s.srcset\"\n [attr.sizes]=\"pictureData.sizes\"\n />\n </ng-container>\n\n <ng-container *ngIf=\"pictureData.defaultSrc as source\">\n <img\n *etLet=\"combineWithConfig(source | normalizeSource) as s\"\n [attr.loading]=\"pictureData.hasPriority ? 'eager' : 'lazy'\"\n [attr.fetchpriority]=\"pictureData.hasPriority ? 'high' : 'auto'\"\n [ngClass]=\"pictureData.imgClass\"\n [attr.srcset]=\"s.srcset\"\n [attr.type]=\"s.type\"\n [attr.alt]=\"pictureData.alt\"\n [attr.width]=\"pictureData.width\"\n [attr.height]=\"pictureData.height\"\n [attr.sizes]=\"pictureData.sizes\"\n class=\"et-picture-img\"\n />\n </ng-container>\n </picture>\n\n <figcaption *ngIf=\"pictureData.figcaption\" [ngClass]=\"pictureData.figcaptionClass\" class=\"et-picture-figcaption\">\n {{ pictureData.figcaption }}\n </figcaption>\n</figure>\n", dependencies: [{ kind: "directive", type: NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: LetDirective, selector: "[etLet]", inputs: ["etLet"] }, { kind: "pipe", type: NormalizeSourcePipe, name: "normalizeSource" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
11482
11492
|
}
|
|
11483
11493
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: PictureComponent, decorators: [{
|
|
11484
11494
|
type: Component,
|
|
11485
|
-
args: [{ selector: 'et-picture', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgForOf, NgClass, NgIf, LetDirective], host: {
|
|
11495
|
+
args: [{ selector: 'et-picture', encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [NgForOf, NgClass, NgIf, LetDirective, NormalizeSourcePipe], host: {
|
|
11486
11496
|
class: 'et-picture',
|
|
11487
11497
|
}, hostDirectives: [
|
|
11488
11498
|
{
|
|
@@ -11501,7 +11511,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
|
|
|
11501
11511
|
'sizes',
|
|
11502
11512
|
],
|
|
11503
11513
|
},
|
|
11504
|
-
], template: "<figure [ngClass]=\"pictureData.figureClass\" class=\"et-picture-figure\">\n <picture [ngClass]=\"pictureData.pictureClass\" class=\"et-picture-picture\">\n <ng-container *ngFor=\"let source of sources; trackBy: trackBySrc\">\n <source\n *etLet=\"combineWithConfig(source) as s\"\n [type]=\"s.type\"\n [attr.srcset]=\"s.srcset\"\n [attr.sizes]=\"pictureData.sizes\"\n />\n </ng-container>\n\n <ng-container *ngIf=\"pictureData.defaultSrc as source\">\n <img\n *etLet=\"combineWithConfig(source) as s\"\n [attr.loading]=\"pictureData.hasPriority ? 'eager' : 'lazy'\"\n [attr.fetchpriority]=\"pictureData.hasPriority ? 'high' : 'auto'\"\n [ngClass]=\"pictureData.imgClass\"\n [attr.srcset]=\"s.srcset\"\n [attr.type]=\"s.type\"\n [attr.alt]=\"pictureData.alt\"\n [attr.width]=\"pictureData.width\"\n [attr.height]=\"pictureData.height\"\n [attr.sizes]=\"pictureData.sizes\"\n class=\"et-picture-img\"\n />\n </ng-container>\n </picture>\n\n <figcaption *ngIf=\"pictureData.figcaption\" [ngClass]=\"pictureData.figcaptionClass\" class=\"et-picture-figcaption\">\n {{ pictureData.figcaption }}\n </figcaption>\n</figure>\n" }]
|
|
11514
|
+
], template: "<figure [ngClass]=\"pictureData.figureClass\" class=\"et-picture-figure\">\n <picture [ngClass]=\"pictureData.pictureClass\" class=\"et-picture-picture\">\n <ng-container *ngFor=\"let source of sources; trackBy: trackBySrc\">\n <source\n *etLet=\"combineWithConfig(source | normalizeSource) as s\"\n [type]=\"s.type\"\n [attr.srcset]=\"s.srcset\"\n [attr.sizes]=\"pictureData.sizes\"\n />\n </ng-container>\n\n <ng-container *ngIf=\"pictureData.defaultSrc as source\">\n <img\n *etLet=\"combineWithConfig(source | normalizeSource) as s\"\n [attr.loading]=\"pictureData.hasPriority ? 'eager' : 'lazy'\"\n [attr.fetchpriority]=\"pictureData.hasPriority ? 'high' : 'auto'\"\n [ngClass]=\"pictureData.imgClass\"\n [attr.srcset]=\"s.srcset\"\n [attr.type]=\"s.type\"\n [attr.alt]=\"pictureData.alt\"\n [attr.width]=\"pictureData.width\"\n [attr.height]=\"pictureData.height\"\n [attr.sizes]=\"pictureData.sizes\"\n class=\"et-picture-img\"\n />\n </ng-container>\n </picture>\n\n <figcaption *ngIf=\"pictureData.figcaption\" [ngClass]=\"pictureData.figcaptionClass\" class=\"et-picture-figcaption\">\n {{ pictureData.figcaption }}\n </figcaption>\n</figure>\n" }]
|
|
11505
11515
|
}], propDecorators: { sources: [{
|
|
11506
11516
|
type: Input
|
|
11507
11517
|
}] } });
|
|
@@ -14491,5 +14501,5 @@ const FLOATING_UI_PLACEMENTS = [
|
|
|
14491
14501
|
* Generated bundle index. Do not edit.
|
|
14492
14502
|
*/
|
|
14493
14503
|
|
|
14494
|
-
export { ACCORDION_COMPONENT, ACCORDION_HINT_WRAPPER_DIRECTIVE, ACCORDION_LABEL_WRAPPER_DIRECTIVE, AccordionComponent, AccordionGroupComponent, AccordionHintDirective, AccordionHintWrapperDirective, AccordionImports, AccordionLabelDirective, AccordionLabelWrapperDirective, ActiveTabUnderlineBarManager, ActiveTabUnderlineDirective, AutosizeTextareaDirective, BOTTOM_SHEET_CONFIG, BOTTOM_SHEET_DATA, BOTTOM_SHEET_DEFAULT_CONFIG, BOTTOM_SHEET_DEFAULT_OPTIONS, BOTTOM_SHEET_MIN_SWIPE_TO_CLOSE_LENGTH, BOTTOM_SHEET_MIN_VELOCITY_TO_CLOSE, BOTTOM_SHEET_SCROLL_STRATEGY, BOTTOM_SHEET_SCROLL_STRATEGY_PROVIDER, BOTTOM_SHEET_SCROLL_STRATEGY_PROVIDER_FACTORY, BRACKET_CONFIG_TOKEN, BRACKET_DEFAULT_CONFIG, BRACKET_MATCH_ID_TOKEN, BRACKET_ROUND_ID_TOKEN, BRACKET_TOKEN, BottomSheetContainerBaseComponent, BottomSheetContainerComponent, BottomSheetDragHandleComponent, BottomSheetImports, BottomSheetRef, BottomSheetService, BottomSheetServiceBase, BottomSheetSwipeHandlerService, BottomSheetTitleDirective, Bracket, BracketComponent, BracketImports, BracketMatchComponent, BracketMatchDirective, BracketRoundDirective, BracketRoundHeaderComponent, ButtonComponent, ButtonDirective, ButtonImports, CDK_MENU, CHECKBOX_FIELD_TOKEN, CHECKBOX_GROUP_CONTROL_TOKEN, CHECKBOX_GROUP_TOKEN, CHECKBOX_TOKEN, COMBOBOX_BODY_EMPTY_TEMPLATE_TOKEN, COMBOBOX_BODY_ERROR_TEMPLATE_TOKEN, COMBOBOX_BODY_LOADING_TEMPLATE_TOKEN, COMBOBOX_BODY_MORE_ITEMS_HINT_TEMPLATE_TOKEN, COMBOBOX_CONFIG_TOKEN, COMBOBOX_DEFAULT_CONFIG, COMBOBOX_OPTION_TEMPLATE_TOKEN, COMBOBOX_SELECTED_OPTION_TEMPLATE_TOKEN, COMBOBOX_TOKEN, CdkContextMenuTrigger, CdkMenu, CdkMenuBar, CdkMenuBase, CdkMenuGroup, CdkMenuItem, CdkMenuItemCheckbox, CdkMenuItemRadio, CdkMenuItemSelectable, CdkMenuModule, CdkMenuTrigger, CdkMenuTriggerBase, CdkTargetMenuAim, CellDefDirective, CellDirective, CheckboxComponent, CheckboxDirective, CheckboxFieldComponent, CheckboxFieldDirective, CheckboxGroupComponent, CheckboxGroupControlDirective, CheckboxGroupDirective, CheckboxImports, ChevronIconComponent, ColumnDefDirective, ComboboxBodyEmptyTemplateDirective, ComboboxBodyErrorTemplateDirective, ComboboxBodyLoadingTemplateDirective, ComboboxBodyMoreItemsHintTemplateDirective, ComboboxComponent, ComboboxDirective, ComboboxImports, ComboboxOptionTemplateDirective, ComboboxSelectedOptionTemplateDirective, ContextMenuTracker, DATE_INPUT_FORMAT_TOKEN, DATE_INPUT_TOKEN, DEFAULT_DATE_INPUT_FORMAT, DIALOG_CONFIG, DIALOG_DATA, DIALOG_DEFAULT_CONFIG, DIALOG_DEFAULT_OPTIONS, DIALOG_SCROLL_STRATEGY, DIALOG_SCROLL_STRATEGY_PROVIDER, DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY, DYNAMIC_FORM_FIELD_TOKEN, DYNAMIC_FORM_GROUP_TOKEN, DateInputComponent, DateInputDirective, DecoratedFormFieldBase, DecoratedInputBase, DefaultValidatorErrorsService, DialogCloseDirective, DialogContainerBaseComponent, DialogContainerComponent, DialogImports, DialogRef, DialogService, DialogServiceBase, DialogTitleDirective, DynamicFormFieldDirective, DynamicFormGroupDirective, DynamicOverlayService, DynamicOverlayTitleDirective, EMAIL_INPUT_TOKEN, ET_OVERLAY_BOTTOM_SHEET_CLASS, ET_OVERLAY_DIALOG_CLASS, ET_OVERLAY_FULL_SCREEN_DIALOG_CLASS, ET_OVERLAY_LEFT_SHEET_CLASS, ET_OVERLAY_RIGHT_SHEET_CLASS, ET_OVERLAY_TOP_SHEET_CLASS, EXPOSE_INPUT_VARS_TOKEN, EmailInputComponent, EmailInputDirective, ErrorComponent, ExposeInputVarsDirective, FILTER_OVERLAY_BACK_OR_CLOSE_TOKEN, FILTER_OVERLAY_LINK_TOKEN, FILTER_OVERLAY_REF, FILTER_OVERLAY_RESET_TOKEN, FILTER_OVERLAY_SUBMIT_TOKEN, FLOATING_UI_PLACEMENTS, FilterOverlayBackOrCloseDirective, FilterOverlayImports, FilterOverlayLinkDirective, FilterOverlayPageOutletComponent, FilterOverlayRef, FilterOverlayResetDirective, FilterOverlayService, FilterOverlaySubmitDirective, FooterCellDefDirective, FooterCellDirective, FooterRowComponent, FooterRowDefDirective, FormFieldStateService, FormGroupStateService, HeaderCellDefDirective, HeaderCellDirective, HeaderRowComponent, HeaderRowDefDirective, IMAGE_CONFIG_TOKEN, INPUT_PREFIX_TOKEN, INPUT_SUFFIX_TOKEN, INPUT_TOKEN, IconImports, IfInputEmptyDirective, IfInputFilledDirective, InlineTabBodyComponent, InlineTabBodyHostDirective, InlineTabChangeEvent, InlineTabComponent, InlineTabContentDirective, InlineTabHeaderComponent, InlineTabLabelDirective, InlineTabLabelWrapperDirective, InlineTabsComponent, InputBase, InputDirective, InputFieldComponent, InputImports, InputPrefixDirective, InputStateService, InputSuffixDirective, LABEL_TOKEN, LabelComponent, LabelImports, LabelSuffixDirective, MASONRY_ITEM_TOKEN, MAX_SAFE_INTEGER, MENU_AIM, MENU_STACK, MENU_TRIGGER, MasonryComponent, MasonryImports, MasonryItemComponent, MenuStack, NATIVE_INPUT_REF_TOKEN, NATIVE_SELECT_INPUT_TOKEN, NATIVE_SELECT_OPTION_TOKEN, NUMBER_INPUT_TOKEN, NativeInputRefDirective, NativeSelectImports, NativeSelectInputComponent, NativeSelectInputDirective, NativeSelectOptionComponent, NativeSelectOptionDirective, NavTabLinkComponent, NavTabsComponent, NavTabsOutletComponent, NoDataRowDirective, NumberInputComponent, NumberInputDirective, OVERLAY_CONFIG, OVERLAY_DATA, OVERLAY_DEFAULT_CONFIG, OVERLAY_DEFAULT_OPTIONS, OVERLAY_SCROLL_STRATEGY, OVERLAY_SCROLL_STRATEGY_PROVIDER, OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY, OVERLAY_STATE, OverlayCloseDirective, OverlayContainerComponent, OverlayImports, OverlayPositionBuilder, OverlayRef, OverlayService, OverlayTitleDirective, PARENT_OR_NEW_INLINE_MENU_STACK_PROVIDER, PARENT_OR_NEW_MENU_STACK_PROVIDER, PASSWORD_INPUT_TOKEN, PROGRESS_SPINNER_DEFAULT_OPTIONS, PROGRESS_SPINNER_DEFAULT_OPTIONS_FACTORY, PaginatedTabHeaderDirective, PaginationComponent, PaginationImports, PasswordInputComponent, PasswordInputDirective, PasswordInputToggleComponent, PictureComponent, PictureDataDirective, PointerFocusTracker, ProgressSpinnerComponent, QUERY_ERROR_TOKEN, QueryButtonComponent, QueryButtonDirective, QueryErrorComponent, QueryErrorDirective, RADIO_FIELD_TOKEN, RADIO_GROUP_TOKEN, RADIO_TOKEN, RICH_FILTER_BUTTON_SLOT_TOKEN, RICH_FILTER_BUTTON_TOKEN, RICH_FILTER_CONTENT_TOKEN, RICH_FILTER_TOP_TOKEN, RadioComponent, RadioDirective, RadioFieldComponent, RadioFieldDirective, RadioGroupComponent, RadioGroupDirective, RadioImports, RecycleRowsDirective, RichFilterButtonDirective, RichFilterButtonSlotDirective, RichFilterContentDirective, RichFilterHostComponent, RichFilterImports, RichFilterTopDirective, RowComponent, RowDefDirective, SEARCH_INPUT_TOKEN, SEGMENTED_BUTTON_FIELD_TOKEN, SEGMENTED_BUTTON_GROUP_TOKEN, SEGMENTED_BUTTON_TOKEN, SELECTION_LIST_FIELD, SELECTION_LIST_OPTION, SELECT_BODY_TOKEN, SELECT_FIELD_TOKEN, SELECT_OPTION_TOKEN, SELECT_TOKEN, SLIDE_TOGGLE_TOKEN, SORT_DEFAULT_OPTIONS, SORT_HEADER_COLUMN_DEF, SORT_HEADER_INTL_PROVIDER, SORT_HEADER_INTL_PROVIDER_FACTORY, STATIC_FORM_FIELD_TOKEN, STATIC_FORM_GROUP_TOKEN, ScrollableComponent, ScrollableImports, SearchInputClearComponent, SearchInputComponent, SearchInputDirective, SegmentedButtonComponent, SegmentedButtonDirective, SegmentedButtonFieldComponent, SegmentedButtonFieldDirective, SegmentedButtonGroupComponent, SegmentedButtonGroupDirective, SegmentedButtonImports, SelectBodyComponent, SelectBodyDirective, SelectComponent, SelectDirective, SelectFieldComponent, SelectFieldDirective, SelectImports, SelectOptionComponent, SelectOptionDirective, SelectionListFieldComponent, SelectionListFieldDirective, SelectionListImports, SelectionListOptionComponent, SelectionListOptionDirective, SkeletonComponent, SkeletonImports, SkeletonItemComponent, SlideToggleComponent, SlideToggleDirective, SlideToggleFieldComponent, SlideToggleImports, SliderComponent, SliderFieldComponent, SliderImports, SortDirective, SortHeaderComponent, SortHeaderIntl, SortImports, StaticFormFieldDirective, StaticFormGroupDirective, SwipeHandlerService, TAB, TABS_CONFIG, TAB_CONTENT, TAB_GROUP, TAB_LABEL, TEXTAREA_INPUT_TOKEN, TEXT_INPUT_TOKEN, TOGGLETIP, TOGGLETIP_CONFIG, TOGGLETIP_DEFAULT_CONFIG, TOGGLETIP_DIRECTIVE, TOGGLETIP_TEMPLATE, TOGGLETIP_TEXT, TOOLTIP, TOOLTIP_CONFIG, TOOLTIP_DEFAULT_CONFIG, TOOLTIP_DIRECTIVE, TOOLTIP_TEMPLATE, TOOLTIP_TEXT, TabImports, TableBusyDirective, TableBusyOutletDirective, TableComponent, TableDataSource, TableImports, TargetMenuAim, TextColumnComponent, TextInputComponent, TextInputDirective, TextareaInputComponent, TextareaInputDirective, ToggletipComponent, ToggletipDirective, ToggletipImports, TooltipComponent, TooltipDirective, TooltipImports, VALIDATOR_ERROR_SERVICE_TOKEN, WRITEABLE_INPUT_TOKEN, WRITEABLE_INPUT_VALUE_ACCESSOR, WriteableInputDirective, _MAT_INK_BAR_POSITIONER, _MAT_INK_BAR_POSITIONER_FACTORY, accordionAnimations, convertHttpStatusCodeToMessage, createBottomSheetConfig, createBracketConfig, createComboboxConfig, createDialogConfig, createOverlayConfig, createToggletipConfig, createTooltipConfig, getClosestBottomSheet, getClosestDialog, getClosestOverlay,
|
|
14504
|
+
export { ACCORDION_COMPONENT, ACCORDION_HINT_WRAPPER_DIRECTIVE, ACCORDION_LABEL_WRAPPER_DIRECTIVE, AccordionComponent, AccordionGroupComponent, AccordionHintDirective, AccordionHintWrapperDirective, AccordionImports, AccordionLabelDirective, AccordionLabelWrapperDirective, ActiveTabUnderlineBarManager, ActiveTabUnderlineDirective, AutosizeTextareaDirective, BOTTOM_SHEET_CONFIG, BOTTOM_SHEET_DATA, BOTTOM_SHEET_DEFAULT_CONFIG, BOTTOM_SHEET_DEFAULT_OPTIONS, BOTTOM_SHEET_MIN_SWIPE_TO_CLOSE_LENGTH, BOTTOM_SHEET_MIN_VELOCITY_TO_CLOSE, BOTTOM_SHEET_SCROLL_STRATEGY, BOTTOM_SHEET_SCROLL_STRATEGY_PROVIDER, BOTTOM_SHEET_SCROLL_STRATEGY_PROVIDER_FACTORY, BRACKET_CONFIG_TOKEN, BRACKET_DEFAULT_CONFIG, BRACKET_MATCH_ID_TOKEN, BRACKET_ROUND_ID_TOKEN, BRACKET_TOKEN, BottomSheetContainerBaseComponent, BottomSheetContainerComponent, BottomSheetDragHandleComponent, BottomSheetImports, BottomSheetRef, BottomSheetService, BottomSheetServiceBase, BottomSheetSwipeHandlerService, BottomSheetTitleDirective, Bracket, BracketComponent, BracketImports, BracketMatchComponent, BracketMatchDirective, BracketRoundDirective, BracketRoundHeaderComponent, ButtonComponent, ButtonDirective, ButtonImports, CDK_MENU, CHECKBOX_FIELD_TOKEN, CHECKBOX_GROUP_CONTROL_TOKEN, CHECKBOX_GROUP_TOKEN, CHECKBOX_TOKEN, COMBOBOX_BODY_EMPTY_TEMPLATE_TOKEN, COMBOBOX_BODY_ERROR_TEMPLATE_TOKEN, COMBOBOX_BODY_LOADING_TEMPLATE_TOKEN, COMBOBOX_BODY_MORE_ITEMS_HINT_TEMPLATE_TOKEN, COMBOBOX_CONFIG_TOKEN, COMBOBOX_DEFAULT_CONFIG, COMBOBOX_OPTION_TEMPLATE_TOKEN, COMBOBOX_SELECTED_OPTION_TEMPLATE_TOKEN, COMBOBOX_TOKEN, CdkContextMenuTrigger, CdkMenu, CdkMenuBar, CdkMenuBase, CdkMenuGroup, CdkMenuItem, CdkMenuItemCheckbox, CdkMenuItemRadio, CdkMenuItemSelectable, CdkMenuModule, CdkMenuTrigger, CdkMenuTriggerBase, CdkTargetMenuAim, CellDefDirective, CellDirective, CheckboxComponent, CheckboxDirective, CheckboxFieldComponent, CheckboxFieldDirective, CheckboxGroupComponent, CheckboxGroupControlDirective, CheckboxGroupDirective, CheckboxImports, ChevronIconComponent, ColumnDefDirective, ComboboxBodyEmptyTemplateDirective, ComboboxBodyErrorTemplateDirective, ComboboxBodyLoadingTemplateDirective, ComboboxBodyMoreItemsHintTemplateDirective, ComboboxComponent, ComboboxDirective, ComboboxImports, ComboboxOptionTemplateDirective, ComboboxSelectedOptionTemplateDirective, ContextMenuTracker, DATE_INPUT_FORMAT_TOKEN, DATE_INPUT_TOKEN, DEFAULT_DATE_INPUT_FORMAT, DIALOG_CONFIG, DIALOG_DATA, DIALOG_DEFAULT_CONFIG, DIALOG_DEFAULT_OPTIONS, DIALOG_SCROLL_STRATEGY, DIALOG_SCROLL_STRATEGY_PROVIDER, DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY, DYNAMIC_FORM_FIELD_TOKEN, DYNAMIC_FORM_GROUP_TOKEN, DateInputComponent, DateInputDirective, DecoratedFormFieldBase, DecoratedInputBase, DefaultValidatorErrorsService, DialogCloseDirective, DialogContainerBaseComponent, DialogContainerComponent, DialogImports, DialogRef, DialogService, DialogServiceBase, DialogTitleDirective, DynamicFormFieldDirective, DynamicFormGroupDirective, DynamicOverlayService, DynamicOverlayTitleDirective, EMAIL_INPUT_TOKEN, ET_OVERLAY_BOTTOM_SHEET_CLASS, ET_OVERLAY_DIALOG_CLASS, ET_OVERLAY_FULL_SCREEN_DIALOG_CLASS, ET_OVERLAY_LEFT_SHEET_CLASS, ET_OVERLAY_RIGHT_SHEET_CLASS, ET_OVERLAY_TOP_SHEET_CLASS, EXPOSE_INPUT_VARS_TOKEN, EmailInputComponent, EmailInputDirective, ErrorComponent, ExposeInputVarsDirective, FILTER_OVERLAY_BACK_OR_CLOSE_TOKEN, FILTER_OVERLAY_LINK_TOKEN, FILTER_OVERLAY_REF, FILTER_OVERLAY_RESET_TOKEN, FILTER_OVERLAY_SUBMIT_TOKEN, FLOATING_UI_PLACEMENTS, FilterOverlayBackOrCloseDirective, FilterOverlayImports, FilterOverlayLinkDirective, FilterOverlayPageOutletComponent, FilterOverlayRef, FilterOverlayResetDirective, FilterOverlayService, FilterOverlaySubmitDirective, FooterCellDefDirective, FooterCellDirective, FooterRowComponent, FooterRowDefDirective, FormFieldStateService, FormGroupStateService, HeaderCellDefDirective, HeaderCellDirective, HeaderRowComponent, HeaderRowDefDirective, IMAGE_CONFIG_TOKEN, INPUT_PREFIX_TOKEN, INPUT_SUFFIX_TOKEN, INPUT_TOKEN, IconImports, IfInputEmptyDirective, IfInputFilledDirective, InlineTabBodyComponent, InlineTabBodyHostDirective, InlineTabChangeEvent, InlineTabComponent, InlineTabContentDirective, InlineTabHeaderComponent, InlineTabLabelDirective, InlineTabLabelWrapperDirective, InlineTabsComponent, InputBase, InputDirective, InputFieldComponent, InputImports, InputPrefixDirective, InputStateService, InputSuffixDirective, LABEL_TOKEN, LabelComponent, LabelImports, LabelSuffixDirective, MASONRY_ITEM_TOKEN, MAX_SAFE_INTEGER, MENU_AIM, MENU_STACK, MENU_TRIGGER, MasonryComponent, MasonryImports, MasonryItemComponent, MenuStack, NATIVE_INPUT_REF_TOKEN, NATIVE_SELECT_INPUT_TOKEN, NATIVE_SELECT_OPTION_TOKEN, NUMBER_INPUT_TOKEN, NativeInputRefDirective, NativeSelectImports, NativeSelectInputComponent, NativeSelectInputDirective, NativeSelectOptionComponent, NativeSelectOptionDirective, NavTabLinkComponent, NavTabsComponent, NavTabsOutletComponent, NoDataRowDirective, NumberInputComponent, NumberInputDirective, OVERLAY_CLOSE_BLOCKER_TOKEN, OVERLAY_CONFIG, OVERLAY_DATA, OVERLAY_DEFAULT_CONFIG, OVERLAY_DEFAULT_OPTIONS, OVERLAY_SCROLL_STRATEGY, OVERLAY_SCROLL_STRATEGY_PROVIDER, OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY, OVERLAY_STATE, OverlayCloseBlockerDirective, OverlayCloseDirective, OverlayContainerComponent, OverlayImports, OverlayPositionBuilder, OverlayRef, OverlayService, OverlayTitleDirective, PARENT_OR_NEW_INLINE_MENU_STACK_PROVIDER, PARENT_OR_NEW_MENU_STACK_PROVIDER, PASSWORD_INPUT_TOKEN, PROGRESS_SPINNER_DEFAULT_OPTIONS, PROGRESS_SPINNER_DEFAULT_OPTIONS_FACTORY, PaginatedTabHeaderDirective, PaginationComponent, PaginationImports, PasswordInputComponent, PasswordInputDirective, PasswordInputToggleComponent, PictureComponent, PictureDataDirective, PointerFocusTracker, ProgressSpinnerComponent, QUERY_ERROR_TOKEN, QueryButtonComponent, QueryButtonDirective, QueryErrorComponent, QueryErrorDirective, RADIO_FIELD_TOKEN, RADIO_GROUP_TOKEN, RADIO_TOKEN, RICH_FILTER_BUTTON_SLOT_TOKEN, RICH_FILTER_BUTTON_TOKEN, RICH_FILTER_CONTENT_TOKEN, RICH_FILTER_TOP_TOKEN, RadioComponent, RadioDirective, RadioFieldComponent, RadioFieldDirective, RadioGroupComponent, RadioGroupDirective, RadioImports, RecycleRowsDirective, RichFilterButtonDirective, RichFilterButtonSlotDirective, RichFilterContentDirective, RichFilterHostComponent, RichFilterImports, RichFilterTopDirective, RowComponent, RowDefDirective, SEARCH_INPUT_TOKEN, SEGMENTED_BUTTON_FIELD_TOKEN, SEGMENTED_BUTTON_GROUP_TOKEN, SEGMENTED_BUTTON_TOKEN, SELECTION_LIST_FIELD, SELECTION_LIST_OPTION, SELECT_BODY_TOKEN, SELECT_FIELD_TOKEN, SELECT_OPTION_TOKEN, SELECT_TOKEN, SLIDE_TOGGLE_TOKEN, SORT_DEFAULT_OPTIONS, SORT_HEADER_COLUMN_DEF, SORT_HEADER_INTL_PROVIDER, SORT_HEADER_INTL_PROVIDER_FACTORY, STATIC_FORM_FIELD_TOKEN, STATIC_FORM_GROUP_TOKEN, ScrollableComponent, ScrollableImports, SearchInputClearComponent, SearchInputComponent, SearchInputDirective, SegmentedButtonComponent, SegmentedButtonDirective, SegmentedButtonFieldComponent, SegmentedButtonFieldDirective, SegmentedButtonGroupComponent, SegmentedButtonGroupDirective, SegmentedButtonImports, SelectBodyComponent, SelectBodyDirective, SelectComponent, SelectDirective, SelectFieldComponent, SelectFieldDirective, SelectImports, SelectOptionComponent, SelectOptionDirective, SelectionListFieldComponent, SelectionListFieldDirective, SelectionListImports, SelectionListOptionComponent, SelectionListOptionDirective, SkeletonComponent, SkeletonImports, SkeletonItemComponent, SlideToggleComponent, SlideToggleDirective, SlideToggleFieldComponent, SlideToggleImports, SliderComponent, SliderFieldComponent, SliderImports, SortDirective, SortHeaderComponent, SortHeaderIntl, SortImports, StaticFormFieldDirective, StaticFormGroupDirective, SwipeHandlerService, TAB, TABS_CONFIG, TAB_CONTENT, TAB_GROUP, TAB_LABEL, TEXTAREA_INPUT_TOKEN, TEXT_INPUT_TOKEN, TOGGLETIP, TOGGLETIP_CONFIG, TOGGLETIP_DEFAULT_CONFIG, TOGGLETIP_DIRECTIVE, TOGGLETIP_TEMPLATE, TOGGLETIP_TEXT, TOOLTIP, TOOLTIP_CONFIG, TOOLTIP_DEFAULT_CONFIG, TOOLTIP_DIRECTIVE, TOOLTIP_TEMPLATE, TOOLTIP_TEXT, TabImports, TableBusyDirective, TableBusyOutletDirective, TableComponent, TableDataSource, TableImports, TargetMenuAim, TextColumnComponent, TextInputComponent, TextInputDirective, TextareaInputComponent, TextareaInputDirective, ToggletipComponent, ToggletipDirective, ToggletipImports, TooltipComponent, TooltipDirective, TooltipImports, VALIDATOR_ERROR_SERVICE_TOKEN, WRITEABLE_INPUT_TOKEN, WRITEABLE_INPUT_VALUE_ACCESSOR, WriteableInputDirective, _MAT_INK_BAR_POSITIONER, _MAT_INK_BAR_POSITIONER_FACTORY, accordionAnimations, convertHttpStatusCodeToMessage, createBottomSheetConfig, createBracketConfig, createComboboxConfig, createDialogConfig, createOverlayConfig, createOverlayDismissChecker, createToggletipConfig, createTooltipConfig, getClosestBottomSheet, getClosestDialog, getClosestOverlay, isUpperBracketMatch, normalizeRoundType, orderRounds, orderRoundsByRoundNumber, paginate, provideBottomSheet, provideBottomSheetDefaultConfig, provideBracketConfig, provideComboboxConfig, provideDateFormat, provideDialog, provideDialogDefaultConfig, provideFilterOverlay, provideImageConfig, provideOverlay, provideOverlayDefaultConfig, provideSort, provideToggletipConfig, provideTooltipConfig, provideValidatorErrorsService, tabAnimations };
|
|
14495
14505
|
//# sourceMappingURL=ethlete-cdk.mjs.map
|