@skyux/modals 5.8.0 → 5.8.3

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.
@@ -817,9 +817,13 @@
817
817
  referenceEl: this.modalContentWrapperElement.nativeElement,
818
818
  zIndex: 5,
819
819
  });
820
- this.mediaQueryService.observe(this.modalContentWrapperElement);
820
+ /* istanbul ignore next */
821
+ if (this.mediaQueryService) {
822
+ this.mediaQueryService.observe(this.modalContentWrapperElement);
823
+ }
821
824
  };
822
825
  SkyModalComponent.prototype.ngOnDestroy = function () {
826
+ /* istanbul ignore next */
823
827
  if (this.mediaQueryService) {
824
828
  this.mediaQueryService.unobserve();
825
829
  }
@@ -841,7 +845,7 @@
841
845
  };
842
846
  return SkyModalComponent;
843
847
  }());
844
- SkyModalComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyModalComponent, deps: [{ token: SkyModalHostService }, { token: SkyModalConfiguration }, { token: i0__namespace.ElementRef }, { token: i3__namespace.SkyAppWindowRef }, { token: SkyModalComponentAdapterService }, { token: i3__namespace.SkyCoreAdapterService }, { token: i3__namespace.SkyDockService, host: true }, { token: i3__namespace.SkyMediaQueryService, host: true, optional: true }], target: i0__namespace.ɵɵFactoryTarget.Component });
848
+ SkyModalComponent.ɵfac = i0__namespace.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0__namespace, type: SkyModalComponent, deps: [{ token: SkyModalHostService }, { token: SkyModalConfiguration }, { token: i0__namespace.ElementRef }, { token: i3__namespace.SkyAppWindowRef }, { token: SkyModalComponentAdapterService }, { token: i3__namespace.SkyCoreAdapterService }, { token: i3__namespace.SkyDockService, host: true }, { token: i3__namespace.SkyResizeObserverMediaQueryService, host: true, optional: true }], target: i0__namespace.ɵɵFactoryTarget.Component });
845
849
  SkyModalComponent.ɵcmp = i0__namespace.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: SkyModalComponent, selector: "sky-modal", inputs: { ariaRole: "ariaRole", tiledBody: "tiledBody" }, host: { listeners: { "document:keyup": "onDocumentKeyUp($event)", "document:keydown": "onDocumentKeyDown($event)" }, properties: { "class": "this.wrapperClass" } }, providers: [
846
850
  SkyModalComponentAdapterService,
847
851
  i3$1.SkyDockService,
@@ -869,7 +873,7 @@
869
873
  }], ctorParameters: function () {
870
874
  return [{ type: SkyModalHostService }, { type: SkyModalConfiguration }, { type: i0__namespace.ElementRef }, { type: i3__namespace.SkyAppWindowRef }, { type: SkyModalComponentAdapterService }, { type: i3__namespace.SkyCoreAdapterService }, { type: i3__namespace.SkyDockService, decorators: [{
871
875
  type: i0.Host
872
- }] }, { type: i3__namespace.SkyMediaQueryService, decorators: [{
876
+ }] }, { type: i3__namespace.SkyResizeObserverMediaQueryService, decorators: [{
873
877
  type: i0.Optional
874
878
  }, {
875
879
  type: i0.Host
@@ -1993,7 +1993,7 @@
1993
1993
  ],
1994
1994
  "type": {
1995
1995
  "type": "reference",
1996
- "name": "SkyMediaQueryService"
1996
+ "name": "SkyResizeObserverMediaQueryService"
1997
1997
  }
1998
1998
  }
1999
1999
  ],
@@ -2403,7 +2403,7 @@
2403
2403
  "sources": [
2404
2404
  {
2405
2405
  "fileName": "projects/modals/src/modules/modal/modal.component.ts",
2406
- "line": 226,
2406
+ "line": 228,
2407
2407
  "character": 9
2408
2408
  }
2409
2409
  ],
@@ -2432,7 +2432,7 @@
2432
2432
  "sources": [
2433
2433
  {
2434
2434
  "fileName": "projects/modals/src/modules/modal/modal.component.ts",
2435
- "line": 222,
2435
+ "line": 224,
2436
2436
  "character": 9
2437
2437
  }
2438
2438
  ],
@@ -2461,7 +2461,7 @@
2461
2461
  "sources": [
2462
2462
  {
2463
2463
  "fileName": "projects/modals/src/modules/modal/modal.component.ts",
2464
- "line": 193,
2464
+ "line": 195,
2465
2465
  "character": 9
2466
2466
  }
2467
2467
  ],
@@ -2498,7 +2498,7 @@
2498
2498
  "sources": [
2499
2499
  {
2500
2500
  "fileName": "projects/modals/src/modules/modal/modal.component.ts",
2501
- "line": 214,
2501
+ "line": 217,
2502
2502
  "character": 9
2503
2503
  }
2504
2504
  ],
@@ -2550,7 +2550,7 @@
2550
2550
  "sources": [
2551
2551
  {
2552
2552
  "fileName": "projects/modals/src/modules/modal/modal.component.ts",
2553
- "line": 152,
2553
+ "line": 154,
2554
2554
  "character": 9
2555
2555
  }
2556
2556
  ],
@@ -2609,7 +2609,7 @@
2609
2609
  "sources": [
2610
2610
  {
2611
2611
  "fileName": "projects/modals/src/modules/modal/modal.component.ts",
2612
- "line": 136,
2612
+ "line": 138,
2613
2613
  "character": 9
2614
2614
  }
2615
2615
  ],
@@ -2653,7 +2653,7 @@
2653
2653
  "sources": [
2654
2654
  {
2655
2655
  "fileName": "projects/modals/src/modules/modal/modal.component.ts",
2656
- "line": 234,
2656
+ "line": 236,
2657
2657
  "character": 9
2658
2658
  }
2659
2659
  ],
@@ -2695,7 +2695,7 @@
2695
2695
  "sources": [
2696
2696
  {
2697
2697
  "fileName": "projects/modals/src/modules/modal/modal.component.ts",
2698
- "line": 230,
2698
+ "line": 232,
2699
2699
  "character": 9
2700
2700
  }
2701
2701
  ],
@@ -135,9 +135,13 @@ export class SkyModalComponent {
135
135
  referenceEl: this.modalContentWrapperElement.nativeElement,
136
136
  zIndex: 5,
137
137
  });
138
- this.mediaQueryService.observe(this.modalContentWrapperElement);
138
+ /* istanbul ignore next */
139
+ if (this.mediaQueryService) {
140
+ this.mediaQueryService.observe(this.modalContentWrapperElement);
141
+ }
139
142
  }
140
143
  ngOnDestroy() {
144
+ /* istanbul ignore next */
141
145
  if (this.mediaQueryService) {
142
146
  this.mediaQueryService.unobserve();
143
147
  }
@@ -158,7 +162,7 @@ export class SkyModalComponent {
158
162
  return actualSize && actualSize.toLowerCase() === size;
159
163
  }
160
164
  }
161
- SkyModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyModalComponent, deps: [{ token: i1.SkyModalHostService }, { token: i2.SkyModalConfiguration }, { token: i0.ElementRef }, { token: i3.SkyAppWindowRef }, { token: i4.SkyModalComponentAdapterService }, { token: i3.SkyCoreAdapterService }, { token: i3.SkyDockService, host: true }, { token: i3.SkyMediaQueryService, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Component });
165
+ SkyModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyModalComponent, deps: [{ token: i1.SkyModalHostService }, { token: i2.SkyModalConfiguration }, { token: i0.ElementRef }, { token: i3.SkyAppWindowRef }, { token: i4.SkyModalComponentAdapterService }, { token: i3.SkyCoreAdapterService }, { token: i3.SkyDockService, host: true }, { token: i3.SkyResizeObserverMediaQueryService, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Component });
162
166
  SkyModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: SkyModalComponent, selector: "sky-modal", inputs: { ariaRole: "ariaRole", tiledBody: "tiledBody" }, host: { listeners: { "document:keyup": "onDocumentKeyUp($event)", "document:keydown": "onDocumentKeyDown($event)" }, properties: { "class": "this.wrapperClass" } }, providers: [
163
167
  SkyModalComponentAdapterService,
164
168
  SkyDockService,
@@ -185,7 +189,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
185
189
  }]
