Skip to content

Commit 43d2d8a

Browse files
committed
build: add API goldens for portal
Adds API goldens for the portal package and fixes some compilation errors that showed up when I was trying to generate it.
1 parent 3ec531b commit 43d2d8a

File tree

5 files changed

+136
-9
lines changed

5 files changed

+136
-9
lines changed

src/cdk/portal/dom-portal-outlet.ts

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -108,3 +108,9 @@ export class DomPortalOutlet extends BasePortalOutlet {
108108
return (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;
109109
}
110110
}
111+
112+
/**
113+
* @deprecated Use `DomPortalOutlet` instead.
114+
* @breaking-change 9.0.0
115+
*/
116+
export class DomPortalHost extends DomPortalOutlet {}

src/cdk/portal/portal-directives.ts

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,16 @@ export class CdkPortal extends TemplatePortal {
3636
}
3737
}
3838

39+
/**
40+
* @deprecated Use `CdkPortal` instead.
41+
* @breaking-change 9.0.0
42+
*/
43+
@Directive({
44+
selector: '[cdk-portal], [cdkPortal], [portal]',
45+
exportAs: 'cdkPortal',
46+
})
47+
export class TemplatePortalDirective extends CdkPortal {}
48+
3949
/**
4050
* Possible attached references to the CdkPortalOutlet.
4151
*/
@@ -158,9 +168,20 @@ export class CdkPortalOutlet extends BasePortalOutlet implements OnInit, OnDestr
158168
}
159169
}
160170

171+
/**
172+
* @deprecated Use `CdkPortalOutlet` instead.
173+
* @breaking-change 9.0.0
174+
*/
175+
@Directive({
176+
selector: '[cdkPortalOutlet], [cdkPortalHost], [portalHost]',
177+
exportAs: 'cdkPortalOutlet, cdkPortalHost',
178+
inputs: ['portal: cdkPortalOutlet']
179+
})
180+
export class PortalHostDirective extends CdkPortalOutlet {}
181+
161182

162183
@NgModule({
163-
exports: [CdkPortal, CdkPortalOutlet],
164-
declarations: [CdkPortal, CdkPortalOutlet],
184+
exports: [CdkPortal, CdkPortalOutlet, TemplatePortalDirective, PortalHostDirective],
185+
declarations: [CdkPortal, CdkPortalOutlet, TemplatePortalDirective, PortalHostDirective],
165186
})
166187
export class PortalModule {}

src/cdk/portal/portal.ts

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -169,6 +169,11 @@ export interface PortalOutlet {
169169
hasAttached(): boolean;
170170
}
171171

172+
/**
173+
* @deprecated Use `PortalOutlet` instead.
174+
* @breaking-change 9.0.0
175+
*/
176+
export type PortalHost = PortalOutlet;
172177

173178
/**
174179
* Partial implementation of PortalOutlet that handles attaching
@@ -254,3 +259,9 @@ export abstract class BasePortalOutlet implements PortalOutlet {
254259
}
255260
}
256261
}
262+
263+
/**
264+
* @deprecated Use `BasePortalOutlet` instead.
265+
* @breaking-change 9.0.0
266+
*/
267+
export abstract class BasePortalHost extends BasePortalOutlet {}

