Skip to content

Commit 0cb1255

Browse files
committed
refactor(datepicker): remove circular dependencies
Adjusts a couple of types in order to avoid circular dependencies.
1 parent e7f72ab commit 0cb1255

File tree

4 files changed

+11
-17
lines changed

4 files changed

+11
-17
lines changed

goldens/ts-circular-deps.json

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -53,14 +53,6 @@
5353
"src/material/core/ripple/ripple-ref.ts",
5454
"src/material/core/ripple/ripple-renderer.ts"
5555
],
56-
[
57-
"src/material/datepicker/date-range-input.ts",
58-
"src/material/datepicker/date-range-picker.ts"
59-
],
60-
[
61-
"src/material/datepicker/datepicker-input.ts",
62-
"src/material/datepicker/datepicker.ts"
63-
],
6456
[
6557
"src/material/grid-list/grid-list.ts",
6658
"src/material/grid-list/tile-styler.ts"

src/material/datepicker/date-range-picker.ts

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

99
import {ChangeDetectionStrategy, Component, ViewEncapsulation} from '@angular/core';
10-
import {MatDatepickerBase, MatDatepickerContent} from './datepicker-base';
11-
import {MatDateRangeInput} from './date-range-input';
10+
import {MatDatepickerBase, MatDatepickerContent, MatDatepickerControl} from './datepicker-base';
1211
import {MAT_RANGE_DATE_SELECTION_MODEL_PROVIDER, DateRange} from './date-selection-model';
1312

1413
// TODO(mmalerba): We use a component instead of a directive here so the user can use implicit
@@ -23,8 +22,9 @@ import {MAT_RANGE_DATE_SELECTION_MODEL_PROVIDER, DateRange} from './date-selecti
2322
encapsulation: ViewEncapsulation.None,
2423
providers: [MAT_RANGE_DATE_SELECTION_MODEL_PROVIDER]
2524
})
26-
export class MatDateRangePicker<D>
27-
extends MatDatepickerBase<MatDateRangeInput<D>, DateRange<D>, D> {
25+
export class MatDateRangePicker<D> extends
26+
MatDatepickerBase<MatDatepickerControl<D> & {comparisonStart: D|null, comparisonEnd: D|null},
27+
DateRange<D>, D> {
2828

2929
protected _forwardContentValues(instance: MatDatepickerContent<DateRange<D>, D>) {
3030
super._forwardContentValues(instance);

src/material/datepicker/datepicker.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,8 +7,7 @@
77
*/
88

99
import {ChangeDetectionStrategy, Component, ViewEncapsulation} from '@angular/core';
10-
import {MatDatepickerBase} from './datepicker-base';
11-
import {MatDatepickerInput} from './datepicker-input';
10+
import {MatDatepickerBase, MatDatepickerControl} from './datepicker-base';
1211
import {MAT_SINGLE_DATE_SELECTION_MODEL_PROVIDER} from './date-selection-model';
1312

1413
// TODO(mmalerba): We use a component instead of a directive here so the user can use implicit
@@ -23,5 +22,5 @@ import {MAT_SINGLE_DATE_SELECTION_MODEL_PROVIDER} from './date-selection-model';
2322
encapsulation: ViewEncapsulation.None,
2423
providers: [MAT_SINGLE_DATE_SELECTION_MODEL_PROVIDER]
2524
})
26-
export class MatDatepicker<D> extends MatDatepickerBase<MatDatepickerInput<D>, D | null, D> {
25+
export class MatDatepicker<D> extends MatDatepickerBase<MatDatepickerControl<D>, D | null, D> {
2726
}

tools/public_api_guard/material/datepicker.d.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -174,7 +174,7 @@ export interface MatCalendarUserEvent<D> {
174174

175175
export declare type MatCalendarView = 'month' | 'year' | 'multi-year';
176176

177-
export declare class MatDatepicker<D> extends MatDatepickerBase<MatDatepickerInput<D>, D | null, D> {
177+
export declare class MatDatepicker<D> extends MatDatepickerBase<MatDatepickerControl<D>, D | null, D> {
178178
static ɵcmp: i0.ɵɵComponentDefWithMeta<MatDatepicker<any>, "mat-datepicker", ["matDatepicker"], {}, {}, never, never>;
179179
static ɵfac: i0.ɵɵFactoryDef<MatDatepicker<any>, never>;
180180
}
@@ -336,7 +336,10 @@ export declare class MatDateRangeInput<D> implements MatFormFieldControl<DateRan
336336
static ɵfac: i0.ɵɵFactoryDef<MatDateRangeInput<any>, [null, null, { optional: true; self: true; }, { optional: true; }, { optional: true; }]>;
337337
}
338338

339-
export declare class MatDateRangePicker<D> extends MatDatepickerBase<MatDateRangeInput<D>, DateRange<D>, D> {
339+
export declare class MatDateRangePicker<D> extends MatDatepickerBase<MatDatepickerControl<D> & {
340+
comparisonStart: D | null;
341+
comparisonEnd: D | null;
342+
}, DateRange<D>, D> {
340343
protected _forwardContentValues(instance: MatDatepickerContent<DateRange<D>, D>): void;
341344
static ɵcmp: i0.ɵɵComponentDefWithMeta<MatDateRangePicker<any>, "mat-date-range-picker", ["matDateRangePicker"], {}, {}, never, never>;
342345
static ɵfac: i0.ɵɵFactoryDef<MatDateRangePicker<any>, never>;

0 commit comments

Comments
 (0)