186
190
  }], ctorParameters: function () { return [{ type: i1.SkyModalHostService }, { type: i2.SkyModalConfiguration }, { type: i0.ElementRef }, { type: i3.SkyAppWindowRef }, { type: i4.SkyModalComponentAdapterService }, { type: i3.SkyCoreAdapterService }, { type: i3.SkyDockService, decorators: [{
187
191
  type: Host
188
- }] }, { type: i3.SkyMediaQueryService, decorators: [{
192
+ }] }, { type: i3.SkyResizeObserverMediaQueryService, decorators: [{
189
193
  type: Optional
190
194
  }, {
191
195
  type: Host
@@ -1 +1 @@
1
- {"version":3,"file":"modal.component.js","sourceRoot":"","sources":["../../../../../../../../libs/components/modals/src/lib/modules/modal/modal.component.ts","../../../../../../../../libs/components/modals/src/lib/modules/modal/modal.component.html"],"names":[],"mappings":"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","sourcesContent":["import {\n AfterViewInit,\n Component,\n ElementRef,\n Host,\n HostBinding,\n HostListener,\n Input,\n OnDestroy,\n Optional,\n ViewChild,\n} from '@angular/core';\nimport {\n SkyAppWindowRef,\n SkyCoreAdapterService,\n SkyDockLocation,\n SkyDockService,\n SkyMediaQueryService,\n SkyResizeObserverMediaQueryService,\n} from '@skyux/core';\n\nimport { SkyModalComponentAdapterService } from './modal-component-adapter.service';\nimport { SkyModalConfiguration } from './modal-configuration';\nimport { SkyModalHostService } from './modal-host.service';\nimport { SkyModalScrollShadowEventArgs } from './modal-scroll-shadow-event-args';\nimport { skyAnimationModalState } from './modal-state-animation';\n\nlet skyModalUniqueIdentifier = 0;\n\n/**\n * Provides a common look-and-feel for modal content with options to display\n * a common modal header, specify body content, and display a common modal footer\n * and buttons. For information about how to test modals in SKY UX, see\n * [write unit tests for modals](https://developer.blackbaud.com/skyux/learn/accessibility/test).\n */\n@Component({\n selector: 'sky-modal',\n templateUrl: './modal.component.html',\n styleUrls: ['./modal.component.scss'],\n animations: [skyAnimationModalState],\n providers: [\n SkyModalComponentAdapterService,\n SkyDockService,\n {\n provide: SkyMediaQueryService,\n useClass: SkyResizeObserverMediaQueryService,\n },\n ],\n})\nexport class SkyModalComponent implements AfterViewInit, OnDestroy {\n @HostBinding('class')\n public get wrapperClass(): string {\n return this.config.wrapperClass;\n }\n\n /**\n * @internal\n */\n @Input()\n public get ariaRole() {\n return this.config.ariaRole || 'dialog';\n }\n public set ariaRole(value: string) {\n this.config.ariaRole = value;\n }\n\n /**\n * @internal\n */\n @Input()\n public set tiledBody(value: boolean) {\n this.config.tiledBody = value;\n }\n\n public get modalZIndex() {\n return this.hostService.getModalZIndex();\n }\n\n public get modalFullPage() {\n return this.config.fullPage;\n }\n\n public get isSmallSize() {\n return !this.modalFullPage && this.isSizeEqual(this.config.size, 'small');\n }\n\n public get isMediumSize() {\n return !this.modalFullPage && !(this.isSmallSize || this.isLargeSize);\n }\n\n public get isLargeSize() {\n return !this.modalFullPage && this.isSizeEqual(this.config.size, 'large');\n }\n\n public get isTiledBody() {\n return this.config.tiledBody;\n }\n\n public get ariaDescribedBy() {\n return this.config.ariaDescribedBy || this.modalContentId;\n }\n\n public get ariaLabelledBy() {\n return this.config.ariaLabelledBy || this.modalHeaderId;\n }\n\n public get helpKey() {\n return this.config.helpKey;\n }\n\n public modalState = 'in';\n\n public modalContentId: string =\n 'sky-modal-content-id-' + skyModalUniqueIdentifier.toString();\n\n public modalHeaderId: string =\n 'sky-modal-header-id-' + skyModalUniqueIdentifier.toString();\n\n public scrollShadow: SkyModalScrollShadowEventArgs;\n\n @ViewChild('modalContentWrapper', { read: ElementRef })\n private modalContentWrapperElement: ElementRef;\n\n constructor(\n private hostService: SkyModalHostService,\n private config: SkyModalConfiguration,\n private elRef: ElementRef,\n private windowRef: SkyAppWindowRef,\n private componentAdapter: SkyModalComponentAdapterService,\n private coreAdapter: SkyCoreAdapterService,\n @Host() private dockService: SkyDockService,\n @Optional() @Host() private mediaQueryService?: SkyMediaQueryService\n ) {}\n\n @HostListener('document:keyup', ['$event'])\n public onDocumentKeyUp(event: KeyboardEvent) {\n /* istanbul ignore else */\n /* sanity check */\n if (SkyModalHostService.openModalCount > 0) {\n const topModal = SkyModalHostService.topModal;\n if (topModal && topModal === this.hostService) {\n if (event.which === 27) {\n // Escape key up\n event.preventDefault();\n this.closeButtonClick();\n }\n }\n }\n }\n\n @HostListener('document:keydown', ['$event'])\n public onDocumentKeyDown(event: KeyboardEvent) {\n /* istanbul ignore else */\n /* sanity check */\n if (SkyModalHostService.openModalCount > 0) {\n const topModal = SkyModalHostService.topModal;\n if (topModal && topModal === this.hostService) {\n if (event.which === 9) {\n // Tab pressed\n let focusChanged = false;\n\n const focusElementList = this.coreAdapter.getFocusableChildren(\n this.elRef.nativeElement\n );\n\n if (\n event.shiftKey &&\n (this.componentAdapter.isFocusInFirstItem(\n event,\n focusElementList\n ) ||\n this.componentAdapter.isModalFocused(event, this.elRef))\n ) {\n focusChanged =\n this.componentAdapter.focusLastElement(focusElementList);\n } else if (\n !event.shiftKey &&\n this.componentAdapter.isFocusInLastItem(event, focusElementList)\n ) {\n focusChanged =\n this.componentAdapter.focusFirstElement(focusElementList);\n }\n\n if (focusChanged) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n }\n }\n }\n\n public ngAfterViewInit() {\n skyModalUniqueIdentifier++;\n this.componentAdapter.handleWindowChange(this.elRef);\n\n // Adding a timeout to avoid ExpressionChangedAfterItHasBeenCheckedError.\n // https://stackoverflow.com/questions/40562845\n this.windowRef.nativeWindow.setTimeout(() => {\n this.componentAdapter.modalOpened(this.elRef);\n });\n\n this.dockService.setDockOptions({\n location: SkyDockLocation.ElementBottom,\n referenceEl: this.modalContentWrapperElement.nativeElement,\n zIndex: 5,\n });\n\n (this.mediaQueryService as SkyResizeObserverMediaQueryService).observe(\n this.modalContentWrapperElement\n );\n }\n\n public ngOnDestroy(): void {\n if (this.mediaQueryService) {\n (\n this.mediaQueryService as SkyResizeObserverMediaQueryService\n ).unobserve();\n }\n }\n\n public helpButtonClick() {\n this.hostService.onOpenHelp(this.helpKey);\n }\n\n public closeButtonClick() {\n this.hostService.onClose();\n }\n\n public windowResize() {\n this.componentAdapter.handleWindowChange(this.elRef);\n }\n\n public scrollShadowChange(args: SkyModalScrollShadowEventArgs): void {\n this.scrollShadow = args;\n }\n\n private isSizeEqual(actualSize: string, size: string) {\n return actualSize && actualSize.toLowerCase() === size;\n }\n}\n","<!--\n Animations are broken in Chrome v52. Angular 2 RC5 will fix it.\n https://github.com/angular/angular/issues/10245\n-->\n<!--<div @modalState=\"modalState\">-->\n\n<div\n class=\"sky-modal-dialog\"\n aria-modal=\"true\"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.role]=\"ariaRole\"\n (window:resize)=\"windowResize()\"\n>\n <div\n class=\"sky-modal sky-shadow sky-box sky-elevation-16\"\n tabindex=\"-1\"\n [ngClass]=\"{\n 'sky-modal-full-page': modalFullPage,\n 'sky-modal-small': isSmallSize,\n 'sky-modal-medium': isMediumSize,\n 'sky-modal-large': isLargeSize,\n 'sky-modal-tiled': isTiledBody\n }\"\n [ngStyle]=\"{\n zIndex: modalZIndex\n }\"\n >\n <div\n class=\"sky-modal-header\"\n [hidden]=\"!headerContent || !headerContent.children || headerContent.children.length &lt; 1\"\n [ngStyle]=\"{\n 'box-shadow': scrollShadow?.topShadow\n }\"\n >\n <div\n class=\"sky-modal-header-content\"\n [attr.id]=\"modalHeaderId\"\n [ngClass]=\"{\n 'sky-section-heading': modalFullPage\n }\"\n #headerContent\n >\n <ng-content select=\"sky-modal-header\"></ng-content>\n </div>\n <div class=\"sky-modal-header-buttons\">\n <button\n *ngIf=\"helpKey\"\n class=\"sky-btn sky-modal-btn-help\"\n name=\"help-button\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_modal_open_help' | skyLibResources\"\n (click)=\"helpButtonClick()\"\n >\n <sky-icon icon=\"question-circle\"></sky-icon>\n </button>\n\n <button\n type=\"button\"\n class=\"sky-btn sky-modal-btn-close\"\n [attr.aria-label]=\"'skyux_modal_close' | skyLibResources\"\n (click)=\"closeButtonClick()\"\n >\n <sky-icon icon=\"close\"></sky-icon>\n </button>\n </div>\n </div>\n <div\n class=\"sky-modal-content sky-padding-even-large\"\n role=\"region\"\n tabindex=\"0\"\n [attr.aria-labelledby]=\"modalHeaderId\"\n [attr.id]=\"modalContentId\"\n (skyModalScrollShadow)=\"scrollShadowChange($event)\"\n #modalContentWrapper\n >\n <ng-content select=\"sky-modal-content\"></ng-content>\n </div>\n <div\n class=\"sky-modal-footer\"\n [ngStyle]=\"{\n 'box-shadow': scrollShadow?.bottomShadow\n }\"\n >\n <ng-content select=\"sky-modal-footer\"></ng-content>\n </div>\n </div>\n</div>\n"]}
1
+ {"version":3,"file":"modal.component.js","sourceRoot":"","sources":["../../../../../../../../libs/components/modals/src/lib/modules/modal/modal.component.ts","../../../../../../../../libs/components/modals/src/lib/modules/modal/modal.component.html"],"names":[],"mappings":"AAAA,OAAO,EAEL,SAAS,EACT,UAAU,EACV,IAAI,EACJ,WAAW,EACX,YAAY,EACZ,KAAK,EAEL,QAAQ,EACR,SAAS,GACV,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,eAAe,EACf,qBAAqB,EACrB,eAAe,EACf,cAAc,EACd,oBAAoB,EACpB,kCAAkC,GACnC,MAAM,aAAa,CAAC;AAErB,OAAO,EAAE,+BAA+B,EAAE,MAAM,mCAAmC,CAAC;AACpF,OAAO,EAAE,qBAAqB,EAAE,MAAM,uBAAuB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,sBAAsB,CAAC;AAE3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;;;;;;;;;;AAEjE,IAAI,wBAAwB,GAAG,CAAC,CAAC;AAEjC;;;;;GAKG;AAeH,MAAM,OAAO,iBAAiB;IA0E5B,YACU,WAAgC,EAChC,MAA6B,EAC7B,KAAiB,EACjB,SAA0B,EAC1B,gBAAiD,EACjD,WAAkC,EAC1B,WAA2B,EAGnC,iBAAsD;QATtD,gBAAW,GAAX,WAAW,CAAqB;QAChC,WAAM,GAAN,MAAM,CAAuB;QAC7B,UAAK,GAAL,KAAK,CAAY;QACjB,cAAS,GAAT,SAAS,CAAiB;QAC1B,qBAAgB,GAAhB,gBAAgB,CAAiC;QACjD,gBAAW,GAAX,WAAW,CAAuB;QAC1B,gBAAW,GAAX,WAAW,CAAgB;QAGnC,sBAAiB,GAAjB,iBAAiB,CAAqC;QAvBzD,eAAU,GAAG,IAAI,CAAC;QAElB,mBAAc,GACnB,uBAAuB,GAAG,wBAAwB,CAAC,QAAQ,EAAE,CAAC;QAEzD,kBAAa,GAClB,sBAAsB,GAAG,wBAAwB,CAAC,QAAQ,EAAE,CAAC;IAkB5D,CAAC;IApFJ,IACW,YAAY;QACrB,OAAO,IAAI,CAAC,MAAM,CAAC,YAAY,CAAC;IAClC,CAAC;IAED;;OAEG;IACH,IACW,QAAQ;QACjB,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,QAAQ,CAAC;IAC1C,CAAC;IACD,IAAW,QAAQ,CAAC,KAAa;QAC/B,IAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,IACW,SAAS,CAAC,KAAc;QACjC,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,KAAK,CAAC;IAChC,CAAC;IAED,IAAW,WAAW;QACpB,OAAO,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,CAAC;IAC3C,CAAC;IAED,IAAW,aAAa;QACtB,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;IAC9B,CAAC;IAED,IAAW,WAAW;QACpB,OAAO,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5E,CAAC;IAED,IAAW,YAAY;QACrB,OAAO,CAAC,IAAI,CAAC,aAAa,IAAI,CAAC,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,WAAW,CAAC,CAAC;IACxE,CAAC;IAED,IAAW,WAAW;QACpB,OAAO,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC5E,CAAC;IAED,IAAW,WAAW;QACpB,OAAO,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;IAC/B,CAAC;IAED,IAAW,eAAe;QACxB,OAAO,IAAI,CAAC,MAAM,CAAC,eAAe,IAAI,IAAI,CAAC,cAAc,CAAC;IAC5D,CAAC;IAED,IAAW,cAAc;QACvB,OAAO,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,IAAI,CAAC,aAAa,CAAC;IAC1D,CAAC;IAED,IAAW,OAAO;QAChB,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;IAC7B,CAAC;IA6BM,eAAe,CAAC,KAAoB;QACzC,0BAA0B;QAC1B,kBAAkB;QAClB,IAAI,mBAAmB,CAAC,cAAc,GAAG,CAAC,EAAE;YAC1C,MAAM,QAAQ,GAAG,mBAAmB,CAAC,QAAQ,CAAC;YAC9C,IAAI,QAAQ,IAAI,QAAQ,KAAK,IAAI,CAAC,WAAW,EAAE;gBAC7C,IAAI,KAAK,CAAC,KAAK,KAAK,EAAE,EAAE;oBACtB,gBAAgB;oBAChB,KAAK,CAAC,cAAc,EAAE,CAAC;oBACvB,IAAI,CAAC,gBAAgB,EAAE,CAAC;iBACzB;aACF;SACF;IACH,CAAC;IAGM,iBAAiB,CAAC,KAAoB;QAC3C,0BAA0B;QAC1B,kBAAkB;QAClB,IAAI,mBAAmB,CAAC,cAAc,GAAG,CAAC,EAAE;YAC1C,MAAM,QAAQ,GAAG,mBAAmB,CAAC,QAAQ,CAAC;YAC9C,IAAI,QAAQ,IAAI,QAAQ,KAAK,IAAI,CAAC,WAAW,EAAE;gBAC7C,IAAI,KAAK,CAAC,KAAK,KAAK,CAAC,EAAE;oBACrB,cAAc;oBACd,IAAI,YAAY,GAAG,KAAK,CAAC;oBAEzB,MAAM,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,oBAAoB,CAC5D,IAAI,CAAC,KAAK,CAAC,aAAa,CACzB,CAAC;oBAEF,IACE,KAAK,CAAC,QAAQ;wBACd,CAAC,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CACvC,KAAK,EACL,gBAAgB,CACjB;4BACC,IAAI,CAAC,gBAAgB,CAAC,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,EAC1D;wBACA,YAAY;4BACV,IAAI,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC;qBAC5D;yBAAM,IACL,CAAC,KAAK,CAAC,QAAQ;wBACf,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,KAAK,EAAE,gBAAgB,CAAC,EAChE;wBACA,YAAY;4BACV,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;qBAC7D;oBAED,IAAI,YAAY,EAAE;wBAChB,KAAK,CAAC,cAAc,EAAE,CAAC;wBACvB,KAAK,CAAC,eAAe,EAAE,CAAC;qBACzB;iBACF;aACF;SACF;IACH,CAAC;IAEM,eAAe;QACpB,wBAAwB,EAAE,CAAC;QAC3B,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAErD,yEAAyE;QACzE,+CAA+C;QAC/C,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,UAAU,CAAC,GAAG,EAAE;YAC1C,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,WAAW,CAAC,cAAc,CAAC;YAC9B,QAAQ,EAAE,eAAe,CAAC,aAAa;YACvC,WAAW,EAAE,IAAI,CAAC,0BAA0B,CAAC,aAAa;YAC1D,MAAM,EAAE,CAAC;SACV,CAAC,CAAC;QAEH,0BAA0B;QAC1B,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,IAAI,CAAC,iBAAiB,CAAC,OAAO,CAAC,IAAI,CAAC,0BAA0B,CAAC,CAAC;SACjE;IACH,CAAC;IAEM,WAAW;QAChB,0BAA0B;QAC1B,IAAI,IAAI,CAAC,iBAAiB,EAAE;YAC1B,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,CAAC;SACpC;IACH,CAAC;IAEM,eAAe;QACpB,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC;IAEM,gBAAgB;QACrB,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;IAC7B,CAAC;IAEM,YAAY;QACjB,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACvD,CAAC;IAEM,kBAAkB,CAAC,IAAmC;QAC3D,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;IAC3B,CAAC;IAEO,WAAW,CAAC,UAAkB,EAAE,IAAY;QAClD,OAAO,UAAU,IAAI,UAAU,CAAC,WAAW,EAAE,KAAK,IAAI,CAAC;IACzD,CAAC;;+GAhMU,iBAAiB;mGAAjB,iBAAiB,mQATjB;QACT,+BAA+B;QAC/B,cAAc;QACd;YACE,OAAO,EAAE,oBAAoB;YAC7B,QAAQ,EAAE,kCAAkC;SAC7C;KACF,wIAyEyC,UAAU,6BCxHtD,yiFAwFA,g3IDjDc,CAAC,sBAAsB,CAAC;4FAUzB,iBAAiB;kBAd7B,SAAS;mBAAC;oBACT,QAAQ,EAAE,WAAW;oBACrB,WAAW,EAAE,wBAAwB;oBACrC,SAAS,EAAE,CAAC,wBAAwB,CAAC;oBACrC,UAAU,EAAE,CAAC,sBAAsB,CAAC;oBACpC,SAAS,EAAE;wBACT,+BAA+B;wBAC/B,cAAc;wBACd;4BACE,OAAO,EAAE,oBAAoB;4BAC7B,QAAQ,EAAE,kCAAkC;yBAC7C;qBACF;iBACF;;0BAkFI,IAAI;;0BACJ,QAAQ;;0BACR,IAAI;4CAjFI,YAAY;sBADtB,WAAW;uBAAC,OAAO;gBAST,QAAQ;sBADlB,KAAK;gBAYK,SAAS;sBADnB,KAAK;gBAoDE,0BAA0B;sBADjC,SAAS;uBAAC,qBAAqB,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE;gBAiB/C,eAAe;sBADrB,YAAY;uBAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC;gBAiBnC,iBAAiB;sBADvB,YAAY;uBAAC,kBAAkB,EAAE,CAAC,QAAQ,CAAC","sourcesContent":["import {\n AfterViewInit,\n Component,\n ElementRef,\n Host,\n HostBinding,\n HostListener,\n Input,\n OnDestroy,\n Optional,\n ViewChild,\n} from '@angular/core';\nimport {\n SkyAppWindowRef,\n SkyCoreAdapterService,\n SkyDockLocation,\n SkyDockService,\n SkyMediaQueryService,\n SkyResizeObserverMediaQueryService,\n} from '@skyux/core';\n\nimport { SkyModalComponentAdapterService } from './modal-component-adapter.service';\nimport { SkyModalConfiguration } from './modal-configuration';\nimport { SkyModalHostService } from './modal-host.service';\nimport { SkyModalScrollShadowEventArgs } from './modal-scroll-shadow-event-args';\nimport { skyAnimationModalState } from './modal-state-animation';\n\nlet skyModalUniqueIdentifier = 0;\n\n/**\n * Provides a common look-and-feel for modal content with options to display\n * a common modal header, specify body content, and display a common modal footer\n * and buttons. For information about how to test modals in SKY UX, see\n * [write unit tests for modals](https://developer.blackbaud.com/skyux/learn/accessibility/test).\n */\n@Component({\n selector: 'sky-modal',\n templateUrl: './modal.component.html',\n styleUrls: ['./modal.component.scss'],\n animations: [skyAnimationModalState],\n providers: [\n SkyModalComponentAdapterService,\n SkyDockService,\n {\n provide: SkyMediaQueryService,\n useClass: SkyResizeObserverMediaQueryService,\n },\n ],\n})\nexport class SkyModalComponent implements AfterViewInit, OnDestroy {\n @HostBinding('class')\n public get wrapperClass(): string {\n return this.config.wrapperClass;\n }\n\n /**\n * @internal\n */\n @Input()\n public get ariaRole() {\n return this.config.ariaRole || 'dialog';\n }\n public set ariaRole(value: string) {\n this.config.ariaRole = value;\n }\n\n /**\n * @internal\n */\n @Input()\n public set tiledBody(value: boolean) {\n this.config.tiledBody = value;\n }\n\n public get modalZIndex() {\n return this.hostService.getModalZIndex();\n }\n\n public get modalFullPage() {\n return this.config.fullPage;\n }\n\n public get isSmallSize() {\n return !this.modalFullPage && this.isSizeEqual(this.config.size, 'small');\n }\n\n public get isMediumSize() {\n return !this.modalFullPage && !(this.isSmallSize || this.isLargeSize);\n }\n\n public get isLargeSize() {\n return !this.modalFullPage && this.isSizeEqual(this.config.size, 'large');\n }\n\n public get isTiledBody() {\n return this.config.tiledBody;\n }\n\n public get ariaDescribedBy() {\n return this.config.ariaDescribedBy || this.modalContentId;\n }\n\n public get ariaLabelledBy() {\n return this.config.ariaLabelledBy || this.modalHeaderId;\n }\n\n public get helpKey() {\n return this.config.helpKey;\n }\n\n public modalState = 'in';\n\n public modalContentId: string =\n 'sky-modal-content-id-' + skyModalUniqueIdentifier.toString();\n\n public modalHeaderId: string =\n 'sky-modal-header-id-' + skyModalUniqueIdentifier.toString();\n\n public scrollShadow: SkyModalScrollShadowEventArgs;\n\n @ViewChild('modalContentWrapper', { read: ElementRef })\n private modalContentWrapperElement: ElementRef;\n\n constructor(\n private hostService: SkyModalHostService,\n private config: SkyModalConfiguration,\n private elRef: ElementRef,\n private windowRef: SkyAppWindowRef,\n private componentAdapter: SkyModalComponentAdapterService,\n private coreAdapter: SkyCoreAdapterService,\n @Host() private dockService: SkyDockService,\n @Optional()\n @Host()\n private mediaQueryService?: SkyResizeObserverMediaQueryService\n ) {}\n\n @HostListener('document:keyup', ['$event'])\n public onDocumentKeyUp(event: KeyboardEvent) {\n /* istanbul ignore else */\n /* sanity check */\n if (SkyModalHostService.openModalCount > 0) {\n const topModal = SkyModalHostService.topModal;\n if (topModal && topModal === this.hostService) {\n if (event.which === 27) {\n // Escape key up\n event.preventDefault();\n this.closeButtonClick();\n }\n }\n }\n }\n\n @HostListener('document:keydown', ['$event'])\n public onDocumentKeyDown(event: KeyboardEvent) {\n /* istanbul ignore else */\n /* sanity check */\n if (SkyModalHostService.openModalCount > 0) {\n const topModal = SkyModalHostService.topModal;\n if (topModal && topModal === this.hostService) {\n if (event.which === 9) {\n // Tab pressed\n let focusChanged = false;\n\n const focusElementList = this.coreAdapter.getFocusableChildren(\n this.elRef.nativeElement\n );\n\n if (\n event.shiftKey &&\n (this.componentAdapter.isFocusInFirstItem(\n event,\n focusElementList\n ) ||\n this.componentAdapter.isModalFocused(event, this.elRef))\n ) {\n focusChanged =\n this.componentAdapter.focusLastElement(focusElementList);\n } else if (\n !event.shiftKey &&\n this.componentAdapter.isFocusInLastItem(event, focusElementList)\n ) {\n focusChanged =\n this.componentAdapter.focusFirstElement(focusElementList);\n }\n\n if (focusChanged) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n }\n }\n }\n\n public ngAfterViewInit() {\n skyModalUniqueIdentifier++;\n this.componentAdapter.handleWindowChange(this.elRef);\n\n // Adding a timeout to avoid ExpressionChangedAfterItHasBeenCheckedError.\n // https://stackoverflow.com/questions/40562845\n this.windowRef.nativeWindow.setTimeout(() => {\n this.componentAdapter.modalOpened(this.elRef);\n });\n\n this.dockService.setDockOptions({\n location: SkyDockLocation.ElementBottom,\n referenceEl: this.modalContentWrapperElement.nativeElement,\n zIndex: 5,\n });\n\n /* istanbul ignore next */\n if (this.mediaQueryService) {\n this.mediaQueryService.observe(this.modalContentWrapperElement);\n }\n }\n\n public ngOnDestroy(): void {\n /* istanbul ignore next */\n if (this.mediaQueryService) {\n this.mediaQueryService.unobserve();\n }\n }\n\n public helpButtonClick() {\n this.hostService.onOpenHelp(this.helpKey);\n }\n\n public closeButtonClick() {\n this.hostService.onClose();\n }\n\n public windowResize() {\n this.componentAdapter.handleWindowChange(this.elRef);\n }\n\n public scrollShadowChange(args: SkyModalScrollShadowEventArgs): void {\n this.scrollShadow = args;\n }\n\n private isSizeEqual(actualSize: string, size: string) {\n return actualSize && actualSize.toLowerCase() === size;\n }\n}\n","<!--\n Animations are broken in Chrome v52. Angular 2 RC5 will fix it.\n https://github.com/angular/angular/issues/10245\n-->\n<!--<div @modalState=\"modalState\">-->\n\n<div\n class=\"sky-modal-dialog\"\n aria-modal=\"true\"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.role]=\"ariaRole\"\n (window:resize)=\"windowResize()\"\n>\n <div\n class=\"sky-modal sky-shadow sky-box sky-elevation-16\"\n tabindex=\"-1\"\n [ngClass]=\"{\n 'sky-modal-full-page': modalFullPage,\n 'sky-modal-small': isSmallSize,\n 'sky-modal-medium': isMediumSize,\n 'sky-modal-large': isLargeSize,\n 'sky-modal-tiled': isTiledBody\n }\"\n [ngStyle]=\"{\n zIndex: modalZIndex\n }\"\n >\n <div\n class=\"sky-modal-header\"\n [hidden]=\"!headerContent || !headerContent.children || headerContent.children.length &lt; 1\"\n [ngStyle]=\"{\n 'box-shadow': scrollShadow?.topShadow\n }\"\n >\n <div\n class=\"sky-modal-header-content\"\n [attr.id]=\"modalHeaderId\"\n [ngClass]=\"{\n 'sky-section-heading': modalFullPage\n }\"\n #headerContent\n >\n <ng-content select=\"sky-modal-header\"></ng-content>\n </div>\n <div class=\"sky-modal-header-buttons\">\n <button\n *ngIf=\"helpKey\"\n class=\"sky-btn sky-modal-btn-help\"\n name=\"help-button\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_modal_open_help' | skyLibResources\"\n (click)=\"helpButtonClick()\"\n >\n <sky-icon icon=\"question-circle\"></sky-icon>\n </button>\n\n <button\n type=\"button\"\n class=\"sky-btn sky-modal-btn-close\"\n [attr.aria-label]=\"'skyux_modal_close' | skyLibResources\"\n (click)=\"closeButtonClick()\"\n >\n <sky-icon icon=\"close\"></sky-icon>\n </button>\n </div>\n </div>\n <div\n class=\"sky-modal-content sky-padding-even-large\"\n role=\"region\"\n tabindex=\"0\"\n [attr.aria-labelledby]=\"modalHeaderId\"\n [attr.id]=\"modalContentId\"\n (skyModalScrollShadow)=\"scrollShadowChange($event)\"\n #modalContentWrapper\n >\n <ng-content select=\"sky-modal-content\"></ng-content>\n </div>\n <div\n class=\"sky-modal-footer\"\n [ngStyle]=\"{\n 'box-shadow': scrollShadow?.bottomShadow\n }\"\n >\n <ng-content select=\"sky-modal-footer\"></ng-content>\n </div>\n </div>\n</div>\n"]}
@@ -697,9 +697,13 @@ class SkyModalComponent {
697
697
  referenceEl: this.modalContentWrapperElement.nativeElement,
698
698
  zIndex: 5,
699
699
  });
700
- this.mediaQueryService.observe(this.modalContentWrapperElement);
700
+ /* istanbul ignore next */
701
+ if (this.mediaQueryService) {
702
+ this.mediaQueryService.observe(this.modalContentWrapperElement);
703
+ }
701
704
  }
702
705
  ngOnDestroy() {
706
+ /* istanbul ignore next */
703
707
  if (this.mediaQueryService) {
704
708
  this.mediaQueryService.unobserve();
705
709
  }
@@ -720,7 +724,7 @@ class SkyModalComponent {
720
724
  return actualSize && actualSize.toLowerCase() === size;
721
725
  }
722
726
  }
723
- SkyModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyModalComponent, deps: [{ token: SkyModalHostService }, { token: SkyModalConfiguration }, { token: i0.ElementRef }, { token: i3.SkyAppWindowRef }, { token: SkyModalComponentAdapterService }, { token: i3.SkyCoreAdapterService }, { token: i3.SkyDockService, host: true }, { token: i3.SkyMediaQueryService, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Component });
727
+ SkyModalComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyModalComponent, deps: [{ token: SkyModalHostService }, { token: SkyModalConfiguration }, { token: i0.ElementRef }, { token: i3.SkyAppWindowRef }, { token: SkyModalComponentAdapterService }, { token: i3.SkyCoreAdapterService }, { token: i3.SkyDockService, host: true }, { token: i3.SkyResizeObserverMediaQueryService, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Component });
724
728
  SkyModalComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: SkyModalComponent, selector: "sky-modal", inputs: { ariaRole: "ariaRole", tiledBody: "tiledBody" }, host: { listeners: { "document:keyup": "onDocumentKeyUp($event)", "document:keydown": "onDocumentKeyDown($event)" }, properties: { "class": "this.wrapperClass" } }, providers: [
725
729
  SkyModalComponentAdapterService,
726
730
  SkyDockService,
@@ -747,7 +751,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImpo
747
751
  }]
748
752
  }], ctorParameters: function () { return [{ type: SkyModalHostService }, { type: SkyModalConfiguration }, { type: i0.ElementRef }, { type: i3.SkyAppWindowRef }, { type: SkyModalComponentAdapterService }, { type: i3.SkyCoreAdapterService }, { type: i3.SkyDockService, decorators: [{
749
753
  type: Host
750
- }] }, { type: i3.SkyMediaQueryService, decorators: [{
754
+ }] }, { type: i3.SkyResizeObserverMediaQueryService, decorators: [{
751
755
  type: Optional
752
756
  }, {
753
757
  type: Host
@@ -1 +1 @@
1
- {"version":3,"file":"skyux-modals.js","sources":["../../../../../libs/components/modals/src/lib/modules/confirm/confirm-instance.ts","../../../../../libs/components/modals/src/lib/modules/confirm/confirm-modal-context.ts","../../../../../libs/components/modals/src/lib/modules/confirm/confirm-type.ts","../../../../../libs/components/modals/src/lib/modules/shared/sky-modals-resources.module.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-content.component.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-content.component.html","../../../../../libs/components/modals/src/lib/modules/modal/modal-footer.component.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-footer.component.html","../../../../../libs/components/modals/src/lib/modules/modal/modal-header.component.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-header.component.html","../../../../../libs/components/modals/src/lib/modules/modal/modal-adapter.service.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-configuration.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-host.service.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-host.component.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-host.component.html","../../../../../libs/components/modals/src/lib/modules/modal/modal-scroll-shadow.directive.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-component-adapter.service.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-state-animation.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal.component.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal.component.html","../../../../../libs/components/modals/src/lib/modules/modal/modal.module.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-before-close-handler.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-close-args.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-instance.ts","../../../../../libs/components/modals/src/lib/modules/confirm/confirm.component.ts","../../../../../libs/components/modals/src/lib/modules/confirm/confirm.component.html","../../../../../libs/components/modals/src/lib/modules/confirm/confirm.module.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal.service.ts","../../../../../libs/components/modals/src/lib/modules/confirm/confirm.service.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal.interface.ts","../../../../../libs/components/modals/src/skyux-modals.ts"],"sourcesContent":["import { EventEmitter } from '@angular/core';\n\nimport { SkyConfirmCloseEventArgs } from './confirm-closed-event-args';\n\nexport class SkyConfirmInstance {\n /**\n * Fires when users select an action to close the confirmation dialog. This event\n * returns a `SkyConfirmCloseEventArgs` object with information about the button that\n * users select.\n */\n public closed = new EventEmitter<SkyConfirmCloseEventArgs>();\n}\n","import { SkyConfirmButtonConfig } from './confirm-button-config';\nimport { SkyConfirmConfig } from './confirm-config';\nimport { SkyConfirmType } from './confirm-type';\n\n/* istanbul ignore next */\nexport class SkyConfirmModalContext implements SkyConfirmConfig {\n public message: string;\n public body: string;\n public buttons: SkyConfirmButtonConfig[];\n public preserveWhiteSpace: boolean;\n public type: SkyConfirmType;\n}\n","export enum SkyConfirmType {\n /**\n * Allows you to define your own `buttons` using the buttons property to\n * specify an array of `SkyConfirmButtonConfig` objects.\n */\n Custom = 0,\n /**\n * Displays one button with an **OK** label.\n */\n OK = 1,\n /**\n * Displays two buttons with **Yes** and **Cancel** labels.\n * @deprecated Use the `Custom` type to follow the guidance that labels\n * should clearly indicate the actions that occur when users select buttons.\n */\n YesCancel = 2,\n /**\n * Displays three buttons with **Yes**, **No**, and **Cancel** labels.\n * @deprecated Use the `Custom` type to follow the guidance that labels\n * should clearly indicate the actions that occur when users select buttons.\n */\n YesNoCancel = 3,\n}\n","/**\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 lib/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(\n localeInfo: SkyAppLocaleInfo,\n name: string\n ): string | undefined {\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","import { Component, ViewEncapsulation } from '@angular/core';\n\n/**\n * Specifies content to display in the modal's body.\n */\n@Component({\n selector: 'sky-modal-content',\n templateUrl: './modal-content.component.html',\n styleUrls: ['./modal-content.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SkyModalContentComponent {}\n","<ng-content></ng-content>\n","import { Component } from '@angular/core';\n\n/**\n * Specifies content to display in the modal's footer.\n */\n@Component({\n selector: 'sky-modal-footer',\n templateUrl: './modal-footer.component.html',\n styleUrls: ['./modal-footer.component.scss'],\n})\nexport class SkyModalFooterComponent {}\n","<div class=\"sky-modal-footer-container sky-padding-even-large\">\n <ng-content></ng-content>\n</div>\n","import { Component } from '@angular/core';\n\n/**\n * Specifies a header for the modal.\n */\n@Component({\n selector: 'sky-modal-header',\n templateUrl: './modal-header.component.html',\n styleUrls: ['./modal-header.component.scss'],\n})\nexport class SkyModalHeaderComponent {}\n","<h1\n class=\"sky-emphasized\"\n [skyThemeClass]=\"{\n 'sky-font-display-3': 'modern'\n }\"\n>\n <ng-content></ng-content>\n</h1>\n","import { Injectable } from '@angular/core';\nimport { SkyAppWindowRef } from '@skyux/core';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyModalAdapterService {\n private static readonly MODAL_BODY_FULL_CLASS = 'sky-modal-body-full-page';\n private static readonly MODAL_BODY_CLASS = 'sky-modal-body-open';\n\n private docRef: any;\n private bodyEl: HTMLElement;\n\n constructor(private windowRef: SkyAppWindowRef) {\n this.docRef = this.windowRef.nativeWindow.document;\n this.bodyEl = this.windowRef.nativeWindow.document.body;\n }\n\n public toggleFullPageModalClass(isAddFull: boolean): void {\n if (isAddFull) {\n this.addClassToBody(SkyModalAdapterService.MODAL_BODY_FULL_CLASS);\n } else {\n this.removeClassFromBody(SkyModalAdapterService.MODAL_BODY_FULL_CLASS);\n }\n }\n\n public setPageScroll(isAdd: boolean): void {\n if (isAdd) {\n this.addClassToBody(SkyModalAdapterService.MODAL_BODY_CLASS);\n } else {\n this.removeClassFromBody(SkyModalAdapterService.MODAL_BODY_CLASS);\n }\n }\n\n public getModalOpener(): HTMLElement {\n return this.docRef.activeElement;\n }\n\n private addClassToBody(className: string): void {\n this.bodyEl.classList.add(className);\n }\n\n private removeClassFromBody(className: string): void {\n this.bodyEl.classList.remove(className);\n }\n}\n","import { Injectable } from '@angular/core';\n\n/**\n * @internal\n */\n@Injectable({\n providedIn: 'any',\n})\nexport class SkyModalConfiguration {\n public fullPage?: boolean;\n public size?: string;\n public ariaDescribedBy?: string;\n public ariaLabelledBy?: string;\n public ariaRole?: string;\n public tiledBody?: boolean;\n public helpKey?: string;\n public wrapperClass?: string;\n\n constructor() {\n this.size = 'medium';\n }\n}\n","import { EventEmitter, Injectable } from '@angular/core';\n\n/**\n * @internal\n * @dynamic\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class SkyModalHostService {\n public static get openModalCount(): number {\n return SkyModalHostService.modalHosts.length;\n }\n\n public static get fullPageModalCount(): number {\n const fullPageModals = SkyModalHostService.modalHosts.filter(\n (modal) => modal.fullPage\n );\n return fullPageModals.length;\n }\n\n private static get BASE_Z_INDEX(): number {\n return 1040;\n }\n\n public static get backdropZIndex(): number {\n return (\n SkyModalHostService.BASE_Z_INDEX +\n SkyModalHostService.modalHosts.length * 10\n );\n }\n\n public static get topModal(): SkyModalHostService {\n return SkyModalHostService.modalHosts[\n SkyModalHostService.modalHosts.length - 1\n ];\n }\n\n private static modalHosts: SkyModalHostService[] = [];\n\n public close = new EventEmitter<void>();\n public fullPage = false;\n public openHelp = new EventEmitter<any>();\n\n constructor() {\n SkyModalHostService.modalHosts.push(this);\n }\n\n public getModalZIndex(): number {\n let zIndex = SkyModalHostService.BASE_Z_INDEX + 1;\n zIndex += (SkyModalHostService.modalHosts.indexOf(this) + 1) * 10;\n return zIndex;\n }\n\n public onClose(): void {\n this.close.emit();\n }\n\n public onOpenHelp(helpKey?: string) {\n this.openHelp.emit(helpKey);\n }\n\n public destroy(): void {\n SkyModalHostService.modalHosts.splice(\n SkyModalHostService.modalHosts.indexOf(this),\n 1\n );\n }\n}\n","import {\n ChangeDetectorRef,\n Component,\n ComponentFactoryResolver,\n Injector,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { NavigationStart, Router } from '@angular/router';\n\nimport { takeWhile } from 'rxjs/operators';\n\nimport { SkyModalAdapterService } from './modal-adapter.service';\nimport { SkyModalConfiguration } from './modal-configuration';\nimport { SkyModalHostService } from './modal-host.service';\nimport { SkyModalInstance } from './modal-instance';\nimport { SkyModalConfigurationInterface } from './modal.interface';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-modal-host',\n templateUrl: './modal-host.component.html',\n styleUrls: ['./modal-host.component.scss'],\n viewProviders: [SkyModalAdapterService],\n})\nexport class SkyModalHostComponent {\n public get modalOpen() {\n return SkyModalHostService.openModalCount > 0;\n }\n\n public get backdropZIndex() {\n return SkyModalHostService.backdropZIndex;\n }\n\n /**\n * Use `any` for backwards-compatibility with Angular 4-7.\n * See: https://github.com/angular/angular/issues/30654\n * TODO: Remove the `any` in a breaking change.\n * @internal\n */\n @ViewChild('target', {\n read: ViewContainerRef,\n static: true,\n } as any)\n public target: ViewContainerRef;\n\n constructor(\n private resolver: ComponentFactoryResolver,\n private adapter: SkyModalAdapterService,\n private injector: Injector,\n private router: Router,\n private changeDetector: ChangeDetectorRef\n ) {}\n\n public open(\n modalInstance: SkyModalInstance,\n component: any,\n config?: SkyModalConfigurationInterface\n ) {\n const params: SkyModalConfigurationInterface = Object.assign({}, config);\n const factory = this.resolver.resolveComponentFactory(component);\n\n const hostService = new SkyModalHostService();\n hostService.fullPage = !!params.fullPage;\n\n const adapter = this.adapter;\n const modalOpener: HTMLElement = adapter.getModalOpener();\n\n let isOpen = true;\n\n params.providers.push({\n provide: SkyModalHostService,\n useValue: hostService,\n });\n params.providers.push({\n provide: SkyModalConfiguration,\n useValue: params,\n });\n\n adapter.setPageScroll(SkyModalHostService.openModalCount > 0);\n adapter.toggleFullPageModalClass(\n SkyModalHostService.fullPageModalCount > 0\n );\n\n const providers = params.providers || /* istanbul ignore next */ [];\n const injector = Injector.create({\n providers,\n parent: this.injector,\n });\n\n const modalComponentRef = this.target.createComponent(\n factory,\n undefined,\n injector\n );\n\n modalInstance.componentInstance = modalComponentRef.instance;\n\n function closeModal() {\n hostService.destroy();\n adapter.setPageScroll(SkyModalHostService.openModalCount > 0);\n adapter.toggleFullPageModalClass(\n SkyModalHostService.fullPageModalCount > 0\n );\n /* istanbul ignore else */\n /* sanity check */\n if (modalOpener && modalOpener.focus) {\n modalOpener.focus();\n }\n modalComponentRef.destroy();\n }\n\n hostService.openHelp.subscribe((helpKey?: string) => {\n modalInstance.openHelp(helpKey);\n });\n\n hostService.close.subscribe(() => {\n modalInstance.close();\n });\n\n this.router.events.pipe(takeWhile(() => isOpen)).subscribe((event) => {\n /* istanbul ignore else */\n if (event instanceof NavigationStart) {\n modalInstance.close();\n }\n });\n\n modalInstance.closed.subscribe(() => {\n isOpen = false;\n closeModal();\n });\n\n // Necessary if the host was created via a consumer's lifecycle hook such as ngOnInit\n this.changeDetector.detectChanges();\n }\n}\n","<div\n class=\"sky-modal-host-backdrop\"\n [hidden]=\"!modalOpen\"\n [ngStyle]=\"{\n zIndex: backdropZIndex\n }\"\n></div>\n<div #target></div>\n","import {\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n NgZone,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n} from '@angular/core';\nimport { MutationObserverService } from '@skyux/core';\nimport { SkyTheme, SkyThemeService } from '@skyux/theme';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyModalScrollShadowEventArgs } from './modal-scroll-shadow-event-args';\n\n/**\n * Raises an event when the box shadow for the modal header or footer should be adjusted\n * based on the scroll position of the host element.\n * @internal\n */\n@Directive({\n selector: '[skyModalScrollShadow]',\n})\nexport class SkyModalScrollShadowDirective implements OnInit, OnDestroy {\n @Output()\n public skyModalScrollShadow = new EventEmitter<SkyModalScrollShadowEventArgs>();\n\n private currentShadow: SkyModalScrollShadowEventArgs;\n\n private currentTheme: SkyTheme;\n\n private mutationObserver: MutationObserver;\n\n private ngUnsubscribe = new Subject<any>();\n\n constructor(\n private elRef: ElementRef,\n @Optional() private themeSvc: SkyThemeService,\n private mutationObserverSvc: MutationObserverService,\n private ngZone: NgZone\n ) {}\n\n @HostListener('window:resize')\n public windowResize(): void {\n this.checkForShadow();\n }\n\n @HostListener('scroll')\n public scroll(): void {\n this.checkForShadow();\n }\n\n public ngOnInit(): void {\n if (this.themeSvc) {\n this.themeSvc.settingsChange\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((themeSettings) => {\n this.currentTheme = themeSettings.currentSettings.theme;\n\n if (this.currentTheme === SkyTheme.presets.modern) {\n this.initMutationObserver();\n } else {\n this.emitShadow({\n bottomShadow: 'none',\n topShadow: 'none',\n });\n\n this.destroyMutationObserver();\n }\n });\n }\n }\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n\n this.destroyMutationObserver();\n }\n\n private initMutationObserver(): void {\n if (!this.mutationObserver) {\n const el = this.elRef.nativeElement;\n\n // MutationObserver is patched by Zone.js and therefore becomes part of the\n // Angular change detection cycle, but this can lead to infinite loops in some\n // secnarios. This will keep MutationObserver from triggering change detection.\n this.ngZone.runOutsideAngular(() => {\n this.mutationObserver = this.mutationObserverSvc.create(() => {\n this.checkForShadow();\n });\n\n this.mutationObserver.observe(el, {\n attributes: true,\n characterData: true,\n childList: true,\n subtree: true,\n });\n });\n }\n }\n\n private destroyMutationObserver(): void {\n if (this.mutationObserver) {\n this.mutationObserver.disconnect();\n this.mutationObserver = undefined;\n }\n }\n\n private checkForShadow(): void {\n if (this.currentTheme === SkyTheme.presets.modern) {\n const el = this.elRef.nativeElement;\n\n const topShadow = this.buildShadowStyle(el.scrollTop);\n\n const bottomShadow = this.buildShadowStyle(\n el.scrollHeight - el.scrollTop - el.clientHeight\n );\n\n this.emitShadow({\n bottomShadow,\n topShadow,\n });\n }\n }\n\n private buildShadowStyle(pixelsFromEnd: number): string {\n // Progressively darken the shadow until the user scrolls 30 pixels from the top or bottom\n // of the scrollable element, with a max opacity of 0.3.\n const opacity = Math.min(pixelsFromEnd / 30, 1) * 0.3;\n\n return opacity > 0 ? `0px 1px 8px 0px rgba(0, 0, 0, ${opacity})` : 'none';\n }\n\n private emitShadow(shadow: SkyModalScrollShadowEventArgs): void {\n if (\n !this.currentShadow ||\n this.currentShadow.bottomShadow !== shadow.bottomShadow ||\n this.currentShadow.topShadow !== shadow.topShadow\n ) {\n this.skyModalScrollShadow.emit(shadow);\n this.currentShadow = shadow;\n }\n }\n}\n","import { ElementRef, Injectable } from '@angular/core';\nimport { SkyCoreAdapterService } from '@skyux/core';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyModalComponentAdapterService {\n constructor(private coreAdapter: SkyCoreAdapterService) {}\n\n public handleWindowChange(modalEl: ElementRef): void {\n const boundedHeightEl = modalEl.nativeElement.querySelector('.sky-modal');\n const fullPageModalEl = modalEl.nativeElement.querySelector(\n '.sky-modal-full-page'\n );\n /*\n Set modal height equal to max height of window (accounting for padding above and below modal)\n */\n const newHeight = window.innerHeight - 40;\n\n boundedHeightEl.style.maxHeight = newHeight.toString() + 'px';\n if (fullPageModalEl) {\n this.setFullPageHeight(fullPageModalEl);\n } else {\n /*\n IE11 doesn't handle flex and max-height correctly so we have to explicitly add\n max-height to the content that accounts for standard header and footer height.\n */\n const modalContentEl =\n modalEl.nativeElement.querySelector('.sky-modal-content');\n const contentHeight = newHeight - 114;\n modalContentEl.style.maxHeight = contentHeight.toString() + 'px';\n }\n }\n\n public isFocusInFirstItem(\n event: KeyboardEvent,\n list: Array<HTMLElement>\n ): boolean {\n /* istanbul ignore next */\n /* sanity check */\n const eventTarget = event.target || event.srcElement;\n return list.length > 0 && eventTarget === list[0];\n }\n\n public isFocusInLastItem(\n event: KeyboardEvent,\n list: Array<HTMLElement>\n ): boolean {\n /* istanbul ignore next */\n /* sanity check */\n const eventTarget = event.target || event.srcElement;\n return list.length > 0 && eventTarget === list[list.length - 1];\n }\n\n public isModalFocused(event: KeyboardEvent, modalEl: ElementRef): boolean {\n /* istanbul ignore next */\n /* sanity check */\n const eventTarget = event.target || event.srcElement;\n return (\n modalEl &&\n eventTarget === modalEl.nativeElement.querySelector('.sky-modal-dialog')\n );\n }\n\n public focusLastElement(list: Array<HTMLElement>): boolean {\n if (list.length > 0) {\n list[list.length - 1].focus();\n return true;\n }\n return false;\n }\n\n public focusFirstElement(list: Array<HTMLElement>): boolean {\n if (list.length > 0) {\n list[0].focus();\n return true;\n }\n return false;\n }\n\n public modalOpened(modalEl: ElementRef): void {\n /* istanbul ignore else */\n /* handle the case where somehow there is a focused element already in the modal */\n if (\n !(\n document.activeElement &&\n modalEl.nativeElement.contains(document.activeElement)\n )\n ) {\n const currentScrollX = window.pageXOffset;\n const currentScrollY = window.pageYOffset;\n\n const inputWithAutofocus =\n modalEl.nativeElement.querySelector('[autofocus]');\n\n if (inputWithAutofocus) {\n inputWithAutofocus.focus();\n } else {\n this.coreAdapter.getFocusableChildrenAndApplyFocus(\n modalEl,\n '.sky-modal-content',\n true\n );\n }\n window.scrollTo(currentScrollX, currentScrollY);\n }\n }\n\n private setFullPageHeight(fullPageModalEl: HTMLElement): void {\n const windowHeight = window.innerHeight;\n const fullPageModalStyle = getComputedStyle(fullPageModalEl);\n\n const marginTopBottom =\n parseInt(fullPageModalStyle.marginTop, 10) +\n parseInt(fullPageModalStyle.marginBottom, 10);\n\n const fullPageModalHeight = windowHeight - marginTopBottom + 'px';\n\n fullPageModalEl.style.height = fullPageModalHeight;\n fullPageModalEl.style.maxHeight = fullPageModalHeight;\n }\n}\n","import {\n animate,\n state,\n style,\n transition,\n trigger,\n} from '@angular/animations';\n\nexport const skyAnimationModalState = trigger('modalState', [\n state('in', style({ opacity: '1.0' })),\n state('out', style({ opacity: '0.0' })),\n transition('void => *', [style({ opacity: '0.0' }), animate(150)]),\n transition('* => void', [animate(150, style({ opacity: '0.0' }))]),\n]) as any;\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n Host,\n HostBinding,\n HostListener,\n Input,\n OnDestroy,\n Optional,\n ViewChild,\n} from '@angular/core';\nimport {\n SkyAppWindowRef,\n SkyCoreAdapterService,\n SkyDockLocation,\n SkyDockService,\n SkyMediaQueryService,\n SkyResizeObserverMediaQueryService,\n} from '@skyux/core';\n\nimport { SkyModalComponentAdapterService } from './modal-component-adapter.service';\nimport { SkyModalConfiguration } from './modal-configuration';\nimport { SkyModalHostService } from './modal-host.service';\nimport { SkyModalScrollShadowEventArgs } from './modal-scroll-shadow-event-args';\nimport { skyAnimationModalState } from './modal-state-animation';\n\nlet skyModalUniqueIdentifier = 0;\n\n/**\n * Provides a common look-and-feel for modal content with options to display\n * a common modal header, specify body content, and display a common modal footer\n * and buttons. For information about how to test modals in SKY UX, see\n * [write unit tests for modals](https://developer.blackbaud.com/skyux/learn/accessibility/test).\n */\n@Component({\n selector: 'sky-modal',\n templateUrl: './modal.component.html',\n styleUrls: ['./modal.component.scss'],\n animations: [skyAnimationModalState],\n providers: [\n SkyModalComponentAdapterService,\n SkyDockService,\n {\n provide: SkyMediaQueryService,\n useClass: SkyResizeObserverMediaQueryService,\n },\n ],\n})\nexport class SkyModalComponent implements AfterViewInit, OnDestroy {\n @HostBinding('class')\n public get wrapperClass(): string {\n return this.config.wrapperClass;\n }\n\n /**\n * @internal\n */\n @Input()\n public get ariaRole() {\n return this.config.ariaRole || 'dialog';\n }\n public set ariaRole(value: string) {\n this.config.ariaRole = value;\n }\n\n /**\n * @internal\n */\n @Input()\n public set tiledBody(value: boolean) {\n this.config.tiledBody = value;\n }\n\n public get modalZIndex() {\n return this.hostService.getModalZIndex();\n }\n\n public get modalFullPage() {\n return this.config.fullPage;\n }\n\n public get isSmallSize() {\n return !this.modalFullPage && this.isSizeEqual(this.config.size, 'small');\n }\n\n public get isMediumSize() {\n return !this.modalFullPage && !(this.isSmallSize || this.isLargeSize);\n }\n\n public get isLargeSize() {\n return !this.modalFullPage && this.isSizeEqual(this.config.size, 'large');\n }\n\n public get isTiledBody() {\n return this.config.tiledBody;\n }\n\n public get ariaDescribedBy() {\n return this.config.ariaDescribedBy || this.modalContentId;\n }\n\n public get ariaLabelledBy() {\n return this.config.ariaLabelledBy || this.modalHeaderId;\n }\n\n public get helpKey() {\n return this.config.helpKey;\n }\n\n public modalState = 'in';\n\n public modalContentId: string =\n 'sky-modal-content-id-' + skyModalUniqueIdentifier.toString();\n\n public modalHeaderId: string =\n 'sky-modal-header-id-' + skyModalUniqueIdentifier.toString();\n\n public scrollShadow: SkyModalScrollShadowEventArgs;\n\n @ViewChild('modalContentWrapper', { read: ElementRef })\n private modalContentWrapperElement: ElementRef;\n\n constructor(\n private hostService: SkyModalHostService,\n private config: SkyModalConfiguration,\n private elRef: ElementRef,\n private windowRef: SkyAppWindowRef,\n private componentAdapter: SkyModalComponentAdapterService,\n private coreAdapter: SkyCoreAdapterService,\n @Host() private dockService: SkyDockService,\n @Optional() @Host() private mediaQueryService?: SkyMediaQueryService\n ) {}\n\n @HostListener('document:keyup', ['$event'])\n public onDocumentKeyUp(event: KeyboardEvent) {\n /* istanbul ignore else */\n /* sanity check */\n if (SkyModalHostService.openModalCount > 0) {\n const topModal = SkyModalHostService.topModal;\n if (topModal && topModal === this.hostService) {\n if (event.which === 27) {\n // Escape key up\n event.preventDefault();\n this.closeButtonClick();\n }\n }\n }\n }\n\n @HostListener('document:keydown', ['$event'])\n public onDocumentKeyDown(event: KeyboardEvent) {\n /* istanbul ignore else */\n /* sanity check */\n if (SkyModalHostService.openModalCount > 0) {\n const topModal = SkyModalHostService.topModal;\n if (topModal && topModal === this.hostService) {\n if (event.which === 9) {\n // Tab pressed\n let focusChanged = false;\n\n const focusElementList = this.coreAdapter.getFocusableChildren(\n this.elRef.nativeElement\n );\n\n if (\n event.shiftKey &&\n (this.componentAdapter.isFocusInFirstItem(\n event,\n focusElementList\n ) ||\n this.componentAdapter.isModalFocused(event, this.elRef))\n ) {\n focusChanged =\n this.componentAdapter.focusLastElement(focusElementList);\n } else if (\n !event.shiftKey &&\n this.componentAdapter.isFocusInLastItem(event, focusElementList)\n ) {\n focusChanged =\n this.componentAdapter.focusFirstElement(focusElementList);\n }\n\n if (focusChanged) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n }\n }\n }\n\n public ngAfterViewInit() {\n skyModalUniqueIdentifier++;\n this.componentAdapter.handleWindowChange(this.elRef);\n\n // Adding a timeout to avoid ExpressionChangedAfterItHasBeenCheckedError.\n // https://stackoverflow.com/questions/40562845\n this.windowRef.nativeWindow.setTimeout(() => {\n this.componentAdapter.modalOpened(this.elRef);\n });\n\n this.dockService.setDockOptions({\n location: SkyDockLocation.ElementBottom,\n referenceEl: this.modalContentWrapperElement.nativeElement,\n zIndex: 5,\n });\n\n (this.mediaQueryService as SkyResizeObserverMediaQueryService).observe(\n this.modalContentWrapperElement\n );\n }\n\n public ngOnDestroy(): void {\n if (this.mediaQueryService) {\n (\n this.mediaQueryService as SkyResizeObserverMediaQueryService\n ).unobserve();\n }\n }\n\n public helpButtonClick() {\n this.hostService.onOpenHelp(this.helpKey);\n }\n\n public closeButtonClick() {\n this.hostService.onClose();\n }\n\n public windowResize() {\n this.componentAdapter.handleWindowChange(this.elRef);\n }\n\n public scrollShadowChange(args: SkyModalScrollShadowEventArgs): void {\n this.scrollShadow = args;\n }\n\n private isSizeEqual(actualSize: string, size: string) {\n return actualSize && actualSize.toLowerCase() === size;\n }\n}\n","<!--\n Animations are broken in Chrome v52. Angular 2 RC5 will fix it.\n https://github.com/angular/angular/issues/10245\n-->\n<!--<div @modalState=\"modalState\">-->\n\n<div\n class=\"sky-modal-dialog\"\n aria-modal=\"true\"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.role]=\"ariaRole\"\n (window:resize)=\"windowResize()\"\n>\n <div\n class=\"sky-modal sky-shadow sky-box sky-elevation-16\"\n tabindex=\"-1\"\n [ngClass]=\"{\n 'sky-modal-full-page': modalFullPage,\n 'sky-modal-small': isSmallSize,\n 'sky-modal-medium': isMediumSize,\n 'sky-modal-large': isLargeSize,\n 'sky-modal-tiled': isTiledBody\n }\"\n [ngStyle]=\"{\n zIndex: modalZIndex\n }\"\n >\n <div\n class=\"sky-modal-header\"\n [hidden]=\"!headerContent || !headerContent.children || headerContent.children.length &lt; 1\"\n [ngStyle]=\"{\n 'box-shadow': scrollShadow?.topShadow\n }\"\n >\n <div\n class=\"sky-modal-header-content\"\n [attr.id]=\"modalHeaderId\"\n [ngClass]=\"{\n 'sky-section-heading': modalFullPage\n }\"\n #headerContent\n >\n <ng-content select=\"sky-modal-header\"></ng-content>\n </div>\n <div class=\"sky-modal-header-buttons\">\n <button\n *ngIf=\"helpKey\"\n class=\"sky-btn sky-modal-btn-help\"\n name=\"help-button\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_modal_open_help' | skyLibResources\"\n (click)=\"helpButtonClick()\"\n >\n <sky-icon icon=\"question-circle\"></sky-icon>\n </button>\n\n <button\n type=\"button\"\n class=\"sky-btn sky-modal-btn-close\"\n [attr.aria-label]=\"'skyux_modal_close' | skyLibResources\"\n (click)=\"closeButtonClick()\"\n >\n <sky-icon icon=\"close\"></sky-icon>\n </button>\n </div>\n </div>\n <div\n class=\"sky-modal-content sky-padding-even-large\"\n role=\"region\"\n tabindex=\"0\"\n [attr.aria-labelledby]=\"modalHeaderId\"\n [attr.id]=\"modalContentId\"\n (skyModalScrollShadow)=\"scrollShadowChange($event)\"\n #modalContentWrapper\n >\n <ng-content select=\"sky-modal-content\"></ng-content>\n </div>\n <div\n class=\"sky-modal-footer\"\n [ngStyle]=\"{\n 'box-shadow': scrollShadow?.bottomShadow\n }\"\n >\n <ng-content select=\"sky-modal-footer\"></ng-content>\n </div>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { SkyIconModule } from '@skyux/indicators';\nimport { SkyThemeModule } from '@skyux/theme';\n\nimport { SkyModalsResourcesModule } from '../shared/sky-modals-resources.module';\n\nimport { SkyModalContentComponent } from './modal-content.component';\nimport { SkyModalFooterComponent } from './modal-footer.component';\nimport { SkyModalHeaderComponent } from './modal-header.component';\nimport { SkyModalHostComponent } from './modal-host.component';\nimport { SkyModalScrollShadowDirective } from './modal-scroll-shadow.directive';\nimport { SkyModalComponent } from './modal.component';\n\n@NgModule({\n declarations: [\n SkyModalComponent,\n SkyModalContentComponent,\n SkyModalFooterComponent,\n SkyModalHeaderComponent,\n SkyModalHostComponent,\n SkyModalScrollShadowDirective,\n ],\n imports: [\n CommonModule,\n RouterModule,\n SkyIconModule,\n SkyModalsResourcesModule,\n SkyThemeModule,\n ],\n exports: [\n SkyModalComponent,\n SkyModalContentComponent,\n SkyModalFooterComponent,\n SkyModalHeaderComponent,\n ],\n entryComponents: [SkyModalHostComponent],\n})\nexport class SkyModalModule {}\n","import { SkyModalCloseArgs } from './modal-close-args';\n\n/**\n * Closes the modal instance using the `closeModal` method.\n */\nexport class SkyModalBeforeCloseHandler {\n constructor(\n public readonly closeModal: Function,\n public readonly closeArgs: SkyModalCloseArgs\n ) {}\n}\n","/**\n * Contains an object with the data passed from users when\n * a modal is closed and the reason that the modal was closed.\n */\nexport class SkyModalCloseArgs {\n /**\n * Indicates the reason the modal was closed.\n * Options include `\"close\"`, `\"save\"`, and `\"cancel\"`.\n */\n public reason: string;\n /**\n * The data passed from users when the modal is closed.\n */\n public data: any;\n}\n","import { Observable, Subject } from 'rxjs';\n\nimport { SkyModalBeforeCloseHandler } from './modal-before-close-handler';\nimport { SkyModalCloseArgs } from './modal-close-args';\n\n// TODO: this class won't show in the generated docs until this work is done:\n// https://github.com/blackbaud/skyux-docs-tools/issues/30\n\n/**\n * Allows you to close the modal and return data from the launched modal.\n */\nexport class SkyModalInstance {\n /**\n * An event that the modal instance emits when it is about to close.\n * It emits a `SkyModalBeforeCloseHandler` object with a `closeModal` method\n * that closes the modal. If a subscription exists for this event,\n * the modal does not close until the subscriber calls the `closeModal` method.\n */\n public get beforeClose(): Observable<SkyModalBeforeCloseHandler> {\n return this._beforeClose;\n }\n\n /**\n * An event that the modal instance emits when it closes.\n * It emits a `SkyModalCloseArgs` object with a `data` property that includes\n * data passed from users on close or save and a `reason` property that indicates\n * whether the modal was saved or closed without saving.\n * The `reason` property accepts any string value.\n * Common examples include `\"cancel\"`, `\"close\"`, and `\"save\"`.\n */\n public get closed(): Observable<SkyModalCloseArgs> {\n return this._closed;\n }\n\n /**\n * An event that the modal instance emits when users click\n * the <i class=\"fa fa-question-circle\" aria-hidden=\"true\"></i> button.\n * If a `helpKey` parameter was specified, the `helpOpened` event broadcasts the `helpKey`.\n */\n public get helpOpened(): Observable<string> {\n return this._helpOpened;\n }\n\n /**\n * A direct reference to the provided component's class.\n */\n public componentInstance: any;\n\n private _beforeClose = new Subject<SkyModalBeforeCloseHandler>();\n\n private _closed = new Subject<SkyModalCloseArgs>();\n\n private _helpOpened = new Subject<string>();\n\n /**\n * Closes the modal instance.\n * @param result Specifies an object to emit to subscribers of the `closed` event of the\n * modal instance. The `SkyModalInstance` provider can be injected into a component's constructor\n * so that this `close` function can be called from a button in the `sky-modal-footer`.\n * @param reason Specifies the reason for the modal closing, with the default reason of `\"close\"`.\n * @param ignoreBeforeClose Indicates whether to ignore the modal instance's `beforeClose` event.\n */\n public close(\n result?: any,\n reason?: string,\n ignoreBeforeClose?: boolean\n ): void {\n if (reason === undefined) {\n reason = 'close';\n }\n\n this.closeModal(reason, result, ignoreBeforeClose);\n }\n\n /**\n * Closes the modal instance with `reason=\"cancel\"`.\n * @param result Specifies an object to emit to subscribers of the `closed` event of the modal\n * instance. The `SkyModalInstance` provider can be injected into a component's constructor so\n * that this cancel function can be called from a button in the `sky-modal-footer`.\n */\n public cancel(result?: any): void {\n this.closeModal('cancel', result);\n }\n\n /**\n * Closes the modal instance with `reason=\"save\"`.\n * @param result Specifies an object to emit to subscribers of the `closed` event of the modal\n * instance. The `SkyModalInstance` provider can be injected into a component's constructor so\n * that this `save` function can be called from a button in `the sky-modal-footer`.\n */\n public save(result?: any): void {\n this.closeModal('save', result);\n }\n\n /**\n * Triggers the `helpOpened` event that broadcasts a `helpKey` parameter to open\n * when users click the <i class=\"fa fa-question-circle\" aria-hidden=\"true\"></i> button.\n * @param helpKey Specifies a string to emit to subscribers of\n * the modal instance's `helpOpened` event. Consumers can inject the `SkyModalInstance` provider\n * into a component's constructor to call the `openHelp` function in the modal template.\n */\n public openHelp(helpKey?: string): void {\n this._helpOpened.next(helpKey);\n }\n\n private closeModal(\n type: string,\n result?: any,\n ignoreBeforeClose = false\n ): void {\n const args = new SkyModalCloseArgs();\n\n args.reason = type;\n args.data = result;\n\n if (this._beforeClose.observers.length === 0 || ignoreBeforeClose) {\n this.notifyClosed(args);\n } else {\n this._beforeClose.next(\n new SkyModalBeforeCloseHandler(() => {\n this.notifyClosed(args);\n }, args)\n );\n }\n }\n\n private notifyClosed(args: SkyModalCloseArgs): void {\n this._closed.next(args);\n this._closed.complete();\n this._beforeClose.complete();\n this._helpOpened.complete();\n }\n}\n","import { Component, OnInit, Optional } from '@angular/core';\nimport { SkyLibResourcesService } from '@skyux/i18n';\n\nimport { BehaviorSubject, Observable, zip as observableZip } from 'rxjs';\n\nimport { SkyModalInstance } from '../modal/modal-instance';\n\nimport { SkyConfirmButton } from './confirm-button';\nimport { SkyConfirmButtonConfig } from './confirm-button-config';\nimport { SkyConfirmCloseEventArgs } from './confirm-closed-event-args';\nimport { SkyConfirmModalContext } from './confirm-modal-context';\nimport { SkyConfirmType } from './confirm-type';\n\n@Component({\n selector: 'sky-confirm',\n templateUrl: './confirm.component.html',\n styleUrls: ['./confirm.component.scss'],\n})\nexport class SkyConfirmComponent implements OnInit {\n public buttons: SkyConfirmButton[];\n public message: string;\n public body: string;\n public preserveWhiteSpace = false;\n\n constructor(\n private config: SkyConfirmModalContext,\n private modal: SkyModalInstance,\n @Optional() private resourcesService: SkyLibResourcesService\n ) {}\n\n public ngOnInit() {\n if (\n this.config.type === SkyConfirmType.Custom &&\n this.config.buttons.length > 0\n ) {\n this.buttons = this.getCustomButtons(this.config.buttons);\n } else {\n this.getPresetButtons().subscribe((buttons: SkyConfirmButton[]) => {\n this.buttons = buttons;\n });\n }\n\n this.message = this.config.message;\n this.body = this.config.body;\n this.preserveWhiteSpace = this.config.preserveWhiteSpace || false;\n }\n\n public close(button: SkyConfirmButton) {\n const result: SkyConfirmCloseEventArgs = {\n action: button.action,\n };\n\n this.modal.close(result);\n }\n\n private getPresetButtons(): Observable<SkyConfirmButton[]> {\n const emitter = new BehaviorSubject<SkyConfirmButton[]>([]);\n\n switch (this.config.type) {\n default:\n case SkyConfirmType.OK:\n this.resourcesService\n .getString('skyux_confirm_dialog_default_ok_text')\n .subscribe((value: string) => {\n emitter.next([\n {\n text: value,\n autofocus: true,\n styleType: 'primary',\n action: 'ok',\n },\n ]);\n });\n break;\n\n case SkyConfirmType.YesNoCancel:\n observableZip(\n this.resourcesService.getString(\n 'skyux_confirm_dialog_default_yes_text'\n ),\n this.resourcesService.getString(\n 'skyux_confirm_dialog_default_no_text'\n ),\n this.resourcesService.getString(\n 'skyux_confirm_dialog_default_cancel_text'\n )\n ).subscribe((values: any) => {\n emitter.next([\n {\n text: values[0],\n autofocus: true,\n styleType: 'primary',\n action: 'yes',\n },\n {\n text: values[1],\n styleType: 'default',\n action: 'no',\n },\n {\n text: values[2],\n styleType: 'link',\n action: 'cancel',\n },\n ]);\n });\n break;\n\n case SkyConfirmType.YesCancel:\n observableZip(\n this.resourcesService.getString(\n 'skyux_confirm_dialog_default_yes_text'\n ),\n this.resourcesService.getString(\n 'skyux_confirm_dialog_default_cancel_text'\n )\n ).subscribe((values: any) => {\n emitter.next([\n {\n text: values[0],\n autofocus: true,\n styleType: 'primary',\n action: 'yes',\n },\n {\n text: values[1],\n styleType: 'link',\n action: 'cancel',\n },\n ]);\n });\n break;\n }\n\n return emitter;\n }\n\n private getCustomButtons(\n buttonConfig: SkyConfirmButtonConfig[]\n ): SkyConfirmButton[] {\n const buttons: SkyConfirmButton[] = [];\n\n buttonConfig.forEach((config: SkyConfirmButtonConfig) => {\n buttons.push({\n text: config.text,\n action: config.action,\n styleType: config.styleType || 'default',\n autofocus: config.autofocus || false,\n } as SkyConfirmButton);\n });\n\n return buttons;\n }\n}\n","<div class=\"sky-confirm\">\n <sky-modal ariaRole=\"alertdialog\">\n <sky-modal-content class=\"sky-confirm-content\">\n <div\n class=\"sky-confirm-message\"\n [ngClass]=\"{\n 'sky-confirm-preserve-white-space': preserveWhiteSpace\n }\"\n [skyThemeClass]=\"{\n 'sky-emphasized': 'default',\n 'sky-font-heading-1 sky-font-display-3': 'modern'\n }\"\n >\n {{ message }}\n </div>\n\n <div\n *ngIf=\"body\"\n class=\"sky-confirm-body\"\n [ngClass]=\"{\n 'sky-confirm-preserve-white-space': preserveWhiteSpace\n }\"\n >\n {{ body }}\n </div>\n\n <div class=\"sky-confirm-buttons\">\n <button\n *ngFor=\"let button of buttons\"\n type=\"button\"\n class=\"sky-btn\"\n [ngClass]=\"['sky-btn-' + button.styleType]\"\n [skyThemeClass]=\"{\n 'sky-margin-inline-sm': 'modern',\n 'sky-margin-inline-compact': 'default'\n }\"\n (click)=\"close(button)\"\n [attr.autofocus]=\"button.autofocus ? 'autofocus' : null\"\n >\n {{ button.text }}\n </button>\n </div>\n </sky-modal-content>\n </sky-modal>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyThemeModule } from '@skyux/theme';\n\nimport { SkyModalModule } from '../modal/modal.module';\nimport { SkyModalsResourcesModule } from '../shared/sky-modals-resources.module';\n\nimport { SkyConfirmComponent } from './confirm.component';\n\n@NgModule({\n declarations: [SkyConfirmComponent],\n imports: [\n CommonModule,\n SkyModalModule,\n SkyModalsResourcesModule,\n SkyThemeModule,\n ],\n exports: [SkyConfirmComponent],\n entryComponents: [SkyConfirmComponent],\n})\nexport class SkyConfirmModule {}\n","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 launches modals. For information about how to test modals in SKY UX, see\n * [write unit tests for modals](https://developer.blackbaud.com/skyux/learn/accessibility/test).\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","import { Injectable } from '@angular/core';\n\nimport { SkyModalCloseArgs } from '../modal/modal-close-args';\nimport { SkyModalInstance } from '../modal/modal-instance';\nimport { SkyModalService } from '../modal/modal.service';\n\nimport { SkyConfirmCloseEventArgs } from './confirm-closed-event-args';\nimport { SkyConfirmConfig } from './confirm-config';\nimport { SkyConfirmInstance } from './confirm-instance';\nimport { SkyConfirmModalContext } from './confirm-modal-context';\nimport { SkyConfirmComponent } from './confirm.component';\n\n/**\n * The `SkyConfirmService` provider launches the confirmation dialog.\n * Within the service, you can specify the dialog's message and customize the button text.\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 SkyConfirmService {\n constructor(private modalService: SkyModalService) {}\n\n /**\n * Opens a confirmation dialog and passes the `config` parameter of type `SkyConfirmConfig`\n * to the component's constructor. This method returns an object of type `SkyConfirmInstance`.\n */\n public open(config: SkyConfirmConfig): SkyConfirmInstance {\n const modalInstance: SkyModalInstance = this.modalService.open(\n SkyConfirmComponent,\n {\n providers: [\n {\n provide: SkyConfirmModalContext,\n useValue: config,\n },\n ],\n }\n );\n\n const confirmInstance = new SkyConfirmInstance();\n\n modalInstance.closed.subscribe((args: SkyModalCloseArgs) => {\n let result: SkyConfirmCloseEventArgs = args.data;\n\n // The modal was closed using the ESC key.\n if (result === undefined) {\n result = {\n action: 'cancel',\n };\n }\n\n confirmInstance.closed.emit(result);\n confirmInstance.closed.complete();\n });\n\n return confirmInstance;\n }\n}\n","// TODO: defaults won't show in the generated docs until this work is done:\n// https://github.com/blackbaud/skyux-docs-tools/issues/38\n\n/**\n * Specifies configuration options for creating a modal.\n */\nexport interface SkyModalConfigurationInterface {\n /**\n * Indicates whether to display the modal full screen.\n * This property defaults to `false`.\n */\n fullPage?: boolean;\n\n /**\n * Specifies a size for the modal. The valid options are `small`, `medium`, and `large`.\n * This property defaults to `medium`.\n */\n size?: string;\n\n /**\n * An array property of `providers`.\n * In Angular, a provider is something that can create or deliver a service.\n * This property can be used to pass context values from the component that launches the modal to the modal component.\n */\n providers?: any[];\n\n /**\n * Specifies the HTML element ID (without the leading `#`) of the element that describes\n * the modal. This sets the modal's `aria-describedby` attribute\n * [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility).\n * The description typically includes text on the modal but not on items that users interact\n * with, such as buttons and forms. If you do not specify an ID, the default description is\n * the content of the `sky-modal-content` component.\n */\n ariaDescribedBy?: string;\n\n /**\n * Specifies the HTML element ID (without the leading `#`) of the element that labels\n * the modal. This sets the `aria-labelledby` attribute for the modal\n * [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility).\n * This is typically a header element, and if you do not specify an ID, the default value\n * is the content of the `sky-modal-header` component.\n */\n ariaLabelledBy?: string;\n\n /**\n * Specifies an ARIA role for the modal\n * [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility)\n * by indicating how the modal functions and what it controls. For information about\n * how an ARIA role indicates what an item represents on a web page, see the\n * [WAI-ARIA roles model](http://www.w3.org/WAI/PF/aria/roles). By default, modals set\n * the ARIA role to `dialog`.\n * @default \"dialog\"\n */\n ariaRole?: string;\n\n /**\n * Indicates whether the modal uses tiles. When set to `true`, the modal's background switches\n * to `$sky-background-color-neutral-light` and tile headings are styled as subsection headings.\n * This property defaults to `false`.\n */\n tiledBody?: boolean;\n\n /**\n * Specifies a `helpKey` string. This property displays\n * the <i class=\"fa fa-question-circle\" aria-hidden=\"true\"></i> button in the modal header.\n * When users click this button, the `helpOpened` event broadcasts the `helpKey` parameter.\n * Blackbaud developers can use the Help Widget, which is for internal Blackbaud use only, to\n * [display help content in a flyout panel](https://docs.blackbaud.com/bb-help-docs/components/modal-header).\n */\n helpKey?: string;\n\n /**\n * Specifies a CSS class to add to the modal, such as `ag-custom-component-popup` for\n * using a modal as part of a cell editor in Data Entry Grid.\n */\n wrapperClass?: string;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["observableZip"],"mappings":"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"}
1
+ {"version":3,"file":"skyux-modals.js","sources":["../../../../../libs/components/modals/src/lib/modules/confirm/confirm-instance.ts","../../../../../libs/components/modals/src/lib/modules/confirm/confirm-modal-context.ts","../../../../../libs/components/modals/src/lib/modules/confirm/confirm-type.ts","../../../../../libs/components/modals/src/lib/modules/shared/sky-modals-resources.module.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-content.component.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-content.component.html","../../../../../libs/components/modals/src/lib/modules/modal/modal-footer.component.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-footer.component.html","../../../../../libs/components/modals/src/lib/modules/modal/modal-header.component.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-header.component.html","../../../../../libs/components/modals/src/lib/modules/modal/modal-adapter.service.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-configuration.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-host.service.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-host.component.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-host.component.html","../../../../../libs/components/modals/src/lib/modules/modal/modal-scroll-shadow.directive.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-component-adapter.service.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-state-animation.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal.component.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal.component.html","../../../../../libs/components/modals/src/lib/modules/modal/modal.module.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-before-close-handler.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-close-args.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-instance.ts","../../../../../libs/components/modals/src/lib/modules/confirm/confirm.component.ts","../../../../../libs/components/modals/src/lib/modules/confirm/confirm.component.html","../../../../../libs/components/modals/src/lib/modules/confirm/confirm.module.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal.service.ts","../../../../../libs/components/modals/src/lib/modules/confirm/confirm.service.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal.interface.ts","../../../../../libs/components/modals/src/skyux-modals.ts"],"sourcesContent":["import { EventEmitter } from '@angular/core';\n\nimport { SkyConfirmCloseEventArgs } from './confirm-closed-event-args';\n\nexport class SkyConfirmInstance {\n /**\n * Fires when users select an action to close the confirmation dialog. This event\n * returns a `SkyConfirmCloseEventArgs` object with information about the button that\n * users select.\n */\n public closed = new EventEmitter<SkyConfirmCloseEventArgs>();\n}\n","import { SkyConfirmButtonConfig } from './confirm-button-config';\nimport { SkyConfirmConfig } from './confirm-config';\nimport { SkyConfirmType } from './confirm-type';\n\n/* istanbul ignore next */\nexport class SkyConfirmModalContext implements SkyConfirmConfig {\n public message: string;\n public body: string;\n public buttons: SkyConfirmButtonConfig[];\n public preserveWhiteSpace: boolean;\n public type: SkyConfirmType;\n}\n","export enum SkyConfirmType {\n /**\n * Allows you to define your own `buttons` using the buttons property to\n * specify an array of `SkyConfirmButtonConfig` objects.\n */\n Custom = 0,\n /**\n * Displays one button with an **OK** label.\n */\n OK = 1,\n /**\n * Displays two buttons with **Yes** and **Cancel** labels.\n * @deprecated Use the `Custom` type to follow the guidance that labels\n * should clearly indicate the actions that occur when users select buttons.\n */\n YesCancel = 2,\n /**\n * Displays three buttons with **Yes**, **No**, and **Cancel** labels.\n * @deprecated Use the `Custom` type to follow the guidance that labels\n * should clearly indicate the actions that occur when users select buttons.\n */\n YesNoCancel = 3,\n}\n","/**\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 lib/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(\n localeInfo: SkyAppLocaleInfo,\n name: string\n ): string | undefined {\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","import { Component, ViewEncapsulation } from '@angular/core';\n\n/**\n * Specifies content to display in the modal's body.\n */\n@Component({\n selector: 'sky-modal-content',\n templateUrl: './modal-content.component.html',\n styleUrls: ['./modal-content.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SkyModalContentComponent {}\n","<ng-content></ng-content>\n","import { Component } from '@angular/core';\n\n/**\n * Specifies content to display in the modal's footer.\n */\n@Component({\n selector: 'sky-modal-footer',\n templateUrl: './modal-footer.component.html',\n styleUrls: ['./modal-footer.component.scss'],\n})\nexport class SkyModalFooterComponent {}\n","<div class=\"sky-modal-footer-container sky-padding-even-large\">\n <ng-content></ng-content>\n</div>\n","import { Component } from '@angular/core';\n\n/**\n * Specifies a header for the modal.\n */\n@Component({\n selector: 'sky-modal-header',\n templateUrl: './modal-header.component.html',\n styleUrls: ['./modal-header.component.scss'],\n})\nexport class SkyModalHeaderComponent {}\n","<h1\n class=\"sky-emphasized\"\n [skyThemeClass]=\"{\n 'sky-font-display-3': 'modern'\n }\"\n>\n <ng-content></ng-content>\n</h1>\n","import { Injectable } from '@angular/core';\nimport { SkyAppWindowRef } from '@skyux/core';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyModalAdapterService {\n private static readonly MODAL_BODY_FULL_CLASS = 'sky-modal-body-full-page';\n private static readonly MODAL_BODY_CLASS = 'sky-modal-body-open';\n\n private docRef: any;\n private bodyEl: HTMLElement;\n\n constructor(private windowRef: SkyAppWindowRef) {\n this.docRef = this.windowRef.nativeWindow.document;\n this.bodyEl = this.windowRef.nativeWindow.document.body;\n }\n\n public toggleFullPageModalClass(isAddFull: boolean): void {\n if (isAddFull) {\n this.addClassToBody(SkyModalAdapterService.MODAL_BODY_FULL_CLASS);\n } else {\n this.removeClassFromBody(SkyModalAdapterService.MODAL_BODY_FULL_CLASS);\n }\n }\n\n public setPageScroll(isAdd: boolean): void {\n if (isAdd) {\n this.addClassToBody(SkyModalAdapterService.MODAL_BODY_CLASS);\n } else {\n this.removeClassFromBody(SkyModalAdapterService.MODAL_BODY_CLASS);\n }\n }\n\n public getModalOpener(): HTMLElement {\n return this.docRef.activeElement;\n }\n\n private addClassToBody(className: string): void {\n this.bodyEl.classList.add(className);\n }\n\n private removeClassFromBody(className: string): void {\n this.bodyEl.classList.remove(className);\n }\n}\n","import { Injectable } from '@angular/core';\n\n/**\n * @internal\n */\n@Injectable({\n providedIn: 'any',\n})\nexport class SkyModalConfiguration {\n public fullPage?: boolean;\n public size?: string;\n public ariaDescribedBy?: string;\n public ariaLabelledBy?: string;\n public ariaRole?: string;\n public tiledBody?: boolean;\n public helpKey?: string;\n public wrapperClass?: string;\n\n constructor() {\n this.size = 'medium';\n }\n}\n","import { EventEmitter, Injectable } from '@angular/core';\n\n/**\n * @internal\n * @dynamic\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class SkyModalHostService {\n public static get openModalCount(): number {\n return SkyModalHostService.modalHosts.length;\n }\n\n public static get fullPageModalCount(): number {\n const fullPageModals = SkyModalHostService.modalHosts.filter(\n (modal) => modal.fullPage\n );\n return fullPageModals.length;\n }\n\n private static get BASE_Z_INDEX(): number {\n return 1040;\n }\n\n public static get backdropZIndex(): number {\n return (\n SkyModalHostService.BASE_Z_INDEX +\n SkyModalHostService.modalHosts.length * 10\n );\n }\n\n public static get topModal(): SkyModalHostService {\n return SkyModalHostService.modalHosts[\n SkyModalHostService.modalHosts.length - 1\n ];\n }\n\n private static modalHosts: SkyModalHostService[] = [];\n\n public close = new EventEmitter<void>();\n public fullPage = false;\n public openHelp = new EventEmitter<any>();\n\n constructor() {\n SkyModalHostService.modalHosts.push(this);\n }\n\n public getModalZIndex(): number {\n let zIndex = SkyModalHostService.BASE_Z_INDEX + 1;\n zIndex += (SkyModalHostService.modalHosts.indexOf(this) + 1) * 10;\n return zIndex;\n }\n\n public onClose(): void {\n this.close.emit();\n }\n\n public onOpenHelp(helpKey?: string) {\n this.openHelp.emit(helpKey);\n }\n\n public destroy(): void {\n SkyModalHostService.modalHosts.splice(\n SkyModalHostService.modalHosts.indexOf(this),\n 1\n );\n }\n}\n","import {\n ChangeDetectorRef,\n Component,\n ComponentFactoryResolver,\n Injector,\n ViewChild,\n ViewContainerRef,\n} from '@angular/core';\nimport { NavigationStart, Router } from '@angular/router';\n\nimport { takeWhile } from 'rxjs/operators';\n\nimport { SkyModalAdapterService } from './modal-adapter.service';\nimport { SkyModalConfiguration } from './modal-configuration';\nimport { SkyModalHostService } from './modal-host.service';\nimport { SkyModalInstance } from './modal-instance';\nimport { SkyModalConfigurationInterface } from './modal.interface';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-modal-host',\n templateUrl: './modal-host.component.html',\n styleUrls: ['./modal-host.component.scss'],\n viewProviders: [SkyModalAdapterService],\n})\nexport class SkyModalHostComponent {\n public get modalOpen() {\n return SkyModalHostService.openModalCount > 0;\n }\n\n public get backdropZIndex() {\n return SkyModalHostService.backdropZIndex;\n }\n\n /**\n * Use `any` for backwards-compatibility with Angular 4-7.\n * See: https://github.com/angular/angular/issues/30654\n * TODO: Remove the `any` in a breaking change.\n * @internal\n */\n @ViewChild('target', {\n read: ViewContainerRef,\n static: true,\n } as any)\n public target: ViewContainerRef;\n\n constructor(\n private resolver: ComponentFactoryResolver,\n private adapter: SkyModalAdapterService,\n private injector: Injector,\n private router: Router,\n private changeDetector: ChangeDetectorRef\n ) {}\n\n public open(\n modalInstance: SkyModalInstance,\n component: any,\n config?: SkyModalConfigurationInterface\n ) {\n const params: SkyModalConfigurationInterface = Object.assign({}, config);\n const factory = this.resolver.resolveComponentFactory(component);\n\n const hostService = new SkyModalHostService();\n hostService.fullPage = !!params.fullPage;\n\n const adapter = this.adapter;\n const modalOpener: HTMLElement = adapter.getModalOpener();\n\n let isOpen = true;\n\n params.providers.push({\n provide: SkyModalHostService,\n useValue: hostService,\n });\n params.providers.push({\n provide: SkyModalConfiguration,\n useValue: params,\n });\n\n adapter.setPageScroll(SkyModalHostService.openModalCount > 0);\n adapter.toggleFullPageModalClass(\n SkyModalHostService.fullPageModalCount > 0\n );\n\n const providers = params.providers || /* istanbul ignore next */ [];\n const injector = Injector.create({\n providers,\n parent: this.injector,\n });\n\n const modalComponentRef = this.target.createComponent(\n factory,\n undefined,\n injector\n );\n\n modalInstance.componentInstance = modalComponentRef.instance;\n\n function closeModal() {\n hostService.destroy();\n adapter.setPageScroll(SkyModalHostService.openModalCount > 0);\n adapter.toggleFullPageModalClass(\n SkyModalHostService.fullPageModalCount > 0\n );\n /* istanbul ignore else */\n /* sanity check */\n if (modalOpener && modalOpener.focus) {\n modalOpener.focus();\n }\n modalComponentRef.destroy();\n }\n\n hostService.openHelp.subscribe((helpKey?: string) => {\n modalInstance.openHelp(helpKey);\n });\n\n hostService.close.subscribe(() => {\n modalInstance.close();\n });\n\n this.router.events.pipe(takeWhile(() => isOpen)).subscribe((event) => {\n /* istanbul ignore else */\n if (event instanceof NavigationStart) {\n modalInstance.close();\n }\n });\n\n modalInstance.closed.subscribe(() => {\n isOpen = false;\n closeModal();\n });\n\n // Necessary if the host was created via a consumer's lifecycle hook such as ngOnInit\n this.changeDetector.detectChanges();\n }\n}\n","<div\n class=\"sky-modal-host-backdrop\"\n [hidden]=\"!modalOpen\"\n [ngStyle]=\"{\n zIndex: backdropZIndex\n }\"\n></div>\n<div #target></div>\n","import {\n Directive,\n ElementRef,\n EventEmitter,\n HostListener,\n NgZone,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n} from '@angular/core';\nimport { MutationObserverService } from '@skyux/core';\nimport { SkyTheme, SkyThemeService } from '@skyux/theme';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyModalScrollShadowEventArgs } from './modal-scroll-shadow-event-args';\n\n/**\n * Raises an event when the box shadow for the modal header or footer should be adjusted\n * based on the scroll position of the host element.\n * @internal\n */\n@Directive({\n selector: '[skyModalScrollShadow]',\n})\nexport class SkyModalScrollShadowDirective implements OnInit, OnDestroy {\n @Output()\n public skyModalScrollShadow = new EventEmitter<SkyModalScrollShadowEventArgs>();\n\n private currentShadow: SkyModalScrollShadowEventArgs;\n\n private currentTheme: SkyTheme;\n\n private mutationObserver: MutationObserver;\n\n private ngUnsubscribe = new Subject<any>();\n\n constructor(\n private elRef: ElementRef,\n @Optional() private themeSvc: SkyThemeService,\n private mutationObserverSvc: MutationObserverService,\n private ngZone: NgZone\n ) {}\n\n @HostListener('window:resize')\n public windowResize(): void {\n this.checkForShadow();\n }\n\n @HostListener('scroll')\n public scroll(): void {\n this.checkForShadow();\n }\n\n public ngOnInit(): void {\n if (this.themeSvc) {\n this.themeSvc.settingsChange\n .pipe(takeUntil(this.ngUnsubscribe))\n .subscribe((themeSettings) => {\n this.currentTheme = themeSettings.currentSettings.theme;\n\n if (this.currentTheme === SkyTheme.presets.modern) {\n this.initMutationObserver();\n } else {\n this.emitShadow({\n bottomShadow: 'none',\n topShadow: 'none',\n });\n\n this.destroyMutationObserver();\n }\n });\n }\n }\n\n public ngOnDestroy(): void {\n this.ngUnsubscribe.next();\n this.ngUnsubscribe.complete();\n\n this.destroyMutationObserver();\n }\n\n private initMutationObserver(): void {\n if (!this.mutationObserver) {\n const el = this.elRef.nativeElement;\n\n // MutationObserver is patched by Zone.js and therefore becomes part of the\n // Angular change detection cycle, but this can lead to infinite loops in some\n // secnarios. This will keep MutationObserver from triggering change detection.\n this.ngZone.runOutsideAngular(() => {\n this.mutationObserver = this.mutationObserverSvc.create(() => {\n this.checkForShadow();\n });\n\n this.mutationObserver.observe(el, {\n attributes: true,\n characterData: true,\n childList: true,\n subtree: true,\n });\n });\n }\n }\n\n private destroyMutationObserver(): void {\n if (this.mutationObserver) {\n this.mutationObserver.disconnect();\n this.mutationObserver = undefined;\n }\n }\n\n private checkForShadow(): void {\n if (this.currentTheme === SkyTheme.presets.modern) {\n const el = this.elRef.nativeElement;\n\n const topShadow = this.buildShadowStyle(el.scrollTop);\n\n const bottomShadow = this.buildShadowStyle(\n el.scrollHeight - el.scrollTop - el.clientHeight\n );\n\n this.emitShadow({\n bottomShadow,\n topShadow,\n });\n }\n }\n\n private buildShadowStyle(pixelsFromEnd: number): string {\n // Progressively darken the shadow until the user scrolls 30 pixels from the top or bottom\n // of the scrollable element, with a max opacity of 0.3.\n const opacity = Math.min(pixelsFromEnd / 30, 1) * 0.3;\n\n return opacity > 0 ? `0px 1px 8px 0px rgba(0, 0, 0, ${opacity})` : 'none';\n }\n\n private emitShadow(shadow: SkyModalScrollShadowEventArgs): void {\n if (\n !this.currentShadow ||\n this.currentShadow.bottomShadow !== shadow.bottomShadow ||\n this.currentShadow.topShadow !== shadow.topShadow\n ) {\n this.skyModalScrollShadow.emit(shadow);\n this.currentShadow = shadow;\n }\n }\n}\n","import { ElementRef, Injectable } from '@angular/core';\nimport { SkyCoreAdapterService } from '@skyux/core';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyModalComponentAdapterService {\n constructor(private coreAdapter: SkyCoreAdapterService) {}\n\n public handleWindowChange(modalEl: ElementRef): void {\n const boundedHeightEl = modalEl.nativeElement.querySelector('.sky-modal');\n const fullPageModalEl = modalEl.nativeElement.querySelector(\n '.sky-modal-full-page'\n );\n /*\n Set modal height equal to max height of window (accounting for padding above and below modal)\n */\n const newHeight = window.innerHeight - 40;\n\n boundedHeightEl.style.maxHeight = newHeight.toString() + 'px';\n if (fullPageModalEl) {\n this.setFullPageHeight(fullPageModalEl);\n } else {\n /*\n IE11 doesn't handle flex and max-height correctly so we have to explicitly add\n max-height to the content that accounts for standard header and footer height.\n */\n const modalContentEl =\n modalEl.nativeElement.querySelector('.sky-modal-content');\n const contentHeight = newHeight - 114;\n modalContentEl.style.maxHeight = contentHeight.toString() + 'px';\n }\n }\n\n public isFocusInFirstItem(\n event: KeyboardEvent,\n list: Array<HTMLElement>\n ): boolean {\n /* istanbul ignore next */\n /* sanity check */\n const eventTarget = event.target || event.srcElement;\n return list.length > 0 && eventTarget === list[0];\n }\n\n public isFocusInLastItem(\n event: KeyboardEvent,\n list: Array<HTMLElement>\n ): boolean {\n /* istanbul ignore next */\n /* sanity check */\n const eventTarget = event.target || event.srcElement;\n return list.length > 0 && eventTarget === list[list.length - 1];\n }\n\n public isModalFocused(event: KeyboardEvent, modalEl: ElementRef): boolean {\n /* istanbul ignore next */\n /* sanity check */\n const eventTarget = event.target || event.srcElement;\n return (\n modalEl &&\n eventTarget === modalEl.nativeElement.querySelector('.sky-modal-dialog')\n );\n }\n\n public focusLastElement(list: Array<HTMLElement>): boolean {\n if (list.length > 0) {\n list[list.length - 1].focus();\n return true;\n }\n return false;\n }\n\n public focusFirstElement(list: Array<HTMLElement>): boolean {\n if (list.length > 0) {\n list[0].focus();\n return true;\n }\n return false;\n }\n\n public modalOpened(modalEl: ElementRef): void {\n /* istanbul ignore else */\n /* handle the case where somehow there is a focused element already in the modal */\n if (\n !(\n document.activeElement &&\n modalEl.nativeElement.contains(document.activeElement)\n )\n ) {\n const currentScrollX = window.pageXOffset;\n const currentScrollY = window.pageYOffset;\n\n const inputWithAutofocus =\n modalEl.nativeElement.querySelector('[autofocus]');\n\n if (inputWithAutofocus) {\n inputWithAutofocus.focus();\n } else {\n this.coreAdapter.getFocusableChildrenAndApplyFocus(\n modalEl,\n '.sky-modal-content',\n true\n );\n }\n window.scrollTo(currentScrollX, currentScrollY);\n }\n }\n\n private setFullPageHeight(fullPageModalEl: HTMLElement): void {\n const windowHeight = window.innerHeight;\n const fullPageModalStyle = getComputedStyle(fullPageModalEl);\n\n const marginTopBottom =\n parseInt(fullPageModalStyle.marginTop, 10) +\n parseInt(fullPageModalStyle.marginBottom, 10);\n\n const fullPageModalHeight = windowHeight - marginTopBottom + 'px';\n\n fullPageModalEl.style.height = fullPageModalHeight;\n fullPageModalEl.style.maxHeight = fullPageModalHeight;\n }\n}\n","import {\n animate,\n state,\n style,\n transition,\n trigger,\n} from '@angular/animations';\n\nexport const skyAnimationModalState = trigger('modalState', [\n state('in', style({ opacity: '1.0' })),\n state('out', style({ opacity: '0.0' })),\n transition('void => *', [style({ opacity: '0.0' }), animate(150)]),\n transition('* => void', [animate(150, style({ opacity: '0.0' }))]),\n]) as any;\n","import {\n AfterViewInit,\n Component,\n ElementRef,\n Host,\n HostBinding,\n HostListener,\n Input,\n OnDestroy,\n Optional,\n ViewChild,\n} from '@angular/core';\nimport {\n SkyAppWindowRef,\n SkyCoreAdapterService,\n SkyDockLocation,\n SkyDockService,\n SkyMediaQueryService,\n SkyResizeObserverMediaQueryService,\n} from '@skyux/core';\n\nimport { SkyModalComponentAdapterService } from './modal-component-adapter.service';\nimport { SkyModalConfiguration } from './modal-configuration';\nimport { SkyModalHostService } from './modal-host.service';\nimport { SkyModalScrollShadowEventArgs } from './modal-scroll-shadow-event-args';\nimport { skyAnimationModalState } from './modal-state-animation';\n\nlet skyModalUniqueIdentifier = 0;\n\n/**\n * Provides a common look-and-feel for modal content with options to display\n * a common modal header, specify body content, and display a common modal footer\n * and buttons. For information about how to test modals in SKY UX, see\n * [write unit tests for modals](https://developer.blackbaud.com/skyux/learn/accessibility/test).\n */\n@Component({\n selector: 'sky-modal',\n templateUrl: './modal.component.html',\n styleUrls: ['./modal.component.scss'],\n animations: [skyAnimationModalState],\n providers: [\n SkyModalComponentAdapterService,\n SkyDockService,\n {\n provide: SkyMediaQueryService,\n useClass: SkyResizeObserverMediaQueryService,\n },\n ],\n})\nexport class SkyModalComponent implements AfterViewInit, OnDestroy {\n @HostBinding('class')\n public get wrapperClass(): string {\n return this.config.wrapperClass;\n }\n\n /**\n * @internal\n */\n @Input()\n public get ariaRole() {\n return this.config.ariaRole || 'dialog';\n }\n public set ariaRole(value: string) {\n this.config.ariaRole = value;\n }\n\n /**\n * @internal\n */\n @Input()\n public set tiledBody(value: boolean) {\n this.config.tiledBody = value;\n }\n\n public get modalZIndex() {\n return this.hostService.getModalZIndex();\n }\n\n public get modalFullPage() {\n return this.config.fullPage;\n }\n\n public get isSmallSize() {\n return !this.modalFullPage && this.isSizeEqual(this.config.size, 'small');\n }\n\n public get isMediumSize() {\n return !this.modalFullPage && !(this.isSmallSize || this.isLargeSize);\n }\n\n public get isLargeSize() {\n return !this.modalFullPage && this.isSizeEqual(this.config.size, 'large');\n }\n\n public get isTiledBody() {\n return this.config.tiledBody;\n }\n\n public get ariaDescribedBy() {\n return this.config.ariaDescribedBy || this.modalContentId;\n }\n\n public get ariaLabelledBy() {\n return this.config.ariaLabelledBy || this.modalHeaderId;\n }\n\n public get helpKey() {\n return this.config.helpKey;\n }\n\n public modalState = 'in';\n\n public modalContentId: string =\n 'sky-modal-content-id-' + skyModalUniqueIdentifier.toString();\n\n public modalHeaderId: string =\n 'sky-modal-header-id-' + skyModalUniqueIdentifier.toString();\n\n public scrollShadow: SkyModalScrollShadowEventArgs;\n\n @ViewChild('modalContentWrapper', { read: ElementRef })\n private modalContentWrapperElement: ElementRef;\n\n constructor(\n private hostService: SkyModalHostService,\n private config: SkyModalConfiguration,\n private elRef: ElementRef,\n private windowRef: SkyAppWindowRef,\n private componentAdapter: SkyModalComponentAdapterService,\n private coreAdapter: SkyCoreAdapterService,\n @Host() private dockService: SkyDockService,\n @Optional()\n @Host()\n private mediaQueryService?: SkyResizeObserverMediaQueryService\n ) {}\n\n @HostListener('document:keyup', ['$event'])\n public onDocumentKeyUp(event: KeyboardEvent) {\n /* istanbul ignore else */\n /* sanity check */\n if (SkyModalHostService.openModalCount > 0) {\n const topModal = SkyModalHostService.topModal;\n if (topModal && topModal === this.hostService) {\n if (event.which === 27) {\n // Escape key up\n event.preventDefault();\n this.closeButtonClick();\n }\n }\n }\n }\n\n @HostListener('document:keydown', ['$event'])\n public onDocumentKeyDown(event: KeyboardEvent) {\n /* istanbul ignore else */\n /* sanity check */\n if (SkyModalHostService.openModalCount > 0) {\n const topModal = SkyModalHostService.topModal;\n if (topModal && topModal === this.hostService) {\n if (event.which === 9) {\n // Tab pressed\n let focusChanged = false;\n\n const focusElementList = this.coreAdapter.getFocusableChildren(\n this.elRef.nativeElement\n );\n\n if (\n event.shiftKey &&\n (this.componentAdapter.isFocusInFirstItem(\n event,\n focusElementList\n ) ||\n this.componentAdapter.isModalFocused(event, this.elRef))\n ) {\n focusChanged =\n this.componentAdapter.focusLastElement(focusElementList);\n } else if (\n !event.shiftKey &&\n this.componentAdapter.isFocusInLastItem(event, focusElementList)\n ) {\n focusChanged =\n this.componentAdapter.focusFirstElement(focusElementList);\n }\n\n if (focusChanged) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n }\n }\n }\n\n public ngAfterViewInit() {\n skyModalUniqueIdentifier++;\n this.componentAdapter.handleWindowChange(this.elRef);\n\n // Adding a timeout to avoid ExpressionChangedAfterItHasBeenCheckedError.\n // https://stackoverflow.com/questions/40562845\n this.windowRef.nativeWindow.setTimeout(() => {\n this.componentAdapter.modalOpened(this.elRef);\n });\n\n this.dockService.setDockOptions({\n location: SkyDockLocation.ElementBottom,\n referenceEl: this.modalContentWrapperElement.nativeElement,\n zIndex: 5,\n });\n\n /* istanbul ignore next */\n if (this.mediaQueryService) {\n this.mediaQueryService.observe(this.modalContentWrapperElement);\n }\n }\n\n public ngOnDestroy(): void {\n /* istanbul ignore next */\n if (this.mediaQueryService) {\n this.mediaQueryService.unobserve();\n }\n }\n\n public helpButtonClick() {\n this.hostService.onOpenHelp(this.helpKey);\n }\n\n public closeButtonClick() {\n this.hostService.onClose();\n }\n\n public windowResize() {\n this.componentAdapter.handleWindowChange(this.elRef);\n }\n\n public scrollShadowChange(args: SkyModalScrollShadowEventArgs): void {\n this.scrollShadow = args;\n }\n\n private isSizeEqual(actualSize: string, size: string) {\n return actualSize && actualSize.toLowerCase() === size;\n }\n}\n","<!--\n Animations are broken in Chrome v52. Angular 2 RC5 will fix it.\n https://github.com/angular/angular/issues/10245\n-->\n<!--<div @modalState=\"modalState\">-->\n\n<div\n class=\"sky-modal-dialog\"\n aria-modal=\"true\"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n [attr.aria-labelledby]=\"ariaLabelledBy\"\n [attr.role]=\"ariaRole\"\n (window:resize)=\"windowResize()\"\n>\n <div\n class=\"sky-modal sky-shadow sky-box sky-elevation-16\"\n tabindex=\"-1\"\n [ngClass]=\"{\n 'sky-modal-full-page': modalFullPage,\n 'sky-modal-small': isSmallSize,\n 'sky-modal-medium': isMediumSize,\n 'sky-modal-large': isLargeSize,\n 'sky-modal-tiled': isTiledBody\n }\"\n [ngStyle]=\"{\n zIndex: modalZIndex\n }\"\n >\n <div\n class=\"sky-modal-header\"\n [hidden]=\"!headerContent || !headerContent.children || headerContent.children.length &lt; 1\"\n [ngStyle]=\"{\n 'box-shadow': scrollShadow?.topShadow\n }\"\n >\n <div\n class=\"sky-modal-header-content\"\n [attr.id]=\"modalHeaderId\"\n [ngClass]=\"{\n 'sky-section-heading': modalFullPage\n }\"\n #headerContent\n >\n <ng-content select=\"sky-modal-header\"></ng-content>\n </div>\n <div class=\"sky-modal-header-buttons\">\n <button\n *ngIf=\"helpKey\"\n class=\"sky-btn sky-modal-btn-help\"\n name=\"help-button\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_modal_open_help' | skyLibResources\"\n (click)=\"helpButtonClick()\"\n >\n <sky-icon icon=\"question-circle\"></sky-icon>\n </button>\n\n <button\n type=\"button\"\n class=\"sky-btn sky-modal-btn-close\"\n [attr.aria-label]=\"'skyux_modal_close' | skyLibResources\"\n (click)=\"closeButtonClick()\"\n >\n <sky-icon icon=\"close\"></sky-icon>\n </button>\n </div>\n </div>\n <div\n class=\"sky-modal-content sky-padding-even-large\"\n role=\"region\"\n tabindex=\"0\"\n [attr.aria-labelledby]=\"modalHeaderId\"\n [attr.id]=\"modalContentId\"\n (skyModalScrollShadow)=\"scrollShadowChange($event)\"\n #modalContentWrapper\n >\n <ng-content select=\"sky-modal-content\"></ng-content>\n </div>\n <div\n class=\"sky-modal-footer\"\n [ngStyle]=\"{\n 'box-shadow': scrollShadow?.bottomShadow\n }\"\n >\n <ng-content select=\"sky-modal-footer\"></ng-content>\n </div>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { RouterModule } from '@angular/router';\nimport { SkyIconModule } from '@skyux/indicators';\nimport { SkyThemeModule } from '@skyux/theme';\n\nimport { SkyModalsResourcesModule } from '../shared/sky-modals-resources.module';\n\nimport { SkyModalContentComponent } from './modal-content.component';\nimport { SkyModalFooterComponent } from './modal-footer.component';\nimport { SkyModalHeaderComponent } from './modal-header.component';\nimport { SkyModalHostComponent } from './modal-host.component';\nimport { SkyModalScrollShadowDirective } from './modal-scroll-shadow.directive';\nimport { SkyModalComponent } from './modal.component';\n\n@NgModule({\n declarations: [\n SkyModalComponent,\n SkyModalContentComponent,\n SkyModalFooterComponent,\n SkyModalHeaderComponent,\n SkyModalHostComponent,\n SkyModalScrollShadowDirective,\n ],\n imports: [\n CommonModule,\n RouterModule,\n SkyIconModule,\n SkyModalsResourcesModule,\n SkyThemeModule,\n ],\n exports: [\n SkyModalComponent,\n SkyModalContentComponent,\n SkyModalFooterComponent,\n SkyModalHeaderComponent,\n ],\n entryComponents: [SkyModalHostComponent],\n})\nexport class SkyModalModule {}\n","import { SkyModalCloseArgs } from './modal-close-args';\n\n/**\n * Closes the modal instance using the `closeModal` method.\n */\nexport class SkyModalBeforeCloseHandler {\n constructor(\n public readonly closeModal: Function,\n public readonly closeArgs: SkyModalCloseArgs\n ) {}\n}\n","/**\n * Contains an object with the data passed from users when\n * a modal is closed and the reason that the modal was closed.\n */\nexport class SkyModalCloseArgs {\n /**\n * Indicates the reason the modal was closed.\n * Options include `\"close\"`, `\"save\"`, and `\"cancel\"`.\n */\n public reason: string;\n /**\n * The data passed from users when the modal is closed.\n */\n public data: any;\n}\n","import { Observable, Subject } from 'rxjs';\n\nimport { SkyModalBeforeCloseHandler } from './modal-before-close-handler';\nimport { SkyModalCloseArgs } from './modal-close-args';\n\n// TODO: this class won't show in the generated docs until this work is done:\n// https://github.com/blackbaud/skyux-docs-tools/issues/30\n\n/**\n * Allows you to close the modal and return data from the launched modal.\n */\nexport class SkyModalInstance {\n /**\n * An event that the modal instance emits when it is about to close.\n * It emits a `SkyModalBeforeCloseHandler` object with a `closeModal` method\n * that closes the modal. If a subscription exists for this event,\n * the modal does not close until the subscriber calls the `closeModal` method.\n */\n public get beforeClose(): Observable<SkyModalBeforeCloseHandler> {\n return this._beforeClose;\n }\n\n /**\n * An event that the modal instance emits when it closes.\n * It emits a `SkyModalCloseArgs` object with a `data` property that includes\n * data passed from users on close or save and a `reason` property that indicates\n * whether the modal was saved or closed without saving.\n * The `reason` property accepts any string value.\n * Common examples include `\"cancel\"`, `\"close\"`, and `\"save\"`.\n */\n public get closed(): Observable<SkyModalCloseArgs> {\n return this._closed;\n }\n\n /**\n * An event that the modal instance emits when users click\n * the <i class=\"fa fa-question-circle\" aria-hidden=\"true\"></i> button.\n * If a `helpKey` parameter was specified, the `helpOpened` event broadcasts the `helpKey`.\n */\n public get helpOpened(): Observable<string> {\n return this._helpOpened;\n }\n\n /**\n * A direct reference to the provided component's class.\n */\n public componentInstance: any;\n\n private _beforeClose = new Subject<SkyModalBeforeCloseHandler>();\n\n private _closed = new Subject<SkyModalCloseArgs>();\n\n private _helpOpened = new Subject<string>();\n\n /**\n * Closes the modal instance.\n * @param result Specifies an object to emit to subscribers of the `closed` event of the\n * modal instance. The `SkyModalInstance` provider can be injected into a component's constructor\n * so that this `close` function can be called from a button in the `sky-modal-footer`.\n * @param reason Specifies the reason for the modal closing, with the default reason of `\"close\"`.\n * @param ignoreBeforeClose Indicates whether to ignore the modal instance's `beforeClose` event.\n */\n public close(\n result?: any,\n reason?: string,\n ignoreBeforeClose?: boolean\n ): void {\n if (reason === undefined) {\n reason = 'close';\n }\n\n this.closeModal(reason, result, ignoreBeforeClose);\n }\n\n /**\n * Closes the modal instance with `reason=\"cancel\"`.\n * @param result Specifies an object to emit to subscribers of the `closed` event of the modal\n * instance. The `SkyModalInstance` provider can be injected into a component's constructor so\n * that this cancel function can be called from a button in the `sky-modal-footer`.\n */\n public cancel(result?: any): void {\n this.closeModal('cancel', result);\n }\n\n /**\n * Closes the modal instance with `reason=\"save\"`.\n * @param result Specifies an object to emit to subscribers of the `closed` event of the modal\n * instance. The `SkyModalInstance` provider can be injected into a component's constructor so\n * that this `save` function can be called from a button in `the sky-modal-footer`.\n */\n public save(result?: any): void {\n this.closeModal('save', result);\n }\n\n /**\n * Triggers the `helpOpened` event that broadcasts a `helpKey` parameter to open\n * when users click the <i class=\"fa fa-question-circle\" aria-hidden=\"true\"></i> button.\n * @param helpKey Specifies a string to emit to subscribers of\n * the modal instance's `helpOpened` event. Consumers can inject the `SkyModalInstance` provider\n * into a component's constructor to call the `openHelp` function in the modal template.\n */\n public openHelp(helpKey?: string): void {\n this._helpOpened.next(helpKey);\n }\n\n private closeModal(\n type: string,\n result?: any,\n ignoreBeforeClose = false\n ): void {\n const args = new SkyModalCloseArgs();\n\n args.reason = type;\n args.data = result;\n\n if (this._beforeClose.observers.length === 0 || ignoreBeforeClose) {\n this.notifyClosed(args);\n } else {\n this._beforeClose.next(\n new SkyModalBeforeCloseHandler(() => {\n this.notifyClosed(args);\n }, args)\n );\n }\n }\n\n private notifyClosed(args: SkyModalCloseArgs): void {\n this._closed.next(args);\n this._closed.complete();\n this._beforeClose.complete();\n this._helpOpened.complete();\n }\n}\n","import { Component, OnInit, Optional } from '@angular/core';\nimport { SkyLibResourcesService } from '@skyux/i18n';\n\nimport { BehaviorSubject, Observable, zip as observableZip } from 'rxjs';\n\nimport { SkyModalInstance } from '../modal/modal-instance';\n\nimport { SkyConfirmButton } from './confirm-button';\nimport { SkyConfirmButtonConfig } from './confirm-button-config';\nimport { SkyConfirmCloseEventArgs } from './confirm-closed-event-args';\nimport { SkyConfirmModalContext } from './confirm-modal-context';\nimport { SkyConfirmType } from './confirm-type';\n\n@Component({\n selector: 'sky-confirm',\n templateUrl: './confirm.component.html',\n styleUrls: ['./confirm.component.scss'],\n})\nexport class SkyConfirmComponent implements OnInit {\n public buttons: SkyConfirmButton[];\n public message: string;\n public body: string;\n public preserveWhiteSpace = false;\n\n constructor(\n private config: SkyConfirmModalContext,\n private modal: SkyModalInstance,\n @Optional() private resourcesService: SkyLibResourcesService\n ) {}\n\n public ngOnInit() {\n if (\n this.config.type === SkyConfirmType.Custom &&\n this.config.buttons.length > 0\n ) {\n this.buttons = this.getCustomButtons(this.config.buttons);\n } else {\n this.getPresetButtons().subscribe((buttons: SkyConfirmButton[]) => {\n this.buttons = buttons;\n });\n }\n\n this.message = this.config.message;\n this.body = this.config.body;\n this.preserveWhiteSpace = this.config.preserveWhiteSpace || false;\n }\n\n public close(button: SkyConfirmButton) {\n const result: SkyConfirmCloseEventArgs = {\n action: button.action,\n };\n\n this.modal.close(result);\n }\n\n private getPresetButtons(): Observable<SkyConfirmButton[]> {\n const emitter = new BehaviorSubject<SkyConfirmButton[]>([]);\n\n switch (this.config.type) {\n default:\n case SkyConfirmType.OK:\n this.resourcesService\n .getString('skyux_confirm_dialog_default_ok_text')\n .subscribe((value: string) => {\n emitter.next([\n {\n text: value,\n autofocus: true,\n styleType: 'primary',\n action: 'ok',\n },\n ]);\n });\n break;\n\n case SkyConfirmType.YesNoCancel:\n observableZip(\n this.resourcesService.getString(\n 'skyux_confirm_dialog_default_yes_text'\n ),\n this.resourcesService.getString(\n 'skyux_confirm_dialog_default_no_text'\n ),\n this.resourcesService.getString(\n 'skyux_confirm_dialog_default_cancel_text'\n )\n ).subscribe((values: any) => {\n emitter.next([\n {\n text: values[0],\n autofocus: true,\n styleType: 'primary',\n action: 'yes',\n },\n {\n text: values[1],\n styleType: 'default',\n action: 'no',\n },\n {\n text: values[2],\n styleType: 'link',\n action: 'cancel',\n },\n ]);\n });\n break;\n\n case SkyConfirmType.YesCancel:\n observableZip(\n this.resourcesService.getString(\n 'skyux_confirm_dialog_default_yes_text'\n ),\n this.resourcesService.getString(\n 'skyux_confirm_dialog_default_cancel_text'\n )\n ).subscribe((values: any) => {\n emitter.next([\n {\n text: values[0],\n autofocus: true,\n styleType: 'primary',\n action: 'yes',\n },\n {\n text: values[1],\n styleType: 'link',\n action: 'cancel',\n },\n ]);\n });\n break;\n }\n\n return emitter;\n }\n\n private getCustomButtons(\n buttonConfig: SkyConfirmButtonConfig[]\n ): SkyConfirmButton[] {\n const buttons: SkyConfirmButton[] = [];\n\n buttonConfig.forEach((config: SkyConfirmButtonConfig) => {\n buttons.push({\n text: config.text,\n action: config.action,\n styleType: config.styleType || 'default',\n autofocus: config.autofocus || false,\n } as SkyConfirmButton);\n });\n\n return buttons;\n }\n}\n","<div class=\"sky-confirm\">\n <sky-modal ariaRole=\"alertdialog\">\n <sky-modal-content class=\"sky-confirm-content\">\n <div\n class=\"sky-confirm-message\"\n [ngClass]=\"{\n 'sky-confirm-preserve-white-space': preserveWhiteSpace\n }\"\n [skyThemeClass]=\"{\n 'sky-emphasized': 'default',\n 'sky-font-heading-1 sky-font-display-3': 'modern'\n }\"\n >\n {{ message }}\n </div>\n\n <div\n *ngIf=\"body\"\n class=\"sky-confirm-body\"\n [ngClass]=\"{\n 'sky-confirm-preserve-white-space': preserveWhiteSpace\n }\"\n >\n {{ body }}\n </div>\n\n <div class=\"sky-confirm-buttons\">\n <button\n *ngFor=\"let button of buttons\"\n type=\"button\"\n class=\"sky-btn\"\n [ngClass]=\"['sky-btn-' + button.styleType]\"\n [skyThemeClass]=\"{\n 'sky-margin-inline-sm': 'modern',\n 'sky-margin-inline-compact': 'default'\n }\"\n (click)=\"close(button)\"\n [attr.autofocus]=\"button.autofocus ? 'autofocus' : null\"\n >\n {{ button.text }}\n </button>\n </div>\n </sky-modal-content>\n </sky-modal>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyThemeModule } from '@skyux/theme';\n\nimport { SkyModalModule } from '../modal/modal.module';\nimport { SkyModalsResourcesModule } from '../shared/sky-modals-resources.module';\n\nimport { SkyConfirmComponent } from './confirm.component';\n\n@NgModule({\n declarations: [SkyConfirmComponent],\n imports: [\n CommonModule,\n SkyModalModule,\n SkyModalsResourcesModule,\n SkyThemeModule,\n ],\n exports: [SkyConfirmComponent],\n entryComponents: [SkyConfirmComponent],\n})\nexport class SkyConfirmModule {}\n","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 launches modals. For information about how to test modals in SKY UX, see\n * [write unit tests for modals](https://developer.blackbaud.com/skyux/learn/accessibility/test).\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","import { Injectable } from '@angular/core';\n\nimport { SkyModalCloseArgs } from '../modal/modal-close-args';\nimport { SkyModalInstance } from '../modal/modal-instance';\nimport { SkyModalService } from '../modal/modal.service';\n\nimport { SkyConfirmCloseEventArgs } from './confirm-closed-event-args';\nimport { SkyConfirmConfig } from './confirm-config';\nimport { SkyConfirmInstance } from './confirm-instance';\nimport { SkyConfirmModalContext } from './confirm-modal-context';\nimport { SkyConfirmComponent } from './confirm.component';\n\n/**\n * The `SkyConfirmService` provider launches the confirmation dialog.\n * Within the service, you can specify the dialog's message and customize the button text.\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 SkyConfirmService {\n constructor(private modalService: SkyModalService) {}\n\n /**\n * Opens a confirmation dialog and passes the `config` parameter of type `SkyConfirmConfig`\n * to the component's constructor. This method returns an object of type `SkyConfirmInstance`.\n */\n public open(config: SkyConfirmConfig): SkyConfirmInstance {\n const modalInstance: SkyModalInstance = this.modalService.open(\n SkyConfirmComponent,\n {\n providers: [\n {\n provide: SkyConfirmModalContext,\n useValue: config,\n },\n ],\n }\n );\n\n const confirmInstance = new SkyConfirmInstance();\n\n modalInstance.closed.subscribe((args: SkyModalCloseArgs) => {\n let result: SkyConfirmCloseEventArgs = args.data;\n\n // The modal was closed using the ESC key.\n if (result === undefined) {\n result = {\n action: 'cancel',\n };\n }\n\n confirmInstance.closed.emit(result);\n confirmInstance.closed.complete();\n });\n\n return confirmInstance;\n }\n}\n","// TODO: defaults won't show in the generated docs until this work is done:\n// https://github.com/blackbaud/skyux-docs-tools/issues/38\n\n/**\n * Specifies configuration options for creating a modal.\n */\nexport interface SkyModalConfigurationInterface {\n /**\n * Indicates whether to display the modal full screen.\n * This property defaults to `false`.\n */\n fullPage?: boolean;\n\n /**\n * Specifies a size for the modal. The valid options are `small`, `medium`, and `large`.\n * This property defaults to `medium`.\n */\n size?: string;\n\n /**\n * An array property of `providers`.\n * In Angular, a provider is something that can create or deliver a service.\n * This property can be used to pass context values from the component that launches the modal to the modal component.\n */\n providers?: any[];\n\n /**\n * Specifies the HTML element ID (without the leading `#`) of the element that describes\n * the modal. This sets the modal's `aria-describedby` attribute\n * [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility).\n * The description typically includes text on the modal but not on items that users interact\n * with, such as buttons and forms. If you do not specify an ID, the default description is\n * the content of the `sky-modal-content` component.\n */\n ariaDescribedBy?: string;\n\n /**\n * Specifies the HTML element ID (without the leading `#`) of the element that labels\n * the modal. This sets the `aria-labelledby` attribute for the modal\n * [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility).\n * This is typically a header element, and if you do not specify an ID, the default value\n * is the content of the `sky-modal-header` component.\n */\n ariaLabelledBy?: string;\n\n /**\n * Specifies an ARIA role for the modal\n * [to support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility)\n * by indicating how the modal functions and what it controls. For information about\n * how an ARIA role indicates what an item represents on a web page, see the\n * [WAI-ARIA roles model](http://www.w3.org/WAI/PF/aria/roles). By default, modals set\n * the ARIA role to `dialog`.\n * @default \"dialog\"\n */\n ariaRole?: string;\n\n /**\n * Indicates whether the modal uses tiles. When set to `true`, the modal's background switches\n * to `$sky-background-color-neutral-light` and tile headings are styled as subsection headings.\n * This property defaults to `false`.\n */\n tiledBody?: boolean;\n\n /**\n * Specifies a `helpKey` string. This property displays\n * the <i class=\"fa fa-question-circle\" aria-hidden=\"true\"></i> button in the modal header.\n * When users click this button, the `helpOpened` event broadcasts the `helpKey` parameter.\n * Blackbaud developers can use the Help Widget, which is for internal Blackbaud use only, to\n * [display help content in a flyout panel](https://docs.blackbaud.com/bb-help-docs/components/modal-header).\n */\n helpKey?: string;\n\n /**\n * Specifies a CSS class to add to the modal, such as `ag-custom-component-popup` for\n * using a modal as part of a cell editor in Data Entry Grid.\n */\n wrapperClass?: string;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["observableZip"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { AfterViewInit, ElementRef, OnDestroy } from '@angular/core';
2
- import { SkyAppWindowRef, SkyCoreAdapterService, SkyDockService, SkyMediaQueryService } from '@skyux/core';
2
+ import { SkyAppWindowRef, SkyCoreAdapterService, SkyDockService, SkyResizeObserverMediaQueryService } from '@skyux/core';
3
3
  import { SkyModalComponentAdapterService } from './modal-component-adapter.service';
4
4
  import { SkyModalConfiguration } from './modal-configuration';
5
5
  import { SkyModalHostService } from './modal-host.service';
@@ -44,7 +44,7 @@ export declare class SkyModalComponent implements AfterViewInit, OnDestroy {
44
44
  modalHeaderId: string;
45
45
  scrollShadow: SkyModalScrollShadowEventArgs;
46
46
  private modalContentWrapperElement;
47
- constructor(hostService: SkyModalHostService, config: SkyModalConfiguration, elRef: ElementRef, windowRef: SkyAppWindowRef, componentAdapter: SkyModalComponentAdapterService, coreAdapter: SkyCoreAdapterService, dockService: SkyDockService, mediaQueryService?: SkyMediaQueryService);
47
+ constructor(hostService: SkyModalHostService, config: SkyModalConfiguration, elRef: ElementRef, windowRef: SkyAppWindowRef, componentAdapter: SkyModalComponentAdapterService, coreAdapter: SkyCoreAdapterService, dockService: SkyDockService, mediaQueryService?: SkyResizeObserverMediaQueryService);
48
48
  onDocumentKeyUp(event: KeyboardEvent): void;
49
49
  onDocumentKeyDown(event: KeyboardEvent): void;
50
50
  ngAfterViewInit(): void;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skyux/modals",
3
- "version": "5.8.0",
3
+ "version": "5.8.3",
4
4
  "author": "Blackbaud, Inc.",
5
5
  "keywords": [
6
6
  "blackbaud",
@@ -20,10 +20,10 @@
20
20
  "@angular/common": "^12.2.16",
21
21
  "@angular/core": "^12.2.16",
22
22
  "@angular/router": "^12.2.16",
23
- "@skyux/core": "5.8.0",
24
- "@skyux/i18n": "5.8.0",
25
- "@skyux/indicators": "5.8.0",
26
- "@skyux/theme": "5.8.0"
23
+ "@skyux/core": "5.8.3",
24
+ "@skyux/i18n": "5.8.3",
25
+ "@skyux/indicators": "5.8.3",
26
+ "@skyux/theme": "5.8.3"
27
27
  },
28
28
  "dependencies": {
29
29
  "tslib": "^2.3.1"