Skip to content

Commit 4d82f83

Browse files
jelbournmmalerba
authored andcommitted
feat(cdk): move overlay into cdk (#6100)
1 parent 0754320 commit 4d82f83

File tree

110 files changed

+554
-535
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

110 files changed

+554
-535
lines changed

scripts/closure-compiler/build-devapp-bundle.sh

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ $(npm bin)/ngc -p scripts/closure-compiler/tsconfig-rxjs.json
2424
rxjsSourceFiles=$(find dist/packages/rxjs -name '*.js');
2525

2626
# List of entry points in the CDK package. Exclude "testing" since it's not an entry point.
27-
cdkEntryPoints=($(find src/cdk/* -type d ! -name testing -exec basename {} \;))
27+
cdkEntryPoints=($(find src/cdk -maxdepth 1 -mindepth 1 -type d -not -name testing -exec basename {} \;))
2828

2929
# Due a Closure Compiler issue https://github.com/google/closure-compiler/issues/2247
3030
# we need to add exports to the different RxJS ES2015 files.

src/lib/core/overlay/_overlay.scss renamed to src/cdk/overlay/_overlay.scss

Lines changed: 14 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,16 @@
1-
@import '../style/variables';
1+
// We want overlays to always appear over user content, so set a baseline
2+
// very high z-index for the overlay container, which is where we create the new
3+
// stacking context for all overlays.
4+
$cdk-z-index-overlay-container: 1000;
5+
$cdk-z-index-overlay: 1000;
6+
$cdk-z-index-overlay-backdrop: 1000;
7+
8+
// Background color for all of the backdrops
9+
$cdk-overlay-dark-backdrop-background: rgba(0, 0, 0, 0.6);
10+
11+
// Default backdrop animation is based on the Material Design swift-ease-out.
12+
$backdrop-animation-duration: 400ms !default;
13+
$backdrop-animation-timing-function: cubic-bezier(0.25, 0.8, 0.25, 1) !default;
214

315

416
@mixin cdk-overlay() {
@@ -48,10 +60,7 @@
4860
z-index: $cdk-z-index-overlay-backdrop;
4961
pointer-events: auto;
5062
-webkit-tap-highlight-color: transparent;
51-
52-
// TODO(jelbourn): figure out if there are actually spec'ed colors for both light and dark
53-
// themes here. Currently using the values from AngularJS Material.
54-
transition: opacity $swift-ease-out-duration $swift-ease-out-timing-function;
63+
transition: opacity $backdrop-animation-duration $backdrop-animation-timing-function;
5564
opacity: 0;
5665

5766
&.cdk-overlay-backdrop-showing {

src/cdk/overlay/index.ts

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
/**
2+
* @license
3+
* Copyright Google Inc. All Rights Reserved.
4+
*
5+
* Use of this source code is governed by an MIT-style license that can be
6+
* found in the LICENSE file at https://angular.io/license
7+
*/
8+
9+
export * from './public_api';

src/lib/core/overlay/overlay-directives.spec.ts renamed to src/cdk/overlay/overlay-directives.spec.ts

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,13 @@
1-
import {ComponentFixture, TestBed, async} from '@angular/core/testing';
21
import {Component, ViewChild} from '@angular/core';
32
import {By} from '@angular/platform-browser';
3+
import {ComponentFixture, TestBed, async} from '@angular/core/testing';
4+
import {Directionality} from '@angular/cdk/bidi';
5+
import {dispatchKeyboardEvent} from '@angular/cdk/testing';
6+
import {ESCAPE} from '@angular/cdk/keycodes';
47
import {ConnectedOverlayDirective, OverlayModule, OverlayOrigin} from './index';
58
import {OverlayContainer} from './overlay-container';
69
import {ConnectedPositionStrategy} from './position/connected-position-strategy';
710
import {ConnectedOverlayPositionChange} from './position/connected-position';
8-
import {Directionality} from '../bidi/index';
9-
import {dispatchKeyboardEvent} from '@angular/cdk/testing';
10-
import {ESCAPE} from '../keyboard/keycodes';
1111

1212

1313
describe('Overlay directives', () => {

src/lib/core/overlay/overlay-directives.ts renamed to src/cdk/overlay/overlay-directives.ts

Lines changed: 26 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -7,37 +7,37 @@
77
*/
88

99
import {
10-
Directive,
11-
EventEmitter,
12-
TemplateRef,
13-
ViewContainerRef,
14-
Optional,
15-
Input,
16-
OnDestroy,
17-
Output,
18-
ElementRef,
19-
Renderer2,
20-
OnChanges,
21-
SimpleChanges,
22-
InjectionToken,
23-
Inject,
10+
Directive,
11+
ElementRef,
12+
EventEmitter,
13+
Inject,
14+
InjectionToken,
15+
Input,
16+
OnChanges,
17+
OnDestroy,
18+
Optional,
19+
Output,
20+
Renderer2,
21+
SimpleChanges,
22+
TemplateRef,
23+
ViewContainerRef,
2424
} from '@angular/core';
25+
import {Direction, Directionality} from '@angular/cdk/bidi';
26+
import {coerceBooleanProperty} from '@angular/cdk/coercion';
27+
import {ESCAPE} from '@angular/cdk/keycodes';
28+
import {TemplatePortal} from '@angular/cdk/portal';
2529
import {Overlay} from './overlay';
2630
import {OverlayRef} from './overlay-ref';
27-
import {TemplatePortal} from '../portal/portal';
2831
import {OverlayState} from './overlay-state';
2932
import {
30-
ConnectionPositionPair,
31-
// This import is only used to define a generic type. The current TypeScript version incorrectly
32-
// considers such imports as unused (https://github.com/Microsoft/TypeScript/issues/14953)
33-
// tslint:disable-next-line:no-unused-variable
34-
ConnectedOverlayPositionChange
33+
// This import is only used to define a generic type. The current TypeScript version incorrectly
34+
// considers such imports as unused (https://github.com/Microsoft/TypeScript/issues/14953)
35+
// tslint:disable-next-line:no-unused-variable
36+
ConnectedOverlayPositionChange,
37+
ConnectionPositionPair,
3538
} from './position/connected-position';
3639
import {ConnectedPositionStrategy} from './position/connected-position-strategy';
37-
import {Directionality, Direction} from '../bidi/index';
38-
import {coerceBooleanProperty} from '@angular/cdk/coercion';
39-
import {ScrollStrategy, RepositionScrollStrategy} from './scroll/index';
40-
import {ESCAPE} from '../keyboard/keycodes';
40+
import {RepositionScrollStrategy, ScrollStrategy} from './scroll/index';
4141
import {Subscription} from 'rxjs/Subscription';
4242

4343

@@ -56,7 +56,8 @@ export const MD_CONNECTED_OVERLAY_SCROLL_STRATEGY =
5656
new InjectionToken<() => ScrollStrategy>('md-connected-overlay-scroll-strategy');
5757

5858
/** @docs-private */
59-
export function MD_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY(overlay: Overlay) {
59+
export function MD_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER_FACTORY(overlay: Overlay):
60+
() => RepositionScrollStrategy {
6061
return () => overlay.scrollStrategies.reposition();
6162
}
6263

src/cdk/overlay/overlay-prebuilt.scss

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
@import './overlay';
2+
3+
@include cdk-overlay();

src/lib/core/overlay/overlay-ref.ts renamed to src/cdk/overlay/overlay-ref.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*/
88

99
import {NgZone} from '@angular/core';
10-
import {PortalHost, Portal} from '../portal/portal';
10+
import {PortalHost, Portal} from '@angular/cdk/portal';
1111
import {OverlayState} from './overlay-state';
1212
import {Observable} from 'rxjs/Observable';
1313
import {Subject} from 'rxjs/Subject';

src/lib/core/overlay/overlay-state.ts renamed to src/cdk/overlay/overlay-state.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*/
88

99
import {PositionStrategy} from './position/position-strategy';
10-
import {Direction} from '../bidi/index';
10+
import {Direction} from '@angular/cdk/bidi';
1111
import {ScrollStrategy} from './scroll/scroll-strategy';
1212
import {NoopScrollStrategy} from './scroll/noop-scroll-strategy';
1313

src/lib/core/overlay/overlay.spec.ts renamed to src/cdk/overlay/overlay.spec.ts

Lines changed: 10 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,17 @@
1-
import {inject, TestBed, async, ComponentFixture} from '@angular/core/testing';
2-
import {NgModule, Component, ViewChild, ViewContainerRef} from '@angular/core';
3-
import {TemplatePortalDirective, PortalModule} from '../portal/portal-directives';
4-
import {TemplatePortal, ComponentPortal} from '../portal/portal';
1+
import {async, ComponentFixture, inject, TestBed} from '@angular/core/testing';
2+
import {Component, NgModule, ViewChild, ViewContainerRef} from '@angular/core';
53
import {
4+
ComponentPortal,
5+
PortalModule,
6+
TemplatePortal,
7+
TemplatePortalDirective
8+
} from '@angular/cdk/portal';
9+
import {
10+
Overlay,
11+
OverlayContainer,
612
OverlayModule,
713
OverlayRef,
814
OverlayState,
9-
OverlayContainer,
10-
Overlay,
1115
PositionStrategy,
1216
ScrollStrategy,
1317
} from './index';

src/lib/core/overlay/overlay.ts renamed to src/cdk/overlay/overlay.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@ import {
1313
Injector,
1414
NgZone,
1515
} from '@angular/core';
16+
import {DomPortalHost} from '@angular/cdk/portal';
1617
import {OverlayState} from './overlay-state';
17-
import {DomPortalHost} from '../portal/dom-portal-host';
1818
import {OverlayRef} from './overlay-ref';
1919
import {OverlayPositionBuilder} from './position/overlay-position-builder';
2020
import {OverlayContainer} from './overlay-container';

src/lib/core/overlay/position/overlay-position-builder.ts renamed to src/cdk/overlay/position/overlay-position-builder.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,9 +6,9 @@
66
* found in the LICENSE file at https://angular.io/license
77
*/
88

9+
import {ElementRef, Injectable} from '@angular/core';
910
import {ViewportRuler} from './viewport-ruler';
1011
import {ConnectedPositionStrategy} from './connected-position-strategy';
11-
import {ElementRef, Injectable} from '@angular/core';
1212
import {GlobalPositionStrategy} from './global-position-strategy';
1313
import {OverlayConnectionPosition, OriginConnectionPosition} from './connected-position';
1414

src/lib/core/overlay/position/viewport-ruler.spec.ts renamed to src/cdk/overlay/position/viewport-ruler.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import {ViewportRuler, VIEWPORT_RULER_PROVIDER} from './viewport-ruler';
21
import {TestBed, inject} from '@angular/core/testing';
32
import {ScrollDispatchModule} from '../scroll/index';
3+
import {ViewportRuler, VIEWPORT_RULER_PROVIDER} from './viewport-ruler';
44

55

66
// For all tests, we assume the browser window is 1024x786 (outerWidth x outerHeight).

src/cdk/overlay/public_api.ts

Lines changed: 55 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,55 @@
1+
/**
2+
* @license
3+
* Copyright Google Inc. All Rights Reserved.
4+
*
5+
* Use of this source code is governed by an MIT-style license that can be
6+
* found in the LICENSE file at https://angular.io/license
7+
*/
8+
import {NgModule, Provider} from '@angular/core';
9+
import {PortalModule} from '@angular/cdk/portal';
10+
import {Overlay} from './overlay';
11+
import {ScrollDispatchModule} from './scroll/index';
12+
import {
13+
ConnectedOverlayDirective,
14+
OverlayOrigin,
15+
MD_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER,
16+
} from './overlay-directives';
17+
import {OverlayPositionBuilder} from './position/overlay-position-builder';
18+
import {VIEWPORT_RULER_PROVIDER} from './position/viewport-ruler';
19+
import {OVERLAY_CONTAINER_PROVIDER} from './overlay-container';
20+
21+
22+
export const OVERLAY_PROVIDERS: Provider[] = [
23+
Overlay,
24+
OverlayPositionBuilder,
25+
VIEWPORT_RULER_PROVIDER,
26+
OVERLAY_CONTAINER_PROVIDER,
27+
MD_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER,
28+
];
29+
30+
@NgModule({
31+
imports: [PortalModule, ScrollDispatchModule],
32+
exports: [ConnectedOverlayDirective, OverlayOrigin, ScrollDispatchModule],
33+
declarations: [ConnectedOverlayDirective, OverlayOrigin],
34+
providers: [OVERLAY_PROVIDERS],
35+
})
36+
export class OverlayModule {}
37+
38+
39+
export {Overlay} from './overlay';
40+
export {OverlayContainer} from './overlay-container';
41+
export {FullscreenOverlayContainer} from './fullscreen-overlay-container';
42+
export {OverlayRef} from './overlay-ref';
43+
export {OverlayState} from './overlay-state';
44+
export {ConnectedOverlayDirective, OverlayOrigin} from './overlay-directives';
45+
export {ViewportRuler} from './position/viewport-ruler';
46+
export {ComponentType} from '@angular/cdk/portal';
47+
48+
export * from './position/connected-position';
49+
export * from './scroll/index';
50+
51+
// Export pre-defined position strategies and interface to build custom ones.
52+
export {PositionStrategy} from './position/position-strategy';
53+
export {GlobalPositionStrategy} from './position/global-position-strategy';
54+
export {ConnectedPositionStrategy} from './position/connected-position-strategy';
55+
export {VIEWPORT_RULER_PROVIDER} from './position/viewport-ruler';

src/lib/core/overlay/scroll/block-scroll-strategy.spec.ts renamed to src/cdk/overlay/scroll/block-scroll-strategy.spec.ts

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
11
import {NgModule, Component} from '@angular/core';
22
import {inject, TestBed, async} from '@angular/core/testing';
3+
import {ComponentPortal, PortalModule} from '@angular/cdk/portal';
4+
import {Platform} from '@angular/cdk/platform';
35
import {
4-
ComponentPortal,
56
OverlayModule,
6-
PortalModule,
7-
Platform,
87
ViewportRuler,
98
OverlayState,
109
Overlay,
1110
OverlayRef,
1211
OverlayContainer,
13-
} from '../../core';
12+
} from '../index';
1413

1514

1615
describe('BlockScrollStrategy', () => {

src/lib/core/overlay/scroll/close-scroll-strategy.spec.ts renamed to src/cdk/overlay/scroll/close-scroll-strategy.spec.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
11
import {inject, TestBed, async} from '@angular/core/testing';
22
import {NgModule, Component} from '@angular/core';
33
import {Subject} from 'rxjs/Subject';
4+
import {ComponentPortal, PortalModule} from '@angular/cdk/portal';
45
import {
5-
PortalModule,
6-
ComponentPortal,
76
Overlay,
87
OverlayState,
98
OverlayRef,
109
OverlayModule,
1110
ScrollDispatcher,
1211
OverlayContainer,
13-
} from '../../core';
12+
} from '../index';
1413

1514

1615
describe('CloseScrollStrategy', () => {

src/lib/core/overlay/scroll/index.ts renamed to src/cdk/overlay/scroll/index.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,9 +7,9 @@
77
*/
88

99
import {NgModule} from '@angular/core';
10+
import {PlatformModule} from '@angular/cdk/platform';
1011
import {SCROLL_DISPATCHER_PROVIDER} from './scroll-dispatcher';
1112
import {Scrollable} from './scrollable';
12-
import {PlatformModule} from '../../platform/index';
1313
import {ScrollStrategyOptions} from './scroll-strategy-options';
1414

1515
export {Scrollable} from './scrollable';

src/lib/core/overlay/scroll/reposition-scroll-strategy.spec.ts renamed to src/cdk/overlay/scroll/reposition-scroll-strategy.spec.ts

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
1-
import {inject, TestBed, async} from '@angular/core/testing';
2-
import {NgModule, Component} from '@angular/core';
1+
import {async, inject, TestBed} from '@angular/core/testing';
2+
import {Component, NgModule} from '@angular/core';
33
import {Subject} from 'rxjs/Subject';
4+
import {ComponentPortal, PortalModule} from '@angular/cdk/portal';
45
import {
5-
PortalModule,
6-
ComponentPortal,
76
Overlay,
8-
OverlayState,
9-
OverlayRef,
10-
OverlayModule,
117
OverlayContainer,
8+
OverlayModule,
9+
OverlayRef,
10+
OverlayState,
1211
ScrollDispatcher,
13-
} from '../../core';
12+
} from '../index';
1413

1514

1615
describe('RepositionScrollStrategy', () => {

src/lib/core/overlay/scroll/scroll-dispatcher.spec.ts renamed to src/cdk/overlay/scroll/scroll-dispatcher.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import {inject, TestBed, async, fakeAsync, ComponentFixture, tick} from '@angular/core/testing';
22
import {NgModule, Component, ViewChild, ElementRef} from '@angular/core';
3-
import {OverlayModule, Scrollable, ScrollDispatcher} from '../index';
43
import {dispatchFakeEvent} from '@angular/cdk/testing';
4+
import {OverlayModule, Scrollable, ScrollDispatcher} from '../index';
55

66
describe('Scroll Dispatcher', () => {
77

src/lib/core/overlay/scroll/scroll-dispatcher.ts renamed to src/cdk/overlay/scroll/scroll-dispatcher.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*/
88

99
import {ElementRef, Injectable, NgZone, Optional, SkipSelf} from '@angular/core';
10-
import {Platform} from '../../platform/index';
10+
import {Platform} from '@angular/cdk/platform';
1111
import {Scrollable} from './scrollable';
1212
import {Subject} from 'rxjs/Subject';
1313
import {Subscription} from 'rxjs/Subscription';

src/cdk/overlay/tsconfig-build.json

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"extends": "../tsconfig-build",
3+
"files": [
4+
"public_api.ts"
5+
],
6+
"angularCompilerOptions": {
7+
"annotateForClosureCompiler": true,
8+
"strictMetadataEmit": true,
9+
"flatModuleOutFile": "index.js",
10+
"flatModuleId": "@angular/cdk/overlay",
11+
"skipTemplateCodegen": true
12+
}
13+
}

src/cdk/portal/portal-errors.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ export function throwPortalHostAlreadyDisposedError() {
3535
* @docs-private
3636
*/
3737
export function throwUnknownPortalTypeError() {
38-
throw Error('Attempting to attach an unknown Portal type. BasePortalHost accepts either' +
38+
throw Error('Attempting to attach an unknown Portal type. BasePortalHost accepts either ' +
3939
'a ComponentPortal or a TemplatePortal.');
4040
}
4141

src/cdk/testing/public_api.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,3 +10,4 @@ export * from './dispatch-events';
1010
export * from './event-objects';
1111
export * from './type-in-element';
1212
export * from './wrapped-error-message';
13+
export * from './fake-viewport-ruler';

src/demo-app/system-config.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ System.config({
3232
'@angular/cdk/coercion': 'dist/bundles/cdk-coercion.umd.js',
3333
'@angular/cdk/keycodes': 'dist/bundles/cdk-keycodes.umd.js',
3434
'@angular/cdk/observers': 'dist/bundles/cdk-observers.umd.js',
35+
'@angular/cdk/overlay': 'dist/bundles/cdk-overlay-content.umd.js',
3536
'@angular/cdk/platform': 'dist/bundles/cdk-platform.umd.js',
3637
'@angular/cdk/portal': 'dist/bundles/cdk-portal.umd.js',
3738
'@angular/cdk/rxjs': 'dist/bundles/cdk-rxjs.umd.js',

0 commit comments

Comments
 (0)