@skyux/modals 5.5.0 → 5.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/skyux-modals.umd.js +25 -25
- package/documentation.json +65 -65
- package/esm2015/lib/modules/confirm/confirm-config.js.map +1 -1
- package/esm2015/lib/modules/confirm/confirm-modal-context.js.map +1 -1
- package/esm2015/lib/modules/confirm/confirm.component.js +1 -1
- package/esm2015/lib/modules/confirm/confirm.component.js.map +1 -1
- package/esm2015/lib/modules/confirm/confirm.module.js +1 -1
- package/esm2015/lib/modules/confirm/confirm.module.js.map +1 -1
- package/esm2015/lib/modules/confirm/confirm.service.js +1 -1
- package/esm2015/lib/modules/confirm/confirm.service.js.map +1 -1
- package/esm2015/lib/modules/modal/modal-adapter.service.js.map +1 -1
- package/esm2015/lib/modules/modal/modal-component-adapter.service.js +11 -11
- package/esm2015/lib/modules/modal/modal-component-adapter.service.js.map +1 -1
- package/esm2015/lib/modules/modal/modal-host.component.js +3 -3
- package/esm2015/lib/modules/modal/modal-host.component.js.map +1 -1
- package/esm2015/lib/modules/modal/modal-host.service.js +1 -1
- package/esm2015/lib/modules/modal/modal-host.service.js.map +1 -1
- package/esm2015/lib/modules/modal/modal-instance.js +1 -1
- package/esm2015/lib/modules/modal/modal-instance.js.map +1 -1
- package/esm2015/lib/modules/modal/modal-scroll-shadow.directive.js +3 -3
- package/esm2015/lib/modules/modal/modal-scroll-shadow.directive.js.map +1 -1
- package/esm2015/lib/modules/modal/modal.component.js +6 -6
- package/esm2015/lib/modules/modal/modal.component.js.map +1 -1
- package/esm2015/lib/modules/modal/modal.module.js +1 -1
- package/esm2015/lib/modules/modal/modal.module.js.map +1 -1
- package/esm2015/lib/modules/modal/modal.service.js +4 -4
- package/esm2015/lib/modules/modal/modal.service.js.map +1 -1
- package/esm2015/lib/modules/shared/sky-modals-resources.module.js +1 -1
- package/esm2015/lib/modules/shared/sky-modals-resources.module.js.map +1 -1
- package/fesm2015/skyux-modals.js +42 -42
- package/fesm2015/skyux-modals.js.map +1 -1
- package/lib/modules/confirm/confirm-config.d.ts +1 -1
- package/lib/modules/modal/modal-instance.d.ts +1 -1
- package/lib/modules/modal/modal-scroll-shadow.directive.d.ts +1 -1
- package/lib/modules/modal/modal.component.d.ts +2 -2
- package/package.json +4 -4
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modal.service.js","sourceRoot":"","sources":["../../../../../../../../libs/components/modals/src/lib/modules/modal/modal.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,UAAU,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"modal.service.js","sourceRoot":"","sources":["../../../../../../../../libs/components/modals/src/lib/modules/modal/modal.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,UAAU,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAEzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;;;AAGpD;;;;GAIG;AAOH,MAAM,OAAO,eAAe;IAG1B,wFAAwF;IACxF,uCAAuC;IACvC,YAAoB,uBAAoD;QAApD,4BAAuB,GAAvB,uBAAuB,CAA6B;IAAG,CAAC;IAE5E;;;OAGG;IACI,OAAO;QACZ,IAAI,eAAe,CAAC,IAAI,EAAE;YACxB,IAAI,CAAC,uBAAuB,CAAC,eAAe,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YACnE,eAAe,CAAC,IAAI,GAAG,SAAS,CAAC;SAClC;IACH,CAAC;IAED;;;;OAIG;IACI,IAAI,CACT,SAAc,EACd,MAA+C;QAE/C,MAAM,aAAa,GAAG,IAAI,gBAAgB,EAAE,CAAC;QAC7C,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;QAEnD,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;YACpB,OAAO,EAAE,gBAAgB;YACzB,QAAQ,EAAE,aAAa;SACxB,CAAC,CAAC;QAEH,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAErE,OAAO,aAAa,CAAC;IACvB,CAAC;IAEO,sBAAsB,CAC5B,iBAAsB;QAEtB,MAAM,aAAa,GAAmC;YACpD,SAAS,EAAE,EAAE;YACb,QAAQ,EAAE,KAAK;YACf,IAAI,EAAE,QAAQ;YACd,SAAS,EAAE,KAAK;SACjB,CAAC;QACF,IAAI,MAAM,GAAmC,SAAS,CAAC;QACvD,IAAI,MAAM,GAAQ,SAAS,CAAC;QAE5B,qDAAqD;QACrD,MAAM,GAAG;YACP,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,aAAa,EAAE;gBAC7C,SAAS,EAAE,iBAAiB;aAC7B,CAAC;YACF,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,aAAa,EAAE,iBAAiB,CAAC;SAC5D,CAAC;QAEF,IAAI,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,KAAK,IAAI,EAAE;YAC7C,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;SAC/B;aAAM;YACL,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;SAC3B;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,mBAAmB;QACzB,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE;YACzB,eAAe,CAAC,IAAI,GAAG,IAAI,CAAC,uBAAuB,CAAC,eAAe,CACjE,qBAAqB,CACtB,CAAC;SACH;IACH,CAAC;;6GA5EU,eAAe;iHAAf,eAAe,cAFd,KAAK;4FAEN,eAAe;kBAN3B,UAAU;mBAAC;oBACV,gGAAgG;oBAChG,8FAA8F;oBAC9F,2FAA2F;oBAC3F,UAAU,EAAE,KAAK;iBAClB","sourcesContent":["import { ComponentRef, Injectable } from '@angular/core';\nimport { SkyDynamicComponentService } from '@skyux/core';\n\nimport { SkyModalHostComponent } from './modal-host.component';\nimport { SkyModalInstance } from './modal-instance';\nimport { SkyModalConfigurationInterface } from './modal.interface';\n\n/**\n * A service that lauches modals. For information about how to test modals in SKY UX, see\n * [write unit tests for modals](https://developer.blackbaud.com/skyux/learn/get-started/advanced/unit-test-modals).\n * @dynamic\n */\n@Injectable({\n // Must be 'any' so that the modal component is created in the context of its module's injector.\n // If set to 'root', the component's dependency injections would only be derived from the root\n // injector and may loose context if the modal was opened from within a lazy-loaded module.\n providedIn: 'any',\n})\nexport class SkyModalService {\n private static host: ComponentRef<SkyModalHostComponent>;\n\n // TODO: In future breaking change - remove extra parameters as they are no longer used.\n /* tslint:disable:no-unused-variable */\n constructor(private dynamicComponentService?: SkyDynamicComponentService) {}\n\n /**\n * @private\n * Removes the modal host from the DOM.\n */\n public dispose(): void {\n if (SkyModalService.host) {\n this.dynamicComponentService.removeComponent(SkyModalService.host);\n SkyModalService.host = undefined;\n }\n }\n\n /**\n * Opens a modal using the specified component.\n * @param component Determines the component to render.\n * @param {SkyModalConfigurationInterface} config Populates the modal based on the `SkyModalConfigurationInterface` object.\n */\n public open(\n component: any,\n config?: SkyModalConfigurationInterface | any[]\n ): SkyModalInstance {\n const modalInstance = new SkyModalInstance();\n this.createHostComponent();\n const params = this.getConfigFromParameter(config);\n\n params.providers.push({\n provide: SkyModalInstance,\n useValue: modalInstance,\n });\n\n SkyModalService.host.instance.open(modalInstance, component, params);\n\n return modalInstance;\n }\n\n private getConfigFromParameter(\n providersOrConfig: any\n ): SkyModalConfigurationInterface {\n const defaultParams: SkyModalConfigurationInterface = {\n providers: [],\n fullPage: false,\n size: 'medium',\n tiledBody: false,\n };\n let params: SkyModalConfigurationInterface = undefined;\n let method: any = undefined;\n\n // Object Literal Lookup for backwards compatability.\n method = {\n 'providers?': Object.assign({}, defaultParams, {\n providers: providersOrConfig,\n }),\n config: Object.assign({}, defaultParams, providersOrConfig),\n };\n\n if (Array.isArray(providersOrConfig) === true) {\n params = method['providers?'];\n } else {\n params = method['config'];\n }\n\n return params;\n }\n\n private createHostComponent(): void {\n if (!SkyModalService.host) {\n SkyModalService.host = this.dynamicComponentService.createComponent(\n SkyModalHostComponent\n );\n }\n }\n}\n"]}
|
|
@@ -5,7 +5,7 @@
|
|
|
5
5
|
* To update this file, simply rerun the command.
|
|
6
6
|
*/
|
|
7
7
|
import { NgModule } from '@angular/core';
|
|
8
|
-
import {
|
|
8
|
+
import { SKY_LIB_RESOURCES_PROVIDERS, SkyI18nModule, getLibStringForLocale, } from '@skyux/i18n';
|
|
9
9
|
import * as i0 from "@angular/core";
|
|
10
10
|
const RESOURCES = {
|
|
11
11
|
'EN-US': {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sky-modals-resources.module.js","sourceRoot":"","sources":["../../../../../../../../libs/components/modals/src/lib/modules/shared/sky-modals-resources.module.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;
|
|
1
|
+
{"version":3,"file":"sky-modals-resources.module.js","sourceRoot":"","sources":["../../../../../../../../libs/components/modals/src/lib/modules/shared/sky-modals-resources.module.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EACL,2BAA2B,EAE3B,aAAa,EAGb,qBAAqB,GACtB,MAAM,aAAa,CAAC;;AAErB,MAAM,SAAS,GAA0C;IACvD,OAAO,EAAE;QACP,oCAAoC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;QACvD,qCAAqC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;QACzD,oCAAoC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;QACvD,wCAAwC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE;QAC/D,iBAAiB,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE;QAC7C,qBAAqB,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE;QAC/C,gCAAgC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE;QACvD,iCAAiC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;KACvD;CACF,CAAC;AAEF,MAAM,OAAO,0BAA0B;IAC9B,SAAS,CAAC,UAA4B,EAAE,IAAY;QACzD,OAAO,qBAAqB,CAAC,SAAS,EAAE,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACnE,CAAC;CACF;AAED;;GAEG;AAWH,MAAM,OAAO,wBAAwB;;sHAAxB,wBAAwB;uHAAxB,wBAAwB,YATzB,aAAa;uHASZ,wBAAwB,aARxB;QACT;YACE,OAAO,EAAE,2BAA2B;YACpC,QAAQ,EAAE,0BAA0B;YACpC,KAAK,EAAE,IAAI;SACZ;KACF,YAPS,aAAa;4FASZ,wBAAwB;kBAVpC,QAAQ;mBAAC;oBACR,OAAO,EAAE,CAAC,aAAa,CAAC;oBACxB,SAAS,EAAE;wBACT;4BACE,OAAO,EAAE,2BAA2B;4BACpC,QAAQ,EAAE,0BAA0B;4BACpC,KAAK,EAAE,IAAI;yBACZ;qBACF;iBACF","sourcesContent":["/**\n * NOTICE: DO NOT MODIFY THIS FILE!\n * The contents of this file were automatically generated by\n * the 'ng generate @skyux/i18n:lib-resources-module modules/shared/sky-modals' schematic.\n * To update this file, simply rerun the command.\n */\nimport { NgModule } from '@angular/core';\nimport {\n SKY_LIB_RESOURCES_PROVIDERS,\n SkyAppLocaleInfo,\n SkyI18nModule,\n SkyLibResources,\n SkyLibResourcesProvider,\n getLibStringForLocale,\n} from '@skyux/i18n';\n\nconst RESOURCES: { [locale: string]: SkyLibResources } = {\n 'EN-US': {\n skyux_confirm_dialog_default_ok_text: { message: 'OK' },\n skyux_confirm_dialog_default_yes_text: { message: 'Yes' },\n skyux_confirm_dialog_default_no_text: { message: 'No' },\n skyux_confirm_dialog_default_cancel_text: { message: 'Cancel' },\n skyux_modal_close: { message: 'Close modal' },\n skyux_modal_open_help: { message: 'Open Help' },\n skyux_modal_footer_cancel_button: { message: 'Cancel' },\n skyux_modal_footer_primary_button: { message: 'Save' },\n },\n};\n\nexport class SkyModalsResourcesProvider implements SkyLibResourcesProvider {\n public getString(localeInfo: SkyAppLocaleInfo, name: string): string {\n return getLibStringForLocale(RESOURCES, localeInfo.locale, name);\n }\n}\n\n/**\n * Import into any component library module that needs to use resource strings.\n */\n@NgModule({\n exports: [SkyI18nModule],\n providers: [\n {\n provide: SKY_LIB_RESOURCES_PROVIDERS,\n useClass: SkyModalsResourcesProvider,\n multi: true,\n },\n ],\n})\nexport class SkyModalsResourcesModule {}\n"]}
|
package/fesm2015/skyux-modals.js
CHANGED
|
@@ -199,6 +199,24 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
199
199
|
type: Injectable
|
|
200
200
|
}], ctorParameters: function () { return [{ type: i3.SkyAppWindowRef }]; } });
|
|
201
201
|
|
|
202
|
+
/**
|
|
203
|
+
* @internal
|
|
204
|
+
*/
|
|
205
|
+
class SkyModalConfiguration {
|
|
206
|
+
constructor() {
|
|
207
|
+
this.fullPage = this.fullPage;
|
|
208
|
+
this.size = 'medium';
|
|
209
|
+
}
|
|
210
|
+
}
|
|
211
|
+
SkyModalConfiguration.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyModalConfiguration, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
212
|
+
SkyModalConfiguration.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyModalConfiguration, providedIn: 'any' });
|
|
213
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyModalConfiguration, decorators: [{
|
|
214
|
+
type: Injectable,
|
|
215
|
+
args: [{
|
|
216
|
+
providedIn: 'any',
|
|
217
|
+
}]
|
|
218
|
+
}], ctorParameters: function () { return []; } });
|
|
219
|
+
|
|
202
220
|
/**
|
|
203
221
|
* @internal
|
|
204
222
|
* @dynamic
|
|
@@ -214,7 +232,7 @@ class SkyModalHostService {
|
|
|
214
232
|
return SkyModalHostService.modalHosts.length;
|
|
215
233
|
}
|
|
216
234
|
static get fullPageModalCount() {
|
|
217
|
-
|
|
235
|
+
const fullPageModals = SkyModalHostService.modalHosts.filter((modal) => modal.fullPage);
|
|
218
236
|
return fullPageModals.length;
|
|
219
237
|
}
|
|
220
238
|
static get BASE_Z_INDEX() {
|
|
@@ -252,24 +270,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
252
270
|
}]
|
|
253
271
|
}], ctorParameters: function () { return []; } });
|
|
254
272
|
|
|
255
|
-
/**
|
|
256
|
-
* @internal
|
|
257
|
-
*/
|
|
258
|
-
class SkyModalConfiguration {
|
|
259
|
-
constructor() {
|
|
260
|
-
this.fullPage = this.fullPage;
|
|
261
|
-
this.size = 'medium';
|
|
262
|
-
}
|
|
263
|
-
}
|
|
264
|
-
SkyModalConfiguration.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyModalConfiguration, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
265
|
-
SkyModalConfiguration.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyModalConfiguration, providedIn: 'any' });
|
|
266
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyModalConfiguration, decorators: [{
|
|
267
|
-
type: Injectable,
|
|
268
|
-
args: [{
|
|
269
|
-
providedIn: 'any',
|
|
270
|
-
}]
|
|
271
|
-
}], ctorParameters: function () { return []; } });
|
|
272
|
-
|
|
273
273
|
/**
|
|
274
274
|
* @internal
|
|
275
275
|
*/
|
|
@@ -305,12 +305,12 @@ class SkyModalHostComponent {
|
|
|
305
305
|
});
|
|
306
306
|
adapter.setPageScroll(SkyModalHostService.openModalCount > 0);
|
|
307
307
|
adapter.toggleFullPageModalClass(SkyModalHostService.fullPageModalCount > 0);
|
|
308
|
-
|
|
308
|
+
const providers = params.providers || /* istanbul ignore next */ [];
|
|
309
309
|
const injector = Injector.create({
|
|
310
310
|
providers,
|
|
311
311
|
parent: this.injector,
|
|
312
312
|
});
|
|
313
|
-
|
|
313
|
+
const modalComponentRef = this.target.createComponent(factory, undefined, injector);
|
|
314
314
|
modalInstance.componentInstance = modalComponentRef.instance;
|
|
315
315
|
function closeModal() {
|
|
316
316
|
hostService.destroy();
|
|
@@ -483,12 +483,12 @@ class SkyModalComponentAdapterService {
|
|
|
483
483
|
this.coreAdapter = coreAdapter;
|
|
484
484
|
}
|
|
485
485
|
handleWindowChange(modalEl) {
|
|
486
|
-
|
|
487
|
-
|
|
486
|
+
const boundedHeightEl = modalEl.nativeElement.querySelector('.sky-modal');
|
|
487
|
+
const fullPageModalEl = modalEl.nativeElement.querySelector('.sky-modal-full-page');
|
|
488
488
|
/*
|
|
489
489
|
Set modal height equal to max height of window (accounting for padding above and below modal)
|
|
490
490
|
*/
|
|
491
|
-
|
|
491
|
+
const newHeight = window.innerHeight - 40;
|
|
492
492
|
boundedHeightEl.style.maxHeight = newHeight.toString() + 'px';
|
|
493
493
|
if (fullPageModalEl) {
|
|
494
494
|
this.setFullPageHeight(fullPageModalEl);
|
|
@@ -498,27 +498,27 @@ class SkyModalComponentAdapterService {
|
|
|
498
498
|
IE11 doesn't handle flex and max-height correctly so we have to explicitly add
|
|
499
499
|
max-height to the content that accounts for standard header and footer height.
|
|
500
500
|
*/
|
|
501
|
-
|
|
502
|
-
|
|
501
|
+
const modalContentEl = modalEl.nativeElement.querySelector('.sky-modal-content');
|
|
502
|
+
const contentHeight = newHeight - 114;
|
|
503
503
|
modalContentEl.style.maxHeight = contentHeight.toString() + 'px';
|
|
504
504
|
}
|
|
505
505
|
}
|
|
506
506
|
isFocusInFirstItem(event, list) {
|
|
507
507
|
/* istanbul ignore next */
|
|
508
508
|
/* sanity check */
|
|
509
|
-
|
|
509
|
+
const eventTarget = event.target || event.srcElement;
|
|
510
510
|
return list.length > 0 && eventTarget === list[0];
|
|
511
511
|
}
|
|
512
512
|
isFocusInLastItem(event, list) {
|
|
513
513
|
/* istanbul ignore next */
|
|
514
514
|
/* sanity check */
|
|
515
|
-
|
|
515
|
+
const eventTarget = event.target || event.srcElement;
|
|
516
516
|
return list.length > 0 && eventTarget === list[list.length - 1];
|
|
517
517
|
}
|
|
518
518
|
isModalFocused(event, modalEl) {
|
|
519
519
|
/* istanbul ignore next */
|
|
520
520
|
/* sanity check */
|
|
521
|
-
|
|
521
|
+
const eventTarget = event.target || event.srcElement;
|
|
522
522
|
return (modalEl &&
|
|
523
523
|
eventTarget === modalEl.nativeElement.querySelector('.sky-modal-dialog'));
|
|
524
524
|
}
|
|
@@ -541,9 +541,9 @@ class SkyModalComponentAdapterService {
|
|
|
541
541
|
/* handle the case where somehow there is a focused element already in the modal */
|
|
542
542
|
if (!(document.activeElement &&
|
|
543
543
|
modalEl.nativeElement.contains(document.activeElement))) {
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
|
|
544
|
+
const currentScrollX = window.pageXOffset;
|
|
545
|
+
const currentScrollY = window.pageYOffset;
|
|
546
|
+
const inputWithAutofocus = modalEl.nativeElement.querySelector('[autofocus]');
|
|
547
547
|
if (inputWithAutofocus) {
|
|
548
548
|
inputWithAutofocus.focus();
|
|
549
549
|
}
|
|
@@ -645,7 +645,7 @@ class SkyModalComponent {
|
|
|
645
645
|
/* istanbul ignore else */
|
|
646
646
|
/* sanity check */
|
|
647
647
|
if (SkyModalHostService.openModalCount > 0) {
|
|
648
|
-
|
|
648
|
+
const topModal = SkyModalHostService.topModal;
|
|
649
649
|
if (topModal && topModal === this.hostService) {
|
|
650
650
|
if (event.which === 27) {
|
|
651
651
|
// Escape key up
|
|
@@ -659,12 +659,12 @@ class SkyModalComponent {
|
|
|
659
659
|
/* istanbul ignore else */
|
|
660
660
|
/* sanity check */
|
|
661
661
|
if (SkyModalHostService.openModalCount > 0) {
|
|
662
|
-
|
|
662
|
+
const topModal = SkyModalHostService.topModal;
|
|
663
663
|
if (topModal && topModal === this.hostService) {
|
|
664
664
|
if (event.which === 9) {
|
|
665
665
|
// Tab pressed
|
|
666
666
|
let focusChanged = false;
|
|
667
|
-
|
|
667
|
+
const focusElementList = this.coreAdapter.getFocusableChildren(this.elRef.nativeElement);
|
|
668
668
|
if (event.shiftKey &&
|
|
669
669
|
(this.componentAdapter.isFocusInFirstItem(event, focusElementList) ||
|
|
670
670
|
this.componentAdapter.isModalFocused(event, this.elRef))) {
|
|
@@ -796,10 +796,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
|
|
|
796
796
|
}]
|
|
797
797
|
}] });
|
|
798
798
|
|
|
799
|
-
class SkyModalCloseArgs {
|
|
800
|
-
constructor() { }
|
|
801
|
-
}
|
|
802
|
-
|
|
803
799
|
class SkyModalBeforeCloseHandler {
|
|
804
800
|
constructor(closeModal, closeArgs) {
|
|
805
801
|
this.closeModal = closeModal;
|
|
@@ -807,6 +803,10 @@ class SkyModalBeforeCloseHandler {
|
|
|
807
803
|
}
|
|
808
804
|
}
|
|
809
805
|
|
|
806
|
+
class SkyModalCloseArgs {
|
|
807
|
+
constructor() { }
|
|
808
|
+
}
|
|
809
|
+
|
|
810
810
|
// TODO: this class won't show in the generated docs until this work is done:
|
|
811
811
|
// https://github.com/blackbaud/skyux-docs-tools/issues/30
|
|
812
812
|
/**
|
|
@@ -1077,9 +1077,9 @@ class SkyModalService {
|
|
|
1077
1077
|
* @param {SkyModalConfigurationInterface} config Populates the modal based on the `SkyModalConfigurationInterface` object.
|
|
1078
1078
|
*/
|
|
1079
1079
|
open(component, config) {
|
|
1080
|
-
|
|
1080
|
+
const modalInstance = new SkyModalInstance();
|
|
1081
1081
|
this.createHostComponent();
|
|
1082
|
-
|
|
1082
|
+
const params = this.getConfigFromParameter(config);
|
|
1083
1083
|
params.providers.push({
|
|
1084
1084
|
provide: SkyModalInstance,
|
|
1085
1085
|
useValue: modalInstance,
|
|
@@ -1088,7 +1088,7 @@ class SkyModalService {
|
|
|
1088
1088
|
return modalInstance;
|
|
1089
1089
|
}
|
|
1090
1090
|
getConfigFromParameter(providersOrConfig) {
|
|
1091
|
-
|
|
1091
|
+
const defaultParams = {
|
|
1092
1092
|
providers: [],
|
|
1093
1093
|
fullPage: false,
|
|
1094
1094
|
size: 'medium',
|