@ethlete/core 4.2.3 → 4.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (46) hide show
  1. package/esm2022/lib/components/structured-data/structured-data.component.mjs +3 -3
  2. package/esm2022/lib/directives/animatable/animatable.directive.mjs +3 -3
  3. package/esm2022/lib/directives/animated-if/animated-if.directive.mjs +3 -3
  4. package/esm2022/lib/directives/animated-lifecycle/animated-lifecycle.directive.mjs +3 -3
  5. package/esm2022/lib/directives/animated-overlay/animated-overlay.directive.mjs +35 -9
  6. package/esm2022/lib/directives/click-outside/click-outside.directive.mjs +3 -3
  7. package/esm2022/lib/directives/cursor-drag-scroll/cursor-drag-scroll.directive.mjs +3 -3
  8. package/esm2022/lib/directives/debug/debug.directive.mjs +3 -3
  9. package/esm2022/lib/directives/delayable/delayable.directive.mjs +3 -3
  10. package/esm2022/lib/directives/is-active-element/is-active-element.directive.mjs +3 -3
  11. package/esm2022/lib/directives/is-element/is-element.directive.mjs +3 -3
  12. package/esm2022/lib/directives/let/let.directive.mjs +3 -3
  13. package/esm2022/lib/directives/observe-content/observe-content.directive.mjs +3 -3
  14. package/esm2022/lib/directives/observe-resize/observe-resize.directive.mjs +3 -3
  15. package/esm2022/lib/directives/observe-scroll-state/observe-scroll-state.directive.mjs +3 -3
  16. package/esm2022/lib/directives/observe-visibility/observe-visibility.directive.mjs +3 -3
  17. package/esm2022/lib/directives/repeat/repeat.directive.mjs +3 -3
  18. package/esm2022/lib/directives/root-boundary/root-boundary.directive.mjs +3 -3
  19. package/esm2022/lib/directives/scroll-observer-first-element/scroll-observer-first-element.directive.mjs +3 -3
  20. package/esm2022/lib/directives/scroll-observer-ignore-target/scroll-observer-ignore-target.directive.mjs +3 -3
  21. package/esm2022/lib/directives/scroll-observer-last-element/scroll-observer-last-element.directive.mjs +3 -3
  22. package/esm2022/lib/directives/seo/seo.directive.mjs +3 -3
  23. package/esm2022/lib/pipes/infer-mime-type/infer-mime-type.pipe.mjs +3 -3
  24. package/esm2022/lib/pipes/normalize-game-result-type/normalize-game-result-type.pipe.mjs +3 -3
  25. package/esm2022/lib/pipes/normalize-match-participants/normalize-match-participants.pipe.mjs +3 -3
  26. package/esm2022/lib/pipes/normalize-match-score/normalize-match-score.pipe.mjs +3 -3
  27. package/esm2022/lib/pipes/normalize-match-state/normalize-match-state.pipe.mjs +3 -3
  28. package/esm2022/lib/pipes/normalize-match-type/normalize-match-type.pipe.mjs +3 -3
  29. package/esm2022/lib/pipes/to-array/to-array.pipe.mjs +3 -3
  30. package/esm2022/lib/services/click-observer.service.mjs +6 -6
  31. package/esm2022/lib/services/content-observer.service.mjs +6 -6
  32. package/esm2022/lib/services/focus-visible.service.mjs +3 -3
  33. package/esm2022/lib/services/intersection-observer.service.mjs +6 -6
  34. package/esm2022/lib/services/resize-observer.service.mjs +6 -6
  35. package/esm2022/lib/services/router-state.service.mjs +3 -3
  36. package/esm2022/lib/services/viewport.service.mjs +3 -3
  37. package/esm2022/lib/utils/intersection-observer.utils.mjs +27 -0
  38. package/esm2022/lib/utils/public-api.mjs +2 -1
  39. package/esm2022/lib/utils/signal.utils.mjs +70 -21
  40. package/fesm2022/ethlete-core.mjs +249 -147
  41. package/fesm2022/ethlete-core.mjs.map +1 -1
  42. package/lib/directives/animated-overlay/animated-overlay.directive.d.ts +7 -1
  43. package/lib/utils/intersection-observer.utils.d.ts +14 -0
  44. package/lib/utils/public-api.d.ts +1 -0
  45. package/lib/utils/signal.utils.d.ts +7 -3
  46. package/package.json +7 -7
@@ -66,6 +66,10 @@ export declare class AnimatedOverlayDirective<T extends AnimatedOverlayComponent
66
66
  * @default false
67
67
  */
68
68
  autoResize: boolean;
