@ethlete/core 5.0.0-next.56 → 5.0.0-next.57

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.
@@ -1,7 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
- import { InjectionToken, inject, ElementRef, isDevMode, Directive, assertInInjectionContext, DestroyRef, TemplateRef, QueryList, RendererFactory2, RendererStyleFlags2, isSignal, DOCUMENT, signal, linkedSignal, computed, afterNextRender, effect, untracked, EnvironmentInjector, runInInjectionContext, NgZone, Injector, booleanAttribute, numberAttribute, PLATFORM_ID, ApplicationRef, createComponent, model, ViewContainerRef, input, ViewEncapsulation, Component, provideEnvironmentInitializer, output, createEnvironmentInjector, Pipe, afterEveryRender } from '@angular/core';
2
+ import { assertInInjectionContext, inject, DestroyRef, ElementRef, TemplateRef, InjectionToken, QueryList, RendererFactory2, RendererStyleFlags2, isSignal, DOCUMENT, signal, linkedSignal, isDevMode, computed, afterNextRender, effect, untracked, ApplicationRef, runInInjectionContext, NgZone, Injector, booleanAttribute, numberAttribute, PLATFORM_ID, EnvironmentInjector, createComponent, ViewEncapsulation, Component, Directive, model, ViewContainerRef, input, provideEnvironmentInitializer, output, createEnvironmentInjector, Pipe, afterEveryRender } from '@angular/core';
3
3
  import { takeUntilDestroyed, toSignal, toObservable, outputFromObservable } from '@angular/core/rxjs-interop';
4
- import { Subject, BehaviorSubject, debounceTime, combineLatest, map, merge, fromEvent, filter, tap, switchMap, startWith, of, defer, from, catchError, timer, takeUntil, pairwise, distinctUntilChanged, EMPTY, take, Observable, isObservable, firstValueFrom, defaultIfEmpty, concatMap, concat, finalize, exhaustMap, share, shareReplay } from 'rxjs';
4
+ import { Subject, fromEvent, switchMap, startWith, of, defer, from, map, catchError, timer, takeUntil, pairwise, debounceTime, merge, distinctUntilChanged, EMPTY, tap, take, filter, BehaviorSubject, combineLatest, Observable, isObservable, firstValueFrom, defaultIfEmpty, concatMap, concat, finalize, exhaustMap, share, shareReplay } from 'rxjs';
5
5
  import { FormGroup, FormArray, FormControl } from '@angular/forms';
6
6
  import { SIGNAL, signalSetFn } from '@angular/core/primitives/signals';
7
7
  import { isPlatformBrowser, DOCUMENT as DOCUMENT$1 } from '@angular/common';
@@ -33,122 +33,6 @@ const animationDebugLog = (scope, ...args) => {
33
33
  console.log(`\x1B[36m[et-overlay-debug ${timestamp}ms | ${scope}]\x1B[m`, ...args);
34
34
  };
35
35
 
36
- const ANIMATABLE_TOKEN = new InjectionToken('ANIMATABLE_DIRECTIVE_TOKEN');
37
- class AnimatableDirective {
38
- constructor() {
39
- this.parent = inject(ANIMATABLE_TOKEN, { optional: true, skipSelf: true });
40
- this.elementRef = inject(ElementRef);
41
- this.animationStartSubject$ = new Subject();
42
- this.animationEndSubject$ = new Subject();
43
- this.activeAnimationCount = 0;
44
- this.hostActiveAnimationCount$ = new BehaviorSubject(0);
45
- this.animationStart$ = this.animationStartSubject$.asObservable().pipe(debounceTime(0));
46
- this.animationEnd$ = this.animationEndSubject$.asObservable().pipe(debounceTime(0));
47
- this.totalActiveAnimationCount$ = this.parent
48
- ? combineLatest([this.parent.totalActiveAnimationCount$, this.hostActiveAnimationCount$]).pipe(map(([parentCount, hostCount]) => Math.max(0, parentCount + hostCount)))
49
- : this.hostActiveAnimationCount$.pipe(map((count) => Math.max(0, count)));
50
- this.isAnimating$ = this.totalActiveAnimationCount$.pipe(map((count) => count > 0));
51
- let didEmitStart = false;
52
- const el = this.elementRef.nativeElement;
53
- merge(merge(fromEvent(el, 'animationstart'), fromEvent(el, 'transitionrun')).pipe(filter((e) => e.target === el && !e.pseudoElement), map(() => 'start')), merge(fromEvent(el, 'animationend'), fromEvent(el, 'transitionend')).pipe(filter((e) => e.target === el && !e.pseudoElement), map(() => 'end')), merge(fromEvent(el, 'animationcancel'), fromEvent(el, 'transitioncancel')).pipe(filter((e) => e.target === el && !e.pseudoElement), map(() => 'cancel')))
54
- .pipe(tap((eventType) => {
55
- switch (eventType) {
56
- case 'start': {
57
- const startingNewBatch = this.activeAnimationCount === 0;
58
- this.updateActiveAnimationCount(1);
59
- if (startingNewBatch) {
60
- this.activeBatchTransitionId = this.pendingTransitionId;
61
- this.pendingTransitionId = undefined;
62
- }
63
- animationDebugLog(`animatable ${el.tagName.toLowerCase()}`, `start (count ${this.activeAnimationCount}, batch "${this.activeBatchTransitionId}", pending "${this.pendingTransitionId ?? 'none'}")`);
64
- if (!didEmitStart) {
65
- didEmitStart = true;
66
- this.animationStartSubject$.next();
67
- }
68
- break;
69
- }
70
- case 'end':
71
- case 'cancel': {
72
- if (this.activeAnimationCount > 0) {
73
- this.updateActiveAnimationCount(-1);
74
- animationDebugLog(`animatable ${el.tagName.toLowerCase()}`, `${eventType} (count ${this.activeAnimationCount}, batch "${this.activeBatchTransitionId}")`);
75
- if (this.activeAnimationCount === 0 && didEmitStart) {
76
- didEmitStart = false;
77
- this.animationEndSubject$.next({
78
- cancelled: eventType === 'cancel',
79
- transitionId: this.activeBatchTransitionId,
80
- });
81
- this.activeBatchTransitionId = undefined;
82
- }
83
- }
84
- else {
85
- animationDebugLog(`animatable ${el.tagName.toLowerCase()}`, `${eventType} ignored - count already 0 (start ${didEmitStart ? '' : 'not '}emitted)`);
86
- if (isDevMode()) {
87
- console.warn(`${el.tagName} received animation end/cancel event but activeAnimationCount is already 0. Start was ${didEmitStart ? '' : 'not '}emitted.`);
88
- }
89
- }
90
- break;
91
- }
92
- }
93
- }), takeUntilDestroyed())
94
- .subscribe();
95
- }
96
- /**
97
- * Labels the next batch of animations that starts on this element. Only the most recent id is
98
- * kept: a call whose animations never start must not leave an id behind for a later batch.
99
- */
100
- setTransitionId(id) {
101
- this.pendingTransitionId = id;
102
- }
103
- /**
104
- * The animations running on this element right now, without the endless and pseudo-element ones.
105
- *
106
- * Reading this flushes pending style changes, so an animation a class change started in the same
107
- * task is already listed here. `isAnimating$` cannot answer that: it turns true only once the
108
- * browser dispatches `transitionrun`, a frame after the style change is committed.
109
- */
110
- getRunningAnimations() {
111
- const el = this.elementRef.nativeElement;
112
- if (typeof el.getAnimations !== 'function')
113
- return [];
114
- return el.getAnimations().filter((animation) => {
115
- if (animation.playState !== 'running')
116
- return false;
117
- const effect = animation.effect;
118
- if (!effect || effect.pseudoElement)
119
- return false;
120
- // An endless animation never resolves `finished`, so awaiting one would strand the transition.
121
- return effect.getComputedTiming().iterations !== Infinity;
122
- });
123
- }
124
- updateActiveAnimationCount(delta) {
125
- const newVal = this.activeAnimationCount + delta;
126
- const clampedVal = Math.max(0, newVal);
127
- this.activeAnimationCount = clampedVal;
128
- this.hostActiveAnimationCount$.next(clampedVal);
129
- }
130
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: AnimatableDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
131
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.7", type: AnimatableDirective, isStandalone: true, selector: "[etAnimatable]", providers: [
132
- {
133
- provide: ANIMATABLE_TOKEN,
134
- useExisting: AnimatableDirective,
135
- },
136
- ], exportAs: ["etAnimatable"], ngImport: i0 }); }
137
- }
138
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: AnimatableDirective, decorators: [{
139
- type: Directive,
140
- args: [{
141
- selector: '[etAnimatable]',
142
- exportAs: 'etAnimatable',
143
- providers: [
144
- {
145
- provide: ANIMATABLE_TOKEN,
146
- useExisting: AnimatableDirective,
147
- },
148
- ],
149
- }]
150
- }], ctorParameters: () => [] });
151
-
152
36
  const componentIds = /* @__PURE__ */ new Map();
153
37
  const createComponentId = (prefix) => {
154
38
  const id = componentIds.get(prefix) ?? 0;
@@ -574,20 +458,22 @@ function find(iter, tar, key) {
574
458
  return key;
575
459
  }
576
460
  }
