@ethlete/cdk 4.30.0 → 4.31.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.
@@ -2,9 +2,9 @@ import * as i1 from '@angular/cdk/portal';
2
2
  import { CdkPortal, PortalModule, ComponentPortal, TemplatePortal, CdkPortalOutlet } from '@angular/cdk/portal';
3
3
  import { AsyncPipe, NgClass, NgTemplateOutlet, JsonPipe, NgComponentOutlet, DOCUMENT, Location } from '@angular/common';
4
4
  import * as i0 from '@angular/core';
5
- import { Component, ViewEncapsulation, ChangeDetectionStrategy, InjectionToken, Directive, booleanAttribute, Input, ContentChild, ContentChildren, inject, ElementRef, Injector, HostBinding, input, numberAttribute, computed, signal, contentChildren, viewChild, viewChildren, isDevMode, Injectable, ChangeDetectorRef, TemplateRef, ViewContainerRef, ViewChild, forwardRef, EventEmitter, Output, ViewChildren, Optional, Inject, SkipSelf, HostListener, contentChild, effect, untracked, NgZone, NgModule, isSignal, DestroyRef, assertInInjectionContext, Attribute } from '@angular/core';
5
+ import { Component, ViewEncapsulation, ChangeDetectionStrategy, InjectionToken, Directive, booleanAttribute, Input, ContentChild, ContentChildren, inject, ElementRef, Injector, HostBinding, input, numberAttribute, computed, signal, contentChildren, viewChild, viewChildren, isDevMode, Injectable, ChangeDetectorRef, TemplateRef, ViewContainerRef, ViewChild, forwardRef, EventEmitter, Output, ViewChildren, Optional, Inject, SkipSelf, HostListener, contentChild, effect, untracked, NgZone, NgModule, DestroyRef, isSignal, assertInInjectionContext, Attribute } from '@angular/core';
6
6
  import * as i1$1 from '@ethlete/core';
7
- import { LetDirective, createDestroy, Memo, signalHostAttributes, signalHostClasses, previousSignalValue, signalHostStyles, nextFrame, syncSignal, signalStyles, injectHostElement, ObserveVisibilityDirective, signalVisibilityChangeClasses, IS_EMAIL, MUST_MATCH, IS_ARRAY_NOT_EMPTY, AT_LEAST_ONE_REQUIRED, equal, switchQueryListChanges, signalAttributes, ResizeObserverService, createFlipAnimation, AnimatedOverlayDirective, RuntimeError, SelectionModel, ActiveSelectionModel, KeyPressManager, signalClasses, scrollToElement, isEmptyArray, isObjectArray, isPrimitiveArray, createComponentId, ClickOutsideDirective, ANIMATED_LIFECYCLE_TOKEN, AnimatedLifecycleDirective, ObserveContentDirective, clamp, DELAYABLE_TOKEN, ObserveResizeDirective, SmartBlockScrollStrategy, RouterStateService, signalElementDimensions, signalElementScrollState, createIsRenderedSignal, createCanAnimateSignal, useCursorDragScroll, signalElementIntersection, signalElementChildren, getIntersectionInfo, getElementScrollCoordinates, ObserveScrollStateDirective, ClickObserverService, RootBoundaryDirective, elementCanScroll, cloneFormGroup, controlValueSignal, getFormGroupValue, fromNextFrame, ViewportService, ROOT_BOUNDARY_TOKEN, isElementVisible, AnimatedIfDirective, FocusVisibleService, inferMimeType, ScrollObserverIgnoreTargetDirective, TypedQueryList } from '@ethlete/core';
7
+ import { LetDirective, createDestroy, Memo, signalHostAttributes, signalHostClasses, previousSignalValue, signalHostStyles, nextFrame, syncSignal, signalStyles, injectHostElement, ObserveVisibilityDirective, signalVisibilityChangeClasses, IS_EMAIL, MUST_MATCH, IS_ARRAY_NOT_EMPTY, AT_LEAST_ONE_REQUIRED, equal, switchQueryListChanges, signalAttributes, ResizeObserverService, createFlipAnimation, AnimatedOverlayDirective, RuntimeError, SelectionModel, ActiveSelectionModel, KeyPressManager, signalClasses, scrollToElement, isEmptyArray, isObjectArray, isPrimitiveArray, createComponentId, ClickOutsideDirective, ANIMATED_LIFECYCLE_TOKEN, AnimatedLifecycleDirective, ObserveContentDirective, clamp, DELAYABLE_TOKEN, ObserveResizeDirective, SmartBlockScrollStrategy, RouterStateService, signalElementDimensions, signalElementScrollState, createIsRenderedSignal, createCanAnimateSignal, useCursorDragScroll, signalElementIntersection, signalElementChildren, getIntersectionInfo, getElementScrollCoordinates, ObserveScrollStateDirective, ClickObserverService, RootBoundaryDirective, elementCanScroll, cloneFormGroup, controlValueSignal, getFormGroupValue, ViewportService, ROOT_BOUNDARY_TOKEN, fromNextFrame, isElementVisible, AnimatedIfDirective, FocusVisibleService, inferMimeType, ScrollObserverIgnoreTargetDirective, TypedQueryList } from '@ethlete/core';
8
8
  import { BehaviorSubject, startWith, map, switchMap, combineLatest, pairwise, tap, takeUntil, skip, of, merge, timer, takeWhile, filter, fromEvent, Subject, Observable, debounceTime, withLatestFrom, distinctUntilChanged, take, skipUntil, skipWhile, catchError, throwError, defer, partition, from, finalize, Subscription } from 'rxjs';
9
9
  import { trigger, state, style, transition, animate } from '@angular/animations';
10
10
  import { __decorate, __metadata } from 'tslib';
@@ -12142,699 +12142,740 @@ const createOverlayConfig = (globalConfig, localConfig) => ({
12142
12142
  ...(localConfig || {}),
12143
12143
  });
12144
12144
 
