From 2e2f755e361f0d31edd49f140f3b678cfe7f1332 Mon Sep 17 00:00:00 2001 From: Kristiyan Kostadinov Date: Thu, 10 Jun 2021 14:46:00 +0200 Subject: [PATCH] fix(multiple): add inject flags to manual injector calls (#22922) Fixes a few more cases like #22665 where we were injecting something optionally, but we weren't passing the optional injector flag. (cherry picked from commit fc8a6f9cf5d9560dbd8ece6347a9066bb5f1020c) --- src/cdk-experimental/dialog/dialog.ts | 7 ++++--- src/material/bottom-sheet/bottom-sheet.ts | 5 +++-- src/material/dialog/dialog.ts | 5 +++-- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/cdk-experimental/dialog/dialog.ts b/src/cdk-experimental/dialog/dialog.ts index 3e01749e200a..13657874ceed 100644 --- a/src/cdk-experimental/dialog/dialog.ts +++ b/src/cdk-experimental/dialog/dialog.ts @@ -16,7 +16,8 @@ import { ComponentRef, OnDestroy, Type, - StaticProvider + StaticProvider, + InjectFlags } from '@angular/core'; import {ComponentPortal, TemplatePortal} from '@angular/cdk/portal'; import {of as observableOf, Observable, Subject, defer} from 'rxjs'; @@ -285,8 +286,8 @@ export class Dialog implements OnDestroy { {provide: DIALOG_DATA, useValue: config.data} ]; - if (config.direction && - (!userInjector || !userInjector.get(Directionality, null))) { + if (config.direction && (!userInjector || + !userInjector.get(Directionality, null, InjectFlags.Optional))) { providers.push({ provide: Directionality, useValue: {value: config.direction, change: observableOf()} diff --git a/src/material/bottom-sheet/bottom-sheet.ts b/src/material/bottom-sheet/bottom-sheet.ts index 75501f6f76ef..4278c1f171c3 100644 --- a/src/material/bottom-sheet/bottom-sheet.ts +++ b/src/material/bottom-sheet/bottom-sheet.ts @@ -20,6 +20,7 @@ import { Inject, OnDestroy, StaticProvider, + InjectFlags, } from '@angular/core'; import {of as observableOf} from 'rxjs'; import {MAT_BOTTOM_SHEET_DATA, MatBottomSheetConfig} from './bottom-sheet-config'; @@ -191,8 +192,8 @@ export class MatBottomSheet implements OnDestroy { {provide: MAT_BOTTOM_SHEET_DATA, useValue: config.data} ]; - if (config.direction && - (!userInjector || !userInjector.get(Directionality, null))) { + if (config.direction && (!userInjector || + !userInjector.get(Directionality, null, InjectFlags.Optional))) { providers.push({ provide: Directionality, useValue: {value: config.direction, change: observableOf()} diff --git a/src/material/dialog/dialog.ts b/src/material/dialog/dialog.ts index 87f3e1bf9444..a9e4d75ad845 100644 --- a/src/material/dialog/dialog.ts +++ b/src/material/dialog/dialog.ts @@ -20,6 +20,7 @@ import { Directive, Inject, Injectable, + InjectFlags, InjectionToken, Injector, OnDestroy, @@ -307,8 +308,8 @@ export abstract class _MatDialogBase implemen {provide: this._dialogRefConstructor, useValue: dialogRef} ]; - if (config.direction && - (!userInjector || !userInjector.get(Directionality, null))) { + if (config.direction && (!userInjector || + !userInjector.get(Directionality, null, InjectFlags.Optional))) { providers.push({ provide: Directionality, useValue: {value: config.direction, change: observableOf()}