@ethlete/cdk 5.0.0-next.1 → 5.0.0-next.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -1,5 +1,13 @@
1
1
  # @ethlete/cdk
2
2
 
3
+ ## 5.0.0-next.2
4
+
5
+ ### Patch Changes
6
+
7
+ - [`95e656d`](https://github.com/ethlete-io/ethdk/commit/95e656d036368a48cbd17a399f7c0c61c49ab0fa) Thanks [@TomTomB](https://github.com/TomTomB)! - Fix overlay origin not getting inferred correctly
8
+
9
+ - [`95e656d`](https://github.com/ethlete-io/ethdk/commit/95e656d036368a48cbd17a399f7c0c61c49ab0fa) Thanks [@TomTomB](https://github.com/TomTomB)! - Fix scroll blocker getting stuck in blocked state
10
+
3
11
  ## 5.0.0-next.1
4
12
 
5
13
  ### Patch Changes
@@ -9,7 +9,7 @@ import { map, switchMap, combineLatest, pairwise, tap, BehaviorSubject, filter,
9
9
  import { __decorate, __metadata } from 'tslib';
10
10
  import { AsyncPipe, NgComponentOutlet, Location, NgTemplateOutlet, NgClass, DOCUMENT as DOCUMENT$1, NgStyle } from '@angular/common';
11
11
  import * as i1$1 from '@ethlete/core';
12
- import { createComponentId, injectRenderer, IS_EMAIL, MUST_MATCH, IS_ARRAY_NOT_EMPTY, AT_LEAST_ONE_REQUIRED, createDestroy, equal, signalHostClasses, signalAttributes, signalHostAttributes, switchQueryListChanges, controlValueSignal, fromNextFrame, elementCanScroll, AnimatedLifecycleDirective, forceReflow, nextFrame, createRootProvider, injectBreakpointObserver, THEME_PROVIDER, ProvideThemeDirective, BOUNDARY_ELEMENT_TOKEN, signalElementScrollState, signalElementIntersection, isElementVisible, provideBoundaryElement, applyHostListener, injectBoundaryElement, ANIMATED_LIFECYCLE_TOKEN, cloneFormGroup, getFormGroupValue, injectQueryParam, injectRoute, AnimatedIfDirective, injectObserveBreakpoint, syncSignal, injectAngularRootElement, writeScrollbarSizeToCssVariables, createStaticRootProvider, AnimatedOverlayDirective, setInputSignal, signalElementMutations, signalElementDimensions, createIsRenderedSignal, createCanAnimateSignal, useCursorDragScroll, signalElementChildren, signalClasses, signalHostStyles, signalStyles, getElementScrollCoordinates, injectTemplateRef, signalHostElementScrollState, signalHostElementDimensions, createProvider, previousSignalValue, injectHostElement, signalHostElementIntersection, createFlipAnimation, isObject, getObjectProperty, RuntimeError, KeyPressManager, scrollToElement, ClickOutsideDirective, clamp, injectFocusVisibleTracker, inferMimeType, applyHostListeners, TypedQueryList } from '@ethlete/core';
12
+ import { createComponentId, injectRenderer, IS_EMAIL, MUST_MATCH, IS_ARRAY_NOT_EMPTY, AT_LEAST_ONE_REQUIRED, createDestroy, equal, signalHostClasses, signalAttributes, signalHostAttributes, switchQueryListChanges, controlValueSignal, fromNextFrame, elementCanScroll, AnimatedLifecycleDirective, forceReflow, nextFrame, createRootProvider, injectBreakpointObserver, THEME_PROVIDER, ProvideThemeDirective, BOUNDARY_ELEMENT_TOKEN, signalElementScrollState, signalElementIntersection, isElementVisible, provideBoundaryElement, applyHostListener, injectBoundaryElement, ANIMATED_LIFECYCLE_TOKEN, cloneFormGroup, getFormGroupValue, injectQueryParam, injectRoute, AnimatedIfDirective, injectObserveBreakpoint, syncSignal, createStaticRootProvider, AnimatedOverlayDirective, setInputSignal, signalElementMutations, signalElementDimensions, createIsRenderedSignal, createCanAnimateSignal, useCursorDragScroll, signalElementChildren, signalClasses, signalHostStyles, signalStyles, getElementScrollCoordinates, injectTemplateRef, signalHostElementScrollState, signalHostElementDimensions, createProvider, previousSignalValue, injectHostElement, signalHostElementIntersection, createFlipAnimation, isObject, getObjectProperty, RuntimeError, KeyPressManager, scrollToElement, ClickOutsideDirective, clamp, injectFocusVisibleTracker, inferMimeType, applyHostListeners, TypedQueryList } from '@ethlete/core';
13
13
  import * as i1$5 from '@angular/cdk/a11y';
14
14
  import { FocusMonitor, FocusKeyManager, AriaDescriber, A11yModule } from '@angular/cdk/a11y';
15
15
  import { AutofillMonitor } from '@angular/cdk/text-field';
@@ -5508,7 +5508,7 @@ const getOriginCoordinatesAndDimensions = (origin) => {
5508
5508
  y: rect.top + rect.height / 2,
5509
5509
  width: rect.width,
5510
5510
  height: rect.height,
5511
- element: target,
5511
+ element: relevantElement,
5512
5512
  };
5513
5513
  }
5514
5514
  return null;
@@ -7703,43 +7703,34 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.1", ngImpor
7703
7703
  const [provideOverlayScrollBlocker, injectOverlayScrollBlocker] = createRootProvider(() => {
7704
7704
  const overlayManager = injectOverlayManager();
7705
7705
  const document = inject(DOCUMENT);
7706
- const angularRoot = injectAngularRootElement();
7707
7706
  const renderer = injectRenderer();
7708
7707
  const root = document.documentElement;
7709
- let isEnabled = false;
7710
- writeScrollbarSizeToCssVariables();
7711
- combineLatest({
7712
- hasOpenOverlays: toObservable(overlayManager.hasOpenOverlays),
7713
- angularRoot: toObservable(angularRoot),
7714
- })
7715
- .pipe(switchMap((data) => {
7716
- if (!data.hasOpenOverlays || !data.angularRoot)
7717
- return of(data);
7718
- return fromEvent(window, 'resize').pipe(startWith(data), map(() => data));
7719
- }), tap(({ hasOpenOverlays, angularRoot }) => {
7720
- if (!angularRoot)
7721
- return;
7722
- if (hasOpenOverlays && elementCanScroll(root)) {
7723
- if (isEnabled)
7724
- return;
7725
- renderer.setStyle(angularRoot, {
7726
- contain: 'content',
7727
- });
7708
+ let savedTop = null;
7709
+ toObservable(overlayManager.hasOpenOverlays)
7710
+ .pipe(tap((hasOpenOverlays) => {
7711
+ if (hasOpenOverlays && savedTop === null) {
7712
+ savedTop = document.defaultView?.scrollY ?? 0;
7728
7713
  renderer.setStyle(root, {
7729
- 'padding-inline-end': 'var(--et-sw)',
7730
- overflow: 'hidden',
7714
+ position: 'fixed',
7715
+ top: `-${savedTop}px`,
7716
+ left: '0',
7717
+ right: '0',
7718
+ 'overflow-y': 'scroll',
7731
7719
  });
7732
- isEnabled = true;
7733
7720
  }
7734
- else if (!hasOpenOverlays && isEnabled) {
7721
+ else if (!hasOpenOverlays && savedTop !== null) {
7722
+ const top = savedTop;
7723
+ savedTop = null;
7735
7724
  renderer.setStyle(root, {
7736
- overflow: null,
7737
- 'padding-inline-end': null,
7738
- });
7739
- renderer.setStyle(angularRoot, {
7740
- contain: null,
7725
+ position: null,
7726
+ top: null,
7727
+ left: null,
7728
+ right: null,
7729
+ 'overflow-y': null,
7730
+ 'scroll-behavior': 'auto',
7741
7731
  });
7742
- isEnabled = false;
7732
+ document.defaultView?.scrollTo(0, top);
7733
+ renderer.setStyle(root, { 'scroll-behavior': null });
7743
7734
  }
7744
7735
  }), takeUntilDestroyed())
7745
7736
  .subscribe();