@ethlete/cdk 3.19.0 → 3.19.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/esm2022/lib/components/button/directives/button/button.directive.mjs +10 -25
- package/esm2022/lib/components/button/directives/query-button/query-button.directive.mjs +8 -17
- package/esm2022/lib/components/forms/components/checkbox/directives/checkbox/checkbox.directive.mjs +7 -11
- package/esm2022/lib/components/forms/components/checkbox/directives/checkbox-field/checkbox-field.directive.mjs +17 -14
- package/esm2022/lib/components/forms/components/checkbox/directives/checkbox-group-control/checkbox-group-control.directive.mjs +6 -13
- package/esm2022/lib/components/forms/components/error/components/error/error.component.mjs +7 -9
- package/esm2022/lib/components/forms/components/radio/directives/radio/radio.directive.mjs +6 -8
- package/esm2022/lib/components/forms/components/radio/directives/radio-field/radio-field.directive.mjs +14 -18
- package/esm2022/lib/components/forms/components/radio/directives/radio-group/radio-group.directive.mjs +5 -11
- package/esm2022/lib/components/forms/components/segmented-button/directives/segmented-button/segmented-button.directive.mjs +6 -8
- package/esm2022/lib/components/forms/components/segmented-button/directives/segmented-button-field/segmented-button-field.directive.mjs +14 -18
- package/esm2022/lib/components/forms/components/segmented-button/directives/segmented-button-group/segmented-button-group.directive.mjs +6 -11
- package/esm2022/lib/components/forms/components/select/components/combobox/directives/combobox/combobox.directive.mjs +17 -25
- package/esm2022/lib/components/forms/components/select/components/combobox/partials/combobox-body/combobox-body.component.mjs +20 -24
- package/esm2022/lib/components/forms/components/select/components/combobox/partials/combobox-option/combobox-option.component.mjs +11 -23
- package/esm2022/lib/components/forms/components/select/components/select/directives/select/select.directive.mjs +29 -22
- package/esm2022/lib/components/forms/components/select/components/select/directives/select-body/select-body.directive.mjs +7 -15
- package/esm2022/lib/components/forms/components/select/components/select/directives/select-option/select-option.directive.mjs +13 -14
- package/esm2022/lib/components/forms/components/select/components/select/partials/select-body/select-body.component.mjs +9 -3
- package/esm2022/lib/components/forms/components/select/directives/select-field/select-field.directive.mjs +3 -4
- package/esm2022/lib/components/forms/components/slide-toggle/directives/slide-toggle/slide-toggle.directive.mjs +6 -8
- package/esm2022/lib/components/forms/components/slider/components/slider/slider.component.mjs +18 -41
- package/esm2022/lib/components/forms/directives/input/input.directive.mjs +4 -1
- package/esm2022/lib/components/forms/directives/writeable-input/writeable-input.directive.mjs +10 -23
- package/esm2022/lib/components/forms/services/input-state.service.mjs +21 -4
- package/esm2022/lib/components/forms/utils/decorated-form-field.base.mjs +5 -8
- package/esm2022/lib/components/forms/utils/decorated-input.base.mjs +26 -23
- package/esm2022/lib/components/masonry/components/masonry/masonry.component.mjs +6 -8
- package/esm2022/lib/components/overlay/components/overlay/components/overlay-container/overlay-container.component.mjs +11 -4
- package/esm2022/lib/components/overlay/components/toggletip/components/toggletip/toggletip.component.mjs +9 -3
- package/esm2022/lib/components/overlay/components/toggletip/directives/toggletip/toggletip.directive.mjs +4 -1
- package/esm2022/lib/components/overlay/components/tooltip/components/tooltip/tooltip.component.mjs +9 -3
- package/esm2022/lib/components/overlay/components/tooltip/directives/tooltip/tooltip.directive.mjs +4 -1
- package/esm2022/lib/components/picture/picture.component.mjs +7 -4
- package/fesm2022/ethlete-cdk.mjs +255 -356
- package/fesm2022/ethlete-cdk.mjs.map +1 -1
- package/lib/components/button/directives/button/button.directive.d.ts +4 -1
- package/lib/components/button/directives/query-button/query-button.directive.d.ts +4 -1
- package/lib/components/forms/components/checkbox/directives/checkbox/checkbox.directive.d.ts +4 -1
- package/lib/components/forms/components/checkbox/directives/checkbox-field/checkbox-field.directive.d.ts +11 -6
- package/lib/components/forms/components/checkbox/directives/checkbox-group-control/checkbox-group-control.directive.d.ts +6 -4
- package/lib/components/forms/components/error/components/error/error.component.d.ts +4 -1
- package/lib/components/forms/components/radio/directives/radio/radio.directive.d.ts +4 -1
- package/lib/components/forms/components/radio/directives/radio-field/radio-field.directive.d.ts +12 -6
- package/lib/components/forms/components/radio/directives/radio-group/radio-group.directive.d.ts +4 -1
- package/lib/components/forms/components/segmented-button/directives/segmented-button/segmented-button.directive.d.ts +4 -1
- package/lib/components/forms/components/segmented-button/directives/segmented-button-field/segmented-button-field.directive.d.ts +12 -7
- package/lib/components/forms/components/segmented-button/directives/segmented-button-group/segmented-button-group.directive.d.ts +4 -1
- package/lib/components/forms/components/select/components/combobox/directives/combobox/combobox.directive.d.ts +10 -1
- package/lib/components/forms/components/select/components/combobox/partials/combobox-body/combobox-body.component.d.ts +13 -2
- package/lib/components/forms/components/select/components/combobox/partials/combobox-option/combobox-option.component.d.ts +8 -1
- package/lib/components/forms/components/select/components/select/directives/select/select.directive.d.ts +15 -3
- package/lib/components/forms/components/select/components/select/directives/select-body/select-body.directive.d.ts +4 -1
- package/lib/components/forms/components/select/components/select/directives/select-option/select-option.directive.d.ts +10 -1
- package/lib/components/forms/components/select/components/select/partials/select-body/select-body.component.d.ts +5 -1
- package/lib/components/forms/components/select/directives/select-field/select-field.directive.d.ts +2 -2
- package/lib/components/forms/components/slide-toggle/directives/slide-toggle/slide-toggle.directive.d.ts +4 -1
- package/lib/components/forms/components/slider/components/slider/slider.component.d.ts +8 -1
- package/lib/components/forms/directives/input/input.directive.d.ts +21 -19
- package/lib/components/forms/directives/writeable-input/writeable-input.directive.d.ts +4 -1
- package/lib/components/forms/services/input-state.service.d.ts +13 -6
- package/lib/components/forms/utils/decorated-form-field.base.d.ts +4 -1
- package/lib/components/forms/utils/decorated-input.base.d.ts +13 -6
- package/lib/components/masonry/components/masonry/masonry.component.d.ts +4 -1
- package/lib/components/overlay/components/overlay/components/overlay-container/overlay-container.component.d.ts +4 -1
- package/lib/components/overlay/components/toggletip/components/toggletip/toggletip.component.d.ts +5 -1
- package/lib/components/overlay/components/toggletip/directives/toggletip/toggletip.directive.d.ts +1 -0
- package/lib/components/overlay/components/tooltip/components/tooltip/tooltip.component.d.ts +5 -1
- package/lib/components/overlay/components/tooltip/directives/tooltip/tooltip.directive.d.ts +1 -0
- package/package.json +3 -3
package/fesm2022/ethlete-cdk.mjs
CHANGED
|
@@ -4,10 +4,11 @@ import { AsyncPipe, NgIf, NgClass, NgTemplateOutlet, NgForOf, NgFor, NgComponent
|
|
|
4
4
|
import * as i0 from '@angular/core';
|
|
5
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';
|
|
6
6
|
import * as i1$2 from '@ethlete/core';
|
|
7
|
-
import { LetDirective, createDestroy, ScrollObserverFirstElementDirective, ScrollObserverLastElementDirective, Memo,
|
|
8
|
-
import { BehaviorSubject, startWith, map, switchMap, combineLatest, pairwise, tap, takeUntil, skip, of, Subject, filter, take, merge, skipUntil, defer, fromEvent, partition, debounceTime as debounceTime$1, distinctUntilChanged as distinctUntilChanged$1, withLatestFrom, skipWhile, catchError, throwError, firstValueFrom, timer, Subscription
|
|
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, firstValueFrom, timer, Subscription } from 'rxjs';
|
|
9
9
|
import { trigger, state, style, transition, animate } from '@angular/animations';
|
|
10
10
|
import { __decorate, __metadata } from 'tslib';
|
|
11
|
+
import { toSignal, takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
|
11
12
|
import { extractQuery, isQueryStateLoading, isQueryStateSuccess, isQueryStateFailure, QueryDirective, shouldRetryRequest, isClassValidatorError, isSymfonyFormViolationListError } from '@ethlete/query';
|
|
12
13
|
import { CdkDialogContainer, Dialog, DialogConfig, DIALOG_SCROLL_STRATEGY_PROVIDER as DIALOG_SCROLL_STRATEGY_PROVIDER$1 } from '@angular/cdk/dialog';
|
|
13
14
|
import * as i1$1 from '@angular/cdk/a11y';
|
|
@@ -18,11 +19,12 @@ import { ESCAPE, hasModifierKey, UP_ARROW, DOWN_ARROW, LEFT_ARROW, RIGHT_ARROW,
|
|
|
18
19
|
import * as i1$4 from '@angular/cdk/bidi';
|
|
19
20
|
import { Directionality } from '@angular/cdk/bidi';
|
|
20
21
|
import { coerceBooleanProperty, coerceCssPixelValue, coerceElement, _isNumberValue } from '@angular/cdk/coercion';
|
|
21
|
-
import * as i2$
|
|
22
|
+
import * as i2$2 from '@angular/cdk/platform';
|
|
22
23
|
import { _getEventTarget } from '@angular/cdk/platform';
|
|
23
24
|
import { startWith as startWith$1, debounceTime, distinctUntilChanged, takeUntil as takeUntil$1, skip as skip$1, filter as filter$1, mergeMap, mapTo, mergeAll, switchMap as switchMap$1, take as take$1 } from 'rxjs/operators';
|
|
24
25
|
import { UniqueSelectionDispatcher, _VIEW_REPEATER_STRATEGY, _RecycleViewRepeaterStrategy, _DisposeViewRepeaterStrategy, DataSource } from '@angular/cdk/collections';
|
|
25
|
-
import
|
|
26
|
+
import * as i2$1 from '@ethlete/theming';
|
|
27
|
+
import { THEME_PROVIDER, ProvideThemeDirective } from '@ethlete/theming';
|
|
26
28
|
import { AutofillMonitor } from '@angular/cdk/text-field';
|
|
27
29
|
import { FormControl, NgControl, Validators, NG_VALUE_ACCESSOR } from '@angular/forms';
|
|
28
30
|
import { Title } from '@angular/platform-browser';
|
|
@@ -1027,27 +1029,11 @@ class ButtonDirective {
|
|
|
1027
1029
|
this._disabled$ = new BehaviorSubject(false);
|
|
1028
1030
|
this._type$ = new BehaviorSubject('button');
|
|
1029
1031
|
this._pressed$ = new BehaviorSubject(false);
|
|
1030
|
-
this.
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
}))),
|
|
1036
|
-
}, {
|
|
1037
|
-
attribute: ['tabindex'],
|
|
1038
|
-
observable: this.disabled$.pipe(map((disabled) => ({
|
|
1039
|
-
render: disabled && this.isAnchor,
|
|
1040
|
-
value: -1,
|
|
1041
|
-
}))),
|
|
1042
|
-
}, {
|
|
1043
|
-
attribute: ['type'],
|
|
1044
|
-
observable: this.type$.pipe(map((type) => ({
|
|
1045
|
-
render: this.isButton,
|
|
1046
|
-
value: type,
|
|
1047
|
-
}))),
|
|
1048
|
-
}, {
|
|
1049
|
-
attribute: ['aria-pressed'],
|
|
1050
|
-
observable: this._pressed$,
|
|
1032
|
+
this.hostAttributeBindings = signalHostAttributes({
|
|
1033
|
+
'disabled aria-disabled': toSignal(this.disabled$),
|
|
1034
|
+
'aria-pressed': toSignal(this._pressed$),
|
|
1035
|
+
...(this.isAnchor ? { tabindex: toSignal(this.disabled$.pipe(map((disabled) => (disabled ? -1 : 0)))) } : {}),
|
|
1036
|
+
...(this.isButton ? { type: toSignal(this.type$) } : {}),
|
|
1051
1037
|
});
|
|
1052
1038
|
}
|
|
1053
1039
|
get disabled() {
|
|
@@ -1075,10 +1061,10 @@ class ButtonDirective {
|
|
|
1075
1061
|
this._pressed$.next(booleanAttribute(value));
|
|
1076
1062
|
}
|
|
1077
1063
|
_removeDisabledBindings() {
|
|
1078
|
-
this.
|
|
1064
|
+
this.hostAttributeBindings.remove('disabled', 'aria-disabled');
|
|
1079
1065
|
}
|
|
1080
1066
|
_removeTabIndexBindings() {
|
|
1081
|
-
this.
|
|
1067
|
+
this.hostAttributeBindings.remove('tabindex');
|
|
1082
1068
|
}
|
|
1083
1069
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: ButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
1084
1070
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.5", type: ButtonDirective, isStandalone: true, inputs: { disabled: "disabled", type: "type", pressed: "pressed" }, exportAs: ["etButton"], ngImport: i0 }); }
|
|
@@ -1133,7 +1119,6 @@ class QueryButtonDirective {
|
|
|
1133
1119
|
classList.remove(CLASSES.success);
|
|
1134
1120
|
classList.remove(CLASSES.failure);
|
|
1135
1121
|
classList.remove(CLASSES.loading);
|
|
1136
|
-
this._bindings.reset();
|
|
1137
1122
|
const query = extractQuery(this._query$.value);
|
|
1138
1123
|
if (!query) {
|
|
1139
1124
|
return;
|
|
@@ -1184,15 +1169,9 @@ class QueryButtonDirective {
|
|
|
1184
1169
|
this._skipFailure = false;
|
|
1185
1170
|
this._skipLoading = false;
|
|
1186
1171
|
this._query$ = new BehaviorSubject(null);
|
|
1187
|
-
this.
|
|
1188
|
-
|
|
1189
|
-
|
|
1190
|
-
render: disabled || showFailure || showSuccess || isLoading,
|
|
1191
|
-
value: true,
|
|
1192
|
-
}))),
|
|
1193
|
-
}, {
|
|
1194
|
-
attribute: ['aria-live'],
|
|
1195
|
-
observable: combineLatest([
|
|
1172
|
+
this.hostAttributeBindings = signalHostAttributes({
|
|
1173
|
+
'disabled aria-disabled': toSignal(combineLatest([this._button.disabled$, this.showFailure$, this.showSuccess$, this.isLoading$]).pipe(map(([disabled, showFailure, showSuccess, isLoading]) => disabled || showFailure || showSuccess || isLoading))),
|
|
1174
|
+
'aria-live': toSignal(combineLatest([
|
|
1196
1175
|
this.query$.pipe(map((q) => extractQuery(q)), switchMap((q) => q?.state$ ?? of(null))),
|
|
1197
1176
|
this.didLoadOnce$,
|
|
1198
1177
|
]).pipe(map(([state, didLoadOnce]) => {
|
|
@@ -1200,11 +1179,8 @@ class QueryButtonDirective {
|
|
|
1200
1179
|
if (isQueryStateLoading(state) || isQueryStateSuccess(state) || isQueryStateFailure(state) || didLoadOnce) {
|
|
1201
1180
|
value = 'assertive';
|
|
1202
1181
|
}
|
|
1203
|
-
return
|
|
1204
|
-
|
|
1205
|
-
value,
|
|
1206
|
-
};
|
|
1207
|
-
})),
|
|
1182
|
+
return value;
|
|
1183
|
+
}))),
|
|
1208
1184
|
});
|
|
1209
1185
|
this._button._removeDisabledBindings();
|
|
1210
1186
|
}
|
|
@@ -4023,10 +3999,15 @@ class OverlayContainerComponent extends CdkDialogContainer {
|
|
|
4023
3999
|
super(inject(ElementRef), inject(FocusTrapFactory), inject(DOCUMENT), inject(OVERLAY_CONFIG), inject(InteractivityChecker), inject(NgZone), inject(OverlayRef$1), inject(FocusMonitor));
|
|
4024
4000
|
this._swipeHandlerService = inject(SwipeHandlerService);
|
|
4025
4001
|
this._dragToDismissStop$ = new Subject();
|
|
4002
|
+
this._themeProvider = inject(THEME_PROVIDER);
|
|
4003
|
+
this._parentThemeProvider = inject(THEME_PROVIDER, { optional: true, skipSelf: true });
|
|
4026
4004
|
this._animatedLifecycle = inject(ANIMATED_LIFECYCLE_TOKEN);
|
|
4027
4005
|
this.cdkOverlayRef = inject(OverlayRef$1);
|
|
4028
4006
|
this.overlayRef = null;
|
|
4029
4007
|
this.elementRef = this._elementRef;
|
|
4008
|
+
if (this._parentThemeProvider) {
|
|
4009
|
+
this._themeProvider.syncWithProvider(this._parentThemeProvider);
|
|
4010
|
+
}
|
|
4030
4011
|
}
|
|
4031
4012
|
_contentAttached() {
|
|
4032
4013
|
super._contentAttached();
|
|
@@ -4257,7 +4238,7 @@ class OverlayContainerComponent extends CdkDialogContainer {
|
|
|
4257
4238
|
}
|
|
4258
4239
|
}
|
|
4259
4240
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: OverlayContainerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
4260
|
-
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 }], 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 }); }
|
|
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 }); }
|
|
4261
4242
|
}
|
|
4262
4243
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: OverlayContainerComponent, decorators: [{
|
|
4263
4244
|
type: Component,
|
|
@@ -4271,7 +4252,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
|
|
|
4271
4252
|
'[attr.aria-label]': '_config.ariaLabel',
|
|
4272
4253
|
'[attr.aria-describedby]': '_config.ariaDescribedBy || null',
|
|
4273
4254
|
'[class.et-with-default-animation]': '!_config.customAnimated',
|
|
4274
|
-
}, standalone: true, imports: [PortalModule], hostDirectives: [AnimatedLifecycleDirective], 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"] }]
|
|
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"] }]
|
|
4275
4256
|
}], ctorParameters: function () { return []; } });
|
|
4276
4257
|
|
|
4277
4258
|
const createOverlayConfig = (globalConfig, localConfig) => ({
|
|
@@ -4999,6 +4980,7 @@ class ToggletipDirective {
|
|
|
4999
4980
|
this._destroy$ = createDestroy();
|
|
5000
4981
|
this._defaultConfig = inject(TOGGLETIP_CONFIG, { optional: true }) ?? createToggletipConfig();
|
|
5001
4982
|
this._animatedOverlay = inject(AnimatedOverlayDirective);
|
|
4983
|
+
this._themeProvider = inject(THEME_PROVIDER, { optional: true });
|
|
5002
4984
|
this._toggletip = null;
|
|
5003
4985
|
this._showToggletip = false;
|
|
5004
4986
|
this.toggletipClose = new EventEmitter();
|
|
@@ -5045,6 +5027,7 @@ class ToggletipDirective {
|
|
|
5045
5027
|
_mountToggletip() {
|
|
5046
5028
|
this._animatedOverlay.mount({
|
|
5047
5029
|
component: ToggletipComponent,
|
|
5030
|
+
themeProvider: this._themeProvider,
|
|
5048
5031
|
providers: [
|
|
5049
5032
|
{
|
|
5050
5033
|
provide: TOGGLETIP_CONFIG,
|
|
@@ -5102,6 +5085,7 @@ class ToggletipComponent {
|
|
|
5102
5085
|
this._config = inject(TOGGLETIP_CONFIG);
|
|
5103
5086
|
this.toggletipText = inject(TOGGLETIP_TEXT, { optional: true });
|
|
5104
5087
|
this.toggletipTemplate = inject(TOGGLETIP_TEMPLATE, { optional: true });
|
|
5088
|
+
this._themeProvider = inject(THEME_PROVIDER);
|
|
5105
5089
|
this.injector = inject(Injector);
|
|
5106
5090
|
this._cdr = inject(ChangeDetectorRef);
|
|
5107
5091
|
this._trigger = inject(TOGGLETIP_DIRECTIVE);
|
|
@@ -5119,17 +5103,20 @@ class ToggletipComponent {
|
|
|
5119
5103
|
_markForCheck() {
|
|
5120
5104
|
this._cdr.markForCheck();
|
|
5121
5105
|
}
|
|
5106
|
+
_setThemeFromProvider(provider) {
|
|
5107
|
+
this._themeProvider.syncWithProvider(provider);
|
|
5108
|
+
}
|
|
5122
5109
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: ToggletipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5123
5110
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: ToggletipComponent, isStandalone: true, selector: "et-toggletip", host: { properties: { "attr.aria-hidden": "this.attrAriaHidden", "class.et-with-default-animation": "this.usesDefaultAnimation", "class": "this.containerClass" }, classAttribute: "et-toggletip" }, providers: [
|
|
5124
5111
|
{
|
|
5125
5112
|
provide: TOGGLETIP,
|
|
5126
5113
|
useExisting: ToggletipComponent,
|
|
5127
5114
|
},
|
|
5128
|
-
], viewQueries: [{ propertyName: "_animatedLifecycle", first: true, predicate: ANIMATED_LIFECYCLE_TOKEN, descendants: true, static: true }], ngImport: i0, template: "<div class=\"et-toggletip-container\" etAnimatedLifecycle>\n <ng-container *ngIf=\"toggletipText\">\n {{ toggletipText }}\n </ng-container>\n\n <ng-container *ngIf=\"toggletipTemplate\">\n <ng-container *ngTemplateOutlet=\"toggletipTemplate; injector: injector\" />\n </ng-container>\n\n <div class=\"toggletip-arrow\" et-floating-arrow></div>\n</div>\n", styles: [":where(.et-toggletip){--background-color: hsl(0 0% 20%);--foreground-color: CanvasText;--border-radius: 4px;--padding-inline: 1.5ch;--padding-block: .75ch;--inline-max-size: 25ch;--arrow-size: 10px;--arrow-radius: 2px}.et-toggletip{transform:var(--et-floating-translate);will-change:transform}.et-toggletip[et-floating-placement^=top] .toggletip-arrow{bottom:-4px;left:0}.et-toggletip[et-floating-placement^=right] .toggletip-arrow{left:-4px;top:0}.et-toggletip[et-floating-placement^=bottom] .toggletip-arrow{top:-4px;left:0}.et-toggletip[et-floating-placement^=left] .toggletip-arrow{right:-4px;top:0}.et-toggletip-container{z-index:1;inline-size:max-content;max-inline-size:var(--inline-max-size);padding:var(--padding-block) var(--padding-inline);border-radius:var(--border-radius);background:var(--background-color);color:var(--foreground-color);will-change:transform}.et-toggletip-container:before{content:\"; Has toggletip: \";clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;width:1px;margin:-1px;overflow:hidden;padding:0;position:absolute}.toggletip-arrow{transform:var(--et-floating-arrow-translate);inline-size:var(--arrow-size);block-size:var(--arrow-size);position:absolute;z-index:1;will-change:transform}.toggletip-arrow:before{inline-size:var(--arrow-size);block-size:var(--arrow-size);border-radius:var(--arrow-radius);position:absolute;z-index:-1;transform:rotate(45deg);background:var(--background-color);top:0;left:0;content:\"\"}.et-toggletip.et-with-default-animation .et-toggletip-container.et-animation-enter-from,.et-toggletip.et-with-default-animation .et-toggletip-container.et-animation-leave-to{opacity:0}.et-toggletip.et-with-default-animation .et-toggletip-container.et-animation-enter-from .toggletip-arrow:before,.et-toggletip.et-with-default-animation .et-toggletip-container.et-animation-leave-to .toggletip-arrow:before{transform:rotate(45deg) scale(0)}.et-toggletip.et-with-default-animation .et-toggletip-container.et-animation-enter-active{transition:transform .2s var(--ease-out-5),opacity .2s var(--ease-out-5)}.et-toggletip.et-with-default-animation .et-toggletip-container.et-animation-enter-active .toggletip-arrow:before{transition:transform .2s var(--ease-out-5)}.et-toggletip.et-with-default-animation .et-toggletip-container.et-animation-leave-active{transition:transform .15s var(--ease-in-5),opacity .15s var(--ease-in-5)}.et-toggletip.et-with-default-animation .et-toggletip-container.et-animation-leave-active .toggletip-arrow:before{transition:transform .15s var(--ease-in-5)}.et-toggletip.et-with-default-animation[et-floating-placement^=top] .et-toggletip-container.et-animation-enter-from,.et-toggletip.et-with-default-animation[et-floating-placement^=top] .et-toggletip-container.et-animation-leave-to{transform:translateY(5px)}.et-toggletip.et-with-default-animation[et-floating-placement^=right] .et-toggletip-container.et-animation-enter-from,.et-toggletip.et-with-default-animation[et-floating-placement^=right] .et-toggletip-container.et-animation-leave-to{transform:translate(-5px)}.et-toggletip.et-with-default-animation[et-floating-placement^=bottom] .et-toggletip-container.et-animation-enter-from,.et-toggletip.et-with-default-animation[et-floating-placement^=bottom] .et-toggletip-container.et-animation-leave-to{transform:translateY(-5px)}.et-toggletip.et-with-default-animation[et-floating-placement^=left] .et-toggletip-container.et-animation-enter-from,.et-toggletip.et-with-default-animation[et-floating-placement^=left] .et-toggletip-container.et-animation-leave-to{transform:translate(5px)}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: AnimatedLifecycleDirective, selector: "[etAnimatedLifecycle]", exportAs: ["etAnimatedLifecycle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
5115
|
+
], viewQueries: [{ propertyName: "_animatedLifecycle", first: true, predicate: ANIMATED_LIFECYCLE_TOKEN, descendants: true, static: true }], hostDirectives: [{ directive: i2$1.ProvideThemeDirective }], ngImport: i0, template: "<div class=\"et-toggletip-container\" etAnimatedLifecycle>\n <ng-container *ngIf=\"toggletipText\">\n {{ toggletipText }}\n </ng-container>\n\n <ng-container *ngIf=\"toggletipTemplate\">\n <ng-container *ngTemplateOutlet=\"toggletipTemplate; injector: injector\" />\n </ng-container>\n\n <div class=\"toggletip-arrow\" et-floating-arrow></div>\n</div>\n", styles: [":where(.et-toggletip){--background-color: hsl(0 0% 20%);--foreground-color: CanvasText;--border-radius: 4px;--padding-inline: 1.5ch;--padding-block: .75ch;--inline-max-size: 25ch;--arrow-size: 10px;--arrow-radius: 2px}.et-toggletip{transform:var(--et-floating-translate);will-change:transform}.et-toggletip[et-floating-placement^=top] .toggletip-arrow{bottom:-4px;left:0}.et-toggletip[et-floating-placement^=right] .toggletip-arrow{left:-4px;top:0}.et-toggletip[et-floating-placement^=bottom] .toggletip-arrow{top:-4px;left:0}.et-toggletip[et-floating-placement^=left] .toggletip-arrow{right:-4px;top:0}.et-toggletip-container{z-index:1;inline-size:max-content;max-inline-size:var(--inline-max-size);padding:var(--padding-block) var(--padding-inline);border-radius:var(--border-radius);background:var(--background-color);color:var(--foreground-color);will-change:transform}.et-toggletip-container:before{content:\"; Has toggletip: \";clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;width:1px;margin:-1px;overflow:hidden;padding:0;position:absolute}.toggletip-arrow{transform:var(--et-floating-arrow-translate);inline-size:var(--arrow-size);block-size:var(--arrow-size);position:absolute;z-index:1;will-change:transform}.toggletip-arrow:before{inline-size:var(--arrow-size);block-size:var(--arrow-size);border-radius:var(--arrow-radius);position:absolute;z-index:-1;transform:rotate(45deg);background:var(--background-color);top:0;left:0;content:\"\"}.et-toggletip.et-with-default-animation .et-toggletip-container.et-animation-enter-from,.et-toggletip.et-with-default-animation .et-toggletip-container.et-animation-leave-to{opacity:0}.et-toggletip.et-with-default-animation .et-toggletip-container.et-animation-enter-from .toggletip-arrow:before,.et-toggletip.et-with-default-animation .et-toggletip-container.et-animation-leave-to .toggletip-arrow:before{transform:rotate(45deg) scale(0)}.et-toggletip.et-with-default-animation .et-toggletip-container.et-animation-enter-active{transition:transform .2s var(--ease-out-5),opacity .2s var(--ease-out-5)}.et-toggletip.et-with-default-animation .et-toggletip-container.et-animation-enter-active .toggletip-arrow:before{transition:transform .2s var(--ease-out-5)}.et-toggletip.et-with-default-animation .et-toggletip-container.et-animation-leave-active{transition:transform .15s var(--ease-in-5),opacity .15s var(--ease-in-5)}.et-toggletip.et-with-default-animation .et-toggletip-container.et-animation-leave-active .toggletip-arrow:before{transition:transform .15s var(--ease-in-5)}.et-toggletip.et-with-default-animation[et-floating-placement^=top] .et-toggletip-container.et-animation-enter-from,.et-toggletip.et-with-default-animation[et-floating-placement^=top] .et-toggletip-container.et-animation-leave-to{transform:translateY(5px)}.et-toggletip.et-with-default-animation[et-floating-placement^=right] .et-toggletip-container.et-animation-enter-from,.et-toggletip.et-with-default-animation[et-floating-placement^=right] .et-toggletip-container.et-animation-leave-to{transform:translate(-5px)}.et-toggletip.et-with-default-animation[et-floating-placement^=bottom] .et-toggletip-container.et-animation-enter-from,.et-toggletip.et-with-default-animation[et-floating-placement^=bottom] .et-toggletip-container.et-animation-leave-to{transform:translateY(-5px)}.et-toggletip.et-with-default-animation[et-floating-placement^=left] .et-toggletip-container.et-animation-enter-from,.et-toggletip.et-with-default-animation[et-floating-placement^=left] .et-toggletip-container.et-animation-leave-to{transform:translate(5px)}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: AnimatedLifecycleDirective, selector: "[etAnimatedLifecycle]", exportAs: ["etAnimatedLifecycle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
5129
5116
|
}
|
|
5130
5117
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: ToggletipComponent, decorators: [{
|
|
5131
5118
|
type: Component,
|
|
5132
|
-
args: [{ selector: 'et-toggletip', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [NgIf, NgTemplateOutlet, AnimatedLifecycleDirective], host: {
|
|
5119
|
+
args: [{ selector: 'et-toggletip', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [NgIf, NgTemplateOutlet, AnimatedLifecycleDirective], hostDirectives: [ProvideThemeDirective], host: {
|
|
5133
5120
|
class: 'et-toggletip',
|
|
5134
5121
|
}, providers: [
|
|
5135
5122
|
{
|
|
@@ -5198,6 +5185,7 @@ class TooltipDirective {
|
|
|
5198
5185
|
constructor() {
|
|
5199
5186
|
this._defaultConfig = inject(TOOLTIP_CONFIG, { optional: true }) ?? createTooltipConfig();
|
|
5200
5187
|
this._animatedOverlay = inject(AnimatedOverlayDirective);
|
|
5188
|
+
this._themeProvider = inject(THEME_PROVIDER, { optional: true });
|
|
5201
5189
|
this._tooltip = null;
|
|
5202
5190
|
this._tooltipAriaDescription = null;
|
|
5203
5191
|
this._lastTooltipText = null;
|
|
@@ -5276,6 +5264,7 @@ class TooltipDirective {
|
|
|
5276
5264
|
_mountTooltip() {
|
|
5277
5265
|
this._animatedOverlay.mount({
|
|
5278
5266
|
component: TooltipComponent,
|
|
5267
|
+
themeProvider: this._themeProvider,
|
|
5279
5268
|
providers: [
|
|
5280
5269
|
{
|
|
5281
5270
|
provide: TOOLTIP_CONFIG,
|
|
@@ -5336,6 +5325,7 @@ class TooltipComponent {
|
|
|
5336
5325
|
this._config = inject(TOOLTIP_CONFIG);
|
|
5337
5326
|
this.tooltipText = inject(TOOLTIP_TEXT, { optional: true });
|
|
5338
5327
|
this.tooltipTemplate = inject(TOOLTIP_TEMPLATE, { optional: true });
|
|
5328
|
+
this._themeProvider = inject(THEME_PROVIDER);
|
|
5339
5329
|
this.injector = inject(Injector);
|
|
5340
5330
|
this._cdr = inject(ChangeDetectorRef);
|
|
5341
5331
|
this._trigger = inject(TOOLTIP_DIRECTIVE);
|
|
@@ -5353,17 +5343,20 @@ class TooltipComponent {
|
|
|
5353
5343
|
_markForCheck() {
|
|
5354
5344
|
this._cdr.markForCheck();
|
|
5355
5345
|
}
|
|
5346
|
+
_setThemeFromProvider(provider) {
|
|
5347
|
+
this._themeProvider.syncWithProvider(provider);
|
|
5348
|
+
}
|
|
5356
5349
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TooltipComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
5357
5350
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: TooltipComponent, isStandalone: true, selector: "et-tooltip", host: { properties: { "attr.aria-hidden": "this.attrAriaHidden", "class.et-with-default-animation": "this.usesDefaultAnimation", "class": "this.containerClass" }, classAttribute: "et-tooltip" }, providers: [
|
|
5358
5351
|
{
|
|
5359
5352
|
provide: TOOLTIP,
|
|
5360
5353
|
useExisting: TooltipComponent,
|
|
5361
5354
|
},
|
|
5362
|
-
], viewQueries: [{ propertyName: "_animatedLifecycle", first: true, predicate: ANIMATED_LIFECYCLE_TOKEN, descendants: true, static: true }], ngImport: i0, template: "<div class=\"et-tooltip-container\" etAnimatedLifecycle>\n <ng-container *ngIf=\"tooltipText\">\n {{ tooltipText }}\n </ng-container>\n\n <ng-container *ngIf=\"tooltipTemplate\">\n <ng-container *ngTemplateOutlet=\"tooltipTemplate; injector: injector\" />\n </ng-container>\n\n <div class=\"tooltip-arrow\" et-floating-arrow></div>\n</div>\n", styles: [":where(.et-tooltip){--background-color: hsl(0 0% 20%);--foreground-color: CanvasText;--border-radius: 4px;--padding-inline: 1.5ch;--padding-block: .75ch;--inline-max-size: 25ch;--arrow-size: 10px;--arrow-radius: 2px}.et-tooltip{pointer-events:none;-webkit-user-select:none;user-select:none;transform:var(--et-floating-translate);will-change:transform}.et-tooltip[et-floating-placement^=top] .tooltip-arrow{bottom:-4px;left:0}.et-tooltip[et-floating-placement^=right] .tooltip-arrow{left:-4px;top:0}.et-tooltip[et-floating-placement^=bottom] .tooltip-arrow{top:-4px;left:0}.et-tooltip[et-floating-placement^=left] .tooltip-arrow{right:-4px;top:0}.et-tooltip-container{z-index:1;inline-size:max-content;max-inline-size:var(--inline-max-size);padding:var(--padding-block) var(--padding-inline);border-radius:var(--border-radius);background:var(--background-color);color:var(--foreground-color);will-change:transform}.et-tooltip-container:before{content:\"; Has tooltip: \";clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;width:1px;margin:-1px;overflow:hidden;padding:0;position:absolute}.tooltip-arrow{inline-size:var(--arrow-size);block-size:var(--arrow-size);position:absolute;z-index:1;transform:var(--et-floating-arrow-translate);will-change:transform}.tooltip-arrow:before{inline-size:var(--arrow-size);block-size:var(--arrow-size);border-radius:var(--arrow-radius);position:absolute;z-index:-1;transform:rotate(45deg);background:var(--background-color);top:0;left:0;content:\"\"}.et-tooltip.et-with-default-animation .et-tooltip-container.et-animation-enter-from,.et-tooltip.et-with-default-animation .et-tooltip-container.et-animation-leave-to{opacity:0}.et-tooltip.et-with-default-animation .et-tooltip-container.et-animation-enter-active{transition:transform .3s var(--ease-out-5),opacity .3s var(--ease-out-5)}.et-tooltip.et-with-default-animation .et-tooltip-container.et-animation-leave-active{transition:transform .15s var(--ease-in-5),opacity .15s var(--ease-in-5)}.et-tooltip.et-with-default-animation[et-floating-placement^=top] .et-tooltip-container.et-animation-enter-from,.et-tooltip.et-with-default-animation[et-floating-placement^=top] .et-tooltip-container.et-animation-leave-to{transform:translateY(5px)}.et-tooltip.et-with-default-animation[et-floating-placement^=right] .et-tooltip-container.et-animation-enter-from,.et-tooltip.et-with-default-animation[et-floating-placement^=right] .et-tooltip-container.et-animation-leave-to{transform:translate(-5px)}.et-tooltip.et-with-default-animation[et-floating-placement^=bottom] .et-tooltip-container.et-animation-enter-from,.et-tooltip.et-with-default-animation[et-floating-placement^=bottom] .et-tooltip-container.et-animation-leave-to{transform:translateY(-5px)}.et-tooltip.et-with-default-animation[et-floating-placement^=left] .et-tooltip-container.et-animation-enter-from,.et-tooltip.et-with-default-animation[et-floating-placement^=left] .et-tooltip-container.et-animation-leave-to{transform:translate(5px)}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: AnimatedLifecycleDirective, selector: "[etAnimatedLifecycle]", exportAs: ["etAnimatedLifecycle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
5355
|
+
], viewQueries: [{ propertyName: "_animatedLifecycle", first: true, predicate: ANIMATED_LIFECYCLE_TOKEN, descendants: true, static: true }], hostDirectives: [{ directive: i2$1.ProvideThemeDirective }], ngImport: i0, template: "<div class=\"et-tooltip-container\" etAnimatedLifecycle>\n <ng-container *ngIf=\"tooltipText\">\n {{ tooltipText }}\n </ng-container>\n\n <ng-container *ngIf=\"tooltipTemplate\">\n <ng-container *ngTemplateOutlet=\"tooltipTemplate; injector: injector\" />\n </ng-container>\n\n <div class=\"tooltip-arrow\" et-floating-arrow></div>\n</div>\n", styles: [":where(.et-tooltip){--background-color: hsl(0 0% 20%);--foreground-color: CanvasText;--border-radius: 4px;--padding-inline: 1.5ch;--padding-block: .75ch;--inline-max-size: 25ch;--arrow-size: 10px;--arrow-radius: 2px}.et-tooltip{pointer-events:none;-webkit-user-select:none;user-select:none;transform:var(--et-floating-translate);will-change:transform}.et-tooltip[et-floating-placement^=top] .tooltip-arrow{bottom:-4px;left:0}.et-tooltip[et-floating-placement^=right] .tooltip-arrow{left:-4px;top:0}.et-tooltip[et-floating-placement^=bottom] .tooltip-arrow{top:-4px;left:0}.et-tooltip[et-floating-placement^=left] .tooltip-arrow{right:-4px;top:0}.et-tooltip-container{z-index:1;inline-size:max-content;max-inline-size:var(--inline-max-size);padding:var(--padding-block) var(--padding-inline);border-radius:var(--border-radius);background:var(--background-color);color:var(--foreground-color);will-change:transform}.et-tooltip-container:before{content:\"; Has tooltip: \";clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;width:1px;margin:-1px;overflow:hidden;padding:0;position:absolute}.tooltip-arrow{inline-size:var(--arrow-size);block-size:var(--arrow-size);position:absolute;z-index:1;transform:var(--et-floating-arrow-translate);will-change:transform}.tooltip-arrow:before{inline-size:var(--arrow-size);block-size:var(--arrow-size);border-radius:var(--arrow-radius);position:absolute;z-index:-1;transform:rotate(45deg);background:var(--background-color);top:0;left:0;content:\"\"}.et-tooltip.et-with-default-animation .et-tooltip-container.et-animation-enter-from,.et-tooltip.et-with-default-animation .et-tooltip-container.et-animation-leave-to{opacity:0}.et-tooltip.et-with-default-animation .et-tooltip-container.et-animation-enter-active{transition:transform .3s var(--ease-out-5),opacity .3s var(--ease-out-5)}.et-tooltip.et-with-default-animation .et-tooltip-container.et-animation-leave-active{transition:transform .15s var(--ease-in-5),opacity .15s var(--ease-in-5)}.et-tooltip.et-with-default-animation[et-floating-placement^=top] .et-tooltip-container.et-animation-enter-from,.et-tooltip.et-with-default-animation[et-floating-placement^=top] .et-tooltip-container.et-animation-leave-to{transform:translateY(5px)}.et-tooltip.et-with-default-animation[et-floating-placement^=right] .et-tooltip-container.et-animation-enter-from,.et-tooltip.et-with-default-animation[et-floating-placement^=right] .et-tooltip-container.et-animation-leave-to{transform:translate(-5px)}.et-tooltip.et-with-default-animation[et-floating-placement^=bottom] .et-tooltip-container.et-animation-enter-from,.et-tooltip.et-with-default-animation[et-floating-placement^=bottom] .et-tooltip-container.et-animation-leave-to{transform:translateY(-5px)}.et-tooltip.et-with-default-animation[et-floating-placement^=left] .et-tooltip-container.et-animation-enter-from,.et-tooltip.et-with-default-animation[et-floating-placement^=left] .et-tooltip-container.et-animation-leave-to{transform:translate(5px)}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: AnimatedLifecycleDirective, selector: "[etAnimatedLifecycle]", exportAs: ["etAnimatedLifecycle"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None }); }
|
|
5363
5356
|
}
|
|
5364
5357
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TooltipComponent, decorators: [{
|
|
5365
5358
|
type: Component,
|
|
5366
|
-
args: [{ selector: 'et-tooltip', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [NgIf, NgTemplateOutlet, AnimatedLifecycleDirective], host: {
|
|
5359
|
+
args: [{ selector: 'et-tooltip', standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, imports: [NgIf, NgTemplateOutlet, AnimatedLifecycleDirective], hostDirectives: [ProvideThemeDirective], host: {
|
|
5367
5360
|
class: 'et-tooltip',
|
|
5368
5361
|
}, providers: [
|
|
5369
5362
|
{
|
|
@@ -5854,8 +5847,25 @@ class InputStateService {
|
|
|
5854
5847
|
this.valueIsTruthy = toSignal(this.valueIsTruthy$, { requireSync: true });
|
|
5855
5848
|
this.valueIsFalsy$ = this.value$.pipe(map((value) => !value));
|
|
5856
5849
|
this.valueIsFalsy = toSignal(this.valueIsFalsy$, { requireSync: true });
|
|
5857
|
-
|
|
5858
|
-
|
|
5850
|
+
/**
|
|
5851
|
+
* Selects might have a option that is "null".
|
|
5852
|
+
* This helper can be used to enhance the detection of empty values.
|
|
5853
|
+
* The input is empty if the helper returns a falsy value and the value itself is falsy or an empty array.
|
|
5854
|
+
*/
|
|
5855
|
+
this.isEmptyHelper$ = new BehaviorSubject(undefined);
|
|
5856
|
+
this.isEmptyHelper = toSignal(this.isEmptyHelper$, { requireSync: true });
|
|
5857
|
+
this.valueIsEmpty$ = combineLatest([
|
|
5858
|
+
this.value$,
|
|
5859
|
+
this.autofilled$,
|
|
5860
|
+
this.isEmptyHelper$.pipe(switchMap((isEmptyHelper) => (isEmptyHelper instanceof Observable ? isEmptyHelper : of(isEmptyHelper)))),
|
|
5861
|
+
]).pipe(map(([value, autofilled, isEmptyHelper]) => {
|
|
5862
|
+
const defaultIsEmpty = (value === null || value === undefined || value === '' || (Array.isArray(value) && !value.length)) &&
|
|
5863
|
+
!autofilled;
|
|
5864
|
+
if (isEmptyHelper !== undefined) {
|
|
5865
|
+
return !isEmptyHelper && defaultIsEmpty;
|
|
5866
|
+
}
|
|
5867
|
+
return defaultIsEmpty;
|
|
5868
|
+
}));
|
|
5859
5869
|
this.valueIsEmpty = toSignal(this.valueIsEmpty$, { requireSync: true });
|
|
5860
5870
|
this.errors$ = new BehaviorSubject(null);
|
|
5861
5871
|
this.errors = toSignal(this.errors$, { requireSync: true });
|
|
@@ -6335,6 +6345,9 @@ class InputDirective {
|
|
|
6335
6345
|
}
|
|
6336
6346
|
this._inputStateService.shouldDisplayError$.next(value);
|
|
6337
6347
|
}
|
|
6348
|
+
_setEmptyHelper(value) {
|
|
6349
|
+
this._inputStateService.isEmptyHelper$.next(value);
|
|
6350
|
+
}
|
|
6338
6351
|
_detectControlRequiredValidationChanges() {
|
|
6339
6352
|
const hasRequired = this.control.hasValidator(Validators.required) ?? false;
|
|
6340
6353
|
const hasRequiredTrue = this.control.hasValidator(Validators.requiredTrue) ?? false;
|
|
@@ -6618,27 +6631,14 @@ const WRITEABLE_INPUT_VALUE_ACCESSOR = {
|
|
|
6618
6631
|
class WriteableInputDirective {
|
|
6619
6632
|
constructor() {
|
|
6620
6633
|
this._inputStateService = inject(InputStateService);
|
|
6621
|
-
this.
|
|
6622
|
-
|
|
6623
|
-
|
|
6624
|
-
|
|
6625
|
-
|
|
6626
|
-
|
|
6627
|
-
|
|
6628
|
-
|
|
6629
|
-
observable: this._inputStateService.valueIsTruthy$,
|
|
6630
|
-
}, {
|
|
6631
|
-
attribute: 'class.et-value-is-falsy',
|
|
6632
|
-
observable: this._inputStateService.valueIsFalsy$,
|
|
6633
|
-
}, {
|
|
6634
|
-
attribute: 'class.et-empty',
|
|
6635
|
-
observable: this._inputStateService.valueIsEmpty$,
|
|
6636
|
-
}, {
|
|
6637
|
-
attribute: 'class.et-should-display-error',
|
|
6638
|
-
observable: this._inputStateService.shouldDisplayError$,
|
|
6639
|
-
}, {
|
|
6640
|
-
attribute: 'class.et-autofilled',
|
|
6641
|
-
observable: this._inputStateService.autofilled$,
|
|
6634
|
+
this.hostClassBindings = signalHostClasses({
|
|
6635
|
+
'et-required': this._inputStateService.required,
|
|
6636
|
+
'et-disabled': this._inputStateService.disabled,
|
|
6637
|
+
'et-value-is-truthy': this._inputStateService.valueIsTruthy,
|
|
6638
|
+
'et-value-is-falsy': this._inputStateService.valueIsFalsy,
|
|
6639
|
+
'et-empty': this._inputStateService.valueIsEmpty,
|
|
6640
|
+
'et-should-display-error': this._inputStateService.shouldDisplayError,
|
|
6641
|
+
'et-autofilled': this._inputStateService.autofilled,
|
|
6642
6642
|
});
|
|
6643
6643
|
}
|
|
6644
6644
|
writeValue(value) {
|
|
@@ -6682,12 +6682,9 @@ class ErrorComponent {
|
|
|
6682
6682
|
this.errorText$ = new BehaviorSubject(null);
|
|
6683
6683
|
this.id = `et-error-${_uniqueIdCounter++}`;
|
|
6684
6684
|
this._errors = null;
|
|
6685
|
-
this.
|
|
6686
|
-
|
|
6687
|
-
|
|
6688
|
-
}, {
|
|
6689
|
-
attribute: 'class.cdk-visually-hidden',
|
|
6690
|
-
observable: this._dynamicFormGroupOrField.hideErrorMessage$,
|
|
6685
|
+
this.hostClassBindings = signalHostClasses({
|
|
6686
|
+
'et-error--has-errors': toSignal(this.errorText$),
|
|
6687
|
+
'cdk-visually-hidden': toSignal(this._dynamicFormGroupOrField.hideErrorMessage$),
|
|
6691
6688
|
});
|
|
6692
6689
|
}
|
|
6693
6690
|
get errors() {
|
|
@@ -6726,19 +6723,21 @@ const CHECKBOX_FIELD_TOKEN = new InjectionToken('ET_CHECKBOX_FIELD_DIRECTIVE_TOK
|
|
|
6726
6723
|
class CheckboxFieldDirective {
|
|
6727
6724
|
constructor() {
|
|
6728
6725
|
this.inputState = inject(InputStateService);
|
|
6729
|
-
this.
|
|
6730
|
-
|
|
6731
|
-
|
|
6732
|
-
|
|
6733
|
-
|
|
6734
|
-
|
|
6735
|
-
|
|
6736
|
-
|
|
6737
|
-
observable: this._checkbox.changes.pipe(startWith(this._checkbox)).pipe(switchMap((checkboxes) => combineLatest(checkboxes.filter((cb) => !!cb).map((checkbox) => checkbox.indeterminate$))), map((checked) => checked.some((value) => value))),
|
|
6726
|
+
this._checkbox$ = new BehaviorSubject(null);
|
|
6727
|
+
this.hostClassBindings = signalHostClasses({
|
|
6728
|
+
'et-checkbox-field--indeterminate': toSignal(this._checkbox$.pipe(switchQueryListChanges(), switchMap((checkboxes) => {
|
|
6729
|
+
if (!checkboxes?.length) {
|
|
6730
|
+
return of(null);
|
|
6731
|
+
}
|
|
6732
|
+
return combineLatest(checkboxes.map((checkbox) => checkbox.indeterminate$)).pipe(map((indeterminateStates) => indeterminateStates.some((isIndeterminate) => isIndeterminate)));
|
|
6733
|
+
}))),
|
|
6738
6734
|
});
|
|
6739
6735
|
}
|
|
6736
|
+
set checkbox(checkbox) {
|
|
6737
|
+
this._checkbox$.next(checkbox);
|
|
6738
|
+
}
|
|
6740
6739
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: CheckboxFieldDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
6741
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.5", type: CheckboxFieldDirective, isStandalone: true, providers: [{ provide: CHECKBOX_FIELD_TOKEN, useExisting: CheckboxFieldDirective }], queries: [{ propertyName: "
|
|
6740
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.5", type: CheckboxFieldDirective, isStandalone: true, providers: [{ provide: CHECKBOX_FIELD_TOKEN, useExisting: CheckboxFieldDirective }], queries: [{ propertyName: "checkbox", predicate: i0.forwardRef(function () { return CHECKBOX_TOKEN; }), descendants: true }], exportAs: ["etCheckboxGroup"], ngImport: i0 }); }
|
|
6742
6741
|
}
|
|
6743
6742
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: CheckboxFieldDirective, decorators: [{
|
|
6744
6743
|
type: Directive,
|
|
@@ -6747,7 +6746,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
|
|
|
6747
6746
|
providers: [{ provide: CHECKBOX_FIELD_TOKEN, useExisting: CheckboxFieldDirective }],
|
|
6748
6747
|
exportAs: 'etCheckboxGroup',
|
|
6749
6748
|
}]
|
|
6750
|
-
}], propDecorators: {
|
|
6749
|
+
}], propDecorators: { checkbox: [{
|
|
6751
6750
|
type: ContentChildren,
|
|
6752
6751
|
args: [forwardRef(() => CHECKBOX_TOKEN), { descendants: true }]
|
|
6753
6752
|
}] } });
|
|
@@ -6758,15 +6757,10 @@ class CheckboxDirective {
|
|
|
6758
6757
|
this.input = inject(INPUT_TOKEN);
|
|
6759
6758
|
this.checked$ = this.input.value$.pipe(map((value) => !!value));
|
|
6760
6759
|
this.indeterminate$ = new BehaviorSubject(false);
|
|
6761
|
-
this.
|
|
6762
|
-
|
|
6763
|
-
|
|
6764
|
-
|
|
6765
|
-
attribute: ['class.et-checkbox--disabled'],
|
|
6766
|
-
observable: this.input.disabled$,
|
|
6767
|
-
}, {
|
|
6768
|
-
attribute: ['class.et-checkbox--indeterminate'],
|
|
6769
|
-
observable: combineLatest([this.checked$, this.indeterminate$]).pipe(map(([checked, indeterminate]) => !checked && indeterminate)),
|
|
6760
|
+
this.hostClassBindings = signalHostClasses({
|
|
6761
|
+
'et-checkbox--checked': toSignal(this.checked$),
|
|
6762
|
+
'et-checkbox--disabled': toSignal(this.input.disabled$),
|
|
6763
|
+
'et-checkbox--indeterminate': toSignal(combineLatest([this.checked$, this.indeterminate$]).pipe(map(([checked, indeterminate]) => !checked && indeterminate))),
|
|
6770
6764
|
});
|
|
6771
6765
|
}
|
|
6772
6766
|
_onInputInteraction(event) {
|
|
@@ -6874,16 +6868,8 @@ class CheckboxGroupControlDirective {
|
|
|
6874
6868
|
this.checkbox = inject(CHECKBOX_TOKEN);
|
|
6875
6869
|
this.input = inject(INPUT_TOKEN);
|
|
6876
6870
|
this.group = inject(CHECKBOX_GROUP_TOKEN);
|
|
6877
|
-
this.
|
|
6878
|
-
|
|
6879
|
-
ngAfterContentInit() {
|
|
6880
|
-
this._bindings.push({
|
|
6881
|
-
attribute: ['aria-controls'],
|
|
6882
|
-
elementRef: this.input.nativeInputRef?.element,
|
|
6883
|
-
observable: this.group.checkboxesWithoutGroupCtrl$.pipe(map((checkboxes) => ({
|
|
6884
|
-
render: true,
|
|
6885
|
-
value: checkboxes.map((checkbox) => checkbox.input.id).join(' '),
|
|
6886
|
-
}))) ?? of(false),
|
|
6871
|
+
this.inputAttributeBindings = signalAttributes(this.input.nativeInputRef$.pipe(map((el) => el?.element)), {
|
|
6872
|
+
'aria-controls': toSignal(this.group.checkboxesWithoutGroupCtrl$.pipe(map((checkboxes) => checkboxes.map((checkbox) => checkbox.input.id).join(' ')))),
|
|
6887
6873
|
});
|
|
6888
6874
|
}
|
|
6889
6875
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: CheckboxGroupControlDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
@@ -6947,12 +6933,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
|
|
|
6947
6933
|
class DecoratedFormFieldBase {
|
|
6948
6934
|
constructor() {
|
|
6949
6935
|
this._formFieldStateService = inject(FormFieldStateService);
|
|
6950
|
-
this.
|
|
6951
|
-
|
|
6952
|
-
|
|
6953
|
-
}, {
|
|
6954
|
-
attribute: 'class.et-form-field--has-suffix',
|
|
6955
|
-
observable: this._formFieldStateService.hasSuffix$,
|
|
6936
|
+
this.hostClassBindings = signalHostClasses({
|
|
6937
|
+
'et-form-field--has-prefix': this._formFieldStateService.hasPrefix,
|
|
6938
|
+
'et-form-field--has-suffix': this._formFieldStateService.hasSuffix,
|
|
6956
6939
|
});
|
|
6957
6940
|
}
|
|
6958
6941
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: DecoratedFormFieldBase, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
@@ -6980,35 +6963,37 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
|
|
|
6980
6963
|
}] } });
|
|
6981
6964
|
|
|
6982
6965
|
class DecoratedInputBase extends InputBase {
|
|
6966
|
+
set inputPrefix(inputPrefix) {
|
|
6967
|
+
this.inputPrefix$.next(inputPrefix);
|
|
6968
|
+
}
|
|
6969
|
+
set inputSuffix(inputSuffix) {
|
|
6970
|
+
this.inputSuffix$.next(inputSuffix);
|
|
6971
|
+
}
|
|
6983
6972
|
constructor() {
|
|
6984
|
-
super(
|
|
6973
|
+
super();
|
|
6985
6974
|
this._formFieldStateService = inject(FormFieldStateService);
|
|
6986
6975
|
this._destroy$ = createDestroy();
|
|
6987
|
-
this.
|
|
6988
|
-
|
|
6989
|
-
|
|
6990
|
-
|
|
6991
|
-
|
|
6992
|
-
|
|
6976
|
+
this.inputPrefix$ = new BehaviorSubject(null);
|
|
6977
|
+
this.inputSuffix$ = new BehaviorSubject(null);
|
|
6978
|
+
this.hasPrefix$ = this.inputPrefix$.pipe(switchQueryListChanges(), map((list) => !!list && list?.length > 0));
|
|
6979
|
+
this.hasSuffix$ = this.inputSuffix$.pipe(switchQueryListChanges(), map((list) => !!list && list?.length > 0));
|
|
6980
|
+
this.hostClassBindings = signalHostClasses({
|
|
6981
|
+
'et-input--has-prefix': toSignal(this.hasPrefix$),
|
|
6982
|
+
'et-input--has-suffix': toSignal(this.hasSuffix$),
|
|
6993
6983
|
});
|
|
6984
|
+
this.hasPrefix$
|
|
6985
|
+
.pipe(takeUntilDestroyed(), tap((hasPrefix) => this._formFieldStateService.hasPrefix$.next(hasPrefix)))
|
|
6986
|
+
.subscribe();
|
|
6987
|
+
this.hasSuffix$
|
|
6988
|
+
.pipe(takeUntilDestroyed(), tap((hasSuffix) => this._formFieldStateService.hasSuffix$.next(hasSuffix)))
|
|
6989
|
+
.subscribe();
|
|
6994
6990
|
}
|
|
6995
|
-
|
|
6996
|
-
if (!this.inputPrefix || !this.inputSuffix) {
|
|
6997
|
-
return;
|
|
6998
|
-
}
|
|
6999
|
-
this.inputPrefix.changes
|
|
7000
|
-
.pipe(takeUntil(this._destroy$), startWith(this.inputPrefix), map((list) => list.length > 0))
|
|
7001
|
-
.subscribe(this._formFieldStateService.hasPrefix$);
|
|
7002
|
-
this.inputSuffix.changes
|
|
7003
|
-
.pipe(takeUntil(this._destroy$), startWith(this.inputSuffix), map((list) => list.length > 0))
|
|
7004
|
-
.subscribe(this._formFieldStateService.hasSuffix$);
|
|
7005
|
-
}
|
|
7006
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: DecoratedInputBase, deps: null, target: i0.ɵɵFactoryTarget.Directive }); }
|
|
6991
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: DecoratedInputBase, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
7007
6992
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.5", type: DecoratedInputBase, queries: [{ propertyName: "inputPrefix", predicate: INPUT_PREFIX_TOKEN }, { propertyName: "inputSuffix", predicate: INPUT_SUFFIX_TOKEN }], usesInheritance: true, ngImport: i0 }); }
|
|
7008
6993
|
}
|
|
7009
6994
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: DecoratedInputBase, decorators: [{
|
|
7010
6995
|
type: Directive
|
|
7011
|
-
}], propDecorators: { inputPrefix: [{
|
|
6996
|
+
}], ctorParameters: function () { return []; }, propDecorators: { inputPrefix: [{
|
|
7012
6997
|
type: ContentChildren,
|
|
7013
6998
|
args: [INPUT_PREFIX_TOKEN]
|
|
7014
6999
|
}], inputSuffix: [{
|
|
@@ -7639,12 +7624,9 @@ class RadioDirective {
|
|
|
7639
7624
|
this._disabled$ = new BehaviorSubject(false);
|
|
7640
7625
|
this.checked$ = combineLatest([this.input.value$, this._value$]).pipe(map(([inputValue, value]) => inputValue === value));
|
|
7641
7626
|
this.disabled$ = combineLatest([this.input.disabled$, this._disabled$]).pipe(map(([inputDisabled, disabled]) => inputDisabled || disabled));
|
|
7642
|
-
this.
|
|
7643
|
-
|
|
7644
|
-
|
|
7645
|
-
}, {
|
|
7646
|
-
attribute: ['class.et-radio--disabled'],
|
|
7647
|
-
observable: this.disabled$,
|
|
7627
|
+
this.hostClassBindings = signalHostClasses({
|
|
7628
|
+
'et-radio--checked': toSignal(this.disabled$),
|
|
7629
|
+
'et-radio--disabled': toSignal(this.disabled$),
|
|
7648
7630
|
});
|
|
7649
7631
|
}
|
|
7650
7632
|
get value() {
|
|
@@ -7692,23 +7674,18 @@ const RADIO_FIELD_TOKEN = new InjectionToken('ET_RADIO_FIELD_DIRECTIVE_TOKEN');
|
|
|
7692
7674
|
class RadioFieldDirective {
|
|
7693
7675
|
constructor() {
|
|
7694
7676
|
this.inputState = inject(InputStateService);
|
|
7695
|
-
this.
|
|
7696
|
-
|
|
7697
|
-
|
|
7698
|
-
|
|
7699
|
-
|
|
7700
|
-
}
|
|
7701
|
-
this._bindings.push({
|
|
7702
|
-
attribute: 'class.et-radio-field--checked',
|
|
7703
|
-
observable: this._radio.changes.pipe(startWith(this._radio)).pipe(switchMap((radios) => combineLatest(radios.filter((radio) => !!radio).map((radio) => radio.checked$))), map((checked) => checked.some((value) => value))),
|
|
7704
|
-
});
|
|
7705
|
-
this._bindings.push({
|
|
7706
|
-
attribute: 'class.et-radio-field--disabled',
|
|
7707
|
-
observable: this._radio.changes.pipe(startWith(this._radio)).pipe(switchMap((radios) => combineLatest(radios.filter((radio) => !!radio).map((radio) => radio.disabled$))), map((disabled) => disabled.some((value) => value))),
|
|
7677
|
+
this._radio$ = new BehaviorSubject(null);
|
|
7678
|
+
this.radioQueryList$ = this._radio$.pipe(switchQueryListChanges());
|
|
7679
|
+
this.hostClassBindings = signalHostClasses({
|
|
7680
|
+
'et-radio-field--checked': toSignal(this.radioQueryList$.pipe(switchMap((radios) => (radios?.length ? combineLatest(radios.map((radio) => radio.disabled$)) : of([]))), map((checked) => checked.some((value) => value)))),
|
|
7681
|
+
'et-radio-field--disabled': toSignal(this.radioQueryList$.pipe(switchMap((radios) => (radios?.length ? combineLatest(radios.map((radio) => radio.disabled$)) : of([]))), map((disabled) => disabled.some((value) => value)))),
|
|
7708
7682
|
});
|
|
7709
7683
|
}
|
|
7684
|
+
set radio(radio) {
|
|
7685
|
+
this._radio$.next(radio);
|
|
7686
|
+
}
|
|
7710
7687
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: RadioFieldDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
7711
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.5", type: RadioFieldDirective, isStandalone: true, providers: [{ provide: RADIO_FIELD_TOKEN, useExisting: RadioFieldDirective }], queries: [{ propertyName: "
|
|
7688
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.5", type: RadioFieldDirective, isStandalone: true, providers: [{ provide: RADIO_FIELD_TOKEN, useExisting: RadioFieldDirective }], queries: [{ propertyName: "radio", predicate: i0.forwardRef(function () { return RADIO_TOKEN; }), descendants: true }], exportAs: ["etRadioField"], ngImport: i0 }); }
|
|
7712
7689
|
}
|
|
7713
7690
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: RadioFieldDirective, decorators: [{
|
|
7714
7691
|
type: Directive,
|
|
@@ -7717,7 +7694,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
|
|
|
7717
7694
|
providers: [{ provide: RADIO_FIELD_TOKEN, useExisting: RadioFieldDirective }],
|
|
7718
7695
|
exportAs: 'etRadioField',
|
|
7719
7696
|
}]
|
|
7720
|
-
}], propDecorators: {
|
|
7697
|
+
}], propDecorators: { radio: [{
|
|
7721
7698
|
type: ContentChildren,
|
|
7722
7699
|
args: [forwardRef(() => RADIO_TOKEN), { descendants: true }]
|
|
7723
7700
|
}] } });
|
|
@@ -7728,14 +7705,8 @@ class RadioGroupDirective {
|
|
|
7728
7705
|
constructor() {
|
|
7729
7706
|
this._formGroupStateService = inject(FormGroupStateService);
|
|
7730
7707
|
this.name = `et-radio-group-${++nextUniqueId$3}`;
|
|
7731
|
-
this.
|
|
7732
|
-
|
|
7733
|
-
observable: this._formGroupStateService.describedBy$.pipe(map((describedBy) => {
|
|
7734
|
-
return {
|
|
7735
|
-
render: !!describedBy,
|
|
7736
|
-
value: `${describedBy}`,
|
|
7737
|
-
};
|
|
7738
|
-
})),
|
|
7708
|
+
this.hostAttributeBindings = signalHostAttributes({
|
|
7709
|
+
'aria-labelledby': toSignal(this._formGroupStateService.describedBy$),
|
|
7739
7710
|
});
|
|
7740
7711
|
}
|
|
7741
7712
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: RadioGroupDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
@@ -7836,12 +7807,9 @@ class SegmentedButtonDirective {
|
|
|
7836
7807
|
this._disabled$ = new BehaviorSubject(false);
|
|
7837
7808
|
this.checked$ = combineLatest([this.input.value$, this._value$]).pipe(map(([inputValue, value]) => inputValue === value));
|
|
7838
7809
|
this.disabled$ = combineLatest([this.input.disabled$, this._disabled$]).pipe(map(([inputDisabled, disabled]) => inputDisabled || disabled));
|
|
7839
|
-
this.
|
|
7840
|
-
|
|
7841
|
-
|
|
7842
|
-
}, {
|
|
7843
|
-
attribute: ['class.et-segmented-button--disabled'],
|
|
7844
|
-
observable: this.disabled$,
|
|
7810
|
+
this.hostClassBindings = signalHostClasses({
|
|
7811
|
+
'et-segmented-button--checked': toSignal(this.checked$),
|
|
7812
|
+
'et-segmented-button--disabled': toSignal(this.disabled$),
|
|
7845
7813
|
});
|
|
7846
7814
|
}
|
|
7847
7815
|
get value() {
|
|
@@ -7898,23 +7866,18 @@ const SEGMENTED_BUTTON_FIELD_TOKEN = new InjectionToken('ET_SEGMENTED_BUTTON_FIE
|
|
|
7898
7866
|
class SegmentedButtonFieldDirective {
|
|
7899
7867
|
constructor() {
|
|
7900
7868
|
this.inputState = inject(InputStateService);
|
|
7901
|
-
this.
|
|
7902
|
-
|
|
7903
|
-
|
|
7904
|
-
|
|
7905
|
-
|
|
7906
|
-
}
|
|
7907
|
-
this._bindings.push({
|
|
7908
|
-
attribute: 'class.et-segmented-button-field--checked',
|
|
7909
|
-
observable: this._segmentedButton.changes.pipe(startWith(this._segmentedButton)).pipe(switchMap((buttons) => combineLatest(buttons.filter((radio) => !!radio).map((button) => button.checked$))), map((checked) => checked.some((value) => value))),
|
|
7910
|
-
});
|
|
7911
|
-
this._bindings.push({
|
|
7912
|
-
attribute: 'class.et-segmented-button-field--disabled',
|
|
7913
|
-
observable: this._segmentedButton.changes.pipe(startWith(this._segmentedButton)).pipe(switchMap((buttons) => combineLatest(buttons.filter((radio) => !!radio).map((button) => button.disabled$))), map((disabled) => disabled.some((value) => value))),
|
|
7869
|
+
this._segmentedButton$ = new BehaviorSubject(null);
|
|
7870
|
+
this.segmentedButtonQueryList$ = this._segmentedButton$.pipe(switchQueryListChanges());
|
|
7871
|
+
this.hostClassBindings = signalHostClasses({
|
|
7872
|
+
'et-segmented-button-field--checked': toSignal(this.segmentedButtonQueryList$.pipe(switchMap((buttons) => (buttons?.length ? combineLatest(buttons.map((radio) => radio.disabled$)) : of([]))), map((checked) => checked.some((value) => value)))),
|
|
7873
|
+
'et-segmented-button-field--disabled': toSignal(this.segmentedButtonQueryList$.pipe(switchMap((buttons) => (buttons?.length ? combineLatest(buttons.map((radio) => radio.disabled$)) : of([]))), map((disabled) => disabled.some((value) => value)))),
|
|
7914
7874
|
});
|
|
7915
7875
|
}
|
|
7876
|
+
set segmentedButton(segmentedButton) {
|
|
7877
|
+
this._segmentedButton$.next(segmentedButton);
|
|
7878
|
+
}
|
|
7916
7879
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: SegmentedButtonFieldDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
7917
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.5", type: SegmentedButtonFieldDirective, isStandalone: true, providers: [{ provide: SEGMENTED_BUTTON_FIELD_TOKEN, useExisting: SegmentedButtonFieldDirective }], queries: [{ propertyName: "
|
|
7880
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.5", type: SegmentedButtonFieldDirective, isStandalone: true, providers: [{ provide: SEGMENTED_BUTTON_FIELD_TOKEN, useExisting: SegmentedButtonFieldDirective }], queries: [{ propertyName: "segmentedButton", predicate: i0.forwardRef(function () { return SEGMENTED_BUTTON_TOKEN; }), descendants: true }], exportAs: ["etSegmentedButtonField"], ngImport: i0 }); }
|
|
7918
7881
|
}
|
|
7919
7882
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: SegmentedButtonFieldDirective, decorators: [{
|
|
7920
7883
|
type: Directive,
|
|
@@ -7923,7 +7886,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
|
|
|
7923
7886
|
providers: [{ provide: SEGMENTED_BUTTON_FIELD_TOKEN, useExisting: SegmentedButtonFieldDirective }],
|
|
7924
7887
|
exportAs: 'etSegmentedButtonField',
|
|
7925
7888
|
}]
|
|
7926
|
-
}], propDecorators: {
|
|
7889
|
+
}], propDecorators: { segmentedButton: [{
|
|
7927
7890
|
type: ContentChildren,
|
|
7928
7891
|
args: [forwardRef(() => SEGMENTED_BUTTON_TOKEN), { descendants: true }]
|
|
7929
7892
|
}] } });
|
|
@@ -7936,14 +7899,8 @@ class SegmentedButtonGroupDirective {
|
|
|
7936
7899
|
this._inputStateService = inject(InputStateService);
|
|
7937
7900
|
this._destroy$ = createDestroy();
|
|
7938
7901
|
this.name = `et-segmented-button-group-${++nextUniqueId$2}`;
|
|
7939
|
-
this.
|
|
7940
|
-
|
|
7941
|
-
observable: this._formGroupStateService.describedBy$.pipe(map((describedBy) => {
|
|
7942
|
-
return {
|
|
7943
|
-
render: !!describedBy,
|
|
7944
|
-
value: `${describedBy}`,
|
|
7945
|
-
};
|
|
7946
|
-
})),
|
|
7902
|
+
this.hostAttributeBindings = signalHostAttributes({
|
|
7903
|
+
'aria-labelledby': toSignal(this._formGroupStateService.describedBy$),
|
|
7947
7904
|
});
|
|
7948
7905
|
}
|
|
7949
7906
|
ngAfterContentInit() {
|
|
@@ -8078,7 +8035,7 @@ const SegmentedButtonImports = [
|
|
|
8078
8035
|
const SELECT_FIELD_TOKEN = new InjectionToken('ET_SELECT_FIELD_DIRECTIVE_TOKEN');
|
|
8079
8036
|
class SelectFieldDirective {
|
|
8080
8037
|
constructor() {
|
|
8081
|
-
this.
|
|
8038
|
+
this.elementRef = inject(ElementRef);
|
|
8082
8039
|
}
|
|
8083
8040
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: SelectFieldDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
8084
8041
|
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.5", type: SelectFieldDirective, isStandalone: true, providers: [{ provide: SELECT_FIELD_TOKEN, useExisting: SelectFieldDirective }], exportAs: ["etSelectField"], ngImport: i0 }); }
|
|
@@ -8501,6 +8458,7 @@ class ComboboxDirective {
|
|
|
8501
8458
|
this._selectField = inject(SELECT_FIELD_TOKEN);
|
|
8502
8459
|
this._animatedOverlay = inject(AnimatedOverlayDirective);
|
|
8503
8460
|
this._comboboxConfig = inject(COMBOBOX_CONFIG_TOKEN, { optional: true });
|
|
8461
|
+
this._themeProvider = inject(THEME_PROVIDER, { optional: true });
|
|
8504
8462
|
this._initialValue$ = new BehaviorSubject(null);
|
|
8505
8463
|
this._filterInternal$ = new BehaviorSubject(false);
|
|
8506
8464
|
this._loading$ = new BehaviorSubject(false);
|
|
@@ -8526,6 +8484,7 @@ class ComboboxDirective {
|
|
|
8526
8484
|
this.activeOptionId$ = new BehaviorSubject(null);
|
|
8527
8485
|
this._currentFilter$ = new BehaviorSubject('');
|
|
8528
8486
|
this.isOpen$ = this._animatedOverlay.isMounted$;
|
|
8487
|
+
this.isOpen = toSignal(this.isOpen$);
|
|
8529
8488
|
this._selectionModel = new SelectionModel();
|
|
8530
8489
|
this._activeSelectionModel = new ActiveSelectionModel();
|
|
8531
8490
|
this._backspaceKeyPressManager = new KeyPressManager(BACKSPACE);
|
|
@@ -8540,21 +8499,16 @@ class ComboboxDirective {
|
|
|
8540
8499
|
this._bodyErrorTemplate$ = new BehaviorSubject(null);
|
|
8541
8500
|
this._bodyEmptyTemplate$ = new BehaviorSubject(null);
|
|
8542
8501
|
this._bodyMoreItemsHintTemplate$ = new BehaviorSubject(null);
|
|
8543
|
-
this.
|
|
8544
|
-
|
|
8545
|
-
|
|
8546
|
-
|
|
8547
|
-
|
|
8548
|
-
|
|
8549
|
-
}
|
|
8550
|
-
|
|
8551
|
-
|
|
8552
|
-
|
|
8553
|
-
attribute: 'class.et-select-field--multiple',
|
|
8554
|
-
observable: this.multiple$,
|
|
8555
|
-
}, {
|
|
8556
|
-
attribute: 'class.et-select-field--open',
|
|
8557
|
-
observable: this.isOpen$,
|
|
8502
|
+
this.hostClassBindings = signalHostClasses({
|
|
8503
|
+
'et-combobox--loading': toSignal(this._loading$),
|
|
8504
|
+
'et-combobox--error': toSignal(this._error$.pipe(map((v) => !!v))),
|
|
8505
|
+
'et-combobox--open': toSignal(this.isOpen$),
|
|
8506
|
+
'et-select-field--multiple': toSignal(this.multiple$),
|
|
8507
|
+
'et-select-field--open': this.isOpen,
|
|
8508
|
+
});
|
|
8509
|
+
this.fieldHostClassBindings = signalClasses(this._selectField.elementRef, {
|
|
8510
|
+
'et-select-field--open': toSignal(this.isOpen$),
|
|
8511
|
+
'et-select-field--multiple': toSignal(this.multiple$),
|
|
8558
8512
|
});
|
|
8559
8513
|
this._comboboxBodyComponent = null;
|
|
8560
8514
|
//#endregion
|
|
@@ -8576,14 +8530,7 @@ class ComboboxDirective {
|
|
|
8576
8530
|
this._animatedOverlay.placement = 'bottom';
|
|
8577
8531
|
this._animatedOverlay.fallbackPlacements = ['bottom', 'top'];
|
|
8578
8532
|
this._animatedOverlay.autoResize = true;
|
|
8579
|
-
this.
|
|
8580
|
-
attribute: 'class.et-select-field--open',
|
|
8581
|
-
observable: this.isOpen$,
|
|
8582
|
-
});
|
|
8583
|
-
this._selectField._bindings.push({
|
|
8584
|
-
attribute: 'class.et-select-field--multiple',
|
|
8585
|
-
observable: this.multiple$,
|
|
8586
|
-
});
|
|
8533
|
+
this._input._setEmptyHelper(this._currentFilter$);
|
|
8587
8534
|
}
|
|
8588
8535
|
ngOnInit() {
|
|
8589
8536
|
this._initDispatchFilterChanges();
|
|
@@ -8623,6 +8570,7 @@ class ComboboxDirective {
|
|
|
8623
8570
|
const bodyRef = this._animatedOverlay.mount({
|
|
8624
8571
|
component: this._comboboxBodyComponent,
|
|
8625
8572
|
mirrorWidth: true,
|
|
8573
|
+
themeProvider: this._themeProvider,
|
|
8626
8574
|
});
|
|
8627
8575
|
if (!bodyRef)
|
|
8628
8576
|
return;
|
|
@@ -9026,27 +8974,14 @@ class ComboboxOptionComponent {
|
|
|
9026
8974
|
this.disabled$ = this._option$.pipe(map((opt) => isOptionDisabled(opt)));
|
|
9027
8975
|
this.selected$ = this._option$.pipe(switchMap((opt) => this.combobox.isOptionSelected(opt)));
|
|
9028
8976
|
this.active$ = this._option$.pipe(switchMap((opt) => this.combobox.isOptionActive(opt)));
|
|
9029
|
-
this.
|
|
9030
|
-
|
|
9031
|
-
|
|
9032
|
-
|
|
9033
|
-
|
|
9034
|
-
|
|
9035
|
-
|
|
9036
|
-
|
|
9037
|
-
observable: this.active$,
|
|
9038
|
-
}, {
|
|
9039
|
-
attribute: 'aria-selected',
|
|
9040
|
-
observable: this.selected$.pipe(map((selected) => ({
|
|
9041
|
-
render: true,
|
|
9042
|
-
value: selected,
|
|
9043
|
-
}))),
|
|
9044
|
-
}, {
|
|
9045
|
-
attribute: 'aria-diabled',
|
|
9046
|
-
observable: this.disabled$.pipe(map((selected) => ({
|
|
9047
|
-
render: true,
|
|
9048
|
-
value: selected,
|
|
9049
|
-
}))),
|
|
8977
|
+
this.hostClassBindings = signalHostClasses({
|
|
8978
|
+
'et-combobox-option--selected': toSignal(this.selected$),
|
|
8979
|
+
'et-combobox-option--disabled': toSignal(this.disabled$),
|
|
8980
|
+
'et-combobox-option--active': toSignal(this.active$),
|
|
8981
|
+
});
|
|
8982
|
+
this.hostAttributeBindings = signalHostAttributes({
|
|
8983
|
+
'aria-selected': toSignal(this.selected$),
|
|
8984
|
+
'aria-disabled': toSignal(this.disabled$),
|
|
9050
8985
|
});
|
|
9051
8986
|
}
|
|
9052
8987
|
get option() {
|
|
@@ -9099,26 +9034,16 @@ class ComboboxBodyComponent {
|
|
|
9099
9034
|
this.id = `et-combobox-body-${_uniqueId++}`;
|
|
9100
9035
|
this._destroy$ = createDestroy();
|
|
9101
9036
|
this._clickOutside = inject(ClickOutsideDirective);
|
|
9037
|
+
this._themeProvider = inject(THEME_PROVIDER);
|
|
9102
9038
|
this.combobox = inject(COMBOBOX_TOKEN);
|
|
9103
9039
|
this._options$ = new BehaviorSubject(null);
|
|
9104
|
-
this.
|
|
9105
|
-
|
|
9106
|
-
|
|
9107
|
-
}
|
|
9108
|
-
|
|
9109
|
-
|
|
9110
|
-
|
|
9111
|
-
attribute: 'aria-multiselectable',
|
|
9112
|
-
observable: this.combobox.multiple$.pipe(map((multiple) => ({
|
|
9113
|
-
render: true,
|
|
9114
|
-
value: multiple,
|
|
9115
|
-
}))),
|
|
9116
|
-
}, {
|
|
9117
|
-
attribute: 'aria-labelledby',
|
|
9118
|
-
observable: this.combobox._input.labelId$.pipe(map((labelId) => ({
|
|
9119
|
-
render: !!labelId,
|
|
9120
|
-
value: labelId,
|
|
9121
|
-
}))),
|
|
9040
|
+
this.hostClassBindings = signalHostClasses({
|
|
9041
|
+
'et-combobox-body--loading': toSignal(this.combobox.loading$),
|
|
9042
|
+
'et-combobox-body--multiple': toSignal(this.combobox.multiple$),
|
|
9043
|
+
});
|
|
9044
|
+
this.hostAttributeBindings = signalHostAttributes({
|
|
9045
|
+
'aria-multiselectable': toSignal(this.combobox.multiple$),
|
|
9046
|
+
'aria-labelledby': toSignal(this.combobox._input.labelId$),
|
|
9122
9047
|
});
|
|
9123
9048
|
this._bodyTemplate = null;
|
|
9124
9049
|
this.trackByFn = (index, item) => this.combobox._selectionModel.getKey(item);
|
|
@@ -9131,13 +9056,16 @@ class ComboboxBodyComponent {
|
|
|
9131
9056
|
.pipe(takeUntil(this._destroy$), tap(() => this.combobox.close()))
|
|
9132
9057
|
.subscribe();
|
|
9133
9058
|
}
|
|
9059
|
+
_setThemeFromProvider(provider) {
|
|
9060
|
+
this._themeProvider.syncWithProvider(provider);
|
|
9061
|
+
}
|
|
9134
9062
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: ComboboxBodyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
9135
9063
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: ComboboxBodyComponent, isStandalone: true, selector: "et-combobox-body", host: { attributes: { "tabindex": "-1", "role": "listbox" }, properties: { "attr.id": "id" }, classAttribute: "et-combobox-body et-with-default-animation" }, providers: [
|
|
9136
9064
|
{
|
|
9137
9065
|
provide: COMBOBOX_BODY_TOKEN,
|
|
9138
9066
|
useExisting: ComboboxBodyComponent,
|
|
9139
9067
|
},
|
|
9140
|
-
], viewQueries: [{ propertyName: "_containerElementRef", first: true, predicate: ["containerElement"], descendants: true, read: ElementRef, static: true }, { propertyName: "_animatedLifecycle", first: true, predicate: ANIMATED_LIFECYCLE_TOKEN, descendants: true, static: true }, { propertyName: "_options", predicate: ComboboxOptionComponent, descendants: true }], hostDirectives: [{ directive: i1$2.ClickOutsideDirective }], 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 *ngComponentOutlet=\"comp\" />\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 *ngComponentOutlet=\"comp; inputs: { error: combobox.error }\" />\n </ng-container>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"combobox.loading\">\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 *ngComponentOutlet=\"comp\" />\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 *ngComponentOutlet=\"comp\" />\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 }); }
|
|
9068
|
+
], viewQueries: [{ propertyName: "_containerElementRef", first: true, predicate: ["containerElement"], descendants: true, read: ElementRef, static: true }, { propertyName: "_animatedLifecycle", first: true, predicate: ANIMATED_LIFECYCLE_TOKEN, descendants: true, static: true }, { propertyName: "_options", predicate: ComboboxOptionComponent, descendants: true }], hostDirectives: [{ directive: i1$2.ClickOutsideDirective }, { directive: i2$1.ProvideThemeDirective }], ngImport: i0, template: "<div #containerElement class=\"et-combobox-body-container\" etAnimatedLifecycle>\n <ng-container *etLet=\"combobox.options$ | async as options\">\n <ng-container *ngIf=\"!options?.length && !combobox.error && !combobox.loading\">\n <ng-container *ngIf=\"combobox.customBodyEmptyTpl$ | async as tpl; else componentOrNone\">\n <ng-container *ngTemplateOutlet=\"tpl\" />\n </ng-container>\n <ng-template #componentOrNone>\n <ng-container *ngIf=\"combobox.customBodyEmptyComponent$ | async as comp; else default\">\n <ng-container *ngComponentOutlet=\"comp\" />\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 *ngComponentOutlet=\"comp; inputs: { error: combobox.error }\" />\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 *ngComponentOutlet=\"comp\" />\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 *ngComponentOutlet=\"comp\" />\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 }); }
|
|
9141
9069
|
}
|
|
9142
9070
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: ComboboxBodyComponent, decorators: [{
|
|
9143
9071
|
type: Component,
|
|
@@ -9155,12 +9083,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
|
|
|
9155
9083
|
AsyncPipe,
|
|
9156
9084
|
AnimatedLifecycleDirective,
|
|
9157
9085
|
NgIf,
|
|
9158
|
-
], hostDirectives: [ClickOutsideDirective], providers: [
|
|
9086
|
+
], hostDirectives: [ClickOutsideDirective, ProvideThemeDirective], providers: [
|
|
9159
9087
|
{
|
|
9160
9088
|
provide: COMBOBOX_BODY_TOKEN,
|
|
9161
9089
|
useExisting: ComboboxBodyComponent,
|
|
9162
9090
|
},
|
|
9163
|
-
], template: "<div #containerElement class=\"et-combobox-body-container\" etAnimatedLifecycle>\n <ng-container *etLet=\"combobox.options$ | async as options\">\n <ng-container *ngIf=\"!options?.length && !combobox.error && !combobox.loading\">\n <ng-container *ngIf=\"combobox.customBodyEmptyTpl$ | async as tpl; else componentOrNone\">\n <ng-container *ngTemplateOutlet=\"tpl\" />\n </ng-container>\n <ng-template #componentOrNone>\n <ng-container *ngIf=\"combobox.customBodyEmptyComponent$ | async as comp; else default\">\n <ng-container *ngComponentOutlet=\"comp\" />\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 *ngComponentOutlet=\"comp; inputs: { error: combobox.error }\" />\n </ng-container>\n </ng-template>\n </ng-container>\n\n <ng-container *ngIf=\"combobox.loading\">\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 *ngComponentOutlet=\"comp\" />\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 *ngComponentOutlet=\"comp\" />\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" }]
|
|
9091
|
+
], template: "<div #containerElement class=\"et-combobox-body-container\" etAnimatedLifecycle>\n <ng-container *etLet=\"combobox.options$ | async as options\">\n <ng-container *ngIf=\"!options?.length && !combobox.error && !combobox.loading\">\n <ng-container *ngIf=\"combobox.customBodyEmptyTpl$ | async as tpl; else componentOrNone\">\n <ng-container *ngTemplateOutlet=\"tpl\" />\n </ng-container>\n <ng-template #componentOrNone>\n <ng-container *ngIf=\"combobox.customBodyEmptyComponent$ | async as comp; else default\">\n <ng-container *ngComponentOutlet=\"comp\" />\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 *ngComponentOutlet=\"comp; inputs: { error: combobox.error }\" />\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 *ngComponentOutlet=\"comp\" />\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 *ngComponentOutlet=\"comp\" />\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" }]
|
|
9164
9092
|
}], propDecorators: { _containerElementRef: [{
|
|
9165
9093
|
type: ViewChild,
|
|
9166
9094
|
args: ['containerElement', { static: true, read: ElementRef }]
|
|
@@ -9406,21 +9334,16 @@ class SelectOptionDirective {
|
|
|
9406
9334
|
}
|
|
9407
9335
|
return selectValue === optionValue;
|
|
9408
9336
|
}));
|
|
9337
|
+
this.isSelected = toSignal(this.isSelected$);
|
|
9409
9338
|
this.viewValue$ = this._viewValue$.asObservable();
|
|
9410
9339
|
this.disabled$ = this._disabled$.asObservable();
|
|
9411
9340
|
this.isActive$ = this._isActive$.asObservable();
|
|
9412
|
-
this.
|
|
9413
|
-
|
|
9414
|
-
|
|
9415
|
-
}
|
|
9416
|
-
|
|
9417
|
-
|
|
9418
|
-
}, {
|
|
9419
|
-
attribute: 'aria-selected',
|
|
9420
|
-
observable: this.isSelected$.pipe(map((selected) => ({
|
|
9421
|
-
render: true,
|
|
9422
|
-
value: selected,
|
|
9423
|
-
}))),
|
|
9341
|
+
this.hostClassBindings = signalHostClasses({
|
|
9342
|
+
'et-select-option--selected': this.isSelected,
|
|
9343
|
+
'et-select-option--active': toSignal(this._isActive$),
|
|
9344
|
+
});
|
|
9345
|
+
this.hostAttributeBindings = signalHostAttributes({
|
|
9346
|
+
'aria-selected': this.isSelected,
|
|
9424
9347
|
});
|
|
9425
9348
|
}
|
|
9426
9349
|
get value() {
|
|
@@ -9435,6 +9358,9 @@ class SelectOptionDirective {
|
|
|
9435
9358
|
set disabled(value) {
|
|
9436
9359
|
this._disabled$.next(booleanAttribute(value));
|
|
9437
9360
|
}
|
|
9361
|
+
get viewValue() {
|
|
9362
|
+
return this._viewValue$.value;
|
|
9363
|
+
}
|
|
9438
9364
|
ngAfterContentInit() {
|
|
9439
9365
|
this._updateViewValue();
|
|
9440
9366
|
}
|
|
@@ -9522,17 +9448,19 @@ class SelectDirective {
|
|
|
9522
9448
|
this._destroy$ = createDestroy();
|
|
9523
9449
|
this._liveAnnouncer = inject(LiveAnnouncer);
|
|
9524
9450
|
this._selectField = inject(SELECT_FIELD_TOKEN);
|
|
9451
|
+
this._themeProvider = inject(THEME_PROVIDER, { optional: true });
|
|
9525
9452
|
this.input = inject(INPUT_TOKEN);
|
|
9526
9453
|
this._selectBodyId$ = new BehaviorSubject(null);
|
|
9527
9454
|
this._isOpen$ = new BehaviorSubject(false);
|
|
9455
|
+
this.elementRef = inject(ElementRef);
|
|
9456
|
+
this._selectionModel = new SelectionModel();
|
|
9457
|
+
this._activeSelectionModel = new ActiveSelectionModel();
|
|
9528
9458
|
this._multiple$ = new BehaviorSubject(false);
|
|
9529
9459
|
this._selectOptionsQueryList$ = new BehaviorSubject(null);
|
|
9530
|
-
this.selectOptions$ = this._selectOptionsQueryList$.pipe(
|
|
9460
|
+
this.selectOptions$ = this._selectOptionsQueryList$.pipe(switchQueryListChanges(), switchMap((queryList) => {
|
|
9531
9461
|
if (!queryList)
|
|
9532
9462
|
return of(null);
|
|
9533
|
-
const items = queryList
|
|
9534
|
-
.filter((i) => !!i)
|
|
9535
|
-
.map((opt) => combineLatest([opt.isSelected$, opt.isActive$]).pipe(map(([selected, active]) => ({ opt, selected, active }))));
|
|
9463
|
+
const items = queryList.map((opt) => combineLatest([opt.isSelected$, opt.isActive$]).pipe(map(([selected, active]) => ({ opt, selected, active }))));
|
|
9536
9464
|
return combineLatest(items ?? of(null));
|
|
9537
9465
|
}));
|
|
9538
9466
|
this.activeOption$ = this.selectOptions$.pipe(map((options) => {
|
|
@@ -9559,6 +9487,7 @@ class SelectDirective {
|
|
|
9559
9487
|
this.selectedOption$ = this.selectedOptions$.pipe(map((options) => options?.[0] ?? null));
|
|
9560
9488
|
this.selectBodyId$ = this._selectBodyId$.asObservable();
|
|
9561
9489
|
this.isOpen$ = this._isOpen$.asObservable();
|
|
9490
|
+
this.isOpen = toSignal(this.isOpen$);
|
|
9562
9491
|
this.multiple$ = this._multiple$.asObservable();
|
|
9563
9492
|
this.selectCurrentValueId = `et-select-current-value-${uniqueId$1++}`;
|
|
9564
9493
|
this.ariaViewValue$ = this.selectedOptions$.pipe(switchMap((options) => {
|
|
@@ -9586,25 +9515,26 @@ class SelectDirective {
|
|
|
9586
9515
|
const ids = [labelId, this.selectCurrentValueId];
|
|
9587
9516
|
return ids.filter((id) => !!id).join(' ');
|
|
9588
9517
|
}));
|
|
9589
|
-
this.
|
|
9590
|
-
|
|
9591
|
-
|
|
9592
|
-
}
|
|
9593
|
-
|
|
9594
|
-
|
|
9518
|
+
this.hostClassBindings = signalHostClasses({
|
|
9519
|
+
'et-select--is-open': this.isOpen,
|
|
9520
|
+
'et-select--disabled': toSignal(this.input.disabled$),
|
|
9521
|
+
});
|
|
9522
|
+
this.fieldHostClassBindings = signalClasses(this._selectField.elementRef, {
|
|
9523
|
+
'et-select-field--open': this.isOpen,
|
|
9524
|
+
'et-select-field--multiple': toSignal(this.multiple$),
|
|
9595
9525
|
});
|
|
9596
9526
|
this.trackByFn = (_, item) => item.id;
|
|
9597
9527
|
this._animatedOverlay.placement = 'bottom';
|
|
9598
9528
|
this._animatedOverlay.fallbackPlacements = ['bottom', 'top'];
|
|
9599
9529
|
this._animatedOverlay.autoResize = true;
|
|
9600
|
-
this.
|
|
9601
|
-
|
|
9602
|
-
|
|
9603
|
-
|
|
9604
|
-
|
|
9605
|
-
|
|
9606
|
-
|
|
9607
|
-
|
|
9530
|
+
this.input._setEmptyHelper(this.ariaViewValue$);
|
|
9531
|
+
this._selectionModel
|
|
9532
|
+
.setOptionsFromQueryList$(this._selectOptionsQueryList$)
|
|
9533
|
+
.setLabelBinding((v) => v.viewValue)
|
|
9534
|
+
.setValueBinding((v) => v.value)
|
|
9535
|
+
.setDisabledBinding((v) => v.disabled);
|
|
9536
|
+
this._activeSelectionModel.setSelectionModel(this._selectionModel);
|
|
9537
|
+
//TODO: TO BE CONTINUED...
|
|
9608
9538
|
}
|
|
9609
9539
|
ngOnInit() {
|
|
9610
9540
|
this._unmountSelectBodyOnDisable();
|
|
@@ -9622,6 +9552,7 @@ class SelectDirective {
|
|
|
9622
9552
|
const instance = this._animatedOverlay.mount({
|
|
9623
9553
|
component: this._selectBodyConfig.component,
|
|
9624
9554
|
mirrorWidth: true,
|
|
9555
|
+
themeProvider: this._themeProvider,
|
|
9625
9556
|
data: { _bodyTemplate: this._selectBodyConfig.template },
|
|
9626
9557
|
});
|
|
9627
9558
|
if (!instance)
|
|
@@ -9960,18 +9891,9 @@ class SelectBodyDirective {
|
|
|
9960
9891
|
this._select = inject(SELECT_TOKEN);
|
|
9961
9892
|
this._clickOutside = inject(ClickOutsideDirective);
|
|
9962
9893
|
this.id = `et-select-body-${uniqueId++}`;
|
|
9963
|
-
this.
|
|
9964
|
-
|
|
9965
|
-
|
|
9966
|
-
render: true,
|
|
9967
|
-
value: multiple,
|
|
9968
|
-
}))),
|
|
9969
|
-
}, {
|
|
9970
|
-
attribute: 'aria-labelledby',
|
|
9971
|
-
observable: this._select.input.labelId$.pipe(map((labelId) => ({
|
|
9972
|
-
render: !!labelId,
|
|
9973
|
-
value: labelId,
|
|
9974
|
-
}))),
|
|
9894
|
+
this.hostAttributeBindings = signalHostAttributes({
|
|
9895
|
+
'aria-multiselectable': toSignal(this._select.multiple$),
|
|
9896
|
+
'aria-labelledby': toSignal(this._select.input.labelId$),
|
|
9975
9897
|
});
|
|
9976
9898
|
}
|
|
9977
9899
|
ngOnInit() {
|
|
@@ -10009,10 +9931,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
|
|
|
10009
9931
|
class SelectBodyComponent {
|
|
10010
9932
|
constructor() {
|
|
10011
9933
|
this.selectBody = inject(SELECT_BODY_TOKEN);
|
|
9934
|
+
this._themeProvider = inject(THEME_PROVIDER);
|
|
10012
9935
|
this._bodyTemplate = null;
|
|
10013
9936
|
}
|
|
9937
|
+
_setThemeFromProvider(provider) {
|
|
9938
|
+
this._themeProvider.syncWithProvider(provider);
|
|
9939
|
+
}
|
|
10014
9940
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: SelectBodyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
10015
|
-
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 }], ngImport: i0, template: `
|
|
9941
|
+
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: `
|
|
10016
9942
|
<div class="et-select-body-container" etAnimatedLifecycle>
|
|
10017
9943
|
<ng-container [ngTemplateOutlet]="_bodyTemplate" />
|
|
10018
9944
|
</div>
|
|
@@ -10026,7 +9952,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
|
|
|
10026
9952
|
</div>
|
|
10027
9953
|
`, standalone: true, changeDetection: ChangeDetectionStrategy.OnPush, encapsulation: ViewEncapsulation.None, host: {
|
|
10028
9954
|
class: 'et-select-body et-with-default-animation',
|
|
10029
|
-
}, imports: [AnimatedLifecycleDirective, NgTemplateOutlet], hostDirectives: [SelectBodyDirective], 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"] }]
|
|
9955
|
+
}, imports: [AnimatedLifecycleDirective, NgTemplateOutlet], hostDirectives: [SelectBodyDirective, ProvideThemeDirective], 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"] }]
|
|
10030
9956
|
}], propDecorators: { _animatedLifecycle: [{
|
|
10031
9957
|
type: ViewChild,
|
|
10032
9958
|
args: [ANIMATED_LIFECYCLE_TOKEN, { static: true }]
|
|
@@ -10414,12 +10340,9 @@ class SlideToggleDirective {
|
|
|
10414
10340
|
constructor() {
|
|
10415
10341
|
this.input = inject(INPUT_TOKEN);
|
|
10416
10342
|
this.checked$ = this.input.value$.pipe(map((value) => !!value));
|
|
10417
|
-
this.
|
|
10418
|
-
|
|
10419
|
-
|
|
10420
|
-
}, {
|
|
10421
|
-
attribute: ['class.et-slide-toggle--disabled'],
|
|
10422
|
-
observable: this.input.disabled$,
|
|
10343
|
+
this.hostClassBindings = signalHostClasses({
|
|
10344
|
+
'et-slide-toggle--checked': toSignal(this.checked$),
|
|
10345
|
+
'et-slide-toggle--disabled': toSignal(this.input.disabled$),
|
|
10423
10346
|
});
|
|
10424
10347
|
}
|
|
10425
10348
|
_onInputInteraction(event) {
|
|
@@ -10604,45 +10527,21 @@ class SliderComponent {
|
|
|
10604
10527
|
this.disableAnimations$ = new BehaviorSubject(false);
|
|
10605
10528
|
this.touchId$ = new BehaviorSubject(null);
|
|
10606
10529
|
this.lastPointerEvent$ = new BehaviorSubject(null);
|
|
10607
|
-
this.
|
|
10608
|
-
|
|
10609
|
-
|
|
10610
|
-
|
|
10611
|
-
|
|
10612
|
-
|
|
10613
|
-
|
|
10614
|
-
|
|
10615
|
-
|
|
10616
|
-
|
|
10617
|
-
|
|
10618
|
-
|
|
10619
|
-
|
|
10620
|
-
|
|
10621
|
-
|
|
10622
|
-
}, {
|
|
10623
|
-
attribute: 'aria-valuemax',
|
|
10624
|
-
observable: this._max$.pipe(map((value) => ({ render: true, value }))),
|
|
10625
|
-
}, {
|
|
10626
|
-
attribute: 'aria-valuetext',
|
|
10627
|
-
observable: this.valueText$.pipe(map((value) => ({ render: true, value }))),
|
|
10628
|
-
}, {
|
|
10629
|
-
attribute: 'tabindex',
|
|
10630
|
-
observable: this._input.disabled$.pipe(map((disabled) => ({ render: true, value: disabled ? -1 : 0 }))),
|
|
10631
|
-
}, {
|
|
10632
|
-
attribute: 'class.et-slider--is-sliding',
|
|
10633
|
-
observable: this.isSlidingVia$.pipe(map((isSlidingVia) => !!isSlidingVia)),
|
|
10634
|
-
}, {
|
|
10635
|
-
attribute: 'class.et-slider--inverted',
|
|
10636
|
-
observable: this._inverted$,
|
|
10637
|
-
}, {
|
|
10638
|
-
attribute: 'class.et-slider--disable-animations',
|
|
10639
|
-
observable: this.disableAnimations$,
|
|
10640
|
-
}, {
|
|
10641
|
-
attribute: 'aria-labeledby',
|
|
10642
|
-
observable: this._formFieldStateService.labelId$.pipe(map((labelId) => ({ render: !!labelId, value: labelId ?? '' }))),
|
|
10643
|
-
}, {
|
|
10644
|
-
attribute: 'aria-describedby',
|
|
10645
|
-
observable: this._formFieldStateService.describedBy$.pipe(map((describedBy) => ({ render: !!describedBy, value: describedBy ?? '' }))),
|
|
10530
|
+
this.hostClassBindings = signalHostClasses({
|
|
10531
|
+
'et-slider--is-sliding': toSignal(this.isSlidingVia$),
|
|
10532
|
+
'et-slider--inverted': toSignal(this._inverted$),
|
|
10533
|
+
'et-slider--disable-animations': toSignal(this.disableAnimations$),
|
|
10534
|
+
});
|
|
10535
|
+
this.hostAttributeBindings = signalHostAttributes({
|
|
10536
|
+
'aria-orientation': toSignal(this._vertical$.pipe(map((vertical) => (vertical ? 'vertical' : 'horizontal')))),
|
|
10537
|
+
'aria-disabled': toSignal(this._input.disabled$),
|
|
10538
|
+
'aria-valuenow': toSignal(this._value$),
|
|
10539
|
+
'aria-valuemin': toSignal(this._min$),
|
|
10540
|
+
'aria-valuemax': toSignal(this._max$),
|
|
10541
|
+
'aria-valuetext': toSignal(this.valueText$),
|
|
10542
|
+
tabindex: toSignal(this._input.disabled$.pipe(map((disabled) => (disabled ? -1 : 0)))),
|
|
10543
|
+
'aria-labeledby': this._formFieldStateService.labelId,
|
|
10544
|
+
'aria-describedby': this._formFieldStateService.describedBy,
|
|
10646
10545
|
});
|
|
10647
10546
|
this._updateValueFromPosition = (pos, sliderDimensions, shouldInvertMouseCoords) => {
|
|
10648
10547
|
const offset = this.vertical ? sliderDimensions.top : sliderDimensions.left;
|
|
@@ -10932,12 +10831,9 @@ class MasonryComponent {
|
|
|
10932
10831
|
this._didResize$ = new BehaviorSubject(false);
|
|
10933
10832
|
this._didInitialize$ = new BehaviorSubject(false);
|
|
10934
10833
|
this._hideOverflow$ = new BehaviorSubject(false);
|
|
10935
|
-
this.
|
|
10936
|
-
|
|
10937
|
-
|
|
10938
|
-
}, {
|
|
10939
|
-
attribute: 'class.et-masonry--hide-overflow',
|
|
10940
|
-
observable: this._hideOverflow$,
|
|
10834
|
+
this.hostClassBindings = signalHostClasses({
|
|
10835
|
+
'et-masonry--initialized': toSignal(this._didInitialize$),
|
|
10836
|
+
'et-masonry--hide-overflow': toSignal(this._hideOverflow$),
|
|
10941
10837
|
});
|
|
10942
10838
|
this._state = {
|
|
10943
10839
|
preferredColumnWidth: 0,
|
|
@@ -11483,6 +11379,9 @@ class PictureComponent {
|
|
|
11483
11379
|
this.trackBySrc = (_, item) => item.srcset;
|
|
11484
11380
|
}
|
|
11485
11381
|
combineWithConfig(src) {
|
|
11382
|
+
if (isDevMode() && src.type === '') {
|
|
11383
|
+
console.warn(`The type attribute is missing for the following source`, src.srcset, this);
|
|
11384
|
+
}
|
|
11486
11385
|
if (!this.config?.baseUrl || src.srcset.startsWith('http')) {
|
|
11487
11386
|
return src;
|
|
11488
11387
|
}
|
|
@@ -11493,7 +11392,7 @@ class PictureComponent {
|
|
|
11493
11392
|
};
|
|
11494
11393
|
}
|
|
11495
11394
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: PictureComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
11496
|
-
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 [
|
|
11395
|
+
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 }); }
|
|
11497
11396
|
}
|
|
11498
11397
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: PictureComponent, decorators: [{
|
|
11499
11398
|
type: Component,
|
|
@@ -11516,7 +11415,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
|
|
|
11516
11415
|
'sizes',
|
|
11517
11416
|
],
|
|
11518
11417
|
},
|
|
11519
|
-
], 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 [
|
|
11418
|
+
], 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" }]
|
|
11520
11419
|
}], propDecorators: { sources: [{
|
|
11521
11420
|
type: Input
|
|
11522
11421
|
}] } });
|
|
@@ -12616,7 +12515,7 @@ class TableComponent extends CdkTable {
|
|
|
12616
12515
|
this._isShowingTableBusy = shouldShow;
|
|
12617
12516
|
this._cdr.markForCheck();
|
|
12618
12517
|
}
|
|
12619
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TableComponent, deps: [{ token: i0.IterableDiffers }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: 'role', attribute: true }, { token: i1$4.Directionality, optional: true }, { token: DOCUMENT }, { token: i2$
|
|
12518
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: TableComponent, deps: [{ token: i0.IterableDiffers }, { token: i0.ChangeDetectorRef }, { token: i0.ElementRef }, { token: 'role', attribute: true }, { token: i1$4.Directionality, optional: true }, { token: DOCUMENT }, { token: i2$2.Platform }, { token: _VIEW_REPEATER_STRATEGY }, { token: _COALESCED_STYLE_SCHEDULER }, { token: i3.ViewportRuler }, { token: STICKY_POSITIONING_LISTENER, optional: true, skipSelf: true }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
12620
12519
|
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.5", type: TableComponent, isStandalone: true, selector: "et-table, table[et-table]", inputs: { busy: "busy" }, host: { properties: { "class.et-table-fixed-layout": "fixedLayout", "attr.aria-busy": "this._attrAriaBusy" }, classAttribute: "et-table et-data-table__table" }, providers: [
|
|
12621
12520
|
{ provide: CdkTable, useExisting: TableComponent },
|
|
12622
12521
|
{ provide: CDK_TABLE, useExisting: TableComponent },
|
|
@@ -12665,7 +12564,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
|
|
|
12665
12564
|
}] }, { type: Document, decorators: [{
|
|
12666
12565
|
type: Inject,
|
|
12667
12566
|
args: [DOCUMENT]
|
|
12668
|
-
}] }, { type: i2$
|
|
12567
|
+
}] }, { type: i2$2.Platform }, { type: undefined, decorators: [{
|
|
12669
12568
|
type: Inject,
|
|
12670
12569
|
args: [_VIEW_REPEATER_STRATEGY]
|
|
12671
12570
|
}] }, { type: i1$3._CoalescedStyleScheduler, decorators: [{
|