69
+ /**
70
+ * Whether the animated overlay should shift when it is near the viewport boundary.
71
+ */
72
+ shift: boolean;
69
73
  /**
70
74
  * Whether the animated overlay should auto hide when the reference element is hidden.
71
75
  * @default false
@@ -78,6 +82,8 @@ export declare class AnimatedOverlayDirective<T extends AnimatedOverlayComponent
78
82
  get isUnmounting(): boolean;
79
83
  get isHidden$(): import("rxjs").Observable<boolean>;
80
84
  get isHidden(): boolean;
85
+ get canMount(): boolean;
86
+ get canUnmount(): boolean;
81
87
  get portal(): ComponentPortal<T> | null;
82
88
  get overlayRef(): OverlayRef | null;
83
89
  get componentRef(): ComponentRef<T> | null;
@@ -95,5 +101,5 @@ export declare class AnimatedOverlayDirective<T extends AnimatedOverlayComponent
95
101
  afterClosed(): Subject<void>;
96
102
  _destroy(): void;
97
103
  static ɵfac: i0.ɵɵFactoryDeclaration<AnimatedOverlayDirective<any>, never>;
98
- static ɵdir: i0.ɵɵDirectiveDeclaration<AnimatedOverlayDirective<any>, never, never, { "placement": { "alias": "placement"; "required": false; }; "fallbackPlacements": { "alias": "fallbackPlacements"; "required": false; }; "offset": { "alias": "offset"; "required": false; }; "arrowPadding": { "alias": "arrowPadding"; "required": false; }; "viewportPadding": { "alias": "viewportPadding"; "required": false; }; "autoResize": { "alias": "autoResize"; "required": false; }; "autoHide": { "alias": "autoHide"; "required": false; }; }, {}, never, never, true, [{ directive: typeof i1.ObserveResizeDirective; inputs: {}; outputs: {}; }]>;
104
+ static ɵdir: i0.ɵɵDirectiveDeclaration<AnimatedOverlayDirective<any>, never, never, { "placement": { "alias": "placement"; "required": false; }; "fallbackPlacements": { "alias": "fallbackPlacements"; "required": false; }; "offset": { "alias": "offset"; "required": false; }; "arrowPadding": { "alias": "arrowPadding"; "required": false; }; "viewportPadding": { "alias": "viewportPadding"; "required": false; }; "autoResize": { "alias": "autoResize"; "required": false; }; "shift": { "alias": "shift"; "required": false; }; "autoHide": { "alias": "autoHide"; "required": false; }; }, {}, never, never, true, [{ directive: typeof i1.ObserveResizeDirective; inputs: {}; outputs: {}; }]>;
99
105
  }
@@ -0,0 +1,14 @@
1
+ export declare const getFirstAndLastPartialIntersection: (intersections: IntersectionObserverEntry[]) => {
2
+ first: {
3
+ intersection: IntersectionObserverEntry;
4
+ index: number;
5
+ };
6
+ last: {
7
+ intersection: IntersectionObserverEntry;
8
+ index: number;
9
+ };
10
+ biggest: {
11
+ intersection: IntersectionObserverEntry;
12
+ index: number;
13
+ };
14
+ } | null;
@@ -7,6 +7,7 @@ export * from './cookie.util';
7
7
  export * from './destroy.utils';
8
8
  export * from './equal.util';
9
9
  export * from './form.utils';
10
+ export * from './intersection-observer.utils';
10
11
  export * from './key-press-manager.utils';
11
12
  export * from './media-query-observable.util';
12
13
  export * from './mutation-observable.util';
@@ -1,10 +1,12 @@
1
1
  import { ElementRef, QueryList, Signal } from '@angular/core';
2
2
  import { Observable, map } from 'rxjs';
3
- type SignalElementBindingComplexType = HTMLElement | ElementRef<HTMLElement> | QueryList<ElementRef<HTMLElement> | HTMLElement> | null | undefined;
3
+ type SignalElementBindingComplexType = HTMLElement | ElementRef<HTMLElement> | QueryList<ElementRef<HTMLElement> | HTMLElement> | Array<ElementRef<HTMLElement> | HTMLElement> | null | undefined;
4
4
  type SignalElementBindingType = HTMLElement | ElementRef<HTMLElement> | Observable<SignalElementBindingComplexType> | Signal<SignalElementBindingComplexType> | QueryList<ElementRef<HTMLElement> | HTMLElement> | ElementSignal;
5
5
  type ElementSignal = Signal<{
6
6
  currentElement: HTMLElement | null;
7
7
  previousElement: HTMLElement | null;
8
+ currentElements: HTMLElement[];
9
+ previousElements: HTMLElement[];
8
10
  }>;
9
11
  export declare const buildSignalEffects: <T extends Record<string, Signal<unknown>>>(config: {
10
12
  map: T;
@@ -77,7 +79,9 @@ export declare const signalHostElementScrollState: () => Signal<{
77
79
  }>;
78
80
  export type SignalElementIntersectionOptions = Omit<IntersectionObserverInit, 'root'> & {
79
81
  root?: SignalElementBindingType;
82
+ enabled?: Signal<unknown>;
80
83
  };
81
- export declare const signalElementIntersection: (el: SignalElementBindingType, options?: SignalElementIntersectionOptions) => import("@angular/core").WritableSignal<IntersectionObserverEntry | null>;
82
- export declare const signalHostElementIntersection: (options?: SignalElementIntersectionOptions) => import("@angular/core").WritableSignal<IntersectionObserverEntry | null>;
84
+ export declare const signalElementIntersection: (el: SignalElementBindingType, options?: SignalElementIntersectionOptions) => import("@angular/core").WritableSignal<IntersectionObserverEntry[]>;
85
+ export declare const signalHostElementIntersection: (options?: SignalElementIntersectionOptions) => import("@angular/core").WritableSignal<IntersectionObserverEntry[]>;
86
+ export declare const signalElementChildren: (el: SignalElementBindingType) => Signal<HTMLElement[]>;
83
87
  export {};
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@ethlete/core",
3
- "version": "4.2.3",
3
+ "version": "4.4.0",
4
4
  "peerDependencies": {
5
- "@angular/cdk": "17.0.0",
6
- "@angular/common": "17.0.2",
7
- "@angular/core": "17.0.2",
8
- "@angular/forms": "17.0.2",
9
- "@angular/platform-browser": "17.0.2",
10
- "@angular/router": "17.0.2",
5
+ "@angular/cdk": "17.0.1",
6
+ "@angular/common": "17.0.3",
7
+ "@angular/core": "17.0.3",
8
+ "@angular/forms": "17.0.3",
9
+ "@angular/platform-browser": "17.0.3",
10
+ "@angular/router": "17.0.3",
11
11
  "@ethlete/theming": "^2.3.1",
12
12
  "@ethlete/types": "^1.6.2",
13
13
  "@floating-ui/dom": "^1.5.3",