@ethlete/core 3.12.0 → 3.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/directives/animated-overlay/animated-overlay.directive.mjs +19 -3
- package/esm2022/lib/directives/public-api.mjs +2 -1
- package/esm2022/lib/directives/root-boundary/index.mjs +2 -0
- package/esm2022/lib/directives/root-boundary/public-api.mjs +2 -0
- package/esm2022/lib/directives/root-boundary/root-boundary.directive.mjs +36 -0
- package/esm2022/lib/utils/active-selection-model.utils.mjs +15 -10
- package/esm2022/lib/utils/selection-model.utils.mjs +86 -38
- package/fesm2022/ethlete-core.mjs +149 -48
- package/fesm2022/ethlete-core.mjs.map +1 -1
- package/lib/directives/animated-overlay/animated-overlay.directive.d.ts +4 -0
- package/lib/directives/public-api.d.ts +1 -0
- package/lib/directives/root-boundary/index.d.ts +1 -0
- package/lib/directives/root-boundary/public-api.d.ts +1 -0
- package/lib/directives/root-boundary/root-boundary.directive.d.ts +11 -0
- package/lib/utils/active-selection-model.utils.d.ts +4 -1
- package/lib/utils/selection-model.utils.d.ts +11 -3
- package/package.json +1 -1
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { inject, Component, ChangeDetectionStrategy, ViewEncapsulation, Input, HostBinding, InjectionToken, assertInInjectionContext, DestroyRef, ElementRef, isSignal, computed, signal, effect, isDevMode, Directive, Injectable, NgZone, EventEmitter, booleanAttribute, numberAttribute, Output, Injector, ViewContainerRef, TemplateRef, Pipe, QueryList } from '@angular/core';
|
|
3
3
|
import { DomSanitizer, Meta, Title } from '@angular/platform-browser';
|
|
4
|
-
import { Subject, BehaviorSubject, takeUntil, switchMap, of, tap, startWith, Observable, combineLatest, timer,
|
|
4
|
+
import { Subject, BehaviorSubject, takeUntil, switchMap, of, tap, map, startWith, Observable, combineLatest, timer, distinctUntilChanged, shareReplay, filter, take, skip, debounceTime, merge, fromEvent, takeWhile, pairwise, finalize } from 'rxjs';
|
|
5
5
|
import { END, HOME, PAGE_DOWN, PAGE_UP, UP_ARROW, DOWN_ARROW } from '@angular/cdk/keycodes';
|
|
6
6
|
import { FormGroup, FormArray, FormControl } from '@angular/forms';
|
|
7
|
-
import {
|
|
7
|
+
import { toSignal, takeUntilDestroyed, toObservable } from '@angular/core/rxjs-interop';
|
|
8
8
|
import { coerceElement, coerceCssPixelValue } from '@angular/cdk/coercion';
|
|
9
9
|
import { supportsScrollBehavior } from '@angular/cdk/platform';
|
|
10
10
|
import * as i1 from '@angular/common';
|
|
@@ -132,34 +132,38 @@ class ActiveSelectionModel {
|
|
|
132
132
|
this._activeOption$.next(option);
|
|
133
133
|
return this;
|
|
134
134
|
}
|
|
135
|
-
|
|
135
|
+
isOptionActive$(option) {
|
|
136
|
+
return this.activeOption$.pipe(map((activeOption) => activeOption === option));
|
|
137
|
+
}
|
|
138
|
+
evaluateKeyboardEvent(event, config) {
|
|
139
|
+
const { skipDisabled = false } = config ?? {};
|
|
136
140
|
const keyCode = event.keyCode;
|
|
137
141
|
const activeOption = this.activeOption;
|
|
138
142
|
if (!this.selectionModel || !activeOption)
|
|
139
|
-
return;
|
|
143
|
+
return null;
|
|
140
144
|
const currentIndex = this.selectionModel?.getOptionIndex(activeOption);
|
|
141
145
|
if (currentIndex === null)
|
|
142
|
-
return;
|
|
146
|
+
return null;
|
|
143
147
|
let newActiveOption = undefined;
|
|
144
148
|
switch (keyCode) {
|
|
145
149
|
case DOWN_ARROW:
|
|
146
150
|
{
|
|
147
|
-
newActiveOption = this.selectionModel?.getOptionByOffset(1, currentIndex);
|
|
151
|
+
newActiveOption = this.selectionModel?.getOptionByOffset(1, currentIndex, { skipDisabled });
|
|
148
152
|
}
|
|
149
153
|
break;
|
|
150
154
|
case UP_ARROW:
|
|
151
155
|
{
|
|
152
|
-
newActiveOption = this.selectionModel?.getOptionByOffset(-1, currentIndex);
|
|
156
|
+
newActiveOption = this.selectionModel?.getOptionByOffset(-1, currentIndex, { skipDisabled });
|
|
153
157
|
}
|
|
154
158
|
break;
|
|
155
159
|
case PAGE_UP:
|
|
156
160
|
{
|
|
157
|
-
newActiveOption = this.selectionModel?.getOptionByOffset(-10, currentIndex);
|
|
161
|
+
newActiveOption = this.selectionModel?.getOptionByOffset(-10, currentIndex, { skipDisabled, clamp: true });
|
|
158
162
|
}
|
|
159
163
|
break;
|
|
160
164
|
case PAGE_DOWN:
|
|
161
165
|
{
|
|
162
|
-
newActiveOption = this.selectionModel?.getOptionByOffset(10, currentIndex);
|
|
166
|
+
newActiveOption = this.selectionModel?.getOptionByOffset(10, currentIndex, { skipDisabled, clamp: true });
|
|
163
167
|
}
|
|
164
168
|
break;
|
|
165
169
|
case HOME:
|
|
@@ -176,9 +180,10 @@ class ActiveSelectionModel {
|
|
|
176
180
|
if (newActiveOption !== undefined) {
|
|
177
181
|
event.preventDefault();
|
|
178
182
|
}
|
|
179
|
-
if (newActiveOption !== activeOption && newActiveOption
|
|
183
|
+
if (newActiveOption !== activeOption && newActiveOption) {
|
|
180
184
|
this._activeOption$.next(newActiveOption);
|
|
181
185
|
}
|
|
186
|
+
return newActiveOption ?? null;
|
|
182
187
|
}
|
|
183
188
|
_resetActiveOptions() {
|
|
184
189
|
const firstOption = this.selectionModel?.getFirstOption();
|
|
@@ -1005,27 +1010,6 @@ const getObjectProperty = (obj, prop) => {
|
|
|
1005
1010
|
return value;
|
|
1006
1011
|
};
|
|
1007
1012
|
class SelectionModel {
|
|
1008
|
-
constructor() {
|
|
1009
|
-
this._selection$ = new BehaviorSubject([]);
|
|
1010
|
-
this._options$ = new BehaviorSubject([]);
|
|
1011
|
-
this._valueBinding$ = new BehaviorSubject(null);
|
|
1012
|
-
this._keyBinding$ = new BehaviorSubject(null);
|
|
1013
|
-
this._labelBinding$ = new BehaviorSubject(null);
|
|
1014
|
-
this._disabledBinding$ = new BehaviorSubject(null);
|
|
1015
|
-
this._allowMultiple$ = new BehaviorSubject(false);
|
|
1016
|
-
this._filter$ = new BehaviorSubject('');
|
|
1017
|
-
this.value$ = combineLatest([this.selection$, this.valueBinding$, this.allowMultiple$]).pipe(map(([selection, valueBinding, allowMultiple]) => {
|
|
1018
|
-
if (allowMultiple) {
|
|
1019
|
-
return selection.map((option) => this.execFnOrGetOptionProperty(option, valueBinding));
|
|
1020
|
-
}
|
|
1021
|
-
const [option] = selection;
|
|
1022
|
-
if (!option)
|
|
1023
|
-
return null;
|
|
1024
|
-
return this.execFnOrGetOptionProperty(option, valueBinding);
|
|
1025
|
-
}));
|
|
1026
|
-
this.filteredOptions$ = combineLatest([this.options$, this.filter$, this.labelBinding$]).pipe(map(([options, filter]) => this.getFilteredOptions(filter, options)), shareReplay({ bufferSize: 1, refCount: true }));
|
|
1027
|
-
this._optionsAndSelection$ = combineLatest([this._options$, this._selection$]);
|
|
1028
|
-
}
|
|
1029
1013
|
get selection$() {
|
|
1030
1014
|
return this._selection$.asObservable();
|
|
1031
1015
|
}
|
|
@@ -1074,6 +1058,40 @@ class SelectionModel {
|
|
|
1074
1058
|
get filter() {
|
|
1075
1059
|
return this._filter$.value;
|
|
1076
1060
|
}
|
|
1061
|
+
constructor() {
|
|
1062
|
+
this._destroy$ = createDestroy();
|
|
1063
|
+
this._lastSelectionSetSubscription = null;
|
|
1064
|
+
this._selection$ = new BehaviorSubject([]);
|
|
1065
|
+
this._options$ = new BehaviorSubject([]);
|
|
1066
|
+
this.optionsSignal = toSignal(this.options$);
|
|
1067
|
+
this._valueBinding$ = new BehaviorSubject(null);
|
|
1068
|
+
this._keyBinding$ = new BehaviorSubject(null);
|
|
1069
|
+
this._labelBinding$ = new BehaviorSubject(null);
|
|
1070
|
+
this._disabledBinding$ = new BehaviorSubject(null);
|
|
1071
|
+
this._allowMultiple$ = new BehaviorSubject(false);
|
|
1072
|
+
this._filter$ = new BehaviorSubject('');
|
|
1073
|
+
this.value$ = combineLatest([this.selection$, this.valueBinding$, this.allowMultiple$]).pipe(map(([selection, valueBinding, allowMultiple]) => {
|
|
1074
|
+
if (allowMultiple) {
|
|
1075
|
+
return selection.map((option) => this.execFnOrGetOptionProperty(option, valueBinding));
|
|
1076
|
+
}
|
|
1077
|
+
const [option] = selection;
|
|
1078
|
+
if (!option)
|
|
1079
|
+
return null;
|
|
1080
|
+
return this.execFnOrGetOptionProperty(option, valueBinding);
|
|
1081
|
+
}));
|
|
1082
|
+
this.filteredOptions$ = combineLatest([this.options$, this.filter$, this.labelBinding$]).pipe(map(([options, filter]) => this.getFilteredOptions(filter, options)), shareReplay({ bufferSize: 1, refCount: true }));
|
|
1083
|
+
this._optionsAndSelection$ = combineLatest([this._options$, this._selection$]);
|
|
1084
|
+
this.allowMultiple$
|
|
1085
|
+
.pipe(tap(() => {
|
|
1086
|
+
if (this.allowMultiple)
|
|
1087
|
+
return;
|
|
1088
|
+
const [option] = this.selection;
|
|
1089
|
+
if (!option)
|
|
1090
|
+
return;
|
|
1091
|
+
this.setSelection([option]);
|
|
1092
|
+
}), takeUntilDestroyed())
|
|
1093
|
+
.subscribe();
|
|
1094
|
+
}
|
|
1077
1095
|
setSelection(selection) {
|
|
1078
1096
|
if (!Array.isArray(selection)) {
|
|
1079
1097
|
selection = [selection];
|
|
@@ -1081,6 +1099,24 @@ class SelectionModel {
|
|
|
1081
1099
|
this._selection$.next(selection);
|
|
1082
1100
|
return this;
|
|
1083
1101
|
}
|
|
1102
|
+
setSelectionFromValue(value) {
|
|
1103
|
+
if (Array.isArray(value)) {
|
|
1104
|
+
const selection = value.map((v) => this.getOptionByValue(v)).filter((v) => v !== undefined);
|
|
1105
|
+
this.setSelection(selection);
|
|
1106
|
+
}
|
|
1107
|
+
else {
|
|
1108
|
+
const selection = this.getOptionByValue(value);
|
|
1109
|
+
if (selection) {
|
|
1110
|
+
this.setSelection(selection);
|
|
1111
|
+
}
|
|
1112
|
+
}
|
|
1113
|
+
}
|
|
1114
|
+
setSelectionFromValue$(value) {
|
|
1115
|
+
this._lastSelectionSetSubscription?.unsubscribe();
|
|
1116
|
+
this._lastSelectionSetSubscription = this.options$
|
|
1117
|
+
.pipe(takeUntil(this._destroy$), filter((o) => !!o.length), tap(() => this.setSelectionFromValue(value)), take(1))
|
|
1118
|
+
.subscribe();
|
|
1119
|
+
}
|
|
1084
1120
|
setValueBinding(fnOrPropertyPath) {
|
|
1085
1121
|
this._valueBinding$.next(fnOrPropertyPath);
|
|
1086
1122
|
return this;
|
|
@@ -1177,29 +1213,40 @@ class SelectionModel {
|
|
|
1177
1213
|
getOptionByIndex(index, options = this.getFilteredOptions()) {
|
|
1178
1214
|
return options[index] || null;
|
|
1179
1215
|
}
|
|
1180
|
-
getOptionByOffset(offset, index,
|
|
1181
|
-
const { loop, clamp } = config;
|
|
1216
|
+
getOptionByOffset(offset, index, config = { clamp: true }) {
|
|
1217
|
+
const { loop, clamp, skipDisabled, options = this.getFilteredOptions() } = config;
|
|
1182
1218
|
const newIndex = index + offset;
|
|
1183
1219
|
const remainingOffset = newIndex * -1;
|
|
1220
|
+
let optionResult = null;
|
|
1184
1221
|
if (newIndex < 0) {
|
|
1185
1222
|
if (loop) {
|
|
1186
|
-
|
|
1223
|
+
optionResult = this.getOptionByOffset(remainingOffset, options.length - 1, config);
|
|
1187
1224
|
}
|
|
1188
|
-
if (clamp) {
|
|
1189
|
-
|
|
1225
|
+
else if (clamp) {
|
|
1226
|
+
optionResult = this.getFirstOption();
|
|
1227
|
+
}
|
|
1228
|
+
else {
|
|
1229
|
+
optionResult = null;
|
|
1190
1230
|
}
|
|
1191
|
-
return null;
|
|
1192
1231
|
}
|
|
1193
|
-
if (newIndex >= options.length) {
|
|
1232
|
+
else if (newIndex >= options.length) {
|
|
1194
1233
|
if (loop) {
|
|
1195
|
-
|
|
1234
|
+
optionResult = this.getOptionByOffset(remainingOffset, 0, config);
|
|
1196
1235
|
}
|
|
1197
|
-
if (clamp) {
|
|
1198
|
-
|
|
1236
|
+
else if (clamp) {
|
|
1237
|
+
optionResult = this.getLastOption();
|
|
1199
1238
|
}
|
|
1200
|
-
|
|
1239
|
+
else {
|
|
1240
|
+
optionResult = null;
|
|
1241
|
+
}
|
|
1242
|
+
}
|
|
1243
|
+
else {
|
|
1244
|
+
optionResult = this.getOptionByIndex(newIndex);
|
|
1201
1245
|
}
|
|
1202
|
-
|
|
1246
|
+
if (optionResult && skipDisabled && this.isDisabled(optionResult)) {
|
|
1247
|
+
return this.getOptionByOffset(offset, newIndex, config);
|
|
1248
|
+
}
|
|
1249
|
+
return optionResult;
|
|
1203
1250
|
}
|
|
1204
1251
|
getFirstOption(options = this.getFilteredOptions()) {
|
|
1205
1252
|
return this.getOptionByIndex(0, options);
|
|
@@ -1231,7 +1278,7 @@ class SelectionModel {
|
|
|
1231
1278
|
const index = this.getNonMultipleSelectedOptionIndex();
|
|
1232
1279
|
if (index === null)
|
|
1233
1280
|
return null;
|
|
1234
|
-
return this.getOptionByOffset(index, offset,
|
|
1281
|
+
return this.getOptionByOffset(index, offset, config);
|
|
1235
1282
|
}
|
|
1236
1283
|
getLabel(option) {
|
|
1237
1284
|
return this.execFnOrGetOptionProperty(option, this.labelBinding);
|
|
@@ -1263,7 +1310,12 @@ class SelectionModel {
|
|
|
1263
1310
|
return this.getOption(optionKey, this.keyBinding, this.selection) !== undefined;
|
|
1264
1311
|
}
|
|
1265
1312
|
isDisabled(option) {
|
|
1266
|
-
|
|
1313
|
+
if (!this.disabledBinding)
|
|
1314
|
+
return false;
|
|
1315
|
+
const result = this.execFnOrGetOptionProperty(option, this.disabledBinding);
|
|
1316
|
+
if (result === option)
|
|
1317
|
+
return false;
|
|
1318
|
+
return !!result;
|
|
1267
1319
|
}
|
|
1268
1320
|
getFilteredOptions(filter = this.filter, options = this.options) {
|
|
1269
1321
|
if (!filter)
|
|
@@ -2602,6 +2654,40 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImpor
|
|
|
2602
2654
|
args: ['etObserveResizeDebounce']
|
|
2603
2655
|
}] } });
|
|
2604
2656
|
|
|
2657
|
+
const ROOT_BOUNDARY_TOKEN = new InjectionToken('ROOT_BOUNDARY_TOKEN');
|
|
2658
|
+
class RootBoundaryDirective {
|
|
2659
|
+
constructor() {
|
|
2660
|
+
this._elementRef = inject(ElementRef);
|
|
2661
|
+
this._boundaryElement = null;
|
|
2662
|
+
}
|
|
2663
|
+
get boundaryElement() {
|
|
2664
|
+
return this._boundaryElement ?? this._elementRef.nativeElement;
|
|
2665
|
+
}
|
|
2666
|
+
set boundaryElement(v) {
|
|
2667
|
+
this._boundaryElement = v;
|
|
2668
|
+
}
|
|
2669
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: RootBoundaryDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
2670
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "16.2.5", type: RootBoundaryDirective, isStandalone: true, selector: "[etRootBoundary]", providers: [
|
|
2671
|
+
{
|
|
2672
|
+
provide: ROOT_BOUNDARY_TOKEN,
|
|
2673
|
+
useExisting: RootBoundaryDirective,
|
|
2674
|
+
},
|
|
2675
|
+
], ngImport: i0 }); }
|
|
2676
|
+
}
|
|
2677
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.5", ngImport: i0, type: RootBoundaryDirective, decorators: [{
|
|
2678
|
+
type: Directive,
|
|
2679
|
+
args: [{
|
|
2680
|
+
selector: '[etRootBoundary]',
|
|
2681
|
+
standalone: true,
|
|
2682
|
+
providers: [
|
|
2683
|
+
{
|
|
2684
|
+
provide: ROOT_BOUNDARY_TOKEN,
|
|
2685
|
+
useExisting: RootBoundaryDirective,
|
|
2686
|
+
},
|
|
2687
|
+
],
|
|
2688
|
+
}]
|
|
2689
|
+
}] });
|
|
2690
|
+
|
|
2605
2691
|
class AnimatedOverlayDirective {
|
|
2606
2692
|
constructor() {
|
|
2607
2693
|
this._destroy$ = createDestroy();
|
|
@@ -2611,6 +2697,7 @@ class AnimatedOverlayDirective {
|
|
|
2611
2697
|
this._zone = inject(NgZone);
|
|
2612
2698
|
this._elementRef = inject(ElementRef);
|
|
2613
2699
|
this._observeResize = inject(ObserveResizeDirective);
|
|
2700
|
+
this._rootBoundary = inject(RootBoundaryDirective, { optional: true });
|
|
2614
2701
|
this._portal = null;
|
|
2615
2702
|
this._overlayRef = null;
|
|
2616
2703
|
this._componentRef = null;
|
|
@@ -2622,6 +2709,7 @@ class AnimatedOverlayDirective {
|
|
|
2622
2709
|
this._isMounted$ = new BehaviorSubject(false);
|
|
2623
2710
|
this._isMounting$ = new BehaviorSubject(false);
|
|
2624
2711
|
this._isUnmounting$ = new BehaviorSubject(false);
|
|
2712
|
+
this._isHidden$ = new BehaviorSubject(false);
|
|
2625
2713
|
/**
|
|
2626
2714
|
* The placement of the animated overlay.
|
|
2627
2715
|
* @default undefined
|
|
@@ -2670,6 +2758,12 @@ class AnimatedOverlayDirective {
|
|
|
2670
2758
|
get isUnmounting() {
|
|
2671
2759
|
return this._isUnmounting$.value;
|
|
2672
2760
|
}
|
|
2761
|
+
get isHidden$() {
|
|
2762
|
+
return this._isHidden$.asObservable();
|
|
2763
|
+
}
|
|
2764
|
+
get isHidden() {
|
|
2765
|
+
return this._isHidden$.value;
|
|
2766
|
+
}
|
|
2673
2767
|
get portal() {
|
|
2674
2768
|
return this._portal;
|
|
2675
2769
|
}
|
|
@@ -2723,6 +2817,7 @@ class AnimatedOverlayDirective {
|
|
|
2723
2817
|
const floatingElArrow = this._componentRef.instance._elementRef?.nativeElement.querySelector('[et-floating-arrow]');
|
|
2724
2818
|
floatingEl.classList.add('et-floating-element');
|
|
2725
2819
|
const refEl = this._elementRef.nativeElement;
|
|
2820
|
+
const boundary = this._rootBoundary?.boundaryElement ?? undefined;
|
|
2726
2821
|
this._floatingElCleanupFn = autoUpdate(refEl, floatingEl, () => {
|
|
2727
2822
|
if (!this._componentRef)
|
|
2728
2823
|
return;
|
|
@@ -2734,6 +2829,7 @@ class AnimatedOverlayDirective {
|
|
|
2734
2829
|
fallbackPlacements: this.fallbackPlacements ?? undefined,
|
|
2735
2830
|
fallbackAxisSideDirection: 'start',
|
|
2736
2831
|
crossAxis: false,
|
|
2832
|
+
boundary,
|
|
2737
2833
|
}),
|
|
2738
2834
|
...(this.autoResize
|
|
2739
2835
|
? [
|
|
@@ -2746,9 +2842,9 @@ class AnimatedOverlayDirective {
|
|
|
2746
2842
|
}),
|
|
2747
2843
|
]
|
|
2748
2844
|
: []),
|
|
2749
|
-
shift({ limiter: limitShift(), padding: this.viewportPadding ?? undefined }),
|
|
2845
|
+
shift({ limiter: limitShift(), padding: this.viewportPadding ?? undefined, boundary }),
|
|
2750
2846
|
...(floatingElArrow ? [arrow({ element: floatingElArrow, padding: this.arrowPadding ?? undefined })] : []),
|
|
2751
|
-
...(this.autoHide ? [hide({ strategy: 'referenceHidden' })] : []),
|
|
2847
|
+
...(this.autoHide ? [hide({ strategy: 'referenceHidden', boundary })] : []),
|
|
2752
2848
|
],
|
|
2753
2849
|
}).then(({ x, y, placement, middlewareData }) => {
|
|
2754
2850
|
floatingEl.style.setProperty('--et-floating-translate', `translate3d(${x}px, ${y}px, 0)`);
|
|
@@ -2759,9 +2855,11 @@ class AnimatedOverlayDirective {
|
|
|
2759
2855
|
}
|
|
2760
2856
|
if (middlewareData.hide?.referenceHidden) {
|
|
2761
2857
|
floatingEl.classList.add('et-floating-element--hidden');
|
|
2858
|
+
this._isHidden$.next(true);
|
|
2762
2859
|
}
|
|
2763
2860
|
else {
|
|
2764
2861
|
floatingEl.classList.remove('et-floating-element--hidden');
|
|
2862
|
+
this._isHidden$.next(false);
|
|
2765
2863
|
}
|
|
2766
2864
|
});
|
|
2767
2865
|
});
|
|
@@ -2794,6 +2892,9 @@ class AnimatedOverlayDirective {
|
|
|
2794
2892
|
if (!this._componentRef) {
|
|
2795
2893
|
return;
|
|
2796
2894
|
}
|
|
2895
|
+
if (this.isHidden) {
|
|
2896
|
+
return;
|
|
2897
|
+
}
|
|
2797
2898
|
this._isUnmounting$.next(true);
|
|
2798
2899
|
this._beforeClosed?.next();
|
|
2799
2900
|
this._componentRef.instance._animatedLifecycle?.leave();
|
|
@@ -4444,5 +4545,5 @@ const Validators = {
|
|
|
4444
4545
|
* Generated bundle index. Do not edit.
|
|
4445
4546
|
*/
|
|
4446
4547
|
|
|
4447
|
-
export { ANIMATABLE_TOKEN, ANIMATED_IF_TOKEN, ANIMATED_LIFECYCLE_TOKEN, AT_LEAST_ONE_REQUIRED, ActiveSelectionModel, AnimatableDirective, AnimatedIfDirective, AnimatedLifecycleDirective, AnimatedOverlayDirective, ClickObserverFactory, ClickObserverService, ClickOutsideDirective, ContentObserverService, CursorDragScrollDirective, DEBUG_TOKEN, DEFAULT_VIEWPORT_CONFIG, DELAYABLE_TOKEN, DebugDirective, DelayableDirective, ET_PROPERTY_REMOVED, FocusVisibleService, IS_ACTIVE_ELEMENT, IS_ARRAY_NOT_EMPTY, IS_ELEMENT, IS_EMAIL, InferMimeTypePipe, IntersectionObserverFactory, IntersectionObserverService, IsActiveElementDirective, IsArrayNotEmpty, IsElementDirective, IsEmail, KeyPressManager, LetContext, LetDirective, MUST_MATCH, Memo, MustMatch, MutationObserverFactory, NormalizeGameResultTypePipe, NormalizeMatchParticipantsPipe, NormalizeMatchScorePipe, NormalizeMatchStatePipe, NormalizeMatchTypePipe, OBSERVE_SCROLL_STATE, OBSERVE_VISIBILITY_TOKEN, ObserveContentDirective, ObserveResizeDirective, ObserveScrollStateDirective, ObserveVisibilityDirective, RUNTIME_ERROR_NO_DATA, RepeatDirective, ResizeObserverFactory, ResizeObserverService, RouterStateService, RuntimeError, SCROLL_OBSERVER_FIRST_ELEMENT_CLASS, SCROLL_OBSERVER_IGNORE_TARGET_CLASS, SCROLL_OBSERVER_LAST_ELEMENT_CLASS, SCROLL_OBSERVER_OBSERVING_FIRST_ELEMENT_CLASS, SCROLL_OBSERVER_OBSERVING_LAST_ELEMENT_CLASS, SEO_DIRECTIVE_TOKEN, ScrollObserverFirstElementDirective, ScrollObserverIgnoreTargetDirective, ScrollObserverLastElementDirective, SelectionModel, SeoDirective, SmartBlockScrollStrategy, StructuredDataComponent, ToArrayPipe, TypedQueryList, VIEWPORT_CONFIG, ValidateAtLeastOneRequired, Validators, ViewportService, buildSignalEffects, clamp, clone, cloneFormGroup, createDestroy, createFlipAnimation, createFlipAnimationGroup, createMediaQueryObservable, createMutationObservable, createReactiveBindings, createResizeObservable, deleteCookie, elementCanScroll, equal, forceReflow, formatRuntimeError, fromNextFrame, getCookie, getDomain, getElementVisibleStates, getFormGroupValue, getGroupMatchPoints, getGroupMatchScore, getKnockoutMatchScore, getMatchScoreSubLine, hasCookie, inferMimeType, isElementVisible, isEmptyArray, isGroupMatch, isKnockoutMatch, isObjectArray, isPrimitiveArray, mergeSeoConfig, nextFrame, normalizeGameResultType, normalizeMatchParticipant, normalizeMatchParticipants, normalizeMatchScore, normalizeMatchState, normalizeMatchType, provideViewportConfig, round, routerDisableScrollTop, scrollToElement, setCookie, signalAttributes, signalClasses, signalHostAttributes, signalHostClasses, signalHostStyles, signalStyles, signalVisibilityChangeClasses, switchQueryListChanges, toArray, toArrayTrackByFn };
|
|
4548
|
+
export { ANIMATABLE_TOKEN, ANIMATED_IF_TOKEN, ANIMATED_LIFECYCLE_TOKEN, AT_LEAST_ONE_REQUIRED, ActiveSelectionModel, AnimatableDirective, AnimatedIfDirective, AnimatedLifecycleDirective, AnimatedOverlayDirective, ClickObserverFactory, ClickObserverService, ClickOutsideDirective, ContentObserverService, CursorDragScrollDirective, DEBUG_TOKEN, DEFAULT_VIEWPORT_CONFIG, DELAYABLE_TOKEN, DebugDirective, DelayableDirective, ET_PROPERTY_REMOVED, FocusVisibleService, IS_ACTIVE_ELEMENT, IS_ARRAY_NOT_EMPTY, IS_ELEMENT, IS_EMAIL, InferMimeTypePipe, IntersectionObserverFactory, IntersectionObserverService, IsActiveElementDirective, IsArrayNotEmpty, IsElementDirective, IsEmail, KeyPressManager, LetContext, LetDirective, MUST_MATCH, Memo, MustMatch, MutationObserverFactory, NormalizeGameResultTypePipe, NormalizeMatchParticipantsPipe, NormalizeMatchScorePipe, NormalizeMatchStatePipe, NormalizeMatchTypePipe, OBSERVE_SCROLL_STATE, OBSERVE_VISIBILITY_TOKEN, ObserveContentDirective, ObserveResizeDirective, ObserveScrollStateDirective, ObserveVisibilityDirective, ROOT_BOUNDARY_TOKEN, RUNTIME_ERROR_NO_DATA, RepeatDirective, ResizeObserverFactory, ResizeObserverService, RootBoundaryDirective, RouterStateService, RuntimeError, SCROLL_OBSERVER_FIRST_ELEMENT_CLASS, SCROLL_OBSERVER_IGNORE_TARGET_CLASS, SCROLL_OBSERVER_LAST_ELEMENT_CLASS, SCROLL_OBSERVER_OBSERVING_FIRST_ELEMENT_CLASS, SCROLL_OBSERVER_OBSERVING_LAST_ELEMENT_CLASS, SEO_DIRECTIVE_TOKEN, ScrollObserverFirstElementDirective, ScrollObserverIgnoreTargetDirective, ScrollObserverLastElementDirective, SelectionModel, SeoDirective, SmartBlockScrollStrategy, StructuredDataComponent, ToArrayPipe, TypedQueryList, VIEWPORT_CONFIG, ValidateAtLeastOneRequired, Validators, ViewportService, buildSignalEffects, clamp, clone, cloneFormGroup, createDestroy, createFlipAnimation, createFlipAnimationGroup, createMediaQueryObservable, createMutationObservable, createReactiveBindings, createResizeObservable, deleteCookie, elementCanScroll, equal, forceReflow, formatRuntimeError, fromNextFrame, getCookie, getDomain, getElementVisibleStates, getFormGroupValue, getGroupMatchPoints, getGroupMatchScore, getKnockoutMatchScore, getMatchScoreSubLine, hasCookie, inferMimeType, isElementVisible, isEmptyArray, isGroupMatch, isKnockoutMatch, isObjectArray, isPrimitiveArray, mergeSeoConfig, nextFrame, normalizeGameResultType, normalizeMatchParticipant, normalizeMatchParticipants, normalizeMatchScore, normalizeMatchState, normalizeMatchType, provideViewportConfig, round, routerDisableScrollTop, scrollToElement, setCookie, signalAttributes, signalClasses, signalHostAttributes, signalHostClasses, signalHostStyles, signalStyles, signalVisibilityChangeClasses, switchQueryListChanges, toArray, toArrayTrackByFn };
|
|
4448
4549
|
//# sourceMappingURL=ethlete-core.mjs.map
|