@ethlete/core 5.0.0-next.59 → 5.0.0-next.60
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 +14 -0
- package/fesm2022/ethlete-core.mjs +107 -37
- package/fesm2022/ethlete-core.mjs.map +1 -1
- package/generators/migrate-to-v5/migration.js +5 -0
- package/generators/migrate-to-v5/removed-exports.js +93 -0
- package/generators/migrate-to-v5/schema.json +5 -0
- package/package.json +1 -1
- package/types/ethlete-core.d.ts +40 -36
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { formatFiles } from '@nx/devkit';
|
|
2
2
|
import migrateColorNaming from './color-naming.js';
|
|
3
3
|
import migrateCreateProvider from './create-provider.js';
|
|
4
|
+
import reportRemovedExports from './removed-exports.js';
|
|
4
5
|
import migrateRouterStateService from './router-state-service.js';
|
|
5
6
|
import migrateViewportService from './viewport-service.js';
|
|
6
7
|
export default async function migrate(tree, schema) {
|
|
@@ -24,6 +25,10 @@ export default async function migrate(tree, schema) {
|
|
|
24
25
|
console.log(' • Migrating theme → color naming...');
|
|
25
26
|
await migrateColorNaming(tree);
|
|
26
27
|
}
|
|
28
|
+
if (schema.reportRemovedExports !== false) {
|
|
29
|
+
console.log(' • Reporting removed exports...');
|
|
30
|
+
await reportRemovedExports(tree);
|
|
31
|
+
}
|
|
27
32
|
if (!schema.skipFormat) {
|
|
28
33
|
console.log(' • Formatting files...');
|
|
29
34
|
await formatFiles(tree);
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import * as ts from 'typescript';
|
|
2
|
+
const REMOVED_EXPORTS = new Map([
|
|
3
|
+
...['Memo', 'MemoConfig', 'MemoResolver', 'MapLike'].map((name) => [name, 'the @Memo decorator']),
|
|
4
|
+
...[
|
|
5
|
+
'createProps',
|
|
6
|
+
'createHostProps',
|
|
7
|
+
'createPropHandlers',
|
|
8
|
+
'createSetup',
|
|
9
|
+
'createDependencyStash',
|
|
10
|
+
'createElementDictionary',
|
|
11
|
+
'bindProps',
|
|
12
|
+
'unbindProps',
|
|
13
|
+
'PropsDirective',
|
|
14
|
+
'templateComputed',
|
|
15
|
+
'ComponentType',
|
|
16
|
+
'AnyTemplateType',
|
|
17
|
+
'TemplateRefWithContext',
|
|
18
|
+
'ComponentTypeWithInputs',
|
|
19
|
+
'StringTemplate',
|
|
20
|
+
'NgTemplateTemplate',
|
|
21
|
+
'ComponentTemplate',
|
|
22
|
+
'Props',
|
|
23
|
+
'PropsAttachedElements',
|
|
24
|
+
'PropsAttachedElementsInternal',
|
|
25
|
+
'PropsInternal',
|
|
26
|
+
'CreatePropsOptions',
|
|
27
|
+
'HostProps',
|
|
28
|
+
'PropHandlers',
|
|
29
|
+
'BindPropsOptions',
|
|
30
|
+
'UnbindPropsOptions',
|
|
31
|
+
].map((name) => [name, 'the props module']),
|
|
32
|
+
]);
|
|
33
|
+
const ET_PROPS_ATTRIBUTE = /\betProps\b/;
|
|
34
|
+
export default async function reportRemovedExports(tree) {
|
|
35
|
+
const findings = new Map();
|
|
36
|
+
function walkFiles(dir) {
|
|
37
|
+
for (const child of tree.children(dir)) {
|
|
38
|
+
if (child === 'node_modules')
|
|
39
|
+
continue;
|
|
40
|
+
const path = dir === '.' ? child : `${dir}/${child}`;
|
|
41
|
+
if (!tree.isFile(path)) {
|
|
42
|
+
walkFiles(path);
|
|
43
|
+
continue;
|
|
44
|
+
}
|
|
45
|
+
const messages = path.endsWith('.ts')
|
|
46
|
+
? findRemovedImports(tree, path)
|
|
47
|
+
: path.endsWith('.html')
|
|
48
|
+
? findEtPropsUsage(tree, path)
|
|
49
|
+
: [];
|
|
50
|
+
if (messages.length > 0)
|
|
51
|
+
findings.set(path, messages);
|
|
52
|
+
}
|
|
53
|
+
}
|
|
54
|
+
walkFiles('.');
|
|
55
|
+
if (findings.size === 0)
|
|
56
|
+
return;
|
|
57
|
+
console.log('\n⚠️ Manual migration required for the following files:');
|
|
58
|
+
findings.forEach((messages, file) => {
|
|
59
|
+
console.log(`\n📄 ${file}:`);
|
|
60
|
+
messages.forEach((message) => console.log(` - ${message}`));
|
|
61
|
+
});
|
|
62
|
+
}
|
|
63
|
+
function findRemovedImports(tree, filePath) {
|
|
64
|
+
const content = tree.read(filePath, 'utf-8');
|
|
65
|
+
if (!content || !content.includes('@ethlete/core'))
|
|
66
|
+
return [];
|
|
67
|
+
const sourceFile = ts.createSourceFile(filePath, content, ts.ScriptTarget.Latest, true);
|
|
68
|
+
const messages = [];
|
|
69
|
+
for (const statement of sourceFile.statements) {
|
|
70
|
+
if (!ts.isImportDeclaration(statement) && !ts.isExportDeclaration(statement))
|
|
71
|
+
continue;
|
|
72
|
+
const specifier = statement.moduleSpecifier;
|
|
73
|
+
if (!specifier || !ts.isStringLiteral(specifier) || specifier.text !== '@ethlete/core')
|
|
74
|
+
continue;
|
|
75
|
+
const bindings = ts.isImportDeclaration(statement) ? statement.importClause?.namedBindings : statement.exportClause;
|
|
76
|
+
if (!bindings || ts.isNamespaceImport(bindings) || ts.isNamespaceExport(bindings))
|
|
77
|
+
continue;
|
|
78
|
+
for (const element of bindings.elements) {
|
|
79
|
+
const name = (element.propertyName ?? element.name).text;
|
|
80
|
+
const origin = REMOVED_EXPORTS.get(name);
|
|
81
|
+
if (origin) {
|
|
82
|
+
messages.push(`${name} was removed from @ethlete/core together with ${origin} and has no replacement.`);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
return messages;
|
|
87
|
+
}
|
|
88
|
+
function findEtPropsUsage(tree, filePath) {
|
|
89
|
+
const content = tree.read(filePath, 'utf-8');
|
|
90
|
+
if (!content || !ET_PROPS_ATTRIBUTE.test(content))
|
|
91
|
+
return [];
|
|
92
|
+
return ['[etProps] (PropsDirective) was removed from @ethlete/core together with the props module.'];
|
|
93
|
+
}
|
|
@@ -28,6 +28,11 @@
|
|
|
28
28
|
"type": "boolean",
|
|
29
29
|
"description": "Migrate theme naming to color naming (ProvideThemeDirective -> ProvideColorDirective, etc.)",
|
|
30
30
|
"default": true
|
|
31
|
+
},
|
|
32
|
+
"reportRemovedExports": {
|
|
33
|
+
"type": "boolean",
|
|
34
|
+
"description": "List imports of exports removed in v5 without a replacement (Memo, the props module)",
|
|
35
|
+
"default": true
|
|
31
36
|
}
|
|
32
37
|
},
|
|
33
38
|
"required": []
|
package/package.json
CHANGED
package/types/ethlete-core.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as _angular_core from '@angular/core';
|
|
2
|
-
import { InjectionToken, AfterViewInit, Signal, ElementRef, QueryList, WritableSignal, InputSignalWithTransform, Provider, RendererStyleFlags2, Type, ComponentRef, Injector, ViewContainerRef, EnvironmentProviders, Binding, InjectOptions, TemplateRef, InputSignal, PipeTransform, TrackByFunction, ApplicationRef } from '@angular/core';
|
|
2
|
+
import { InjectionToken, AfterViewInit, Signal, ElementRef, QueryList, WritableSignal, InputSignalWithTransform, Provider, RendererStyleFlags2, Type, ComponentRef, Injector, ViewContainerRef, EnvironmentProviders, Binding, InjectOptions, StaticProvider, TemplateRef, InputSignal, PipeTransform, TrackByFunction, ApplicationRef } from '@angular/core';
|
|
3
3
|
import * as rxjs from 'rxjs';
|
|
4
4
|
import { Observable, BehaviorSubject, Subject } from 'rxjs';
|
|
5
5
|
import * as _ethlete_core from '@ethlete/core';
|
|
@@ -276,9 +276,9 @@ type AppUpdates = {
|
|
|
276
276
|
*/
|
|
277
277
|
reload: () => void;
|
|
278
278
|
};
|
|
279
|
-
declare const provideAppUpdatesConfig: (valueOverride?: Partial<AppUpdatesConfig> | undefined) => _angular_core.
|
|
279
|
+
declare const provideAppUpdatesConfig: (valueOverride?: Partial<AppUpdatesConfig> | undefined) => _angular_core.StaticProvider[];
|
|
280
280
|
declare const injectAppUpdatesConfig: _ethlete_core.InjectFn<AppUpdatesConfig>;
|
|
281
|
-
declare const provideAppUpdatesInstance: () => _angular_core.
|
|
281
|
+
declare const provideAppUpdatesInstance: () => _angular_core.StaticProvider[];
|
|
282
282
|
declare const injectAppUpdates: _ethlete_core.InjectFn<AppUpdates>;
|
|
283
283
|
/**
|
|
284
284
|
* Keeps a long-lived tab from breaking on a deploy.
|
|
@@ -299,7 +299,7 @@ declare const injectAppUpdates: _ethlete_core.InjectFn<AppUpdates>;
|
|
|
299
299
|
* Read {@link AppUpdates.isAvailable} to offer a reload, and {@link AppUpdates.isRequired} for the
|
|
300
300
|
* case where this build is already broken and a reload is the only way on.
|
|
301
301
|
*/
|
|
302
|
-
declare const provideAppUpdates: (config?: Partial<AppUpdatesConfig>) => (_angular_core.
|
|
302
|
+
declare const provideAppUpdates: (config?: Partial<AppUpdatesConfig>) => (_angular_core.StaticProvider | _angular_core.EnvironmentProviders)[];
|
|
303
303
|
|
|
304
304
|
/**
|
|
305
305
|
* Identifies the build a document boots from, by its entry script filenames. Those carry a content
|
|
@@ -381,7 +381,7 @@ declare class ScrollObserverStartDirective {
|
|
|
381
381
|
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ScrollObserverStartDirective, "[etScrollObserverStart]", never, {}, {}, never, never, true, never>;
|
|
382
382
|
}
|
|
383
383
|
|
|
384
|
-
type SignalElementBindingComplexType = HTMLElement | ElementRef<HTMLElement> | QueryList<ElementRef<HTMLElement> | HTMLElement> |
|
|
384
|
+
type SignalElementBindingComplexType = HTMLElement | ElementRef<HTMLElement> | QueryList<ElementRef<HTMLElement> | HTMLElement> | ReadonlyArray<ElementRef<HTMLElement> | HTMLElement> | null | undefined;
|
|
385
385
|
type SignalElementBindingType = HTMLElement | ElementRef<HTMLElement> | Observable<SignalElementBindingComplexType> | Signal<SignalElementBindingComplexType> | QueryList<ElementRef<HTMLElement> | HTMLElement> | ElementSignal;
|
|
386
386
|
type ElementSignal = Signal<{
|
|
387
387
|
currentElements: HTMLElement[];
|
|
@@ -561,13 +561,13 @@ declare const BREAKPOINT_ORDER: Breakpoint[];
|
|
|
561
561
|
* @see https://tailwindcss.com/docs/screens
|
|
562
562
|
*/
|
|
563
563
|
declare const DEFAULT_VIEWPORT_CONFIG: ViewportConfig;
|
|
564
|
-
declare const provideViewportConfig: (valueOverride?: Partial<ViewportConfig> | undefined) => _angular_core.
|
|
564
|
+
declare const provideViewportConfig: (valueOverride?: Partial<ViewportConfig> | undefined) => _angular_core.StaticProvider[];
|
|
565
565
|
declare const injectViewportConfig: _ethlete_core.InjectFn<ViewportConfig>;
|
|
566
566
|
type BuildMediaQueryOptions = {
|
|
567
567
|
min?: number | Breakpoint;
|
|
568
568
|
max?: number | Breakpoint;
|
|
569
569
|
};
|
|
570
|
-
declare const provideBreakpointObserver: () => _angular_core.
|
|
570
|
+
declare const provideBreakpointObserver: () => _angular_core.StaticProvider[];
|
|
571
571
|
declare const injectBreakpointObserver: _ethlete_core.InjectFn<{
|
|
572
572
|
observeBreakpoint: (options: BuildMediaQueryOptions) => Signal<boolean>;
|
|
573
573
|
isBreakpointMatched: (options: BuildMediaQueryOptions) => boolean;
|
|
@@ -845,7 +845,7 @@ declare const signalHostElementScrollState: () => Signal<ElementScrollState>;
|
|
|
845
845
|
|
|
846
846
|
declare const injectAngularRootElement: _ethlete_core.InjectFn<_angular_core.WritableSignal<HTMLElement | null>>;
|
|
847
847
|
|
|
848
|
-
declare const provideBoundaryElement: () => _angular_core.
|
|
848
|
+
declare const provideBoundaryElement: () => _angular_core.StaticProvider[];
|
|
849
849
|
declare const injectBoundaryElement: _ethlete_core.InjectFn<{
|
|
850
850
|
value: _angular_core.Signal<HTMLElement>;
|
|
851
851
|
override: _angular_core.WritableSignal<HTMLElement | null>;
|
|
@@ -883,7 +883,7 @@ type FileDownloadOptions = {
|
|
|
883
883
|
*/
|
|
884
884
|
declare const injectFileDownload: () => (options: FileDownloadOptions) => void;
|
|
885
885
|
|
|
886
|
-
declare const provideFocusVisibleTracker: () => _angular_core.
|
|
886
|
+
declare const provideFocusVisibleTracker: () => _angular_core.StaticProvider[];
|
|
887
887
|
declare const injectFocusVisibleTracker: _ethlete_core.InjectFn<{
|
|
888
888
|
isFocusVisible: _angular_core.Signal<boolean>;
|
|
889
889
|
}>;
|
|
@@ -940,12 +940,12 @@ type LabelsDefinition<T> = {
|
|
|
940
940
|
*/
|
|
941
941
|
declare const defineLabels: <T extends object>(name: string, defaults: T | ((locale: string) => T)) => LabelsDefinition<T>;
|
|
942
942
|
|
|
943
|
-
declare const provideLocale: () => _angular_core.
|
|
943
|
+
declare const provideLocale: () => _angular_core.StaticProvider[];
|
|
944
944
|
declare const injectLocale: _ethlete_core.InjectFn<{
|
|
945
945
|
currentLocale: _angular_core.WritableSignal<string>;
|
|
946
946
|
}>;
|
|
947
947
|
|
|
948
|
-
declare const provideRenderer: () => _angular_core.
|
|
948
|
+
declare const provideRenderer: () => _angular_core.StaticProvider[];
|
|
949
949
|
declare const injectRenderer: _ethlete_core.InjectFn<{
|
|
950
950
|
addClass: (element: HTMLElement, ...classes: string[]) => void;
|
|
951
951
|
removeClass: (element: HTMLElement, ...classes: string[]) => void;
|
|
@@ -988,7 +988,7 @@ type AngularRenderer = NonNullable<ReturnType<typeof injectRenderer>>;
|
|
|
988
988
|
type StyleManager = {
|
|
989
989
|
mount: <TComponent>(component: Type<TComponent>) => ComponentRef<TComponent>;
|
|
990
990
|
};
|
|
991
|
-
declare const provideStyleManager: () => _angular_core.
|
|
991
|
+
declare const provideStyleManager: () => _angular_core.StaticProvider[];
|
|
992
992
|
declare const injectStyleManager: _ethlete_core.InjectFn<StyleManager>;
|
|
993
993
|
|
|
994
994
|
type ConsentHandler = {
|
|
@@ -1685,7 +1685,7 @@ type Notifications = {
|
|
|
1685
1685
|
readonly closeAll: () => void;
|
|
1686
1686
|
};
|
|
1687
1687
|
|
|
1688
|
-
declare const provideNotifications: () => _angular_core.
|
|
1688
|
+
declare const provideNotifications: () => _angular_core.StaticProvider[];
|
|
1689
1689
|
declare const injectNotifications: _ethlete_core.InjectFn<Notifications>;
|
|
1690
1690
|
|
|
1691
1691
|
type OverlayRuntimeRole = 'dialog' | 'alertdialog';
|
|
@@ -1989,7 +1989,7 @@ type OverlayRuntime = {
|
|
|
1989
1989
|
mount: <TComponent extends object, TResult = unknown>(config: OverlayRuntimeMountConfig<TComponent>) => OverlayRuntimeRef<TComponent, TResult>;
|
|
1990
1990
|
openEntries: Signal<OverlayRuntimeRef<object, unknown>[]>;
|
|
1991
1991
|
};
|
|
1992
|
-
declare const provideOverlayRuntime: () => _angular_core.
|
|
1992
|
+
declare const provideOverlayRuntime: () => _angular_core.StaticProvider[];
|
|
1993
1993
|
declare const injectOverlayRuntime: _ethlete_core.InjectFn<OverlayRuntime>;
|
|
1994
1994
|
|
|
1995
1995
|
/** The space each viewport edge has reserved, in px. */
|
|
@@ -2070,13 +2070,13 @@ type InjectFn<T> = {
|
|
|
2070
2070
|
* {@link toToken} - never by destructuring, see {@link defineProvider}.
|
|
2071
2071
|
*/
|
|
2072
2072
|
type ProviderDefinition<T> = {
|
|
2073
|
-
readonly provide: () =>
|
|
2073
|
+
readonly provide: () => StaticProvider[];
|
|
2074
2074
|
readonly inject: InjectFn<T>;
|
|
2075
2075
|
readonly token: InjectionToken<T>;
|
|
2076
2076
|
};
|
|
2077
2077
|
/** {@link ProviderDefinition} for a value provider, whose `provide` takes a partial override. */
|
|
2078
2078
|
type StaticProviderDefinition<T> = {
|
|
2079
|
-
readonly provide: (valueOverride?: Partial<T>) =>
|
|
2079
|
+
readonly provide: (valueOverride?: Partial<T>) => StaticProvider[];
|
|
2080
2080
|
readonly inject: InjectFn<T>;
|
|
2081
2081
|
readonly token: InjectionToken<T>;
|
|
2082
2082
|
};
|
|
@@ -2676,7 +2676,7 @@ type FaviconOverlay = {
|
|
|
2676
2676
|
* Registrations are keyed, and a `progress` overlay wins over a `dot` - a ring that also carries a
|
|
2677
2677
|
* badge reads as neither.
|
|
2678
2678
|
*/
|
|
2679
|
-
declare const provideFaviconStore: () => _angular_core.
|
|
2679
|
+
declare const provideFaviconStore: () => _angular_core.StaticProvider[];
|
|
2680
2680
|
declare const injectFaviconStore: _ethlete_core.InjectFn<{
|
|
2681
2681
|
activeOverlay: _angular_core.Signal<FaviconOverlay | null>;
|
|
2682
2682
|
addOverlay: (id: symbol, overlay: FaviconOverlay) => void;
|
|
@@ -2861,9 +2861,9 @@ type LinkStoreConfig = {
|
|
|
2861
2861
|
multiInstanceRels: Set<string>;
|
|
2862
2862
|
};
|
|
2863
2863
|
declare const DEFAULT_MULTI_INSTANCE_RELS: Set<string>;
|
|
2864
|
-
declare const provideLinkStoreConfig: (valueOverride?: Partial<LinkStoreConfig> | undefined) => _angular_core.
|
|
2864
|
+
declare const provideLinkStoreConfig: (valueOverride?: Partial<LinkStoreConfig> | undefined) => _angular_core.StaticProvider[];
|
|
2865
2865
|
declare const injectLinkStoreConfig: _ethlete_core.InjectFn<LinkStoreConfig>;
|
|
2866
|
-
declare const provideLinkStore: () => _angular_core.
|
|
2866
|
+
declare const provideLinkStore: () => _angular_core.StaticProvider[];
|
|
2867
2867
|
declare const injectLinkStore: _ethlete_core.InjectFn<{
|
|
2868
2868
|
addLink: (id: symbol, linkConfig: LinkConfig) => void;
|
|
2869
2869
|
removeLink: (id: symbol, key?: string) => void;
|
|
@@ -2926,9 +2926,9 @@ type MetaConfig = {
|
|
|
2926
2926
|
multiInstanceTags: Set<string>;
|
|
2927
2927
|
};
|
|
2928
2928
|
declare const DEFAULT_MULTI_INSTANCE_TAGS: Set<string>;
|
|
2929
|
-
declare const provideMetaConfig: (valueOverride?: Partial<MetaConfig> | undefined) => _angular_core.
|
|
2929
|
+
declare const provideMetaConfig: (valueOverride?: Partial<MetaConfig> | undefined) => _angular_core.StaticProvider[];
|
|
2930
2930
|
declare const injectMetaConfig: _ethlete_core.InjectFn<MetaConfig>;
|
|
2931
|
-
declare const provideMetaStore: () => _angular_core.
|
|
2931
|
+
declare const provideMetaStore: () => _angular_core.StaticProvider[];
|
|
2932
2932
|
declare const injectMetaStore: _ethlete_core.InjectFn<{
|
|
2933
2933
|
addTag: (id: symbol, rawConfig: MetaTagConfig) => void;
|
|
2934
2934
|
removeTag: (id: symbol, selector?: string) => void;
|
|
@@ -3028,9 +3028,9 @@ type StructuredDataConfig = {
|
|
|
3028
3028
|
*/
|
|
3029
3029
|
placement: 'head' | 'body';
|
|
3030
3030
|
};
|
|
3031
|
-
declare const provideStructuredDataConfig: (valueOverride?: Partial<StructuredDataConfig> | undefined) => _angular_core.
|
|
3031
|
+
declare const provideStructuredDataConfig: (valueOverride?: Partial<StructuredDataConfig> | undefined) => _angular_core.StaticProvider[];
|
|
3032
3032
|
declare const injectStructuredDataConfig: _ethlete_core.InjectFn<StructuredDataConfig>;
|
|
3033
|
-
declare const provideStructuredDataStore: () => _angular_core.
|
|
3033
|
+
declare const provideStructuredDataStore: () => _angular_core.StaticProvider[];
|
|
3034
3034
|
declare const injectStructuredDataStore: _ethlete_core.InjectFn<{
|
|
3035
3035
|
addStructuredData: (id: symbol, data: WithContext<Thing> | Graph) => void;
|
|
3036
3036
|
removeStructuredData: (id: symbol) => void;
|
|
@@ -3073,9 +3073,9 @@ type TitleConfig = {
|
|
|
3073
3073
|
*/
|
|
3074
3074
|
prefixPart?: TitlePart;
|
|
3075
3075
|
};
|
|
3076
|
-
declare const provideTitleConfig: (valueOverride?: Partial<TitleConfig> | undefined) => _angular_core.
|
|
3076
|
+
declare const provideTitleConfig: (valueOverride?: Partial<TitleConfig> | undefined) => _angular_core.StaticProvider[];
|
|
3077
3077
|
declare const injectTitleConfig: _ethlete_core.InjectFn<TitleConfig>;
|
|
3078
|
-
declare const provideTitleStore: () => _angular_core.
|
|
3078
|
+
declare const provideTitleStore: () => _angular_core.StaticProvider[];
|
|
3079
3079
|
declare const injectTitleStore: _ethlete_core.InjectFn<{
|
|
3080
3080
|
title: _angular_core.Signal<string>;
|
|
3081
3081
|
addPart: (id: symbol, part: TitlePart) => void;
|
|
@@ -3240,11 +3240,15 @@ type RegisteredSurfaceThemeName = EthleteSurfaceThemeNameRegistry extends {
|
|
|
3240
3240
|
} ? N : string;
|
|
3241
3241
|
declare const createCssSurfaceName: (name: string) => string;
|
|
3242
3242
|
declare const resolveSurfaceByElevation: (themes: SurfaceTheme[], type: SurfaceType, elevation: number) => SurfaceTheme | null;
|
|
3243
|
-
declare const ɵProvideSurfaceThemes: (valueOverride?: (SurfaceTheme | undefined)[] | undefined) => _angular_core.
|
|
3243
|
+
declare const ɵProvideSurfaceThemes: (valueOverride?: (SurfaceTheme | undefined)[] | undefined) => _angular_core.StaticProvider[];
|
|
3244
3244
|
declare const injectSurfaceThemes: _ethlete_core.InjectFn<SurfaceTheme[]>;
|
|
3245
|
-
declare const ɵProvideSurfaceThemesPrefix: (valueOverride?: string | undefined) => _angular_core.
|
|
3245
|
+
declare const ɵProvideSurfaceThemesPrefix: (valueOverride?: string | undefined) => _angular_core.StaticProvider[];
|
|
3246
3246
|
declare const injectSurfaceThemesPrefix: _ethlete_core.InjectFn<string>;
|
|
3247
|
-
|
|
3247
|
+
/**
|
|
3248
|
+
* Registers the app's surface themes. In dev mode it also warns once the page has loaded if the root
|
|
3249
|
+
* font size is still the browser default, i.e. the app is missing `html { font-size: 62.5%; }`.
|
|
3250
|
+
*/
|
|
3251
|
+
declare const provideSurfaceThemesWithTailwind4: (themes: SurfaceTheme[], prefix?: string) => (_angular_core.StaticProvider[] | _angular_core.EnvironmentProviders)[];
|
|
3248
3252
|
/**
|
|
3249
3253
|
* Inject the registered `isDefault` surface theme of a `type` - the surface an app renders on
|
|
3250
3254
|
* where nothing scopes one. Without a `type`, resolves the default of the only surface type the
|
|
@@ -3399,11 +3403,11 @@ type SurfaceColor = typeof SURFACE_COLOR;
|
|
|
3399
3403
|
/** Everything `[etProvideColor]` accepts: a registered theme name, a theme object, `surface`, or nothing. */
|
|
3400
3404
|
type ColorThemeInput = RegisteredColorThemeName | SurfaceColor | ColorTheme | null;
|
|
3401
3405
|
declare const createCssColorThemeName: (name: string) => string;
|
|
3402
|
-
declare const ɵProvideColorThemes: (valueOverride?: (ColorTheme | undefined)[] | undefined) => _angular_core.
|
|
3406
|
+
declare const ɵProvideColorThemes: (valueOverride?: (ColorTheme | undefined)[] | undefined) => _angular_core.StaticProvider[];
|
|
3403
3407
|
declare const injectColorThemes: _ethlete_core.InjectFn<ColorTheme[]>;
|
|
3404
|
-
declare const ɵProvideColorThemesPrefix: (valueOverride?: string | undefined) => _angular_core.
|
|
3408
|
+
declare const ɵProvideColorThemesPrefix: (valueOverride?: string | undefined) => _angular_core.StaticProvider[];
|
|
3405
3409
|
declare const injectColorThemesPrefix: _ethlete_core.InjectFn<string>;
|
|
3406
|
-
declare const provideColorThemesWithTailwind4: (themes: ColorTheme[], prefix?: string) => _angular_core.
|
|
3410
|
+
declare const provideColorThemesWithTailwind4: (themes: ColorTheme[], prefix?: string) => _angular_core.StaticProvider[][];
|
|
3407
3411
|
declare const injectErrorTheme: () => ColorTheme;
|
|
3408
3412
|
declare const injectWarningTheme: () => ColorTheme;
|
|
3409
3413
|
declare const injectSuccessTheme: () => ColorTheme;
|
|
@@ -3431,7 +3435,7 @@ type ColorPaletteEntry = {
|
|
|
3431
3435
|
* { token: 'ocean', label: 'Training blue' },
|
|
3432
3436
|
* ]);
|
|
3433
3437
|
*/
|
|
3434
|
-
declare const provideColorPalette: (valueOverride?: (ColorPaletteEntry | undefined)[] | undefined) => _angular_core.
|
|
3438
|
+
declare const provideColorPalette: (valueOverride?: (ColorPaletteEntry | undefined)[] | undefined) => _angular_core.StaticProvider[];
|
|
3435
3439
|
/** The palette from {@link provideColorPalette}. Pass `{ optional: true }` - most apps provide none. */
|
|
3436
3440
|
declare const injectColorPalette: _ethlete_core.InjectFn<ColorPaletteEntry[]>;
|
|
3437
3441
|
declare const COLOR_PALETTE: _angular_core.InjectionToken<ColorPaletteEntry[]>;
|
|
@@ -3470,7 +3474,7 @@ declare const createTailwindColorThemes: (themes: ColorTheme[], prefix?: string)
|
|
|
3470
3474
|
/**
|
|
3471
3475
|
* @deprecated Use provideColorThemesWithTailwind4 instead after migrating to Tailwind CSS v4. Intent to remove in v6.
|
|
3472
3476
|
*/
|
|
3473
|
-
declare const provideColorThemes: (themes: ColorTheme[]) => _angular_core.
|
|
3477
|
+
declare const provideColorThemes: (themes: ColorTheme[]) => _angular_core.StaticProvider[][];
|
|
3474
3478
|
|
|
3475
3479
|
declare const COLOR_PROVIDER: InjectionToken<ProvideColorDirective>;
|
|
3476
3480
|
/**
|
|
@@ -3531,7 +3535,7 @@ type SurfaceContextTracker = {
|
|
|
3531
3535
|
*/
|
|
3532
3536
|
surfaceForElement: (host: HTMLElement) => SurfaceContextSurface | null;
|
|
3533
3537
|
};
|
|
3534
|
-
declare const provideSurfaceContextTracker: () => _angular_core.
|
|
3538
|
+
declare const provideSurfaceContextTracker: () => _angular_core.StaticProvider[];
|
|
3535
3539
|
declare const injectSurfaceContextTracker: _ethlete_core.InjectFn<SurfaceContextTracker>;
|
|
3536
3540
|
|
|
3537
3541
|
/**
|
|
@@ -3599,7 +3603,7 @@ type UnsavedChangesRegistration = {
|
|
|
3599
3603
|
* Root-provided; every tracker registers itself. Inject it to abandon guards from app code (a session
|
|
3600
3604
|
* timeout of your own, a hard reset) or to read whether a confirm is currently on screen.
|
|
3601
3605
|
*/
|
|
3602
|
-
declare const provideUnsavedChangesCoordinator: () => _angular_core.
|
|
3606
|
+
declare const provideUnsavedChangesCoordinator: () => _angular_core.StaticProvider[];
|
|
3603
3607
|
declare const injectUnsavedChangesCoordinator: _ethlete_core.InjectFn<{
|
|
3604
3608
|
/** Whether a confirm is currently on screen. */
|
|
3605
3609
|
isCheckPending: Signal<boolean>;
|
|
@@ -3837,7 +3841,7 @@ type UnsavedChangesGuardRef<T> = UnsavedChangesTrackerRef<T> & {
|
|
|
3837
3841
|
declare const createUnsavedChangesGuard: <T>(config: CreateUnsavedChangesGuardConfig<T>) => UnsavedChangesGuardRef<T>;
|
|
3838
3842
|
|
|
3839
3843
|
/** The version of `@ethlete/core` this build was cut from. */
|
|
3840
|
-
declare const CORE_VERSION = "5.0.0-next.
|
|
3844
|
+
declare const CORE_VERSION = "5.0.0-next.60";
|
|
3841
3845
|
|
|
3842
3846
|
export { ANIMATABLE_TOKEN, ANIMATED_IF_TOKEN, ANIMATED_LIFECYCLE_TOKEN, ANIMATION_DEBUG_STORAGE_KEY, AT_LEAST_ONE_REQUIRED, AnimatableDirective, AnimatedIfDirective, AnimatedLifecycleDirective, AutoSurfaceDirective, BOUNDARY_ELEMENT_TOKEN, BREAKPOINT_INSTANCE_TOKEN, BREAKPOINT_ORDER, COLOR_PALETTE, COLOR_PROVIDER, CORE_VERSION, ClickOutsideDirective, ColorInteractiveContainerDirective, ColorInteractiveDirective, ColorInteractiveExcludeDirective, ColorInteractiveHasFocusDirective, DEFAULT_MULTI_INSTANCE_RELS, DEFAULT_MULTI_INSTANCE_TAGS, DEFAULT_OVERLAY_LAYER, DEFAULT_VIEWPORT_CONFIG, DISABLE_LOGGER_PARAM, DragHandleDirective, ET_DISABLE_SCROLL_TOP, ET_DISABLE_SCROLL_TOP_AS_RETURN_ROUTE, ET_DISABLE_SCROLL_TOP_ON_PATH_PARAM_CHANGE, ET_PROPERTY_REMOVED, ET_RESTORE_SCROLL, EasingTokensStylesComponent, EthleteValidators, FOCUSABLE_SELECTOR, FOCUS_VISIBLE_TRACKER_TOKEN, HtmlToMarkdownPipe, IS_ARRAY_NOT_EMPTY, IS_EMAIL, InferMimeTypePipe, InitialsPipe, IsArrayNotEmpty, IsEmail, jsonLd_d as JsonLD, KeyPressManager, MUST_MATCH, MarkdownToHtmlPipe, MatchStateType, MustMatch, NOTIFICATION_CLICK_MESSAGE_TYPE, NormalizeGameResultTypePipe, NormalizeMatchParticipantsPipe, NormalizeMatchScorePipe, NormalizeMatchStatePipe, NormalizeMatchTypePipe, OVERLAY_LAYER_ATTRIBUTE, ProvideColorDirective, ProvideSurfaceDirective, RUNTIME_ERROR_NO_DATA, RepeatDirective, ResizeHandlesComponent, RestoreScrollDirective, RuntimeError, SURFACE_COLOR, SURFACE_PROVIDER, SURFACE_TYPE, SWIPE_VELOCITY_WINDOW_MS, ScrollObserverDirective, ScrollObserverEndDirective, ScrollObserverStartDirective, SlugifyPipe, StructuredDataComponent, SurfaceInteractiveDirective, ToArrayPipe, TypedQueryList, UNSAVED_CHANGES_TITLE_MARKER, ValidateAtLeastOneRequired, anchoredOverlayPosition, animationDebugLog, applyAlternateBinding, applyAlternateLanguagesBindings, applyArticleBindings, applyAuthorBinding, applyCanonicalBinding, applyCenteredPosition, applyDescriptionBinding, applyFaviconOverlay, applyGlobalPosition, applyHeadBinding, applyHeadTitleBinding, applyHeadTitleMarker, applyHostListener, applyHostListeners, applyInitialFocus, applyKeywordsBinding, applyLinkBinding, applyMetaBinding, applyNextBinding, applyOgBinding, applyOpenGraphBindings, applyPrevBinding, applyResourceHintsBindings, applyRobotsBinding, applySocialMediaBindings, applyStructuredDataBinding, applyTwitterCardBindings, boolBreakpointTransform, boundingClientRectToElementRect, breakpointTransformBase, buildElementSignal, buildSignalEffects, canUseSessionMemory, clamp, clone, cloneFormGroup, computedTillFalsy, computedTillTruthy, controlValueSignal, controlValueSignalWithPrevious, copyToClipboard, createAnchoredPositionCleanup, createArrayPropertyBinding, createAutoSessionMemoryKey, createCanAnimateSignal, createComponentId, createCssColorThemeName, createCssSurfaceName, createDestroy, createDocumentElementSignal, createElementDimensions, createEmptyElementSignal, createFlipAnimation, createFlipAnimationGroup, createIsRenderedSignal, createLogger, createObjectUrlHandle, createOverlayRuntimeRef, createPropertyBinding, createRootThemeCss, createRoute, createRouterState, createRxHostListener, createSessionMemory, createSwatchCss, createSwipeTracker, createTailwindColorThemes, createTailwindCssVar, createTailwindRgbVar, createThemeStyle, createUnsavedChangesGuard, createUnsavedChangesTabLock, createUnsavedChangesTracker, createUserConsentProvider, deferredSignal, defineLabels, defineProvider, defineRootProvider, defineStaticProvider, defineStaticRootProvider, deleteCookie, dragGestureFrom, easeElastic, easeIn, easeInOut, easeLinear, easeOut, easeOutBack, easeOutBackStrong, elementCanScroll, enableAnchoredOverlayPositionExtras, equal, fetchDeployedBuildFingerprint, firstElementSignal, focusElement, forceReflow, formatRuntimeError, fromNextFrame, getCookie, getDomain, getElementScrollCoordinates, getFocusableElements, getFormGroupValue, getGroupMatchPoints, getGroupMatchScore, getHeadingElement, getKnockoutMatchScore, getMatchScoreSubLine, getObjectProperty, getScrollContainerTarget, getScrollItemTarget, getScrollSnapTarget, hasCookie, holdScrollRestoration, htmlToMarkdown, inferMimeType, initials, injectAngularRootElement, injectAnimatedBlockSize, injectAppUpdates, injectAppUpdatesConfig, injectBoundaryElement, injectBreakpointInput, injectBreakpointIsMatched, injectBreakpointObserver, injectCanHover, injectColorPalette, injectColorThemes, injectColorThemesPrefix, injectCurrentBreakpoint, injectDefaultColorTheme, injectDefaultSurfaceTheme, injectDeviceInputType, injectDisplayOrientation, injectErrorTheme, injectFaviconStore, injectFileDownload, injectFocusVisibleTracker, injectFragment, injectHasPrecisionInput, injectHasTouchInput, injectHostElement, injectIs2Xl, injectIsDocumentVisible, injectIsLandscape, injectIsLg, injectIsMd, injectIsPortrait, injectIsRouterInitialized, injectIsSm, injectIsXl, injectIsXs, injectLinkStore, injectLinkStoreConfig, injectLocale, injectMediaQueryIsMatched, injectMetaConfig, injectMetaStore, injectNotifications, injectObserveBreakpoint, injectObserveMediaQuery, injectOverlayRuntime, injectParentSurface, injectPathParam, injectPathParamChanges, injectPathParams, injectPrefersReducedMotion, injectQueryParam, injectQueryParamChanges, injectQueryParams, injectRenderer, injectRoute, injectRouteData, injectRouteDataItem, injectRouteTitle, injectRouterEvent, injectRouterNavigationState, injectRouterState, injectScrollbarDimensions, injectStructuredDataConfig, injectStructuredDataStore, injectStyleManager, injectSuccessTheme, injectSurfaceContextTracker, injectSurfaceThemes, injectSurfaceThemesPrefix, injectSurfaceType, injectTemplateRef, injectTitleConfig, injectTitleStore, injectUnsavedChangesCoordinator, injectUrl, injectViewportConfig, injectViewportDimensions, injectViewportSize, injectWarningTheme, isAnimationDebugEnabled, isArray, isElement, isElementSignal, isElementVisible, isFocusable, isGroupMatch, isHTMLElement, isHTMLOrSVGElement, isKnockoutMatch, isObject, isOnHigherOverlayLayer, isStaleBuildError, markdownToHtml, matchesReducedMotion, maybeSignalValue, memoizeSignal, mountEasingTokens, nextFrame, normalizeGameResultType, normalizeMatchParticipant, normalizeMatchParticipants, normalizeMatchScore, normalizeMatchState, normalizeMatchType, normalizeUnsavedChangesSource, numberBreakpointTransform, onOverlayViewportInsetsChange, overlayViewportInsets, overlayViewportInsetsFor, ownsActiveElement, previousSignalValue, provideAppUpdates, provideAppUpdatesConfig, provideAppUpdatesInstance, provideBoundaryElement, provideBreakpointInstance, provideBreakpointObserver, provideColorPalette, provideColorThemes, provideColorThemesWithTailwind4, provideFaviconStore, provideFocusVisibleTracker, provideLinkStore, provideLinkStoreConfig, provideLocale, provideMetaConfig, provideMetaStore, provideNotifications, provideOverlayRuntime, provideRenderer, provideStructuredDataConfig, provideStructuredDataStore, provideStyleManager, provideSurfaceContextTracker, provideSurfaceThemesWithTailwind4, provideTitleConfig, provideTitleStore, provideUnsavedChangesCoordinator, provideViewportConfig, randomId, readBuildFingerprint, readFromClipboard, registerAnchoredPositionMiddlewareExtras, registerAnchoredPositionSetup, reserveOverlayViewportSpace, resetPositioningStyles, resolveAppRootColorProvider, resolveOverlayLayer, resolveSurfaceByElevation, round, routerDisableScrollTop, routerRestoreScroll, scrollToElement, setBackdropStyles, setBaseElementStyles, setCookie, setInputSignal, setupFocusTrap, setupPositioning, setupScrollRestoration, signalAnimatedNumber, signalAttributes, signalClasses, signalCountdown, signalDeferredLoading, signalElementChildren, signalElementDimensions, signalElementIntersection, signalElementLastScrollDirection, signalElementMutations, signalElementScrollState, signalHostAttributes, signalHostClasses, signalHostElementDimensions, signalHostElementIntersection, signalHostElementLastScrollDirection, signalHostElementMutations, signalHostElementScrollState, signalHostStyles, signalIsRendered, signalStyles, slugify, suppressTextSelection, switchQueryListChanges, syncSignal, toArray, toArrayTrackByFn, toInjectFn, toProvideFn, toStringBinding, toToken, transformOrReturn, typedBreakpointTransform, useCursorDragScroll, writeScrollbarSizeToCssVariables, writeViewportSizeToCssVariables, ɵProvideColorThemes, ɵProvideColorThemesPrefix, ɵProvideSurfaceThemes, ɵProvideSurfaceThemesPrefix };
|
|
3843
3847
|
export type { AlternateLanguagesConfig, AnchoredPositionMiddlewareExtras, AnchoredPositionSetup, AngularRenderer, AnimatedBlockSizeConfig, AnimatedLifecycleState, AnimatedNumberSignal, AnimatedSizeAxis, AnimationEndEvent, AppUpdates, AppUpdatesConfig, ArticleConfig, BoolBreakpointSignal, Breakpoint, BreakpointInput, BreakpointMap, BuildMediaQueryOptions, BuildSignalEffectsConfig, ColorPaletteEntry, ColorTheme, ColorThemeInput, ColorThemeType, ConsentHandler, ControlValueSignalOptions, Countdown, CountdownDeadline, CreateLoggerConfig, CreateSessionMemoryConfig, CreateUnsavedChangesGuardConfig, CreateUnsavedChangesTabLockConfig, CreateUnsavedChangesTrackerConfig, CreateUserConsentProviderOptions, CurrentElementVisibility, CursorDragScrollDirection, CursorDragScrollOptions, DragEndEvent, DragGestureEvent, DragMoveEvent, DragStartEvent, ElementDimensions, ElementLastScrollDirection, ElementLastScrollDirectionType, ElementRect, ElementScrollState, ElementSignal, ElementSignalValue, ElementSize, EthleteColorThemeNameRegistry, EthleteSurfaceThemeNameRegistry, FaviconOverlay, FileDownloadOptions, FlipAnimationConfig, InjectFn, InjectQueryParamConfig, InjectUtilConfig, InjectUtilTransformConfig, IntersectionObserverEntryWithDetails, IsElementVisibleOptions, LabelsDefinition, LabelsSource, LinkConfig, LinkStoreConfig, LogicalSize, MaybeSignal, MetaConfig, MetaTagConfig, NgClassType, NormalizedGameResultType, NormalizedMatchParticipant, NormalizedMatchParticipants, NormalizedMatchScore, NormalizedUnsavedChangesSource, NotificationActionConfig, NotificationClickContext, NotificationClickMessage, NotificationDeliveryPath, NotificationPermissionState, NotificationRef, Notifications, NullableElementDimensions, NumberBreakpointSignal, ObjectUrlHandle, OnThemeColorMap, OpenGraphConfig, OverlayRuntimeAnchoredPosition, OverlayRuntimeAnimationDelegate, OverlayRuntimeAnimationDelegateEnterContext, OverlayRuntimeAnimationDelegateLeaveContext, OverlayRuntimeAutoFocusTarget, OverlayRuntimeCenteredPosition, OverlayRuntimeCloseEvent, OverlayRuntimeCloseGuard, OverlayRuntimeCloseSource, OverlayRuntimeComponentBase, OverlayRuntimeElements, OverlayRuntimeGlobalPosition, OverlayRuntimeGlobalPositionAlignment, OverlayRuntimeMountConfig, OverlayRuntimePositionStrategy, OverlayRuntimeRef, OverlayRuntimeRole, OverlayRuntimeShiftOptions, OverlayRuntimeState, OverlayViewportInset, OverlayViewportReservation, ProviderDefinition, ProviderDefinitionOptions, RegisteredColorThemeName, RegisteredSurfaceThemeName, ResizeEdge, ResizeMoveEvent, ResourceHintsConfig, RobotsConfig, RouterDisableScrollTopConfig, RouterState, ScrollContainerTarget, ScrollItemTarget, ScrollRestorationRestoreConfig, ScrollRestorationScrollElement, ScrollSnapOrigin, ScrollSnapTarget, ScrollToElementOptions, SetupScrollRestorationConfig, ShowNotificationConfig, SignalAnimatedNumberOptions, SignalDeferredLoadingOptions, SignalElementBindingComplexType, SignalElementBindingType, SignalElementChildrenOptions, SignalElementIntersectionOptions, SignalElementScrollStateOptions, SocialMediaConfig, StaticProviderDefinition, StructuredDataConfig, StyleManager, SurfaceColor, SurfaceContextEntry, SurfaceContextSurface, SurfaceContextTracker, SurfaceInteractionColor, SurfaceInteractionColorMap, SurfaceOnInteractionColorMap, SurfaceTheme, SurfaceThemeColor, SurfaceType, SwipeEndEvent, SwipeTracker, SwipeUpdateEvent, SyncSignalOptions, ThemeColor, ThemeColorMap, ThemeHSLColor, ThemeInkColorMap, ThemeRGBColor, ThemeSwatch, TitleConfig, TitlePart, Translatable, TwitterCardConfig, TypedBreakpointSignal, UnsavedChangesAbandonReason, UnsavedChangesConfirmContext, UnsavedChangesConfirmFn, UnsavedChangesGuardRef, UnsavedChangesRegistration, UnsavedChangesSource, UnsavedChangesTabConfig, UnsavedChangesTabLockRef, UnsavedChangesTrackerRef, ValidateAtLeastOneRequiredConfig, Vec2, ViewportConfig };
|