Within an @NgModule it's common to include in the imports a call to a ModuleWithProviders function, for example RouterModule.forRoot(). The old ngc compiler was able to handle this pattern because it had global knowledge of metadata of not only the input compilation unit but also all dependencies. The ngtsc compiler for Ivy doesn't have this knowledge, so the pattern of ModuleWithProviders functions is more difficult. ngtsc must be able to determine which module is imported via the function in order to expand the selector scope and properly tree-shake directives and pipes. This commit implements a solution to this problem, by adding a type parameter to ModuleWithProviders through which the actual module type can be passed between compilation units. The provider side isn't a problem because the imports are always copied directly to the ngInjectorDef. PR Close #24862
145 lines
4.2 KiB
TypeScript
145 lines
4.2 KiB
TypeScript
export declare class BrowserModule {
|
|
constructor(parentModule: BrowserModule | null);
|
|
/** @experimental */ static withServerTransition(params: {
|
|
appId: string;
|
|
}): ModuleWithProviders<BrowserModule>;
|
|
}
|
|
|
|
/** @experimental */
|
|
export declare class BrowserTransferStateModule {
|
|
}
|
|
|
|
/** @experimental */
|
|
export declare class By {
|
|
static all(): Predicate<DebugElement>;
|
|
static css(selector: string): Predicate<DebugElement>;
|
|
static directive(type: Type<any>): Predicate<DebugElement>;
|
|
}
|
|
|
|
/** @experimental */
|
|
export declare function disableDebugTools(): void;
|
|
|
|
/** @deprecated */
|
|
export declare const DOCUMENT: InjectionToken<Document>;
|
|
|
|
export declare abstract class DomSanitizer implements Sanitizer {
|
|
abstract bypassSecurityTrustHtml(value: string): SafeHtml;
|
|
abstract bypassSecurityTrustResourceUrl(value: string): SafeResourceUrl;
|
|
abstract bypassSecurityTrustScript(value: string): SafeScript;
|
|
abstract bypassSecurityTrustStyle(value: string): SafeStyle;
|
|
abstract bypassSecurityTrustUrl(value: string): SafeUrl;
|
|
abstract sanitize(context: SecurityContext, value: SafeValue | string | null): string | null;
|
|
}
|
|
|
|
/** @experimental */
|
|
export declare function enableDebugTools<T>(ref: ComponentRef<T>): ComponentRef<T>;
|
|
|
|
export declare const EVENT_MANAGER_PLUGINS: InjectionToken<EventManagerPlugin[]>;
|
|
|
|
export declare class EventManager {
|
|
constructor(plugins: EventManagerPlugin[], _zone: NgZone);
|
|
addEventListener(element: HTMLElement, eventName: string, handler: Function): Function;
|
|
addGlobalEventListener(target: string, eventName: string, handler: Function): Function;
|
|
getZone(): NgZone;
|
|
}
|
|
|
|
/** @experimental */
|
|
export declare const HAMMER_GESTURE_CONFIG: InjectionToken<HammerGestureConfig>;
|
|
|
|
export declare const HAMMER_LOADER: InjectionToken<HammerLoader>;
|
|
|
|
/** @experimental */
|
|
export declare class HammerGestureConfig {
|
|
events: string[];
|
|
options?: {
|
|
cssProps?: any;
|
|
domEvents?: boolean;
|
|
enable?: boolean | ((manager: any) => boolean);
|
|
preset?: any[];
|
|
touchAction?: string;
|
|
recognizers?: any[];
|
|
inputClass?: any;
|
|
inputTarget?: EventTarget;
|
|
};
|
|
overrides: {
|
|
[key: string]: Object;
|
|
};
|
|
buildHammer(element: HTMLElement): HammerInstance;
|
|
}
|
|
|
|
export declare type HammerLoader = () => Promise<void>;
|
|
|
|
/** @experimental */
|
|
export declare function makeStateKey<T = void>(key: string): StateKey<T>;
|
|
|
|
/** @experimental */
|
|
export declare class Meta {
|
|
constructor(_doc: any);
|
|
addTag(tag: MetaDefinition, forceCreation?: boolean): HTMLMetaElement | null;
|
|
addTags(tags: MetaDefinition[], forceCreation?: boolean): HTMLMetaElement[];
|
|
getTag(attrSelector: string): HTMLMetaElement | null;
|
|
getTags(attrSelector: string): HTMLMetaElement[];
|
|
removeTag(attrSelector: string): void;
|
|
removeTagElement(meta: HTMLMetaElement): void;
|
|
updateTag(tag: MetaDefinition, selector?: string): HTMLMetaElement | null;
|
|
}
|
|
|
|
/** @experimental */
|
|
export declare type MetaDefinition = {
|
|
charset?: string;
|
|
content?: string;
|
|
httpEquiv?: string;
|
|
id?: string;
|
|
itemprop?: string;
|
|
name?: string;
|
|
property?: string;
|
|
scheme?: string;
|
|
url?: string;
|
|
} & {
|
|
[prop: string]: string;
|
|
};
|
|
|
|
export declare const platformBrowser: (extraProviders?: StaticProvider[]) => PlatformRef;
|
|
|
|
export interface SafeHtml extends SafeValue {
|
|
}
|
|
|
|
export interface SafeResourceUrl extends SafeValue {
|
|
}
|
|
|
|
export interface SafeScript extends SafeValue {
|
|
}
|
|
|
|
export interface SafeStyle extends SafeValue {
|
|
}
|
|
|
|
export interface SafeUrl extends SafeValue {
|
|
}
|
|
|
|
export interface SafeValue {
|
|
}
|
|
|
|
/** @experimental */
|
|
export declare type StateKey<T> = string & {
|
|
__not_a_string: never;
|
|
};
|
|
|
|
/** @experimental */
|
|
export declare class Title {
|
|
constructor(_doc: any);
|
|
getTitle(): string;
|
|
setTitle(newTitle: string): void;
|
|
}
|
|
|
|
/** @experimental */
|
|
export declare class TransferState {
|
|
get<T>(key: StateKey<T>, defaultValue: T): T;
|
|
hasKey<T>(key: StateKey<T>): boolean;
|
|
onSerialize<T>(key: StateKey<T>, callback: () => T): void;
|
|
remove<T>(key: StateKey<T>): void;
|
|
set<T>(key: StateKey<T>, value: T): void;
|
|
toJson(): string;
|
|
}
|
|
|
|
export declare const VERSION: Version;
|