From 68008f3e38b4e4216de6623a95222f0d9bdc5044 Mon Sep 17 00:00:00 2001 From: Jefiozie Date: Thu, 19 Oct 2017 05:04:24 +0200 Subject: [PATCH 1/3] fix(MatPaginatorIntl): Provide a provider if exists. If there is already a MatPaginatorIntl provider that one If not create a new instance. Closes #7344 --- src/lib/paginator/paginator-intl.ts | 16 +++++++++++++++- src/lib/paginator/paginator-module.ts | 4 ++-- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/src/lib/paginator/paginator-intl.ts b/src/lib/paginator/paginator-intl.ts index d8e3566c4b30..5d84e2ab28ba 100644 --- a/src/lib/paginator/paginator-intl.ts +++ b/src/lib/paginator/paginator-intl.ts @@ -6,7 +6,7 @@ * found in the LICENSE file at https://angular.io/license */ -import {Injectable} from '@angular/core'; +import {Injectable, SkipSelf, Optional } from '@angular/core'; import {Subject} from 'rxjs/Subject'; /** @@ -46,3 +46,17 @@ export class MatPaginatorIntl { return `${startIndex + 1} - ${endIndex} of ${length}`; } } + +/** @docs-private */ +export function MAT_PAGINATOR_INTL_PROVIDER_FACTORY( + parentMatPaginatorIntl: MatPaginatorIntl) { + return parentMatPaginatorIntl || new MatPaginatorIntl(); +} + +/** @docs-private */ +export const MAT_PAGINATOR_INTL_PROVIDER = { + // If there is already an MatPaginatorIntl available, use that. Otherwise, provide a new one. + provide: MatPaginatorIntl, + deps: [[new Optional(), new SkipSelf(), MatPaginatorIntl]], + useFactory: MAT_PAGINATOR_INTL_PROVIDER_FACTORY +}; diff --git a/src/lib/paginator/paginator-module.ts b/src/lib/paginator/paginator-module.ts index 25eb8f645508..4cfae3d080ee 100644 --- a/src/lib/paginator/paginator-module.ts +++ b/src/lib/paginator/paginator-module.ts @@ -12,7 +12,7 @@ import {MatButtonModule} from '@angular/material/button'; import {MatSelectModule} from '@angular/material/select'; import {MatTooltipModule} from '@angular/material/tooltip'; import {MatPaginator} from './paginator'; -import {MatPaginatorIntl} from './paginator-intl'; +import { MAT_PAGINATOR_INTL_PROVIDER} from './paginator-intl'; @NgModule({ @@ -24,6 +24,6 @@ import {MatPaginatorIntl} from './paginator-intl'; ], exports: [MatPaginator], declarations: [MatPaginator], - providers: [MatPaginatorIntl], + providers: [MAT_PAGINATOR_INTL_PROVIDER], }) export class MatPaginatorModule {} From d40e8ee36b2ffe34ba52825f81018023935214c9 Mon Sep 17 00:00:00 2001 From: Jefiozie Date: Mon, 23 Oct 2017 21:01:19 +0200 Subject: [PATCH 2/3] style(paginator): Changed arguments, removed spacing --- src/lib/paginator/paginator-intl.ts | 4 ++-- src/lib/paginator/paginator-module.ts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lib/paginator/paginator-intl.ts b/src/lib/paginator/paginator-intl.ts index 5d84e2ab28ba..78aac8cd3af8 100644 --- a/src/lib/paginator/paginator-intl.ts +++ b/src/lib/paginator/paginator-intl.ts @@ -48,7 +48,7 @@ export class MatPaginatorIntl { } /** @docs-private */ -export function MAT_PAGINATOR_INTL_PROVIDER_FACTORY( +export function parentIntl( parentMatPaginatorIntl: MatPaginatorIntl) { return parentMatPaginatorIntl || new MatPaginatorIntl(); } @@ -58,5 +58,5 @@ export const MAT_PAGINATOR_INTL_PROVIDER = { // If there is already an MatPaginatorIntl available, use that. Otherwise, provide a new one. provide: MatPaginatorIntl, deps: [[new Optional(), new SkipSelf(), MatPaginatorIntl]], - useFactory: MAT_PAGINATOR_INTL_PROVIDER_FACTORY + useFactory: parentIntl }; diff --git a/src/lib/paginator/paginator-module.ts b/src/lib/paginator/paginator-module.ts index 4cfae3d080ee..e0b7fd4463ed 100644 --- a/src/lib/paginator/paginator-module.ts +++ b/src/lib/paginator/paginator-module.ts @@ -12,7 +12,7 @@ import {MatButtonModule} from '@angular/material/button'; import {MatSelectModule} from '@angular/material/select'; import {MatTooltipModule} from '@angular/material/tooltip'; import {MatPaginator} from './paginator'; -import { MAT_PAGINATOR_INTL_PROVIDER} from './paginator-intl'; +import {MAT_PAGINATOR_INTL_PROVIDER} from './paginator-intl'; @NgModule({ From 826369a86385b4a3103adbafb0ba9e4003b04ff1 Mon Sep 17 00:00:00 2001 From: Jefiozie Date: Mon, 23 Oct 2017 21:27:06 +0200 Subject: [PATCH 3/3] style(paginator): Changed argument name. --- src/lib/paginator/paginator-intl.ts | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/lib/paginator/paginator-intl.ts b/src/lib/paginator/paginator-intl.ts index 78aac8cd3af8..60c46ddf89fb 100644 --- a/src/lib/paginator/paginator-intl.ts +++ b/src/lib/paginator/paginator-intl.ts @@ -48,9 +48,8 @@ export class MatPaginatorIntl { } /** @docs-private */ -export function parentIntl( - parentMatPaginatorIntl: MatPaginatorIntl) { - return parentMatPaginatorIntl || new MatPaginatorIntl(); +export function MAT_PAGINATOR_INTL_PROVIDER_FACTORY(parentIntl: MatPaginatorIntl) { + return parentIntl || new MatPaginatorIntl(); } /** @docs-private */ @@ -58,5 +57,5 @@ export const MAT_PAGINATOR_INTL_PROVIDER = { // If there is already an MatPaginatorIntl available, use that. Otherwise, provide a new one. provide: MatPaginatorIntl, deps: [[new Optional(), new SkipSelf(), MatPaginatorIntl]], - useFactory: parentIntl + useFactory: MAT_PAGINATOR_INTL_PROVIDER_FACTORY };