@ethlete/core 4.7.0 → 4.8.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 (48) hide show
  1. package/CHANGELOG.md +12 -0
  2. package/esm2022/lib/components/structured-data/structured-data.component.mjs +3 -3
  3. package/esm2022/lib/directives/animatable/animatable.directive.mjs +3 -3
  4. package/esm2022/lib/directives/animated-if/animated-if.directive.mjs +3 -3
  5. package/esm2022/lib/directives/animated-lifecycle/animated-lifecycle.directive.mjs +3 -3
  6. package/esm2022/lib/directives/animated-overlay/animated-overlay.directive.mjs +25 -9
  7. package/esm2022/lib/directives/click-outside/click-outside.directive.mjs +3 -3
  8. package/esm2022/lib/directives/cursor-drag-scroll/cursor-drag-scroll.directive.mjs +3 -3
  9. package/esm2022/lib/directives/debug/debug.directive.mjs +3 -3
  10. package/esm2022/lib/directives/delayable/delayable.directive.mjs +3 -3
  11. package/esm2022/lib/directives/is-active-element/is-active-element.directive.mjs +3 -3
  12. package/esm2022/lib/directives/is-element/is-element.directive.mjs +3 -3
  13. package/esm2022/lib/directives/let/let.directive.mjs +3 -3
  14. package/esm2022/lib/directives/observe-content/observe-content.directive.mjs +3 -3
  15. package/esm2022/lib/directives/observe-resize/observe-resize.directive.mjs +3 -3
  16. package/esm2022/lib/directives/observe-scroll-state/observe-scroll-state.directive.mjs +3 -3
  17. package/esm2022/lib/directives/observe-visibility/observe-visibility.directive.mjs +3 -3
  18. package/esm2022/lib/directives/repeat/repeat.directive.mjs +3 -3
  19. package/esm2022/lib/directives/root-boundary/root-boundary.directive.mjs +3 -3
  20. package/esm2022/lib/directives/scroll-observer-first-element/scroll-observer-first-element.directive.mjs +3 -3
  21. package/esm2022/lib/directives/scroll-observer-ignore-target/scroll-observer-ignore-target.directive.mjs +3 -3
  22. package/esm2022/lib/directives/scroll-observer-last-element/scroll-observer-last-element.directive.mjs +3 -3
  23. package/esm2022/lib/directives/seo/seo.directive.mjs +3 -3
  24. package/esm2022/lib/pipes/infer-mime-type/infer-mime-type.pipe.mjs +3 -3
  25. package/esm2022/lib/pipes/normalize-game-result-type/normalize-game-result-type.pipe.mjs +3 -3
  26. package/esm2022/lib/pipes/normalize-match-participants/normalize-match-participants.pipe.mjs +3 -3
  27. package/esm2022/lib/pipes/normalize-match-score/normalize-match-score.pipe.mjs +3 -3
  28. package/esm2022/lib/pipes/normalize-match-state/normalize-match-state.pipe.mjs +3 -3
  29. package/esm2022/lib/pipes/normalize-match-type/normalize-match-type.pipe.mjs +3 -3
  30. package/esm2022/lib/pipes/to-array/to-array.pipe.mjs +3 -3
  31. package/esm2022/lib/props/props.directive.mjs +3 -3
  32. package/esm2022/lib/services/click-observer.service.mjs +6 -6
  33. package/esm2022/lib/services/content-observer.service.mjs +6 -6
  34. package/esm2022/lib/services/focus-visible.service.mjs +4 -4
  35. package/esm2022/lib/services/intersection-observer.service.mjs +6 -6
  36. package/esm2022/lib/services/resize-observer.service.mjs +6 -6
  37. package/esm2022/lib/services/router-state.service.mjs +3 -3
  38. package/esm2022/lib/services/viewport.service.mjs +3 -3
  39. package/esm2022/lib/utils/index.mjs +2 -1
  40. package/esm2022/lib/utils/inject.utils.mjs +4 -0
  41. package/esm2022/lib/utils/signal.utils.mjs +25 -6
  42. package/fesm2022/ethlete-core.mjs +172 -135
  43. package/fesm2022/ethlete-core.mjs.map +1 -1
  44. package/lib/directives/animated-overlay/animated-overlay.directive.d.ts +6 -1
  45. package/lib/utils/index.d.ts +1 -0
  46. package/lib/utils/inject.utils.d.ts +3 -0
  47. package/lib/utils/signal.utils.d.ts +23 -2
  48. package/package.json +7 -7
@@ -75,6 +75,11 @@ export declare class AnimatedOverlayDirective<T extends AnimatedOverlayComponent
75
75
  * @default false
76
76
  */
77
77
  autoHide: boolean;
78
+ /**
79
+ * Whether the animated overlay should auto close if the reference element is hidden.
80
+ * @default false
81
+ */
82
+ autoCloseIfReferenceHidden: boolean;
78
83
  get isMounted(): boolean;
79
84
  get isMounted$(): import("rxjs").Observable<boolean>;
80
85
  get isMounting(): boolean;
@@ -101,5 +106,5 @@ export declare class AnimatedOverlayDirective<T extends AnimatedOverlayComponent
101
106
  afterClosed(): Subject<void>;
