feat(cdk): move cdkScrollable, ScrollDispatcher, and ViewportRuler out of overlay (#6547)

This commit is contained in:
Jeremy Elbourn
2017-08-22 17:46:09 -07:00
committed by Kara
parent c90ca55ef3
commit 0f6a2ecb3d
37 changed files with 95 additions and 65 deletions
@@ -1,12 +1,12 @@
import {ElementRef} from '@angular/core';
import {TestBed, inject} from '@angular/core/testing';
import {ConnectedPositionStrategy} from './connected-position-strategy';
import {ViewportRuler, VIEWPORT_RULER_PROVIDER} from './viewport-ruler';
import {ViewportRuler, VIEWPORT_RULER_PROVIDER} from '@angular/cdk/scrolling';
import {OverlayPositionBuilder} from './overlay-position-builder';
import {ConnectedOverlayPositionChange} from './connected-position';
import {Scrollable} from '../scroll/scrollable';
import {Scrollable} from '@angular/cdk/scrolling';
import {Subscription} from 'rxjs/Subscription';
import {ScrollDispatchModule} from '../scroll/index';
import {ScrollDispatchModule} from '@angular/cdk/scrolling';
import {OverlayRef} from '../overlay-ref';
@@ -8,7 +8,7 @@
import {PositionStrategy} from './position-strategy';
import {ElementRef} from '@angular/core';
import {ViewportRuler} from './viewport-ruler';
import {ViewportRuler} from '@angular/cdk/scrolling';
import {
ConnectionPositionPair,
OriginConnectionPosition,
@@ -18,7 +18,7 @@ import {
} from './connected-position';
import {Subject} from 'rxjs/Subject';
import {Observable} from 'rxjs/Observable';
import {Scrollable} from '../scroll/scrollable';
import {Scrollable} from '@angular/cdk/scrolling';
import {isElementScrolledOutsideView, isElementClippedByScrolling} from './scroll-clip';
import {OverlayRef} from '../overlay-ref';
@@ -7,7 +7,7 @@
*/
import {ElementRef, Injectable} from '@angular/core';
import {ViewportRuler} from './viewport-ruler';
import {ViewportRuler} from '@angular/cdk/scrolling';
import {ConnectedPositionStrategy} from './connected-position-strategy';
import {GlobalPositionStrategy} from './global-position-strategy';
import {OverlayConnectionPosition, OriginConnectionPosition} from './connected-position';
+6 -6
View File
@@ -8,15 +8,15 @@
import {NgModule, Provider} from '@angular/core';
import {PortalModule} from '@angular/cdk/portal';
import {Overlay} from './overlay';
import {ScrollDispatchModule} from './scroll/index';
import {ScrollDispatchModule, VIEWPORT_RULER_PROVIDER} from '@angular/cdk/scrolling';
import {
ConnectedOverlayDirective,
OverlayOrigin,
MD_CONNECTED_OVERLAY_SCROLL_STRATEGY_PROVIDER,
OverlayOrigin,
} from './overlay-directives';
import {OverlayPositionBuilder} from './position/overlay-position-builder';
import {VIEWPORT_RULER_PROVIDER} from './position/viewport-ruler';
import {OVERLAY_CONTAINER_PROVIDER} from './overlay-container';
import {ScrollStrategyOptions} from './scroll/scroll-strategy-options';
export const OVERLAY_PROVIDERS: Provider[] = [
@@ -31,7 +31,7 @@ export const OVERLAY_PROVIDERS: Provider[] = [
imports: [PortalModule, ScrollDispatchModule],
exports: [ConnectedOverlayDirective, OverlayOrigin, ScrollDispatchModule],
declarations: [ConnectedOverlayDirective, OverlayOrigin],
providers: [OVERLAY_PROVIDERS],
providers: [OVERLAY_PROVIDERS, ScrollStrategyOptions],
})
export class OverlayModule {}
@@ -42,7 +42,7 @@ export {FullscreenOverlayContainer} from './fullscreen-overlay-container';
export {OverlayRef} from './overlay-ref';
export {OverlayState} from './overlay-state';
export {ConnectedOverlayDirective, OverlayOrigin} from './overlay-directives';
export {ViewportRuler} from './position/viewport-ruler';
export {ViewportRuler} from '@angular/cdk/scrolling';
export {ComponentType} from '@angular/cdk/portal';
export * from './position/connected-position';
@@ -52,4 +52,4 @@ export * from './scroll/index';
export {PositionStrategy} from './position/position-strategy';
export {GlobalPositionStrategy} from './position/global-position-strategy';
export {ConnectedPositionStrategy} from './position/connected-position-strategy';
export {VIEWPORT_RULER_PROVIDER} from './position/viewport-ruler';
export {VIEWPORT_RULER_PROVIDER} from '@angular/cdk/scrolling';
@@ -1,15 +1,9 @@
import {NgModule, Component} from '@angular/core';
import {inject, TestBed, async} from '@angular/core/testing';
import {Component, NgModule} from '@angular/core';
import {async, inject, TestBed} from '@angular/core/testing';
import {ComponentPortal, PortalModule} from '@angular/cdk/portal';
import {Platform} from '@angular/cdk/platform';
import {
OverlayModule,
ViewportRuler,
OverlayState,
Overlay,
OverlayRef,
OverlayContainer,
} from '../index';
import {ViewportRuler} from '@angular/cdk/scrolling';
import {Overlay, OverlayContainer, OverlayModule, OverlayRef, OverlayState} from '../index';
describe('BlockScrollStrategy', () => {
@@ -7,7 +7,7 @@
*/
import {ScrollStrategy} from './scroll-strategy';
import {ViewportRuler} from '../position/viewport-ruler';
import {ViewportRuler} from '@angular/cdk/scrolling';
/**
* Strategy that will prevent the user from scrolling while the overlay is visible.
@@ -2,12 +2,12 @@ import {inject, TestBed, async} from '@angular/core/testing';
import {NgModule, Component} from '@angular/core';
import {Subject} from 'rxjs/Subject';
import {ComponentPortal, PortalModule} from '@angular/cdk/portal';
import {ScrollDispatcher} from '@angular/cdk/scrolling';
import {
Overlay,
OverlayState,
OverlayRef,
OverlayModule,
ScrollDispatcher,
OverlayContainer,
} from '../index';
@@ -9,7 +9,7 @@
import {ScrollStrategy, getMdScrollStrategyAlreadyAttachedError} from './scroll-strategy';
import {OverlayRef} from '../overlay-ref';
import {Subscription} from 'rxjs/Subscription';
import {ScrollDispatcher} from './scroll-dispatcher';
import {ScrollDispatcher} from '@angular/cdk/scrolling';
/**
+1 -16
View File
@@ -6,14 +6,7 @@
* found in the LICENSE file at https://angular.io/license
*/
import {NgModule} from '@angular/core';
import {PlatformModule} from '@angular/cdk/platform';
import {SCROLL_DISPATCHER_PROVIDER} from './scroll-dispatcher';
import {Scrollable} from './scrollable';
import {ScrollStrategyOptions} from './scroll-strategy-options';
export {Scrollable} from './scrollable';
export {ScrollDispatcher} from './scroll-dispatcher';
export {Scrollable, ScrollDispatcher} from '@angular/cdk/scrolling';
// Export pre-defined scroll strategies and interface to build custom ones.
export {ScrollStrategy} from './scroll-strategy';
@@ -22,11 +15,3 @@ export {RepositionScrollStrategy} from './reposition-scroll-strategy';
export {CloseScrollStrategy} from './close-scroll-strategy';
export {NoopScrollStrategy} from './noop-scroll-strategy';
export {BlockScrollStrategy} from './block-scroll-strategy';
@NgModule({
imports: [PlatformModule],
exports: [Scrollable],
declarations: [Scrollable],
providers: [SCROLL_DISPATCHER_PROVIDER, ScrollStrategyOptions],
})
export class ScrollDispatchModule { }
@@ -9,7 +9,7 @@
import {Subscription} from 'rxjs/Subscription';
import {ScrollStrategy, getMdScrollStrategyAlreadyAttachedError} from './scroll-strategy';
import {OverlayRef} from '../overlay-ref';
import {ScrollDispatcher} from './scroll-dispatcher';
import {ScrollDispatcher} from '@angular/cdk/scrolling';
/**
* Config options for the RepositionScrollStrategy.
@@ -10,8 +10,8 @@ import {Injectable} from '@angular/core';
import {CloseScrollStrategy} from './close-scroll-strategy';
import {NoopScrollStrategy} from './noop-scroll-strategy';
import {BlockScrollStrategy} from './block-scroll-strategy';
import {ScrollDispatcher} from './scroll-dispatcher';
import {ViewportRuler} from '../position/viewport-ruler';
import {ScrollDispatcher} from '@angular/cdk/scrolling';
import {ViewportRuler} from '@angular/cdk/scrolling';
import {
RepositionScrollStrategy,
RepositionScrollStrategyConfig,
+9
View File
@@ -0,0 +1,9 @@
/**
* @license
* Copyright Google Inc. All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
export * from './public_api';
+24
View File
@@ -0,0 +1,24 @@
/**
* @license
* Copyright Google Inc. All Rights Reserved.
*
* Use of this source code is governed by an MIT-style license that can be
* found in the LICENSE file at https://angular.io/license
*/
import {NgModule} from '@angular/core';
import {SCROLL_DISPATCHER_PROVIDER} from './scroll-dispatcher';
import {Scrollable} from './scrollable';
import {PlatformModule} from '@angular/cdk/platform';
@NgModule({
imports: [PlatformModule],
exports: [Scrollable],
declarations: [Scrollable],
providers: [SCROLL_DISPATCHER_PROVIDER],
})
export class ScrollDispatchModule {}
export * from './scroll-dispatcher';
export * from './scrollable';
export * from './viewport-ruler';
@@ -1,7 +1,7 @@
import {inject, TestBed, async, fakeAsync, ComponentFixture, tick} from '@angular/core/testing';
import {NgModule, Component, ViewChild, ElementRef} from '@angular/core';
import {Scrollable, ScrollDispatcher, ScrollDispatchModule} from './public_api';
import {dispatchFakeEvent} from '@angular/cdk/testing';
import {OverlayModule, Scrollable, ScrollDispatcher} from '../index';
describe('Scroll Dispatcher', () => {
@@ -176,7 +176,7 @@ class NestedScrollingComponent {
const TEST_COMPONENTS = [ScrollingComponent, NestedScrollingComponent];
@NgModule({
imports: [OverlayModule],
imports: [ScrollDispatchModule],
providers: [ScrollDispatcher],
exports: TEST_COMPONENTS,
declarations: TEST_COMPONENTS,
@@ -8,12 +8,12 @@
import {ElementRef, Injectable, NgZone, Optional, SkipSelf} from '@angular/core';
import {Platform} from '@angular/cdk/platform';
import {Scrollable} from './scrollable';
import {Subject} from 'rxjs/Subject';
import {Subscription} from 'rxjs/Subscription';
import {fromEvent} from 'rxjs/observable/fromEvent';
import {merge} from 'rxjs/observable/merge';
import {auditTime} from '../../rxjs/index';
import {auditTime} from 'rxjs/operator/auditTime';
import {Scrollable} from './scrollable';
/** Time in ms to throttle the scrolling events by default. */
+13
View File
@@ -0,0 +1,13 @@
{
"extends": "../tsconfig-build",
"files": [
"public_api.ts"
],
"angularCompilerOptions": {
"annotateForClosureCompiler": true,
"strictMetadataEmit": true,
"flatModuleOutFile": "index.js",
"flatModuleId": "@angular/cdk/scrolling",
"skipTemplateCodegen": true
}
}
@@ -1,5 +1,5 @@
import {TestBed, inject} from '@angular/core/testing';
import {ScrollDispatchModule} from '../scroll/index';
import {ScrollDispatchModule} from './public_api';
import {ViewportRuler, VIEWPORT_RULER_PROVIDER} from './viewport-ruler';
@@ -7,7 +7,7 @@
*/
import {Injectable, Optional, SkipSelf} from '@angular/core';
import {ScrollDispatcher} from '../scroll/scroll-dispatcher';
import {ScrollDispatcher} from './scroll-dispatcher';
/**
+1
View File
@@ -37,6 +37,7 @@ System.config({
'@angular/cdk/platform': 'dist/bundles/cdk-platform.umd.js',
'@angular/cdk/portal': 'dist/bundles/cdk-portal.umd.js',
'@angular/cdk/rxjs': 'dist/bundles/cdk-rxjs.umd.js',
'@angular/cdk/scrolling': 'dist/bundles/cdk-scrolling.umd.js',
'@angular/cdk/table': 'dist/bundles/cdk-table.umd.js',
'@angular/cdk/testing': 'dist/bundles/cdk-testing.umd.js',
},
+1
View File
@@ -37,6 +37,7 @@ System.config({
'@angular/cdk/platform': 'dist/bundles/cdk-platform.umd.js',
'@angular/cdk/portal': 'dist/bundles/cdk-portal.umd.js',
'@angular/cdk/rxjs': 'dist/bundles/cdk-rxjs.umd.js',
'@angular/cdk/scrolling': 'dist/bundles/cdk-scrolling.umd.js',
'@angular/cdk/table': 'dist/bundles/cdk-table.umd.js',
'@angular/cdk/testing': 'dist/bundles/cdk-testing.umd.js',
'@angular/material-examples': 'dist/bundles/material-examples.umd.js',
+2 -1
View File
@@ -11,7 +11,8 @@ import {
import {By} from '@angular/platform-browser';
import {NoopAnimationsModule} from '@angular/platform-browser/animations';
import {FormControl, FormsModule, ReactiveFormsModule} from '@angular/forms';
import {OverlayContainer, ScrollDispatcher} from '@angular/cdk/overlay';
import {ScrollDispatcher} from '@angular/cdk/scrolling';
import {OverlayContainer} from '@angular/cdk/overlay';
import {Direction, Directionality} from '@angular/cdk/bidi';
import {map, RxChain, startWith} from '@angular/cdk/rxjs';
import {createKeyboardEvent, dispatchFakeEvent, typeInElement} from '@angular/cdk/testing';
+1 -1
View File
@@ -1,7 +1,7 @@
import {async, ComponentFixture, TestBed} from '@angular/core/testing';
import {Component, DebugElement} from '@angular/core';
import {By} from '@angular/platform-browser';
import {ViewportRuler} from '@angular/cdk/overlay';
import {ViewportRuler} from '@angular/cdk/scrolling';
import {FakeViewportRuler} from '@angular/cdk/testing';
import {MdButtonModule} from './index';
import {MdRipple} from '../core/ripple/index';
+1 -1
View File
@@ -9,7 +9,7 @@ import {
import {FormControl, FormsModule, NgModel, ReactiveFormsModule} from '@angular/forms';
import {Component, DebugElement} from '@angular/core';
import {By} from '@angular/platform-browser';
import {ViewportRuler} from '@angular/cdk/overlay';
import {ViewportRuler} from '@angular/cdk/scrolling';
import {dispatchFakeEvent, FakeViewportRuler} from '@angular/cdk/testing';
import {MdCheckbox, MdCheckboxChange, MdCheckboxModule} from './index';
import {RIPPLE_FADE_IN_DURATION, RIPPLE_FADE_OUT_DURATION} from '../core/ripple/ripple-renderer';
+1 -1
View File
@@ -7,7 +7,7 @@
*/
import {NgModule} from '@angular/core';
import {ScrollDispatchModule, VIEWPORT_RULER_PROVIDER} from '@angular/cdk/overlay';
import {ScrollDispatchModule, VIEWPORT_RULER_PROVIDER} from '@angular/cdk/scrolling';
import {PlatformModule} from '@angular/cdk/platform';
import {MdCommonModule} from '../common-behaviors/common-module';
import {MdRipple} from './ripple';
+1 -1
View File
@@ -8,7 +8,7 @@
import {ElementRef, NgZone} from '@angular/core';
import {Platform} from '@angular/cdk/platform';
import {ViewportRuler} from '@angular/cdk/overlay';
import {ViewportRuler} from '@angular/cdk/scrolling';
import {RippleRef, RippleState} from './ripple-ref';
+1 -1
View File
@@ -1,7 +1,7 @@
import {TestBed, ComponentFixture, fakeAsync, tick, inject} from '@angular/core/testing';
import {Component, ViewChild} from '@angular/core';
import {Platform} from '@angular/cdk/platform';
import {ViewportRuler} from '@angular/cdk/overlay';
import {ViewportRuler} from '@angular/cdk/scrolling';
import {dispatchMouseEvent} from '@angular/cdk/testing';
import {RIPPLE_FADE_OUT_DURATION, RIPPLE_FADE_IN_DURATION} from './ripple-renderer';
import {
+1 -1
View File
@@ -18,7 +18,7 @@ import {
InjectionToken,
Optional,
} from '@angular/core';
import {ViewportRuler} from '@angular/cdk/overlay';
import {ViewportRuler} from '@angular/cdk/scrolling';
import {Platform} from '@angular/cdk/platform';
import {RippleConfig, RippleRenderer} from './ripple-renderer';
import {RippleRef} from './ripple-ref';
+1 -1
View File
@@ -2,7 +2,7 @@ import {async, ComponentFixture, fakeAsync, TestBed, tick} from '@angular/core/t
import {FormControl, FormsModule, NgModel, ReactiveFormsModule} from '@angular/forms';
import {Component, DebugElement} from '@angular/core';
import {By} from '@angular/platform-browser';
import {ViewportRuler} from '@angular/cdk/overlay';
import {ViewportRuler} from '@angular/cdk/scrolling';
import {dispatchFakeEvent, FakeViewportRuler} from '@angular/cdk/testing';
import {RIPPLE_FADE_IN_DURATION, RIPPLE_FADE_OUT_DURATION} from '../core/ripple/ripple-renderer';
import {MdRadioButton, MdRadioChange, MdRadioGroup, MdRadioModule} from './index';
+2 -1
View File
@@ -22,7 +22,8 @@ import {NoopAnimationsModule} from '@angular/platform-browser/animations';
import {async, ComponentFixture, fakeAsync, inject, TestBed, tick} from '@angular/core/testing';
import {Directionality} from '@angular/cdk/bidi';
import {DOWN_ARROW, END, ENTER, HOME, SPACE, TAB, UP_ARROW} from '@angular/cdk/keycodes';
import {OverlayContainer, ScrollDispatcher, ViewportRuler} from '@angular/cdk/overlay';
import {ScrollDispatcher, ViewportRuler} from '@angular/cdk/scrolling';
import {OverlayContainer} from '@angular/cdk/overlay';
import {dispatchFakeEvent, dispatchKeyboardEvent, wrappedErrorMessage} from '@angular/cdk/testing';
import {Subject} from 'rxjs/Subject';
import {map} from 'rxjs/operator/map';
+1 -1
View File
@@ -10,7 +10,7 @@ import {NgModule} from '@angular/core';
import {CommonModule} from '@angular/common';
import {PortalModule} from '@angular/cdk/portal';
import {ObserversModule} from '@angular/cdk/observers';
import {ScrollDispatchModule, VIEWPORT_RULER_PROVIDER} from '@angular/cdk/overlay';
import {ScrollDispatchModule, VIEWPORT_RULER_PROVIDER} from '@angular/cdk/scrolling';
import {MdCommonModule, MdRippleModule} from '../core';
import {MdTab} from './tab';
import {MdTabGroup} from './tab-group';
+1 -1
View File
@@ -2,7 +2,7 @@ import {async, ComponentFixture, fakeAsync, TestBed, tick} from '@angular/core/t
import {Component, QueryList, ViewChild, ViewChildren} from '@angular/core';
import {BrowserAnimationsModule, NoopAnimationsModule} from '@angular/platform-browser/animations';
import {By} from '@angular/platform-browser';
import {ViewportRuler} from '@angular/cdk/overlay';
import {ViewportRuler} from '@angular/cdk/scrolling';
import {dispatchFakeEvent, FakeViewportRuler} from '@angular/cdk/testing';
import {Observable} from 'rxjs/Observable';
import {MdTab, MdTabGroup, MdTabHeaderPosition, MdTabsModule} from './index';
+1 -1
View File
@@ -6,7 +6,7 @@ import {CommonModule} from '@angular/common';
import {By} from '@angular/platform-browser';
import {ENTER, LEFT_ARROW, RIGHT_ARROW, SPACE} from '@angular/cdk/keycodes';
import {PortalModule} from '@angular/cdk/portal';
import {ViewportRuler} from '@angular/cdk/overlay';
import {ViewportRuler} from '@angular/cdk/scrolling';
import {Direction, Directionality} from '@angular/cdk/bidi';
import {dispatchFakeEvent, dispatchKeyboardEvent, FakeViewportRuler} from '@angular/cdk/testing';
import {MdTabHeader} from './tab-header';
+1 -1
View File
@@ -1,7 +1,7 @@
import {async, ComponentFixture, fakeAsync, TestBed, tick} from '@angular/core/testing';
import {Component, ViewChild} from '@angular/core';
import {By} from '@angular/platform-browser';
import {ViewportRuler} from '@angular/cdk/overlay';
import {ViewportRuler} from '@angular/cdk/scrolling';
import {dispatchFakeEvent, dispatchMouseEvent, FakeViewportRuler} from '@angular/cdk/testing';
import {Direction, Directionality} from '@angular/cdk/bidi';
import {Subject} from 'rxjs/Subject';
+1 -1
View File
@@ -25,7 +25,7 @@ import {
QueryList,
forwardRef,
} from '@angular/core';
import {ViewportRuler} from '@angular/cdk/overlay';
import {ViewportRuler} from '@angular/cdk/scrolling';
import {Directionality} from '@angular/cdk/bidi';
import {Platform} from '@angular/cdk/platform';
import {auditTime, takeUntil} from '@angular/cdk/rxjs';
+1 -1
View File
@@ -24,6 +24,7 @@ import {
} from '@angular/core';
import {animate, AnimationEvent, state, style, transition, trigger} from '@angular/animations';
import {ComponentPortal} from '@angular/cdk/portal';
import {ScrollDispatcher} from '@angular/cdk/scrolling';
import {Observable} from 'rxjs/Observable';
import {Subject} from 'rxjs/Subject';
import {Directionality} from '@angular/cdk/bidi';
@@ -36,7 +37,6 @@ import {
OverlayRef,
OverlayState,
RepositionScrollStrategy,
ScrollDispatcher,
// This import is only used to define a generic type. The current TypeScript version incorrectly
// considers such imports as unused (https://github.com/Microsoft/TypeScript/issues/14953)
// tslint:disable-next-line:no-unused-variable
+1
View File
@@ -59,6 +59,7 @@ System.config({
'@angular/cdk/platform': 'dist/packages/cdk/platform/index.js',
'@angular/cdk/portal': 'dist/packages/cdk/portal/index.js',
'@angular/cdk/rxjs': 'dist/packages/cdk/rxjs/index.js',
'@angular/cdk/scrolling': 'dist/packages/cdk/scrolling/index.js',
'@angular/cdk/table': 'dist/packages/cdk/table/index.js',
'@angular/cdk/testing': 'dist/packages/cdk/testing/index.js',
},