@ethlete/core 5.0.0-next.47 → 5.0.0-next.49

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,17 @@
1
1
  # @ethlete/core
2
2
 
3
+ ## 5.0.0-next.49
4
+
5
+ ### Minor Changes
6
+
7
+ - [#3061](https://github.com/ethlete-io/ethdk/pull/3061) [`7cd3da8`](https://github.com/ethlete-io/ethdk/commit/7cd3da8342d0d619f06154d4155cfafedbed28f4) Thanks [@github-actions](https://github.com/apps/github-actions)! - Overlays: `data-et-overlay-layer` (or a per-open `zIndex`) puts an overlay above the default stacking level, which is how the query devtools panel and its toggle now stay visible over an app's own modals and tooltips.
8
+
9
+ ## 5.0.0-next.48
10
+
11
+ ### Minor Changes
12
+
13
+ - [`15d88c6`](https://github.com/ethlete-io/ethdk/commit/15d88c6abb6ead4596357705b9c899e1f6474567) Thanks [@TomTomB](https://github.com/TomTomB)! - Loading indicators wait before they show and hold once shown, so a fast response leaves no flicker - via the new `signalDeferredLoading` from `@ethlete/core`, applied across form field, select, cascader, menu and table.
14
+
3
15
  ## 5.0.0-next.47
4
16
 
5
17
  ### Patch Changes
@@ -1,7 +1,7 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { InjectionToken, inject, ElementRef, Directive, assertInInjectionContext, DestroyRef, TemplateRef, QueryList, RendererFactory2, RendererStyleFlags2, isSignal, DOCUMENT, signal, linkedSignal, isDevMode, computed, afterNextRender, effect, NgZone, untracked, EnvironmentInjector, runInInjectionContext, Injector, booleanAttribute, numberAttribute, PLATFORM_ID, ApplicationRef, createComponent, model, ViewContainerRef, input, output, Pipe, ViewEncapsulation, Component, 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, take, Observable, concatMap, EMPTY, concat, finalize, exhaustMap, share, shareReplay, isObservable, firstValueFrom, defaultIfEmpty } from 'rxjs';
4
+ import { Subject, BehaviorSubject, debounceTime, combineLatest, map, merge, fromEvent, filter, tap, switchMap, startWith, of, defer, from, catchError, timer, takeUntil, pairwise, distinctUntilChanged, EMPTY, take, Observable, concatMap, concat, finalize, exhaustMap, share, shareReplay, isObservable, firstValueFrom, defaultIfEmpty } from 'rxjs';
5
5
  import { FormGroup, FormArray, FormControl } from '@angular/forms';
6
6
  import { SIGNAL, signalSetFn } from '@angular/core/primitives/signals';
7
7
  import { DOCUMENT as DOCUMENT$1, isPlatformBrowser } from '@angular/common';
@@ -1846,6 +1846,51 @@ const controlValueSignalWithPrevious = (control, options) => {
1846
1846
  return data.asReadonly();
1847
1847
  };
1848
1848
 
1849
+ /**
1850
+ * Gates a loading indicator on a loading flag, so work that finishes quickly never flashes one: the
1851
+ * returned signal turns true only once `source` has been true for `delay` ms, and then stays true for
1852
+ * `minDuration` ms even if the work has already finished.
1853
+ *
1854
+ * Use it for what the reader *sees* - a spinner, a busy bar, a skeleton - and keep the raw flag for
1855
+ * everything else (`aria-busy`, whether a request is in flight, geometry that must not jump).
1856
+ *
1857
+ * Call in an injection context.
1858
+ *
1859
+ * ```ts
1860
+ * protected showSpinner = signalDeferredLoading(this.loading);
1861
+ * ```
1862
+ */
1863
+ const signalDeferredLoading = (source, options) => {
1864
+ const delay = options?.delay ?? 200;
1865
+ const minDuration = options?.minDuration ?? 300;
1866
+ const visible = signal(false, /* @ts-ignore */
1867
+ ...(ngDevMode ? [{ debugName: "visible" }] : /* istanbul ignore next */ []));
1868
+ // Nothing to defer on the server - there is no first paint to protect, and a pending timer would
1869
+ // hold up serialization for as long as it runs.
1870
+ if (!isPlatformBrowser(inject(PLATFORM_ID))) {
1871
+ return visible.asReadonly();
1872
+ }
1873
+ let shownAt = 0;
1874
+ toObservable(computed(() => source()))
1875
+ .pipe(switchMap((loading) => {
1876
+ if (loading === untracked(visible)) {
1877
+ return EMPTY;
1878
+ }
1879
+ if (loading) {
1880
+ return timer(delay).pipe(map(() => true));
1881
+ }
1882
+ const remaining = minDuration - (performance.now() - shownAt);
1883
+ return remaining <= 0 ? of(false) : timer(remaining).pipe(map(() => false));
1884
+ }), takeUntilDestroyed())
1885
+ .subscribe((isVisible) => {
1886
+ if (isVisible) {
1887
+ shownAt = performance.now();
1888
+ }
1889
+ visible.set(isVisible);
1890
+ });
1891
+ return visible.asReadonly();
1892
+ };
1893
+
1849
1894
  const signalElementMutations = (el, options) => {
1850
1895
  const destroyRef = inject(DestroyRef);
1851
1896
  const elements = buildElementSignal(el);
@@ -5546,6 +5591,37 @@ const setupFocusTrap = (paneElement, overlayRef, enabled, isTopMost, document) =
5546
5591
  };
5547
5592
  };
5548
5593
 
5594
+ /**
5595
+ * Attribute an element uses to declare the stacking level of every overlay opened from inside it.
5596
+ * Its value is the z-index of the runtime root such an overlay mounts into.
5597
+ */
5598
+ const OVERLAY_LAYER_ATTRIBUTE = 'data-et-overlay-layer';
5599
+ /**
5600
+ * The stacking level overlays mount at when nothing above their origin declares another one. Near
5601
+ * int32 max, so an overlay outranks an arbitrary host application's own stacking.
5602
+ */
5603
+ const DEFAULT_OVERLAY_LAYER = 2147483003;
5604
+ /**
5605
+ * The stacking level for an overlay opened from `element`: the one declared by the nearest ancestor
5606
+ * carrying `data-et-overlay-layer`, or {@link DEFAULT_OVERLAY_LAYER}.
5607
+ *
5608
+ * Put the attribute on anything that paints above the default overlay layer - a devtools panel, an
5609
+ * always-on-top widget - so a menu, tooltip or dialog opened inside it is not rendered behind the
5610
+ * thing that opened it. Overlays sharing a level share a runtime root and stack in open order.
5611
+ */
5612
+ const resolveOverlayLayer = (element) => {
5613
+ const declaring = element?.closest?.(`[${OVERLAY_LAYER_ATTRIBUTE}]`);
5614
+ if (!declaring) {
5615
+ return DEFAULT_OVERLAY_LAYER;
5616
+ }
5617
+ const declared = declaring.getAttribute(OVERLAY_LAYER_ATTRIBUTE)?.trim();
5618
+ const layer = Number(declared);
5619
+ if (!declared || !Number.isFinite(layer)) {
5620
+ return DEFAULT_OVERLAY_LAYER;
5621
+ }
5622
+ return layer;
5623
+ };
5624
+
5549
5625
  const setBaseElementStyles = (config, hostElement, paneElement, renderer) => {
5550
5626
  renderer.setStyle(hostElement, {
5551
5627
  position: 'fixed',
@@ -5991,24 +6067,35 @@ const OVERLAY_RUNTIME_DEF = /* @__PURE__ */ defineRootProvider(() => {
5991
6067
  ...(ngDevMode ? [{ debugName: "openEntriesState" }] : /* istanbul ignore next */ []));
5992
6068
  const openEntries = computed(() => openEntriesState(), /* @ts-ignore */
5993
6069
  ...(ngDevMode ? [{ debugName: "openEntries" }] : /* istanbul ignore next */ []));
5994
- // One runtime root per document: overlays usually all mount into the app's document, but an
5995
- // overlay anchored inside a same-origin pop-up window (config.document) needs a root over there.
6070
+ // One runtime root per document and stacking level: overlays usually all mount into the app's
6071
+ // document at the default level, but an overlay anchored inside a same-origin pop-up window
6072
+ // (config.document) needs a root over there, and one opened from inside something that paints
6073
+ // above the default level (config.zIndex) needs a root of its own to stack above it.
5996
6074
  const rootElements = new Map();
5997
6075
  // Synchronous teardown for each currently-mounted overlay, run when the runtime's injector is
5998
6076
  // destroyed (app teardown). Registered on mount, removed once the overlay is destroyed normally.
5999
6077
  const mountedTeardowns = new Set();
6000
- const getRootElement = (targetDocument) => {
6001
- const existingRoot = rootElements.get(targetDocument);
6078
+ const getRootElement = (targetDocument, zIndex) => {
6079
+ let documentRoots = rootElements.get(targetDocument);
6080
+ if (!documentRoots) {
6081
+ // A previous Angular app (e.g. the one that existed before a Storybook HMR update or story
6082
+ // switch) may have left its runtime root orphaned in <body> if it was torn down mid-animation.
6083
+ // Such a node keeps a backdrop/pane on screen and blocks pointer events, so clear any stragglers
6084
+ // before creating ours. Only on the document's first root - a second level must not remove the
6085
+ // first one's still-mounted overlays.
6086
+ targetDocument.querySelectorAll('.et-overlay-runtime-root').forEach((el) => el.remove());
6087
+ documentRoots = new Map();
6088
+ rootElements.set(targetDocument, documentRoots);
6089
+ }
6090
+ const existingRoot = documentRoots.get(zIndex);
6002
6091
  if (existingRoot) {
6003
6092
  return existingRoot;
6004
6093
  }
6005
- // A previous Angular app (e.g. the one that existed before a Storybook HMR update or story
6006
- // switch) may have left its runtime root orphaned in <body> if it was torn down mid-animation.
6007
- // Such a node keeps a backdrop/pane on screen and blocks pointer events, so clear any stragglers
6008
- // before creating ours.
6009
- targetDocument.querySelectorAll('.et-overlay-runtime-root').forEach((el) => el.remove());
6010
6094
  const rootElement = renderer.createElement('div');
6011
6095
  renderer.addClass(rootElement, 'et-overlay-runtime-root');
6096
+ // So an overlay opened from inside this root's own content resolves back to the same level
6097
+ // instead of dropping to the default one.
6098
+ renderer.setAttribute(rootElement, OVERLAY_LAYER_ATTRIBUTE, `${zIndex}`);
6012
6099
  renderer.setStyle(rootElement, {
6013
6100
  position: 'fixed',
6014
6101
  top: '0',
@@ -6016,25 +6103,30 @@ const OVERLAY_RUNTIME_DEF = /* @__PURE__ */ defineRootProvider(() => {
6016
6103
  right: '0',
6017
6104
  bottom: '0',
6018
6105
  pointerEvents: 'none',
6019
- // Above the query devtools panel's own near-int32-max z-index (it must outrank an arbitrary
6020
- // host app), so an overlay opened from inside the devtools - e.g. its override menu - isn't
6021
- // rendered behind the panel that triggered it.
6022
- zIndex: '2147483003',
6106
+ zIndex: `${zIndex}`,
6023
6107
  });
6024
6108
  renderer.appendChild(targetDocument.body, rootElement);
6025
- rootElements.set(targetDocument, rootElement);
6109
+ documentRoots.set(zIndex, rootElement);
6026
6110
  return rootElement;
6027
6111
  };
6028
- const maybeDestroyRootElement = (targetDocument) => {
6029
- const rootElement = rootElements.get(targetDocument);
6030
- if (!rootElement || openEntriesState().some((entry) => entry.elements.rootElement === rootElement)) {
6112
+ const maybeDestroyRootElements = (targetDocument) => {
6113
+ const documentRoots = rootElements.get(targetDocument);
6114
+ if (!documentRoots) {
6031
6115
  return;
6032
6116
  }
6033
- const parentNode = renderer.parentNode(rootElement);
6034
- if (parentNode) {
6035
- renderer.removeChild(parentNode, rootElement);
6117
+ documentRoots.forEach((rootElement, zIndex) => {
6118
+ if (openEntriesState().some((entry) => entry.elements.rootElement === rootElement)) {
6119
+ return;
6120
+ }
6121
+ const parentNode = renderer.parentNode(rootElement);
6122
+ if (parentNode) {
6123
+ renderer.removeChild(parentNode, rootElement);
6124
+ }
6125
+ documentRoots.delete(zIndex);
6126
+ });
6127
+ if (!documentRoots.size) {
6128
+ rootElements.delete(targetDocument);
6036
6129
  }
6037
- rootElements.delete(targetDocument);
6038
6130
  };
6039
6131
  const isTopMost = (overlayRef) => {
6040
6132
  return openEntriesState().at(-1) === overlayRef;
@@ -6048,7 +6140,7 @@ const OVERLAY_RUNTIME_DEF = /* @__PURE__ */ defineRootProvider(() => {
6048
6140
  };
6049
6141
  const mount = (config) => {
6050
6142
  const targetDocument = config.document ?? document;
6051
- const root = getRootElement(targetDocument);
6143
+ const root = getRootElement(targetDocument, config.zIndex ?? DEFAULT_OVERLAY_LAYER);
6052
6144
  const hostElement = renderer.createElement('div');
6053
6145
  const paneElement = renderer.createElement('div');
6054
6146
  const backdropElement = config.hasBackdrop === false ? null : renderer.createElement('div');
@@ -6127,7 +6219,7 @@ const OVERLAY_RUNTIME_DEF = /* @__PURE__ */ defineRootProvider(() => {
6127
6219
  renderer.removeChild(parentNode, hostElement);
6128
6220
  }
6129
6221
  openEntriesState.update((entries) => entries.filter((entry) => entry !== overlayRef));
6130
- maybeDestroyRootElement(targetDocument);
6222
+ maybeDestroyRootElements(targetDocument);
6131
6223
  if (config.restoreFocus !== false && previousFocusedElement?.isConnected) {
6132
6224
  previousFocusedElement.focus({ preventScroll: true });
6133
6225
  }
@@ -6246,7 +6338,7 @@ const OVERLAY_RUNTIME_DEF = /* @__PURE__ */ defineRootProvider(() => {
6246
6338
  };
6247
6339
  destroyRef.onDestroy(() => {
6248
6340
  [...mountedTeardowns].forEach((teardown) => teardown());
6249
- [...rootElements.keys()].forEach((targetDocument) => maybeDestroyRootElement(targetDocument));
6341
+ [...rootElements.keys()].forEach((targetDocument) => maybeDestroyRootElements(targetDocument));
6250
6342
  });
6251
6343
  return {
6252
6344
  mount,
@@ -9498,11 +9590,11 @@ const createUnsavedChangesGuard = (config) => {
9498
9590
 
9499
9591
  // Generated from package.json by tools/scripts/generate-version.js - do not edit.
9500
9592
  /** The version of `@ethlete/core` this build was cut from. */
9501
- const CORE_VERSION = '5.0.0-next.47';
9593
+ const CORE_VERSION = '5.0.0-next.49';
9502
9594
 
9503
9595
  /**
9504
9596
  * Generated bundle index. Do not edit.
9505
9597
  */
9506
9598
 
9507
- 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_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, FOCUSABLE_SELECTOR, FOCUS_VISIBLE_TRACKER_TOKEN, HtmlToMarkdownPipe, IS_ARRAY_NOT_EMPTY, IS_EMAIL, InferMimeTypePipe, InitialsPipe, IsArrayNotEmpty, IsEmail, jsonLd as JsonLD, KeyPressManager, MUST_MATCH, MarkdownToHtmlPipe, MustMatch, NOTIFICATION_CLICK_MESSAGE_TYPE, NormalizeGameResultTypePipe, NormalizeMatchParticipantsPipe, NormalizeMatchScorePipe, NormalizeMatchStatePipe, NormalizeMatchTypePipe, 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, Validators, 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, areScrollStatesEqual, bindProps, boolBreakpointTransform, booleanBreakpointAttribute, boundingClientRectToElementRect, breakpointTransformBase, buildElementSignal, buildSignalEffects, canUseSessionMemory, clamp, clone, cloneFormGroup, computedTillFalsy, computedTillTruthy, controlValueSignal, controlValueSignalWithPrevious, copyToClipboard, createAnchoredPositionCleanup, createArrayPropertyBinding, createAutoSessionMemoryKey, createBulkPropertyBinding, 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, 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, injectBoundaryElement, injectBreakpointInput, injectBreakpointIsMatched, injectBreakpointObserver, injectCanHover, injectColorPalette, injectColorThemes, injectColorThemesPrefix, injectCurrentBreakpoint, injectDefaultColorTheme, 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, injectPathParam, injectPathParamChanges, injectPathParams, injectPrefersReducedMotion, injectQueryParam, injectQueryParamChanges, injectQueryParams, injectRenderer, injectRoute, injectRouteData, injectRouteDataItem, injectRouteTitle, injectRouterEvent, injectRouterNavigationState, injectRouterState, injectScrollbarDimensions, injectStructuredDataConfig, injectStructuredDataStore, injectStyleManager, injectSuccessTheme, injectSurfaceContextTracker, injectSurfaceThemes, injectSurfaceThemesPrefix, injectTemplateRef, injectTitleConfig, injectTitleStore, injectUnsavedChangesCoordinator, injectUrl, injectViewportConfig, injectViewportDimensions, injectViewportSize, injectWarningTheme, isAnimationDebugEnabled, isArray, isElementSignal, isElementVisible, isFocusable, isGroupMatch, isHTMLElement, isKnockoutMatch, isObject, markdownToHtml, matchesReducedMotion, maybeSignalValue, memoizeSignal, nextFrame, normalizeGameResultType, normalizeMatchParticipant, normalizeMatchParticipants, normalizeMatchScore, normalizeMatchState, normalizeMatchType, normalizeUnsavedChangesSource, numberBreakpointAttribute, numberBreakpointTransform, previousSignalValue, 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, readFromClipboard, registerAnchoredPositionMiddlewareExtras, registerAnchoredPositionSetup, resetPositioningStyles, resolveAppRootColorProvider, resolveSurfaceByElevation, round, routerDisableScrollTop, routerRestoreScroll, scrollToElement, setBackdropStyles, setBaseElementStyles, setCookie, setInputSignal, setupFocusTrap, setupPositioning, setupScrollRestoration, signalAnimatedNumber, signalAttributes, signalClasses, 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 };
9599
+ 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, FOCUSABLE_SELECTOR, FOCUS_VISIBLE_TRACKER_TOKEN, HtmlToMarkdownPipe, IS_ARRAY_NOT_EMPTY, IS_EMAIL, InferMimeTypePipe, InitialsPipe, IsArrayNotEmpty, IsEmail, jsonLd as JsonLD, KeyPressManager, MUST_MATCH, MarkdownToHtmlPipe, 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, Validators, 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, areScrollStatesEqual, bindProps, boolBreakpointTransform, booleanBreakpointAttribute, boundingClientRectToElementRect, breakpointTransformBase, buildElementSignal, buildSignalEffects, canUseSessionMemory, clamp, clone, cloneFormGroup, computedTillFalsy, computedTillTruthy, controlValueSignal, controlValueSignalWithPrevious, copyToClipboard, createAnchoredPositionCleanup, createArrayPropertyBinding, createAutoSessionMemoryKey, createBulkPropertyBinding, 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, 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, injectBoundaryElement, injectBreakpointInput, injectBreakpointIsMatched, injectBreakpointObserver, injectCanHover, injectColorPalette, injectColorThemes, injectColorThemesPrefix, injectCurrentBreakpoint, injectDefaultColorTheme, 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, injectPathParam, injectPathParamChanges, injectPathParams, injectPrefersReducedMotion, injectQueryParam, injectQueryParamChanges, injectQueryParams, injectRenderer, injectRoute, injectRouteData, injectRouteDataItem, injectRouteTitle, injectRouterEvent, injectRouterNavigationState, injectRouterState, injectScrollbarDimensions, injectStructuredDataConfig, injectStructuredDataStore, injectStyleManager, injectSuccessTheme, injectSurfaceContextTracker, injectSurfaceThemes, injectSurfaceThemesPrefix, injectTemplateRef, injectTitleConfig, injectTitleStore, injectUnsavedChangesCoordinator, injectUrl, injectViewportConfig, injectViewportDimensions, injectViewportSize, injectWarningTheme, isAnimationDebugEnabled, isArray, isElementSignal, isElementVisible, isFocusable, isGroupMatch, isHTMLElement, isKnockoutMatch, isObject, markdownToHtml, matchesReducedMotion, maybeSignalValue, memoizeSignal, nextFrame, normalizeGameResultType, normalizeMatchParticipant, normalizeMatchParticipants, normalizeMatchScore, normalizeMatchState, normalizeMatchType, normalizeUnsavedChangesSource, numberBreakpointAttribute, numberBreakpointTransform, previousSignalValue, 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, readFromClipboard, registerAnchoredPositionMiddlewareExtras, registerAnchoredPositionSetup, 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 };
9508
9600
  //# sourceMappingURL=ethlete-core.mjs.map