12145
- const ET_OVERLAY_LEFT_SHEET_CLASS = 'et-overlay--left-sheet';
12146
- const ET_OVERLAY_RIGHT_SHEET_CLASS = 'et-overlay--right-sheet';
12147
- const ET_OVERLAY_TOP_SHEET_CLASS = 'et-overlay--top-sheet';
12148
- const ET_OVERLAY_BOTTOM_SHEET_CLASS = 'et-overlay--bottom-sheet';
12149
- const ET_OVERLAY_DIALOG_CLASS = 'et-overlay--dialog';
12150
- const ET_OVERLAY_FULL_SCREEN_DIALOG_CLASS = 'et-overlay--full-screen-dialog';
12151
- const ET_OVERLAY_CONFIG_CLASS_KEYS = new Set([
12152
- 'containerClass',
12153
- 'paneClass',
12154
- 'overlayClass',
12155
- 'backdropClass',
12156
- 'documentClass',
12157
- 'bodyClass',
12158
- ]);
12159
- const ET_OVERLAY_LAYOUT_CLASSES = new Set([
12160
- ET_OVERLAY_LEFT_SHEET_CLASS,
12161
- ET_OVERLAY_RIGHT_SHEET_CLASS,
12162
- ET_OVERLAY_TOP_SHEET_CLASS,
12163
- ET_OVERLAY_BOTTOM_SHEET_CLASS,
12164
- ET_OVERLAY_DIALOG_CLASS,
12165
- ET_OVERLAY_FULL_SCREEN_DIALOG_CLASS,
12166
- ]);
12167
- class OverlayPositionBuilder {
12168
- constructor() {
12169
- this._overlay = inject(Overlay);
12170
- this.DEFAULTS = {
12171
- dialog: {
12172
- width: undefined,
12173
- height: undefined,
12174
- maxHeight: '80vh',
12175
- maxWidth: '80vw',
12176
- minHeight: undefined,
12177
- minWidth: undefined,
12178
- containerClass: ET_OVERLAY_DIALOG_CLASS,
12179
- positionStrategy: () => this._overlay.position().global().centerHorizontally().centerVertically(),
12180
- },
12181
- fullScreenDialog: {
12182
- width: '100%',
12183
- height: '100%',
12184
- maxHeight: undefined,
12185
- maxWidth: undefined,
12186
- minHeight: undefined,
12187
- minWidth: undefined,
12188
- containerClass: ET_OVERLAY_FULL_SCREEN_DIALOG_CLASS,
12189
- positionStrategy: () => this._overlay.position().global().left('0').top('0').bottom('0').right('0'),
12190
- documentClass: 'et-overlay--full-screen-dialog-document',
12191
- applyTransformOrigin: true,
12192
- },
12193
- bottomSheet: {
12194
- width: '100%',
12195
- height: undefined,
12196
- maxHeight: 'calc(100% - 72px)',
12197
- maxWidth: '640px',
12198
- minHeight: undefined,
12199
- minWidth: undefined,
12200
- containerClass: ET_OVERLAY_BOTTOM_SHEET_CLASS,
12201
- positionStrategy: () => this._overlay.position().global().centerHorizontally().bottom('0'),
12202
- dragToDismiss: {
12203
- direction: 'to-bottom',
12204
- },
12205
- },
12206
- topSheet: {
12207
- width: '100%',
12208
- height: undefined,
12209
- maxHeight: 'calc(100% - 72px)',
12210
- maxWidth: '640px',
12211
- minHeight: undefined,
12212
- minWidth: undefined,
12213
- containerClass: ET_OVERLAY_TOP_SHEET_CLASS,
12214
- positionStrategy: () => this._overlay.position().global().centerHorizontally().top('0'),
12215
- dragToDismiss: {
12216
- direction: 'to-top',
12217
- },
12218
- },
12219
- leftSheet: {
12220
- width: '100%',
12221
- height: '100%',
12222
- maxHeight: undefined,
12223
- maxWidth: '640px',
12224
- minHeight: undefined,
12225
- minWidth: undefined,
12226
- containerClass: ET_OVERLAY_LEFT_SHEET_CLASS,
12227
- positionStrategy: () => this._overlay.position().global().left('0').centerVertically(),
12228
- dragToDismiss: {
12229
- direction: 'to-left',
12230
- },
12231
- },
12232
- rightSheet: {
12233
- width: '100%',
12234
- height: '100%',
12235
- maxHeight: undefined,
12236
- maxWidth: '640px',
12237
- minHeight: undefined,
12238
- minWidth: undefined,
12239
- containerClass: ET_OVERLAY_RIGHT_SHEET_CLASS,
12240
- positionStrategy: () => this._overlay.position().global().right('0').centerVertically(),
12241
- dragToDismiss: {
12242
- direction: 'to-right',
12243
- },
12244
- },
12245
- };
12246
- }
12247
- transformingBottomSheetToDialog(customConfig) {
12248
- const data = [
12249
- {
12250
- config: this.mergeConfigs(this.DEFAULTS.bottomSheet, customConfig?.bottomSheet ?? {}),
12251
- },
12252
- {
12253
- breakpoint: customConfig?.breakpoint ?? 'md',
12254
- config: this.mergeConfigs(this.DEFAULTS.dialog, customConfig?.dialog ?? {}),
12255
- },
12256
- ];
12257
- return data;
12145
+ let uniqueId$1 = 0;
12146
+ const ID_PREFIX = 'et-overlay-';
12147
+ const setStyle = (el, style, value) => {
12148
+ if (value === null || value === undefined) {
12149
+ el.style.removeProperty(style);
12258
12150
  }
12259
- transformingFullScreenDialogToRightSheet(customConfig) {
12260
- const data = [
12261
- {
12262
- config: this.mergeConfigs(this.DEFAULTS.fullScreenDialog, customConfig?.fullScreenDialog ?? {}),
12263
- },
12264
- {
12265
- breakpoint: customConfig?.breakpoint ?? 'md',
12266
- config: this.mergeConfigs(this.DEFAULTS.rightSheet, customConfig?.rightSheet ?? {}),
12267
- },
12268
- ];
12269
- return data;
12151
+ else {
12152
+ el.style.setProperty(style, coerceCssPixelValue(value));
12270
12153
  }
12271
- transformingFullScreenDialogToDialog(customConfig) {
12272
- const data = [
12273
- {
12274
- config: this.mergeConfigs(this.DEFAULTS.fullScreenDialog, customConfig?.fullScreenDialog ?? {}),
12275
- },
12276
- {
12277
- breakpoint: customConfig?.breakpoint ?? 'md',
12278
- config: this.mergeConfigs(this.DEFAULTS.dialog, customConfig?.dialog ?? {}),
12279
- },
12280
- ];
12281
- return data;
12154
+ };
12155
+ const setClass = (el, prevClass, currClass) => {
12156
+ if (!equal(prevClass, currClass)) {
12157
+ if (prevClass) {
12158
+ if (Array.isArray(prevClass)) {
12159
+ el.classList.remove(...prevClass);
12160
+ }
12161
+ else {
12162
+ el.classList.remove(prevClass);
12163
+ }
12164
+ }
12165
+ if (currClass) {
12166
+ if (Array.isArray(currClass)) {
12167
+ el.classList.add(...currClass);
12168
+ }
12169
+ else {
12170
+ el.classList.add(currClass);
12171
+ }
12172
+ }
12282
12173
  }
12283
- dialog(customConfig) {
12284
- const data = [
12285
- {
12286
- config: this.mergeConfigs(this.DEFAULTS.dialog, customConfig ?? {}),
12287
- },
12288
- ];
12289
- return data;
12174
+ };
12175
+ const isHtmlElement = (element) => {
12176
+ return element instanceof HTMLElement;
12177
+ };
12178
+ const isTouchEvent = (event) => {
12179
+ return event.type[0] === 't';
12180
+ };
12181
+ const isPointerEvent = (event) => {
12182
+ return event.type[0] === 'c';
12183
+ };
12184
+ class OverlayService {
12185
+ constructor() {
12186
+ this._destroy$ = createDestroy();
12187
+ this._defaultOptions = inject(OVERLAY_DEFAULT_OPTIONS, { optional: true });
12188
+ this._scrollStrategy = inject(OVERLAY_SCROLL_STRATEGY);
12189
+ this._parentOverlayService = inject(OverlayService, { optional: true, skipSelf: true });
12190
+ this._dialog = inject(Dialog);
12191
+ this._viewportService = inject(ViewportService);
12192
+ this._openOverlaysAtThisLevel = [];
12193
+ this._afterAllClosedAtThisLevel = new Subject();
12194
+ this._afterOpenedAtThisLevel = new Subject();
12195
+ this.positions = new OverlayPositionBuilder();
12196
+ this.afterAllClosed = defer(() => this.openOverlays.length ? this._getAfterAllClosed() : this._getAfterAllClosed().pipe(startWith(undefined)));
12290
12197
  }
12291
- fullScreenDialog(customConfig) {
12292
- const data = [
12293
- {
12294
- config: this.mergeConfigs(this.DEFAULTS.fullScreenDialog, customConfig ?? {}),
12295
- },
12296
- ];
12297
- return data;
12198
+ get openOverlays() {
12199
+ return this._parentOverlayService ? this._parentOverlayService.openOverlays : this._openOverlaysAtThisLevel;
12298
12200
  }
12299
- bottomSheet(customConfig) {
12300
- const data = [
12301
- {
12302
- config: this.mergeConfigs(this.DEFAULTS.bottomSheet, customConfig ?? {}),
12303
- },
12304
- ];
12305
- return data;
12201
+ get afterOpened() {
12202
+ return this._parentOverlayService ? this._parentOverlayService.afterOpened : this._afterOpenedAtThisLevel;
12306
12203
  }
12307
- topSheet(customConfig) {
12308
- const data = [
12309
- {
12310
- config: this.mergeConfigs(this.DEFAULTS.topSheet, customConfig ?? {}),
12311
- },
12312
- ];
12313
- return data;
12204
+ ngOnDestroy() {
12205
+ this._closeOverlays(this._openOverlaysAtThisLevel);
12206
+ this._afterAllClosedAtThisLevel.complete();
12207
+ this._afterOpenedAtThisLevel.complete();
12314
12208
  }
12315
- leftSheet(customConfig) {
12316
- const data = [
12317
- {
12318
- config: this.mergeConfigs(this.DEFAULTS.leftSheet, customConfig ?? {}),
12209
+ open(componentOrTemplateRef, config) {
12210
+ let overlayRef;
12211
+ const composedConfig = createOverlayConfig(this._defaultOptions, config);
12212
+ composedConfig.id = composedConfig.id || `${ID_PREFIX}${uniqueId$1++}`;
12213
+ composedConfig.scrollStrategy = composedConfig.scrollStrategy || this._scrollStrategy();
12214
+ const cdkRef = this._dialog.open(componentOrTemplateRef, {
12215
+ ...composedConfig,
12216
+ disableClose: true,
12217
+ closeOnDestroy: false,
12218
+ panelClass: 'et-overlay-pane',
12219
+ container: {
12220
+ type: OverlayContainerComponent,
12221
+ providers: () => [
12222
+ { provide: OVERLAY_CONFIG, useValue: composedConfig },
12223
+ { provide: DialogConfig, useValue: composedConfig },
12224
+ ],
12319
12225
  },
12320
- ];
12321
- return data;
12322
- }
12323
- rightSheet(customConfig) {
12324
- const data = [
12325
- {
12326
- config: this.mergeConfigs(this.DEFAULTS.rightSheet, customConfig ?? {}),
12226
+ templateContext: () => ({ dialogRef: overlayRef }),
12227
+ providers: (ref, cdkConfig, overlayContainer) => {
12228
+ const container = overlayContainer;
12229
+ overlayRef = new OverlayRef(ref, composedConfig, container);
12230
+ return [
12231
+ { provide: OverlayContainerComponent, useValue: overlayContainer },
12232
+ { provide: THEME_PROVIDER, useValue: container._themeProvider },
12233
+ { provide: ProvideThemeDirective, useValue: container._themeProvider },
12234
+ { provide: ROOT_BOUNDARY_TOKEN, useValue: container._rootBoundary },
12235
+ { provide: RootBoundaryDirective, useValue: container._rootBoundary },
12236
+ { provide: OVERLAY_DATA, useValue: cdkConfig.data },
12237
+ { provide: OverlayRef, useValue: overlayRef },
12238
+ ...(composedConfig.providers ?? []),
12239
+ ];
12327
12240
  },
12328
- ];
12329
- return data;
12330
- }
12331
- mergeConfigs(...configs) {
12332
- const combinedConfig = {};
12333
- for (const config of configs) {
12334
- for (const configKey of Object.keys(config)) {
12335
- const key = configKey;
12336
- const newConfigValue = config[key];
12337
- if (ET_OVERLAY_CONFIG_CLASS_KEYS.has(configKey)) {
12338
- const existing = combinedConfig[key];
12339
- if (existing && Array.isArray(existing)) {
12340
- if (Array.isArray(newConfigValue)) {
12341
- existing.push(...newConfigValue);
12342
- }
12343
- else if (typeof newConfigValue === 'string') {
12344
- existing.push(newConfigValue);
12345
- }
12346
- const totalLayoutClassesInExisting = existing.filter((value) => ET_OVERLAY_LAYOUT_CLASSES.has(value)).length;
12347
- if (totalLayoutClassesInExisting > 1) {
12348
- throw new Error(`Multiple layout classes are not allowed in the same config key: ${key}`);
12349
- }
12350
- }
12351
- else if (typeof newConfigValue === 'string') {
12352
- combinedConfig[key] = [newConfigValue];
12353
- }
12354
- else if (Array.isArray(newConfigValue)) {
12355
- combinedConfig[key] = newConfigValue;
12356
- }
12241
+ });
12242
+ /* eslint-disable @typescript-eslint/no-non-null-assertion*/
12243
+ overlayRef.componentRef = cdkRef.componentRef;
12244
+ overlayRef.componentInstance = cdkRef.componentInstance;
12245
+ cdkRef.containerInstance.overlayRef = overlayRef;
12246
+ const containerEl = overlayRef._containerInstance.elementRef.nativeElement;
12247
+ const overlayPaneEl = cdkRef.overlayRef.overlayElement;
12248
+ const backdropEl = cdkRef.overlayRef.backdropElement;
12249
+ const overlayWrapper = cdkRef.overlayRef.hostElement;
12250
+ const defaultAnimationBuffer = 50; // 50px since the default animation uses spring physics and thus will overshoot.
12251
+ const useDefaultAnimation = composedConfig.customAnimated !== true;
12252
+ const origin = composedConfig.origin;
12253
+ combineLatest(composedConfig.positions.map((breakpoint) => (breakpoint.breakpoint ? this._viewportService.observe({ min: breakpoint.breakpoint }) : of(true)).pipe(map((isActive) => ({
12254
+ isActive,
12255
+ config: breakpoint.config,
12256
+ size: typeof breakpoint.breakpoint === 'number'
12257
+ ? breakpoint.breakpoint
12258
+ : breakpoint.breakpoint === undefined
12259
+ ? 0
12260
+ : this._viewportService.getBreakpointSize(breakpoint.breakpoint, 'min'),
12261
+ })))))
12262
+ .pipe(takeUntil(overlayRef.afterClosed()), takeUntil(this._destroy$), map((entries) => {
12263
+ const activeBreakpoints = entries.filter((entry) => entry.isActive);
12264
+ const highestBreakpoint = activeBreakpoints.reduce((prev, curr) => (prev.size > curr.size ? prev : curr));
12265
+ return highestBreakpoint.config;
12266
+ }), startWith(null), pairwise(), tap(([prevConfig, currConfig]) => {
12267
+ if (!currConfig)
12268
+ return;
12269
+ const containerClass = currConfig.containerClass;
12270
+ const applyDefaultMaxWidths = () => {
12271
+ setStyle(overlayPaneEl, 'max-width', currConfig.maxWidth);
12272
+ setStyle(overlayPaneEl, 'max-height', currConfig.maxHeight);
12273
+ };
12274
+ const combineOrMakeCalc = (value, append) => {
12275
+ if (!value)
12276
+ return append;
12277
+ if (typeof value === 'number') {
12278
+ return `calc(${value}px + ${append})`;
12279
+ }
12280
+ else if (value.startsWith('calc(')) {
12281
+ return `${value.slice(0, value.length - 1)} + ${append})`;
12282
+ }
12283
+ return `calc(${value} + ${append})`;
12284
+ };
12285
+ if (origin) {
12286
+ // TODO: If getBoundingClientRect is used it should use the center of the element.
12287
+ const originX = isHtmlElement(origin)
12288
+ ? origin.getBoundingClientRect().left
12289
+ : isTouchEvent(origin)
12290
+ ? origin.targetTouches[0].clientX
12291
+ : isPointerEvent(origin)
12292
+ ? origin.clientX !== 0
12293
+ ? origin.clientX
12294
+ : origin.target.getBoundingClientRect().left
12295
+ : -1;
12296
+ const originY = isHtmlElement(origin)
12297
+ ? origin.getBoundingClientRect().top
12298
+ : isTouchEvent(origin)
12299
+ ? origin.targetTouches[0].clientY
12300
+ : isPointerEvent(origin)
12301
+ ? origin.clientY !== 0
12302
+ ? origin.clientY
12303
+ : origin.target.getBoundingClientRect().top
12304
+ : -1;
12305
+ if (originX !== -1 && originY !== -1 && currConfig.applyTransformOrigin) {
12306
+ setStyle(containerEl, 'transform-origin', `${originX}px ${originY}px`);
12357
12307
  }
12358
12308
  else {
12359
- combinedConfig[key] = newConfigValue;
12309
+ setStyle(containerEl, 'transform-origin', null);
12360
12310
  }
12361
12311
  }
12362
- }
12363
- return combinedConfig;
12364
- }
12365
- }
12366
-
12367
- const OVERLAY_ROUTER_CONFIG_TOKEN = new InjectionToken('OVERLAY_ROUTER_CONFIG_TOKEN');
12368
- class OverlayRouterService {
12369
- constructor() {
12370
- this._router = inject(Router);
12371
- this._routerStateService = inject(RouterStateService);
12372
- this._id = createComponentId('ovr');
12373
- this._overlayRef = inject(OverlayRef);
12374
- this._config = inject(OVERLAY_ROUTER_CONFIG_TOKEN);
12375
- this._syncCurrentRoute = signal(this._getInitialRoute());
12376
- this._nativeBrowserTempBackNavigationStack = signal([]);
12377
- // The current route, but delayed by one frame to ensure that the needed animation classes are applied.
12378
- this.currentRoute = toSignal(toObservable(this._syncCurrentRoute).pipe(switchMap((r) => fromNextFrame().pipe(map(() => r)))), { initialValue: this._getInitialRoute() });
12379
- this.extraRoutes = signal([]);
12380
- this.transitionType = signal('slide');
12381
- this.routes = computed(() => {
12382
- const allRoutes = [...this._config.routes, ...this.extraRoutes()];
12383
- const allRoundsWithTransformedInputs = allRoutes.map((route) => {
12384
- return {
12385
- ...route,
12386
- inputs: Object.entries(route.inputs ?? {}).reduce((acc, [key, value]) => {
12387
- if (isSignal(value)) {
12388
- acc[key] = value();
12389
- }
12390
- else {
12391
- acc[key] = value;
12392
- }
12393
- return acc;
12394
- }, {}),
12395
- };
12396
- });
12397
- return allRoundsWithTransformedInputs;
12398
- });
12399
- this.currentPage = computed(() => {
12400
- const currentRoute = this._syncCurrentRoute();
12401
- for (const route of this.routes()) {
12402
- if (route.path === currentRoute) {
12403
- return route;
12312
+ if (useDefaultAnimation && containerClass?.length) {
12313
+ if (containerClass?.includes(ET_OVERLAY_LEFT_SHEET_CLASS) ||
12314
+ containerClass?.includes(ET_OVERLAY_RIGHT_SHEET_CLASS)) {
12315
+ setStyle(overlayPaneEl, 'max-width', combineOrMakeCalc(currConfig.maxWidth, `${defaultAnimationBuffer}px`));
12316
+ setStyle(overlayPaneEl, 'max-height', currConfig.maxHeight);
12404
12317
  }
12405
- }
12406
- return null;
12407
- });
12408
- this.navigationDirection = signal('forward');
12409
- this._disableCloseOnNavigation();
12410
- this._updateBrowserUrl(this._syncCurrentRoute());
12411
- this._routerStateService
12412
- .selectQueryParam(this._id)
12413
- .pipe(takeUntilDestroyed(), skip(1), tap((route) => {
12414
- // The user navigated back or forward using the browser history
12415
- if (!route) {
12416
- // The route query param no longer exists - close the overlay
12417
- this._overlayRef.close();
12418
- }
12419
- else if (route !== this._syncCurrentRoute()) {
12420
- const navStack = this._nativeBrowserTempBackNavigationStack();
12421
- const currentRoute = this._syncCurrentRoute();
12422
- if (!navStack.length) {
12423
- // If the nav stack is empty the only way to navigate is back.
12424
- this.navigate(route, { navigationDirection: 'backward' });
12425
- this._nativeBrowserTempBackNavigationStack.set([currentRoute]);
12318
+ else if (containerClass?.includes(ET_OVERLAY_TOP_SHEET_CLASS) ||
12319
+ containerClass?.includes(ET_OVERLAY_BOTTOM_SHEET_CLASS)) {
12320
+ setStyle(overlayPaneEl, 'max-height', combineOrMakeCalc(currConfig.maxHeight, `${defaultAnimationBuffer}px`));
12321
+ setStyle(overlayPaneEl, 'max-width', currConfig.maxWidth);
12426
12322
  }
12427
12323
  else {
12428
- const lastItem = navStack[navStack.length - 1];
12429
- if (route === lastItem) {
12430
- // The new route matches the last item in the back nav stack.
12431
- // This means we are going forward again.
12432
- this.navigate(route, { navigationDirection: 'forward' });
12433
- this._nativeBrowserTempBackNavigationStack.set(navStack.slice(0, -1));
12434
- }
12435
- else {
12436
- // Else we are going back.
12437
- this.navigate(route, { navigationDirection: 'backward' });
12438
- this._nativeBrowserTempBackNavigationStack.set([...navStack, currentRoute]);
12439
- }
12324
+ applyDefaultMaxWidths();
12440
12325
  }
12441
12326
  }
12442
12327
  else {
12443
- // The navigation was triggered by ui interaction. Clear the back nav stack.
12444
- this._nativeBrowserTempBackNavigationStack.set([]);
12328
+ applyDefaultMaxWidths();
12329
+ }
12330
+ setStyle(overlayPaneEl, 'min-width', currConfig.minWidth);
12331
+ setStyle(overlayPaneEl, 'min-height', currConfig.minHeight);
12332
+ setStyle(overlayPaneEl, 'width', currConfig.width);
12333
+ setStyle(overlayPaneEl, 'height', currConfig.height);
12334
+ setClass(containerEl, prevConfig?.containerClass, currConfig?.containerClass);
12335
+ setClass(overlayPaneEl, prevConfig?.paneClass, currConfig?.paneClass);
12336
+ setClass(overlayWrapper, prevConfig?.overlayClass, currConfig?.overlayClass);
12337
+ // FIXME: These classes should only be removed if no open overlays require them inside their config.
12338
+ setClass(document.documentElement, prevConfig?.documentClass, currConfig?.documentClass);
12339
+ setClass(document.body, prevConfig?.bodyClass, currConfig?.bodyClass);
12340
+ if (backdropEl) {
12341
+ setClass(backdropEl, prevConfig?.backdropClass, currConfig?.backdropClass);
12342
+ }
12343
+ if (!equal(prevConfig?.position, currConfig?.position)) {
12344
+ overlayRef.updatePosition(currConfig.position);
12345
+ }
12346
+ if (currConfig.positionStrategy) {
12347
+ cdkRef.overlayRef.updatePositionStrategy(currConfig.positionStrategy());
12348
+ }
12349
+ else {
12350
+ cdkRef.overlayRef.updatePosition();
12351
+ }
12352
+ if (currConfig.dragToDismiss) {
12353
+ overlayRef._containerInstance._enableDragToDismiss(currConfig.dragToDismiss);
12354
+ }
12355
+ else {
12356
+ overlayRef._containerInstance._disableDragToDismiss();
12445
12357
  }
12446
12358
  }))
12447
12359
  .subscribe();
12448
- inject(DestroyRef).onDestroy(() => {
12449
- // Remove the dialog route from the browser url
12450
- this._updateBrowserUrl(undefined);
12360
+ this.openOverlays.push(overlayRef);
12361
+ this.afterOpened.next(overlayRef);
12362
+ overlayRef.beforeClosed().subscribe(() => {
12363
+ // FIXME: These classes should only be removed if no open overlays require them inside their config.
12364
+ const documentClasses = composedConfig.positions.map((position) => position.config.documentClass);
12365
+ for (const klass of documentClasses) {
12366
+ if (!klass)
12367
+ continue;
12368
+ if (Array.isArray(klass)) {
12369
+ document.documentElement.classList.remove(...klass);
12370
+ }
12371
+ else {
12372
+ document.documentElement.classList.remove(klass);
12373
+ }
12374
+ }
12375
+ const bodyClasses = composedConfig.positions.map((position) => position.config.bodyClass);
12376
+ for (const klass of bodyClasses) {
12377
+ if (!klass)
12378
+ continue;
12379
+ if (Array.isArray(klass)) {
12380
+ document.body.classList.remove(...klass);
12381
+ }
12382
+ else {
12383
+ document.body.classList.remove(klass);
12384
+ }
12385
+ }
12451
12386
  });
12452
- }
12453
- navigate(route, config) {
12454
- const resolvedRoute = this.resolvePath(route);
12455
- if (config?.navigationDirection) {
12456
- this.navigationDirection.set(config.navigationDirection);
12457
- }
12458
- else if (resolvedRoute.type === 'back') {
12459
- this.navigationDirection.set('backward');
12460
- }
12461
- else {
12462
- this.navigationDirection.set('forward');
12463
- }
12464
- this._updateCurrentRoute(resolvedRoute.route);
12465
- }
12466
- resolvePath(route) {
12467
- if (Array.isArray(route)) {
12468
- route = route.join('/');
12469
- }
12470
- if (route === '') {
12471
- route = '/';
12472
- }
12473
- const isAbsolute = route.startsWith('/');
12474
- const isReplaceCurrent = route.startsWith('./');
12475
- const isBack = route.startsWith('../');
12476
- const isForward = !isAbsolute && !isReplaceCurrent && !isBack;
12477
- const curr = this._syncCurrentRoute();
12478
- if (isForward) {
12479
- route = `${curr}/${route}`;
12480
- }
12481
- else if (isReplaceCurrent) {
12482
- const currSegments = curr.split('/').filter((s) => s !== '');
12483
- currSegments.pop();
12484
- const newSegments = route.split('/').filter((s) => s !== '.');
12485
- route = `/${currSegments.concat(newSegments).join('/')}`;
12486
- }
12487
- else if (isBack) {
12488
- const currSegments = curr.split('/').filter((s) => s !== '');
12489
- const newSegments = route.split('/').filter((s) => s !== '..');
12490
- const stepsBack = route.split('/').filter((s) => s === '..').length;
12491
- for (let i = 0; i < stepsBack; i++) {
12492
- currSegments.pop();
12387
+ overlayRef.afterClosed().subscribe(() => {
12388
+ const index = this.openOverlays.indexOf(overlayRef);
12389
+ if (index === -1)
12390
+ return;
12391
+ this.openOverlays.splice(index, 1);
12392
+ if (!this.openOverlays.length) {
12393
+ this._getAfterAllClosed().next();
12493
12394
  }
12494
- route = `/${currSegments.concat(newSegments).join('/')}`;
12495
- }
12496
- return {
12497
- route,
12498
- type: isBack || route === '/'
12499
- ? 'back'
12500
- : isReplaceCurrent
12501
- ? 'replace-current'
12502
- : isAbsolute
12503
- ? 'absolute'
12504
- : isForward
12505
- ? 'forward'
12506
- : 'unknown',
12507
- };
12395
+ });
12396
+ return overlayRef;
12397
+ /* eslint-enable @typescript-eslint/no-non-null-assertion*/
12508
12398
  }
12509
- addRoute(route) {
12510
- this.extraRoutes.set([...this.extraRoutes(), route]);
12399
+ closeAll() {
12400
+ this._closeOverlays(this.openOverlays);
12511
12401
  }
12512
- removeRoute(path) {
12513
- this.extraRoutes.set(this.extraRoutes().filter((r) => r.path !== path));
12402
+ getOverlayById(id) {
12403
+ return this.openOverlays.find((overlay) => overlay.id === id);
12514
12404
  }
12515
- _updateCurrentRoute(route) {
12516
- if (route === this._syncCurrentRoute())
12517
- return;
12518
- if (this.routes().findIndex((r) => r.path === route) === -1) {
12519
- console.error(`The route "${route}" does not exist.`, this._config);
12520
- return;
12405
+ _closeOverlays(overlays) {
12406
+ let i = overlays.length;
12407
+ while (i--) {
12408
+ overlays[i]?.close();
12521
12409
  }
12522
- this._syncCurrentRoute.set(route);
12523
- this._updateBrowserUrl(route);
12524
- }
12525
- _getInitialRoute() {
12526
- return this._config.initialRoute ?? this._config.routes[0]?.path ?? '/';
12527
- }
12528
- _navigateToInitialRoute() {
12529
- this._updateCurrentRoute(this._getInitialRoute());
12530
- }
12531
- _updateBrowserUrl(route) {
12532
- this._router.navigate([this._routerStateService.route], {
12533
- queryParams: { [this._id]: route },
12534
- queryParamsHandling: 'merge',
12535
- });
12536
12410
  }
12537
- _disableCloseOnNavigation() {
12538
- // @ts-expect-error - private property
12539
- this._overlayRef._cdkRef.overlayRef._locationChanges?.unsubscribe?.();
12411
+ _getAfterAllClosed() {
12412
+ const parent = this._parentOverlayService;
12413
+ return parent ? parent._getAfterAllClosed() : this._afterAllClosedAtThisLevel;
12540
12414
  }
12415
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: OverlayService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
12416
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: OverlayService }); }
12541
12417
  }
12542
- const provideOverlayRouterConfig = (config) => {
12543
- return [
12544
- {
12545
- provide: OVERLAY_ROUTER_CONFIG_TOKEN,
12546
- useValue: config,
12547
- },
12548
- ];
12549
- };
12418
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: OverlayService, decorators: [{
12419
+ type: Injectable
12420
+ }] });
12550
12421
 
12551
- function getClosestOverlay(element, openOverlays) {
12552
- let parent = element.nativeElement.parentElement;
12553
- while (parent && !parent.classList.contains('et-overlay')) {
12554
- parent = parent.parentElement;
12555
- }
12556
- return parent ? openOverlays.find((overlay) => overlay.id === parent?.id) : null;
12557
- }
12558
- const provideOverlayDefaultConfig = (config = {}) => {
12559
- return { provide: OVERLAY_DEFAULT_OPTIONS, useValue: createOverlayConfig(config) };
12422
+ const createOverlayHandler = (rootConfig) => {
12423
+ const fn = (innerConfig) => {
12424
+ const overlayService = inject(OverlayService);
12425
+ const viewContainerRef = inject(ViewContainerRef);
12426
+ const overlayRef = inject(OverlayRef, { optional: true });
12427
+ const destroyRef = inject(DestroyRef);
12428
+ const tpl = rootConfig.component ?? rootConfig.template;
12429
+ if (!tpl) {
12430
+ throw new Error('Either component or template must be provided');
12431
+ }
12432
+ const open = (config) => {
12433
+ const ref = overlayService.open(tpl, {
12434
+ viewContainerRef,
12435
+ ...rootConfig,
12436
+ positions: rootConfig.positions(overlayService.positions),
12437
+ ...config,
12438
+ });
12439
+ const afterClosedFn = innerConfig?.afterClosed;
12440
+ if (afterClosedFn) {
12441
+ ref
12442
+ .afterClosed()
12443
+ .pipe(takeUntilDestroyed(destroyRef), tap((r) => afterClosedFn(r ?? null)))
12444
+ .subscribe();
12445
+ }
12446
+ return ref;
12447
+ };
12448
+ const getOverlayRef = () => {
12449
+ if (!overlayRef) {
12450
+ throw new Error('OverlayRef is only available inside the overlay component or templateRef');
12451
+ }
12452
+ return overlayRef;
12453
+ };
12454
+ const handler = {
12455
+ open,
12456
+ getOverlayRef,
12457
+ };
12458
+ return handler;
12459
+ };
12460
+ return fn;
12560
12461
  };
12561
12462
 
12562
- let uniqueId$1 = 0;
12563
- const ID_PREFIX = 'et-overlay-';
12564
- const setStyle = (el, style, value) => {
12565
- if (value === null || value === undefined) {
12566
- el.style.removeProperty(style);
12463
+ const ET_OVERLAY_LEFT_SHEET_CLASS = 'et-overlay--left-sheet';
12464
+ const ET_OVERLAY_RIGHT_SHEET_CLASS = 'et-overlay--right-sheet';
12465
+ const ET_OVERLAY_TOP_SHEET_CLASS = 'et-overlay--top-sheet';
12466
+ const ET_OVERLAY_BOTTOM_SHEET_CLASS = 'et-overlay--bottom-sheet';
12467
+ const ET_OVERLAY_DIALOG_CLASS = 'et-overlay--dialog';
12468
+ const ET_OVERLAY_FULL_SCREEN_DIALOG_CLASS = 'et-overlay--full-screen-dialog';
12469
+ const ET_OVERLAY_CONFIG_CLASS_KEYS = new Set([
12470
+ 'containerClass',
12471
+ 'paneClass',
12472
+ 'overlayClass',
12473
+ 'backdropClass',
12474
+ 'documentClass',
12475
+ 'bodyClass',
12476
+ ]);
12477
+ const ET_OVERLAY_LAYOUT_CLASSES = new Set([
12478
+ ET_OVERLAY_LEFT_SHEET_CLASS,
12479
+ ET_OVERLAY_RIGHT_SHEET_CLASS,
12480
+ ET_OVERLAY_TOP_SHEET_CLASS,
12481
+ ET_OVERLAY_BOTTOM_SHEET_CLASS,
12482
+ ET_OVERLAY_DIALOG_CLASS,
12483
+ ET_OVERLAY_FULL_SCREEN_DIALOG_CLASS,
12484
+ ]);
12485
+ class OverlayPositionBuilder {
12486
+ constructor() {
12487
+ this._overlay = inject(Overlay);
12488
+ this.DEFAULTS = {
12489
+ dialog: {
12490
+ width: undefined,
12491
+ height: undefined,
12492
+ maxHeight: '80vh',
12493
+ maxWidth: '80vw',
12494
+ minHeight: undefined,
12495
+ minWidth: undefined,
12496
+ containerClass: ET_OVERLAY_DIALOG_CLASS,
12497
+ positionStrategy: () => this._overlay.position().global().centerHorizontally().centerVertically(),
12498
+ },
12499
+ fullScreenDialog: {
12500
+ width: '100%',
12501
+ height: '100%',
12502
+ maxHeight: undefined,
12503
+ maxWidth: undefined,
12504
+ minHeight: undefined,
12505
+ minWidth: undefined,
12506
+ containerClass: ET_OVERLAY_FULL_SCREEN_DIALOG_CLASS,
12507
+ positionStrategy: () => this._overlay.position().global().left('0').top('0').bottom('0').right('0'),
12508
+ documentClass: 'et-overlay--full-screen-dialog-document',
12509
+ applyTransformOrigin: true,
12510
+ },
12511
+ bottomSheet: {
12512
+ width: '100%',
12513
+ height: undefined,
12514
+ maxHeight: 'calc(100% - 72px)',
12515
+ maxWidth: '640px',
12516
+ minHeight: undefined,
12517
+ minWidth: undefined,
12518
+ containerClass: ET_OVERLAY_BOTTOM_SHEET_CLASS,
12519
+ positionStrategy: () => this._overlay.position().global().centerHorizontally().bottom('0'),
12520
+ dragToDismiss: {
12521
+ direction: 'to-bottom',
12522
+ },
12523
+ },
12524
+ topSheet: {
12525
+ width: '100%',
12526
+ height: undefined,
12527
+ maxHeight: 'calc(100% - 72px)',
12528
+ maxWidth: '640px',
12529
+ minHeight: undefined,
12530
+ minWidth: undefined,
12531
+ containerClass: ET_OVERLAY_TOP_SHEET_CLASS,
12532
+ positionStrategy: () => this._overlay.position().global().centerHorizontally().top('0'),
12533
+ dragToDismiss: {
12534
+ direction: 'to-top',
12535
+ },
12536
+ },
12537
+ leftSheet: {
12538
+ width: '100%',
12539
+ height: '100%',
12540
+ maxHeight: undefined,
12541
+ maxWidth: '640px',
12542
+ minHeight: undefined,
12543
+ minWidth: undefined,
12544
+ containerClass: ET_OVERLAY_LEFT_SHEET_CLASS,
12545
+ positionStrategy: () => this._overlay.position().global().left('0').centerVertically(),
12546
+ dragToDismiss: {
12547
+ direction: 'to-left',
12548
+ },
12549
+ },
12550
+ rightSheet: {
12551
+ width: '100%',
12552
+ height: '100%',
12553
+ maxHeight: undefined,
12554
+ maxWidth: '640px',
12555
+ minHeight: undefined,
12556
+ minWidth: undefined,
12557
+ containerClass: ET_OVERLAY_RIGHT_SHEET_CLASS,
12558
+ positionStrategy: () => this._overlay.position().global().right('0').centerVertically(),
12559
+ dragToDismiss: {
12560
+ direction: 'to-right',
12561
+ },
12562
+ },
12563
+ };
12567
12564
  }
12568
- else {
12569
- el.style.setProperty(style, coerceCssPixelValue(value));
12565
+ transformingBottomSheetToDialog(customConfig) {
12566
+ const data = [
12567
+ {
12568
+ config: this.mergeConfigs(this.DEFAULTS.bottomSheet, customConfig?.bottomSheet ?? {}),
12569
+ },
12570
+ {
12571
+ breakpoint: customConfig?.breakpoint ?? 'md',
12572
+ config: this.mergeConfigs(this.DEFAULTS.dialog, customConfig?.dialog ?? {}),
12573
+ },
12574
+ ];
12575
+ return data;
12576
+ }
12577
+ transformingFullScreenDialogToRightSheet(customConfig) {
12578
+ const data = [
12579
+ {
12580
+ config: this.mergeConfigs(this.DEFAULTS.fullScreenDialog, customConfig?.fullScreenDialog ?? {}),
12581
+ },
12582
+ {
12583
+ breakpoint: customConfig?.breakpoint ?? 'md',
12584
+ config: this.mergeConfigs(this.DEFAULTS.rightSheet, customConfig?.rightSheet ?? {}),
12585
+ },
12586
+ ];
12587
+ return data;
12570
12588
  }
12571
- };
12572
- const setClass = (el, prevClass, currClass) => {
12573
- if (!equal(prevClass, currClass)) {
12574
- if (prevClass) {
12575
- if (Array.isArray(prevClass)) {
12576
- el.classList.remove(...prevClass);
12577
- }
12578
- else {
12579
- el.classList.remove(prevClass);
12580
- }
12581
- }
12582
- if (currClass) {
12583
- if (Array.isArray(currClass)) {
12584
- el.classList.add(...currClass);
12585
- }
12586
- else {
12587
- el.classList.add(currClass);
12588
- }
12589
- }
12589
+ transformingFullScreenDialogToDialog(customConfig) {
12590
+ const data = [
12591
+ {
12592
+ config: this.mergeConfigs(this.DEFAULTS.fullScreenDialog, customConfig?.fullScreenDialog ?? {}),
12593
+ },
12594
+ {
12595
+ breakpoint: customConfig?.breakpoint ?? 'md',
12596
+ config: this.mergeConfigs(this.DEFAULTS.dialog, customConfig?.dialog ?? {}),
12597
+ },
12598
+ ];
12599
+ return data;
12590
12600
  }
12591
- };
12592
- const isHtmlElement = (element) => {
12593
- return element instanceof HTMLElement;
12594
- };
12595
- const isTouchEvent = (event) => {
12596
- return event.type[0] === 't';
12597
- };
12598
- const isPointerEvent = (event) => {
12599
- return event.type[0] === 'c';
12600
- };
12601
- class OverlayService {
12602
- constructor() {
12603
- this._destroy$ = createDestroy();
12604
- this._defaultOptions = inject(OVERLAY_DEFAULT_OPTIONS, { optional: true });
12605
- this._scrollStrategy = inject(OVERLAY_SCROLL_STRATEGY);
12606
- this._parentOverlayService = inject(OverlayService, { optional: true, skipSelf: true });
12607
- this._dialog = inject(Dialog);
12608
- this._viewportService = inject(ViewportService);
12609
- this._openOverlaysAtThisLevel = [];
12610
- this._afterAllClosedAtThisLevel = new Subject();
12611
- this._afterOpenedAtThisLevel = new Subject();
12612
- this.positions = new OverlayPositionBuilder();
12613
- this.afterAllClosed = defer(() => this.openOverlays.length ? this._getAfterAllClosed() : this._getAfterAllClosed().pipe(startWith(undefined)));
12601
+ dialog(customConfig) {
12602
+ const data = [
12603
+ {
12604
+ config: this.mergeConfigs(this.DEFAULTS.dialog, customConfig ?? {}),
12605
+ },
12606
+ ];
12607
+ return data;
12614
12608
  }
12615
- get openOverlays() {
12616
- return this._parentOverlayService ? this._parentOverlayService.openOverlays : this._openOverlaysAtThisLevel;
12609
+ fullScreenDialog(customConfig) {
12610
+ const data = [
12611
+ {
12612
+ config: this.mergeConfigs(this.DEFAULTS.fullScreenDialog, customConfig ?? {}),
12613
+ },
12614
+ ];
12615
+ return data;
12617
12616
  }
12618
- get afterOpened() {
12619
- return this._parentOverlayService ? this._parentOverlayService.afterOpened : this._afterOpenedAtThisLevel;
12617
+ bottomSheet(customConfig) {
12618
+ const data = [
12619
+ {
12620
+ config: this.mergeConfigs(this.DEFAULTS.bottomSheet, customConfig ?? {}),
12621
+ },
12622
+ ];
12623
+ return data;
12620
12624
  }
12621
- ngOnDestroy() {
12622
- this._closeOverlays(this._openOverlaysAtThisLevel);
12623
- this._afterAllClosedAtThisLevel.complete();
12624
- this._afterOpenedAtThisLevel.complete();
12625
+ topSheet(customConfig) {
12626
+ const data = [
12627
+ {
12628
+ config: this.mergeConfigs(this.DEFAULTS.topSheet, customConfig ?? {}),
12629
+ },
12630
+ ];
12631
+ return data;
12625
12632
  }
12626
- open(componentOrTemplateRef, config) {
12627
- let overlayRef;
12628
- const composedConfig = createOverlayConfig(this._defaultOptions, config);
12629
- composedConfig.id = composedConfig.id || `${ID_PREFIX}${uniqueId$1++}`;
12630
- composedConfig.scrollStrategy = composedConfig.scrollStrategy || this._scrollStrategy();
12631
- const cdkRef = this._dialog.open(componentOrTemplateRef, {
12632
- ...composedConfig,
12633
- disableClose: true,
12634
- closeOnDestroy: false,
12635
- panelClass: 'et-overlay-pane',
12636
- container: {
12637
- type: OverlayContainerComponent,
12638
- providers: () => [
12639
- { provide: OVERLAY_CONFIG, useValue: composedConfig },
12640
- { provide: DialogConfig, useValue: composedConfig },
12641
- ],
12633
+ leftSheet(customConfig) {
12634
+ const data = [
12635
+ {
12636
+ config: this.mergeConfigs(this.DEFAULTS.leftSheet, customConfig ?? {}),
12642
12637
  },
12643
- templateContext: () => ({ dialogRef: overlayRef }),
12644
- providers: (ref, cdkConfig, overlayContainer) => {
12645
- const container = overlayContainer;
12646
- overlayRef = new OverlayRef(ref, composedConfig, container);
12647
- return [
12648
- { provide: OverlayContainerComponent, useValue: overlayContainer },
12649
- { provide: THEME_PROVIDER, useValue: container._themeProvider },
12650
- { provide: ProvideThemeDirective, useValue: container._themeProvider },
12651
- { provide: ROOT_BOUNDARY_TOKEN, useValue: container._rootBoundary },
12652
- { provide: RootBoundaryDirective, useValue: container._rootBoundary },
12653
- { provide: OVERLAY_DATA, useValue: cdkConfig.data },
12654
- { provide: OverlayRef, useValue: overlayRef },
12655
- ...(composedConfig.providers ?? []),
12656
- ];
12638
+ ];
12639
+ return data;
12640
+ }
12641
+ rightSheet(customConfig) {
12642
+ const data = [
12643
+ {
12644
+ config: this.mergeConfigs(this.DEFAULTS.rightSheet, customConfig ?? {}),
12657
12645
  },
12658
- });
12659
- /* eslint-disable @typescript-eslint/no-non-null-assertion*/
12660
- overlayRef.componentRef = cdkRef.componentRef;
12661
- overlayRef.componentInstance = cdkRef.componentInstance;
12662
- cdkRef.containerInstance.overlayRef = overlayRef;
12663
- const containerEl = overlayRef._containerInstance.elementRef.nativeElement;
12664
- const overlayPaneEl = cdkRef.overlayRef.overlayElement;
12665
- const backdropEl = cdkRef.overlayRef.backdropElement;
12666
- const overlayWrapper = cdkRef.overlayRef.hostElement;
12667
- const defaultAnimationBuffer = 50; // 50px since the default animation uses spring physics and thus will overshoot.
12668
- const useDefaultAnimation = composedConfig.customAnimated !== true;
12669
- const origin = composedConfig.origin;
12670
- combineLatest(composedConfig.positions.map((breakpoint) => (breakpoint.breakpoint ? this._viewportService.observe({ min: breakpoint.breakpoint }) : of(true)).pipe(map((isActive) => ({
12671
- isActive,
12672
- config: breakpoint.config,
12673
- size: typeof breakpoint.breakpoint === 'number'
12674
- ? breakpoint.breakpoint
12675
- : breakpoint.breakpoint === undefined
12676
- ? 0
12677
- : this._viewportService.getBreakpointSize(breakpoint.breakpoint, 'min'),
12678
- })))))
12679
- .pipe(takeUntil(overlayRef.afterClosed()), takeUntil(this._destroy$), map((entries) => {
12680
- const activeBreakpoints = entries.filter((entry) => entry.isActive);
12681
- const highestBreakpoint = activeBreakpoints.reduce((prev, curr) => (prev.size > curr.size ? prev : curr));
12682
- return highestBreakpoint.config;
12683
- }), startWith(null), pairwise(), tap(([prevConfig, currConfig]) => {
12684
- if (!currConfig)
12685
- return;
12686
- const containerClass = currConfig.containerClass;
12687
- const applyDefaultMaxWidths = () => {
12688
- setStyle(overlayPaneEl, 'max-width', currConfig.maxWidth);
12689
- setStyle(overlayPaneEl, 'max-height', currConfig.maxHeight);
12690
- };
12691
- const combineOrMakeCalc = (value, append) => {
12692
- if (!value)
12693
- return append;
12694
- if (typeof value === 'number') {
12695
- return `calc(${value}px + ${append})`;
12696
- }
12697
- else if (value.startsWith('calc(')) {
12698
- return `${value.slice(0, value.length - 1)} + ${append})`;
12699
- }
12700
- return `calc(${value} + ${append})`;
12701
- };
12702
- if (origin) {
12703
- // TODO: If getBoundingClientRect is used it should use the center of the element.
12704
- const originX = isHtmlElement(origin)
12705
- ? origin.getBoundingClientRect().left
12706
- : isTouchEvent(origin)
12707
- ? origin.targetTouches[0].clientX
12708
- : isPointerEvent(origin)
12709
- ? origin.clientX !== 0
12710
- ? origin.clientX
12711
- : origin.target.getBoundingClientRect().left
12712
- : -1;
12713
- const originY = isHtmlElement(origin)
12714
- ? origin.getBoundingClientRect().top
12715
- : isTouchEvent(origin)
12716
- ? origin.targetTouches[0].clientY
12717
- : isPointerEvent(origin)
12718
- ? origin.clientY !== 0
12719
- ? origin.clientY
12720
- : origin.target.getBoundingClientRect().top
12721
- : -1;
12722
- if (originX !== -1 && originY !== -1 && currConfig.applyTransformOrigin) {
12723
- setStyle(containerEl, 'transform-origin', `${originX}px ${originY}px`);
12646
+ ];
12647
+ return data;
12648
+ }
12649
+ mergeConfigs(...configs) {
12650
+ const combinedConfig = {};
12651
+ for (const config of configs) {
12652
+ for (const configKey of Object.keys(config)) {
12653
+ const key = configKey;
12654
+ const newConfigValue = config[key];
12655
+ if (ET_OVERLAY_CONFIG_CLASS_KEYS.has(configKey)) {
12656
+ const existing = combinedConfig[key];
12657
+ if (existing && Array.isArray(existing)) {
12658
+ if (Array.isArray(newConfigValue)) {
12659
+ existing.push(...newConfigValue);
12660
+ }
12661
+ else if (typeof newConfigValue === 'string') {
12662
+ existing.push(newConfigValue);
12663
+ }
12664
+ const totalLayoutClassesInExisting = existing.filter((value) => ET_OVERLAY_LAYOUT_CLASSES.has(value)).length;
12665
+ if (totalLayoutClassesInExisting > 1) {
12666
+ throw new Error(`Multiple layout classes are not allowed in the same config key: ${key}`);
12667
+ }
12668
+ }
12669
+ else if (typeof newConfigValue === 'string') {
12670
+ combinedConfig[key] = [newConfigValue];
12671
+ }
12672
+ else if (Array.isArray(newConfigValue)) {
12673
+ combinedConfig[key] = newConfigValue;
12674
+ }
12724
12675
  }
12725
12676
  else {
12726
- setStyle(containerEl, 'transform-origin', null);
12677
+ combinedConfig[key] = newConfigValue;
12678
+ }
12679
+ }
12680
+ }
12681
+ return combinedConfig;
12682
+ }
12683
+ }
12684
+
12685
+ const OVERLAY_ROUTER_CONFIG_TOKEN = new InjectionToken('OVERLAY_ROUTER_CONFIG_TOKEN');
12686
+ class OverlayRouterService {
12687
+ constructor() {
12688
+ this._router = inject(Router);
12689
+ this._routerStateService = inject(RouterStateService);
12690
+ this._id = createComponentId('ovr');
12691
+ this._overlayRef = inject(OverlayRef);
12692
+ this._config = inject(OVERLAY_ROUTER_CONFIG_TOKEN);
12693
+ this._syncCurrentRoute = signal(this._getInitialRoute());
12694
+ this._nativeBrowserTempBackNavigationStack = signal([]);
12695
+ // The current route, but delayed by one frame to ensure that the needed animation classes are applied.
12696
+ this.currentRoute = toSignal(toObservable(this._syncCurrentRoute).pipe(switchMap((r) => fromNextFrame().pipe(map(() => r)))), { initialValue: this._getInitialRoute() });
12697
+ this.extraRoutes = signal([]);
12698
+ this.transitionType = signal('slide');
12699
+ this.routes = computed(() => {
12700
+ const allRoutes = [...this._config.routes, ...this.extraRoutes()];
12701
+ const allRoundsWithTransformedInputs = allRoutes.map((route) => {
12702
+ return {
12703
+ ...route,
12704
+ inputs: Object.entries(route.inputs ?? {}).reduce((acc, [key, value]) => {
12705
+ if (isSignal(value)) {
12706
+ acc[key] = value();
12707
+ }
12708
+ else {
12709
+ acc[key] = value;
12710
+ }
12711
+ return acc;
12712
+ }, {}),
12713
+ };
12714
+ });
12715
+ return allRoundsWithTransformedInputs;
12716
+ });
12717
+ this.currentPage = computed(() => {
12718
+ const currentRoute = this._syncCurrentRoute();
12719
+ for (const route of this.routes()) {
12720
+ if (route.path === currentRoute) {
12721
+ return route;
12727
12722
  }
12728
12723
  }
12729
- if (useDefaultAnimation && containerClass?.length) {
12730
- if (containerClass?.includes(ET_OVERLAY_LEFT_SHEET_CLASS) ||
12731
- containerClass?.includes(ET_OVERLAY_RIGHT_SHEET_CLASS)) {
12732
- setStyle(overlayPaneEl, 'max-width', combineOrMakeCalc(currConfig.maxWidth, `${defaultAnimationBuffer}px`));
12733
- setStyle(overlayPaneEl, 'max-height', currConfig.maxHeight);
12734
- }
12735
- else if (containerClass?.includes(ET_OVERLAY_TOP_SHEET_CLASS) ||
12736
- containerClass?.includes(ET_OVERLAY_BOTTOM_SHEET_CLASS)) {
12737
- setStyle(overlayPaneEl, 'max-height', combineOrMakeCalc(currConfig.maxHeight, `${defaultAnimationBuffer}px`));
12738
- setStyle(overlayPaneEl, 'max-width', currConfig.maxWidth);
12724
+ return null;
12725
+ });
12726
+ this.navigationDirection = signal('forward');
12727
+ this._disableCloseOnNavigation();
12728
+ this._updateBrowserUrl(this._syncCurrentRoute());
12729
+ this._routerStateService
12730
+ .selectQueryParam(this._id)
12731
+ .pipe(takeUntilDestroyed(), skip(1), tap((route) => {
12732
+ // The user navigated back or forward using the browser history
12733
+ if (!route) {
12734
+ // The route query param no longer exists - close the overlay
12735
+ this._overlayRef.close();
12736
+ }
12737
+ else if (route !== this._syncCurrentRoute()) {
12738
+ const navStack = this._nativeBrowserTempBackNavigationStack();
12739
+ const currentRoute = this._syncCurrentRoute();
12740
+ if (!navStack.length) {
12741
+ // If the nav stack is empty the only way to navigate is back.
12742
+ this.navigate(route, { navigationDirection: 'backward' });
12743
+ this._nativeBrowserTempBackNavigationStack.set([currentRoute]);
12739
12744
  }
12740
12745
  else {
12741
- applyDefaultMaxWidths();
12746
+ const lastItem = navStack[navStack.length - 1];
12747
+ if (route === lastItem) {
12748
+ // The new route matches the last item in the back nav stack.
12749
+ // This means we are going forward again.
12750
+ this.navigate(route, { navigationDirection: 'forward' });
12751
+ this._nativeBrowserTempBackNavigationStack.set(navStack.slice(0, -1));
12752
+ }
12753
+ else {
12754
+ // Else we are going back.
12755
+ this.navigate(route, { navigationDirection: 'backward' });
12756
+ this._nativeBrowserTempBackNavigationStack.set([...navStack, currentRoute]);
12757
+ }
12742
12758
  }
12743
12759
  }
12744
12760
  else {
12745
- applyDefaultMaxWidths();
12746
- }
12747
- setStyle(overlayPaneEl, 'min-width', currConfig.minWidth);
12748
- setStyle(overlayPaneEl, 'min-height', currConfig.minHeight);
12749
- setStyle(overlayPaneEl, 'width', currConfig.width);
12750
- setStyle(overlayPaneEl, 'height', currConfig.height);
12751
- setClass(containerEl, prevConfig?.containerClass, currConfig?.containerClass);
12752
- setClass(overlayPaneEl, prevConfig?.paneClass, currConfig?.paneClass);
12753
- setClass(overlayWrapper, prevConfig?.overlayClass, currConfig?.overlayClass);
12754
- // FIXME: These classes should only be removed if no open overlays require them inside their config.
12755
- setClass(document.documentElement, prevConfig?.documentClass, currConfig?.documentClass);
12756
- setClass(document.body, prevConfig?.bodyClass, currConfig?.bodyClass);
12757
- if (backdropEl) {
12758
- setClass(backdropEl, prevConfig?.backdropClass, currConfig?.backdropClass);
12759
- }
12760
- if (!equal(prevConfig?.position, currConfig?.position)) {
12761
- overlayRef.updatePosition(currConfig.position);
12762
- }
12763
- if (currConfig.positionStrategy) {
12764
- cdkRef.overlayRef.updatePositionStrategy(currConfig.positionStrategy());
12765
- }
12766
- else {
12767
- cdkRef.overlayRef.updatePosition();
12768
- }
12769
- if (currConfig.dragToDismiss) {
12770
- overlayRef._containerInstance._enableDragToDismiss(currConfig.dragToDismiss);
12771
- }
12772
- else {
12773
- overlayRef._containerInstance._disableDragToDismiss();
12761
+ // The navigation was triggered by ui interaction. Clear the back nav stack.
12762
+ this._nativeBrowserTempBackNavigationStack.set([]);
12774
12763
  }
12775
12764
  }))
12776
12765
  .subscribe();
12777
- this.openOverlays.push(overlayRef);
12778
- this.afterOpened.next(overlayRef);
12779
- overlayRef.beforeClosed().subscribe(() => {
12780
- // FIXME: These classes should only be removed if no open overlays require them inside their config.
12781
- const documentClasses = composedConfig.positions.map((position) => position.config.documentClass);
12782
- for (const klass of documentClasses) {
12783
- if (!klass)
12784
- continue;
12785
- if (Array.isArray(klass)) {
12786
- document.documentElement.classList.remove(...klass);
12787
- }
12788
- else {
12789
- document.documentElement.classList.remove(klass);
12790
- }
12791
- }
12792
- const bodyClasses = composedConfig.positions.map((position) => position.config.bodyClass);
12793
- for (const klass of bodyClasses) {
12794
- if (!klass)
12795
- continue;
12796
- if (Array.isArray(klass)) {
12797
- document.body.classList.remove(...klass);
12798
- }
12799
- else {
12800
- document.body.classList.remove(klass);
12801
- }
12802
- }
12766
+ inject(DestroyRef).onDestroy(() => {
12767
+ // Remove the dialog route from the browser url
12768
+ this._updateBrowserUrl(undefined);
12803
12769
  });
12804
- overlayRef.afterClosed().subscribe(() => {
12805
- const index = this.openOverlays.indexOf(overlayRef);
12806
- if (index === -1)
12807
- return;
12808
- this.openOverlays.splice(index, 1);
12809
- if (!this.openOverlays.length) {
12810
- this._getAfterAllClosed().next();
12770
+ }
12771
+ navigate(route, config) {
12772
+ const resolvedRoute = this.resolvePath(route);
12773
+ if (config?.navigationDirection) {
12774
+ this.navigationDirection.set(config.navigationDirection);
12775
+ }
12776
+ else if (resolvedRoute.type === 'back') {
12777
+ this.navigationDirection.set('backward');
12778
+ }
12779
+ else {
12780
+ this.navigationDirection.set('forward');
12781
+ }
12782
+ this._updateCurrentRoute(resolvedRoute.route);
12783
+ }
12784
+ resolvePath(route) {
12785
+ if (Array.isArray(route)) {
12786
+ route = route.join('/');
12787
+ }
12788
+ if (route === '') {
12789
+ route = '/';
12790
+ }
12791
+ const isAbsolute = route.startsWith('/');
12792
+ const isReplaceCurrent = route.startsWith('./');
12793
+ const isBack = route.startsWith('../');
12794
+ const isForward = !isAbsolute && !isReplaceCurrent && !isBack;
12795
+ const curr = this._syncCurrentRoute();
12796
+ if (isForward) {
12797
+ route = `${curr}/${route}`;
12798
+ }
12799
+ else if (isReplaceCurrent) {
12800
+ const currSegments = curr.split('/').filter((s) => s !== '');
12801
+ currSegments.pop();
12802
+ const newSegments = route.split('/').filter((s) => s !== '.');
12803
+ route = `/${currSegments.concat(newSegments).join('/')}`;
12804
+ }
12805
+ else if (isBack) {
12806
+ const currSegments = curr.split('/').filter((s) => s !== '');
12807
+ const newSegments = route.split('/').filter((s) => s !== '..');
12808
+ const stepsBack = route.split('/').filter((s) => s === '..').length;
12809
+ for (let i = 0; i < stepsBack; i++) {
12810
+ currSegments.pop();
12811
12811
  }
12812
- });
12813
- return overlayRef;
12814
- /* eslint-enable @typescript-eslint/no-non-null-assertion*/
12812
+ route = `/${currSegments.concat(newSegments).join('/')}`;
12813
+ }
12814
+ return {
12815
+ route,
12816
+ type: isBack || route === '/'
12817
+ ? 'back'
12818
+ : isReplaceCurrent
12819
+ ? 'replace-current'
12820
+ : isAbsolute
12821
+ ? 'absolute'
12822
+ : isForward
12823
+ ? 'forward'
12824
+ : 'unknown',
12825
+ };
12815
12826
  }
12816
- closeAll() {
12817
- this._closeOverlays(this.openOverlays);
12827
+ addRoute(route) {
12828
+ this.extraRoutes.set([...this.extraRoutes(), route]);
12818
12829
  }
12819
- getOverlayById(id) {
12820
- return this.openOverlays.find((overlay) => overlay.id === id);
12830
+ removeRoute(path) {
12831
+ this.extraRoutes.set(this.extraRoutes().filter((r) => r.path !== path));
12821
12832
  }
12822
- _closeOverlays(overlays) {
12823
- let i = overlays.length;
12824
- while (i--) {
12825
- overlays[i]?.close();
12833
+ _updateCurrentRoute(route) {
12834
+ if (route === this._syncCurrentRoute())
12835
+ return;
12836
+ if (this.routes().findIndex((r) => r.path === route) === -1) {
12837
+ console.error(`The route "${route}" does not exist.`, this._config);
12838
+ return;
12826
12839
  }
12840
+ this._syncCurrentRoute.set(route);
12841
+ this._updateBrowserUrl(route);
12827
12842
  }
12828
- _getAfterAllClosed() {
12829
- const parent = this._parentOverlayService;
12830
- return parent ? parent._getAfterAllClosed() : this._afterAllClosedAtThisLevel;
12843
+ _getInitialRoute() {
12844
+ return this._config.initialRoute ?? this._config.routes[0]?.path ?? '/';
12845
+ }
12846
+ _navigateToInitialRoute() {
12847
+ this._updateCurrentRoute(this._getInitialRoute());
12848
+ }
12849
+ _updateBrowserUrl(route) {
12850
+ this._router.navigate([this._routerStateService.route], {
12851
+ queryParams: { [this._id]: route },
12852
+ queryParamsHandling: 'merge',
12853
+ });
12854
+ }
12855
+ _disableCloseOnNavigation() {
12856
+ // @ts-expect-error - private property
12857
+ this._overlayRef._cdkRef.overlayRef._locationChanges?.unsubscribe?.();
12831
12858
  }
12832
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: OverlayService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
12833
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: OverlayService }); }
12834
12859
  }
12835
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.4", ngImport: i0, type: OverlayService, decorators: [{
12836
- type: Injectable
12837
- }] });
12860
+ const provideOverlayRouterConfig = (config) => {
12861
+ return [
12862
+ {
12863
+ provide: OVERLAY_ROUTER_CONFIG_TOKEN,
12864
+ useValue: config,
12865
+ },
12866
+ ];
12867
+ };
12868
+
12869
+ function getClosestOverlay(element, openOverlays) {
12870
+ let parent = element.nativeElement.parentElement;
12871
+ while (parent && !parent.classList.contains('et-overlay')) {
12872
+ parent = parent.parentElement;
12873
+ }
12874
+ return parent ? openOverlays.find((overlay) => overlay.id === parent?.id) : null;
12875
+ }
12876
+ const provideOverlayDefaultConfig = (config = {}) => {
12877
+ return { provide: OVERLAY_DEFAULT_OPTIONS, useValue: createOverlayConfig(config) };
12878
+ };
12838
12879
 
12839
12880
  const OVERLAY_BODY_TOKEN = new InjectionToken('OVERLAY_BODY_TOKEN');
12840
12881
  class OverlayBodyComponent {
@@ -17715,5 +17756,5 @@ const FLOATING_UI_PLACEMENTS = [
17715
17756
  * Generated bundle index. Do not edit.
17716
17757
  */
17717
17758
 
17718
- export { ACCORDION_COMPONENT, ACCORDION_HINT_WRAPPER_DIRECTIVE, ACCORDION_LABEL_WRAPPER_DIRECTIVE, AccordionComponent, AccordionGroupComponent, AccordionHintDirective, AccordionHintWrapperDirective, AccordionImports, AccordionLabelDirective, AccordionLabelWrapperDirective, ActiveTabUnderlineBarManager, ActiveTabUnderlineDirective, AutosizeTextareaDirective, BOTTOM_SHEET_CONFIG, BOTTOM_SHEET_DATA, BOTTOM_SHEET_DEFAULT_CONFIG, BOTTOM_SHEET_DEFAULT_OPTIONS, BOTTOM_SHEET_MIN_SWIPE_TO_CLOSE_LENGTH, BOTTOM_SHEET_MIN_VELOCITY_TO_CLOSE, BOTTOM_SHEET_SCROLL_STRATEGY, BOTTOM_SHEET_SCROLL_STRATEGY_PROVIDER, BOTTOM_SHEET_SCROLL_STRATEGY_PROVIDER_FACTORY, BRACKET_CONFIG_TOKEN, BRACKET_DEFAULT_CONFIG, BRACKET_MATCH_ID_TOKEN, BRACKET_ROUND_ID_TOKEN, BRACKET_TOKEN, BottomSheetContainerBaseComponent, BottomSheetContainerComponent, BottomSheetDragHandleComponent, BottomSheetImports, BottomSheetRef, BottomSheetService, BottomSheetServiceBase, BottomSheetSwipeHandlerService, BottomSheetTitleDirective, Bracket, BracketComponent, BracketImports, BracketMatchComponent, BracketMatchDirective, BracketRoundDirective, BracketRoundHeaderComponent, ButtonComponent, ButtonDirective, ButtonImports, CAROUSEL_ITEM_NAV_TOKEN, CAROUSEL_ITEM_TOKEN, CAROUSEL_NEXT_BUTTON_TOKEN, CAROUSEL_PREVIOUS_BUTTON_TOKEN, CAROUSEL_TOGGLE_AUTO_PLAY_BUTTON_TOKEN, CAROUSEL_TOKEN, CDK_MENU, CHECKBOX_FIELD_TOKEN, CHECKBOX_GROUP_CONTROL_TOKEN, CHECKBOX_GROUP_TOKEN, CHECKBOX_TOKEN, COMBOBOX_BODY_EMPTY_TEMPLATE_TOKEN, COMBOBOX_BODY_ERROR_TEMPLATE_TOKEN, COMBOBOX_BODY_LOADING_TEMPLATE_TOKEN, COMBOBOX_BODY_MORE_ITEMS_HINT_TEMPLATE_TOKEN, COMBOBOX_BODY_TOKEN, COMBOBOX_CONFIG_TOKEN, COMBOBOX_DEFAULT_CONFIG, COMBOBOX_OPTION_TEMPLATE_TOKEN, COMBOBOX_OPTION_TOKEN, COMBOBOX_SELECTED_OPTION_TEMPLATE_TOKEN, COMBOBOX_TOKEN, CarouselComponent, CarouselDirective, CarouselImports, CarouselItemComponent, CarouselItemDirective, CarouselItemNavComponent, CarouselItemNavDirective, CarouselNextButtonDirective, CarouselPreviousButtonDirective, CarouselToggleAutoPlayButtonDirective, CdkContextMenuTrigger, CdkMenu, CdkMenuBar, CdkMenuBase, CdkMenuGroup, CdkMenuItem, CdkMenuItemCheckbox, CdkMenuItemRadio, CdkMenuItemSelectable, CdkMenuModule, CdkMenuTrigger, CdkMenuTriggerBase, CdkTargetMenuAim, CellDefDirective, CellDirective, CheckboxComponent, CheckboxDirective, CheckboxFieldComponent, CheckboxFieldDirective, CheckboxGroupComponent, CheckboxGroupControlDirective, CheckboxGroupDirective, CheckboxImports, ChevronIconComponent, ColumnDefDirective, ComboboxBodyComponent, ComboboxBodyEmptyTemplateDirective, ComboboxBodyErrorTemplateDirective, ComboboxBodyLoadingTemplateDirective, ComboboxBodyMoreItemsHintTemplateDirective, ComboboxComponent, ComboboxDirective, ComboboxImports, ComboboxOptionComponent, ComboboxOptionTemplateDirective, ComboboxSelectedOptionTemplateDirective, ContextMenuTracker, DATE_INPUT_FORMAT_TOKEN, DATE_INPUT_TOKEN, DATE_TIME_INPUT_FORMAT_TOKEN, DATE_TIME_INPUT_TOKEN, DEFAULT_DATE_INPUT_FORMAT, DEFAULT_DATE_TIME_INPUT_FORMAT, DEFAULT_TIME_INPUT_FORMAT, DIALOG_CONFIG, DIALOG_DATA, DIALOG_DEFAULT_CONFIG, DIALOG_DEFAULT_OPTIONS, DIALOG_SCROLL_STRATEGY, DIALOG_SCROLL_STRATEGY_PROVIDER, DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY, DYNAMIC_FORM_FIELD_TOKEN, DYNAMIC_FORM_GROUP_TOKEN, DateInputComponent, DateInputDirective, DateTimeInputComponent, DateTimeInputDirective, DecoratedFormFieldBase, DecoratedInputBase, DefaultValidatorErrorsService, DialogCloseDirective, DialogContainerBaseComponent, DialogContainerComponent, DialogImports, DialogRef, DialogService, DialogServiceBase, DialogTitleDirective, DynamicFormFieldDirective, DynamicFormGroupDirective, DynamicOverlayService, DynamicOverlayTitleDirective, EMAIL_INPUT_TOKEN, ET_OVERLAY_BOTTOM_SHEET_CLASS, ET_OVERLAY_CONFIG_CLASS_KEYS, ET_OVERLAY_DIALOG_CLASS, ET_OVERLAY_FULL_SCREEN_DIALOG_CLASS, ET_OVERLAY_LAYOUT_CLASSES, ET_OVERLAY_LEFT_SHEET_CLASS, ET_OVERLAY_RIGHT_SHEET_CLASS, ET_OVERLAY_TOP_SHEET_CLASS, EXPOSE_INPUT_VARS_TOKEN, EmailInputComponent, EmailInputDirective, ErrorComponent, ExposeInputVarsDirective, FILTER_OVERLAY_CONFIG, FLOATING_UI_PLACEMENTS, FilterOverlayService, FooterCellDefDirective, FooterCellDirective, FooterRowComponent, FooterRowDefDirective, FormFieldStateService, FormGroupStateService, HeaderCellDefDirective, HeaderCellDirective, HeaderRowComponent, HeaderRowDefDirective, IMAGE_CONFIG_TOKEN, INPUT_PREFIX_TOKEN, INPUT_SUFFIX_TOKEN, INPUT_TOKEN, IconImports, IfInputEmptyDirective, IfInputFilledDirective, IfSupportsShowPickerDirective, InlineTabBodyComponent, InlineTabBodyHostDirective, InlineTabChangeEvent, InlineTabComponent, InlineTabContentDirective, InlineTabHeaderComponent, InlineTabLabelDirective, InlineTabLabelWrapperDirective, InlineTabsComponent, InputBase, InputDirective, InputFieldComponent, InputImports, InputPrefixDirective, InputStateService, InputSuffixDirective, LABEL_TOKEN, LabelComponent, LabelImports, LabelSuffixDirective, MASONRY_ITEM_TOKEN, MAX_SAFE_INTEGER, MENU, MENU_AIM, MENU_CHECKBOX_GROUP_TOKEN, MENU_CONTAINER, MENU_GROUP_TITLE_TOKEN, MENU_GROUP_TOKEN, MENU_ITEM_TOKEN, MENU_RADIO_GROUP_TOKEN, MENU_SEARCH_TEMPLATE_TOKEN, MENU_STACK, MENU_TEMPLATE, MENU_TRIGGER, MENU_TRIGGER_TOKEN, MasonryComponent, MasonryImports, MasonryItemComponent, MenuCheckboxGroupDirective, MenuCheckboxItemComponent, MenuComponent, MenuContainerComponent, MenuGroupDirective, MenuGroupTitleDirective, MenuImports, MenuItemDirective, MenuRadioGroupDirective, MenuRadioItemComponent, MenuSearchTemplateDirective, MenuStack, MenuTriggerDirective, NATIVE_INPUT_REF_TOKEN, NATIVE_SELECT_INPUT_TOKEN, NATIVE_SELECT_OPTION_TOKEN, NUMBER_INPUT_TOKEN, NativeInputRefDirective, NativeSelectImports, NativeSelectInputComponent, NativeSelectInputDirective, NativeSelectOptionComponent, NativeSelectOptionDirective, NavTabLinkComponent, NavTabsComponent, NavTabsOutletComponent, NoDataRowDirective, NumberInputComponent, NumberInputDirective, OVERLAY_BACK_OR_CLOSE_TOKEN, OVERLAY_BODY_TOKEN, OVERLAY_CLOSE_BLOCKER_TOKEN, OVERLAY_CONFIG, OVERLAY_DATA, OVERLAY_DEFAULT_CONFIG, OVERLAY_DEFAULT_OPTIONS, OVERLAY_FOOTER_TOKEN, OVERLAY_HEADER_TEMPLATE_TOKEN, OVERLAY_HEADER_TOKEN, OVERLAY_MAIN_TOKEN, OVERLAY_ROUTER_CONFIG_TOKEN, OVERLAY_ROUTER_LINK_TOKEN, OVERLAY_ROUTER_OUTLET_DISABLED_TEMPLATE_TOKEN, OVERLAY_ROUTER_OUTLET_TOKEN, OVERLAY_SCROLL_STRATEGY, OVERLAY_SCROLL_STRATEGY_PROVIDER, OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY, OVERLAY_SHARED_ROUTE_TEMPLATE_TOKEN, OVERLAY_STATE, OverlayBackOrCloseDirective, OverlayBodyComponent, OverlayCloseBlockerDirective, OverlayCloseDirective, OverlayContainerComponent, OverlayFooterDirective, OverlayHeaderDirective, OverlayHeaderTemplateDirective, OverlayImports, OverlayMainDirective, OverlayPositionBuilder, OverlayRef, OverlayRouteHeaderTemplateOutletComponent, OverlayRouterLinkDirective, OverlayRouterOutletComponent, OverlayRouterOutletDisabledTemplateDirective, OverlayRouterService, OverlayService, OverlaySharedRouteTemplateDirective, OverlaySharedRouteTemplateOutletComponent, OverlaySidebarComponent, OverlaySidebarPageComponent, OverlayTitleDirective, OverlayWithRoutingImports, OverlayWithSidebarImports, PARENT_OR_NEW_INLINE_MENU_STACK_PROVIDER, PARENT_OR_NEW_MENU_STACK_PROVIDER, PASSWORD_INPUT_TOKEN, PROGRESS_SPINNER_DEFAULT_OPTIONS, PROGRESS_SPINNER_DEFAULT_OPTIONS_FACTORY, PaginatedTabHeaderDirective, PaginationComponent, PaginationHeadService, PaginationImports, PaginationLinkDirective, PasswordInputComponent, PasswordInputDirective, PasswordInputToggleComponent, PictureComponent, PointerFocusTracker, ProgressSpinnerComponent, QUERY_ERROR_TOKEN, QueryButtonComponent, QueryButtonDirective, QueryErrorComponent, QueryErrorDirective, RADIO_FIELD_TOKEN, RADIO_GROUP_TOKEN, RADIO_TOKEN, RICH_FILTER_BUTTON_SLOT_TOKEN, RICH_FILTER_BUTTON_TOKEN, RICH_FILTER_CONTENT_TOKEN, RICH_FILTER_TOP_TOKEN, RadioComponent, RadioDirective, RadioFieldComponent, RadioFieldDirective, RadioGroupComponent, RadioGroupDirective, RadioImports, RecycleRowsDirective, RichFilterButtonDirective, RichFilterButtonSlotDirective, RichFilterContentDirective, RichFilterHostComponent, RichFilterImports, RichFilterTopDirective, RowComponent, RowDefDirective, SCROLLABLE_IGNORE_CHILD_ATTRIBUTE, SCROLLABLE_IGNORE_CHILD_TOKEN, SCROLLABLE_IS_ACTIVE_CHILD_ATTRIBUTE, SCROLLABLE_IS_ACTIVE_CHILD_TOKEN, SCROLLABLE_LOADING_TEMPLATE_TOKEN, SCROLLABLE_PLACEHOLDER_ITEM_TEMPLATE_TOKEN, SCROLLABLE_PLACEHOLDER_OVERLAY_TEMPLATE_TOKEN, SEARCH_INPUT_TOKEN, SEGMENTED_BUTTON_FIELD_TOKEN, SEGMENTED_BUTTON_GROUP_TOKEN, SEGMENTED_BUTTON_TOKEN, SELECTION_LIST_FIELD, SELECTION_LIST_OPTION, SELECT_BODY_TOKEN, SELECT_FIELD_TOKEN, SELECT_OPTION_TOKEN, SELECT_TOKEN, SHOW_PICKER_TRIGGER_TOKEN, SIDEBAR_OVERLAY_CONFIG, SLIDE_TOGGLE_TOKEN, SORT_DEFAULT_OPTIONS, SORT_HEADER_COLUMN_DEF, SORT_HEADER_INTL_PROVIDER, SORT_HEADER_INTL_PROVIDER_FACTORY, STATIC_FORM_FIELD_TOKEN, STATIC_FORM_GROUP_TOKEN, ScrollableComponent, ScrollableIgnoreChildDirective, ScrollableImports, ScrollableIsActiveChildDirective, ScrollableLoadingTemplateDirective, ScrollablePlaceholderComponent, ScrollablePlaceholderItemTemplateDirective, ScrollablePlaceholderOverlayTemplateDirective, SearchInputClearComponent, SearchInputComponent, SearchInputDirective, SegmentedButtonComponent, SegmentedButtonDirective, SegmentedButtonFieldComponent, SegmentedButtonFieldDirective, SegmentedButtonGroupComponent, SegmentedButtonGroupDirective, SegmentedButtonImports, SelectBodyComponent, SelectBodyDirective, SelectComponent, SelectDirective, SelectFieldComponent, SelectFieldDirective, SelectImports, SelectOptionComponent, SelectOptionDirective, SelectionListFieldComponent, SelectionListFieldDirective, SelectionListImports, SelectionListOptionComponent, SelectionListOptionDirective, ShowPickerTriggerDirective, SidebarOverlayService, SkeletonComponent, SkeletonImports, SkeletonItemComponent, SlideToggleComponent, SlideToggleDirective, SlideToggleFieldComponent, SlideToggleImports, SliderComponent, SliderFieldComponent, SliderImports, SortDirective, SortHeaderComponent, SortHeaderIntl, SortImports, StaticFormFieldDirective, StaticFormGroupDirective, SwipeHandlerService, TAB, TABS_CONFIG, TAB_CONTENT, TAB_GROUP, TAB_LABEL, TEL_INPUT_TOKEN, TEXTAREA_INPUT_TOKEN, TEXT_INPUT_TOKEN, TIME_INPUT_FORMAT_TOKEN, TIME_INPUT_TOKEN, TOGGLETIP, TOGGLETIP_CONFIG, TOGGLETIP_DEFAULT_CONFIG, TOGGLETIP_DIRECTIVE, TOGGLETIP_TEMPLATE, TOGGLETIP_TEXT, TOOLTIP, TOOLTIP_CONFIG, TOOLTIP_DEFAULT_CONFIG, TOOLTIP_DIRECTIVE, TOOLTIP_TEMPLATE, TOOLTIP_TEXT, TabImports, TableBusyDirective, TableBusyOutletDirective, TableComponent, TableDataSource, TableImports, TargetMenuAim, TelInputComponent, TelInputDirective, TextColumnComponent, TextInputComponent, TextInputDirective, TextareaInputComponent, TextareaInputDirective, TimeInputComponent, TimeInputDirective, ToggletipCloseDirective, ToggletipComponent, ToggletipDirective, ToggletipImports, TooltipComponent, TooltipDirective, TooltipImports, VALIDATOR_ERROR_SERVICE_TOKEN, WRITEABLE_INPUT_TOKEN, WRITEABLE_INPUT_VALUE_ACCESSOR, WriteableInputDirective, _MAT_INK_BAR_POSITIONER, _MAT_INK_BAR_POSITIONER_FACTORY, accordionAnimations, convertHttpStatusCodeToMessageDe, convertHttpStatusCodeToMessageEn, convertHttpStatusCodeToTitleDe, convertHttpStatusCodeToTitleEn, createBottomSheetConfig, createBracketConfig, createComboboxConfig, createDialogConfig, createOverlayConfig, createOverlayDismissChecker, createToggletipConfig, createTooltipConfig, defaultSubmitButtonConfigFn, getClosestBottomSheet, getClosestDialog, getClosestOverlay, isScrollableChildActive, isScrollableChildIgnored, isUpperBracketMatch, normalizePictureSizes, normalizePictureSource, normalizeRoundType, orderRounds, orderRoundsByRoundNumber, paginate, provideBottomSheet, provideBottomSheetDefaultConfig, provideBracketConfig, provideComboboxConfig, provideDateFormat, provideDateTimeFormat, provideDialog, provideDialogDefaultConfig, provideFilterOverlayConfig, provideImageConfig, provideOverlay, provideOverlayDefaultConfig, provideOverlayRouterConfig, provideSidebarOverlayConfig, provideSort, provideTimeFormat, provideToggletipConfig, provideTooltipConfig, provideValidatorErrorsService, tabAnimations };
17759
+ export { ACCORDION_COMPONENT, ACCORDION_HINT_WRAPPER_DIRECTIVE, ACCORDION_LABEL_WRAPPER_DIRECTIVE, AccordionComponent, AccordionGroupComponent, AccordionHintDirective, AccordionHintWrapperDirective, AccordionImports, AccordionLabelDirective, AccordionLabelWrapperDirective, ActiveTabUnderlineBarManager, ActiveTabUnderlineDirective, AutosizeTextareaDirective, BOTTOM_SHEET_CONFIG, BOTTOM_SHEET_DATA, BOTTOM_SHEET_DEFAULT_CONFIG, BOTTOM_SHEET_DEFAULT_OPTIONS, BOTTOM_SHEET_MIN_SWIPE_TO_CLOSE_LENGTH, BOTTOM_SHEET_MIN_VELOCITY_TO_CLOSE, BOTTOM_SHEET_SCROLL_STRATEGY, BOTTOM_SHEET_SCROLL_STRATEGY_PROVIDER, BOTTOM_SHEET_SCROLL_STRATEGY_PROVIDER_FACTORY, BRACKET_CONFIG_TOKEN, BRACKET_DEFAULT_CONFIG, BRACKET_MATCH_ID_TOKEN, BRACKET_ROUND_ID_TOKEN, BRACKET_TOKEN, BottomSheetContainerBaseComponent, BottomSheetContainerComponent, BottomSheetDragHandleComponent, BottomSheetImports, BottomSheetRef, BottomSheetService, BottomSheetServiceBase, BottomSheetSwipeHandlerService, BottomSheetTitleDirective, Bracket, BracketComponent, BracketImports, BracketMatchComponent, BracketMatchDirective, BracketRoundDirective, BracketRoundHeaderComponent, ButtonComponent, ButtonDirective, ButtonImports, CAROUSEL_ITEM_NAV_TOKEN, CAROUSEL_ITEM_TOKEN, CAROUSEL_NEXT_BUTTON_TOKEN, CAROUSEL_PREVIOUS_BUTTON_TOKEN, CAROUSEL_TOGGLE_AUTO_PLAY_BUTTON_TOKEN, CAROUSEL_TOKEN, CDK_MENU, CHECKBOX_FIELD_TOKEN, CHECKBOX_GROUP_CONTROL_TOKEN, CHECKBOX_GROUP_TOKEN, CHECKBOX_TOKEN, COMBOBOX_BODY_EMPTY_TEMPLATE_TOKEN, COMBOBOX_BODY_ERROR_TEMPLATE_TOKEN, COMBOBOX_BODY_LOADING_TEMPLATE_TOKEN, COMBOBOX_BODY_MORE_ITEMS_HINT_TEMPLATE_TOKEN, COMBOBOX_BODY_TOKEN, COMBOBOX_CONFIG_TOKEN, COMBOBOX_DEFAULT_CONFIG, COMBOBOX_OPTION_TEMPLATE_TOKEN, COMBOBOX_OPTION_TOKEN, COMBOBOX_SELECTED_OPTION_TEMPLATE_TOKEN, COMBOBOX_TOKEN, CarouselComponent, CarouselDirective, CarouselImports, CarouselItemComponent, CarouselItemDirective, CarouselItemNavComponent, CarouselItemNavDirective, CarouselNextButtonDirective, CarouselPreviousButtonDirective, CarouselToggleAutoPlayButtonDirective, CdkContextMenuTrigger, CdkMenu, CdkMenuBar, CdkMenuBase, CdkMenuGroup, CdkMenuItem, CdkMenuItemCheckbox, CdkMenuItemRadio, CdkMenuItemSelectable, CdkMenuModule, CdkMenuTrigger, CdkMenuTriggerBase, CdkTargetMenuAim, CellDefDirective, CellDirective, CheckboxComponent, CheckboxDirective, CheckboxFieldComponent, CheckboxFieldDirective, CheckboxGroupComponent, CheckboxGroupControlDirective, CheckboxGroupDirective, CheckboxImports, ChevronIconComponent, ColumnDefDirective, ComboboxBodyComponent, ComboboxBodyEmptyTemplateDirective, ComboboxBodyErrorTemplateDirective, ComboboxBodyLoadingTemplateDirective, ComboboxBodyMoreItemsHintTemplateDirective, ComboboxComponent, ComboboxDirective, ComboboxImports, ComboboxOptionComponent, ComboboxOptionTemplateDirective, ComboboxSelectedOptionTemplateDirective, ContextMenuTracker, DATE_INPUT_FORMAT_TOKEN, DATE_INPUT_TOKEN, DATE_TIME_INPUT_FORMAT_TOKEN, DATE_TIME_INPUT_TOKEN, DEFAULT_DATE_INPUT_FORMAT, DEFAULT_DATE_TIME_INPUT_FORMAT, DEFAULT_TIME_INPUT_FORMAT, DIALOG_CONFIG, DIALOG_DATA, DIALOG_DEFAULT_CONFIG, DIALOG_DEFAULT_OPTIONS, DIALOG_SCROLL_STRATEGY, DIALOG_SCROLL_STRATEGY_PROVIDER, DIALOG_SCROLL_STRATEGY_PROVIDER_FACTORY, DYNAMIC_FORM_FIELD_TOKEN, DYNAMIC_FORM_GROUP_TOKEN, DateInputComponent, DateInputDirective, DateTimeInputComponent, DateTimeInputDirective, DecoratedFormFieldBase, DecoratedInputBase, DefaultValidatorErrorsService, DialogCloseDirective, DialogContainerBaseComponent, DialogContainerComponent, DialogImports, DialogRef, DialogService, DialogServiceBase, DialogTitleDirective, DynamicFormFieldDirective, DynamicFormGroupDirective, DynamicOverlayService, DynamicOverlayTitleDirective, EMAIL_INPUT_TOKEN, ET_OVERLAY_BOTTOM_SHEET_CLASS, ET_OVERLAY_CONFIG_CLASS_KEYS, ET_OVERLAY_DIALOG_CLASS, ET_OVERLAY_FULL_SCREEN_DIALOG_CLASS, ET_OVERLAY_LAYOUT_CLASSES, ET_OVERLAY_LEFT_SHEET_CLASS, ET_OVERLAY_RIGHT_SHEET_CLASS, ET_OVERLAY_TOP_SHEET_CLASS, EXPOSE_INPUT_VARS_TOKEN, EmailInputComponent, EmailInputDirective, ErrorComponent, ExposeInputVarsDirective, FILTER_OVERLAY_CONFIG, FLOATING_UI_PLACEMENTS, FilterOverlayService, FooterCellDefDirective, FooterCellDirective, FooterRowComponent, FooterRowDefDirective, FormFieldStateService, FormGroupStateService, HeaderCellDefDirective, HeaderCellDirective, HeaderRowComponent, HeaderRowDefDirective, IMAGE_CONFIG_TOKEN, INPUT_PREFIX_TOKEN, INPUT_SUFFIX_TOKEN, INPUT_TOKEN, IconImports, IfInputEmptyDirective, IfInputFilledDirective, IfSupportsShowPickerDirective, InlineTabBodyComponent, InlineTabBodyHostDirective, InlineTabChangeEvent, InlineTabComponent, InlineTabContentDirective, InlineTabHeaderComponent, InlineTabLabelDirective, InlineTabLabelWrapperDirective, InlineTabsComponent, InputBase, InputDirective, InputFieldComponent, InputImports, InputPrefixDirective, InputStateService, InputSuffixDirective, LABEL_TOKEN, LabelComponent, LabelImports, LabelSuffixDirective, MASONRY_ITEM_TOKEN, MAX_SAFE_INTEGER, MENU, MENU_AIM, MENU_CHECKBOX_GROUP_TOKEN, MENU_CONTAINER, MENU_GROUP_TITLE_TOKEN, MENU_GROUP_TOKEN, MENU_ITEM_TOKEN, MENU_RADIO_GROUP_TOKEN, MENU_SEARCH_TEMPLATE_TOKEN, MENU_STACK, MENU_TEMPLATE, MENU_TRIGGER, MENU_TRIGGER_TOKEN, MasonryComponent, MasonryImports, MasonryItemComponent, MenuCheckboxGroupDirective, MenuCheckboxItemComponent, MenuComponent, MenuContainerComponent, MenuGroupDirective, MenuGroupTitleDirective, MenuImports, MenuItemDirective, MenuRadioGroupDirective, MenuRadioItemComponent, MenuSearchTemplateDirective, MenuStack, MenuTriggerDirective, NATIVE_INPUT_REF_TOKEN, NATIVE_SELECT_INPUT_TOKEN, NATIVE_SELECT_OPTION_TOKEN, NUMBER_INPUT_TOKEN, NativeInputRefDirective, NativeSelectImports, NativeSelectInputComponent, NativeSelectInputDirective, NativeSelectOptionComponent, NativeSelectOptionDirective, NavTabLinkComponent, NavTabsComponent, NavTabsOutletComponent, NoDataRowDirective, NumberInputComponent, NumberInputDirective, OVERLAY_BACK_OR_CLOSE_TOKEN, OVERLAY_BODY_TOKEN, OVERLAY_CLOSE_BLOCKER_TOKEN, OVERLAY_CONFIG, OVERLAY_DATA, OVERLAY_DEFAULT_CONFIG, OVERLAY_DEFAULT_OPTIONS, OVERLAY_FOOTER_TOKEN, OVERLAY_HEADER_TEMPLATE_TOKEN, OVERLAY_HEADER_TOKEN, OVERLAY_MAIN_TOKEN, OVERLAY_ROUTER_CONFIG_TOKEN, OVERLAY_ROUTER_LINK_TOKEN, OVERLAY_ROUTER_OUTLET_DISABLED_TEMPLATE_TOKEN, OVERLAY_ROUTER_OUTLET_TOKEN, OVERLAY_SCROLL_STRATEGY, OVERLAY_SCROLL_STRATEGY_PROVIDER, OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY, OVERLAY_SHARED_ROUTE_TEMPLATE_TOKEN, OVERLAY_STATE, OverlayBackOrCloseDirective, OverlayBodyComponent, OverlayCloseBlockerDirective, OverlayCloseDirective, OverlayContainerComponent, OverlayFooterDirective, OverlayHeaderDirective, OverlayHeaderTemplateDirective, OverlayImports, OverlayMainDirective, OverlayPositionBuilder, OverlayRef, OverlayRouteHeaderTemplateOutletComponent, OverlayRouterLinkDirective, OverlayRouterOutletComponent, OverlayRouterOutletDisabledTemplateDirective, OverlayRouterService, OverlayService, OverlaySharedRouteTemplateDirective, OverlaySharedRouteTemplateOutletComponent, OverlaySidebarComponent, OverlaySidebarPageComponent, OverlayTitleDirective, OverlayWithRoutingImports, OverlayWithSidebarImports, PARENT_OR_NEW_INLINE_MENU_STACK_PROVIDER, PARENT_OR_NEW_MENU_STACK_PROVIDER, PASSWORD_INPUT_TOKEN, PROGRESS_SPINNER_DEFAULT_OPTIONS, PROGRESS_SPINNER_DEFAULT_OPTIONS_FACTORY, PaginatedTabHeaderDirective, PaginationComponent, PaginationHeadService, PaginationImports, PaginationLinkDirective, PasswordInputComponent, PasswordInputDirective, PasswordInputToggleComponent, PictureComponent, PointerFocusTracker, ProgressSpinnerComponent, QUERY_ERROR_TOKEN, QueryButtonComponent, QueryButtonDirective, QueryErrorComponent, QueryErrorDirective, RADIO_FIELD_TOKEN, RADIO_GROUP_TOKEN, RADIO_TOKEN, RICH_FILTER_BUTTON_SLOT_TOKEN, RICH_FILTER_BUTTON_TOKEN, RICH_FILTER_CONTENT_TOKEN, RICH_FILTER_TOP_TOKEN, RadioComponent, RadioDirective, RadioFieldComponent, RadioFieldDirective, RadioGroupComponent, RadioGroupDirective, RadioImports, RecycleRowsDirective, RichFilterButtonDirective, RichFilterButtonSlotDirective, RichFilterContentDirective, RichFilterHostComponent, RichFilterImports, RichFilterTopDirective, RowComponent, RowDefDirective, SCROLLABLE_IGNORE_CHILD_ATTRIBUTE, SCROLLABLE_IGNORE_CHILD_TOKEN, SCROLLABLE_IS_ACTIVE_CHILD_ATTRIBUTE, SCROLLABLE_IS_ACTIVE_CHILD_TOKEN, SCROLLABLE_LOADING_TEMPLATE_TOKEN, SCROLLABLE_PLACEHOLDER_ITEM_TEMPLATE_TOKEN, SCROLLABLE_PLACEHOLDER_OVERLAY_TEMPLATE_TOKEN, SEARCH_INPUT_TOKEN, SEGMENTED_BUTTON_FIELD_TOKEN, SEGMENTED_BUTTON_GROUP_TOKEN, SEGMENTED_BUTTON_TOKEN, SELECTION_LIST_FIELD, SELECTION_LIST_OPTION, SELECT_BODY_TOKEN, SELECT_FIELD_TOKEN, SELECT_OPTION_TOKEN, SELECT_TOKEN, SHOW_PICKER_TRIGGER_TOKEN, SIDEBAR_OVERLAY_CONFIG, SLIDE_TOGGLE_TOKEN, SORT_DEFAULT_OPTIONS, SORT_HEADER_COLUMN_DEF, SORT_HEADER_INTL_PROVIDER, SORT_HEADER_INTL_PROVIDER_FACTORY, STATIC_FORM_FIELD_TOKEN, STATIC_FORM_GROUP_TOKEN, ScrollableComponent, ScrollableIgnoreChildDirective, ScrollableImports, ScrollableIsActiveChildDirective, ScrollableLoadingTemplateDirective, ScrollablePlaceholderComponent, ScrollablePlaceholderItemTemplateDirective, ScrollablePlaceholderOverlayTemplateDirective, SearchInputClearComponent, SearchInputComponent, SearchInputDirective, SegmentedButtonComponent, SegmentedButtonDirective, SegmentedButtonFieldComponent, SegmentedButtonFieldDirective, SegmentedButtonGroupComponent, SegmentedButtonGroupDirective, SegmentedButtonImports, SelectBodyComponent, SelectBodyDirective, SelectComponent, SelectDirective, SelectFieldComponent, SelectFieldDirective, SelectImports, SelectOptionComponent, SelectOptionDirective, SelectionListFieldComponent, SelectionListFieldDirective, SelectionListImports, SelectionListOptionComponent, SelectionListOptionDirective, ShowPickerTriggerDirective, SidebarOverlayService, SkeletonComponent, SkeletonImports, SkeletonItemComponent, SlideToggleComponent, SlideToggleDirective, SlideToggleFieldComponent, SlideToggleImports, SliderComponent, SliderFieldComponent, SliderImports, SortDirective, SortHeaderComponent, SortHeaderIntl, SortImports, StaticFormFieldDirective, StaticFormGroupDirective, SwipeHandlerService, TAB, TABS_CONFIG, TAB_CONTENT, TAB_GROUP, TAB_LABEL, TEL_INPUT_TOKEN, TEXTAREA_INPUT_TOKEN, TEXT_INPUT_TOKEN, TIME_INPUT_FORMAT_TOKEN, TIME_INPUT_TOKEN, TOGGLETIP, TOGGLETIP_CONFIG, TOGGLETIP_DEFAULT_CONFIG, TOGGLETIP_DIRECTIVE, TOGGLETIP_TEMPLATE, TOGGLETIP_TEXT, TOOLTIP, TOOLTIP_CONFIG, TOOLTIP_DEFAULT_CONFIG, TOOLTIP_DIRECTIVE, TOOLTIP_TEMPLATE, TOOLTIP_TEXT, TabImports, TableBusyDirective, TableBusyOutletDirective, TableComponent, TableDataSource, TableImports, TargetMenuAim, TelInputComponent, TelInputDirective, TextColumnComponent, TextInputComponent, TextInputDirective, TextareaInputComponent, TextareaInputDirective, TimeInputComponent, TimeInputDirective, ToggletipCloseDirective, ToggletipComponent, ToggletipDirective, ToggletipImports, TooltipComponent, TooltipDirective, TooltipImports, VALIDATOR_ERROR_SERVICE_TOKEN, WRITEABLE_INPUT_TOKEN, WRITEABLE_INPUT_VALUE_ACCESSOR, WriteableInputDirective, _MAT_INK_BAR_POSITIONER, _MAT_INK_BAR_POSITIONER_FACTORY, accordionAnimations, convertHttpStatusCodeToMessageDe, convertHttpStatusCodeToMessageEn, convertHttpStatusCodeToTitleDe, convertHttpStatusCodeToTitleEn, createBottomSheetConfig, createBracketConfig, createComboboxConfig, createDialogConfig, createOverlayConfig, createOverlayDismissChecker, createOverlayHandler, createToggletipConfig, createTooltipConfig, defaultSubmitButtonConfigFn, getClosestBottomSheet, getClosestDialog, getClosestOverlay, isScrollableChildActive, isScrollableChildIgnored, isUpperBracketMatch, normalizePictureSizes, normalizePictureSource, normalizeRoundType, orderRounds, orderRoundsByRoundNumber, paginate, provideBottomSheet, provideBottomSheetDefaultConfig, provideBracketConfig, provideComboboxConfig, provideDateFormat, provideDateTimeFormat, provideDialog, provideDialogDefaultConfig, provideFilterOverlayConfig, provideImageConfig, provideOverlay, provideOverlayDefaultConfig, provideOverlayRouterConfig, provideSidebarOverlayConfig, provideSort, provideTimeFormat, provideToggletipConfig, provideTooltipConfig, provideValidatorErrorsService, tabAnimations };
17719
17760
  //# sourceMappingURL=ethlete-cdk.mjs.map