102
107
  _destroy(): void;
103
108
  static ɵfac: i0.ɵɵFactoryDeclaration<AnimatedOverlayDirective<any>, never>;
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: {}; }]>;
109
+ 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; }; "autoCloseIfReferenceHidden": { "alias": "autoCloseIfReferenceHidden"; "required": false; }; }, {}, never, never, true, [{ directive: typeof i1.ObserveResizeDirective; inputs: {}; outputs: {}; }]>;
105
110
  }
@@ -8,6 +8,7 @@ export * from './cookie.util';
8
8
  export * from './destroy.utils';
9
9
  export * from './equal.util';
10
10
  export * from './form.utils';
11
+ export * from './inject.utils';
11
12
  export * from './intersection-observer.utils';
12
13
  export * from './key-press-manager.utils';
13
14
  export * from './media-query-observable.util';
@@ -0,0 +1,3 @@
1
+ import { TemplateRef } from '@angular/core';
2
+ export declare const injectHostElement: <T = HTMLElement>() => T;
3
+ export declare const injectTemplateRef: <C = unknown>() => TemplateRef<C>;
@@ -1,5 +1,5 @@
1
1
  import { ElementRef, QueryList, Signal, WritableSignal } from '@angular/core';
2
- import { FormControl } from '@angular/forms';
2
+ import { FormArray, FormControl, FormGroup } from '@angular/forms';
3
3
  import { Observable, map } from 'rxjs';
4
4
  type SignalElementBindingComplexType = HTMLElement | ElementRef<HTMLElement> | QueryList<ElementRef<HTMLElement> | HTMLElement> | Array<ElementRef<HTMLElement> | HTMLElement> | null | undefined;
5
5
  type SignalElementBindingType = HTMLElement | ElementRef<HTMLElement> | Observable<SignalElementBindingComplexType> | Signal<SignalElementBindingComplexType> | QueryList<ElementRef<HTMLElement> | HTMLElement> | ElementSignal;
@@ -108,11 +108,32 @@ export declare const signalHostElementIntersection: (options?: SignalElementInte
108
108
  export declare const signalElementChildren: (el: SignalElementBindingType) => Signal<HTMLElement[]>;
109
109
  export declare const previousSignalValue: <T>(signal: Signal<T>) => Signal<T | undefined>;
110
110
  export declare const syncSignal: <T>(from: Signal<T>, to: WritableSignal<T>) => void;
111
+ export interface ControlValueSignalOptions {
112
+ /**
113
+ * @default 300
114
+ */
115
+ debounceTime?: number;
116
+ /**
117
+ * @default false
118
+ */
119
+ debounceFirst?: boolean;
120
+ }
121
+ export declare const controlValueSignal: <T extends FormGroup<any> | FormArray<any> | FormControl<any>>(control: T, options?: ControlValueSignalOptions) => Signal<ReturnType<T["getRawValue"]>>;
122
+ /**
123
+ * The first item in the pair is the previous value and the second item is the current value.
124
+ */
125
+ export declare const controlValueSignalWithPrevious: <T extends FormGroup<any> | FormArray<any> | FormControl<any>>(control: T, options?: ControlValueSignalOptions) => Signal<any[] | [ReturnType<T["getRawValue"]>, ReturnType<T["getRawValue"]>]>;
126
+ /**
127
+ * @deprecated Use `controlValueSignal` instead with `debounceTime` option.
128
+ */
111
129
  export interface DebouncedControlValueSignalOptions {
112
130
  /**
113
131
  * @default 300
114
132
  */
115
133
  debounceTime?: number;
116
134
  }
117
- export declare const debouncedControlValueSignal: <T extends FormControl<any>>(control: T, options?: DebouncedControlValueSignalOptions) => Signal<T["value"] | null>;
135
+ /**
136
+ * @deprecated Use `controlValueSignal` instead with `debounceTime` set to `300` and `debounceFirst` set to `true`.
137
+ */
138
+ export declare const debouncedControlValueSignal: <T extends FormControl<any>>(control: T, options?: DebouncedControlValueSignalOptions) => Signal<ReturnType<T["getRawValue"]>>;
118
139
  export {};
package/package.json CHANGED
@@ -1,13 +1,13 @@
1
1
  {
2
2
  "name": "@ethlete/core",
3
- "version": "4.7.0",
3
+ "version": "4.8.0",
4
4
  "peerDependencies": {
5
- "@angular/cdk": "17.3.1",
6
- "@angular/common": "17.3.1",
7
- "@angular/core": "17.3.1",
8
- "@angular/forms": "17.3.1",
9
- "@angular/platform-browser": "17.3.1",
10
- "@angular/router": "17.3.1",
5
+ "@angular/cdk": "17.3.2",
6
+ "@angular/common": "17.3.2",
7
+ "@angular/core": "17.3.2",
8
+ "@angular/forms": "17.3.2",
9
+ "@angular/platform-browser": "17.3.2",
10
+ "@angular/router": "17.3.2",
11
11
  "@ethlete/theming": "^2.3.1",
12
12
  "@ethlete/types": "^1.6.2",
13
13
  "@floating-ui/dom": "^1.5.3",