461
+ /** A constructor check misses a Date from another realm, or one created under a faked global `Date`. */
462
+ const isDate = (value) => Object.prototype.toString.call(value) === '[object Date]';
577
463
  const equal = (foo, bar) => {
578
464
  var ctor;
579
465
  var len;
580
466
  var tmp;
581
467
  if (foo === bar)
582
468
  return true;
469
+ if (isDate(foo) || isDate(bar))
470
+ return isDate(foo) && isDate(bar) && foo.getTime() === bar.getTime();
583
471
  if (foo &&
584
472
  bar &&
585
473
  ((ctor = foo.constructor) === bar.constructor ||
586
474
  (!ctor && bar.constructor === Object) ||
587
475
  (ctor === Object && !bar.constructor))) {
588
476
  ctor ??= bar.constructor;
589
- if (ctor === Date)
590
- return foo.getTime() === bar.getTime();
591
477
  if (ctor === RegExp)
592
478
  return foo.toString() === bar.toString();
593
479
  if (ctor === Array) {
@@ -695,7 +581,7 @@ const setCookie = (name, data, expiresInDays, domain = getDomain(), path = '/',
695
581
  cookieString += `; domain=${domain}`;
696
582
  }
697
583
  cookieString += `; SameSite=${sameSiteUpper}`;
698
- if (sameSite === 'none' || window.location.protocol === 'https:') {
584
+ if (sameSite === 'none' || (typeof window !== 'undefined' && window.location.protocol === 'https:')) {
699
585
  cookieString += '; Secure';
700
586
  }
701
587
  cookieString += ';';
@@ -712,7 +598,7 @@ const deleteCookie = (name, path = '/', domain = getDomain()) => {
712
598
  }
713
599
  };
714
600
  const getDomain = () => {
715
- if (typeof navigator === 'undefined') {
601
+ if (typeof window === 'undefined') {
716
602
  return null;
717
603
  }
718
604
  const hostname = window.location.hostname;
@@ -1181,7 +1067,10 @@ const deferredSignal = (valueFn) => {
1181
1067
  const memoizeSignal = (factory) => {
1182
1068
  const cache = new WeakMap();
1183
1069
  return () => {
1184
- const envInjector = inject(EnvironmentInjector);
1070
+ // The application's root injector, not the nearest one: an overlay runs its content in an
1071
+ // environment injector of its own, and keying on that would build a second observer - plus, for
1072
+ // the scrollbar ruler, a second element in `<body>` - for every open overlay.
1073
+ const envInjector = inject(ApplicationRef).injector;
1185
1074
  let cached = cache.get(envInjector);
1186
1075
  if (!cached) {
1187
1076
  cached = runInInjectionContext(envInjector, factory);
@@ -1226,7 +1115,8 @@ const signalElementDimensions = (el) => {
1226
1115
  const zone = inject(NgZone);
1227
1116
  const isRendered = signalIsRendered();
1228
1117
  const initialValue = () => createElementDimensions(firstEl().currentElement);
1229
- const elementDimensionsSignal = signal(initialValue(), /* @ts-ignore */
1118
+ // A viewChild.required throws NG0951 until the view exists, so the element is first read in the effect.
1119
+ const elementDimensionsSignal = signal(createElementDimensions(null), /* @ts-ignore */
1230
1120
  ...(ngDevMode ? [{ debugName: "elementDimensionsSignal" }] : /* istanbul ignore next */ []));
1231
1121
  let observer = null;
1232
1122
  effect(() => {
@@ -1940,20 +1830,19 @@ const signalElementMutations = (el, options) => {
1940
1830
  const firstEl = firstElementSignal(elements);
1941
1831
  const zone = inject(NgZone);
1942
1832
  const isRendered = signalIsRendered();
1943
- const elementMutationsSignal = signal(null, /* @ts-ignore */
1833
+ const elementMutationsSignal = signal([], /* @ts-ignore */
1944
1834
  ...(ngDevMode ? [{ debugName: "elementMutationsSignal" }] : /* istanbul ignore next */ []));
1945
1835
  let observer = null;
1946
1836
  effect(() => {
1947
1837
  const els = firstEl();
1948
1838
  const rendered = isRendered();
1949
- elementMutationsSignal.set(null);
1839
+ elementMutationsSignal.set([]);
1950
1840
  if (!rendered || typeof MutationObserver === 'undefined') {
1951
1841
  return;
1952
1842
  }
1953
- observer ??= new MutationObserver((entries) => {
1954
- const entry = entries[0];
1955
- if (entry) {
1956
- zone.run(() => elementMutationsSignal.set(entry));
1843
+ observer ??= new MutationObserver((records) => {
1844
+ if (records.length) {
1845
+ zone.run(() => elementMutationsSignal.set(records));
1957
1846
  }
1958
1847
  });
1959
1848
  observer.disconnect();
@@ -2770,6 +2659,9 @@ const useCursorDragScroll = (el, options) => {
2770
2659
  }, /* @ts-ignore */
2771
2660
  ...(ngDevMode ? [{ debugName: "measuredCanScroll" }] : /* istanbul ignore next */ []));
2772
2661
  const canScroll = suppliedCanScroll ?? measuredCanScroll;
2662
+ // A host destroyed mid-drag never re-runs the styling effect, so the grabbing cursor it wrote on
2663
+ // `<html>` would outlive the page it was dragged on.
2664
+ destroyRef.onDestroy(() => renderer.removeStyle(document.documentElement, 'cursor'));
2773
2665
  // Cleanup if the element the cursor drag scroll is bound to gets changed
2774
2666
  effect(() => {
2775
2667
  const { previousElement } = element();
@@ -2923,13 +2815,15 @@ const injectRouterEvent = /* @__PURE__ */ memoizeSignal(() => {
2923
2815
  });
2924
2816
  /**
2925
2817
  * Signal that indicates whether the router has been initialized.
2926
- * The router is considered initialized once the first NavigationEnd event with an id different than -1 has been emitted.
2818
+ * The router is considered initialized once its first navigation has completed, including one that completed
2819
+ * before this signal was first injected.
2927
2820
  */
2928
2821
  const injectIsRouterInitialized = /* @__PURE__ */ memoizeSignal(() => {
2929
2822
  const event = injectRouterEvent();
2823
+ const navigatedBefore = inject(Router).navigated;
2930
2824
  return computed(() => {
2931
2825
  const e = event();
2932
- return (e instanceof NavigationEnd && e.id !== -1) || e instanceof NavigationSkipped;
2826
+ return navigatedBefore || (e instanceof NavigationEnd && e.id !== -1) || e instanceof NavigationSkipped;
2933
2827
  });
2934
2828
  });
2935
2829
  /**
@@ -3219,6 +3113,16 @@ const serializeQueryParams = (queryParams) => Object.keys(queryParams)
3219
3113
  .sort()
3220
3114
  .map((key) => `${key}=${queryParams[key]}`)
3221
3115
  .join('&');
3116
+ // Two navigations that matched the same route definition get the same object back, which is what
3117
+ // tells `/detail/1` -> `/detail/2` apart from `/list` -> `/detail/1`.
3118
+ const getDeepestRouteConfig = (router) => {
3119
+ let route = router.routerState.snapshot.root;
3120
+ while (route.firstChild) {
3121
+ route = route.firstChild;
3122
+ }
3123
+ return route.routeConfig;
3124
+ };
3125
+ const didPathParamsChange = (prevParams, currParams) => [...new Set(Object.keys(prevParams).concat(Object.keys(currParams)))].some((key) => prevParams[key] !== currParams[key]);
3222
3126
  const setupScrollRestoration = (config = {}) => {
3223
3127
  if (!isPlatformBrowser(inject(PLATFORM_ID))) {
3224
3128
  return;
@@ -3250,7 +3154,11 @@ const setupScrollRestoration = (config = {}) => {
3250
3154
  let restoredNavigationId = null;
3251
3155
  let isPopstate = false;
3252
3156
  let wantsRestore = false;
3253
- let prev = { state: createRouterState(router), route: createRoute(router) };
3157
+ let prev = {
3158
+ state: createRouterState(router),
3159
+ route: createRoute(router),
3160
+ routeConfig: getDeepestRouteConfig(router),
3161
+ };
3254
3162
  let pendingRestore = null;
3255
3163
  const cancelPendingRestore = () => {
3256
3164
  pendingRestore?.();
@@ -3364,9 +3272,14 @@ const setupScrollRestoration = (config = {}) => {
3364
3272
  wantsRestore = !isPopstate && navigationState?.[ET_RESTORE_SCROLL] === true;
3365
3273
  };
3366
3274
  const onNavigationEnd = (event) => {
3367
- const curr = { state: createRouterState(router), route: createRoute(router) };
3275
+ const curr = {
3276
+ state: createRouterState(router),
3277
+ route: createRoute(router),
3278
+ routeConfig: getDeepestRouteConfig(router),
3279
+ };
3368
3280
  const prevState = prev.state;
3369
3281
  const currState = curr.state;
3282
+ const sameRouteConfig = prev.routeConfig !== null && prev.routeConfig === curr.routeConfig;
3370
3283
  const sameUrlNavigation = prev.route === curr.route;
3371
3284
  const didFragmentChange = prevState.fragment !== currState.fragment;
3372
3285
  prev = curr;
@@ -3419,7 +3332,9 @@ const setupScrollRestoration = (config = {}) => {
3419
3332
  else {
3420
3333
  const viaReturnRoute = currState.data[ET_DISABLE_SCROLL_TOP_AS_RETURN_ROUTE] && prevState.data[ET_DISABLE_SCROLL_TOP];
3421
3334
  const explicitly = currState.data[ET_DISABLE_SCROLL_TOP];
3422
- const pathParamsChange = currState.data[ET_DISABLE_SCROLL_TOP_ON_PATH_PARAM_CHANGE];
3335
+ const pathParamsChange = currState.data[ET_DISABLE_SCROLL_TOP_ON_PATH_PARAM_CHANGE] &&
3336
+ sameRouteConfig &&
3337
+ didPathParamsChange(prevState.pathParams, currState.pathParams);
3423
3338
  if (viaReturnRoute || explicitly || pathParamsChange) {
3424
3339
  return;
3425
3340
  }
@@ -4326,7 +4241,7 @@ const FOCUS_VISIBLE_TRACKER_DEF = /* @__PURE__ */ defineRootProvider(() => {
4326
4241
  ...(ngDevMode ? [{ debugName: "isFocusVisible" }] : /* istanbul ignore next */ []));
4327
4242
  let hadKeyboardEvent = false;
4328
4243
  const onKeyDown = (e) => {
4329
- if (e.metaKey || e.altKey || e.ctrlKey || ['Shift', 'Meta', 'Alt', 'Control'].includes(e.key))
4244
+ if (e.metaKey || e.altKey || e.ctrlKey || ['Meta', 'Alt', 'Control'].includes(e.key))
4330
4245
  return;
4331
4246
  hadKeyboardEvent = true;
4332
4247
  queueMicrotask(() => isFocusVisible.set(true));
@@ -4503,6 +4418,140 @@ const createUserConsentProvider = (options) => ({
4503
4418
  }),
4504
4419
  });
4505
4420
 
4421
+ /**
4422
+ * Declares the `--ease-*` custom properties that every animated stylesheet in the SDK
4423
+ * transitions with, as a styles-only component. Mount it from any component or directive whose
4424
+ * CSS reads one - without the declaration the whole `transition` shorthand is invalid at
4425
+ * computed-value time and the element snaps instead of animating.
4426
+ */
4427
+ class EasingTokensStylesComponent {
4428
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: EasingTokensStylesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
4429
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.6", type: EasingTokensStylesComponent, isStandalone: true, selector: "et-easing-tokens-styles", ngImport: i0, template: '', isInline: true, styles: ["@layer components{:where(html){--ease-1: cubic-bezier(.25, 0, .5, 1);--ease-2: cubic-bezier(.25, 0, .4, 1);--ease-3: cubic-bezier(.25, 0, .3, 1);--ease-4: cubic-bezier(.25, 0, .2, 1);--ease-5: cubic-bezier(.25, 0, .1, 1);--ease-in-1: cubic-bezier(.25, 0, 1, 1);--ease-in-2: cubic-bezier(.5, 0, 1, 1);--ease-in-3: cubic-bezier(.7, 0, 1, 1);--ease-in-4: cubic-bezier(.9, 0, 1, 1);--ease-in-5: cubic-bezier(1, 0, 1, 1);--ease-out-1: cubic-bezier(0, 0, .75, 1);--ease-out-2: cubic-bezier(0, 0, .5, 1);--ease-out-3: cubic-bezier(0, 0, .3, 1);--ease-out-4: cubic-bezier(0, 0, .1, 1);--ease-out-5: cubic-bezier(0, 0, 0, 1);--ease-in-out-1: cubic-bezier(.1, 0, .9, 1);--ease-in-out-2: cubic-bezier(.3, 0, .7, 1);--ease-in-out-3: cubic-bezier(.5, 0, .5, 1);--ease-in-out-4: cubic-bezier(.7, 0, .3, 1);--ease-in-out-5: cubic-bezier(.9, 0, .1, 1);--ease-elastic-1: cubic-bezier(.5, .75, .75, 1.25);--ease-elastic-2: cubic-bezier(.5, 1, .75, 1.25);--ease-elastic-3: cubic-bezier(.5, 1.25, .75, 1.25);--ease-elastic-4: cubic-bezier(.5, 1.5, .75, 1.25);--ease-elastic-5: cubic-bezier(.5, 1.75, .75, 1.25);--ease-squish-1: cubic-bezier(.5, -.1, .1, 1.5);--ease-squish-2: cubic-bezier(.5, -.3, .1, 1.5);--ease-squish-3: cubic-bezier(.5, -.5, .1, 1.5);--ease-squish-4: cubic-bezier(.5, -.7, .1, 1.5);--ease-squish-5: cubic-bezier(.5, -.9, .1, 1.5);--ease-step-1: steps(2);--ease-step-2: steps(3);--ease-step-3: steps(4);--ease-step-4: steps(7);--ease-step-5: steps(10);--ease-spring-1: linear( 0, .006, .025 2.8%, .101 6.1%, .539 18.9%, .721 25.3%, .849 31.5%, .937 38.1%, .968 41.8%, .991 45.7%, 1.006 50.1%, 1.015 55%, 1.017 63.9%, 1.001 );--ease-spring-2: linear( 0, .007, .029 2.2%, .118 4.7%, .625 14.4%, .826 19%, .902, .962, 1.008 26.1%, 1.041 28.7%, 1.064 32.1%, 1.07 36%, 1.061 40.5%, 1.015 53.4%, .999 61.6%, .995 71.2%, 1 );--ease-spring-3: linear( 0, .009, .035 2.1%, .141 4.4%, .723 12.9%, .938 16.7%, 1.017, 1.077, 1.121, 1.149 24.3%, 1.159, 1.163, 1.161, 1.154 29.9%, 1.129 32.8%, 1.051 39.6%, 1.017 43.1%, .991, .977 51%, .974 53.8%, .975 57.1%, .997 69.8%, 1.003 76.9%, 1 );--ease-spring-4: linear( 0, .009, .037 1.7%, .153 3.6%, .776 10.3%, 1.001, 1.142 16%, 1.185, 1.209 19%, 1.215 19.9% 20.8%, 1.199, 1.165 25%, 1.056 30.3%, 1.008 33%, .973, .955 39.2%, .953 41.1%, .957 43.3%, .998 53.3%, 1.009 59.1% 63.7%, .998 78.9%, 1 );--ease-spring-5: linear( 0, .01, .04 1.6%, .161 3.3%, .816 9.4%, 1.046, 1.189 14.4%, 1.231, 1.254 17%, 1.259, 1.257 18.6%, 1.236, 1.194 22.3%, 1.057 27%, .999 29.4%, .955 32.1%, .942, .935 34.9%, .933, .939 38.4%, 1 47.3%, 1.011, 1.017 52.6%, 1.016 56.4%, 1 65.2%, .996 70.2%, 1.001 87.2%, 1 )}}\n"], encapsulation: i0.ViewEncapsulation.None }); }
4430
+ }
4431
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: EasingTokensStylesComponent, decorators: [{
4432
+ type: Component,
4433
+ args: [{ selector: 'et-easing-tokens-styles', template: '', encapsulation: ViewEncapsulation.None, styles: ["@layer components{:where(html){--ease-1: cubic-bezier(.25, 0, .5, 1);--ease-2: cubic-bezier(.25, 0, .4, 1);--ease-3: cubic-bezier(.25, 0, .3, 1);--ease-4: cubic-bezier(.25, 0, .2, 1);--ease-5: cubic-bezier(.25, 0, .1, 1);--ease-in-1: cubic-bezier(.25, 0, 1, 1);--ease-in-2: cubic-bezier(.5, 0, 1, 1);--ease-in-3: cubic-bezier(.7, 0, 1, 1);--ease-in-4: cubic-bezier(.9, 0, 1, 1);--ease-in-5: cubic-bezier(1, 0, 1, 1);--ease-out-1: cubic-bezier(0, 0, .75, 1);--ease-out-2: cubic-bezier(0, 0, .5, 1);--ease-out-3: cubic-bezier(0, 0, .3, 1);--ease-out-4: cubic-bezier(0, 0, .1, 1);--ease-out-5: cubic-bezier(0, 0, 0, 1);--ease-in-out-1: cubic-bezier(.1, 0, .9, 1);--ease-in-out-2: cubic-bezier(.3, 0, .7, 1);--ease-in-out-3: cubic-bezier(.5, 0, .5, 1);--ease-in-out-4: cubic-bezier(.7, 0, .3, 1);--ease-in-out-5: cubic-bezier(.9, 0, .1, 1);--ease-elastic-1: cubic-bezier(.5, .75, .75, 1.25);--ease-elastic-2: cubic-bezier(.5, 1, .75, 1.25);--ease-elastic-3: cubic-bezier(.5, 1.25, .75, 1.25);--ease-elastic-4: cubic-bezier(.5, 1.5, .75, 1.25);--ease-elastic-5: cubic-bezier(.5, 1.75, .75, 1.25);--ease-squish-1: cubic-bezier(.5, -.1, .1, 1.5);--ease-squish-2: cubic-bezier(.5, -.3, .1, 1.5);--ease-squish-3: cubic-bezier(.5, -.5, .1, 1.5);--ease-squish-4: cubic-bezier(.5, -.7, .1, 1.5);--ease-squish-5: cubic-bezier(.5, -.9, .1, 1.5);--ease-step-1: steps(2);--ease-step-2: steps(3);--ease-step-3: steps(4);--ease-step-4: steps(7);--ease-step-5: steps(10);--ease-spring-1: linear( 0, .006, .025 2.8%, .101 6.1%, .539 18.9%, .721 25.3%, .849 31.5%, .937 38.1%, .968 41.8%, .991 45.7%, 1.006 50.1%, 1.015 55%, 1.017 63.9%, 1.001 );--ease-spring-2: linear( 0, .007, .029 2.2%, .118 4.7%, .625 14.4%, .826 19%, .902, .962, 1.008 26.1%, 1.041 28.7%, 1.064 32.1%, 1.07 36%, 1.061 40.5%, 1.015 53.4%, .999 61.6%, .995 71.2%, 1 );--ease-spring-3: linear( 0, .009, .035 2.1%, .141 4.4%, .723 12.9%, .938 16.7%, 1.017, 1.077, 1.121, 1.149 24.3%, 1.159, 1.163, 1.161, 1.154 29.9%, 1.129 32.8%, 1.051 39.6%, 1.017 43.1%, .991, .977 51%, .974 53.8%, .975 57.1%, .997 69.8%, 1.003 76.9%, 1 );--ease-spring-4: linear( 0, .009, .037 1.7%, .153 3.6%, .776 10.3%, 1.001, 1.142 16%, 1.185, 1.209 19%, 1.215 19.9% 20.8%, 1.199, 1.165 25%, 1.056 30.3%, 1.008 33%, .973, .955 39.2%, .953 41.1%, .957 43.3%, .998 53.3%, 1.009 59.1% 63.7%, .998 78.9%, 1 );--ease-spring-5: linear( 0, .01, .04 1.6%, .161 3.3%, .816 9.4%, 1.046, 1.189 14.4%, 1.231, 1.254 17%, 1.259, 1.257 18.6%, 1.236, 1.194 22.3%, 1.057 27%, .999 29.4%, .955 32.1%, .942, .935 34.9%, .933, .939 38.4%, 1 47.3%, 1.011, 1.017 52.6%, 1.016 56.4%, 1 65.2%, .996 70.2%, 1.001 87.2%, 1 )}}\n"] }]
4434
+ }] });
4435
+ /** Mounts {@link EasingTokensStylesComponent}. Call from an injection context. */
4436
+ const mountEasingTokens = () => injectStyleManager().mount(EasingTokensStylesComponent);
4437
+
4438
+ const ANIMATABLE_TOKEN = new InjectionToken('ANIMATABLE_DIRECTIVE_TOKEN');
4439
+ class AnimatableDirective {
4440
+ constructor() {
4441
+ this.parent = inject(ANIMATABLE_TOKEN, { optional: true, skipSelf: true });
4442
+ this.elementRef = inject(ElementRef);
4443
+ this.animationStartSubject$ = new Subject();
4444
+ this.animationEndSubject$ = new Subject();
4445
+ this.activeAnimationCount = 0;
4446
+ this.hostActiveAnimationCount$ = new BehaviorSubject(0);
4447
+ this.animationStart$ = this.animationStartSubject$.asObservable().pipe(debounceTime(0));
4448
+ this.animationEnd$ = this.animationEndSubject$.asObservable().pipe(debounceTime(0));
4449
+ this.totalActiveAnimationCount$ = this.parent
4450
+ ? combineLatest([this.parent.totalActiveAnimationCount$, this.hostActiveAnimationCount$]).pipe(map(([parentCount, hostCount]) => Math.max(0, parentCount + hostCount)))
4451
+ : this.hostActiveAnimationCount$.pipe(map((count) => Math.max(0, count)));
4452
+ this.isAnimating$ = this.totalActiveAnimationCount$.pipe(map((count) => count > 0));
4453
+ mountEasingTokens();
4454
+ let didEmitStart = false;
4455
+ const el = this.elementRef.nativeElement;
4456
+ merge(merge(fromEvent(el, 'animationstart'), fromEvent(el, 'transitionrun')).pipe(filter((e) => e.target === el && !e.pseudoElement), map(() => 'start')), merge(fromEvent(el, 'animationend'), fromEvent(el, 'transitionend')).pipe(filter((e) => e.target === el && !e.pseudoElement), map(() => 'end')), merge(fromEvent(el, 'animationcancel'), fromEvent(el, 'transitioncancel')).pipe(filter((e) => e.target === el && !e.pseudoElement), map(() => 'cancel')))
4457
+ .pipe(tap((eventType) => {
4458
+ switch (eventType) {
4459
+ case 'start': {
4460
+ const startingNewBatch = this.activeAnimationCount === 0;
4461
+ this.updateActiveAnimationCount(1);
4462
+ if (startingNewBatch) {
4463
+ this.activeBatchTransitionId = this.pendingTransitionId;
4464
+ this.pendingTransitionId = undefined;
4465
+ }
4466
+ animationDebugLog(`animatable ${el.tagName.toLowerCase()}`, `start (count ${this.activeAnimationCount}, batch "${this.activeBatchTransitionId}", pending "${this.pendingTransitionId ?? 'none'}")`);
4467
+ if (!didEmitStart) {
4468
+ didEmitStart = true;
4469
+ this.animationStartSubject$.next();
4470
+ }
4471
+ break;
4472
+ }
4473
+ case 'end':
4474
+ case 'cancel': {
4475
+ if (this.activeAnimationCount > 0) {
4476
+ this.updateActiveAnimationCount(-1);
4477
+ animationDebugLog(`animatable ${el.tagName.toLowerCase()}`, `${eventType} (count ${this.activeAnimationCount}, batch "${this.activeBatchTransitionId}")`);
4478
+ if (this.activeAnimationCount === 0 && didEmitStart) {
4479
+ didEmitStart = false;
4480
+ this.animationEndSubject$.next({
4481
+ cancelled: eventType === 'cancel',
4482
+ transitionId: this.activeBatchTransitionId,
4483
+ });
4484
+ this.activeBatchTransitionId = undefined;
4485
+ }
4486
+ }
4487
+ else {
4488
+ animationDebugLog(`animatable ${el.tagName.toLowerCase()}`, `${eventType} ignored - count already 0 (start ${didEmitStart ? '' : 'not '}emitted)`);
4489
+ if (isDevMode()) {
4490
+ console.warn(`${el.tagName} received animation end/cancel event but activeAnimationCount is already 0. Start was ${didEmitStart ? '' : 'not '}emitted.`);
4491
+ }
4492
+ }
4493
+ break;
4494
+ }
4495
+ }
4496
+ }), takeUntilDestroyed())
4497
+ .subscribe();
4498
+ }
4499
+ /**
4500
+ * Labels the next batch of animations that starts on this element. Only the most recent id is
4501
+ * kept: a call whose animations never start must not leave an id behind for a later batch.
4502
+ */
4503
+ setTransitionId(id) {
4504
+ this.pendingTransitionId = id;
4505
+ }
4506
+ /**
4507
+ * The animations running on this element right now, without the endless and pseudo-element ones.
4508
+ *
4509
+ * Reading this flushes pending style changes, so an animation a class change started in the same
4510
+ * task is already listed here. `isAnimating$` cannot answer that: it turns true only once the
4511
+ * browser dispatches `transitionrun`, a frame after the style change is committed.
4512
+ */
4513
+ getRunningAnimations() {
4514
+ const el = this.elementRef.nativeElement;
4515
+ if (typeof el.getAnimations !== 'function')
4516
+ return [];
4517
+ return el.getAnimations().filter((animation) => {
4518
+ if (animation.playState !== 'running')
4519
+ return false;
4520
+ const effect = animation.effect;
4521
+ if (!effect || effect.pseudoElement)
4522
+ return false;
4523
+ // An endless animation never resolves `finished`, so awaiting one would strand the transition.
4524
+ return effect.getComputedTiming().iterations !== Infinity;
4525
+ });
4526
+ }
4527
+ updateActiveAnimationCount(delta) {
4528
+ const newVal = this.activeAnimationCount + delta;
4529
+ const clampedVal = Math.max(0, newVal);
4530
+ this.activeAnimationCount = clampedVal;
4531
+ this.hostActiveAnimationCount$.next(clampedVal);
4532
+ }
4533
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AnimatableDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
4534
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.6", type: AnimatableDirective, isStandalone: true, selector: "[etAnimatable]", providers: [
4535
+ {
4536
+ provide: ANIMATABLE_TOKEN,
4537
+ useExisting: AnimatableDirective,
4538
+ },
4539
+ ], exportAs: ["etAnimatable"], ngImport: i0 }); }
4540
+ }
4541
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AnimatableDirective, decorators: [{
4542
+ type: Directive,
4543
+ args: [{
4544
+ selector: '[etAnimatable]',
4545
+ exportAs: 'etAnimatable',
4546
+ providers: [
4547
+ {
4548
+ provide: ANIMATABLE_TOKEN,
4549
+ useExisting: AnimatableDirective,
4550
+ },
4551
+ ],
4552
+ }]
4553
+ }], ctorParameters: () => [] });
4554
+
4506
4555
  const nextFrame = (cb) => {
4507
4556
  if (typeof requestAnimationFrame === 'undefined') {
4508
4557
  return;
@@ -4818,15 +4867,15 @@ class AnimatedLifecycleDirective {
4818
4867
  animationDebugLog(scope, message);
4819
4868
  }
4820
4869
  }
4821
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: AnimatedLifecycleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
4822
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.7", type: AnimatedLifecycleDirective, isStandalone: true, selector: "[etAnimatedLifecycle]", inputs: { skipNextEnter: { classPropertyName: "skipNextEnter", publicName: "skipNextEnter", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { stateChange: "stateChange", skipNextEnter: "skipNextEnterChange" }, host: { classAttribute: "et-force-invisible" }, providers: [
4870
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AnimatedLifecycleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
4871
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.6", type: AnimatedLifecycleDirective, isStandalone: true, selector: "[etAnimatedLifecycle]", inputs: { skipNextEnter: { classPropertyName: "skipNextEnter", publicName: "skipNextEnter", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { stateChange: "stateChange", skipNextEnter: "skipNextEnterChange" }, host: { classAttribute: "et-force-invisible" }, providers: [
4823
4872
  {
4824
4873
  provide: ANIMATED_LIFECYCLE_TOKEN,
4825
4874
  useExisting: AnimatedLifecycleDirective,
4826
4875
  },
4827
4876
  ], exportAs: ["etAnimatedLifecycle"], hostDirectives: [{ directive: AnimatableDirective }], ngImport: i0 }); }
4828
4877
  }
4829
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: AnimatedLifecycleDirective, decorators: [{
4878
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AnimatedLifecycleDirective, decorators: [{
4830
4879
  type: Directive,
4831
4880
  args: [{
4832
4881
  selector: '[etAnimatedLifecycle]',
@@ -4873,15 +4922,15 @@ class AnimatedIfDirective {
4873
4922
  }), takeUntilDestroyed())
4874
4923
  .subscribe();
4875
4924
  }
4876
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: AnimatedIfDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
4877
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.7", type: AnimatedIfDirective, isStandalone: true, selector: "[etAnimatedIf]", inputs: { ifValue: { classPropertyName: "ifValue", publicName: "etAnimatedIf", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
4925
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AnimatedIfDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
4926
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.6", type: AnimatedIfDirective, isStandalone: true, selector: "[etAnimatedIf]", inputs: { ifValue: { classPropertyName: "ifValue", publicName: "etAnimatedIf", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
4878
4927
  {
4879
4928
  provide: ANIMATED_IF_TOKEN,
4880
4929
  useExisting: AnimatedIfDirective,
4881
4930
  },
4882
4931
  ], ngImport: i0 }); }
4883
4932
  }
4884
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: AnimatedIfDirective, decorators: [{
4933
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AnimatedIfDirective, decorators: [{
4885
4934
  type: Directive,
4886
4935
  args: [{
4887
4936
  selector: '[etAnimatedIf]',
@@ -4901,14 +4950,51 @@ const createFlipAnimationGroup = (config) => {
4901
4950
  const originElement = 'originElement' in el ? el.originElement : undefined;
4902
4951
  return createFlipAnimation({ element, originElement, duration, easing, ignoreReducedMotion });
4903
4952
  });
4904
- const onStart$ = combineLatest(flips.map((animation) => animation.onStart$));
4905
- const onFinish$ = combineLatest(flips.map((animation) => animation.onFinish$));
4906
- const onCancel$ = combineLatest(flips.map((animation) => animation.onCancel$));
4953
+ const onStart$ = new Subject();
4954
+ const onFinish$ = new Subject();
4955
+ const onCancel$ = new Subject();
4956
+ let startedCount = 0;
4957
+ let settledCount = 0;
4958
+ let cancelledCount = 0;
4959
+ const settle = (wasCancelled) => {
4960
+ settledCount++;
4961
+ if (wasCancelled) {
4962
+ cancelledCount++;
4963
+ }
4964
+ if (settledCount !== flips.length) {
4965
+ return;
4966
+ }
4967
+ if (cancelledCount) {
4968
+ onCancel$.next();
4969
+ }
4970
+ else {
4971
+ onFinish$.next();
4972
+ }
4973
+ };
4974
+ flips.forEach((animation) => {
4975
+ animation.onStart$.subscribe(() => {
4976
+ startedCount++;
4977
+ if (startedCount === flips.length) {
4978
+ onStart$.next();
4979
+ }
4980
+ });
4981
+ animation.onFinish$.subscribe(() => settle(false));
4982
+ animation.onCancel$.subscribe(() => settle(true));
4983
+ });
4907
4984
  const updateInit = () => {
4908
4985
  flips.forEach((animation) => animation.updateInit());
4909
4986
  };
4910
4987
  const play = () => {
4988
+ startedCount = 0;
4911
4989
  flips.forEach((animation) => animation.play());
4990
+ // Reset after the loop: replaying a flip that is still running makes it report a cancel, and that
4991
+ // cancel settles the play being replaced, not this one.
4992
+ settledCount = 0;
4993
+ cancelledCount = 0;
4994
+ if (!flips.length) {
4995
+ onStart$.next();
4996
+ onFinish$.next();
4997
+ }
4912
4998
  };
4913
4999
  const cancel = () => {
4914
5000
  flips.forEach((animation) => animation.cancel());
@@ -4917,9 +5003,9 @@ const createFlipAnimationGroup = (config) => {
4917
5003
  updateInit,
4918
5004
  play,
4919
5005
  cancel,
4920
- onStart$,
4921
- onFinish$,
4922
- onCancel$,
5006
+ onStart$: onStart$.asObservable(),
5007
+ onFinish$: onFinish$.asObservable(),
5008
+ onCancel$: onCancel$.asObservable(),
4923
5009
  };
4924
5010
  };
4925
5011
  const createFlipAnimation = (config) => {
@@ -5531,7 +5617,10 @@ const applyLinkBinding = (binding) => {
5531
5617
  const linkId = Symbol('link-tag');
5532
5618
  let currentKey;
5533
5619
  applyHeadBinding(binding, (config) => {
5534
- currentKey = linkStore.getLinkKey(config);
5620
+ const key = linkStore.getLinkKey(config);
5621
+ if (currentKey !== undefined && currentKey !== key)
5622
+ linkStore.removeLink(linkId, currentKey);
5623
+ currentKey = key;
5535
5624
  linkStore.addLink(linkId, config);
5536
5625
  }, () => linkStore.removeLink(linkId, currentKey));
5537
5626
  };
@@ -5862,7 +5951,10 @@ const applyMetaBinding = (binding) => {
5862
5951
  const tagId = Symbol('meta-tag');
5863
5952
  let currentSelector;
5864
5953
  applyHeadBinding(binding, (config) => {
5865
- currentSelector = metaStore.getSelector(config);
5954
+ const selector = metaStore.getSelector(config);
5955
+ if (currentSelector !== undefined && currentSelector !== selector)
5956
+ metaStore.removeTag(tagId, currentSelector);
5957
+ currentSelector = selector;
5866
5958
  metaStore.addTag(tagId, config);
5867
5959
  }, () => metaStore.removeTag(tagId, currentSelector));
5868
5960
  };
@@ -6090,10 +6182,10 @@ class StructuredDataComponent {
6090
6182
  }, /* @ts-ignore */
6091
6183
  ...(ngDevMode ? [{ debugName: "jsonLD" }] : /* istanbul ignore next */ []));
6092
6184
  }
6093
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: StructuredDataComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
6094
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.0.7", type: StructuredDataComponent, isStandalone: true, selector: "et-structured-data", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "innerHTML": "jsonLD()" }, styleAttribute: "display: none" }, ngImport: i0, template: '', isInline: true, encapsulation: i0.ViewEncapsulation.None }); }
6185
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: StructuredDataComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
6186
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "22.1.6", type: StructuredDataComponent, isStandalone: true, selector: "et-structured-data", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "innerHTML": "jsonLD()" }, styleAttribute: "display: none" }, ngImport: i0, template: '', isInline: true, encapsulation: i0.ViewEncapsulation.None }); }
6095
6187
  }
6096
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: StructuredDataComponent, decorators: [{
6188
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: StructuredDataComponent, decorators: [{
6097
6189
  type: Component,
6098
6190
  args: [{
6099
6191
  selector: 'et-structured-data',
@@ -6406,7 +6498,7 @@ const isCrossOrigin = (source) => /^(https?:)?\/\//.test(source);
6406
6498
  * Cross-origin scripts are left out: an analytics tag with a cache-busting query would otherwise read
6407
6499
  * as a new deploy on every check.
6408
6500
  */
6409
- const readBuildFingerprint = (document) => Array.from(document.head.querySelectorAll('script[src]'))
6501
+ const readBuildFingerprint = (document) => Array.from(document.querySelectorAll('script[src]'))
6410
6502
  .map((script) => script.getAttribute('src') ?? '')
6411
6503
  .filter((source) => !!source && !isCrossOrigin(source))
6412
6504
  .sort()
@@ -6479,6 +6571,12 @@ const isStaleBuildError = (error) => {
6479
6571
  };
6480
6572
 
6481
6573
  const RELOADED_AT_KEY = 'et-app-update-reloaded-at';
6574
+ // A subset check, not equality: the running document also holds every script the app appended to it,
6575
+ // which the served entry document never contains.
6576
+ const isNewBuild = (running, deployed) => {
6577
+ const runningScripts = new Set(running.split('|'));
6578
+ return deployed.split('|').some((source) => !runningScripts.has(source));
6579
+ };
6482
6580
  const APP_UPDATES_CONFIG_DEF = /* @__PURE__ */ defineStaticRootProvider({
6483
6581
  entryUrl: '/',
6484
6582
  pollInterval: 300_000,
@@ -6493,8 +6591,6 @@ const APP_UPDATES_DEF = /* @__PURE__ */ defineRootProvider(() => {
6493
6591
  const coordinator = injectUnsavedChangesCoordinator();
6494
6592
  const router = inject(Router, { optional: true });
6495
6593
  const isBrowser = isPlatformBrowser(inject(PLATFORM_ID));
6496
- // Read once, at startup: this is the build the tab is running, and it cannot change without a
6497
- // reload. Reading it live would drift as the app appends scripts of its own.
6498
6594
  const runningBuild = isBrowser ? readBuildFingerprint(document) : '';
6499
6595
  const reloadedAt = createSessionMemory({
6500
6596
  key: RELOADED_AT_KEY,
@@ -6507,7 +6603,7 @@ const APP_UPDATES_DEF = /* @__PURE__ */ defineRootProvider(() => {
6507
6603
  ...(ngDevMode ? [{ debugName: "_isRequired" }] : /* istanbul ignore next */ []));
6508
6604
  const isAvailable = computed(() => {
6509
6605
  const deployed = _deployedBuild();
6510
- return !!runningBuild && !!deployed && deployed !== runningBuild;
6606
+ return !!runningBuild && !!deployed && isNewBuild(runningBuild, deployed);
6511
6607
  }, /* @ts-ignore */
6512
6608
  ...(ngDevMode ? [{ debugName: "isAvailable" }] : /* istanbul ignore next */ []));
6513
6609
  let lastCheckAt = 0;
@@ -6654,10 +6750,13 @@ const resolveOverlayLayer = (element) => {
6654
6750
  * menu opened from the devtools panel counts as part of the panel's level too.
6655
6751
  */
6656
6752
  const isOnHigherOverlayLayer = (target, layer) => {
6657
- if (!(target instanceof Element)) {
6753
+ const element = target;
6754
+ // Duck-typed rather than `instanceof Element`, which is realm-bound and would report every press
6755
+ // inside a same-origin pop-up as being on no layer at all.
6756
+ if (typeof element?.closest !== 'function') {
6658
6757
  return false;
6659
6758
  }
6660
- return resolveOverlayLayer(target) > layer;
6759
+ return resolveOverlayLayer(element) > layer;
6661
6760
  };
6662
6761
 
6663
6762
  class ClickOutsideDirective {
@@ -6678,10 +6777,10 @@ class ClickOutsideDirective {
6678
6777
  }), takeUntilDestroyed())
6679
6778
  .subscribe();
6680
6779
  }
6681
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ClickOutsideDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
6682
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.7", type: ClickOutsideDirective, isStandalone: true, selector: "[etClickOutside]", outputs: { didClickOutside: "etClickOutside" }, ngImport: i0 }); }
6780
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: ClickOutsideDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
6781
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.6", type: ClickOutsideDirective, isStandalone: true, selector: "[etClickOutside]", outputs: { didClickOutside: "etClickOutside" }, ngImport: i0 }); }
6683
6782
  }
6684
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ClickOutsideDirective, decorators: [{
6783
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: ClickOutsideDirective, decorators: [{
6685
6784
  type: Directive,
6686
6785
  args: [{
6687
6786
  selector: '[etClickOutside]',
@@ -6703,10 +6802,10 @@ class RepeatDirective {
6703
6802
  }
6704
6803
  });
6705
6804
  }
6706
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: RepeatDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
6707
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.7", type: RepeatDirective, isStandalone: true, selector: "[etRepeat]", inputs: { repeatCount: { classPropertyName: "repeatCount", publicName: "etRepeat", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
6805
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: RepeatDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
6806
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.6", type: RepeatDirective, isStandalone: true, selector: "[etRepeat]", inputs: { repeatCount: { classPropertyName: "repeatCount", publicName: "etRepeat", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0 }); }
6708
6807
  }
6709
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: RepeatDirective, decorators: [{
6808
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: RepeatDirective, decorators: [{
6710
6809
  type: Directive,
6711
6810
  args: [{
6712
6811
  selector: '[etRepeat]',
@@ -6732,10 +6831,10 @@ class RestoreScrollDirective {
6732
6831
  // on any later change detection run.
6733
6832
  this.elementRef.nativeElement.addEventListener('click', () => (this.routerLink.state = { ...this.routerLink.state, ...routerRestoreScroll() }), { capture: true });
6734
6833
  }
6735
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: RestoreScrollDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
6736
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.7", type: RestoreScrollDirective, isStandalone: true, selector: "[routerLink][etRestoreScroll]", ngImport: i0 }); }
6834
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: RestoreScrollDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
6835
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.6", type: RestoreScrollDirective, isStandalone: true, selector: "[routerLink][etRestoreScroll]", ngImport: i0 }); }
6737
6836
  }
6738
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: RestoreScrollDirective, decorators: [{
6837
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: RestoreScrollDirective, decorators: [{
6739
6838
  type: Directive,
6740
6839
  args: [{
6741
6840
  selector: '[routerLink][etRestoreScroll]',
@@ -6781,10 +6880,10 @@ class ScrollObserverDirective {
6781
6880
  this._endEl.set(el);
6782
6881
  return () => this._endEl.update((current) => (current === el ? null : current));
6783
6882
  }
6784
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ScrollObserverDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
6785
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.7", type: ScrollObserverDirective, isStandalone: true, selector: "[etScrollObserver]", inputs: { enabled: { classPropertyName: "enabled", publicName: "enabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { enabled: "enabledChange" }, exportAs: ["etScrollObserver"], ngImport: i0 }); }
6883
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: ScrollObserverDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
6884
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.6", type: ScrollObserverDirective, isStandalone: true, selector: "[etScrollObserver]", inputs: { enabled: { classPropertyName: "enabled", publicName: "enabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { enabled: "enabledChange" }, exportAs: ["etScrollObserver"], ngImport: i0 }); }
6786
6885
  }
6787
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ScrollObserverDirective, decorators: [{
6886
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: ScrollObserverDirective, decorators: [{
6788
6887
  type: Directive,
6789
6888
  args: [{
6790
6889
  selector: '[etScrollObserver]',
@@ -6798,10 +6897,10 @@ class ScrollObserverEndDirective {
6798
6897
  this.host = inject(ScrollObserverDirective);
6799
6898
  inject(DestroyRef).onDestroy(this.host.registerEnd(this.elementRef));
6800
6899
  }
6801
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ScrollObserverEndDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
6802
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.7", type: ScrollObserverEndDirective, isStandalone: true, selector: "[etScrollObserverEnd]", ngImport: i0 }); }
6900
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: ScrollObserverEndDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
6901
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.6", type: ScrollObserverEndDirective, isStandalone: true, selector: "[etScrollObserverEnd]", ngImport: i0 }); }
6803
6902
  }
6804
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ScrollObserverEndDirective, decorators: [{
6903
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: ScrollObserverEndDirective, decorators: [{
6805
6904
  type: Directive,
6806
6905
  args: [{
6807
6906
  selector: '[etScrollObserverEnd]',
@@ -6814,10 +6913,10 @@ class ScrollObserverStartDirective {
6814
6913
  this.host = inject(ScrollObserverDirective);
6815
6914
  inject(DestroyRef).onDestroy(this.host.registerStart(this.elementRef));
6816
6915
  }
6817
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ScrollObserverStartDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
6818
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.7", type: ScrollObserverStartDirective, isStandalone: true, selector: "[etScrollObserverStart]", ngImport: i0 }); }
6916
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: ScrollObserverStartDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
6917
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.6", type: ScrollObserverStartDirective, isStandalone: true, selector: "[etScrollObserverStart]", ngImport: i0 }); }
6819
6918
  }
6820
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ScrollObserverStartDirective, decorators: [{
6919
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: ScrollObserverStartDirective, decorators: [{
6821
6920
  type: Directive,
6822
6921
  args: [{
6823
6922
  selector: '[etScrollObserverStart]',
@@ -6954,10 +7053,10 @@ class DragHandleDirective {
6954
7053
  event.stopPropagation();
6955
7054
  this.gestureStart$.next(event);
6956
7055
  }
6957
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: DragHandleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
6958
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.7", type: DragHandleDirective, isStandalone: true, selector: "[etDragHandle]", inputs: { commitThreshold: { classPropertyName: "commitThreshold", publicName: "commitThreshold", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { dragTapped: "dragTapped", dragStarted: "dragStarted", dragMoved: "dragMoved", dragEnded: "dragEnded", dragCancelled: "dragCancelled" }, host: { properties: { "style.touch-action": "disabled() ? null : 'none'" } }, ngImport: i0 }); }
7056
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: DragHandleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
7057
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.6", type: DragHandleDirective, isStandalone: true, selector: "[etDragHandle]", inputs: { commitThreshold: { classPropertyName: "commitThreshold", publicName: "commitThreshold", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { dragTapped: "dragTapped", dragStarted: "dragStarted", dragMoved: "dragMoved", dragEnded: "dragEnded", dragCancelled: "dragCancelled" }, host: { properties: { "style.touch-action": "disabled() ? null : 'none'" } }, ngImport: i0 }); }
6959
7058
  }
6960
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: DragHandleDirective, decorators: [{
7059
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: DragHandleDirective, decorators: [{
6961
7060
  type: Directive,
6962
7061
  args: [{
6963
7062
  selector: '[etDragHandle]',
@@ -7211,7 +7310,18 @@ const FOCUSABLE_SELECTOR = /* @__PURE__ */ [
7211
7310
  '[contenteditable="true"]',
7212
7311
  ].join(',');
7213
7312
  const isHTMLElement = (value) => {
7214
- return value instanceof HTMLElement;
7313
+ // `instanceof` is realm-bound: an element adopted by a same-origin pop-up (the `document` mount
7314
+ // option) belongs to that window's `HTMLElement`, not to this one's.
7315
+ const view = value?.ownerDocument?.defaultView;
7316
+ return view ? value instanceof view.HTMLElement : value instanceof HTMLElement;
7317
+ };
7318
+ /**
7319
+ * Whether the overlay rooted at `hostElement` is still the owner of DOM focus - focus is inside it, or
7320
+ * nothing is focused. False once the user has moved focus somewhere else.
7321
+ */
7322
+ const ownsActiveElement = (hostElement, document) => {
7323
+ const activeElement = document.activeElement;
7324
+ return !activeElement || activeElement === document.body || hostElement.contains(activeElement);
7215
7325
  };
7216
7326
  const isFocusable = (element, document) => {
7217
7327
  const view = document.defaultView;
@@ -7653,6 +7763,8 @@ const createAnchoredPositionCleanup = (strategy, paneElement, overlayRef, render
7653
7763
  ? flip({
7654
7764
  fallbackPlacements: strategy.fallbackPlacements ?? undefined,
7655
7765
  fallbackAxisSideDirection: 'start',
7766
+ // shift owns cross-axis overflow; a full check here flips a pane near a side edge off its side
7767
+ crossAxis: strategy.shift !== false ? 'alignment' : true,
7656
7768
  padding: viewportPadding,
7657
7769
  boundary: strategy.boundary,
7658
7770
  })
@@ -7961,8 +8073,9 @@ const OVERLAY_RUNTIME_DEF = /* @__PURE__ */ defineRootProvider(() => {
7961
8073
  const entries = openEntriesState();
7962
8074
  for (let index = entries.length - 1; index >= 0; index--) {
7963
8075
  const entry = entries[index];
7964
- if (entry && entry.state() !== 'closing' && entry.state() !== 'closed')
7965
- return entry === overlayRef;
8076
+ if (!entry || entry.config.passive || entry.state() === 'closing' || entry.state() === 'closed')
8077
+ continue;
8078
+ return entry === overlayRef;
7966
8079
  }
7967
8080
  return false;
7968
8081
  };
@@ -8085,8 +8198,14 @@ const OVERLAY_RUNTIME_DEF = /* @__PURE__ */ defineRootProvider(() => {
8085
8198
  });
8086
8199
  const destroyMountedOverlay = (closeEvent) => {
8087
8200
  animationDebugLog(`runtime ${config.id}`, `destroy (source "${closeEvent.source}")`);
8201
+ // Read before teardown: removing the host element moves focus to the body, which would make
8202
+ // every close look like the overlay still owned it.
8203
+ const overlayStillOwnsFocus = ownsActiveElement(hostElement, targetDocument);
8088
8204
  cleanupFns.forEach((cleanup) => cleanup());
8089
- appRef.detachView(componentRef.hostView);
8205
+ // On app teardown the ApplicationRef is destroyed before this runs; detaching then warns NG0406.
8206
+ if (!appRef.destroyed) {
8207
+ appRef.detachView(componentRef.hostView);
8208
+ }
8090
8209
  componentRef.destroy();
8091
8210
  // Angular does not own this injector, so nothing else tears down what the overlay's own
8092
8211
  // providers registered on it - their `DestroyRef` hooks and effects would outlive the overlay.
@@ -8100,7 +8219,7 @@ const OVERLAY_RUNTIME_DEF = /* @__PURE__ */ defineRootProvider(() => {
8100
8219
  }
8101
8220
  openEntriesState.update((entries) => entries.filter((entry) => entry !== overlayRef));
8102
8221
  maybeDestroyRootElements(targetDocument);
8103
- if (config.restoreFocus !== false && previousFocusedElement?.isConnected) {
8222
+ if (config.restoreFocus !== false && overlayStillOwnsFocus && previousFocusedElement?.isConnected) {
8104
8223
  previousFocusedElement.focus({ preventScroll: true });
8105
8224
  }
8106
8225
  overlayRef.finishClose(closeEvent);
@@ -8242,10 +8361,10 @@ class NormalizeGameResultTypePipe {
8242
8361
  constructor() {
8243
8362
  this.transform = normalizeGameResultType;
8244
8363
  }
8245
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: NormalizeGameResultTypePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
8246
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.0.7", ngImport: i0, type: NormalizeGameResultTypePipe, isStandalone: true, name: "etNormalizeGameResultType" }); }
8364
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: NormalizeGameResultTypePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
8365
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.1.6", ngImport: i0, type: NormalizeGameResultTypePipe, isStandalone: true, name: "etNormalizeGameResultType" }); }
8247
8366
  }
8248
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: NormalizeGameResultTypePipe, decorators: [{
8367
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: NormalizeGameResultTypePipe, decorators: [{
8249
8368
  type: Pipe,
8250
8369
  args: [{ name: 'etNormalizeGameResultType' }]
8251
8370
  }] });
@@ -8286,10 +8405,10 @@ class NormalizeMatchStatePipe {
8286
8405
  constructor() {
8287
8406
  this.transform = normalizeMatchState;
8288
8407
  }
8289
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: NormalizeMatchStatePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
8290
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.0.7", ngImport: i0, type: NormalizeMatchStatePipe, isStandalone: true, name: "etNormalizeMatchState" }); }
8408
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: NormalizeMatchStatePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
8409
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.1.6", ngImport: i0, type: NormalizeMatchStatePipe, isStandalone: true, name: "etNormalizeMatchState" }); }
8291
8410
  }
8292
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: NormalizeMatchStatePipe, decorators: [{
8411
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: NormalizeMatchStatePipe, decorators: [{
8293
8412
  type: Pipe,
8294
8413
  args: [{ name: 'etNormalizeMatchState' }]
8295
8414
  }] });
@@ -8319,10 +8438,10 @@ class NormalizeMatchScorePipe {
8319
8438
  constructor() {
8320
8439
  this.transform = normalizeMatchScore;
8321
8440
  }
8322
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: NormalizeMatchScorePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
8323
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.0.7", ngImport: i0, type: NormalizeMatchScorePipe, isStandalone: true, name: "etNormalizeMatchScore" }); }
8441
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: NormalizeMatchScorePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
8442
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.1.6", ngImport: i0, type: NormalizeMatchScorePipe, isStandalone: true, name: "etNormalizeMatchScore" }); }
8324
8443
  }
8325
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: NormalizeMatchScorePipe, decorators: [{
8444
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: NormalizeMatchScorePipe, decorators: [{
8326
8445
  type: Pipe,
8327
8446
  args: [{ name: 'etNormalizeMatchScore' }]
8328
8447
  }] });
@@ -8461,10 +8580,10 @@ class NormalizeMatchParticipantsPipe {
8461
8580
  constructor() {
8462
8581
  this.transform = normalizeMatchParticipants;
8463
8582
  }
8464
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: NormalizeMatchParticipantsPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
8465
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.0.7", ngImport: i0, type: NormalizeMatchParticipantsPipe, isStandalone: true, name: "etNormalizeMatchParticipants" }); }
8583
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: NormalizeMatchParticipantsPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
8584
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.1.6", ngImport: i0, type: NormalizeMatchParticipantsPipe, isStandalone: true, name: "etNormalizeMatchParticipants" }); }
8466
8585
  }
8467
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: NormalizeMatchParticipantsPipe, decorators: [{
8586
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: NormalizeMatchParticipantsPipe, decorators: [{
8468
8587
  type: Pipe,
8469
8588
  args: [{ name: 'etNormalizeMatchParticipants' }]
8470
8589
  }] });
@@ -8518,10 +8637,10 @@ class NormalizeMatchTypePipe {
8518
8637
  constructor() {
8519
8638
  this.transform = normalizeMatchType;
8520
8639
  }
8521
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: NormalizeMatchTypePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
8522
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.0.7", ngImport: i0, type: NormalizeMatchTypePipe, isStandalone: true, name: "etNormalizeMatchType" }); }
8640
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: NormalizeMatchTypePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
8641
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.1.6", ngImport: i0, type: NormalizeMatchTypePipe, isStandalone: true, name: "etNormalizeMatchType" }); }
8523
8642
  }
8524
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: NormalizeMatchTypePipe, decorators: [{
8643
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: NormalizeMatchTypePipe, decorators: [{
8525
8644
  type: Pipe,
8526
8645
  args: [{ name: 'etNormalizeMatchType' }]
8527
8646
  }] });
@@ -8569,10 +8688,10 @@ class HtmlToMarkdownPipe {
8569
8688
  constructor() {
8570
8689
  this.transform = htmlToMarkdown;
8571
8690
  }
8572
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HtmlToMarkdownPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
8573
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.0.7", ngImport: i0, type: HtmlToMarkdownPipe, isStandalone: true, name: "htmlToMarkdown" }); }
8691
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: HtmlToMarkdownPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
8692
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.1.6", ngImport: i0, type: HtmlToMarkdownPipe, isStandalone: true, name: "htmlToMarkdown" }); }
8574
8693
  }
8575
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: HtmlToMarkdownPipe, decorators: [{
8694
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: HtmlToMarkdownPipe, decorators: [{
8576
8695
  type: Pipe,
8577
8696
  args: [{ name: 'htmlToMarkdown' }]
8578
8697
  }] });
@@ -8581,10 +8700,10 @@ class InferMimeTypePipe {
8581
8700
  constructor() {
8582
8701
  this.transform = inferMimeType;
8583
8702
  }
8584
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: InferMimeTypePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
8585
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.0.7", ngImport: i0, type: InferMimeTypePipe, isStandalone: true, name: "inferMimeType" }); }
8703
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: InferMimeTypePipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
8704
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.1.6", ngImport: i0, type: InferMimeTypePipe, isStandalone: true, name: "inferMimeType" }); }
8586
8705
  }
8587
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: InferMimeTypePipe, decorators: [{
8706
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: InferMimeTypePipe, decorators: [{
8588
8707
  type: Pipe,
8589
8708
  args: [{
8590
8709
  name: 'inferMimeType',
@@ -8789,10 +8908,10 @@ class InitialsPipe {
8789
8908
  constructor() {
8790
8909
  this.transform = initials;
8791
8910
  }
8792
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: InitialsPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
8793
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.0.7", ngImport: i0, type: InitialsPipe, isStandalone: true, name: "initials" }); }
8911
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: InitialsPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
8912
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.1.6", ngImport: i0, type: InitialsPipe, isStandalone: true, name: "initials" }); }
8794
8913
  }
8795
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: InitialsPipe, decorators: [{
8914
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: InitialsPipe, decorators: [{
8796
8915
  type: Pipe,
8797
8916
  args: [{ name: 'initials' }]
8798
8917
  }] });
@@ -8826,10 +8945,10 @@ class MarkdownToHtmlPipe {
8826
8945
  constructor() {
8827
8946
  this.transform = markdownToHtml;
8828
8947
  }
8829
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MarkdownToHtmlPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
8830
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.0.7", ngImport: i0, type: MarkdownToHtmlPipe, isStandalone: true, name: "markdownToHtml" }); }
8948
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: MarkdownToHtmlPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
8949
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.1.6", ngImport: i0, type: MarkdownToHtmlPipe, isStandalone: true, name: "markdownToHtml" }); }
8831
8950
  }
8832
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: MarkdownToHtmlPipe, decorators: [{
8951
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: MarkdownToHtmlPipe, decorators: [{
8833
8952
  type: Pipe,
8834
8953
  args: [{ name: 'markdownToHtml' }]
8835
8954
  }] });
@@ -8838,10 +8957,10 @@ class SlugifyPipe {
8838
8957
  constructor() {
8839
8958
  this.transform = slugify;
8840
8959
  }
8841
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SlugifyPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
8842
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.0.7", ngImport: i0, type: SlugifyPipe, isStandalone: true, name: "slugify" }); }
8960
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: SlugifyPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
8961
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.1.6", ngImport: i0, type: SlugifyPipe, isStandalone: true, name: "slugify" }); }
8843
8962
  }
8844
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SlugifyPipe, decorators: [{
8963
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: SlugifyPipe, decorators: [{
8845
8964
  type: Pipe,
8846
8965
  args: [{ name: 'slugify' }]
8847
8966
  }] });
@@ -8875,10 +8994,10 @@ class ToArrayPipe {
8875
8994
  constructor() {
8876
8995
  this.transform = toArray;
8877
8996
  }
8878
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ToArrayPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
8879
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.0.7", ngImport: i0, type: ToArrayPipe, isStandalone: true, name: "toArray" }); }
8997
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: ToArrayPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
8998
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "22.1.6", ngImport: i0, type: ToArrayPipe, isStandalone: true, name: "toArray" }); }
8880
8999
  }
8881
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ToArrayPipe, decorators: [{
9000
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: ToArrayPipe, decorators: [{
8882
9001
  type: Pipe,
8883
9002
  args: [{ name: 'toArray' }]
8884
9003
  }] });
@@ -8955,6 +9074,7 @@ const createElementDictionary = () => {
8955
9074
  };
8956
9075
  };
8957
9076
 
9077
+ const teardownsByProps = /* @__PURE__ */ new WeakMap();
8958
9078
  const bindProps = (config) => {
8959
9079
  const props = config.props;
8960
9080
  const { attachEventListeners, classBindings, attributeBindings, styleBindings, staticAttributeBindings, staticClassBindings, staticStyleBindings, attached, single, name, bindId, attachedElements, } = props;
@@ -8973,41 +9093,64 @@ const bindProps = (config) => {
8973
9093
  }
8974
9094
  }
8975
9095
  attachedElements.push(id, el);
9096
+ const teardowns = [];
8976
9097
  if (bindId) {
8977
9098
  el.id = id;
8978
9099
  }
8979
9100
  if (classBindings) {
9101
+ const tokens = Object.keys(classBindings);
8980
9102
  classes.pushMany(classBindings);
9103
+ teardowns.push(() => classes.removeMany(tokens));
8981
9104
  }
8982
9105
  if (attributeBindings) {
9106
+ const tokens = Object.keys(attributeBindings);
8983
9107
  attributes.pushMany(attributeBindings);
9108
+ teardowns.push(() => attributes.removeMany(tokens));
8984
9109
  }
8985
9110
  if (styleBindings) {
9111
+ const tokens = Object.keys(styleBindings);
8986
9112
  styles.pushMany(styleBindings);
9113
+ teardowns.push(() => styles.removeMany(tokens));
8987
9114
  }
8988
9115
  if (staticAttributeBindings) {
8989
- for (const key in staticAttributeBindings) {
9116
+ const keys = Object.keys(staticAttributeBindings);
9117
+ for (const key of keys) {
8990
9118
  el.setAttribute(key, `${staticAttributeBindings[key]}`);
8991
9119
  }
9120
+ teardowns.push(() => keys.forEach((key) => el.removeAttribute(key)));
8992
9121
  }
8993
9122
  if (staticClassBindings) {
8994
9123
  el.classList.add(...staticClassBindings);
9124
+ teardowns.push(() => el.classList.remove(...staticClassBindings));
8995
9125
  }
8996
9126
  if (staticStyleBindings) {
8997
- for (const key in staticStyleBindings) {
9127
+ const keys = Object.keys(staticStyleBindings);
9128
+ for (const key of keys) {
8998
9129
  el.style.setProperty(key, `${staticStyleBindings[key]}`);
8999
9130
  }
9131
+ teardowns.push(() => keys.forEach((key) => el.style.removeProperty(key)));
9000
9132
  }
9001
9133
  if (attachEventListeners) {
9002
- attachEventListeners({
9003
- on: el.addEventListener.bind(el),
9004
- element: el,
9134
+ const on = ((type, listener, options) => {
9135
+ el.addEventListener(type, listener, options);
9136
+ teardowns.push(() => el.removeEventListener(type, listener, options));
9005
9137
  });
9138
+ attachEventListeners({ on, element: el });
9139
+ }
9140
+ let teardownsById = teardownsByProps.get(config.props);
9141
+ if (!teardownsById) {
9142
+ teardownsById = new Map();
9143
+ teardownsByProps.set(config.props, teardownsById);
9006
9144
  }
9145
+ teardownsById.set(id, () => teardowns.forEach((teardown) => teardown()));
9007
9146
  };
9008
9147
  const unbindProps = (config) => {
9009
9148
  const props = config.props;
9010
- props.attachedElements.remove(config.handlers.id);
9149
+ const { id } = config.handlers;
9150
+ const teardownsById = teardownsByProps.get(config.props);
9151
+ teardownsById?.get(id)?.();
9152
+ teardownsById?.delete(id);
9153
+ props.attachedElements.remove(id);
9011
9154
  };
9012
9155
 
9013
9156
  const createProps = (props) => {
@@ -9123,10 +9266,10 @@ class PropsDirective {
9123
9266
  unbindProps({ handlers: this.propHandlers, props: boundProps });
9124
9267
  });
9125
9268
  }
9126
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: PropsDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
9127
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.7", type: PropsDirective, isStandalone: true, selector: "[etProps]", inputs: { props: { classPropertyName: "props", publicName: "etProps", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0 }); }
9269
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: PropsDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
9270
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.6", type: PropsDirective, isStandalone: true, selector: "[etProps]", inputs: { props: { classPropertyName: "props", publicName: "etProps", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0 }); }
9128
9271
  }
9129
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: PropsDirective, decorators: [{
9272
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: PropsDirective, decorators: [{
9130
9273
  type: Directive,
9131
9274
  args: [{
9132
9275
  selector: '[etProps]',
@@ -9232,8 +9375,8 @@ class ResizeHandlesComponent {
9232
9375
  event.stopPropagation();
9233
9376
  this.gestureStart$.next({ event, edge });
9234
9377
  }
9235
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ResizeHandlesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9236
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.7", type: ResizeHandlesComponent, isStandalone: true, selector: "et-resize-handles", inputs: { edges: { classPropertyName: "edges", publicName: "edges", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { resizeStarted: "resizeStarted", resizeMoved: "resizeMoved", resizeEnded: "resizeEnded", resizeCancelled: "resizeCancelled" }, host: { properties: { "attr.inert": "disabled() ? \"\" : null", "attr.data-active-edge": "activeEdge()" }, classAttribute: "et-resize-handles" }, ngImport: i0, template: `
9378
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: ResizeHandlesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9379
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.1.6", type: ResizeHandlesComponent, isStandalone: true, selector: "et-resize-handles", inputs: { edges: { classPropertyName: "edges", publicName: "edges", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "disabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { resizeStarted: "resizeStarted", resizeMoved: "resizeMoved", resizeEnded: "resizeEnded", resizeCancelled: "resizeCancelled" }, host: { properties: { "attr.inert": "disabled() ? \"\" : null", "attr.data-active-edge": "activeEdge()" }, classAttribute: "et-resize-handles" }, ngImport: i0, template: `
9237
9380
  @for (edge of edges(); track edge) {
9238
9381
  <div
9239
9382
  [style.cursor]="edgeCursors[edge]"
@@ -9243,7 +9386,7 @@ class ResizeHandlesComponent {
9243
9386
  }
9244
9387
  `, isInline: true, styles: ["@layer components{@property --et-resize-handles-z-index{syntax: \"<integer>\"; inherits: true; initial-value: 10;}@property --et-resize-handles-edge-size{syntax: \"<length>\"; inherits: true; initial-value: 6px;}@property --et-resize-handles-corner-size{syntax: \"<length>\"; inherits: true; initial-value: 12px;}@property --et-resize-handles-edge-inset{syntax: \"<length>\"; inherits: true; initial-value: 8px;}@property --et-resize-handles-outset{syntax: \"<length>\"; inherits: true; initial-value: 0px;}@property --et-resize-handles-side-top{syntax: \"<length>\"; inherits: true; initial-value: 0px;}@property --et-resize-handles-side-bottom{syntax: \"<length>\"; inherits: true; initial-value: 8px;}@property --et-resize-handles-touch-edge-size{syntax: \"<length>\"; inherits: true; initial-value: 20px;}@property --et-resize-handles-touch-corner-size{syntax: \"<length>\"; inherits: true; initial-value: 28px;}.et-resize-handles{position:absolute;inset:calc(-1 * var(--et-resize-handles-outset));pointer-events:none}.et-resize-handle{--et-resize-handle-thickness: calc(var(--et-resize-handles-edge-size) + var(--et-resize-handles-outset));--et-resize-handle-corner: calc(var(--et-resize-handles-corner-size) + var(--et-resize-handles-outset));position:absolute;z-index:var(--et-resize-handles-z-index);touch-action:none;pointer-events:auto}.et-resize-handle--n{top:0;right:var(--et-resize-handles-edge-inset);left:var(--et-resize-handles-edge-inset);height:var(--et-resize-handle-thickness)}.et-resize-handle--s{right:var(--et-resize-handles-edge-inset);bottom:0;left:var(--et-resize-handles-edge-inset);height:var(--et-resize-handle-thickness)}.et-resize-handle--e,.et-resize-handle--w{top:var(--et-resize-handles-side-top);bottom:var(--et-resize-handles-side-bottom);width:var(--et-resize-handle-thickness)}.et-resize-handle--e{right:0}.et-resize-handle--w{left:0}.et-resize-handle--ne,.et-resize-handle--nw{top:0;width:var(--et-resize-handle-corner);height:var(--et-resize-handle-corner)}.et-resize-handle--ne{right:0}.et-resize-handle--nw{left:0}.et-resize-handle--se,.et-resize-handle--sw{bottom:0;width:var(--et-resize-handle-corner);height:var(--et-resize-handle-corner)}.et-resize-handle--se{right:0}.et-resize-handle--sw{left:0}@media(any-pointer:coarse){.et-resize-handle{--et-resize-handle-thickness: calc(var(--et-resize-handles-touch-edge-size) + var(--et-resize-handles-outset));--et-resize-handle-corner: calc(var(--et-resize-handles-touch-corner-size) + var(--et-resize-handles-outset))}}}\n"], encapsulation: i0.ViewEncapsulation.None }); }
9245
9388
  }
9246
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ResizeHandlesComponent, decorators: [{
9389
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: ResizeHandlesComponent, decorators: [{
9247
9390
  type: Component,
9248
9391
  args: [{ selector: 'et-resize-handles', template: `
9249
9392
  @for (edge of edges(); track edge) {
@@ -9261,10 +9404,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImpor
9261
9404
  }], propDecorators: { edges: [{ type: i0.Input, args: [{ isSignal: true, alias: "edges", required: false }] }], disabled: [{ type: i0.Input, args: [{ isSignal: true, alias: "disabled", required: false }] }], resizeStarted: [{ type: i0.Output, args: ["resizeStarted"] }], resizeMoved: [{ type: i0.Output, args: ["resizeMoved"] }], resizeEnded: [{ type: i0.Output, args: ["resizeEnded"] }], resizeCancelled: [{ type: i0.Output, args: ["resizeCancelled"] }] } });
9262
9405
 
9263
9406
  class ColorInteractiveStylesComponent {
9264
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ColorInteractiveStylesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9265
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.7", type: ColorInteractiveStylesComponent, isStandalone: true, selector: "et-color-interactive-styles", ngImport: i0, template: '', isInline: true, styles: ["@layer components{:where(.et-color-interactive){--et-theme-color-primary-rgb: var(--et-color-primary);--et-theme-color-primary-solid: rgb(var(--et-theme-color-primary-rgb));--et-theme-color-on-primary-rgb: var(--et-color-on-primary);--et-theme-color-on-primary-solid: rgb(var(--et-theme-color-on-primary-rgb));--et-theme-color-ink-rgb: var(--et-color-primary-ink, var(--et-color-primary));--et-theme-color-ink-solid: rgb(var(--et-theme-color-ink-rgb))}@media(hover:hover){:where(.et-color-interactive:hover:not(:has(.et-color-interactive-exclude:hover))),:where(.et-color-interactive-container:hover) :where(.et-color-interactive){--et-theme-color-primary-rgb: var(--et-color-primary-hover, var(--et-color-primary));--et-theme-color-primary-solid: rgb(var(--et-theme-color-primary-rgb));--et-theme-color-on-primary-rgb: var(--et-color-on-primary-hover, var(--et-color-on-primary));--et-theme-color-on-primary-solid: rgb(var(--et-theme-color-on-primary-rgb));--et-theme-color-ink-rgb: var( --et-color-primary-ink-hover, var(--et-color-primary-ink, var(--et-color-primary-hover, var(--et-color-primary))) );--et-theme-color-ink-solid: rgb(var(--et-theme-color-ink-rgb))}}:where(.et-color-interactive:focus-visible){--et-theme-color-primary-rgb: var(--et-color-primary-focus, var(--et-color-primary-hover, var(--et-color-primary)));--et-theme-color-primary-solid: rgb(var(--et-theme-color-primary-rgb));--et-theme-color-on-primary-rgb: var( --et-color-on-primary-focus, var(--et-color-on-primary-hover, var(--et-color-on-primary)) );--et-theme-color-on-primary-solid: rgb(var(--et-theme-color-on-primary-rgb));--et-theme-color-ink-rgb: var( --et-color-primary-ink-focus, var( --et-color-primary-ink-hover, var( --et-color-primary-ink, var(--et-color-primary-focus, var(--et-color-primary-hover, var(--et-color-primary))) ) ) );--et-theme-color-ink-solid: rgb(var(--et-theme-color-ink-rgb))}:where(.et-color-interactive:active:not(:has(.et-color-interactive-exclude:hover))),:where(.et-color-interactive-container:active) :where(.et-color-interactive){--et-theme-color-primary-rgb: var( --et-color-primary-active, var(--et-color-primary-focus, var(--et-color-primary-hover, var(--et-color-primary))) );--et-theme-color-primary-solid: rgb(var(--et-theme-color-primary-rgb));--et-theme-color-on-primary-rgb: var( --et-color-on-primary-active, var(--et-color-on-primary-focus, var(--et-color-on-primary-hover, var(--et-color-on-primary))) );--et-theme-color-on-primary-solid: rgb(var(--et-theme-color-on-primary-rgb));--et-theme-color-ink-rgb: var( --et-color-primary-ink-active, var( --et-color-primary-ink-focus, var( --et-color-primary-ink-hover, var( --et-color-primary-ink, var( --et-color-primary-active, var(--et-color-primary-focus, var(--et-color-primary-hover, var(--et-color-primary))) ) ) ) ) );--et-theme-color-ink-solid: rgb(var(--et-theme-color-ink-rgb))}:where(.et-color-interactive--has-focus:has(:focus-visible)){--et-theme-color-primary-rgb: var(--et-color-primary);--et-theme-color-primary-solid: rgb(var(--et-theme-color-primary-rgb));--et-theme-color-on-primary-rgb: var(--et-color-on-primary);--et-theme-color-on-primary-solid: rgb(var(--et-theme-color-on-primary-rgb));--et-theme-color-ink-rgb: var(--et-color-primary-ink, var(--et-color-primary));--et-theme-color-ink-solid: rgb(var(--et-theme-color-ink-rgb))}:where(.et-color-interactive[aria-readonly=true]){--et-theme-color-primary-rgb: var(--et-color-primary);--et-theme-color-primary-solid: rgb(var(--et-theme-color-primary-rgb));--et-theme-color-on-primary-rgb: var(--et-color-on-primary);--et-theme-color-on-primary-solid: rgb(var(--et-theme-color-on-primary-rgb));--et-theme-color-ink-rgb: var(--et-color-primary-ink, var(--et-color-primary));--et-theme-color-ink-solid: rgb(var(--et-theme-color-ink-rgb))}:where(.et-color-interactive[disabled]),:where(.et-color-interactive[aria-disabled=true]){--et-theme-color-primary-rgb: var( --et-color-primary-disabled, var( --et-color-primary-active, var(--et-color-primary-focus, var(--et-color-primary-hover, var(--et-color-primary))) ) );--et-theme-color-primary-solid: rgb(var(--et-theme-color-primary-rgb));--et-theme-color-on-primary-rgb: var( --et-color-on-primary-disabled, var( --et-color-on-primary-active, var(--et-color-on-primary-focus, var(--et-color-on-primary-hover, var(--et-color-on-primary))) ) );--et-theme-color-on-primary-solid: rgb(var(--et-theme-color-on-primary-rgb));--et-theme-color-ink-rgb: var( --et-color-primary-ink-disabled, var( --et-color-primary-ink-active, var( --et-color-primary-ink-focus, var( --et-color-primary-ink-hover, var( --et-color-primary-ink, var( --et-color-primary-disabled, var( --et-color-primary-active, var(--et-color-primary-focus, var(--et-color-primary-hover, var(--et-color-primary))) ) ) ) ) ) ) );--et-theme-color-ink-solid: rgb(var(--et-theme-color-ink-rgb))}}\n"], encapsulation: i0.ViewEncapsulation.None }); }
9407
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: ColorInteractiveStylesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
9408
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.6", type: ColorInteractiveStylesComponent, isStandalone: true, selector: "et-color-interactive-styles", ngImport: i0, template: '', isInline: true, styles: ["@layer components{:where(.et-color-interactive){--et-theme-color-primary-rgb: var(--et-color-primary);--et-theme-color-primary-solid: rgb(var(--et-theme-color-primary-rgb));--et-theme-color-on-primary-rgb: var(--et-color-on-primary);--et-theme-color-on-primary-solid: rgb(var(--et-theme-color-on-primary-rgb));--et-theme-color-ink-rgb: var(--et-color-primary-ink, var(--et-color-primary));--et-theme-color-ink-solid: rgb(var(--et-theme-color-ink-rgb))}@media(hover:hover){:where(.et-color-interactive:hover:not(:has(.et-color-interactive-exclude:hover))),:where(.et-color-interactive-container:hover) :where(.et-color-interactive){--et-theme-color-primary-rgb: var(--et-color-primary-hover, var(--et-color-primary));--et-theme-color-primary-solid: rgb(var(--et-theme-color-primary-rgb));--et-theme-color-on-primary-rgb: var(--et-color-on-primary-hover, var(--et-color-on-primary));--et-theme-color-on-primary-solid: rgb(var(--et-theme-color-on-primary-rgb));--et-theme-color-ink-rgb: var( --et-color-primary-ink-hover, var(--et-color-primary-ink, var(--et-color-primary-hover, var(--et-color-primary))) );--et-theme-color-ink-solid: rgb(var(--et-theme-color-ink-rgb))}}:where(.et-color-interactive:focus-visible){--et-theme-color-primary-rgb: var(--et-color-primary-focus, var(--et-color-primary-hover, var(--et-color-primary)));--et-theme-color-primary-solid: rgb(var(--et-theme-color-primary-rgb));--et-theme-color-on-primary-rgb: var( --et-color-on-primary-focus, var(--et-color-on-primary-hover, var(--et-color-on-primary)) );--et-theme-color-on-primary-solid: rgb(var(--et-theme-color-on-primary-rgb));--et-theme-color-ink-rgb: var( --et-color-primary-ink-focus, var( --et-color-primary-ink-hover, var( --et-color-primary-ink, var(--et-color-primary-focus, var(--et-color-primary-hover, var(--et-color-primary))) ) ) );--et-theme-color-ink-solid: rgb(var(--et-theme-color-ink-rgb))}:where(.et-color-interactive:active:not(:has(.et-color-interactive-exclude:hover))),:where(.et-color-interactive-container:active) :where(.et-color-interactive){--et-theme-color-primary-rgb: var( --et-color-primary-active, var(--et-color-primary-focus, var(--et-color-primary-hover, var(--et-color-primary))) );--et-theme-color-primary-solid: rgb(var(--et-theme-color-primary-rgb));--et-theme-color-on-primary-rgb: var( --et-color-on-primary-active, var(--et-color-on-primary-focus, var(--et-color-on-primary-hover, var(--et-color-on-primary))) );--et-theme-color-on-primary-solid: rgb(var(--et-theme-color-on-primary-rgb));--et-theme-color-ink-rgb: var( --et-color-primary-ink-active, var( --et-color-primary-ink-focus, var( --et-color-primary-ink-hover, var( --et-color-primary-ink, var( --et-color-primary-active, var(--et-color-primary-focus, var(--et-color-primary-hover, var(--et-color-primary))) ) ) ) ) );--et-theme-color-ink-solid: rgb(var(--et-theme-color-ink-rgb))}:where(.et-color-interactive--has-focus:has(:focus-visible)){--et-theme-color-primary-rgb: var(--et-color-primary);--et-theme-color-primary-solid: rgb(var(--et-theme-color-primary-rgb));--et-theme-color-on-primary-rgb: var(--et-color-on-primary);--et-theme-color-on-primary-solid: rgb(var(--et-theme-color-on-primary-rgb));--et-theme-color-ink-rgb: var(--et-color-primary-ink, var(--et-color-primary));--et-theme-color-ink-solid: rgb(var(--et-theme-color-ink-rgb))}:where(.et-color-interactive[aria-readonly=true]){--et-theme-color-primary-rgb: var(--et-color-primary);--et-theme-color-primary-solid: rgb(var(--et-theme-color-primary-rgb));--et-theme-color-on-primary-rgb: var(--et-color-on-primary);--et-theme-color-on-primary-solid: rgb(var(--et-theme-color-on-primary-rgb));--et-theme-color-ink-rgb: var(--et-color-primary-ink, var(--et-color-primary));--et-theme-color-ink-solid: rgb(var(--et-theme-color-ink-rgb))}:where(.et-color-interactive[disabled]),:where(.et-color-interactive[aria-disabled=true]){--et-theme-color-primary-rgb: var( --et-color-primary-disabled, var( --et-color-primary-active, var(--et-color-primary-focus, var(--et-color-primary-hover, var(--et-color-primary))) ) );--et-theme-color-primary-solid: rgb(var(--et-theme-color-primary-rgb));--et-theme-color-on-primary-rgb: var( --et-color-on-primary-disabled, var( --et-color-on-primary-active, var(--et-color-on-primary-focus, var(--et-color-on-primary-hover, var(--et-color-on-primary))) ) );--et-theme-color-on-primary-solid: rgb(var(--et-theme-color-on-primary-rgb));--et-theme-color-ink-rgb: var( --et-color-primary-ink-disabled, var( --et-color-primary-ink-active, var( --et-color-primary-ink-focus, var( --et-color-primary-ink-hover, var( --et-color-primary-ink, var( --et-color-primary-disabled, var( --et-color-primary-active, var(--et-color-primary-focus, var(--et-color-primary-hover, var(--et-color-primary))) ) ) ) ) ) ) );--et-theme-color-ink-solid: rgb(var(--et-theme-color-ink-rgb))}}\n"], encapsulation: i0.ViewEncapsulation.None }); }
9266
9409
  }
9267
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ColorInteractiveStylesComponent, decorators: [{
9410
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: ColorInteractiveStylesComponent, decorators: [{
9268
9411
  type: Component,
9269
9412
  args: [{ selector: 'et-color-interactive-styles', template: '', encapsulation: ViewEncapsulation.None, styles: ["@layer components{:where(.et-color-interactive){--et-theme-color-primary-rgb: var(--et-color-primary);--et-theme-color-primary-solid: rgb(var(--et-theme-color-primary-rgb));--et-theme-color-on-primary-rgb: var(--et-color-on-primary);--et-theme-color-on-primary-solid: rgb(var(--et-theme-color-on-primary-rgb));--et-theme-color-ink-rgb: var(--et-color-primary-ink, var(--et-color-primary));--et-theme-color-ink-solid: rgb(var(--et-theme-color-ink-rgb))}@media(hover:hover){:where(.et-color-interactive:hover:not(:has(.et-color-interactive-exclude:hover))),:where(.et-color-interactive-container:hover) :where(.et-color-interactive){--et-theme-color-primary-rgb: var(--et-color-primary-hover, var(--et-color-primary));--et-theme-color-primary-solid: rgb(var(--et-theme-color-primary-rgb));--et-theme-color-on-primary-rgb: var(--et-color-on-primary-hover, var(--et-color-on-primary));--et-theme-color-on-primary-solid: rgb(var(--et-theme-color-on-primary-rgb));--et-theme-color-ink-rgb: var( --et-color-primary-ink-hover, var(--et-color-primary-ink, var(--et-color-primary-hover, var(--et-color-primary))) );--et-theme-color-ink-solid: rgb(var(--et-theme-color-ink-rgb))}}:where(.et-color-interactive:focus-visible){--et-theme-color-primary-rgb: var(--et-color-primary-focus, var(--et-color-primary-hover, var(--et-color-primary)));--et-theme-color-primary-solid: rgb(var(--et-theme-color-primary-rgb));--et-theme-color-on-primary-rgb: var( --et-color-on-primary-focus, var(--et-color-on-primary-hover, var(--et-color-on-primary)) );--et-theme-color-on-primary-solid: rgb(var(--et-theme-color-on-primary-rgb));--et-theme-color-ink-rgb: var( --et-color-primary-ink-focus, var( --et-color-primary-ink-hover, var( --et-color-primary-ink, var(--et-color-primary-focus, var(--et-color-primary-hover, var(--et-color-primary))) ) ) );--et-theme-color-ink-solid: rgb(var(--et-theme-color-ink-rgb))}:where(.et-color-interactive:active:not(:has(.et-color-interactive-exclude:hover))),:where(.et-color-interactive-container:active) :where(.et-color-interactive){--et-theme-color-primary-rgb: var( --et-color-primary-active, var(--et-color-primary-focus, var(--et-color-primary-hover, var(--et-color-primary))) );--et-theme-color-primary-solid: rgb(var(--et-theme-color-primary-rgb));--et-theme-color-on-primary-rgb: var( --et-color-on-primary-active, var(--et-color-on-primary-focus, var(--et-color-on-primary-hover, var(--et-color-on-primary))) );--et-theme-color-on-primary-solid: rgb(var(--et-theme-color-on-primary-rgb));--et-theme-color-ink-rgb: var( --et-color-primary-ink-active, var( --et-color-primary-ink-focus, var( --et-color-primary-ink-hover, var( --et-color-primary-ink, var( --et-color-primary-active, var(--et-color-primary-focus, var(--et-color-primary-hover, var(--et-color-primary))) ) ) ) ) );--et-theme-color-ink-solid: rgb(var(--et-theme-color-ink-rgb))}:where(.et-color-interactive--has-focus:has(:focus-visible)){--et-theme-color-primary-rgb: var(--et-color-primary);--et-theme-color-primary-solid: rgb(var(--et-theme-color-primary-rgb));--et-theme-color-on-primary-rgb: var(--et-color-on-primary);--et-theme-color-on-primary-solid: rgb(var(--et-theme-color-on-primary-rgb));--et-theme-color-ink-rgb: var(--et-color-primary-ink, var(--et-color-primary));--et-theme-color-ink-solid: rgb(var(--et-theme-color-ink-rgb))}:where(.et-color-interactive[aria-readonly=true]){--et-theme-color-primary-rgb: var(--et-color-primary);--et-theme-color-primary-solid: rgb(var(--et-theme-color-primary-rgb));--et-theme-color-on-primary-rgb: var(--et-color-on-primary);--et-theme-color-on-primary-solid: rgb(var(--et-theme-color-on-primary-rgb));--et-theme-color-ink-rgb: var(--et-color-primary-ink, var(--et-color-primary));--et-theme-color-ink-solid: rgb(var(--et-theme-color-ink-rgb))}:where(.et-color-interactive[disabled]),:where(.et-color-interactive[aria-disabled=true]){--et-theme-color-primary-rgb: var( --et-color-primary-disabled, var( --et-color-primary-active, var(--et-color-primary-focus, var(--et-color-primary-hover, var(--et-color-primary))) ) );--et-theme-color-primary-solid: rgb(var(--et-theme-color-primary-rgb));--et-theme-color-on-primary-rgb: var( --et-color-on-primary-disabled, var( --et-color-on-primary-active, var(--et-color-on-primary-focus, var(--et-color-on-primary-hover, var(--et-color-on-primary))) ) );--et-theme-color-on-primary-solid: rgb(var(--et-theme-color-on-primary-rgb));--et-theme-color-ink-rgb: var( --et-color-primary-ink-disabled, var( --et-color-primary-ink-active, var( --et-color-primary-ink-focus, var( --et-color-primary-ink-hover, var( --et-color-primary-ink, var( --et-color-primary-disabled, var( --et-color-primary-active, var(--et-color-primary-focus, var(--et-color-primary-hover, var(--et-color-primary))) ) ) ) ) ) ) );--et-theme-color-ink-solid: rgb(var(--et-theme-color-ink-rgb))}}\n"] }]
9270
9413
  }] });
@@ -9285,10 +9428,10 @@ class ColorInteractiveContainerDirective {
9285
9428
  this.styleManager = injectStyleManager();
9286
9429
  this.styleManager.mount(ColorInteractiveStylesComponent);
9287
9430
  }
9288
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ColorInteractiveContainerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
9289
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.7", type: ColorInteractiveContainerDirective, isStandalone: true, selector: "[etColorInteractiveContainer]", host: { classAttribute: "et-color-interactive-container" }, ngImport: i0 }); }
9431
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: ColorInteractiveContainerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
9432
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.6", type: ColorInteractiveContainerDirective, isStandalone: true, selector: "[etColorInteractiveContainer]", host: { classAttribute: "et-color-interactive-container" }, ngImport: i0 }); }
9290
9433
  }
9291
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ColorInteractiveContainerDirective, decorators: [{
9434
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: ColorInteractiveContainerDirective, decorators: [{
9292
9435
  type: Directive,
9293
9436
  args: [{
9294
9437
  selector: '[etColorInteractiveContainer]',
@@ -9311,10 +9454,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImpor
9311
9454
  * used to have (see its own comment).
9312
9455
  */
9313
9456
  class ColorInteractiveExcludeDirective {
9314
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ColorInteractiveExcludeDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
9315
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.7", type: ColorInteractiveExcludeDirective, isStandalone: true, selector: "[etColorInteractiveExclude]", host: { classAttribute: "et-color-interactive-exclude" }, ngImport: i0 }); }
9457
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: ColorInteractiveExcludeDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
9458
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.6", type: ColorInteractiveExcludeDirective, isStandalone: true, selector: "[etColorInteractiveExclude]", host: { classAttribute: "et-color-interactive-exclude" }, ngImport: i0 }); }
9316
9459
  }
9317
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ColorInteractiveExcludeDirective, decorators: [{
9460
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: ColorInteractiveExcludeDirective, decorators: [{
9318
9461
  type: Directive,
9319
9462
  args: [{
9320
9463
  selector: '[etColorInteractiveExclude]',
@@ -9348,10 +9491,10 @@ class ColorInteractiveHasFocusDirective {
9348
9491
  this.styleManager = injectStyleManager();
9349
9492
  this.styleManager.mount(ColorInteractiveStylesComponent);
9350
9493
  }
9351
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ColorInteractiveHasFocusDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
9352
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.7", type: ColorInteractiveHasFocusDirective, isStandalone: true, selector: "[etColorInteractiveHasFocus]", host: { classAttribute: "et-color-interactive--has-focus" }, ngImport: i0 }); }
9494
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: ColorInteractiveHasFocusDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
9495
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.6", type: ColorInteractiveHasFocusDirective, isStandalone: true, selector: "[etColorInteractiveHasFocus]", host: { classAttribute: "et-color-interactive--has-focus" }, ngImport: i0 }); }
9353
9496
  }
9354
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ColorInteractiveHasFocusDirective, decorators: [{
9497
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: ColorInteractiveHasFocusDirective, decorators: [{
9355
9498
  type: Directive,
9356
9499
  args: [{
9357
9500
  selector: '[etColorInteractiveHasFocus]',
@@ -9379,10 +9522,10 @@ class ColorInteractiveDirective {
9379
9522
  this.styleManager = injectStyleManager();
9380
9523
  this.styleManager.mount(ColorInteractiveStylesComponent);
9381
9524
  }
9382
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ColorInteractiveDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
9383
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.7", type: ColorInteractiveDirective, isStandalone: true, selector: "[etColorInteractive]", host: { classAttribute: "et-color-interactive" }, ngImport: i0 }); }
9525
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: ColorInteractiveDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
9526
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.6", type: ColorInteractiveDirective, isStandalone: true, selector: "[etColorInteractive]", host: { classAttribute: "et-color-interactive" }, ngImport: i0 }); }
9384
9527
  }
9385
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ColorInteractiveDirective, decorators: [{
9528
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: ColorInteractiveDirective, decorators: [{
9386
9529
  type: Directive,
9387
9530
  args: [{
9388
9531
  selector: '[etColorInteractive]',
@@ -9523,10 +9666,10 @@ class ProvideSurfaceDirective {
9523
9666
  }
9524
9667
  this.forcedSurface.set(FORCED_SURFACE_UNSET);
9525
9668
  }
9526
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ProvideSurfaceDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
9527
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.7", type: ProvideSurfaceDirective, isStandalone: true, selector: "[etProvideSurface]", inputs: { surface: { classPropertyName: "surface", publicName: "etProvideSurface", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "surfaceClass()" } }, providers: [{ provide: SURFACE_PROVIDER, useExisting: ProvideSurfaceDirective }], ngImport: i0 }); }
9669
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: ProvideSurfaceDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
9670
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.6", type: ProvideSurfaceDirective, isStandalone: true, selector: "[etProvideSurface]", inputs: { surface: { classPropertyName: "surface", publicName: "etProvideSurface", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "surfaceClass()" } }, providers: [{ provide: SURFACE_PROVIDER, useExisting: ProvideSurfaceDirective }], ngImport: i0 }); }
9528
9671
  }
9529
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ProvideSurfaceDirective, decorators: [{
9672
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: ProvideSurfaceDirective, decorators: [{
9530
9673
  type: Directive,
9531
9674
  args: [{
9532
9675
  selector: '[etProvideSurface]',
@@ -9709,10 +9852,10 @@ class AutoSurfaceDirective {
9709
9852
  });
9710
9853
  });
9711
9854
  }
9712
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: AutoSurfaceDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
9713
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.7", type: AutoSurfaceDirective, isStandalone: true, selector: "[etAutoSurface]", inputs: { surfaceProvider: { classPropertyName: "surfaceProvider", publicName: "surfaceProvider", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: ProvideSurfaceDirective }], ngImport: i0 }); }
9855
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AutoSurfaceDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
9856
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.6", type: AutoSurfaceDirective, isStandalone: true, selector: "[etAutoSurface]", inputs: { surfaceProvider: { classPropertyName: "surfaceProvider", publicName: "surfaceProvider", isSignal: true, isRequired: false, transformFunction: null } }, hostDirectives: [{ directive: ProvideSurfaceDirective }], ngImport: i0 }); }
9714
9857
  }
9715
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: AutoSurfaceDirective, decorators: [{
9858
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: AutoSurfaceDirective, decorators: [{
9716
9859
  type: Directive,
9717
9860
  args: [{
9718
9861
  selector: '[etAutoSurface]',
@@ -10109,10 +10252,10 @@ class ProvideColorDirective {
10109
10252
  }
10110
10253
  this.forcedColor.set(FORCED_COLOR_UNSET);
10111
10254
  }
10112
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ProvideColorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
10113
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.0.7", type: ProvideColorDirective, isStandalone: true, selector: "[etProvideColor]", inputs: { color: { classPropertyName: "color", publicName: "etProvideColor", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "themeClass()" } }, providers: [{ provide: COLOR_PROVIDER, useExisting: ProvideColorDirective }], ngImport: i0 }); }
10255
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: ProvideColorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
10256
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "22.1.6", type: ProvideColorDirective, isStandalone: true, selector: "[etProvideColor]", inputs: { color: { classPropertyName: "color", publicName: "etProvideColor", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class": "themeClass()" } }, providers: [{ provide: COLOR_PROVIDER, useExisting: ProvideColorDirective }], ngImport: i0 }); }
10114
10257
  }
10115
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: ProvideColorDirective, decorators: [{
10258
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: ProvideColorDirective, decorators: [{
10116
10259
  type: Directive,
10117
10260
  args: [{
10118
10261
  selector: '[etProvideColor]',
@@ -10124,10 +10267,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImpor
10124
10267
  }], propDecorators: { color: [{ type: i0.Input, args: [{ isSignal: true, alias: "etProvideColor", required: false }] }] } });
10125
10268
 
10126
10269
  class SurfaceInteractiveStylesComponent {
10127
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SurfaceInteractiveStylesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10128
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.7", type: SurfaceInteractiveStylesComponent, isStandalone: true, selector: "et-surface-interactive-styles", ngImport: i0, template: '', isInline: true, styles: ["@layer components{:where(.et-surface-interactive){--et-surface-interaction-rgb: var(--et-surface-interaction);--et-surface-interaction-solid: rgb(var(--et-surface-interaction-rgb))}@media(hover:hover){:where(.et-surface-interactive:hover){--et-surface-interaction-rgb: var(--et-surface-interaction-hover, var(--et-surface-interaction));--et-surface-interaction-solid: rgb(var(--et-surface-interaction-rgb))}}:where(.et-surface-interactive:focus-visible){--et-surface-interaction-rgb: var( --et-surface-interaction-focus, var(--et-surface-interaction-hover, var(--et-surface-interaction)) );--et-surface-interaction-solid: rgb(var(--et-surface-interaction-rgb))}:where(.et-surface-interactive:active){--et-surface-interaction-rgb: var( --et-surface-interaction-active, var(--et-surface-interaction-focus, var(--et-surface-interaction-hover, var(--et-surface-interaction))) );--et-surface-interaction-solid: rgb(var(--et-surface-interaction-rgb))}:where(.et-surface-interactive[disabled]),:where(.et-surface-interactive[aria-disabled=true]){--et-surface-interaction-rgb: var( --et-surface-interaction-disabled, var( --et-surface-interaction-active, var(--et-surface-interaction-focus, var(--et-surface-interaction-hover, var(--et-surface-interaction))) ) );--et-surface-interaction-solid: rgb(var(--et-surface-interaction-rgb))}}\n"], encapsulation: i0.ViewEncapsulation.None }); }
10270
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: SurfaceInteractiveStylesComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
10271
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.6", type: SurfaceInteractiveStylesComponent, isStandalone: true, selector: "et-surface-interactive-styles", ngImport: i0, template: '', isInline: true, styles: ["@layer components{:where(.et-surface-interactive){--et-surface-interaction-rgb: var(--et-surface-interaction);--et-surface-interaction-solid: rgb(var(--et-surface-interaction-rgb))}@media(hover:hover){:where(.et-surface-interactive:hover){--et-surface-interaction-rgb: var(--et-surface-interaction-hover, var(--et-surface-interaction));--et-surface-interaction-solid: rgb(var(--et-surface-interaction-rgb))}}:where(.et-surface-interactive:focus-visible){--et-surface-interaction-rgb: var( --et-surface-interaction-focus, var(--et-surface-interaction-hover, var(--et-surface-interaction)) );--et-surface-interaction-solid: rgb(var(--et-surface-interaction-rgb))}:where(.et-surface-interactive:active){--et-surface-interaction-rgb: var( --et-surface-interaction-active, var(--et-surface-interaction-focus, var(--et-surface-interaction-hover, var(--et-surface-interaction))) );--et-surface-interaction-solid: rgb(var(--et-surface-interaction-rgb))}:where(.et-surface-interactive[disabled]),:where(.et-surface-interactive[aria-disabled=true]){--et-surface-interaction-rgb: var( --et-surface-interaction-disabled, var( --et-surface-interaction-active, var(--et-surface-interaction-focus, var(--et-surface-interaction-hover, var(--et-surface-interaction))) ) );--et-surface-interaction-solid: rgb(var(--et-surface-interaction-rgb))}}\n"], encapsulation: i0.ViewEncapsulation.None }); }
10129
10272
  }
10130
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SurfaceInteractiveStylesComponent, decorators: [{
10273
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: SurfaceInteractiveStylesComponent, decorators: [{
10131
10274
  type: Component,
10132
10275
  args: [{ selector: 'et-surface-interactive-styles', template: '', encapsulation: ViewEncapsulation.None, styles: ["@layer components{:where(.et-surface-interactive){--et-surface-interaction-rgb: var(--et-surface-interaction);--et-surface-interaction-solid: rgb(var(--et-surface-interaction-rgb))}@media(hover:hover){:where(.et-surface-interactive:hover){--et-surface-interaction-rgb: var(--et-surface-interaction-hover, var(--et-surface-interaction));--et-surface-interaction-solid: rgb(var(--et-surface-interaction-rgb))}}:where(.et-surface-interactive:focus-visible){--et-surface-interaction-rgb: var( --et-surface-interaction-focus, var(--et-surface-interaction-hover, var(--et-surface-interaction)) );--et-surface-interaction-solid: rgb(var(--et-surface-interaction-rgb))}:where(.et-surface-interactive:active){--et-surface-interaction-rgb: var( --et-surface-interaction-active, var(--et-surface-interaction-focus, var(--et-surface-interaction-hover, var(--et-surface-interaction))) );--et-surface-interaction-solid: rgb(var(--et-surface-interaction-rgb))}:where(.et-surface-interactive[disabled]),:where(.et-surface-interactive[aria-disabled=true]){--et-surface-interaction-rgb: var( --et-surface-interaction-disabled, var( --et-surface-interaction-active, var(--et-surface-interaction-focus, var(--et-surface-interaction-hover, var(--et-surface-interaction))) ) );--et-surface-interaction-solid: rgb(var(--et-surface-interaction-rgb))}}\n"] }]
10133
10276
  }] });
@@ -10148,10 +10291,10 @@ class SurfaceInteractiveDirective {
10148
10291
  this.styleManager = injectStyleManager();
10149
10292
  this.styleManager.mount(SurfaceInteractiveStylesComponent);
10150
10293
  }
10151
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SurfaceInteractiveDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
10152
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.0.7", type: SurfaceInteractiveDirective, isStandalone: true, selector: "[etSurfaceInteractive]", host: { classAttribute: "et-surface-interactive" }, ngImport: i0 }); }
10294
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: SurfaceInteractiveDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
10295
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.6", type: SurfaceInteractiveDirective, isStandalone: true, selector: "[etSurfaceInteractive]", host: { classAttribute: "et-surface-interactive" }, ngImport: i0 }); }
10153
10296
  }
10154
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImport: i0, type: SurfaceInteractiveDirective, decorators: [{
10297
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.6", ngImport: i0, type: SurfaceInteractiveDirective, decorators: [{
10155
10298
  type: Directive,
10156
10299
  args: [{
10157
10300
  selector: '[etSurfaceInteractive]',
@@ -10163,11 +10306,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.7", ngImpor
10163
10306
 
10164
10307
  // Generated from package.json by tools/scripts/generate-version.js - do not edit.
10165
10308
  /** The version of `@ethlete/core` this build was cut from. */
10166
- const CORE_VERSION = '5.0.0-next.56';
10309
+ const CORE_VERSION = '5.0.0-next.57';
10167
10310
 
10168
10311
  /**
10169
10312
  * Generated bundle index. Do not edit.
10170
10313
  */
10171
10314
 
10172
- export { ANIMATABLE_TOKEN, ANIMATED_IF_TOKEN, ANIMATED_LIFECYCLE_TOKEN, ANIMATION_DEBUG_STORAGE_KEY, AT_LEAST_ONE_REQUIRED, AnimatableDirective, AnimatedIfDirective, AnimatedLifecycleDirective, AutoSurfaceDirective, BOUNDARY_ELEMENT_TOKEN, BREAKPOINT_INSTANCE_TOKEN, BREAKPOINT_ORDER, COLOR_PALETTE, COLOR_PROVIDER, CORE_VERSION, ClickOutsideDirective, ColorInteractiveContainerDirective, ColorInteractiveDirective, ColorInteractiveExcludeDirective, ColorInteractiveHasFocusDirective, DEFAULT_MULTI_INSTANCE_RELS, DEFAULT_MULTI_INSTANCE_TAGS, DEFAULT_OVERLAY_LAYER, DEFAULT_VIEWPORT_CONFIG, DISABLE_LOGGER_PARAM, DragHandleDirective, ET_DISABLE_SCROLL_TOP, ET_DISABLE_SCROLL_TOP_AS_RETURN_ROUTE, ET_DISABLE_SCROLL_TOP_ON_PATH_PARAM_CHANGE, ET_PROPERTY_REMOVED, ET_RESTORE_SCROLL, EthleteValidators, FOCUSABLE_SELECTOR, FOCUS_VISIBLE_TRACKER_TOKEN, HtmlToMarkdownPipe, IS_ARRAY_NOT_EMPTY, IS_EMAIL, InferMimeTypePipe, InitialsPipe, IsArrayNotEmpty, IsEmail, jsonLd as JsonLD, KeyPressManager, MUST_MATCH, MarkdownToHtmlPipe, MatchStateType, MustMatch, NOTIFICATION_CLICK_MESSAGE_TYPE, NormalizeGameResultTypePipe, NormalizeMatchParticipantsPipe, NormalizeMatchScorePipe, NormalizeMatchStatePipe, NormalizeMatchTypePipe, OVERLAY_LAYER_ATTRIBUTE, PropsDirective, ProvideColorDirective, ProvideSurfaceDirective, RUNTIME_ERROR_NO_DATA, RepeatDirective, ResizeHandlesComponent, RestoreScrollDirective, RuntimeError, SURFACE_COLOR, SURFACE_PROVIDER, SURFACE_TYPE, SWIPE_VELOCITY_WINDOW_MS, ScrollObserverDirective, ScrollObserverEndDirective, ScrollObserverStartDirective, SlugifyPipe, StructuredDataComponent, SurfaceInteractiveDirective, ToArrayPipe, TypedQueryList, UNSAVED_CHANGES_TITLE_MARKER, ValidateAtLeastOneRequired, anchoredOverlayPosition, animationDebugLog, applyAlternateBinding, applyAlternateLanguagesBindings, applyArticleBindings, applyAuthorBinding, applyCanonicalBinding, applyCenteredPosition, applyDescriptionBinding, applyFaviconOverlay, applyGlobalPosition, applyHeadBinding, applyHeadTitleBinding, applyHeadTitleMarker, applyHostListener, applyHostListeners, applyInitialFocus, applyKeywordsBinding, applyLinkBinding, applyMetaBinding, applyNextBinding, applyOgBinding, applyOpenGraphBindings, applyPrevBinding, applyResourceHintsBindings, applyRobotsBinding, applySocialMediaBindings, applyStructuredDataBinding, applyTwitterCardBindings, bindProps, boolBreakpointTransform, boundingClientRectToElementRect, breakpointTransformBase, buildElementSignal, buildSignalEffects, canUseSessionMemory, clamp, clone, cloneFormGroup, computedTillFalsy, computedTillTruthy, controlValueSignal, controlValueSignalWithPrevious, copyToClipboard, createAnchoredPositionCleanup, createArrayPropertyBinding, createAutoSessionMemoryKey, createCanAnimateSignal, createComponentId, createCssColorThemeName, createCssSurfaceName, createDependencyStash, createDestroy, createDocumentElementSignal, createElementDictionary, createElementDimensions, createEmptyElementSignal, createFlipAnimation, createFlipAnimationGroup, createHostProps, createIsRenderedSignal, createLogger, createObjectUrlHandle, createOverlayRuntimeRef, createPropHandlers, createPropertyBinding, createProps, createRootThemeCss, createRoute, createRouterState, createRxHostListener, createSessionMemory, createSetup, createSwatchCss, createSwipeTracker, createTailwindColorThemes, createTailwindCssVar, createTailwindRgbVar, createThemeStyle, createUnsavedChangesGuard, createUnsavedChangesTabLock, createUnsavedChangesTracker, createUserConsentProvider, deferredSignal, defineLabels, defineProvider, defineRootProvider, defineStaticProvider, defineStaticRootProvider, deleteCookie, dragGestureFrom, easeElastic, easeIn, easeInOut, easeLinear, easeOut, easeOutBack, easeOutBackStrong, elementCanScroll, enableAnchoredOverlayPositionExtras, equal, fetchDeployedBuildFingerprint, firstElementSignal, focusElement, forceReflow, formatRuntimeError, fromNextFrame, getCookie, getDomain, getElementScrollCoordinates, getFocusableElements, getFormGroupValue, getGroupMatchPoints, getGroupMatchScore, getHeadingElement, getKnockoutMatchScore, getMatchScoreSubLine, getObjectProperty, getScrollContainerTarget, getScrollItemTarget, getScrollSnapTarget, hasCookie, holdScrollRestoration, htmlToMarkdown, inferMimeType, initials, injectAngularRootElement, injectAnimatedBlockSize, injectAppUpdates, injectAppUpdatesConfig, injectBoundaryElement, injectBreakpointInput, injectBreakpointIsMatched, injectBreakpointObserver, injectCanHover, injectColorPalette, injectColorThemes, injectColorThemesPrefix, injectCurrentBreakpoint, injectDefaultColorTheme, injectDefaultSurfaceTheme, injectDeviceInputType, injectDisplayOrientation, injectErrorTheme, injectFaviconStore, injectFileDownload, injectFocusVisibleTracker, injectFragment, injectHasPrecisionInput, injectHasTouchInput, injectHostElement, injectIs2Xl, injectIsDocumentVisible, injectIsLandscape, injectIsLg, injectIsMd, injectIsPortrait, injectIsRouterInitialized, injectIsSm, injectIsXl, injectIsXs, injectLinkStore, injectLinkStoreConfig, injectLocale, injectMediaQueryIsMatched, injectMetaConfig, injectMetaStore, injectNotifications, injectObserveBreakpoint, injectObserveMediaQuery, injectOverlayRuntime, injectParentSurface, injectPathParam, injectPathParamChanges, injectPathParams, injectPrefersReducedMotion, injectQueryParam, injectQueryParamChanges, injectQueryParams, injectRenderer, injectRoute, injectRouteData, injectRouteDataItem, injectRouteTitle, injectRouterEvent, injectRouterNavigationState, injectRouterState, injectScrollbarDimensions, injectStructuredDataConfig, injectStructuredDataStore, injectStyleManager, injectSuccessTheme, injectSurfaceContextTracker, injectSurfaceThemes, injectSurfaceThemesPrefix, injectSurfaceType, injectTemplateRef, injectTitleConfig, injectTitleStore, injectUnsavedChangesCoordinator, injectUrl, injectViewportConfig, injectViewportDimensions, injectViewportSize, injectWarningTheme, isAnimationDebugEnabled, isArray, isElementSignal, isElementVisible, isFocusable, isGroupMatch, isHTMLElement, isKnockoutMatch, isObject, isOnHigherOverlayLayer, isStaleBuildError, markdownToHtml, matchesReducedMotion, maybeSignalValue, memoizeSignal, nextFrame, normalizeGameResultType, normalizeMatchParticipant, normalizeMatchParticipants, normalizeMatchScore, normalizeMatchState, normalizeMatchType, normalizeUnsavedChangesSource, numberBreakpointTransform, onOverlayViewportInsetsChange, overlayViewportInsets, overlayViewportInsetsFor, previousSignalValue, provideAppUpdates, provideAppUpdatesConfig, provideAppUpdatesInstance, provideBoundaryElement, provideBreakpointInstance, provideBreakpointObserver, provideColorPalette, provideColorThemes, provideColorThemesWithTailwind4, provideFaviconStore, provideFocusVisibleTracker, provideLinkStore, provideLinkStoreConfig, provideLocale, provideMetaConfig, provideMetaStore, provideNotifications, provideOverlayRuntime, provideRenderer, provideStructuredDataConfig, provideStructuredDataStore, provideStyleManager, provideSurfaceContextTracker, provideSurfaceThemesWithTailwind4, provideTitleConfig, provideTitleStore, provideUnsavedChangesCoordinator, provideViewportConfig, randomId, readBuildFingerprint, readFromClipboard, registerAnchoredPositionMiddlewareExtras, registerAnchoredPositionSetup, reserveOverlayViewportSpace, resetPositioningStyles, resolveAppRootColorProvider, resolveOverlayLayer, resolveSurfaceByElevation, round, routerDisableScrollTop, routerRestoreScroll, scrollToElement, setBackdropStyles, setBaseElementStyles, setCookie, setInputSignal, setupFocusTrap, setupPositioning, setupScrollRestoration, signalAnimatedNumber, signalAttributes, signalClasses, signalDeferredLoading, signalElementChildren, signalElementDimensions, signalElementIntersection, signalElementLastScrollDirection, signalElementMutations, signalElementScrollState, signalHostAttributes, signalHostClasses, signalHostElementDimensions, signalHostElementIntersection, signalHostElementLastScrollDirection, signalHostElementMutations, signalHostElementScrollState, signalHostStyles, signalIsRendered, signalStyles, slugify, suppressTextSelection, switchQueryListChanges, syncSignal, templateComputed, toArray, toArrayTrackByFn, toInjectFn, toProvideFn, toStringBinding, toToken, transformOrReturn, typedBreakpointTransform, unbindProps, useCursorDragScroll, writeScrollbarSizeToCssVariables, writeViewportSizeToCssVariables, ɵProvideColorThemes, ɵProvideColorThemesPrefix, ɵProvideSurfaceThemes, ɵProvideSurfaceThemesPrefix };
10315
+ export { ANIMATABLE_TOKEN, ANIMATED_IF_TOKEN, ANIMATED_LIFECYCLE_TOKEN, ANIMATION_DEBUG_STORAGE_KEY, AT_LEAST_ONE_REQUIRED, AnimatableDirective, AnimatedIfDirective, AnimatedLifecycleDirective, AutoSurfaceDirective, BOUNDARY_ELEMENT_TOKEN, BREAKPOINT_INSTANCE_TOKEN, BREAKPOINT_ORDER, COLOR_PALETTE, COLOR_PROVIDER, CORE_VERSION, ClickOutsideDirective, ColorInteractiveContainerDirective, ColorInteractiveDirective, ColorInteractiveExcludeDirective, ColorInteractiveHasFocusDirective, DEFAULT_MULTI_INSTANCE_RELS, DEFAULT_MULTI_INSTANCE_TAGS, DEFAULT_OVERLAY_LAYER, DEFAULT_VIEWPORT_CONFIG, DISABLE_LOGGER_PARAM, DragHandleDirective, ET_DISABLE_SCROLL_TOP, ET_DISABLE_SCROLL_TOP_AS_RETURN_ROUTE, ET_DISABLE_SCROLL_TOP_ON_PATH_PARAM_CHANGE, ET_PROPERTY_REMOVED, ET_RESTORE_SCROLL, EasingTokensStylesComponent, EthleteValidators, FOCUSABLE_SELECTOR, FOCUS_VISIBLE_TRACKER_TOKEN, HtmlToMarkdownPipe, IS_ARRAY_NOT_EMPTY, IS_EMAIL, InferMimeTypePipe, InitialsPipe, IsArrayNotEmpty, IsEmail, jsonLd as JsonLD, KeyPressManager, MUST_MATCH, MarkdownToHtmlPipe, MatchStateType, MustMatch, NOTIFICATION_CLICK_MESSAGE_TYPE, NormalizeGameResultTypePipe, NormalizeMatchParticipantsPipe, NormalizeMatchScorePipe, NormalizeMatchStatePipe, NormalizeMatchTypePipe, OVERLAY_LAYER_ATTRIBUTE, PropsDirective, ProvideColorDirective, ProvideSurfaceDirective, RUNTIME_ERROR_NO_DATA, RepeatDirective, ResizeHandlesComponent, RestoreScrollDirective, RuntimeError, SURFACE_COLOR, SURFACE_PROVIDER, SURFACE_TYPE, SWIPE_VELOCITY_WINDOW_MS, ScrollObserverDirective, ScrollObserverEndDirective, ScrollObserverStartDirective, SlugifyPipe, StructuredDataComponent, SurfaceInteractiveDirective, ToArrayPipe, TypedQueryList, UNSAVED_CHANGES_TITLE_MARKER, ValidateAtLeastOneRequired, anchoredOverlayPosition, animationDebugLog, applyAlternateBinding, applyAlternateLanguagesBindings, applyArticleBindings, applyAuthorBinding, applyCanonicalBinding, applyCenteredPosition, applyDescriptionBinding, applyFaviconOverlay, applyGlobalPosition, applyHeadBinding, applyHeadTitleBinding, applyHeadTitleMarker, applyHostListener, applyHostListeners, applyInitialFocus, applyKeywordsBinding, applyLinkBinding, applyMetaBinding, applyNextBinding, applyOgBinding, applyOpenGraphBindings, applyPrevBinding, applyResourceHintsBindings, applyRobotsBinding, applySocialMediaBindings, applyStructuredDataBinding, applyTwitterCardBindings, bindProps, boolBreakpointTransform, boundingClientRectToElementRect, breakpointTransformBase, buildElementSignal, buildSignalEffects, canUseSessionMemory, clamp, clone, cloneFormGroup, computedTillFalsy, computedTillTruthy, controlValueSignal, controlValueSignalWithPrevious, copyToClipboard, createAnchoredPositionCleanup, createArrayPropertyBinding, createAutoSessionMemoryKey, createCanAnimateSignal, createComponentId, createCssColorThemeName, createCssSurfaceName, createDependencyStash, createDestroy, createDocumentElementSignal, createElementDictionary, createElementDimensions, createEmptyElementSignal, createFlipAnimation, createFlipAnimationGroup, createHostProps, createIsRenderedSignal, createLogger, createObjectUrlHandle, createOverlayRuntimeRef, createPropHandlers, createPropertyBinding, createProps, createRootThemeCss, createRoute, createRouterState, createRxHostListener, createSessionMemory, createSetup, createSwatchCss, createSwipeTracker, createTailwindColorThemes, createTailwindCssVar, createTailwindRgbVar, createThemeStyle, createUnsavedChangesGuard, createUnsavedChangesTabLock, createUnsavedChangesTracker, createUserConsentProvider, deferredSignal, defineLabels, defineProvider, defineRootProvider, defineStaticProvider, defineStaticRootProvider, deleteCookie, dragGestureFrom, easeElastic, easeIn, easeInOut, easeLinear, easeOut, easeOutBack, easeOutBackStrong, elementCanScroll, enableAnchoredOverlayPositionExtras, equal, fetchDeployedBuildFingerprint, firstElementSignal, focusElement, forceReflow, formatRuntimeError, fromNextFrame, getCookie, getDomain, getElementScrollCoordinates, getFocusableElements, getFormGroupValue, getGroupMatchPoints, getGroupMatchScore, getHeadingElement, getKnockoutMatchScore, getMatchScoreSubLine, getObjectProperty, getScrollContainerTarget, getScrollItemTarget, getScrollSnapTarget, hasCookie, holdScrollRestoration, htmlToMarkdown, inferMimeType, initials, injectAngularRootElement, injectAnimatedBlockSize, injectAppUpdates, injectAppUpdatesConfig, injectBoundaryElement, injectBreakpointInput, injectBreakpointIsMatched, injectBreakpointObserver, injectCanHover, injectColorPalette, injectColorThemes, injectColorThemesPrefix, injectCurrentBreakpoint, injectDefaultColorTheme, injectDefaultSurfaceTheme, injectDeviceInputType, injectDisplayOrientation, injectErrorTheme, injectFaviconStore, injectFileDownload, injectFocusVisibleTracker, injectFragment, injectHasPrecisionInput, injectHasTouchInput, injectHostElement, injectIs2Xl, injectIsDocumentVisible, injectIsLandscape, injectIsLg, injectIsMd, injectIsPortrait, injectIsRouterInitialized, injectIsSm, injectIsXl, injectIsXs, injectLinkStore, injectLinkStoreConfig, injectLocale, injectMediaQueryIsMatched, injectMetaConfig, injectMetaStore, injectNotifications, injectObserveBreakpoint, injectObserveMediaQuery, injectOverlayRuntime, injectParentSurface, injectPathParam, injectPathParamChanges, injectPathParams, injectPrefersReducedMotion, injectQueryParam, injectQueryParamChanges, injectQueryParams, injectRenderer, injectRoute, injectRouteData, injectRouteDataItem, injectRouteTitle, injectRouterEvent, injectRouterNavigationState, injectRouterState, injectScrollbarDimensions, injectStructuredDataConfig, injectStructuredDataStore, injectStyleManager, injectSuccessTheme, injectSurfaceContextTracker, injectSurfaceThemes, injectSurfaceThemesPrefix, injectSurfaceType, injectTemplateRef, injectTitleConfig, injectTitleStore, injectUnsavedChangesCoordinator, injectUrl, injectViewportConfig, injectViewportDimensions, injectViewportSize, injectWarningTheme, isAnimationDebugEnabled, isArray, isElementSignal, isElementVisible, isFocusable, isGroupMatch, isHTMLElement, isKnockoutMatch, isObject, isOnHigherOverlayLayer, isStaleBuildError, markdownToHtml, matchesReducedMotion, maybeSignalValue, memoizeSignal, mountEasingTokens, nextFrame, normalizeGameResultType, normalizeMatchParticipant, normalizeMatchParticipants, normalizeMatchScore, normalizeMatchState, normalizeMatchType, normalizeUnsavedChangesSource, numberBreakpointTransform, onOverlayViewportInsetsChange, overlayViewportInsets, overlayViewportInsetsFor, ownsActiveElement, previousSignalValue, provideAppUpdates, provideAppUpdatesConfig, provideAppUpdatesInstance, provideBoundaryElement, provideBreakpointInstance, provideBreakpointObserver, provideColorPalette, provideColorThemes, provideColorThemesWithTailwind4, provideFaviconStore, provideFocusVisibleTracker, provideLinkStore, provideLinkStoreConfig, provideLocale, provideMetaConfig, provideMetaStore, provideNotifications, provideOverlayRuntime, provideRenderer, provideStructuredDataConfig, provideStructuredDataStore, provideStyleManager, provideSurfaceContextTracker, provideSurfaceThemesWithTailwind4, provideTitleConfig, provideTitleStore, provideUnsavedChangesCoordinator, provideViewportConfig, randomId, readBuildFingerprint, readFromClipboard, registerAnchoredPositionMiddlewareExtras, registerAnchoredPositionSetup, reserveOverlayViewportSpace, resetPositioningStyles, resolveAppRootColorProvider, resolveOverlayLayer, resolveSurfaceByElevation, round, routerDisableScrollTop, routerRestoreScroll, scrollToElement, setBackdropStyles, setBaseElementStyles, setCookie, setInputSignal, setupFocusTrap, setupPositioning, setupScrollRestoration, signalAnimatedNumber, signalAttributes, signalClasses, signalDeferredLoading, signalElementChildren, signalElementDimensions, signalElementIntersection, signalElementLastScrollDirection, signalElementMutations, signalElementScrollState, signalHostAttributes, signalHostClasses, signalHostElementDimensions, signalHostElementIntersection, signalHostElementLastScrollDirection, signalHostElementMutations, signalHostElementScrollState, signalHostStyles, signalIsRendered, signalStyles, slugify, suppressTextSelection, switchQueryListChanges, syncSignal, templateComputed, toArray, toArrayTrackByFn, toInjectFn, toProvideFn, toStringBinding, toToken, transformOrReturn, typedBreakpointTransform, unbindProps, useCursorDragScroll, writeScrollbarSizeToCssVariables, writeViewportSizeToCssVariables, ɵProvideColorThemes, ɵProvideColorThemesPrefix, ɵProvideSurfaceThemes, ɵProvideSurfaceThemesPrefix };
10173
10316
  //# sourceMappingURL=ethlete-core.mjs.map