@ethlete/core 4.30.0 → 5.0.0-next.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.
- package/CHANGELOG.md +73 -0
- package/fesm2022/ethlete-core.mjs +4019 -4810
- package/fesm2022/ethlete-core.mjs.map +1 -1
- package/generators/generators.json +14 -0
- package/generators/migrate-to-v5/create-provider.js +158 -0
- package/generators/migrate-to-v5/migration.js +28 -0
- package/generators/migrate-to-v5/router-state-service.js +1064 -0
- package/generators/migrate-to-v5/schema.json +29 -0
- package/generators/migrate-to-v5/viewport-service.js +1678 -0
- package/generators/tailwind-4-theme/generator.js +490 -0
- package/generators/tailwind-4-theme/schema.json +32 -0
- package/package.json +18 -11
- package/types/ethlete-core.d.ts +2161 -0
- package/index.d.ts +0 -1968
|
@@ -0,0 +1,2161 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
import { InjectionToken, AfterViewInit, Signal, ComponentRef, StaticProvider, EmbeddedViewRef, Provider, InjectOptions, TemplateRef, QueryList, InputSignal, InputSignalWithTransform, PipeTransform, TrackByFunction, ElementRef, WritableSignal, DestroyRef, Injector, RendererStyleFlags2, OnInit, OnDestroy } from '@angular/core';
|
|
3
|
+
import * as rxjs from 'rxjs';
|
|
4
|
+
import { Observable, BehaviorSubject, Subject } from 'rxjs';
|
|
5
|
+
import * as _ethlete_core from '@ethlete/core';
|
|
6
|
+
import { OverlayRef } from '@angular/cdk/overlay';
|
|
7
|
+
import { ComponentPortal, ComponentType } from '@angular/cdk/portal';
|
|
8
|
+
import { Placement, OffsetOptions, Padding } from '@floating-ui/dom';
|
|
9
|
+
import { MatchListView, ParticipantViewUnion, MatchRankingView, StageType } from '@ethlete/types';
|
|
10
|
+
import * as _angular_platform_browser from '@angular/platform-browser';
|
|
11
|
+
import { FormGroup, AbstractControl, ValidationErrors, ValidatorFn } from '@angular/forms';
|
|
12
|
+
import { Data, Params, Event as Event$1 } from '@angular/router';
|
|
13
|
+
|
|
14
|
+
declare const ANIMATABLE_TOKEN: InjectionToken<AnimatableDirective>;
|
|
15
|
+
type AnimationEndEvent = {
|
|
16
|
+
cancelled: boolean;
|
|
17
|
+
transitionId?: string;
|
|
18
|
+
};
|
|
19
|
+
declare class AnimatableDirective {
|
|
20
|
+
private parent;
|
|
21
|
+
private elementRef;
|
|
22
|
+
private animationStartSubject$;
|
|
23
|
+
private animationEndSubject$;
|
|
24
|
+
private activeAnimationCount;
|
|
25
|
+
private hostActiveAnimationCount$;
|
|
26
|
+
private pendingTransitionIds;
|
|
27
|
+
private activeBatchTransitionId;
|
|
28
|
+
animationStart$: Observable<void>;
|
|
29
|
+
animationEnd$: Observable<AnimationEndEvent>;
|
|
30
|
+
totalActiveAnimationCount$: Observable<number>;
|
|
31
|
+
isAnimating$: Observable<boolean>;
|
|
32
|
+
constructor();
|
|
33
|
+
setTransitionId(id: string): void;
|
|
34
|
+
private updateActiveAnimationCount;
|
|
35
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AnimatableDirective, never>;
|
|
36
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<AnimatableDirective, "[etAnimatable]", ["etAnimatable"], {}, {}, never, never, true, never>;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
declare const ANIMATED_IF_TOKEN: InjectionToken<AnimatedIfDirective>;
|
|
40
|
+
declare class AnimatedIfDirective {
|
|
41
|
+
private templateRef;
|
|
42
|
+
private viewContainerRef;
|
|
43
|
+
private animatedLifecycle;
|
|
44
|
+
private hasView;
|
|
45
|
+
ifValue: _angular_core.InputSignal<unknown>;
|
|
46
|
+
constructor();
|
|
47
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AnimatedIfDirective, never>;
|
|
48
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<AnimatedIfDirective, "[etAnimatedIf]", never, { "ifValue": { "alias": "etAnimatedIf"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
declare const ANIMATED_LIFECYCLE_TOKEN: InjectionToken<AnimatedLifecycleDirective>;
|
|
52
|
+
type AnimatedLifecycleState = 'entering' | 'entered' | 'leaving' | 'left' | 'init';
|
|
53
|
+
declare class AnimatedLifecycleDirective implements AfterViewInit {
|
|
54
|
+
private destroyRef;
|
|
55
|
+
private cancelCurrentAnimation$;
|
|
56
|
+
private elementRef;
|
|
57
|
+
private animatable;
|
|
58
|
+
private renderer;
|
|
59
|
+
private element;
|
|
60
|
+
private isConstructed;
|
|
61
|
+
private transitionIdCounter;
|
|
62
|
+
private forcedAtFrameId;
|
|
63
|
+
private currentFrameId;
|
|
64
|
+
state$: BehaviorSubject<AnimatedLifecycleState>;
|
|
65
|
+
stateChange: _angular_core.OutputRef<AnimatedLifecycleState>;
|
|
66
|
+
skipNextEnter: _angular_core.ModelSignal<boolean>;
|
|
67
|
+
constructor();
|
|
68
|
+
private trackFrameId;
|
|
69
|
+
ngAfterViewInit(): void;
|
|
70
|
+
enter(): void;
|
|
71
|
+
leave(): void;
|
|
72
|
+
forceEnteredState(): void;
|
|
73
|
+
forceLeftState(): void;
|
|
74
|
+
private handleNormalTransition;
|
|
75
|
+
private handleInterruptedTransition;
|
|
76
|
+
private addClass;
|
|
77
|
+
private removeClass;
|
|
78
|
+
private removeClasses;
|
|
79
|
+
private updateState;
|
|
80
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AnimatedLifecycleDirective, never>;
|
|
81
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<AnimatedLifecycleDirective, "[etAnimatedLifecycle]", ["etAnimatedLifecycle"], { "skipNextEnter": { "alias": "skipNextEnter"; "required": false; "isSignal": true; }; }, { "stateChange": "stateChange"; "skipNextEnter": "skipNextEnterChange"; }, never, never, true, [{ directive: typeof AnimatableDirective; inputs: {}; outputs: {}; }]>;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
type ThemeRGBColor = `${number} ${number} ${number}`;
|
|
85
|
+
type ThemeHSLColor = `${number} ${number}% ${number}%`;
|
|
86
|
+
type ThemeColor = ThemeRGBColor | ThemeHSLColor;
|
|
87
|
+
type ThemeColorMap = {
|
|
88
|
+
default: ThemeColor;
|
|
89
|
+
hover: ThemeColor;
|
|
90
|
+
focus?: ThemeColor;
|
|
91
|
+
active: ThemeColor;
|
|
92
|
+
disabled: ThemeColor;
|
|
93
|
+
};
|
|
94
|
+
type OnThemeColorMap = {
|
|
95
|
+
default: ThemeColor;
|
|
96
|
+
hover?: ThemeColor;
|
|
97
|
+
focus?: ThemeColor;
|
|
98
|
+
active?: ThemeColor;
|
|
99
|
+
disabled?: ThemeColor;
|
|
100
|
+
};
|
|
101
|
+
type ThemeSwatch = {
|
|
102
|
+
color: ThemeColorMap;
|
|
103
|
+
onColor: OnThemeColorMap;
|
|
104
|
+
};
|
|
105
|
+
type Theme = {
|
|
106
|
+
name: string;
|
|
107
|
+
isDefault?: boolean;
|
|
108
|
+
isDefaultAlt?: boolean;
|
|
109
|
+
primary: ThemeSwatch;
|
|
110
|
+
secondary?: ThemeSwatch;
|
|
111
|
+
tertiary?: ThemeSwatch;
|
|
112
|
+
};
|
|
113
|
+
declare const createCssThemeName: (name: string) => string;
|
|
114
|
+
declare const ɵProvideColorThemes: (valueOverride?: (string | undefined)[] | undefined) => _angular_core.Provider[];
|
|
115
|
+
declare const injectColorThemes: {
|
|
116
|
+
(): string[];
|
|
117
|
+
(options: _angular_core.InjectOptions & {
|
|
118
|
+
optional?: false;
|
|
119
|
+
}): string[];
|
|
120
|
+
(options: _angular_core.InjectOptions): string[] | null;
|
|
121
|
+
};
|
|
122
|
+
declare const ɵProvideThemesPrefix: (valueOverride?: string | undefined) => _angular_core.Provider[];
|
|
123
|
+
declare const injectThemesPrefix: {
|
|
124
|
+
(): string;
|
|
125
|
+
(options: _angular_core.InjectOptions & {
|
|
126
|
+
optional?: false;
|
|
127
|
+
}): string;
|
|
128
|
+
(options: _angular_core.InjectOptions): string | null;
|
|
129
|
+
};
|
|
130
|
+
declare const provideColorThemesWithTailwind4: (themes: Theme[], prefix?: string) => _angular_core.Provider[][];
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* @deprecated Migrate to Tailwind v4. Intent to remove in v6.
|
|
134
|
+
*/
|
|
135
|
+
declare const createSwatchCss: (swatch: string, isAlt: boolean, data: ThemeSwatch) => string;
|
|
136
|
+
/**
|
|
137
|
+
* @deprecated Migrate to Tailwind v4. Intent to remove in v6.
|
|
138
|
+
*/
|
|
139
|
+
declare const createRootThemeCss: (themes: Theme[]) => void;
|
|
140
|
+
/**
|
|
141
|
+
* @deprecated Migrate to Tailwind v4. Intent to remove in v6.
|
|
142
|
+
*/
|
|
143
|
+
declare const createThemeStyle: (theme: Theme, isAlt: boolean) => void;
|
|
144
|
+
/**
|
|
145
|
+
* @deprecated Migrate to Tailwind v4. Intent to remove in v6.
|
|
146
|
+
*/
|
|
147
|
+
declare const createTailwindCssVar: (name: string | undefined) => string | null;
|
|
148
|
+
/**
|
|
149
|
+
* @deprecated Migrate to Tailwind v4. Intent to remove in v6.
|
|
150
|
+
*/
|
|
151
|
+
declare const createTailwindRgbVar: (val: string | undefined) => string | null;
|
|
152
|
+
/**
|
|
153
|
+
* @deprecated Migrate to Tailwind v4. Intent to remove in v6.
|
|
154
|
+
*/
|
|
155
|
+
declare const createTailwindColorThemes: (themes: Theme[], prefix?: string) => Record<string, {
|
|
156
|
+
DEFAULT: string;
|
|
157
|
+
hover: string;
|
|
158
|
+
focus: string;
|
|
159
|
+
active: string;
|
|
160
|
+
disabled: string;
|
|
161
|
+
}>;
|
|
162
|
+
/**
|
|
163
|
+
* @deprecated Use provideColorThemesWithTailwind4 instead after migrating to Tailwind CSS v4. Intent to remove in v6.
|
|
164
|
+
*/
|
|
165
|
+
declare const provideColorThemes: (themes: Theme[]) => _angular_core.Provider[][];
|
|
166
|
+
|
|
167
|
+
declare const THEME_PROVIDER: InjectionToken<ProvideThemeDirective>;
|
|
168
|
+
declare class ProvideThemeDirective {
|
|
169
|
+
private themes;
|
|
170
|
+
private prefix;
|
|
171
|
+
private injector;
|
|
172
|
+
private currentProviderSync;
|
|
173
|
+
mainTheme: _angular_core.InputSignal<string | null | undefined>;
|
|
174
|
+
altTheme: _angular_core.InputSignal<string | null | undefined>;
|
|
175
|
+
mainThemeName: _angular_core.Signal<string | undefined>;
|
|
176
|
+
altThemeName: _angular_core.Signal<string | undefined>;
|
|
177
|
+
protected themeClass: _angular_core.Signal<string>;
|
|
178
|
+
syncWithProvider(provider: ProvideThemeDirective): void;
|
|
179
|
+
stopSyncWithProvider(): void;
|
|
180
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ProvideThemeDirective, never>;
|
|
181
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ProvideThemeDirective, "[etProvideTheme]", never, { "mainTheme": { "alias": "etProvideTheme"; "required": false; "isSignal": true; }; "altTheme": { "alias": "etProvideAltTheme"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
182
|
+
}
|
|
183
|
+
|
|
184
|
+
type AnimatedOverlayComponentBase = {
|
|
185
|
+
animatedLifecycle: Signal<AnimatedLifecycleDirective | undefined>;
|
|
186
|
+
setThemeFromProvider: (provider: ProvideThemeDirective) => void;
|
|
187
|
+
};
|
|
188
|
+
type AnimatedOverlayMountConfig<T> = {
|
|
189
|
+
component: ComponentType<T>;
|
|
190
|
+
providers?: StaticProvider[];
|
|
191
|
+
data?: Partial<T>;
|
|
192
|
+
themeProvider?: ProvideThemeDirective | null;
|
|
193
|
+
};
|
|
194
|
+
type AnimatedOverlayState = 'init' | 'mounting' | 'mounted' | 'unmounting' | 'unmounted';
|
|
195
|
+
declare class AnimatedOverlayDirective<T extends AnimatedOverlayComponentBase> {
|
|
196
|
+
private overlayService;
|
|
197
|
+
private injector;
|
|
198
|
+
private viewContainerRef;
|
|
199
|
+
private zone;
|
|
200
|
+
private elementRef;
|
|
201
|
+
private rootBoundary;
|
|
202
|
+
private destroyRef;
|
|
203
|
+
private floatingElCleanupFn;
|
|
204
|
+
private unmountSubscription;
|
|
205
|
+
placement: _angular_core.InputSignal<Placement | undefined>;
|
|
206
|
+
fallbackPlacements: _angular_core.InputSignal<Placement[] | undefined>;
|
|
207
|
+
offset: _angular_core.InputSignal<OffsetOptions | null>;
|
|
208
|
+
arrowPadding: _angular_core.InputSignal<Padding | null>;
|
|
209
|
+
viewportPadding: _angular_core.InputSignal<Padding | null>;
|
|
210
|
+
autoResize: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
211
|
+
shift: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
212
|
+
autoHide: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
213
|
+
autoCloseIfReferenceHidden: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
214
|
+
referenceElement: _angular_core.InputSignal<HTMLElement>;
|
|
215
|
+
mirrorWidth: _angular_core.InputSignalWithTransform<boolean, unknown>;
|
|
216
|
+
portal: ComponentPortal<T> | null;
|
|
217
|
+
overlayRef: OverlayRef | null;
|
|
218
|
+
componentRef: ComponentRef<T> | null;
|
|
219
|
+
beforeOpened$: Subject<void>;
|
|
220
|
+
afterOpened$: Subject<void>;
|
|
221
|
+
beforeClosed$: Subject<void>;
|
|
222
|
+
afterClosed$: Subject<void>;
|
|
223
|
+
state: _angular_core.WritableSignal<AnimatedOverlayState>;
|
|
224
|
+
isMounted: Signal<boolean>;
|
|
225
|
+
isMounting: Signal<boolean>;
|
|
226
|
+
isUnmounted: Signal<boolean>;
|
|
227
|
+
isUnmounting: Signal<boolean>;
|
|
228
|
+
canMount: Signal<boolean>;
|
|
229
|
+
canUnmount: Signal<boolean>;
|
|
230
|
+
isHidden: _angular_core.WritableSignal<boolean>;
|
|
231
|
+
isMounted$: rxjs.Observable<boolean>;
|
|
232
|
+
isMounting$: rxjs.Observable<boolean>;
|
|
233
|
+
isUnmounted$: rxjs.Observable<boolean>;
|
|
234
|
+
isUnmounting$: rxjs.Observable<boolean>;
|
|
235
|
+
canMount$: rxjs.Observable<boolean>;
|
|
236
|
+
canUnmount$: rxjs.Observable<boolean>;
|
|
237
|
+
isHidden$: rxjs.Observable<boolean>;
|
|
238
|
+
referenceElementDimensions: Signal<_ethlete_core.NullableElementDimensions>;
|
|
239
|
+
constructor();
|
|
240
|
+
mount(config: AnimatedOverlayMountConfig<T>): T | undefined;
|
|
241
|
+
unmount(): void;
|
|
242
|
+
private applyComponentData;
|
|
243
|
+
private applyThemeProvider;
|
|
244
|
+
private updateOverlaySize;
|
|
245
|
+
private setupFloatingUI;
|
|
246
|
+
private getFloatingArrow;
|
|
247
|
+
private updateFloatingPosition;
|
|
248
|
+
private buildFloatingMiddleware;
|
|
249
|
+
private applyFloatingStyles;
|
|
250
|
+
private applyArrowStyles;
|
|
251
|
+
private handleReferenceHidden;
|
|
252
|
+
private waitForRenderAndAnimate;
|
|
253
|
+
private destroy;
|
|
254
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AnimatedOverlayDirective<any>, never>;
|
|
255
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<AnimatedOverlayDirective<any>, "[etAnimatedOverlay]", ["etAnimatedOverlay"], { "placement": { "alias": "placement"; "required": false; "isSignal": true; }; "fallbackPlacements": { "alias": "fallbackPlacements"; "required": false; "isSignal": true; }; "offset": { "alias": "offset"; "required": false; "isSignal": true; }; "arrowPadding": { "alias": "arrowPadding"; "required": false; "isSignal": true; }; "viewportPadding": { "alias": "viewportPadding"; "required": false; "isSignal": true; }; "autoResize": { "alias": "autoResize"; "required": false; "isSignal": true; }; "shift": { "alias": "shift"; "required": false; "isSignal": true; }; "autoHide": { "alias": "autoHide"; "required": false; "isSignal": true; }; "autoCloseIfReferenceHidden": { "alias": "autoCloseIfReferenceHidden"; "required": false; "isSignal": true; }; "referenceElement": { "alias": "referenceElement"; "required": false; "isSignal": true; }; "mirrorWidth": { "alias": "mirrorWidth"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
declare const nextFrame: (cb: () => void) => void;
|
|
259
|
+
declare const fromNextFrame: () => Observable<void>;
|
|
260
|
+
declare const forceReflow: (element?: HTMLElement) => number;
|
|
261
|
+
|
|
262
|
+
type FlipAnimationGroupConfig = {
|
|
263
|
+
/**
|
|
264
|
+
* The elements to animate
|
|
265
|
+
*/
|
|
266
|
+
elements: Array<HTMLElement | {
|
|
267
|
+
element: HTMLElement;
|
|
268
|
+
originElement?: HTMLElement;
|
|
269
|
+
}>;
|
|
270
|
+
/**
|
|
271
|
+
* The duration of the animation in milliseconds
|
|
272
|
+
* @default 250
|
|
273
|
+
*/
|
|
274
|
+
duration?: number;
|
|
275
|
+
/**
|
|
276
|
+
* The easing function to use for the animation
|
|
277
|
+
* @default 'cubic-bezier(0.4, 0, 0.2, 1)'
|
|
278
|
+
*/
|
|
279
|
+
easing?: string;
|
|
280
|
+
};
|
|
281
|
+
declare const createFlipAnimationGroup: (config: FlipAnimationGroupConfig) => {
|
|
282
|
+
updateInit: () => void;
|
|
283
|
+
play: () => void;
|
|
284
|
+
cancel: () => void;
|
|
285
|
+
onStart$: rxjs.Observable<void[]>;
|
|
286
|
+
onFinish$: rxjs.Observable<void[]>;
|
|
287
|
+
onCancel$: rxjs.Observable<void[]>;
|
|
288
|
+
};
|
|
289
|
+
type FlipAnimationConfig = {
|
|
290
|
+
/**
|
|
291
|
+
* The element to animate
|
|
292
|
+
*/
|
|
293
|
+
element: HTMLElement;
|
|
294
|
+
/**
|
|
295
|
+
* The element to use as the origin for the animation
|
|
296
|
+
* @default element
|
|
297
|
+
*/
|
|
298
|
+
originElement?: HTMLElement;
|
|
299
|
+
/**
|
|
300
|
+
* The duration of the animation in milliseconds
|
|
301
|
+
* @default 250
|
|
302
|
+
*/
|
|
303
|
+
duration?: number;
|
|
304
|
+
/**
|
|
305
|
+
* The easing function to use for the animation
|
|
306
|
+
* @default 'cubic-bezier(0.4, 0, 0.2, 1)'
|
|
307
|
+
*/
|
|
308
|
+
easing?: string;
|
|
309
|
+
};
|
|
310
|
+
declare const createFlipAnimation: (config: FlipAnimationConfig) => {
|
|
311
|
+
updateInit: () => void;
|
|
312
|
+
play: () => void;
|
|
313
|
+
cancel: () => void;
|
|
314
|
+
onStart$: rxjs.Observable<void>;
|
|
315
|
+
onFinish$: rxjs.Observable<void>;
|
|
316
|
+
onCancel$: rxjs.Observable<void>;
|
|
317
|
+
};
|
|
318
|
+
|
|
319
|
+
declare class ClickOutsideDirective {
|
|
320
|
+
private elementRef;
|
|
321
|
+
private document;
|
|
322
|
+
didClickOutside: _angular_core.OutputEmitterRef<MouseEvent>;
|
|
323
|
+
constructor();
|
|
324
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ClickOutsideDirective, never>;
|
|
325
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ClickOutsideDirective, "[etClickOutside]", never, {}, { "didClickOutside": "etClickOutside"; }, never, never, true, never>;
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
declare class RepeatDirective {
|
|
329
|
+
private mainTemplateRef;
|
|
330
|
+
private viewContainerRef;
|
|
331
|
+
repeatCount: _angular_core.InputSignalWithTransform<number, unknown>;
|
|
332
|
+
views: _angular_core.WritableSignal<EmbeddedViewRef<unknown>[]>;
|
|
333
|
+
constructor();
|
|
334
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RepeatDirective, never>;
|
|
335
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<RepeatDirective, "[etRepeat]", never, { "repeatCount": { "alias": "etRepeat"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
336
|
+
}
|
|
337
|
+
|
|
338
|
+
declare const createComponentId: (prefix: string) => string;
|
|
339
|
+
|
|
340
|
+
declare const createDestroy: () => rxjs.Observable<boolean>;
|
|
341
|
+
|
|
342
|
+
declare const injectHostElement: <T = HTMLElement>() => T;
|
|
343
|
+
declare const injectTemplateRef: <C = unknown>() => TemplateRef<C>;
|
|
344
|
+
type CreateProviderOptions = {
|
|
345
|
+
/**
|
|
346
|
+
* Optional name for the provider, useful for debugging.
|
|
347
|
+
* If not provided, the name will be a generated string.
|
|
348
|
+
*/
|
|
349
|
+
name?: string;
|
|
350
|
+
/**
|
|
351
|
+
* Optional existing InjectionToken to also provide the created provider under.
|
|
352
|
+
*/
|
|
353
|
+
extraInjectionToken?: InjectionToken<unknown>;
|
|
354
|
+
};
|
|
355
|
+
type ProviderResult<T> = readonly [
|
|
356
|
+
provide: () => Provider[],
|
|
357
|
+
inject: {
|
|
358
|
+
(): T;
|
|
359
|
+
(options: InjectOptions & {
|
|
360
|
+
optional?: false;
|
|
361
|
+
}): T;
|
|
362
|
+
(options: InjectOptions): T | null;
|
|
363
|
+
},
|
|
364
|
+
token: InjectionToken<T>
|
|
365
|
+
];
|
|
366
|
+
type StaticProviderResult<T> = readonly [
|
|
367
|
+
provide: (valueOverride?: Partial<T>) => Provider[],
|
|
368
|
+
inject: {
|
|
369
|
+
(): T;
|
|
370
|
+
(options: InjectOptions & {
|
|
371
|
+
optional?: false;
|
|
372
|
+
}): T;
|
|
373
|
+
(options: InjectOptions): T | null;
|
|
374
|
+
},
|
|
375
|
+
token: InjectionToken<T>
|
|
376
|
+
];
|
|
377
|
+
type RootProviderResult<T> = readonly [
|
|
378
|
+
inject: {
|
|
379
|
+
(): T;
|
|
380
|
+
(options: InjectOptions & {
|
|
381
|
+
optional?: false;
|
|
382
|
+
}): T;
|
|
383
|
+
(options: InjectOptions): T | null;
|
|
384
|
+
},
|
|
385
|
+
token: InjectionToken<T>
|
|
386
|
+
];
|
|
387
|
+
declare const createProvider: <T>(factory: () => T, options?: CreateProviderOptions) => ProviderResult<T>;
|
|
388
|
+
declare const createRootProvider: <T>(factory: () => T, options?: CreateProviderOptions) => ProviderResult<T>;
|
|
389
|
+
declare const createStaticProvider: <T>(defaultValue?: T, options?: CreateProviderOptions) => StaticProviderResult<T>;
|
|
390
|
+
declare const createStaticRootProvider: <T>(defaultValue?: T, options?: CreateProviderOptions) => StaticProviderResult<T>;
|
|
391
|
+
|
|
392
|
+
declare const cloneFormGroup: <T extends FormGroup<any>>(formGroup: T) => T;
|
|
393
|
+
declare const getFormGroupValue: <T extends FormGroup>(formGroup: T) => Record<string, unknown>;
|
|
394
|
+
|
|
395
|
+
declare const createRxHostListener: <K extends keyof HTMLElementEventMap>(eventName: K, options?: EventListenerOptions) => rxjs.Observable<HTMLElementEventMap[K]>;
|
|
396
|
+
declare const applyHostListener: <K extends keyof HTMLElementEventMap>(eventName: K, handler: (event: HTMLElementEventMap[K]) => void, options?: EventListenerOptions) => rxjs.Subscription;
|
|
397
|
+
declare const applyHostListeners: (listeners: Partial<{ [K in keyof HTMLElementEventMap]: (event: HTMLElementEventMap[K]) => void; }>, options?: EventListenerOptions) => void;
|
|
398
|
+
|
|
399
|
+
declare class TypedQueryList<T> extends QueryList<T> {
|
|
400
|
+
get changes(): Observable<TypedQueryList<T>>;
|
|
401
|
+
}
|
|
402
|
+
declare function switchQueryListChanges(): <T extends TypedQueryList<unknown> | null | undefined>(source: Observable<T>) => Observable<T>;
|
|
403
|
+
|
|
404
|
+
/**
|
|
405
|
+
* Sets the value of an input signal.
|
|
406
|
+
* See issue: https://github.com/angular/angular/issues/54782
|
|
407
|
+
*/
|
|
408
|
+
declare const setInputSignal: <T>(input: InputSignal<T> | InputSignalWithTransform<T, unknown>, value: T) => void;
|
|
409
|
+
|
|
410
|
+
type NgClassType = string | string[] | Set<string> | {
|
|
411
|
+
[klass: string]: any;
|
|
412
|
+
} | null | undefined;
|
|
413
|
+
|
|
414
|
+
declare const AT_LEAST_ONE_REQUIRED = "atLeastOneRequired";
|
|
415
|
+
type ValidateAtLeastOneRequiredConfig = {
|
|
416
|
+
/**
|
|
417
|
+
* Keys of form controls to validate in the supplied form group
|
|
418
|
+
*/
|
|
419
|
+
keys: string[];
|
|
420
|
+
/**
|
|
421
|
+
* If true, the value `false` will result in a validation error
|
|
422
|
+
* @default false
|
|
423
|
+
*/
|
|
424
|
+
checkFalse?: boolean;
|
|
425
|
+
};
|
|
426
|
+
declare const ValidateAtLeastOneRequired: (config: ValidateAtLeastOneRequiredConfig) => ValidatorFn;
|
|
427
|
+
declare const IS_ARRAY_NOT_EMPTY = "isArrayNotEmpty";
|
|
428
|
+
declare const IsArrayNotEmpty: (control: AbstractControl) => ValidationErrors | null;
|
|
429
|
+
declare const IS_EMAIL = "isEmail";
|
|
430
|
+
declare const IsEmail: (control: AbstractControl) => ValidationErrors | null;
|
|
431
|
+
declare const MUST_MATCH = "mustMatch";
|
|
432
|
+
declare const MustMatch: (controlName: string, matchingControlName: string) => (formGroup: AbstractControl) => {
|
|
433
|
+
mustMatch: boolean;
|
|
434
|
+
} | null;
|
|
435
|
+
declare const Validators: {
|
|
436
|
+
readonly MustMatch: (controlName: string, matchingControlName: string) => (formGroup: AbstractControl) => {
|
|
437
|
+
mustMatch: boolean;
|
|
438
|
+
} | null;
|
|
439
|
+
readonly IsEmail: (control: AbstractControl) => ValidationErrors | null;
|
|
440
|
+
readonly IsArrayNotEmpty: (control: AbstractControl) => ValidationErrors | null;
|
|
441
|
+
readonly ValidateAtLeastOneRequired: (config: ValidateAtLeastOneRequiredConfig) => ValidatorFn;
|
|
442
|
+
};
|
|
443
|
+
|
|
444
|
+
declare const clone: <T>(original: T) => T;
|
|
445
|
+
declare const equal: (foo: any, bar: any) => boolean;
|
|
446
|
+
|
|
447
|
+
declare const hasCookie: (name: string) => boolean;
|
|
448
|
+
declare const getCookie: (name: string) => string | null | undefined;
|
|
449
|
+
declare const setCookie: (name: string, data: string, expiresInDays?: number | null, domain?: string | null, path?: string, sameSite?: "strict" | "none" | "lax") => void;
|
|
450
|
+
declare const deleteCookie: (name: string, path?: string, domain?: string | null) => void;
|
|
451
|
+
declare const getDomain: () => string | null;
|
|
452
|
+
|
|
453
|
+
type Translatable = {
|
|
454
|
+
i18n: string;
|
|
455
|
+
text: string;
|
|
456
|
+
};
|
|
457
|
+
|
|
458
|
+
declare class KeyPressManager {
|
|
459
|
+
readonly key: number;
|
|
460
|
+
private readonly _isKeyPressed$;
|
|
461
|
+
private readonly _keyPressCount$;
|
|
462
|
+
private readonly _stopTimeout$;
|
|
463
|
+
constructor(key: number);
|
|
464
|
+
isPressed(event: KeyboardEvent): boolean;
|
|
465
|
+
clear(): void;
|
|
466
|
+
}
|
|
467
|
+
|
|
468
|
+
declare const DISABLE_LOGGER_PARAM = "et-logger-quiet";
|
|
469
|
+
type CreateLoggerConfig = {
|
|
470
|
+
scope: string;
|
|
471
|
+
feature: string;
|
|
472
|
+
};
|
|
473
|
+
declare const createLogger: (config: CreateLoggerConfig) => {
|
|
474
|
+
log: (...args: unknown[]) => void;
|
|
475
|
+
warn: (...args: unknown[]) => void;
|
|
476
|
+
error: (...args: unknown[]) => void;
|
|
477
|
+
};
|
|
478
|
+
|
|
479
|
+
declare const clamp: (value: number, min?: number, max?: number) => number;
|
|
480
|
+
declare const round: (value: number, precision?: number) => number;
|
|
481
|
+
|
|
482
|
+
declare const isObject: (value: unknown) => value is Record<string, unknown>;
|
|
483
|
+
declare const isArray: (value: unknown) => value is unknown[];
|
|
484
|
+
declare const getObjectProperty: (obj: Record<string, unknown>, prop: string) => unknown;
|
|
485
|
+
|
|
486
|
+
declare const RUNTIME_ERROR_NO_DATA = "__ET_NO_DATA__";
|
|
487
|
+
declare class RuntimeError<T extends number> extends Error {
|
|
488
|
+
code: T;
|
|
489
|
+
devOnly: boolean;
|
|
490
|
+
data: unknown;
|
|
491
|
+
constructor(code: T, message: null | false | string, devOnly?: boolean, data?: unknown);
|
|
492
|
+
}
|
|
493
|
+
declare function formatRuntimeError<T extends number>(code: T, message: null | false | string, devOnly: boolean): string;
|
|
494
|
+
|
|
495
|
+
/**
|
|
496
|
+
* Checks if an element or the viewport can scroll in a given direction.
|
|
497
|
+
* @param element The element to check. If null/undefined, checks if the viewport can scroll.
|
|
498
|
+
* @param direction The direction to check. If not provided, checks both directions.
|
|
499
|
+
* @returns true if the element or viewport can scroll in the given direction.
|
|
500
|
+
*/
|
|
501
|
+
declare const elementCanScroll: (element?: HTMLElement | null, direction?: "x" | "y") => boolean;
|
|
502
|
+
type IsElementVisibleOptions = {
|
|
503
|
+
/**
|
|
504
|
+
* The element to check if it is visible inside a container.
|
|
505
|
+
*/
|
|
506
|
+
element?: HTMLElement | null;
|
|
507
|
+
/**
|
|
508
|
+
* The container to check if the element is visible inside.
|
|
509
|
+
* If null or undefined, uses the viewport as the container.
|
|
510
|
+
* @default null (viewport)
|
|
511
|
+
*/
|
|
512
|
+
container?: HTMLElement | null;
|
|
513
|
+
/**
|
|
514
|
+
* The container's rect to check if the element is visible inside. Can be supplied to reduce the amount of DOM reads.
|
|
515
|
+
* Only used when container is provided and not null.
|
|
516
|
+
* @default container.getBoundingClientRect()
|
|
517
|
+
*/
|
|
518
|
+
containerRect?: DOMRect | null;
|
|
519
|
+
/**
|
|
520
|
+
* The element's rect. Can be supplied to reduce the amount of DOM reads.
|
|
521
|
+
* @default element.getBoundingClientRect()
|
|
522
|
+
*/
|
|
523
|
+
elementRect?: DOMRect | null;
|
|
524
|
+
};
|
|
525
|
+
type CurrentElementVisibility = {
|
|
526
|
+
/**
|
|
527
|
+
* Whether the element is visible in the inline direction.
|
|
528
|
+
*/
|
|
529
|
+
inline: boolean;
|
|
530
|
+
/**
|
|
531
|
+
* Whether the element is visible in the block direction.
|
|
532
|
+
*/
|
|
533
|
+
block: boolean;
|
|
534
|
+
/**
|
|
535
|
+
* The percentage of the element that is visible in the inline direction.
|
|
536
|
+
*/
|
|
537
|
+
inlineIntersection: number;
|
|
538
|
+
/**
|
|
539
|
+
* The percentage of the element that is visible in the block direction.
|
|
540
|
+
*/
|
|
541
|
+
blockIntersection: number;
|
|
542
|
+
/**
|
|
543
|
+
* Whether the element is intersecting the container.
|
|
544
|
+
*/
|
|
545
|
+
isIntersecting: boolean;
|
|
546
|
+
/**
|
|
547
|
+
* The ratio of the element that is intersecting the container.
|
|
548
|
+
*/
|
|
549
|
+
intersectionRatio: number;
|
|
550
|
+
/**
|
|
551
|
+
* The element that is being checked for visibility.
|
|
552
|
+
*/
|
|
553
|
+
element: HTMLElement;
|
|
554
|
+
/**
|
|
555
|
+
* The container's rect used for the calculation.
|
|
556
|
+
*/
|
|
557
|
+
containerRect: DOMRect;
|
|
558
|
+
/**
|
|
559
|
+
* The element's rect used for the calculation.
|
|
560
|
+
*/
|
|
561
|
+
elementRect: DOMRect;
|
|
562
|
+
};
|
|
563
|
+
declare const isElementVisible: (options: IsElementVisibleOptions) => CurrentElementVisibility | null;
|
|
564
|
+
declare const getElementScrollCoordinates: (options: ScrollToElementOptions) => ScrollToOptions;
|
|
565
|
+
type ScrollToElementOptions = {
|
|
566
|
+
/**
|
|
567
|
+
* The element to scroll to.
|
|
568
|
+
*/
|
|
569
|
+
element?: HTMLElement | null;
|
|
570
|
+
/**
|
|
571
|
+
* The scroll container to scroll to the element in.
|
|
572
|
+
* Must be provided - cannot scroll the viewport programmatically with this function.
|
|
573
|
+
*/
|
|
574
|
+
container?: HTMLElement | null;
|
|
575
|
+
/**
|
|
576
|
+
* The direction to scroll in.
|
|
577
|
+
* @default 'both'
|
|
578
|
+
*/
|
|
579
|
+
direction?: 'inline' | 'block' | 'both';
|
|
580
|
+
/**
|
|
581
|
+
* The origin of the element to scroll to.
|
|
582
|
+
* @default 'nearest'
|
|
583
|
+
*/
|
|
584
|
+
origin?: 'start' | 'end' | 'center' | 'nearest';
|
|
585
|
+
/**
|
|
586
|
+
* The scroll behavior.
|
|
587
|
+
* @default 'smooth'
|
|
588
|
+
*/
|
|
589
|
+
behavior?: ScrollBehavior;
|
|
590
|
+
/**
|
|
591
|
+
* The scroll inline-margin
|
|
592
|
+
* @default 0
|
|
593
|
+
*/
|
|
594
|
+
scrollInlineMargin?: number;
|
|
595
|
+
/**
|
|
596
|
+
* The scroll block-margin
|
|
597
|
+
* @default 0
|
|
598
|
+
*/
|
|
599
|
+
scrollBlockMargin?: number;
|
|
600
|
+
};
|
|
601
|
+
declare const scrollToElement: (options: ScrollToElementOptions) => void;
|
|
602
|
+
|
|
603
|
+
declare class NormalizeGameResultTypePipe implements PipeTransform {
|
|
604
|
+
transform: (type: string | null) => NormalizedGameResultType | null;
|
|
605
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NormalizeGameResultTypePipe, never>;
|
|
606
|
+
static ɵpipe: _angular_core.ɵɵPipeDeclaration<NormalizeGameResultTypePipe, "etNormalizeGameResultType", true>;
|
|
607
|
+
}
|
|
608
|
+
type NormalizedGameResultType = Translatable & {
|
|
609
|
+
shortCode: string;
|
|
610
|
+
};
|
|
611
|
+
declare const normalizeGameResultType: (type: string | null) => NormalizedGameResultType | null;
|
|
612
|
+
|
|
613
|
+
declare class NormalizeMatchParticipantsPipe implements PipeTransform {
|
|
614
|
+
transform: (match: MatchListView | null) => NormalizedMatchParticipants | null;
|
|
615
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NormalizeMatchParticipantsPipe, never>;
|
|
616
|
+
static ɵpipe: _angular_core.ɵɵPipeDeclaration<NormalizeMatchParticipantsPipe, "etNormalizeMatchParticipants", true>;
|
|
617
|
+
}
|
|
618
|
+
type NormalizedMatchParticipants = {
|
|
619
|
+
home: NormalizedMatchParticipant | null;
|
|
620
|
+
away: NormalizedMatchParticipant | null;
|
|
621
|
+
};
|
|
622
|
+
type NormalizedParticipantType = 'team' | 'player' | 'unknown';
|
|
623
|
+
type NormalizedMatchParticipant = ({
|
|
624
|
+
type: 'tbd';
|
|
625
|
+
participantType: NormalizedParticipantType;
|
|
626
|
+
data: ParticipantViewUnion | null;
|
|
627
|
+
} & Translatable) | {
|
|
628
|
+
type: 'participant';
|
|
629
|
+
participantType: NormalizedParticipantType;
|
|
630
|
+
data: ParticipantViewUnion;
|
|
631
|
+
} | ({
|
|
632
|
+
type: 'none';
|
|
633
|
+
participantType: NormalizedParticipantType;
|
|
634
|
+
data: ParticipantViewUnion | null;
|
|
635
|
+
} & Translatable);
|
|
636
|
+
declare const normalizeMatchParticipants: (match: MatchListView | null) => NormalizedMatchParticipants | null;
|
|
637
|
+
declare const normalizeMatchParticipant: (match: MatchListView | null, side: "home" | "away") => NormalizedMatchParticipant | null;
|
|
638
|
+
|
|
639
|
+
declare class NormalizeMatchScorePipe implements PipeTransform {
|
|
640
|
+
transform: (match: MatchListView | null | undefined) => NormalizedMatchScore | null;
|
|
641
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NormalizeMatchScorePipe, never>;
|
|
642
|
+
static ɵpipe: _angular_core.ɵɵPipeDeclaration<NormalizeMatchScorePipe, "etNormalizeMatchScore", true>;
|
|
643
|
+
}
|
|
644
|
+
declare const enum MatchStateType {
|
|
645
|
+
PREPARING_ROUND = "preparingRound",
|
|
646
|
+
PRE_MATCH = "preMatch",
|
|
647
|
+
LIVE = "live",
|
|
648
|
+
POST_MATCH = "postMatch",
|
|
649
|
+
AUTO_WIN = "autoWin"
|
|
650
|
+
}
|
|
651
|
+
type NormalizedMatchScore = {
|
|
652
|
+
home: {
|
|
653
|
+
score: string | number | null;
|
|
654
|
+
isWinner: boolean;
|
|
655
|
+
};
|
|
656
|
+
away: {
|
|
657
|
+
score: string | number | null;
|
|
658
|
+
isWinner: boolean;
|
|
659
|
+
};
|
|
660
|
+
subLine: string | null;
|
|
661
|
+
isNumeric: boolean;
|
|
662
|
+
};
|
|
663
|
+
declare const normalizeMatchScore: (match: MatchListView | null | undefined) => NormalizedMatchScore | null;
|
|
664
|
+
declare const isKnockoutMatch: (match: MatchListView | null | undefined) => boolean;
|
|
665
|
+
declare const isGroupMatch: (match: MatchListView | null | undefined) => boolean;
|
|
666
|
+
declare const getKnockoutMatchScore: (score: MatchRankingView | null | undefined) => "match-score.knockout.won" | "match-score.knockout.lost" | "match-score.knockout.tie" | null;
|
|
667
|
+
declare const getMatchScoreSubLine: (match: MatchListView | null | undefined) => "match-score.groups.sub-line" | null;
|
|
668
|
+
declare const getGroupMatchScore: (match: MatchListView | null | undefined) => {
|
|
669
|
+
home: {
|
|
670
|
+
score: number;
|
|
671
|
+
isWinner: boolean;
|
|
672
|
+
};
|
|
673
|
+
away: {
|
|
674
|
+
score: number;
|
|
675
|
+
isWinner: boolean;
|
|
676
|
+
};
|
|
677
|
+
} | null;
|
|
678
|
+
declare const getGroupMatchPoints: (match: MatchListView | null | undefined) => {
|
|
679
|
+
home: {
|
|
680
|
+
score: number;
|
|
681
|
+
isWinner: boolean;
|
|
682
|
+
};
|
|
683
|
+
away: {
|
|
684
|
+
score: number;
|
|
685
|
+
isWinner: boolean;
|
|
686
|
+
};
|
|
687
|
+
} | null;
|
|
688
|
+
|
|
689
|
+
declare class NormalizeMatchStatePipe implements PipeTransform {
|
|
690
|
+
transform: (match: MatchListView | null | undefined) => MatchStateType | null;
|
|
691
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NormalizeMatchStatePipe, never>;
|
|
692
|
+
static ɵpipe: _angular_core.ɵɵPipeDeclaration<NormalizeMatchStatePipe, "etNormalizeMatchState", true>;
|
|
693
|
+
}
|
|
694
|
+
declare const normalizeMatchState: (match: MatchListView | null | undefined) => MatchStateType | null;
|
|
695
|
+
|
|
696
|
+
declare class NormalizeMatchTypePipe implements PipeTransform {
|
|
697
|
+
transform: (matchType: StageType | null | undefined) => Translatable | null;
|
|
698
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NormalizeMatchTypePipe, never>;
|
|
699
|
+
static ɵpipe: _angular_core.ɵɵPipeDeclaration<NormalizeMatchTypePipe, "etNormalizeMatchType", true>;
|
|
700
|
+
}
|
|
701
|
+
declare const normalizeMatchType: (matchType: StageType | null | undefined) => Translatable | null;
|
|
702
|
+
|
|
703
|
+
declare class InferMimeTypePipe implements PipeTransform {
|
|
704
|
+
transform: (srcset: string) => "image/avif" | "image/bmp" | "image/gif" | "image/vdn.microsoft.icon" | "image/jpeg" | "image/png" | "image/svg+xml" | "image/tiff" | "image/webp" | "audio/aac" | "application/x-abiword" | "application/x-freearc" | "video/x-msvideo" | "application/vnd.amazon.ebook" | "application/octet-stream" | "application/x-bzip" | "application/x-bzip2" | "application/x-cdf" | "application/x-csh" | "text/css" | "text/csv" | "application/msword" | "application/vnd.openxmlformats-officedocument.wordprocessingml.document" | "application/vnd.ms-fontobject" | "application/epub+zip" | "application/gzip" | "text/html" | "text/calendar" | "application/java-archive" | "text/javascript" | "application/json" | "application/ld+json" | "audio/midi" | "audio/mpeg" | "video/mp4" | "video/mpeg" | "tapplication/vnd.apple.installer+xml" | "application/vnd.oasis.opendocument.presentation" | "application/vnd.oasis.opendocument.spreadsheet" | "application/vnd.oasis.opendocument.text" | "audio/ogg" | "video/ogg" | "application/ogg" | "audio/opus" | "font/otf" | "application/pdf" | "application/x-httpd-php" | "application/vnd.ms-powerpoint" | "application/vnd.openxmlformats-officedocument.presentationml.presentation" | "application/vnd.rar" | "application/rtf" | "application/x-sh" | "application/x-tar" | "video/mp2t" | "font/ttf" | "text/plain" | "application/vnd.visio" | "audio/wav" | "audio/webm" | "video/webm" | "font/woff" | "font/woff2" | "application/xhtml+xml" | "application/vnd.ms-excel" | "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" | "application/xml" | "application/vnd.mozilla.xul+xml" | "application/zip" | "video/3gpp" | "video/3gpp2" | "application/x-7z-compressed" | null;
|
|
705
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<InferMimeTypePipe, never>;
|
|
706
|
+
static ɵpipe: _angular_core.ɵɵPipeDeclaration<InferMimeTypePipe, "inferMimeType", true>;
|
|
707
|
+
}
|
|
708
|
+
/**
|
|
709
|
+
* Infers the mime type of a given url or srcset.
|
|
710
|
+
* If a srcset is provided, it will infer the mime type of the first url in the srcset.
|
|
711
|
+
* If the srcset contains a query parameter `?fm=`, it will use the value of that parameter, since it is often used to specify the file format in image api's like contentful.
|
|
712
|
+
*/
|
|
713
|
+
declare const inferMimeType: (srcset: string) => "image/avif" | "image/bmp" | "image/gif" | "image/vdn.microsoft.icon" | "image/jpeg" | "image/png" | "image/svg+xml" | "image/tiff" | "image/webp" | "audio/aac" | "application/x-abiword" | "application/x-freearc" | "video/x-msvideo" | "application/vnd.amazon.ebook" | "application/octet-stream" | "application/x-bzip" | "application/x-bzip2" | "application/x-cdf" | "application/x-csh" | "text/css" | "text/csv" | "application/msword" | "application/vnd.openxmlformats-officedocument.wordprocessingml.document" | "application/vnd.ms-fontobject" | "application/epub+zip" | "application/gzip" | "text/html" | "text/calendar" | "application/java-archive" | "text/javascript" | "application/json" | "application/ld+json" | "audio/midi" | "audio/mpeg" | "video/mp4" | "video/mpeg" | "tapplication/vnd.apple.installer+xml" | "application/vnd.oasis.opendocument.presentation" | "application/vnd.oasis.opendocument.spreadsheet" | "application/vnd.oasis.opendocument.text" | "audio/ogg" | "video/ogg" | "application/ogg" | "audio/opus" | "font/otf" | "application/pdf" | "application/x-httpd-php" | "application/vnd.ms-powerpoint" | "application/vnd.openxmlformats-officedocument.presentationml.presentation" | "application/vnd.rar" | "application/rtf" | "application/x-sh" | "application/x-tar" | "video/mp2t" | "font/ttf" | "text/plain" | "application/vnd.visio" | "audio/wav" | "audio/webm" | "video/webm" | "font/woff" | "font/woff2" | "application/xhtml+xml" | "application/vnd.ms-excel" | "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" | "application/xml" | "application/vnd.mozilla.xul+xml" | "application/zip" | "video/3gpp" | "video/3gpp2" | "application/x-7z-compressed" | null;
|
|
714
|
+
|
|
715
|
+
declare class ToArrayPipe implements PipeTransform {
|
|
716
|
+
transform: (value: number) => number[];
|
|
717
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ToArrayPipe, never>;
|
|
718
|
+
static ɵpipe: _angular_core.ɵɵPipeDeclaration<ToArrayPipe, "toArray", true>;
|
|
719
|
+
}
|
|
720
|
+
declare const toArray: (value: number) => number[];
|
|
721
|
+
declare const toArrayTrackByFn: TrackByFunction<number>;
|
|
722
|
+
|
|
723
|
+
declare const createPropHandlers: () => {
|
|
724
|
+
classes: {
|
|
725
|
+
remove: (tokens: string) => void;
|
|
726
|
+
removeMany: (tokens: string[]) => void;
|
|
727
|
+
has: (tokens: string) => boolean;
|
|
728
|
+
push: (tokens: string, signal: _angular_core.Signal<unknown>) => void;
|
|
729
|
+
pushMany: (map: Record<string, _angular_core.Signal<unknown>>) => void;
|
|
730
|
+
};
|
|
731
|
+
attributes: {
|
|
732
|
+
remove: (tokens: string) => void;
|
|
733
|
+
removeMany: (tokens: string[]) => void;
|
|
734
|
+
has: (tokens: string) => boolean;
|
|
735
|
+
push: (tokens: string, signal: _angular_core.Signal<unknown>) => void;
|
|
736
|
+
pushMany: (map: Record<string, _angular_core.Signal<unknown>>) => void;
|
|
737
|
+
};
|
|
738
|
+
styles: {
|
|
739
|
+
remove: (tokens: string) => void;
|
|
740
|
+
removeMany: (tokens: string[]) => void;
|
|
741
|
+
has: (tokens: string) => boolean;
|
|
742
|
+
push: (tokens: string, signal: _angular_core.Signal<unknown>) => void;
|
|
743
|
+
pushMany: (map: Record<string, _angular_core.Signal<unknown>>) => void;
|
|
744
|
+
};
|
|
745
|
+
id: string;
|
|
746
|
+
elementRef: ElementRef<HTMLElement>;
|
|
747
|
+
};
|
|
748
|
+
type PropHandlers = ReturnType<typeof createPropHandlers>;
|
|
749
|
+
|
|
750
|
+
type Props = Readonly<{
|
|
751
|
+
attached: Signal<boolean>;
|
|
752
|
+
attachedElements: PropsAttachedElements;
|
|
753
|
+
}>;
|
|
754
|
+
type PropsAttachedElements = {
|
|
755
|
+
first: Signal<HTMLElement | null>;
|
|
756
|
+
firstId: Signal<string | null>;
|
|
757
|
+
get(id: string): HTMLElement | null;
|
|
758
|
+
};
|
|
759
|
+
type PropsAttachedElementsInternal = PropsAttachedElements & {
|
|
760
|
+
has: (id: string) => boolean;
|
|
761
|
+
push: (id: string, element: HTMLElement) => void;
|
|
762
|
+
remove: (id: string) => void;
|
|
763
|
+
};
|
|
764
|
+
type PropsInternal = {
|
|
765
|
+
single: boolean;
|
|
766
|
+
name: string;
|
|
767
|
+
bindId: boolean;
|
|
768
|
+
attached: Signal<boolean>;
|
|
769
|
+
attachedElements: PropsAttachedElementsInternal;
|
|
770
|
+
classBindings: Record<string, Signal<unknown>> | null;
|
|
771
|
+
attributeBindings: Record<string, Signal<unknown>> | null;
|
|
772
|
+
styleBindings: Record<string, Signal<unknown>> | null;
|
|
773
|
+
staticClassBindings: string[] | null;
|
|
774
|
+
staticAttributeBindings: Record<string, unknown> | null;
|
|
775
|
+
staticStyleBindings: Record<string, unknown> | null;
|
|
776
|
+
attachEventListeners: ((context: {
|
|
777
|
+
on: HTMLElement['addEventListener'];
|
|
778
|
+
element: HTMLElement;
|
|
779
|
+
}) => void) | null;
|
|
780
|
+
};
|
|
781
|
+
type CreatePropsOptions = {
|
|
782
|
+
name: string;
|
|
783
|
+
bindId?: boolean;
|
|
784
|
+
single?: boolean;
|
|
785
|
+
classes?: Record<string, Signal<unknown>>;
|
|
786
|
+
attributes?: Record<string, Signal<unknown>>;
|
|
787
|
+
styles?: Record<string, Signal<unknown>>;
|
|
788
|
+
staticClasses?: string[];
|
|
789
|
+
staticAttributes?: Record<string, unknown>;
|
|
790
|
+
staticStyles?: Record<string, unknown>;
|
|
791
|
+
listeners?: (context: {
|
|
792
|
+
on: HTMLElement['addEventListener'];
|
|
793
|
+
element: HTMLElement;
|
|
794
|
+
}) => void;
|
|
795
|
+
};
|
|
796
|
+
declare const createProps: (props: CreatePropsOptions) => Props;
|
|
797
|
+
type HostProps = {
|
|
798
|
+
props: Props;
|
|
799
|
+
handlers: PropHandlers;
|
|
800
|
+
};
|
|
801
|
+
declare const createHostProps: (props: CreatePropsOptions) => HostProps;
|
|
802
|
+
|
|
803
|
+
declare const createSetup: <T extends Record<string, unknown>>(config: {
|
|
804
|
+
setupFn: (params: T) => void;
|
|
805
|
+
this: ThisType<unknown>;
|
|
806
|
+
}) => (params: T) => void;
|
|
807
|
+
|
|
808
|
+
declare const createDependencyStash: <T extends Record<string, WritableSignal<unknown>>>(stash: T) => T & {
|
|
809
|
+
provideSignal: <K extends keyof T>(data: {
|
|
810
|
+
signal: Signal<ReturnType<T[K]>>;
|
|
811
|
+
for: K;
|
|
812
|
+
}) => void;
|
|
813
|
+
provideValue: <K extends keyof T>(data: {
|
|
814
|
+
value: ReturnType<T[K]>;
|
|
815
|
+
for: K;
|
|
816
|
+
}) => void;
|
|
817
|
+
};
|
|
818
|
+
|
|
819
|
+
declare const createElementDictionary: () => {
|
|
820
|
+
ids: _angular_core.Signal<string[]>;
|
|
821
|
+
elements: _angular_core.Signal<HTMLElement[]>;
|
|
822
|
+
has: (id: string) => boolean;
|
|
823
|
+
get: (id: string) => HTMLElement | null;
|
|
824
|
+
push: (id: string, element: HTMLElement) => void;
|
|
825
|
+
remove: (id: string) => void;
|
|
826
|
+
isEmpty: _angular_core.Signal<boolean>;
|
|
827
|
+
firstElement: _angular_core.Signal<HTMLElement | null>;
|
|
828
|
+
firstId: _angular_core.Signal<string | null>;
|
|
829
|
+
};
|
|
830
|
+
|
|
831
|
+
type BindPropsOptions = {
|
|
832
|
+
props: Props | PropsInternal;
|
|
833
|
+
handlers: PropHandlers;
|
|
834
|
+
};
|
|
835
|
+
declare const bindProps: (config: BindPropsOptions) => void;
|
|
836
|
+
type UnbindPropsOptions = {
|
|
837
|
+
props: Props | PropsInternal;
|
|
838
|
+
handlers: PropHandlers;
|
|
839
|
+
};
|
|
840
|
+
declare const unbindProps: (config: UnbindPropsOptions) => void;
|
|
841
|
+
|
|
842
|
+
declare class PropsDirective {
|
|
843
|
+
destroyRef: DestroyRef;
|
|
844
|
+
props: _angular_core.InputSignalWithTransform<PropsInternal, Readonly<{
|
|
845
|
+
attached: _angular_core.Signal<boolean>;
|
|
846
|
+
attachedElements: _ethlete_core.PropsAttachedElements;
|
|
847
|
+
}>>;
|
|
848
|
+
propHandlers: {
|
|
849
|
+
classes: {
|
|
850
|
+
remove: (tokens: string) => void;
|
|
851
|
+
removeMany: (tokens: string[]) => void;
|
|
852
|
+
has: (tokens: string) => boolean;
|
|
853
|
+
push: (tokens: string, signal: _angular_core.Signal<unknown>) => void;
|
|
854
|
+
pushMany: (map: Record<string, _angular_core.Signal<unknown>>) => void;
|
|
855
|
+
};
|
|
856
|
+
attributes: {
|
|
857
|
+
remove: (tokens: string) => void;
|
|
858
|
+
removeMany: (tokens: string[]) => void;
|
|
859
|
+
has: (tokens: string) => boolean;
|
|
860
|
+
push: (tokens: string, signal: _angular_core.Signal<unknown>) => void;
|
|
861
|
+
pushMany: (map: Record<string, _angular_core.Signal<unknown>>) => void;
|
|
862
|
+
};
|
|
863
|
+
styles: {
|
|
864
|
+
remove: (tokens: string) => void;
|
|
865
|
+
removeMany: (tokens: string[]) => void;
|
|
866
|
+
has: (tokens: string) => boolean;
|
|
867
|
+
push: (tokens: string, signal: _angular_core.Signal<unknown>) => void;
|
|
868
|
+
pushMany: (map: Record<string, _angular_core.Signal<unknown>>) => void;
|
|
869
|
+
};
|
|
870
|
+
id: string;
|
|
871
|
+
elementRef: _angular_core.ElementRef<HTMLElement>;
|
|
872
|
+
};
|
|
873
|
+
constructor();
|
|
874
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PropsDirective, never>;
|
|
875
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<PropsDirective, "[etProps]", never, { "props": { "alias": "etProps"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
876
|
+
}
|
|
877
|
+
|
|
878
|
+
type AnyTemplateType = string | TemplateRef<unknown> | ComponentType<unknown> | TemplateRefWithContext | ComponentTypeWithInputs;
|
|
879
|
+
type TemplateRefWithContext<T = Record<string, unknown> | undefined, J = unknown> = {
|
|
880
|
+
template: TemplateRef<J>;
|
|
881
|
+
context?: T;
|
|
882
|
+
injector?: Injector;
|
|
883
|
+
};
|
|
884
|
+
type ComponentTypeWithInputs<T = Record<string, unknown> | undefined, J = unknown> = {
|
|
885
|
+
component: ComponentType<J>;
|
|
886
|
+
inputs?: T;
|
|
887
|
+
injector?: Injector;
|
|
888
|
+
};
|
|
889
|
+
type StringTemplate = {
|
|
890
|
+
type: 'string';
|
|
891
|
+
value: string;
|
|
892
|
+
};
|
|
893
|
+
type NgTemplateTemplate = {
|
|
894
|
+
type: 'template';
|
|
895
|
+
value: TemplateRef<unknown>;
|
|
896
|
+
context?: Record<string, unknown>;
|
|
897
|
+
injector: Injector | null;
|
|
898
|
+
};
|
|
899
|
+
type ComponentTemplate = {
|
|
900
|
+
type: 'component';
|
|
901
|
+
value: ComponentType<unknown>;
|
|
902
|
+
inputs?: Record<string, unknown>;
|
|
903
|
+
injector: Injector | null;
|
|
904
|
+
};
|
|
905
|
+
declare const templateComputed: (templateSignal: Signal<AnyTemplateType | null>) => Signal<StringTemplate | NgTemplateTemplate | ComponentTemplate | null>;
|
|
906
|
+
|
|
907
|
+
declare const injectAngularRootElement: {
|
|
908
|
+
(): _angular_core.WritableSignal<HTMLElement | null>;
|
|
909
|
+
(options: _angular_core.InjectOptions & {
|
|
910
|
+
optional?: false;
|
|
911
|
+
}): _angular_core.WritableSignal<HTMLElement | null>;
|
|
912
|
+
(options: _angular_core.InjectOptions): _angular_core.WritableSignal<HTMLElement | null> | null;
|
|
913
|
+
};
|
|
914
|
+
|
|
915
|
+
declare const provideBoundaryElement: () => _angular_core.Provider[];
|
|
916
|
+
declare const injectBoundaryElement: {
|
|
917
|
+
(): {
|
|
918
|
+
value: _angular_core.Signal<HTMLElement>;
|
|
919
|
+
override: _angular_core.WritableSignal<HTMLElement | null>;
|
|
920
|
+
};
|
|
921
|
+
(options: _angular_core.InjectOptions & {
|
|
922
|
+
optional?: false;
|
|
923
|
+
}): {
|
|
924
|
+
value: _angular_core.Signal<HTMLElement>;
|
|
925
|
+
override: _angular_core.WritableSignal<HTMLElement | null>;
|
|
926
|
+
};
|
|
927
|
+
(options: _angular_core.InjectOptions): {
|
|
928
|
+
value: _angular_core.Signal<HTMLElement>;
|
|
929
|
+
override: _angular_core.WritableSignal<HTMLElement | null>;
|
|
930
|
+
} | null;
|
|
931
|
+
};
|
|
932
|
+
declare const BOUNDARY_ELEMENT_TOKEN: _angular_core.InjectionToken<{
|
|
933
|
+
value: _angular_core.Signal<HTMLElement>;
|
|
934
|
+
override: _angular_core.WritableSignal<HTMLElement | null>;
|
|
935
|
+
}>;
|
|
936
|
+
|
|
937
|
+
type Vec2 = [number, number];
|
|
938
|
+
type ViewportConfig = {
|
|
939
|
+
breakpoints: {
|
|
940
|
+
xs: Vec2;
|
|
941
|
+
sm: Vec2;
|
|
942
|
+
md: Vec2;
|
|
943
|
+
lg: Vec2;
|
|
944
|
+
xl: Vec2;
|
|
945
|
+
'2xl': Vec2;
|
|
946
|
+
};
|
|
947
|
+
};
|
|
948
|
+
type Breakpoint = keyof ViewportConfig['breakpoints'];
|
|
949
|
+
/**
|
|
950
|
+
* Default viewport config based on Tailwind CSS.
|
|
951
|
+
* @see https://tailwindcss.com/docs/screens
|
|
952
|
+
*/
|
|
953
|
+
declare const DEFAULT_VIEWPORT_CONFIG: ViewportConfig;
|
|
954
|
+
declare const provideViewportConfig: (valueOverride?: Partial<ViewportConfig> | undefined) => _angular_core.Provider[];
|
|
955
|
+
declare const injectViewportConfig: {
|
|
956
|
+
(): ViewportConfig;
|
|
957
|
+
(options: _angular_core.InjectOptions & {
|
|
958
|
+
optional?: false;
|
|
959
|
+
}): ViewportConfig;
|
|
960
|
+
(options: _angular_core.InjectOptions): ViewportConfig | null;
|
|
961
|
+
};
|
|
962
|
+
type BuildMediaQueryOptions = {
|
|
963
|
+
min?: number | Breakpoint;
|
|
964
|
+
max?: number | Breakpoint;
|
|
965
|
+
};
|
|
966
|
+
declare const provideBreakpointObserver: () => _angular_core.Provider[];
|
|
967
|
+
declare const injectBreakpointObserver: {
|
|
968
|
+
(): {
|
|
969
|
+
observeBreakpoint: (options: BuildMediaQueryOptions) => _angular_core.Signal<boolean>;
|
|
970
|
+
isBreakpointMatched: (options: BuildMediaQueryOptions) => boolean;
|
|
971
|
+
getBreakpointSize: (type: Breakpoint, option: "min" | "max") => number;
|
|
972
|
+
buildMediaQueryString: (options: BuildMediaQueryOptions) => string;
|
|
973
|
+
observeMediaQuery: (mediaQuery: string) => _angular_core.Signal<boolean>;
|
|
974
|
+
isMediaQueryMatched: (mediaQuery: string) => boolean;
|
|
975
|
+
};
|
|
976
|
+
(options: _angular_core.InjectOptions & {
|
|
977
|
+
optional?: false;
|
|
978
|
+
}): {
|
|
979
|
+
observeBreakpoint: (options: BuildMediaQueryOptions) => _angular_core.Signal<boolean>;
|
|
980
|
+
isBreakpointMatched: (options: BuildMediaQueryOptions) => boolean;
|
|
981
|
+
getBreakpointSize: (type: Breakpoint, option: "min" | "max") => number;
|
|
982
|
+
buildMediaQueryString: (options: BuildMediaQueryOptions) => string;
|
|
983
|
+
observeMediaQuery: (mediaQuery: string) => _angular_core.Signal<boolean>;
|
|
984
|
+
isMediaQueryMatched: (mediaQuery: string) => boolean;
|
|
985
|
+
};
|
|
986
|
+
(options: _angular_core.InjectOptions): {
|
|
987
|
+
observeBreakpoint: (options: BuildMediaQueryOptions) => _angular_core.Signal<boolean>;
|
|
988
|
+
isBreakpointMatched: (options: BuildMediaQueryOptions) => boolean;
|
|
989
|
+
getBreakpointSize: (type: Breakpoint, option: "min" | "max") => number;
|
|
990
|
+
buildMediaQueryString: (options: BuildMediaQueryOptions) => string;
|
|
991
|
+
observeMediaQuery: (mediaQuery: string) => _angular_core.Signal<boolean>;
|
|
992
|
+
isMediaQueryMatched: (mediaQuery: string) => boolean;
|
|
993
|
+
} | null;
|
|
994
|
+
};
|
|
995
|
+
|
|
996
|
+
declare const provideFocusVisibleTracker: () => _angular_core.Provider[];
|
|
997
|
+
declare const injectFocusVisibleTracker: {
|
|
998
|
+
(): {
|
|
999
|
+
isFocusVisible: _angular_core.Signal<boolean>;
|
|
1000
|
+
};
|
|
1001
|
+
(options: _angular_core.InjectOptions & {
|
|
1002
|
+
optional?: false;
|
|
1003
|
+
}): {
|
|
1004
|
+
isFocusVisible: _angular_core.Signal<boolean>;
|
|
1005
|
+
};
|
|
1006
|
+
(options: _angular_core.InjectOptions): {
|
|
1007
|
+
isFocusVisible: _angular_core.Signal<boolean>;
|
|
1008
|
+
} | null;
|
|
1009
|
+
};
|
|
1010
|
+
declare const FOCUS_VISIBLE_TRACKER_TOKEN: _angular_core.InjectionToken<{
|
|
1011
|
+
isFocusVisible: _angular_core.Signal<boolean>;
|
|
1012
|
+
}>;
|
|
1013
|
+
|
|
1014
|
+
declare const provideLocale: () => _angular_core.Provider[];
|
|
1015
|
+
declare const injectLocale: {
|
|
1016
|
+
(): {
|
|
1017
|
+
currentLocale: _angular_core.WritableSignal<string>;
|
|
1018
|
+
};
|
|
1019
|
+
(options: _angular_core.InjectOptions & {
|
|
1020
|
+
optional?: false;
|
|
1021
|
+
}): {
|
|
1022
|
+
currentLocale: _angular_core.WritableSignal<string>;
|
|
1023
|
+
};
|
|
1024
|
+
(options: _angular_core.InjectOptions): {
|
|
1025
|
+
currentLocale: _angular_core.WritableSignal<string>;
|
|
1026
|
+
} | null;
|
|
1027
|
+
};
|
|
1028
|
+
|
|
1029
|
+
declare const provideRenderer: () => _angular_core.Provider[];
|
|
1030
|
+
declare const injectRenderer: {
|
|
1031
|
+
(): {
|
|
1032
|
+
addClass: (element: HTMLElement, ...classes: string[]) => void;
|
|
1033
|
+
removeClass: (element: HTMLElement, ...classes: string[]) => void;
|
|
1034
|
+
toggleClass: (element: HTMLElement, className: string, force?: boolean) => boolean;
|
|
1035
|
+
setStyle: (element: HTMLElement, style: Partial<Record<keyof CSSStyleDeclaration, string | null>>, flags?: RendererStyleFlags2) => void;
|
|
1036
|
+
removeStyle: (element: HTMLElement, ...styles: (keyof CSSStyleDeclaration)[]) => void;
|
|
1037
|
+
setAttribute: (element: HTMLElement, name: string, value: string | null, namespace?: string | null) => void;
|
|
1038
|
+
removeAttribute: (element: HTMLElement, ...names: string[]) => void;
|
|
1039
|
+
setProperty: (element: HTMLElement, name: string, value: unknown) => void;
|
|
1040
|
+
setProperties: (element: HTMLElement, properties: Record<string, unknown>) => void;
|
|
1041
|
+
createElement: <K extends keyof HTMLElementTagNameMap>(tagName: K, namespace?: string | null) => HTMLElementTagNameMap[K];
|
|
1042
|
+
createText: (value: string) => Text;
|
|
1043
|
+
createComment: (value: string) => Comment;
|
|
1044
|
+
appendChild: (parent: HTMLElement, newChild: Node) => void;
|
|
1045
|
+
insertBefore: (parent: Node, newChild: Node, refChild: Node | null) => void;
|
|
1046
|
+
removeChild: (parent: Node, oldChild: Node, isHostElement?: boolean) => void;
|
|
1047
|
+
selectRootElement: (selectorOrNode: string | HTMLElement, preserveContent?: boolean) => HTMLElement;
|
|
1048
|
+
parentNode: (node: Node) => Node | null;
|
|
1049
|
+
nextSibling: (node: Node) => Node | null;
|
|
1050
|
+
setValue: (node: Node, value: string) => void;
|
|
1051
|
+
listen: (target: HTMLElement | Window | Document | "window" | "document" | "body", eventName: string, callback: (event: Event) => boolean | void) => (() => void);
|
|
1052
|
+
destroyNode: (node: Node) => void;
|
|
1053
|
+
replaceChild: (parent: Node, newChild: Node, oldChild: Node) => void;
|
|
1054
|
+
empty: (element: HTMLElement) => void;
|
|
1055
|
+
setTextContent: (element: HTMLElement, text: string) => void;
|
|
1056
|
+
setInnerHTML: (element: HTMLElement, html: string) => void;
|
|
1057
|
+
setAttributes: (element: HTMLElement, attributes: Record<string, string | null>, namespace?: string | null) => void;
|
|
1058
|
+
setDataAttributes: (element: HTMLElement, data: Record<string, string | null>) => void;
|
|
1059
|
+
setCssProperty: (element: HTMLElement, name: string, value: string | null) => void;
|
|
1060
|
+
setCssProperties: (element: HTMLElement, properties: Record<string, string | null>) => void;
|
|
1061
|
+
renderer: _angular_core.Renderer2;
|
|
1062
|
+
};
|
|
1063
|
+
(options: _angular_core.InjectOptions & {
|
|
1064
|
+
optional?: false;
|
|
1065
|
+
}): {
|
|
1066
|
+
addClass: (element: HTMLElement, ...classes: string[]) => void;
|
|
1067
|
+
removeClass: (element: HTMLElement, ...classes: string[]) => void;
|
|
1068
|
+
toggleClass: (element: HTMLElement, className: string, force?: boolean) => boolean;
|
|
1069
|
+
setStyle: (element: HTMLElement, style: Partial<Record<keyof CSSStyleDeclaration, string | null>>, flags?: RendererStyleFlags2) => void;
|
|
1070
|
+
removeStyle: (element: HTMLElement, ...styles: (keyof CSSStyleDeclaration)[]) => void;
|
|
1071
|
+
setAttribute: (element: HTMLElement, name: string, value: string | null, namespace?: string | null) => void;
|
|
1072
|
+
removeAttribute: (element: HTMLElement, ...names: string[]) => void;
|
|
1073
|
+
setProperty: (element: HTMLElement, name: string, value: unknown) => void;
|
|
1074
|
+
setProperties: (element: HTMLElement, properties: Record<string, unknown>) => void;
|
|
1075
|
+
createElement: <K extends keyof HTMLElementTagNameMap>(tagName: K, namespace?: string | null) => HTMLElementTagNameMap[K];
|
|
1076
|
+
createText: (value: string) => Text;
|
|
1077
|
+
createComment: (value: string) => Comment;
|
|
1078
|
+
appendChild: (parent: HTMLElement, newChild: Node) => void;
|
|
1079
|
+
insertBefore: (parent: Node, newChild: Node, refChild: Node | null) => void;
|
|
1080
|
+
removeChild: (parent: Node, oldChild: Node, isHostElement?: boolean) => void;
|
|
1081
|
+
selectRootElement: (selectorOrNode: string | HTMLElement, preserveContent?: boolean) => HTMLElement;
|
|
1082
|
+
parentNode: (node: Node) => Node | null;
|
|
1083
|
+
nextSibling: (node: Node) => Node | null;
|
|
1084
|
+
setValue: (node: Node, value: string) => void;
|
|
1085
|
+
listen: (target: HTMLElement | Window | Document | "window" | "document" | "body", eventName: string, callback: (event: Event) => boolean | void) => (() => void);
|
|
1086
|
+
destroyNode: (node: Node) => void;
|
|
1087
|
+
replaceChild: (parent: Node, newChild: Node, oldChild: Node) => void;
|
|
1088
|
+
empty: (element: HTMLElement) => void;
|
|
1089
|
+
setTextContent: (element: HTMLElement, text: string) => void;
|
|
1090
|
+
setInnerHTML: (element: HTMLElement, html: string) => void;
|
|
1091
|
+
setAttributes: (element: HTMLElement, attributes: Record<string, string | null>, namespace?: string | null) => void;
|
|
1092
|
+
setDataAttributes: (element: HTMLElement, data: Record<string, string | null>) => void;
|
|
1093
|
+
setCssProperty: (element: HTMLElement, name: string, value: string | null) => void;
|
|
1094
|
+
setCssProperties: (element: HTMLElement, properties: Record<string, string | null>) => void;
|
|
1095
|
+
renderer: _angular_core.Renderer2;
|
|
1096
|
+
};
|
|
1097
|
+
(options: _angular_core.InjectOptions): {
|
|
1098
|
+
addClass: (element: HTMLElement, ...classes: string[]) => void;
|
|
1099
|
+
removeClass: (element: HTMLElement, ...classes: string[]) => void;
|
|
1100
|
+
toggleClass: (element: HTMLElement, className: string, force?: boolean) => boolean;
|
|
1101
|
+
setStyle: (element: HTMLElement, style: Partial<Record<keyof CSSStyleDeclaration, string | null>>, flags?: RendererStyleFlags2) => void;
|
|
1102
|
+
removeStyle: (element: HTMLElement, ...styles: (keyof CSSStyleDeclaration)[]) => void;
|
|
1103
|
+
setAttribute: (element: HTMLElement, name: string, value: string | null, namespace?: string | null) => void;
|
|
1104
|
+
removeAttribute: (element: HTMLElement, ...names: string[]) => void;
|
|
1105
|
+
setProperty: (element: HTMLElement, name: string, value: unknown) => void;
|
|
1106
|
+
setProperties: (element: HTMLElement, properties: Record<string, unknown>) => void;
|
|
1107
|
+
createElement: <K extends keyof HTMLElementTagNameMap>(tagName: K, namespace?: string | null) => HTMLElementTagNameMap[K];
|
|
1108
|
+
createText: (value: string) => Text;
|
|
1109
|
+
createComment: (value: string) => Comment;
|
|
1110
|
+
appendChild: (parent: HTMLElement, newChild: Node) => void;
|
|
1111
|
+
insertBefore: (parent: Node, newChild: Node, refChild: Node | null) => void;
|
|
1112
|
+
removeChild: (parent: Node, oldChild: Node, isHostElement?: boolean) => void;
|
|
1113
|
+
selectRootElement: (selectorOrNode: string | HTMLElement, preserveContent?: boolean) => HTMLElement;
|
|
1114
|
+
parentNode: (node: Node) => Node | null;
|
|
1115
|
+
nextSibling: (node: Node) => Node | null;
|
|
1116
|
+
setValue: (node: Node, value: string) => void;
|
|
1117
|
+
listen: (target: HTMLElement | Window | Document | "window" | "document" | "body", eventName: string, callback: (event: Event) => boolean | void) => (() => void);
|
|
1118
|
+
destroyNode: (node: Node) => void;
|
|
1119
|
+
replaceChild: (parent: Node, newChild: Node, oldChild: Node) => void;
|
|
1120
|
+
empty: (element: HTMLElement) => void;
|
|
1121
|
+
setTextContent: (element: HTMLElement, text: string) => void;
|
|
1122
|
+
setInnerHTML: (element: HTMLElement, html: string) => void;
|
|
1123
|
+
setAttributes: (element: HTMLElement, attributes: Record<string, string | null>, namespace?: string | null) => void;
|
|
1124
|
+
setDataAttributes: (element: HTMLElement, data: Record<string, string | null>) => void;
|
|
1125
|
+
setCssProperty: (element: HTMLElement, name: string, value: string | null) => void;
|
|
1126
|
+
setCssProperties: (element: HTMLElement, properties: Record<string, string | null>) => void;
|
|
1127
|
+
renderer: _angular_core.Renderer2;
|
|
1128
|
+
} | null;
|
|
1129
|
+
};
|
|
1130
|
+
type AngularRenderer = NonNullable<ReturnType<typeof injectRenderer>>;
|
|
1131
|
+
|
|
1132
|
+
declare const previousSignalValue: <T>(signal: Signal<T>) => Signal<T | undefined>;
|
|
1133
|
+
type SyncSignalOptions = {
|
|
1134
|
+
/**
|
|
1135
|
+
* If true, the target signal will not be updated with the source signal's value in a sync operation.
|
|
1136
|
+
* This should be set to true for signals that need to be initialized first before syncing (eg. required inputs)
|
|
1137
|
+
* @default false
|
|
1138
|
+
*/
|
|
1139
|
+
skipSyncRead?: boolean;
|
|
1140
|
+
/**
|
|
1141
|
+
* If true, the first time the effect will be triggered will be skipped.
|
|
1142
|
+
* @default false
|
|
1143
|
+
*/
|
|
1144
|
+
skipFirstRun?: boolean;
|
|
1145
|
+
};
|
|
1146
|
+
declare const syncSignal: <T>(from: Signal<T>, to: WritableSignal<T>, options?: SyncSignalOptions) => _angular_core.EffectRef;
|
|
1147
|
+
type MaybeSignal<T> = T | Signal<T>;
|
|
1148
|
+
declare const maybeSignalValue: <T>(value: MaybeSignal<T>) => T;
|
|
1149
|
+
/**
|
|
1150
|
+
* A computed that will only be reactive until the source signal contains a truthy value.
|
|
1151
|
+
* All subsequent changes inside the computation will be ignored.
|
|
1152
|
+
*/
|
|
1153
|
+
declare const computedTillTruthy: <T>(source: Signal<T>) => Signal<T | null>;
|
|
1154
|
+
/**
|
|
1155
|
+
* A computed that will only be reactive until the source signal contains a falsy value.
|
|
1156
|
+
* All subsequent changes inside the computation will be ignored.
|
|
1157
|
+
*/
|
|
1158
|
+
declare const computedTillFalsy: <T>(source: Signal<T>) => Signal<T | null>;
|
|
1159
|
+
/**
|
|
1160
|
+
* A writeable signal that will be set to the provided value once all inputs are set.
|
|
1161
|
+
* During that time, the signal will be set to `null`.
|
|
1162
|
+
*/
|
|
1163
|
+
declare const deferredSignal: <T extends () => unknown>(valueFn: T) => WritableSignal<ReturnType<T> | null>;
|
|
1164
|
+
declare const memoizeSignal: <T>(factory: () => Signal<T>) => () => Signal<T>;
|
|
1165
|
+
|
|
1166
|
+
type SignalAnimatedNumberOptions = {
|
|
1167
|
+
/**
|
|
1168
|
+
* The initial value to start animating from.
|
|
1169
|
+
* If not provided, the animation will start from 0
|
|
1170
|
+
*/
|
|
1171
|
+
initialValue?: number;
|
|
1172
|
+
/**
|
|
1173
|
+
* Duration of the animation in milliseconds.
|
|
1174
|
+
* @default 1000
|
|
1175
|
+
*/
|
|
1176
|
+
duration?: number;
|
|
1177
|
+
/**
|
|
1178
|
+
* Easing function that takes a progress value (0 to 1) and returns an eased value (0 to 1).
|
|
1179
|
+
* Options:
|
|
1180
|
+
* - `easeLinear()`
|
|
1181
|
+
* - `easeIn()`
|
|
1182
|
+
* - `easeOut()`
|
|
1183
|
+
* - `easeInOut()`
|
|
1184
|
+
* - `easeElastic()`
|
|
1185
|
+
* - `easeOutBack()`
|
|
1186
|
+
* - `easeOutBackStrong()`
|
|
1187
|
+
* @default easeOut()
|
|
1188
|
+
*/
|
|
1189
|
+
easing?: (t: number) => number;
|
|
1190
|
+
/**
|
|
1191
|
+
* Function to round the animated value.
|
|
1192
|
+
* @default (v: number) => Math.round(v)
|
|
1193
|
+
*/
|
|
1194
|
+
round?: (value: number) => number;
|
|
1195
|
+
/**
|
|
1196
|
+
* Callback invoked when the animation starts.
|
|
1197
|
+
*/
|
|
1198
|
+
onAnimationStart?: () => void;
|
|
1199
|
+
/**
|
|
1200
|
+
* Callback invoked when the animation ends.
|
|
1201
|
+
*/
|
|
1202
|
+
onAnimationEnd?: () => void;
|
|
1203
|
+
};
|
|
1204
|
+
type AnimatedNumberSignal = Signal<number> & {
|
|
1205
|
+
/**
|
|
1206
|
+
* Starts the animation from the current value to the target value.
|
|
1207
|
+
* @returns The animated signal for chaining
|
|
1208
|
+
*/
|
|
1209
|
+
play: () => AnimatedNumberSignal;
|
|
1210
|
+
/**
|
|
1211
|
+
* Resets the animation to the initial value and stops any ongoing animation.
|
|
1212
|
+
* @returns The animated signal for chaining
|
|
1213
|
+
*/
|
|
1214
|
+
reset: () => AnimatedNumberSignal;
|
|
1215
|
+
/**
|
|
1216
|
+
* Stops the current animation at its current position.
|
|
1217
|
+
* @returns The animated signal for chaining
|
|
1218
|
+
*/
|
|
1219
|
+
stop: () => AnimatedNumberSignal;
|
|
1220
|
+
};
|
|
1221
|
+
/**
|
|
1222
|
+
* Creates a signal that animates the transition of a numeric signal's value over time.
|
|
1223
|
+
*/
|
|
1224
|
+
declare const signalAnimatedNumber: (source: MaybeSignal<number>, options?: SignalAnimatedNumberOptions) => AnimatedNumberSignal;
|
|
1225
|
+
declare const easeLinear: (t: number) => number;
|
|
1226
|
+
declare const easeIn: (t: number) => number;
|
|
1227
|
+
declare const easeOut: (t: number) => number;
|
|
1228
|
+
declare const easeInOut: (t: number) => number;
|
|
1229
|
+
/** Elastic easing function (overshoots) */
|
|
1230
|
+
declare const easeElastic: (t: number) => number;
|
|
1231
|
+
/** Back easing function (overshoots slightly then settles) */
|
|
1232
|
+
declare const easeOutBack: (t: number) => number;
|
|
1233
|
+
/** Back easing function with more overshoot */
|
|
1234
|
+
declare const easeOutBackStrong: (t: number) => number;
|
|
1235
|
+
|
|
1236
|
+
type ControlValueSignalOptions = {
|
|
1237
|
+
debounceTime?: number;
|
|
1238
|
+
/**
|
|
1239
|
+
* @default false
|
|
1240
|
+
*/
|
|
1241
|
+
debounceFirst?: boolean;
|
|
1242
|
+
};
|
|
1243
|
+
declare const controlValueSignal: <TControlInput extends Signal<AbstractControl | null> | AbstractControl, TControl extends TControlInput extends Signal<infer TSignalControl> ? TSignalControl : TControlInput>(control: TControlInput, options?: ControlValueSignalOptions) => Signal<ReturnType<NonNullable<TControl>["getRawValue"]> | null>;
|
|
1244
|
+
/**
|
|
1245
|
+
* The first item in the pair is the previous value and the second item is the current value.
|
|
1246
|
+
*/
|
|
1247
|
+
declare const controlValueSignalWithPrevious: <T extends AbstractControl>(control: T, options?: ControlValueSignalOptions) => Signal<[ReturnType<NonNullable<T extends Signal<infer TSignalControl> ? TSignalControl : T>["getRawValue"]> | null, ReturnType<NonNullable<T extends Signal<infer TSignalControl> ? TSignalControl : T>["getRawValue"]> | null]>;
|
|
1248
|
+
|
|
1249
|
+
type SignalElementBindingComplexType = HTMLElement | ElementRef<HTMLElement> | QueryList<ElementRef<HTMLElement> | HTMLElement> | Array<ElementRef<HTMLElement> | HTMLElement> | null | undefined;
|
|
1250
|
+
type SignalElementBindingType = HTMLElement | ElementRef<HTMLElement> | Observable<SignalElementBindingComplexType> | Signal<SignalElementBindingComplexType> | QueryList<ElementRef<HTMLElement> | HTMLElement> | ElementSignal;
|
|
1251
|
+
type ElementSignal = Signal<{
|
|
1252
|
+
currentElements: HTMLElement[];
|
|
1253
|
+
previousElements: HTMLElement[];
|
|
1254
|
+
}>;
|
|
1255
|
+
type ElementSignalValue = ReturnType<ElementSignal>;
|
|
1256
|
+
declare const isElementSignal: (el: unknown) => el is ElementSignal;
|
|
1257
|
+
declare const createDocumentElementSignal: () => ElementSignal;
|
|
1258
|
+
declare const createEmptyElementSignal: () => ElementSignal;
|
|
1259
|
+
declare const buildElementSignal: (el: SignalElementBindingType | null | undefined) => ElementSignal;
|
|
1260
|
+
declare const firstElementSignal: (el: ElementSignal) => Signal<{
|
|
1261
|
+
currentElement: HTMLElement | null;
|
|
1262
|
+
previousElement: HTMLElement | null;
|
|
1263
|
+
}>;
|
|
1264
|
+
|
|
1265
|
+
declare const signalElementChildren: (el: SignalElementBindingType) => _angular_core.Signal<HTMLElement[]>;
|
|
1266
|
+
|
|
1267
|
+
type BuildSignalEffectsConfig<T extends Record<string, Signal<unknown>>> = {
|
|
1268
|
+
/** The tokens to apply and their signal value */
|
|
1269
|
+
tokenMap: T;
|
|
1270
|
+
/** This function will be invoked for elements that were removed from the signal effects */
|
|
1271
|
+
cleanupFn: (el: HTMLElement, tokens: string[]) => void;
|
|
1272
|
+
/** This function will be invoked for elements that were added to the signal effects or when their signal value changes */
|
|
1273
|
+
updateFn: (el: HTMLElement, tokens: string[], conditionResult: unknown) => void;
|
|
1274
|
+
};
|
|
1275
|
+
declare const buildSignalEffects: <T extends Record<string, Signal<unknown>>>(el: SignalElementBindingType, config: BuildSignalEffectsConfig<T>) => {
|
|
1276
|
+
remove: (tokens: string) => void;
|
|
1277
|
+
removeMany: (tokens: string[]) => void;
|
|
1278
|
+
has: (tokens: string) => boolean;
|
|
1279
|
+
push: (tokens: string, signal: Signal<unknown>) => void;
|
|
1280
|
+
pushMany: (map: Record<string, Signal<unknown>>) => void;
|
|
1281
|
+
};
|
|
1282
|
+
declare const signalClasses: <T extends Record<string, Signal<unknown>>>(el: SignalElementBindingType, classMap: T) => {
|
|
1283
|
+
remove: (tokens: string) => void;
|
|
1284
|
+
removeMany: (tokens: string[]) => void;
|
|
1285
|
+
has: (tokens: string) => boolean;
|
|
1286
|
+
push: (tokens: string, signal: Signal<unknown>) => void;
|
|
1287
|
+
pushMany: (map: Record<string, Signal<unknown>>) => void;
|
|
1288
|
+
};
|
|
1289
|
+
declare const signalHostClasses: <T extends Record<string, Signal<unknown>>>(classMap: T) => {
|
|
1290
|
+
remove: (tokens: string) => void;
|
|
1291
|
+
removeMany: (tokens: string[]) => void;
|
|
1292
|
+
has: (tokens: string) => boolean;
|
|
1293
|
+
push: (tokens: string, signal: Signal<unknown>) => void;
|
|
1294
|
+
pushMany: (map: Record<string, Signal<unknown>>) => void;
|
|
1295
|
+
};
|
|
1296
|
+
declare const signalAttributes: <T extends Record<string, Signal<unknown>>>(el: SignalElementBindingType, attributeMap: T) => {
|
|
1297
|
+
remove: (tokens: string) => void;
|
|
1298
|
+
removeMany: (tokens: string[]) => void;
|
|
1299
|
+
has: (tokens: string) => boolean;
|
|
1300
|
+
push: (tokens: string, signal: Signal<unknown>) => void;
|
|
1301
|
+
pushMany: (map: Record<string, Signal<unknown>>) => void;
|
|
1302
|
+
};
|
|
1303
|
+
declare const signalHostAttributes: <T extends Record<string, Signal<unknown>>>(attributeMap: T) => {
|
|
1304
|
+
remove: (tokens: string) => void;
|
|
1305
|
+
removeMany: (tokens: string[]) => void;
|
|
1306
|
+
has: (tokens: string) => boolean;
|
|
1307
|
+
push: (tokens: string, signal: Signal<unknown>) => void;
|
|
1308
|
+
pushMany: (map: Record<string, Signal<unknown>>) => void;
|
|
1309
|
+
};
|
|
1310
|
+
declare const signalStyles: <T extends Record<string, Signal<unknown>>>(el: SignalElementBindingType, styleMap: T) => {
|
|
1311
|
+
remove: (tokens: string) => void;
|
|
1312
|
+
removeMany: (tokens: string[]) => void;
|
|
1313
|
+
has: (tokens: string) => boolean;
|
|
1314
|
+
push: (tokens: string, signal: Signal<unknown>) => void;
|
|
1315
|
+
pushMany: (map: Record<string, Signal<unknown>>) => void;
|
|
1316
|
+
};
|
|
1317
|
+
declare const signalHostStyles: <T extends Record<string, Signal<unknown>>>(styleMap: T) => {
|
|
1318
|
+
remove: (tokens: string) => void;
|
|
1319
|
+
removeMany: (tokens: string[]) => void;
|
|
1320
|
+
has: (tokens: string) => boolean;
|
|
1321
|
+
push: (tokens: string, signal: Signal<unknown>) => void;
|
|
1322
|
+
pushMany: (map: Record<string, Signal<unknown>>) => void;
|
|
1323
|
+
};
|
|
1324
|
+
|
|
1325
|
+
type LogicalSize = {
|
|
1326
|
+
inlineSize: number;
|
|
1327
|
+
blockSize: number;
|
|
1328
|
+
};
|
|
1329
|
+
type ElementRect = {
|
|
1330
|
+
bottom: number;
|
|
1331
|
+
height: number;
|
|
1332
|
+
left: number;
|
|
1333
|
+
right: number;
|
|
1334
|
+
top: number;
|
|
1335
|
+
width: number;
|
|
1336
|
+
x: number;
|
|
1337
|
+
y: number;
|
|
1338
|
+
};
|
|
1339
|
+
type ElementSize = {
|
|
1340
|
+
width: number;
|
|
1341
|
+
height: number;
|
|
1342
|
+
};
|
|
1343
|
+
declare const boundingClientRectToElementRect: (rect: DOMRectReadOnly) => ElementRect;
|
|
1344
|
+
declare const createElementDimensions: (el: HTMLElement | null, rect?: DOMRect) => NullableElementDimensions;
|
|
1345
|
+
type ElementDimensions = {
|
|
1346
|
+
rect: () => ElementRect;
|
|
1347
|
+
client: ElementSize;
|
|
1348
|
+
scroll: ElementSize;
|
|
1349
|
+
offset: ElementSize;
|
|
1350
|
+
};
|
|
1351
|
+
type NullableElementDimensions = {
|
|
1352
|
+
[K in keyof ElementDimensions]: ElementDimensions[K] | null;
|
|
1353
|
+
};
|
|
1354
|
+
declare const signalElementDimensions: (el: SignalElementBindingType) => _angular_core.Signal<NullableElementDimensions>;
|
|
1355
|
+
declare const signalHostElementDimensions: () => _angular_core.Signal<NullableElementDimensions>;
|
|
1356
|
+
|
|
1357
|
+
type SignalElementIntersectionOptions = Omit<IntersectionObserverInit, 'root'> & {
|
|
1358
|
+
root?: SignalElementBindingType;
|
|
1359
|
+
enabled?: Signal<boolean>;
|
|
1360
|
+
};
|
|
1361
|
+
type IntersectionObserverEntryWithDetails = IntersectionObserverEntry & {
|
|
1362
|
+
isAbove: boolean;
|
|
1363
|
+
isBelow: boolean;
|
|
1364
|
+
isLeft: boolean;
|
|
1365
|
+
isRight: boolean;
|
|
1366
|
+
isVisible: boolean;
|
|
1367
|
+
};
|
|
1368
|
+
declare const signalElementIntersection: (el: SignalElementBindingType, options?: SignalElementIntersectionOptions) => Signal<IntersectionObserverEntryWithDetails[]>;
|
|
1369
|
+
declare const signalHostElementIntersection: (options?: SignalElementIntersectionOptions) => Signal<IntersectionObserverEntryWithDetails[]>;
|
|
1370
|
+
|
|
1371
|
+
declare const signalElementMutations: (el: SignalElementBindingType, options?: MutationObserverInit) => _angular_core.Signal<MutationRecord | null>;
|
|
1372
|
+
declare const signalHostElementMutations: (options?: MutationObserverInit) => _angular_core.Signal<MutationRecord | null>;
|
|
1373
|
+
|
|
1374
|
+
type ElementLastScrollDirectionType = 'up' | 'down' | 'left' | 'right';
|
|
1375
|
+
type ElementLastScrollDirection = {
|
|
1376
|
+
type: ElementLastScrollDirectionType;
|
|
1377
|
+
time: number;
|
|
1378
|
+
};
|
|
1379
|
+
declare const signalElementLastScrollDirection: (el: SignalElementBindingType) => _angular_core.Signal<ElementLastScrollDirection | null>;
|
|
1380
|
+
declare const signalHostElementLastScrollDirection: () => _angular_core.Signal<ElementLastScrollDirection | null>;
|
|
1381
|
+
|
|
1382
|
+
type SignalElementScrollStateOptions = {
|
|
1383
|
+
/** The initial scroll position to scroll to. Once a truthy value get's emitted, all further values will be ignored. */
|
|
1384
|
+
initialScrollPosition?: Signal<ScrollToOptions | null>;
|
|
1385
|
+
};
|
|
1386
|
+
type ElementScrollState = {
|
|
1387
|
+
canScroll: boolean;
|
|
1388
|
+
canScrollHorizontally: boolean;
|
|
1389
|
+
canScrollVertically: boolean;
|
|
1390
|
+
elementDimensions: NullableElementDimensions;
|
|
1391
|
+
};
|
|
1392
|
+
declare const areScrollStatesEqual: (a: ElementScrollState, b: ElementScrollState) => boolean;
|
|
1393
|
+
declare const signalElementScrollState: (el: SignalElementBindingType, options?: SignalElementScrollStateOptions) => Signal<ElementScrollState>;
|
|
1394
|
+
declare const signalHostElementScrollState: () => Signal<ElementScrollState>;
|
|
1395
|
+
|
|
1396
|
+
/** Inject a signal containing a boolean value indicating if the viewport is xs */
|
|
1397
|
+
declare const injectIsXs: () => _angular_core.Signal<boolean>;
|
|
1398
|
+
/** Inject a signal containing a boolean value indicating if the viewport is sm */
|
|
1399
|
+
declare const injectIsSm: () => _angular_core.Signal<boolean>;
|
|
1400
|
+
/** Inject a signal containing a boolean value indicating if the viewport is md */
|
|
1401
|
+
declare const injectIsMd: () => _angular_core.Signal<boolean>;
|
|
1402
|
+
/** Inject a signal containing a boolean value indicating if the viewport is lg */
|
|
1403
|
+
declare const injectIsLg: () => _angular_core.Signal<boolean>;
|
|
1404
|
+
/** Inject a signal containing a boolean value indicating if the viewport is xl */
|
|
1405
|
+
declare const injectIsXl: () => _angular_core.Signal<boolean>;
|
|
1406
|
+
/** Inject a signal containing a boolean value indicating if the viewport is 2xl */
|
|
1407
|
+
declare const injectIs2Xl: () => _angular_core.Signal<boolean>;
|
|
1408
|
+
/**
|
|
1409
|
+
* Inject a boolean value indicating if the viewport is matching the provided options.
|
|
1410
|
+
* This value is not reactive. If you want to react to changes, use the {@link injectObserveBreakpoint} function instead.
|
|
1411
|
+
*/
|
|
1412
|
+
declare const injectBreakpointIsMatched: (options: BuildMediaQueryOptions) => boolean;
|
|
1413
|
+
/**
|
|
1414
|
+
* Inject a boolean value indicating if the media query is matched.
|
|
1415
|
+
* This value is not reactive. If you want to react to changes, use the {@link injectObserveMediaQuery} function instead.
|
|
1416
|
+
*/
|
|
1417
|
+
declare const injectMediaQueryIsMatched: (mediaQuery: string) => boolean;
|
|
1418
|
+
/**
|
|
1419
|
+
* Inject a signal containing a boolean value indicating if the viewport is matching the provided options.
|
|
1420
|
+
*/
|
|
1421
|
+
declare const injectObserveBreakpoint: (options: BuildMediaQueryOptions) => _angular_core.Signal<boolean>;
|
|
1422
|
+
/**
|
|
1423
|
+
* Inject a signal containing a boolean value indicating if the media query is matched.
|
|
1424
|
+
*/
|
|
1425
|
+
declare const injectObserveMediaQuery: (mediaQuery: string) => _angular_core.Signal<boolean>;
|
|
1426
|
+
/** Inject a signal containing the current breakpoint. */
|
|
1427
|
+
declare const injectCurrentBreakpoint: () => _angular_core.Signal<"xs" | "sm" | "md" | "lg" | "xl" | "2xl">;
|
|
1428
|
+
/** Inject a signal that indicates if the user is using a portrait display */
|
|
1429
|
+
declare const injectIsPortrait: () => _angular_core.Signal<boolean>;
|
|
1430
|
+
/** Inject a signal that indicates if the user is using a landscape display */
|
|
1431
|
+
declare const injectIsLandscape: () => _angular_core.Signal<boolean>;
|
|
1432
|
+
/** Inject a signal containing the current display orientation */
|
|
1433
|
+
declare const injectDisplayOrientation: () => _angular_core.Signal<"portrait" | "landscape">;
|
|
1434
|
+
/** Inject a signal that indicates if the device has a touch input */
|
|
1435
|
+
declare const injectHasTouchInput: () => _angular_core.Signal<boolean>;
|
|
1436
|
+
/** Inject a signal that indicates if the device has a fine input (mouse or stylus) */
|
|
1437
|
+
declare const injectHasPrecisionInput: () => _angular_core.Signal<boolean>;
|
|
1438
|
+
/** Inject a signal containing the current device input type */
|
|
1439
|
+
declare const injectDeviceInputType: () => _angular_core.Signal<"touch" | "mouse">;
|
|
1440
|
+
/** Inject a signal containing a boolean value indicating if the user can hover (eg. using a mouse) */
|
|
1441
|
+
declare const injectCanHover: () => _angular_core.Signal<boolean>;
|
|
1442
|
+
/** Inject a signal containing the viewport dimensions */
|
|
1443
|
+
declare const injectViewportDimensions: () => _angular_core.Signal<_ethlete_core.NullableElementDimensions>;
|
|
1444
|
+
/** Inject a signal containing the scrollbar dimensions. Dimensions will be 0 if scrollbars overlap the page contents (like on mobile). */
|
|
1445
|
+
declare const injectScrollbarDimensions: () => _angular_core.Signal<_ethlete_core.NullableElementDimensions>;
|
|
1446
|
+
|
|
1447
|
+
/**
|
|
1448
|
+
* Applies scrollbar size CSS variables to the documentElement (html tag) in pixels.
|
|
1449
|
+
* - `--et-sw`: scrollbar width
|
|
1450
|
+
* - `--et-sh`: scrollbar height
|
|
1451
|
+
*/
|
|
1452
|
+
declare const writeScrollbarSizeToCssVariables: () => void;
|
|
1453
|
+
/**
|
|
1454
|
+
* Applies viewport size CSS variables to the documentElement (html tag) in pixels.
|
|
1455
|
+
* - `--et-vw`: viewport width excluding scrollbar width
|
|
1456
|
+
* - `--et-vh`: viewport height excluding scrollbar height
|
|
1457
|
+
*/
|
|
1458
|
+
declare const writeViewportSizeToCssVariables: () => void;
|
|
1459
|
+
|
|
1460
|
+
type CursorDragScrollDirection = 'horizontal' | 'vertical' | 'both';
|
|
1461
|
+
type CursorDragScrollOptions = {
|
|
1462
|
+
/** If true, cursor drag scrolling will be enabled. */
|
|
1463
|
+
enabled?: Signal<boolean>;
|
|
1464
|
+
/** The allowed scroll direction. */
|
|
1465
|
+
allowedDirection?: MaybeSignal<CursorDragScrollDirection>;
|
|
1466
|
+
};
|
|
1467
|
+
/** A function to apply cursor drag scroll behavior to an element. */
|
|
1468
|
+
declare const useCursorDragScroll: (el: SignalElementBindingType, options?: CursorDragScrollOptions) => {
|
|
1469
|
+
isDragging: Signal<boolean>;
|
|
1470
|
+
currentDragAmount: Signal<{
|
|
1471
|
+
x: number;
|
|
1472
|
+
y: number;
|
|
1473
|
+
}>;
|
|
1474
|
+
};
|
|
1475
|
+
|
|
1476
|
+
type SetupScrollRestorationConfig = {
|
|
1477
|
+
/**
|
|
1478
|
+
* The scrollable container.
|
|
1479
|
+
* @default document.documentElement
|
|
1480
|
+
*/
|
|
1481
|
+
scrollElement?: HTMLElement;
|
|
1482
|
+
/**
|
|
1483
|
+
* A list of query params that should trigger a scroll to top.
|
|
1484
|
+
* @default []
|
|
1485
|
+
* @example ['page'] // will scroll to top when the page query param changes
|
|
1486
|
+
*/
|
|
1487
|
+
queryParamTriggerList?: string[];
|
|
1488
|
+
/**
|
|
1489
|
+
* Config for fragment scrolling.
|
|
1490
|
+
*/
|
|
1491
|
+
fragment?: {
|
|
1492
|
+
/**
|
|
1493
|
+
* Enable fragment scrolling (scroll to element with id)
|
|
1494
|
+
* @default false
|
|
1495
|
+
*/
|
|
1496
|
+
enabled?: boolean;
|
|
1497
|
+
/**
|
|
1498
|
+
* Whether to use smooth scrolling or not.
|
|
1499
|
+
* @default false
|
|
1500
|
+
*/
|
|
1501
|
+
smooth?: boolean;
|
|
1502
|
+
};
|
|
1503
|
+
};
|
|
1504
|
+
declare const ET_DISABLE_SCROLL_TOP: unique symbol;
|
|
1505
|
+
declare const ET_DISABLE_SCROLL_TOP_AS_RETURN_ROUTE: unique symbol;
|
|
1506
|
+
declare const ET_DISABLE_SCROLL_TOP_ON_PATH_PARAM_CHANGE: unique symbol;
|
|
1507
|
+
type RouterDisableScrollTopConfig = {
|
|
1508
|
+
/**
|
|
1509
|
+
* Whether to disable scroll to top ONLY when navigating back to this route.
|
|
1510
|
+
* @default false
|
|
1511
|
+
*/
|
|
1512
|
+
asReturnRoute?: boolean;
|
|
1513
|
+
/**
|
|
1514
|
+
* Whether to disable scroll to top when a path param changes.
|
|
1515
|
+
* @default false
|
|
1516
|
+
*/
|
|
1517
|
+
onPathParamChange?: boolean;
|
|
1518
|
+
};
|
|
1519
|
+
declare const routerDisableScrollTop: (config?: RouterDisableScrollTopConfig) => {
|
|
1520
|
+
[ET_DISABLE_SCROLL_TOP_ON_PATH_PARAM_CHANGE]?: boolean | undefined;
|
|
1521
|
+
[ET_DISABLE_SCROLL_TOP]: boolean;
|
|
1522
|
+
} | {
|
|
1523
|
+
[ET_DISABLE_SCROLL_TOP_ON_PATH_PARAM_CHANGE]?: boolean | undefined;
|
|
1524
|
+
[ET_DISABLE_SCROLL_TOP_AS_RETURN_ROUTE]: boolean;
|
|
1525
|
+
};
|
|
1526
|
+
declare const setupScrollRestoration: (config?: SetupScrollRestorationConfig) => void;
|
|
1527
|
+
|
|
1528
|
+
declare const signalIsRendered: () => _angular_core.Signal<boolean>;
|
|
1529
|
+
declare const createIsRenderedSignal: () => {
|
|
1530
|
+
state: _angular_core.WritableSignal<boolean>;
|
|
1531
|
+
bind: () => _angular_core.EffectRef;
|
|
1532
|
+
};
|
|
1533
|
+
declare const createCanAnimateSignal: () => {
|
|
1534
|
+
state: _angular_core.Signal<boolean>;
|
|
1535
|
+
};
|
|
1536
|
+
|
|
1537
|
+
type RouterState = {
|
|
1538
|
+
data: Data;
|
|
1539
|
+
pathParams: Params;
|
|
1540
|
+
queryParams: Params;
|
|
1541
|
+
title: string | null;
|
|
1542
|
+
fragment: string | null;
|
|
1543
|
+
};
|
|
1544
|
+
declare const ET_PROPERTY_REMOVED: unique symbol;
|
|
1545
|
+
type InjectUtilConfig = {
|
|
1546
|
+
/** The injector to use for the injection. Must be provided if the function is not called from within a injection context. */
|
|
1547
|
+
injector?: Injector;
|
|
1548
|
+
};
|
|
1549
|
+
type InjectUtilTransformConfig<In, Out> = {
|
|
1550
|
+
/**
|
|
1551
|
+
* A transform function similar to the `transform` function in Angular input bindings.
|
|
1552
|
+
* Can be used to transform the value before it is returned.
|
|
1553
|
+
* E.g. transforming `"true"` to `true` for a boolean attribute.
|
|
1554
|
+
*/
|
|
1555
|
+
transform?: (value: In) => Out;
|
|
1556
|
+
};
|
|
1557
|
+
declare const transformOrReturn: <In, Out>(src: Signal<In>, config?: InjectUtilTransformConfig<In, Out>) => Signal<Out>;
|
|
1558
|
+
/** Inject the current router event */
|
|
1559
|
+
declare const injectRouterEvent: () => Signal<Event$1>;
|
|
1560
|
+
/**
|
|
1561
|
+
* Signal that indicates whether the router has been initialized.
|
|
1562
|
+
* The router is considered initialized once the first NavigationEnd event with an id different than -1 has been emitted.
|
|
1563
|
+
*/
|
|
1564
|
+
declare const injectIsRouterInitialized: () => Signal<boolean>;
|
|
1565
|
+
/**
|
|
1566
|
+
* Inject the current url.
|
|
1567
|
+
* The url includes query params as well as the fragment. Use `injectRoute` instead if you are not intrusted in those.
|
|
1568
|
+
* @example "/my-page?query=1¶m=true#fragment"
|
|
1569
|
+
*/
|
|
1570
|
+
declare const injectUrl: () => Signal<string>;
|
|
1571
|
+
/**
|
|
1572
|
+
* Inject the current route
|
|
1573
|
+
* @example "/my-page"
|
|
1574
|
+
*/
|
|
1575
|
+
declare const injectRoute: () => Signal<string>;
|
|
1576
|
+
/**
|
|
1577
|
+
* Inject the complete router state. This includes the current route data, path params, query params, title and fragment.
|
|
1578
|
+
*/
|
|
1579
|
+
declare const injectRouterState: () => Signal<RouterState>;
|
|
1580
|
+
/** Inject a signal containing the current route fragment (the part after the # inside the url if present) */
|
|
1581
|
+
declare const injectFragment: <T = string | null>(config?: InjectUtilConfig & InjectUtilTransformConfig<string | null, T>) => Signal<T>;
|
|
1582
|
+
/** Inject all currently available query parameters as a signal */
|
|
1583
|
+
declare const injectQueryParams: () => Signal<Params>;
|
|
1584
|
+
/** Inject all currently available route data as a signal */
|
|
1585
|
+
declare const injectRouteData: () => Signal<Data>;
|
|
1586
|
+
/** Inject the current route title as a signal */
|
|
1587
|
+
declare const injectRouteTitle: <T = string | null>(config?: InjectUtilTransformConfig<string | null, T>) => Signal<T>;
|
|
1588
|
+
/** Inject all currently available path parameters as a signal */
|
|
1589
|
+
declare const injectPathParams: () => Signal<Params>;
|
|
1590
|
+
type InjectQueryParamConfig<T> = InjectUtilTransformConfig<string | null, T> & {
|
|
1591
|
+
/**
|
|
1592
|
+
* If true, the initial value will be read from the browser's url.
|
|
1593
|
+
* Note that this will not work with arrays or complex objects.
|
|
1594
|
+
*/
|
|
1595
|
+
requireSync?: boolean;
|
|
1596
|
+
};
|
|
1597
|
+
/** Inject a specific query parameter as a signal */
|
|
1598
|
+
declare const injectQueryParam: <T = string | null>(key: string, config?: InjectQueryParamConfig<T>) => Signal<T>;
|
|
1599
|
+
/** Inject a specific route data item as a signal */
|
|
1600
|
+
declare const injectRouteDataItem: <T = unknown>(key: string, config?: InjectUtilTransformConfig<unknown, T>) => Signal<T>;
|
|
1601
|
+
/** Inject a specific path parameter as a signal */
|
|
1602
|
+
declare const injectPathParam: <T = string | null>(key: string, config?: InjectUtilTransformConfig<string | null, T>) => Signal<T>;
|
|
1603
|
+
/**
|
|
1604
|
+
* Inject query params that changed during navigation. Unchanged query params will be ignored.
|
|
1605
|
+
* Removed query params will be represented by the symbol `ET_PROPERTY_REMOVED`.
|
|
1606
|
+
*/
|
|
1607
|
+
declare const injectQueryParamChanges: () => Signal<Record<string, unknown>>;
|
|
1608
|
+
/**
|
|
1609
|
+
* Inject path params that changed during navigation. Unchanged path params will be ignored.
|
|
1610
|
+
* Removed path params will be represented by the symbol `ET_PROPERTY_REMOVED`.
|
|
1611
|
+
*/
|
|
1612
|
+
declare const injectPathParamChanges: () => Signal<Record<string, unknown>>;
|
|
1613
|
+
|
|
1614
|
+
type HeadBinding<T> = {
|
|
1615
|
+
id: symbol;
|
|
1616
|
+
value: T;
|
|
1617
|
+
priority?: number;
|
|
1618
|
+
};
|
|
1619
|
+
declare const applyHeadBinding: <T>(binding: MaybeSignal<T | null | undefined>, applyFn: (value: T) => void, removeFn: () => void, isValid?: (value: T | null | undefined) => value is T) => void;
|
|
1620
|
+
declare const createPropertyBinding: <TConfig>(configBuilder: (value: string) => TConfig, applyConfigFn: (config: MaybeSignal<TConfig | null | undefined>) => void) => (binding: MaybeSignal<string | null | undefined>) => void;
|
|
1621
|
+
declare const createArrayPropertyBinding: <TConfig>(configBuilder: (value: string, index: number) => TConfig, applyConfigFn: (config: MaybeSignal<TConfig | null | undefined>) => void) => (binding: MaybeSignal<string[] | null | undefined>) => void;
|
|
1622
|
+
declare const toStringBinding: (binding: MaybeSignal<string | number | null | undefined>) => MaybeSignal<string | null | undefined>;
|
|
1623
|
+
declare const createBulkPropertyBinding: <TConfig extends Record<string, unknown>>(propertyPrefix: string, applyConfigFn: (property: string, binding: MaybeSignal<string | null | undefined>) => void) => (config: TConfig) => void;
|
|
1624
|
+
|
|
1625
|
+
type Context = {
|
|
1626
|
+
'@context': 'https://schema.org';
|
|
1627
|
+
};
|
|
1628
|
+
type Thing = {
|
|
1629
|
+
'@type': string;
|
|
1630
|
+
name?: string;
|
|
1631
|
+
description?: string;
|
|
1632
|
+
url?: string;
|
|
1633
|
+
image?: string | string[];
|
|
1634
|
+
};
|
|
1635
|
+
type Organization = Thing & {
|
|
1636
|
+
'@type': 'Organization';
|
|
1637
|
+
logo?: string;
|
|
1638
|
+
email?: string;
|
|
1639
|
+
telephone?: string;
|
|
1640
|
+
address?: PostalAddress;
|
|
1641
|
+
};
|
|
1642
|
+
type Person = Thing & {
|
|
1643
|
+
'@type': 'Person';
|
|
1644
|
+
givenName?: string;
|
|
1645
|
+
familyName?: string;
|
|
1646
|
+
email?: string;
|
|
1647
|
+
jobTitle?: string;
|
|
1648
|
+
};
|
|
1649
|
+
type Article = Thing & {
|
|
1650
|
+
'@type': 'Article';
|
|
1651
|
+
headline?: string;
|
|
1652
|
+
author?: Person | Organization;
|
|
1653
|
+
datePublished?: string;
|
|
1654
|
+
dateModified?: string;
|
|
1655
|
+
};
|
|
1656
|
+
type WebPage = Thing & {
|
|
1657
|
+
'@type': 'WebPage';
|
|
1658
|
+
headline?: string;
|
|
1659
|
+
author?: Person | Organization;
|
|
1660
|
+
datePublished?: string;
|
|
1661
|
+
};
|
|
1662
|
+
type PostalAddress = {
|
|
1663
|
+
'@type': 'PostalAddress';
|
|
1664
|
+
streetAddress?: string;
|
|
1665
|
+
addressLocality?: string;
|
|
1666
|
+
addressRegion?: string;
|
|
1667
|
+
postalCode?: string;
|
|
1668
|
+
addressCountry?: string;
|
|
1669
|
+
};
|
|
1670
|
+
type BreadcrumbList = Thing & {
|
|
1671
|
+
'@type': 'BreadcrumbList';
|
|
1672
|
+
itemListElement: ListItem[];
|
|
1673
|
+
};
|
|
1674
|
+
type ListItem = {
|
|
1675
|
+
'@type': 'ListItem';
|
|
1676
|
+
position: number;
|
|
1677
|
+
name: string;
|
|
1678
|
+
item?: string;
|
|
1679
|
+
};
|
|
1680
|
+
type SportsEvent = Thing & {
|
|
1681
|
+
'@type': 'SportsEvent';
|
|
1682
|
+
startDate?: string;
|
|
1683
|
+
endDate?: string;
|
|
1684
|
+
location?: Place;
|
|
1685
|
+
competitor?: SportsTeam | Person;
|
|
1686
|
+
organizer?: Organization | Person;
|
|
1687
|
+
sport?: string;
|
|
1688
|
+
};
|
|
1689
|
+
type SportsTeam = Organization & {
|
|
1690
|
+
'@type': 'SportsTeam';
|
|
1691
|
+
athlete?: Person[];
|
|
1692
|
+
coach?: Person;
|
|
1693
|
+
memberOf?: SportsOrganization;
|
|
1694
|
+
};
|
|
1695
|
+
type SportsOrganization = Organization & {
|
|
1696
|
+
'@type': 'SportsOrganization';
|
|
1697
|
+
sport?: string;
|
|
1698
|
+
};
|
|
1699
|
+
type Place = Thing & {
|
|
1700
|
+
'@type': 'Place';
|
|
1701
|
+
address?: PostalAddress;
|
|
1702
|
+
};
|
|
1703
|
+
type VideoGame = Thing & {
|
|
1704
|
+
'@type': 'VideoGame';
|
|
1705
|
+
genre?: string;
|
|
1706
|
+
publisher?: Organization;
|
|
1707
|
+
gamePlatform?: string | string[];
|
|
1708
|
+
playMode?: string;
|
|
1709
|
+
};
|
|
1710
|
+
type VideoGameSeries = Thing & {
|
|
1711
|
+
'@type': 'VideoGameSeries';
|
|
1712
|
+
containsSeason?: CreativeWorkSeason[];
|
|
1713
|
+
};
|
|
1714
|
+
type CreativeWorkSeason = Thing & {
|
|
1715
|
+
'@type': 'CreativeWorkSeason';
|
|
1716
|
+
seasonNumber?: number;
|
|
1717
|
+
startDate?: string;
|
|
1718
|
+
endDate?: string;
|
|
1719
|
+
};
|
|
1720
|
+
type SportsActivityLocation = Place & {
|
|
1721
|
+
'@type': 'SportsActivityLocation';
|
|
1722
|
+
};
|
|
1723
|
+
type WithContext<T extends Thing> = T & Context;
|
|
1724
|
+
type Graph = {
|
|
1725
|
+
'@context': 'https://schema.org';
|
|
1726
|
+
'@graph': Thing[];
|
|
1727
|
+
};
|
|
1728
|
+
|
|
1729
|
+
type jsonLd_d_Article = Article;
|
|
1730
|
+
type jsonLd_d_BreadcrumbList = BreadcrumbList;
|
|
1731
|
+
type jsonLd_d_Context = Context;
|
|
1732
|
+
type jsonLd_d_CreativeWorkSeason = CreativeWorkSeason;
|
|
1733
|
+
type jsonLd_d_Graph = Graph;
|
|
1734
|
+
type jsonLd_d_ListItem = ListItem;
|
|
1735
|
+
type jsonLd_d_Organization = Organization;
|
|
1736
|
+
type jsonLd_d_Person = Person;
|
|
1737
|
+
type jsonLd_d_Place = Place;
|
|
1738
|
+
type jsonLd_d_PostalAddress = PostalAddress;
|
|
1739
|
+
type jsonLd_d_SportsActivityLocation = SportsActivityLocation;
|
|
1740
|
+
type jsonLd_d_SportsEvent = SportsEvent;
|
|
1741
|
+
type jsonLd_d_SportsOrganization = SportsOrganization;
|
|
1742
|
+
type jsonLd_d_SportsTeam = SportsTeam;
|
|
1743
|
+
type jsonLd_d_Thing = Thing;
|
|
1744
|
+
type jsonLd_d_VideoGame = VideoGame;
|
|
1745
|
+
type jsonLd_d_VideoGameSeries = VideoGameSeries;
|
|
1746
|
+
type jsonLd_d_WebPage = WebPage;
|
|
1747
|
+
type jsonLd_d_WithContext<T extends Thing> = WithContext<T>;
|
|
1748
|
+
declare namespace jsonLd_d {
|
|
1749
|
+
export type { jsonLd_d_Article as Article, jsonLd_d_BreadcrumbList as BreadcrumbList, jsonLd_d_Context as Context, jsonLd_d_CreativeWorkSeason as CreativeWorkSeason, jsonLd_d_Graph as Graph, jsonLd_d_ListItem as ListItem, jsonLd_d_Organization as Organization, jsonLd_d_Person as Person, jsonLd_d_Place as Place, jsonLd_d_PostalAddress as PostalAddress, jsonLd_d_SportsActivityLocation as SportsActivityLocation, jsonLd_d_SportsEvent as SportsEvent, jsonLd_d_SportsOrganization as SportsOrganization, jsonLd_d_SportsTeam as SportsTeam, jsonLd_d_Thing as Thing, jsonLd_d_VideoGame as VideoGame, jsonLd_d_VideoGameSeries as VideoGameSeries, jsonLd_d_WebPage as WebPage, jsonLd_d_WithContext as WithContext };
|
|
1750
|
+
}
|
|
1751
|
+
|
|
1752
|
+
type LinkConfig = {
|
|
1753
|
+
rel: string;
|
|
1754
|
+
href: string;
|
|
1755
|
+
hreflang?: string;
|
|
1756
|
+
type?: string;
|
|
1757
|
+
sizes?: string;
|
|
1758
|
+
media?: string;
|
|
1759
|
+
as?: string;
|
|
1760
|
+
crossorigin?: string;
|
|
1761
|
+
integrity?: string;
|
|
1762
|
+
referrerpolicy?: string;
|
|
1763
|
+
/** Unique identifier for the link */
|
|
1764
|
+
key?: string;
|
|
1765
|
+
/** Whether multiple instances of this link are allowed */
|
|
1766
|
+
allowMultiple?: boolean;
|
|
1767
|
+
};
|
|
1768
|
+
type LinkStoreConfig = {
|
|
1769
|
+
/**
|
|
1770
|
+
* Link rels that are allowed to have multiple instances
|
|
1771
|
+
* If you want to override the default set, extend your set from {@link DEFAULT_MULTI_INSTANCE_RELS}.
|
|
1772
|
+
* Otherwise, common multiple instance links may be removed unintentionally.
|
|
1773
|
+
* @example
|
|
1774
|
+
* ```ts
|
|
1775
|
+
* import { DEFAULT_MULTI_INSTANCE_RELS, provideLinkStoreConfig } from '@ethlete/core';
|
|
1776
|
+
*
|
|
1777
|
+
* provideLinkStoreConfig({
|
|
1778
|
+
* multiInstanceRels: new Set([
|
|
1779
|
+
* ...DEFAULT_MULTI_INSTANCE_RELS,
|
|
1780
|
+
* 'custom-rel',
|
|
1781
|
+
* ]),
|
|
1782
|
+
* });
|
|
1783
|
+
* ```
|
|
1784
|
+
*/
|
|
1785
|
+
multiInstanceRels: Set<string>;
|
|
1786
|
+
};
|
|
1787
|
+
declare const DEFAULT_MULTI_INSTANCE_RELS: Set<string>;
|
|
1788
|
+
declare const provideLinkStoreConfig: (valueOverride?: Partial<LinkStoreConfig> | undefined) => _angular_core.Provider[];
|
|
1789
|
+
declare const injectLinkStoreConfig: {
|
|
1790
|
+
(): LinkStoreConfig;
|
|
1791
|
+
(options: _angular_core.InjectOptions & {
|
|
1792
|
+
optional?: false;
|
|
1793
|
+
}): LinkStoreConfig;
|
|
1794
|
+
(options: _angular_core.InjectOptions): LinkStoreConfig | null;
|
|
1795
|
+
};
|
|
1796
|
+
declare const provideLinkStore: () => _angular_core.Provider[];
|
|
1797
|
+
declare const injectLinkStore: {
|
|
1798
|
+
(): {
|
|
1799
|
+
addLink: (id: symbol, linkConfig: LinkConfig) => void;
|
|
1800
|
+
removeLink: (id: symbol, key?: string) => void;
|
|
1801
|
+
getLinkKey: (linkConfig: LinkConfig) => string;
|
|
1802
|
+
};
|
|
1803
|
+
(options: _angular_core.InjectOptions & {
|
|
1804
|
+
optional?: false;
|
|
1805
|
+
}): {
|
|
1806
|
+
addLink: (id: symbol, linkConfig: LinkConfig) => void;
|
|
1807
|
+
removeLink: (id: symbol, key?: string) => void;
|
|
1808
|
+
getLinkKey: (linkConfig: LinkConfig) => string;
|
|
1809
|
+
};
|
|
1810
|
+
(options: _angular_core.InjectOptions): {
|
|
1811
|
+
addLink: (id: symbol, linkConfig: LinkConfig) => void;
|
|
1812
|
+
removeLink: (id: symbol, key?: string) => void;
|
|
1813
|
+
getLinkKey: (linkConfig: LinkConfig) => string;
|
|
1814
|
+
} | null;
|
|
1815
|
+
};
|
|
1816
|
+
declare const applyLinkBinding: (binding: MaybeSignal<LinkConfig | null | undefined>) => void;
|
|
1817
|
+
declare const applyCanonicalBinding: (binding: MaybeSignal<string | null | undefined>) => void;
|
|
1818
|
+
declare const applyAlternateBinding: (hreflang: string, binding: MaybeSignal<string | null | undefined>) => void;
|
|
1819
|
+
type AlternateLanguagesConfig = {
|
|
1820
|
+
[hreflang: string]: MaybeSignal<string | null | undefined>;
|
|
1821
|
+
};
|
|
1822
|
+
declare const applyAlternateLanguagesBindings: (config: AlternateLanguagesConfig) => void;
|
|
1823
|
+
declare const applyPrevBinding: (binding: MaybeSignal<string | null | undefined>) => void;
|
|
1824
|
+
declare const applyNextBinding: (binding: MaybeSignal<string | null | undefined>) => void;
|
|
1825
|
+
type ResourceHintsConfig = {
|
|
1826
|
+
preconnect?: MaybeSignal<string[] | null | undefined>;
|
|
1827
|
+
dnsPrefetch?: MaybeSignal<string[] | null | undefined>;
|
|
1828
|
+
prefetch?: MaybeSignal<string[] | null | undefined>;
|
|
1829
|
+
prerender?: MaybeSignal<string[] | null | undefined>;
|
|
1830
|
+
};
|
|
1831
|
+
declare const applyResourceHintsBindings: (config: ResourceHintsConfig) => void;
|
|
1832
|
+
|
|
1833
|
+
type MetaTagConfig = {
|
|
1834
|
+
/** Unique identifier for the tag */
|
|
1835
|
+
key?: string;
|
|
1836
|
+
/** Whether multiple instances of this tag are allowed */
|
|
1837
|
+
allowMultiple?: boolean;
|
|
1838
|
+
charset?: string;
|
|
1839
|
+
content?: string;
|
|
1840
|
+
httpEquiv?: string;
|
|
1841
|
+
id?: string;
|
|
1842
|
+
itemprop?: string;
|
|
1843
|
+
name?: string;
|
|
1844
|
+
property?: string;
|
|
1845
|
+
scheme?: string;
|
|
1846
|
+
url?: string;
|
|
1847
|
+
};
|
|
1848
|
+
type MetaConfig = {
|
|
1849
|
+
/**
|
|
1850
|
+
* A function to transform meta tag content based on locale.
|
|
1851
|
+
* Use `provideLocale()` to update the locale dynamically.
|
|
1852
|
+
*/
|
|
1853
|
+
transformer: (content: string, locale: string) => string;
|
|
1854
|
+
/**
|
|
1855
|
+
* Tags that are allowed to have multiple instances
|
|
1856
|
+
* If you want to override the default set, extend your set from {@link DEFAULT_MULTI_INSTANCE_TAGS}.
|
|
1857
|
+
* Otherwise, common multiple instance tags may be removed unintentionally.
|
|
1858
|
+
* @example
|
|
1859
|
+
* ```ts
|
|
1860
|
+
* import { DEFAULT_MULTI_INSTANCE_TAGS, provideMetaConfig } from '@ethlete/core';
|
|
1861
|
+
*
|
|
1862
|
+
* provideMetaConfig({
|
|
1863
|
+
* multiInstanceTags: new Set([
|
|
1864
|
+
* ...DEFAULT_MULTI_INSTANCE_TAGS,
|
|
1865
|
+
* 'name="custom-multiple-tag"',
|
|
1866
|
+
* ]),
|
|
1867
|
+
* });
|
|
1868
|
+
* ```
|
|
1869
|
+
*/
|
|
1870
|
+
multiInstanceTags: Set<string>;
|
|
1871
|
+
};
|
|
1872
|
+
declare const DEFAULT_MULTI_INSTANCE_TAGS: Set<string>;
|
|
1873
|
+
declare const provideMetaConfig: (valueOverride?: Partial<MetaConfig> | undefined) => _angular_core.Provider[];
|
|
1874
|
+
declare const injectMetaConfig: {
|
|
1875
|
+
(): MetaConfig;
|
|
1876
|
+
(options: _angular_core.InjectOptions & {
|
|
1877
|
+
optional?: false;
|
|
1878
|
+
}): MetaConfig;
|
|
1879
|
+
(options: _angular_core.InjectOptions): MetaConfig | null;
|
|
1880
|
+
};
|
|
1881
|
+
declare const provideMetaStore: () => _angular_core.Provider[];
|
|
1882
|
+
declare const injectMetaStore: {
|
|
1883
|
+
(): {
|
|
1884
|
+
addTag: (id: symbol, rawConfig: MetaTagConfig) => void;
|
|
1885
|
+
removeTag: (id: symbol, selector?: string) => void;
|
|
1886
|
+
getSelector: (config: MetaTagConfig) => string;
|
|
1887
|
+
};
|
|
1888
|
+
(options: _angular_core.InjectOptions & {
|
|
1889
|
+
optional?: false;
|
|
1890
|
+
}): {
|
|
1891
|
+
addTag: (id: symbol, rawConfig: MetaTagConfig) => void;
|
|
1892
|
+
removeTag: (id: symbol, selector?: string) => void;
|
|
1893
|
+
getSelector: (config: MetaTagConfig) => string;
|
|
1894
|
+
};
|
|
1895
|
+
(options: _angular_core.InjectOptions): {
|
|
1896
|
+
addTag: (id: symbol, rawConfig: MetaTagConfig) => void;
|
|
1897
|
+
removeTag: (id: symbol, selector?: string) => void;
|
|
1898
|
+
getSelector: (config: MetaTagConfig) => string;
|
|
1899
|
+
} | null;
|
|
1900
|
+
};
|
|
1901
|
+
declare const applyMetaBinding: (binding: MaybeSignal<MetaTagConfig | null | undefined>) => void;
|
|
1902
|
+
declare const applyDescriptionBinding: (binding: MaybeSignal<string | null | undefined>) => void;
|
|
1903
|
+
declare const applyKeywordsBinding: (binding: MaybeSignal<string[] | null | undefined>) => void;
|
|
1904
|
+
declare const applyAuthorBinding: (binding: MaybeSignal<string | null | undefined>) => void;
|
|
1905
|
+
type RobotsConfig = {
|
|
1906
|
+
index?: boolean;
|
|
1907
|
+
follow?: boolean;
|
|
1908
|
+
noarchive?: boolean;
|
|
1909
|
+
nosnippet?: boolean;
|
|
1910
|
+
noimageindex?: boolean;
|
|
1911
|
+
maxSnippet?: number;
|
|
1912
|
+
maxImagePreview?: 'none' | 'standard' | 'large';
|
|
1913
|
+
maxVideoPreview?: number;
|
|
1914
|
+
};
|
|
1915
|
+
declare const applyRobotsBinding: (binding: MaybeSignal<RobotsConfig | null | undefined>) => void;
|
|
1916
|
+
declare const applyOgBinding: (property: string, binding: MaybeSignal<string | null | undefined>) => void;
|
|
1917
|
+
type OpenGraphConfig = {
|
|
1918
|
+
title?: MaybeSignal<string | null | undefined>;
|
|
1919
|
+
description?: MaybeSignal<string | null | undefined>;
|
|
1920
|
+
url?: MaybeSignal<string | null | undefined>;
|
|
1921
|
+
type?: MaybeSignal<string | null | undefined>;
|
|
1922
|
+
siteName?: MaybeSignal<string | null | undefined>;
|
|
1923
|
+
locale?: MaybeSignal<string | null | undefined>;
|
|
1924
|
+
image?: MaybeSignal<string | null | undefined>;
|
|
1925
|
+
images?: MaybeSignal<string[] | null | undefined>;
|
|
1926
|
+
imageUrl?: MaybeSignal<string | null | undefined>;
|
|
1927
|
+
imageSecureUrl?: MaybeSignal<string | null | undefined>;
|
|
1928
|
+
imageType?: MaybeSignal<string | null | undefined>;
|
|
1929
|
+
imageWidth?: MaybeSignal<string | number | null | undefined>;
|
|
1930
|
+
imageHeight?: MaybeSignal<string | number | null | undefined>;
|
|
1931
|
+
imageAlt?: MaybeSignal<string | null | undefined>;
|
|
1932
|
+
video?: MaybeSignal<string | null | undefined>;
|
|
1933
|
+
videos?: MaybeSignal<string[] | null | undefined>;
|
|
1934
|
+
videoUrl?: MaybeSignal<string | null | undefined>;
|
|
1935
|
+
videoSecureUrl?: MaybeSignal<string | null | undefined>;
|
|
1936
|
+
videoType?: MaybeSignal<string | null | undefined>;
|
|
1937
|
+
videoWidth?: MaybeSignal<string | number | null | undefined>;
|
|
1938
|
+
videoHeight?: MaybeSignal<string | number | null | undefined>;
|
|
1939
|
+
audio?: MaybeSignal<string | null | undefined>;
|
|
1940
|
+
audios?: MaybeSignal<string[] | null | undefined>;
|
|
1941
|
+
};
|
|
1942
|
+
declare const applyOpenGraphBindings: (config: OpenGraphConfig) => void;
|
|
1943
|
+
type TwitterCardConfig = {
|
|
1944
|
+
card?: MaybeSignal<'summary' | 'summary_large_image' | 'app' | 'player' | null | undefined>;
|
|
1945
|
+
site?: MaybeSignal<string | null | undefined>;
|
|
1946
|
+
siteId?: MaybeSignal<string | null | undefined>;
|
|
1947
|
+
creator?: MaybeSignal<string | null | undefined>;
|
|
1948
|
+
creatorId?: MaybeSignal<string | null | undefined>;
|
|
1949
|
+
title?: MaybeSignal<string | null | undefined>;
|
|
1950
|
+
description?: MaybeSignal<string | null | undefined>;
|
|
1951
|
+
image?: MaybeSignal<string | null | undefined>;
|
|
1952
|
+
images?: MaybeSignal<string[] | null | undefined>;
|
|
1953
|
+
imageAlt?: MaybeSignal<string | null | undefined>;
|
|
1954
|
+
player?: MaybeSignal<string | null | undefined>;
|
|
1955
|
+
playerWidth?: MaybeSignal<string | number | null | undefined>;
|
|
1956
|
+
playerHeight?: MaybeSignal<string | number | null | undefined>;
|
|
1957
|
+
playerStream?: MaybeSignal<string | null | undefined>;
|
|
1958
|
+
};
|
|
1959
|
+
declare const applyTwitterCardBindings: (config: TwitterCardConfig) => void;
|
|
1960
|
+
type ArticleConfig = {
|
|
1961
|
+
publishedTime?: MaybeSignal<string | null | undefined>;
|
|
1962
|
+
modifiedTime?: MaybeSignal<string | null | undefined>;
|
|
1963
|
+
expirationTime?: MaybeSignal<string | null | undefined>;
|
|
1964
|
+
author?: MaybeSignal<string | null | undefined>;
|
|
1965
|
+
authors?: MaybeSignal<string[] | null | undefined>;
|
|
1966
|
+
section?: MaybeSignal<string | null | undefined>;
|
|
1967
|
+
tag?: MaybeSignal<string | null | undefined>;
|
|
1968
|
+
tags?: MaybeSignal<string[] | null | undefined>;
|
|
1969
|
+
};
|
|
1970
|
+
declare const applyArticleBindings: (config: ArticleConfig) => void;
|
|
1971
|
+
type SocialMediaConfig = {
|
|
1972
|
+
title?: MaybeSignal<string | null | undefined>;
|
|
1973
|
+
description?: MaybeSignal<string | null | undefined>;
|
|
1974
|
+
image?: MaybeSignal<string | null | undefined>;
|
|
1975
|
+
url?: MaybeSignal<string | null | undefined>;
|
|
1976
|
+
openGraph?: Partial<OpenGraphConfig>;
|
|
1977
|
+
twitter?: Partial<TwitterCardConfig>;
|
|
1978
|
+
article?: Partial<ArticleConfig>;
|
|
1979
|
+
};
|
|
1980
|
+
declare const applySocialMediaBindings: (config: SocialMediaConfig) => void;
|
|
1981
|
+
|
|
1982
|
+
type MaybeObservable<T> = T | Observable<T>;
|
|
1983
|
+
type SeoConfig = {
|
|
1984
|
+
title?: MaybeObservable<string>;
|
|
1985
|
+
description?: MaybeObservable<string>;
|
|
1986
|
+
keywords?: MaybeObservable<string[]>;
|
|
1987
|
+
icon?: MaybeObservable<string>;
|
|
1988
|
+
themeColor?: MaybeObservable<string>;
|
|
1989
|
+
colorScheme?: MaybeObservable<'light' | 'dark'>;
|
|
1990
|
+
robots?: MaybeObservable<string>;
|
|
1991
|
+
canonical?: MaybeObservable<string>;
|
|
1992
|
+
alternate?: MaybeObservable<AlternateLink>[];
|
|
1993
|
+
og?: MaybeObservable<OpenGraph>;
|
|
1994
|
+
twitter?: MaybeObservable<TwitterCard>;
|
|
1995
|
+
facebook?: MaybeObservable<FacebookCard>;
|
|
1996
|
+
[key: string]: MaybeObservable<unknown>;
|
|
1997
|
+
};
|
|
1998
|
+
type AlternateLink = {
|
|
1999
|
+
href: string;
|
|
2000
|
+
hreflang: string;
|
|
2001
|
+
};
|
|
2002
|
+
type OpenGraph = {
|
|
2003
|
+
title?: MaybeObservable<string>;
|
|
2004
|
+
description?: MaybeObservable<string>;
|
|
2005
|
+
type?: MaybeObservable<string>;
|
|
2006
|
+
url?: MaybeObservable<string>;
|
|
2007
|
+
image?: MaybeObservable<string>;
|
|
2008
|
+
siteName?: MaybeObservable<string>;
|
|
2009
|
+
locale?: MaybeObservable<string>;
|
|
2010
|
+
localeAlternate?: MaybeObservable<string[]>;
|
|
2011
|
+
};
|
|
2012
|
+
type TwitterCard = {
|
|
2013
|
+
card?: MaybeObservable<string>;
|
|
2014
|
+
site?: MaybeObservable<string>;
|
|
2015
|
+
creator?: MaybeObservable<string>;
|
|
2016
|
+
title?: MaybeObservable<string>;
|
|
2017
|
+
description?: MaybeObservable<string>;
|
|
2018
|
+
image?: MaybeObservable<string>;
|
|
2019
|
+
imageAlt?: MaybeObservable<string>;
|
|
2020
|
+
};
|
|
2021
|
+
type FacebookCard = {
|
|
2022
|
+
title?: MaybeObservable<string>;
|
|
2023
|
+
description?: MaybeObservable<string>;
|
|
2024
|
+
image?: MaybeObservable<string>;
|
|
2025
|
+
imageAlt?: MaybeObservable<string>;
|
|
2026
|
+
type?: MaybeObservable<string>;
|
|
2027
|
+
url?: MaybeObservable<string>;
|
|
2028
|
+
siteName?: MaybeObservable<string>;
|
|
2029
|
+
locale?: MaybeObservable<string>;
|
|
2030
|
+
localeAlternate?: MaybeObservable<string[]>;
|
|
2031
|
+
};
|
|
2032
|
+
|
|
2033
|
+
declare const SEO_DIRECTIVE_TOKEN: InjectionToken<SeoDirective>;
|
|
2034
|
+
/** @deprecated use binding utils instead */
|
|
2035
|
+
declare class SeoDirective implements OnInit, OnDestroy {
|
|
2036
|
+
private readonly _metaService;
|
|
2037
|
+
private readonly _titleService;
|
|
2038
|
+
private readonly _onDeactivate$;
|
|
2039
|
+
private _isDeactivated;
|
|
2040
|
+
readonly parent: SeoDirective | null;
|
|
2041
|
+
get config(): SeoConfig;
|
|
2042
|
+
private _config;
|
|
2043
|
+
ngOnInit(): void;
|
|
2044
|
+
ngOnDestroy(): void;
|
|
2045
|
+
updateConfig(config: SeoConfig): void;
|
|
2046
|
+
_activate(): void;
|
|
2047
|
+
_deactivate(): void;
|
|
2048
|
+
private _update;
|
|
2049
|
+
private _cleanUp;
|
|
2050
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SeoDirective, never>;
|
|
2051
|
+
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<SeoDirective, never, never, {}, {}, never, never, true, never>;
|
|
2052
|
+
}
|
|
2053
|
+
|
|
2054
|
+
type StructuredDataConfig = {
|
|
2055
|
+
/**
|
|
2056
|
+
* Where to place the JSON-LD script tag.
|
|
2057
|
+
* - 'head': Traditional placement, loaded before body content
|
|
2058
|
+
* - 'body': Google recommended, better for performance
|
|
2059
|
+
*
|
|
2060
|
+
* Note: You can also use the `StructuredDataComponent` to place structured data
|
|
2061
|
+
* directly within your component templates.
|
|
2062
|
+
*
|
|
2063
|
+
* @default 'body'
|
|
2064
|
+
*/
|
|
2065
|
+
placement: 'head' | 'body';
|
|
2066
|
+
};
|
|
2067
|
+
declare const provideStructuredDataConfig: (valueOverride?: Partial<StructuredDataConfig> | undefined) => _angular_core.Provider[];
|
|
2068
|
+
declare const injectStructuredDataConfig: {
|
|
2069
|
+
(): StructuredDataConfig;
|
|
2070
|
+
(options: _angular_core.InjectOptions & {
|
|
2071
|
+
optional?: false;
|
|
2072
|
+
}): StructuredDataConfig;
|
|
2073
|
+
(options: _angular_core.InjectOptions): StructuredDataConfig | null;
|
|
2074
|
+
};
|
|
2075
|
+
declare const provideStructuredDataStore: () => _angular_core.Provider[];
|
|
2076
|
+
declare const injectStructuredDataStore: {
|
|
2077
|
+
(): {
|
|
2078
|
+
addStructuredData: (id: symbol, data: WithContext<Thing> | Graph) => void;
|
|
2079
|
+
removeStructuredData: (id: symbol) => void;
|
|
2080
|
+
};
|
|
2081
|
+
(options: _angular_core.InjectOptions & {
|
|
2082
|
+
optional?: false;
|
|
2083
|
+
}): {
|
|
2084
|
+
addStructuredData: (id: symbol, data: WithContext<Thing> | Graph) => void;
|
|
2085
|
+
removeStructuredData: (id: symbol) => void;
|
|
2086
|
+
};
|
|
2087
|
+
(options: _angular_core.InjectOptions): {
|
|
2088
|
+
addStructuredData: (id: symbol, data: WithContext<Thing> | Graph) => void;
|
|
2089
|
+
removeStructuredData: (id: symbol) => void;
|
|
2090
|
+
} | null;
|
|
2091
|
+
};
|
|
2092
|
+
declare const applyStructuredDataBinding: (binding: MaybeSignal<WithContext<Thing> | Graph | null | undefined>) => void;
|
|
2093
|
+
|
|
2094
|
+
declare class StructuredDataComponent {
|
|
2095
|
+
private sanitizer;
|
|
2096
|
+
data: _angular_core.InputSignal<Graph | WithContext<Thing> | null | undefined>;
|
|
2097
|
+
jsonLD: _angular_core.Signal<_angular_platform_browser.SafeHtml | null>;
|
|
2098
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<StructuredDataComponent, never>;
|
|
2099
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<StructuredDataComponent, "et-structured-data", never, { "data": { "alias": "data"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
2100
|
+
}
|
|
2101
|
+
|
|
2102
|
+
type TitlePart = {
|
|
2103
|
+
/** The text to be displayed as the title */
|
|
2104
|
+
text: string;
|
|
2105
|
+
/** Whether this part should be used as the starting point for the title construction */
|
|
2106
|
+
useAsStart?: boolean;
|
|
2107
|
+
};
|
|
2108
|
+
type TitleConfig = {
|
|
2109
|
+
/**
|
|
2110
|
+
* The divider string used between title parts
|
|
2111
|
+
* @default '|'
|
|
2112
|
+
*/
|
|
2113
|
+
divider: string;
|
|
2114
|
+
/** The default title to use when no parts are available */
|
|
2115
|
+
defaultTitle: string;
|
|
2116
|
+
/**
|
|
2117
|
+
* A function to transform the title text based on locale.
|
|
2118
|
+
* Use `provideLocale()` to update the locale dynamically.
|
|
2119
|
+
*/
|
|
2120
|
+
transformer: (title: string, locale: string) => string;
|
|
2121
|
+
/**
|
|
2122
|
+
* A title part to be prefixed to all titles
|
|
2123
|
+
*/
|
|
2124
|
+
suffixPart?: TitlePart;
|
|
2125
|
+
/**
|
|
2126
|
+
* A title part to be suffixed to all titles
|
|
2127
|
+
*/
|
|
2128
|
+
prefixPart?: TitlePart;
|
|
2129
|
+
};
|
|
2130
|
+
declare const provideTitleConfig: (valueOverride?: Partial<TitleConfig> | undefined) => _angular_core.Provider[];
|
|
2131
|
+
declare const injectTitleConfig: {
|
|
2132
|
+
(): TitleConfig;
|
|
2133
|
+
(options: _angular_core.InjectOptions & {
|
|
2134
|
+
optional?: false;
|
|
2135
|
+
}): TitleConfig;
|
|
2136
|
+
(options: _angular_core.InjectOptions): TitleConfig | null;
|
|
2137
|
+
};
|
|
2138
|
+
declare const provideTitleStore: () => _angular_core.Provider[];
|
|
2139
|
+
declare const injectTitleStore: {
|
|
2140
|
+
(): {
|
|
2141
|
+
title: _angular_core.Signal<string>;
|
|
2142
|
+
addPart: (id: symbol, part: TitlePart) => void;
|
|
2143
|
+
removePart: (id: symbol) => void;
|
|
2144
|
+
};
|
|
2145
|
+
(options: _angular_core.InjectOptions & {
|
|
2146
|
+
optional?: false;
|
|
2147
|
+
}): {
|
|
2148
|
+
title: _angular_core.Signal<string>;
|
|
2149
|
+
addPart: (id: symbol, part: TitlePart) => void;
|
|
2150
|
+
removePart: (id: symbol) => void;
|
|
2151
|
+
};
|
|
2152
|
+
(options: _angular_core.InjectOptions): {
|
|
2153
|
+
title: _angular_core.Signal<string>;
|
|
2154
|
+
addPart: (id: symbol, part: TitlePart) => void;
|
|
2155
|
+
removePart: (id: symbol) => void;
|
|
2156
|
+
} | null;
|
|
2157
|
+
};
|
|
2158
|
+
declare const applyHeadTitleBinding: (binding: MaybeSignal<string | number | null | undefined>, options?: Omit<TitlePart, "text">) => void;
|
|
2159
|
+
|
|
2160
|
+
export { ANIMATABLE_TOKEN, ANIMATED_IF_TOKEN, ANIMATED_LIFECYCLE_TOKEN, AT_LEAST_ONE_REQUIRED, AnimatableDirective, AnimatedIfDirective, AnimatedLifecycleDirective, AnimatedOverlayDirective, BOUNDARY_ELEMENT_TOKEN, ClickOutsideDirective, DEFAULT_MULTI_INSTANCE_RELS, DEFAULT_MULTI_INSTANCE_TAGS, DEFAULT_VIEWPORT_CONFIG, DISABLE_LOGGER_PARAM, ET_DISABLE_SCROLL_TOP, ET_DISABLE_SCROLL_TOP_AS_RETURN_ROUTE, ET_DISABLE_SCROLL_TOP_ON_PATH_PARAM_CHANGE, ET_PROPERTY_REMOVED, FOCUS_VISIBLE_TRACKER_TOKEN, IS_ARRAY_NOT_EMPTY, IS_EMAIL, InferMimeTypePipe, IsArrayNotEmpty, IsEmail, jsonLd_d as JsonLD, KeyPressManager, MUST_MATCH, MatchStateType, MustMatch, NormalizeGameResultTypePipe, NormalizeMatchParticipantsPipe, NormalizeMatchScorePipe, NormalizeMatchStatePipe, NormalizeMatchTypePipe, PropsDirective, ProvideThemeDirective, RUNTIME_ERROR_NO_DATA, RepeatDirective, RuntimeError, SEO_DIRECTIVE_TOKEN, SeoDirective, StructuredDataComponent, THEME_PROVIDER, ToArrayPipe, TypedQueryList, ValidateAtLeastOneRequired, Validators, applyAlternateBinding, applyAlternateLanguagesBindings, applyArticleBindings, applyAuthorBinding, applyCanonicalBinding, applyDescriptionBinding, applyHeadBinding, applyHeadTitleBinding, applyHostListener, applyHostListeners, applyKeywordsBinding, applyLinkBinding, applyMetaBinding, applyNextBinding, applyOgBinding, applyOpenGraphBindings, applyPrevBinding, applyResourceHintsBindings, applyRobotsBinding, applySocialMediaBindings, applyStructuredDataBinding, applyTwitterCardBindings, areScrollStatesEqual, bindProps, boundingClientRectToElementRect, buildElementSignal, buildSignalEffects, clamp, clone, cloneFormGroup, computedTillFalsy, computedTillTruthy, controlValueSignal, controlValueSignalWithPrevious, createArrayPropertyBinding, createBulkPropertyBinding, createCanAnimateSignal, createComponentId, createCssThemeName, createDependencyStash, createDestroy, createDocumentElementSignal, createElementDictionary, createElementDimensions, createEmptyElementSignal, createFlipAnimation, createFlipAnimationGroup, createHostProps, createIsRenderedSignal, createLogger, createPropHandlers, createPropertyBinding, createProps, createProvider, createRootProvider, createRootThemeCss, createRxHostListener, createSetup, createStaticProvider, createStaticRootProvider, createSwatchCss, createTailwindColorThemes, createTailwindCssVar, createTailwindRgbVar, createThemeStyle, deferredSignal, deleteCookie, easeElastic, easeIn, easeInOut, easeLinear, easeOut, easeOutBack, easeOutBackStrong, elementCanScroll, equal, firstElementSignal, forceReflow, formatRuntimeError, fromNextFrame, getCookie, getDomain, getElementScrollCoordinates, getFormGroupValue, getGroupMatchPoints, getGroupMatchScore, getKnockoutMatchScore, getMatchScoreSubLine, getObjectProperty, hasCookie, inferMimeType, injectAngularRootElement, injectBoundaryElement, injectBreakpointIsMatched, injectBreakpointObserver, injectCanHover, injectColorThemes, injectCurrentBreakpoint, injectDeviceInputType, injectDisplayOrientation, injectFocusVisibleTracker, injectFragment, injectHasPrecisionInput, injectHasTouchInput, injectHostElement, injectIs2Xl, injectIsLandscape, injectIsLg, injectIsMd, injectIsPortrait, injectIsRouterInitialized, injectIsSm, injectIsXl, injectIsXs, injectLinkStore, injectLinkStoreConfig, injectLocale, injectMediaQueryIsMatched, injectMetaConfig, injectMetaStore, injectObserveBreakpoint, injectObserveMediaQuery, injectPathParam, injectPathParamChanges, injectPathParams, injectQueryParam, injectQueryParamChanges, injectQueryParams, injectRenderer, injectRoute, injectRouteData, injectRouteDataItem, injectRouteTitle, injectRouterEvent, injectRouterState, injectScrollbarDimensions, injectStructuredDataConfig, injectStructuredDataStore, injectTemplateRef, injectThemesPrefix, injectTitleConfig, injectTitleStore, injectUrl, injectViewportConfig, injectViewportDimensions, isArray, isElementSignal, isElementVisible, isGroupMatch, isKnockoutMatch, isObject, maybeSignalValue, memoizeSignal, nextFrame, normalizeGameResultType, normalizeMatchParticipant, normalizeMatchParticipants, normalizeMatchScore, normalizeMatchState, normalizeMatchType, previousSignalValue, provideBoundaryElement, provideBreakpointObserver, provideColorThemes, provideColorThemesWithTailwind4, provideFocusVisibleTracker, provideLinkStore, provideLinkStoreConfig, provideLocale, provideMetaConfig, provideMetaStore, provideRenderer, provideStructuredDataConfig, provideStructuredDataStore, provideTitleConfig, provideTitleStore, provideViewportConfig, round, routerDisableScrollTop, scrollToElement, setCookie, setInputSignal, setupScrollRestoration, signalAnimatedNumber, signalAttributes, signalClasses, signalElementChildren, signalElementDimensions, signalElementIntersection, signalElementLastScrollDirection, signalElementMutations, signalElementScrollState, signalHostAttributes, signalHostClasses, signalHostElementDimensions, signalHostElementIntersection, signalHostElementLastScrollDirection, signalHostElementMutations, signalHostElementScrollState, signalHostStyles, signalIsRendered, signalStyles, switchQueryListChanges, syncSignal, templateComputed, toArray, toArrayTrackByFn, toStringBinding, transformOrReturn, unbindProps, useCursorDragScroll, writeScrollbarSizeToCssVariables, writeViewportSizeToCssVariables, ɵProvideColorThemes, ɵProvideThemesPrefix };
|
|
2161
|
+
export type { AlternateLanguagesConfig, AlternateLink, AngularRenderer, AnimatedLifecycleState, AnimatedNumberSignal, AnimatedOverlayComponentBase, AnimatedOverlayMountConfig, AnimatedOverlayState, AnimationEndEvent, AnyTemplateType, ArticleConfig, BindPropsOptions, Breakpoint, BuildMediaQueryOptions, BuildSignalEffectsConfig, ComponentTemplate, ComponentTypeWithInputs, ControlValueSignalOptions, CreateLoggerConfig, CreatePropsOptions, CreateProviderOptions, CurrentElementVisibility, CursorDragScrollDirection, CursorDragScrollOptions, ElementDimensions, ElementLastScrollDirection, ElementLastScrollDirectionType, ElementRect, ElementScrollState, ElementSignal, ElementSignalValue, ElementSize, FacebookCard, FlipAnimationConfig, HeadBinding, HostProps, InjectQueryParamConfig, InjectUtilConfig, InjectUtilTransformConfig, IntersectionObserverEntryWithDetails, IsElementVisibleOptions, LinkConfig, LinkStoreConfig, LogicalSize, MaybeObservable, MaybeSignal, MetaConfig, MetaTagConfig, NgClassType, NgTemplateTemplate, NormalizedGameResultType, NormalizedMatchParticipant, NormalizedMatchParticipants, NormalizedMatchScore, NullableElementDimensions, OnThemeColorMap, OpenGraph, OpenGraphConfig, PropHandlers, Props, PropsAttachedElements, PropsAttachedElementsInternal, PropsInternal, ProviderResult, ResourceHintsConfig, RobotsConfig, RootProviderResult, RouterDisableScrollTopConfig, RouterState, ScrollToElementOptions, SeoConfig, SetupScrollRestorationConfig, SignalAnimatedNumberOptions, SignalElementBindingComplexType, SignalElementBindingType, SignalElementIntersectionOptions, SignalElementScrollStateOptions, SocialMediaConfig, StaticProviderResult, StringTemplate, StructuredDataConfig, SyncSignalOptions, TemplateRefWithContext, Theme, ThemeColor, ThemeColorMap, ThemeHSLColor, ThemeRGBColor, ThemeSwatch, TitleConfig, TitlePart, Translatable, TwitterCard, TwitterCardConfig, UnbindPropsOptions, ValidateAtLeastOneRequiredConfig, Vec2, ViewportConfig };
|