From 732408372557a42f93771a1a0385e97a54f95329 Mon Sep 17 00:00:00 2001 From: gentoo90 Date: Fri, 18 Oct 2019 10:58:42 +0300 Subject: [PATCH] fix(modal): add missing fields to `NgbModalConfig` (#3406) This fixes TS compilation error when a user tries to set any of these fields in a `NgbModalConfig` instance. --- src/modal/modal-config.spec.ts | 21 +++++++++++++++++++++ src/modal/modal-config.ts | 11 ++++++++++- 2 files changed, 31 insertions(+), 1 deletion(-) create mode 100644 src/modal/modal-config.spec.ts diff --git a/src/modal/modal-config.spec.ts b/src/modal/modal-config.spec.ts new file mode 100644 index 0000000000..046f9e8a78 --- /dev/null +++ b/src/modal/modal-config.spec.ts @@ -0,0 +1,21 @@ +import {inject} from '@angular/core/testing'; + +import {NgbModalConfig} from './modal-config'; + +describe('NgbModalConfig', () => { + + it('should have sensible default values', inject([NgbModalConfig], (config: NgbModalConfig) => { + + expect(config.ariaLabelledBy).toBeUndefined(); + expect(config.backdrop).toBe(true); + expect(config.backdropClass).toBeUndefined(); + expect(config.beforeDismiss).toBeUndefined(); + expect(config.centered).toBeUndefined(); + expect(config.container).toBeUndefined(); + expect(config.injector).toBeUndefined(); + expect(config.keyboard).toBe(true); + expect(config.scrollable).toBeUndefined(); + expect(config.size).toBeUndefined(); + expect(config.windowClass).toBeUndefined(); + })); +}); diff --git a/src/modal/modal-config.ts b/src/modal/modal-config.ts index f0339a63d5..cde3f8ab37 100644 --- a/src/modal/modal-config.ts +++ b/src/modal/modal-config.ts @@ -94,7 +94,16 @@ export interface NgbModalOptions { * @since 3.1.0 */ @Injectable({providedIn: 'root'}) -export class NgbModalConfig implements NgbModalOptions { +export class NgbModalConfig implements Required { + ariaLabelledBy: string; backdrop: boolean | 'static' = true; + beforeDismiss: () => boolean | Promise; + centered: boolean; + container: string; + injector: Injector; keyboard = true; + scrollable: boolean; + size: 'sm' | 'lg' | 'xl'; + windowClass: string; + backdropClass: string; }