Skip to content

Commit a275906

Browse files
committed
Add ScrollDispatcher to provider factory
1 parent a8f88bd commit a275906

File tree

5 files changed

+14
-9
lines changed

5 files changed

+14
-9
lines changed

src/lib/core/overlay/position/connected-position-strategy.spec.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ import {Scrollable} from '../scroll/scrollable';
77
import {Subscription} from 'rxjs';
88
import {TestBed, inject} from '@angular/core/testing';
99
import Spy = jasmine.Spy;
10+
import {SCROLL_DISPATCHER_PROVIDER} from '../scroll/scroll-dispatcher';
1011

1112

1213
// Default width and height of the overlay and origin panels throughout these tests.
@@ -22,7 +23,7 @@ describe('ConnectedPositionStrategy', () => {
2223
let viewportRuler: ViewportRuler;
2324

2425
beforeEach(() => TestBed.configureTestingModule({
25-
providers: [VIEWPORT_RULER_PROVIDER]
26+
providers: [VIEWPORT_RULER_PROVIDER, SCROLL_DISPATCHER_PROVIDER]
2627
}));
2728

2829
beforeEach(inject([ViewportRuler], (_ruler: ViewportRuler) => {

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
import {ViewportRuler, VIEWPORT_RULER_PROVIDER} from './viewport-ruler';
22
import {TestBed, inject} from '@angular/core/testing';
3+
import {SCROLL_DISPATCHER_PROVIDER} from '../scroll/scroll-dispatcher';
34

45
// For all tests, we assume the browser window is 1024x786 (outerWidth x outerHeight).
56
// The karma config has been set to this for local tests, and it is the default size
@@ -21,7 +22,7 @@ describe('ViewportRuler', () => {
2122
veryLargeElement.style.height = '6000px';
2223

2324
beforeEach(() => TestBed.configureTestingModule({
24-
providers: [VIEWPORT_RULER_PROVIDER]
25+
providers: [VIEWPORT_RULER_PROVIDER, SCROLL_DISPATCHER_PROVIDER]
2526
}));
2627

2728
beforeEach(inject([ViewportRuler], (viewportRuler: ViewportRuler) => {

src/lib/core/overlay/position/viewport-ruler.ts

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import {Injectable, Optional, SkipSelf} from '@angular/core';
2-
import {ScrollDispatcher} from '../scroll/scroll-dispatcher';
2+
import {ScrollDispatcher, SCROLL_DISPATCHER_PROVIDER} from '../scroll/scroll-dispatcher';
33

44

55
/**
@@ -70,13 +70,14 @@ export class ViewportRuler {
7070

7171
}
7272

73-
export function VIEWPORT_RULER_PROVIDER_FACTORY(parentDispatcher: ViewportRuler) {
74-
return parentDispatcher || new ViewportRuler(new ScrollDispatcher());
75-
};
73+
export function VIEWPORT_RULER_PROVIDER_FACTORY(parentRuler: ViewportRuler,
74+
scrollDispatcher: ScrollDispatcher) {
75+
return parentRuler || new ViewportRuler(scrollDispatcher);
76+
}
7677

7778
export const VIEWPORT_RULER_PROVIDER = {
7879
// If there is already a ViewportRuler available, use that. Otherwise, provide a new one.
7980
provide: ViewportRuler,
80-
deps: [[new Optional(), new SkipSelf(), ViewportRuler]],
81+
deps: [[new Optional(), new SkipSelf(), ViewportRuler], ScrollDispatcher],
8182
useFactory: VIEWPORT_RULER_PROVIDER_FACTORY
8283
};

src/lib/core/ripple/ripple.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import {
1818
} from './ripple-renderer';
1919
import {DefaultStyleCompatibilityModeModule} from '../compatibility/default-mode';
2020
import {ViewportRuler, VIEWPORT_RULER_PROVIDER} from '../overlay/position/viewport-ruler';
21+
import {SCROLL_DISPATCHER_PROVIDER} from '../overlay/scroll/scroll-dispatcher';
2122

2223

2324
@Directive({
@@ -238,7 +239,7 @@ export class MdRipple implements OnInit, OnDestroy, OnChanges {
238239
imports: [DefaultStyleCompatibilityModeModule],
239240
exports: [MdRipple, DefaultStyleCompatibilityModeModule],
240241
declarations: [MdRipple],
241-
providers: [VIEWPORT_RULER_PROVIDER],
242+
providers: [VIEWPORT_RULER_PROVIDER, SCROLL_DISPATCHER_PROVIDER],
242243
})
243244
export class MdRippleModule {
244245
/** @deprecated */

src/lib/tabs/tab-group.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@ import {MdTab} from './tab';
2828
import {MdTabBody} from './tab-body';
2929
import {VIEWPORT_RULER_PROVIDER} from '../core/overlay/position/viewport-ruler';
3030
import {MdTabHeader} from './tab-header';
31+
import {SCROLL_DISPATCHER_PROVIDER} from '../core/overlay/scroll/scroll-dispatcher';
3132

3233

3334
/** Used to generate unique ID's for each tab component */
@@ -204,7 +205,7 @@ export class MdTabGroup {
204205
exports: [MdTabGroup, MdTabLabel, MdTab, MdTabNavBar, MdTabLink, MdTabLinkRipple],
205206
declarations: [MdTabGroup, MdTabLabel, MdTab, MdInkBar, MdTabLabelWrapper,
206207
MdTabNavBar, MdTabLink, MdTabBody, MdTabLinkRipple, MdTabHeader],
207-
providers: [VIEWPORT_RULER_PROVIDER],
208+
providers: [VIEWPORT_RULER_PROVIDER, SCROLL_DISPATCHER_PROVIDER],
208209
})
209210
export class MdTabsModule {
210211
/** @deprecated */

0 commit comments

Comments
 (0)