src/cdk/portal/public-api.ts

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,10 +10,3 @@ export * from './portal';
1010
export * from './dom-portal-outlet';
1111
export * from './portal-directives';
1212
export * from './portal-injector';
13-
14-
export {DomPortalOutlet as DomPortalHost} from './dom-portal-outlet';
15-
export {
16-
CdkPortalOutlet as PortalHostDirective,
17-
CdkPortal as TemplatePortalDirective,
18-
} from './portal-directives';
19-
export {PortalOutlet as PortalHost, BasePortalOutlet as BasePortalHost} from './portal';
Lines changed: 96 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,96 @@
1+
export declare abstract class BasePortalHost extends BasePortalOutlet {
2+
}
3+
4+
export declare abstract class BasePortalOutlet implements PortalOutlet {
5+
protected _attachedPortal: Portal<any> | null;
6+
attach<T>(portal: ComponentPortal<T>): ComponentRef<T>;
7+
attach<T>(portal: TemplatePortal<T>): EmbeddedViewRef<T>;
8+
attach(portal: any): any;
9+
abstract attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T>;
10+
abstract attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C>;
11+
detach(): void;
12+
dispose(): void;
13+
hasAttached(): boolean;
14+
setDisposeFn(fn: () => void): void;
15+
}
16+
17+
export declare class CdkPortal extends TemplatePortal {
18+
constructor(templateRef: TemplateRef<any>, viewContainerRef: ViewContainerRef);
19+
}
20+
21+
export declare class CdkPortalOutlet extends BasePortalOutlet implements OnInit, OnDestroy {
22+
attached: EventEmitter<CdkPortalOutletAttachedRef>;
23+
readonly attachedRef: CdkPortalOutletAttachedRef;
24+
portal: Portal<any> | null;
25+
constructor(_componentFactoryResolver: ComponentFactoryResolver, _viewContainerRef: ViewContainerRef);
26+
attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T>;
27+
attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C>;
28+
ngOnDestroy(): void;
29+
ngOnInit(): void;
30+
}
31+
32+
export declare type CdkPortalOutletAttachedRef = ComponentRef<any> | EmbeddedViewRef<any> | null;
33+
34+
export declare class ComponentPortal<T> extends Portal<ComponentRef<T>> {
35+
component: ComponentType<T>;
36+
componentFactoryResolver?: ComponentFactoryResolver | null;
37+
injector?: Injector | null;
38+
viewContainerRef?: ViewContainerRef | null;
39+
constructor(component: ComponentType<T>, viewContainerRef?: ViewContainerRef | null, injector?: Injector | null, componentFactoryResolver?: ComponentFactoryResolver | null);
40+
}
41+
42+
export interface ComponentType<T> {
43+
new (...args: any[]): T;
44+
}
45+
46+
export declare class DomPortalHost extends DomPortalOutlet {
47+
}
48+
49+
export declare class DomPortalOutlet extends BasePortalOutlet {
50+
outletElement: Element;
51+
constructor(
52+
outletElement: Element, _componentFactoryResolver: ComponentFactoryResolver, _appRef: ApplicationRef, _defaultInjector: Injector);
53+
attachComponentPortal<T>(portal: ComponentPortal<T>): ComponentRef<T>;
54+
attachTemplatePortal<C>(portal: TemplatePortal<C>): EmbeddedViewRef<C>;
55+
dispose(): void;
56+
}
57+
58+
export declare abstract class Portal<T> {
59+
readonly isAttached: boolean;
60+
attach(host: PortalOutlet): T;
61+
detach(): void;
62+
setAttachedHost(host: PortalOutlet | null): void;
63+
}
64+
65+
export declare type PortalHost = PortalOutlet;
66+
67+
export declare class PortalHostDirective extends CdkPortalOutlet {
68+
}
69+
70+
export declare class PortalInjector implements Injector {
71+
constructor(_parentInjector: Injector, _customTokens: WeakMap<any, any>);
72+
get(token: any, notFoundValue?: any): any;
73+
}
74+
75+
export declare class PortalModule {
76+
}
77+
78+
export interface PortalOutlet {
79+
attach(portal: Portal<any>): any;
80+
detach(): any;
81+
dispose(): void;
82+
hasAttached(): boolean;
83+
}
84+
85+
export declare class TemplatePortal<C = any> extends Portal<EmbeddedViewRef<C>> {
86+
context: C | undefined;
87+
readonly origin: ElementRef;
88+
templateRef: TemplateRef<C>;
89+
viewContainerRef: ViewContainerRef;
90+
constructor(template: TemplateRef<C>, viewContainerRef: ViewContainerRef, context?: C);
91+
attach(host: PortalOutlet, context?: C | undefined): EmbeddedViewRef<C>;
92+
detach(): void;
93+
}
94+
95+
export declare class TemplatePortalDirective extends CdkPortal {
96+
}

0 commit comments

Comments
 (0)