@skyux/modals 5.7.2 → 6.0.0-beta.2

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.
Files changed (119) hide show
  1. package/documentation.json +4 -4
  2. package/esm2020/index.mjs +26 -0
  3. package/esm2020/lib/modules/confirm/confirm-button-action.mjs +2 -0
  4. package/esm2020/lib/modules/confirm/confirm-button-config.mjs +2 -0
  5. package/esm2020/lib/modules/confirm/confirm-button.mjs +2 -0
  6. package/esm2020/lib/modules/confirm/confirm-closed-event-args.mjs +2 -0
  7. package/esm2020/lib/modules/confirm/confirm-config.mjs +2 -0
  8. package/esm2020/lib/modules/confirm/confirm-instance.mjs +12 -0
  9. package/esm2020/lib/modules/confirm/confirm-modal-context.mjs +4 -0
  10. package/esm2020/lib/modules/confirm/confirm-type.mjs +25 -0
  11. package/esm2020/lib/modules/confirm/confirm.component.mjs +123 -0
  12. package/esm2020/lib/modules/confirm/confirm.module.mjs +34 -0
  13. package/esm2020/lib/modules/confirm/confirm.service.mjs +55 -0
  14. package/esm2020/lib/modules/modal/modal-adapter.service.mjs +47 -0
  15. package/esm2020/lib/modules/modal/modal-before-close-handler.mjs +7 -0
  16. package/esm2020/lib/modules/modal/modal-close-args.mjs +3 -0
  17. package/esm2020/lib/modules/modal/modal-component-adapter.service.mjs +98 -0
  18. package/esm2020/lib/modules/modal/modal-configuration.mjs +19 -0
  19. package/esm2020/lib/modules/modal/modal-content.component.mjs +14 -0
  20. package/esm2020/lib/modules/modal/modal-footer.component.mjs +14 -0
  21. package/esm2020/lib/modules/modal/modal-header.component.mjs +15 -0
  22. package/esm2020/lib/modules/modal/modal-host.component.mjs +96 -0
  23. package/esm2020/lib/modules/modal/modal-host.service.mjs +55 -0
  24. package/esm2020/lib/modules/modal/modal-instance.mjs +105 -0
  25. package/esm2020/lib/modules/modal/modal-scroll-shadow-event-args.mjs +2 -0
  26. package/esm2020/lib/modules/modal/modal-scroll-shadow.directive.mjs +122 -0
  27. package/esm2020/lib/modules/modal/modal-state-animation.mjs +8 -0
  28. package/esm2020/lib/modules/modal/modal.component.mjs +178 -0
  29. package/esm2020/lib/modules/modal/modal.interface.mjs +4 -0
  30. package/esm2020/lib/modules/modal/modal.module.mjs +63 -0
  31. package/esm2020/lib/modules/modal/modal.service.mjs +85 -0
  32. package/esm2020/lib/modules/shared/sky-modals-resources.module.mjs +54 -0
  33. package/esm2020/skyux-modals.mjs +5 -0
  34. package/esm2020/testing/modal-fixture.mjs +168 -0
  35. package/esm2020/testing/public-api.mjs +2 -0
  36. package/esm2020/testing/skyux-modals-testing.mjs +5 -0
  37. package/fesm2015/{skyux-modals-testing.js → skyux-modals-testing.mjs} +1 -1
  38. package/fesm2015/skyux-modals-testing.mjs.map +1 -0
  39. package/fesm2015/skyux-modals.mjs +1159 -0
  40. package/fesm2015/skyux-modals.mjs.map +1 -0
  41. package/{esm2015/testing/modal-fixture.js → fesm2020/skyux-modals-testing.mjs} +8 -2
  42. package/fesm2020/skyux-modals-testing.mjs.map +1 -0
  43. package/{fesm2015/skyux-modals.js → fesm2020/skyux-modals.mjs} +58 -88
  44. package/fesm2020/skyux-modals.mjs.map +1 -0
  45. package/package.json +39 -15
  46. package/testing/package.json +5 -5
  47. package/bundles/skyux-modals-testing.umd.js +0 -538
  48. package/bundles/skyux-modals.umd.js +0 -1356
  49. package/esm2015/index.js +0 -26
  50. package/esm2015/index.js.map +0 -1
  51. package/esm2015/lib/modules/confirm/confirm-button-action.js +0 -2
  52. package/esm2015/lib/modules/confirm/confirm-button-action.js.map +0 -1
  53. package/esm2015/lib/modules/confirm/confirm-button-config.js +0 -2
  54. package/esm2015/lib/modules/confirm/confirm-button-config.js.map +0 -1
  55. package/esm2015/lib/modules/confirm/confirm-button.js +0 -2
  56. package/esm2015/lib/modules/confirm/confirm-button.js.map +0 -1
  57. package/esm2015/lib/modules/confirm/confirm-closed-event-args.js +0 -2
  58. package/esm2015/lib/modules/confirm/confirm-closed-event-args.js.map +0 -1
  59. package/esm2015/lib/modules/confirm/confirm-config.js +0 -2
  60. package/esm2015/lib/modules/confirm/confirm-config.js.map +0 -1
  61. package/esm2015/lib/modules/confirm/confirm-instance.js +0 -12
  62. package/esm2015/lib/modules/confirm/confirm-instance.js.map +0 -1
  63. package/esm2015/lib/modules/confirm/confirm-modal-context.js +0 -4
  64. package/esm2015/lib/modules/confirm/confirm-modal-context.js.map +0 -1
  65. package/esm2015/lib/modules/confirm/confirm-type.js +0 -25
  66. package/esm2015/lib/modules/confirm/confirm-type.js.map +0 -1
  67. package/esm2015/lib/modules/confirm/confirm.component.js +0 -127
  68. package/esm2015/lib/modules/confirm/confirm.component.js.map +0 -1
  69. package/esm2015/lib/modules/confirm/confirm.module.js +0 -35
  70. package/esm2015/lib/modules/confirm/confirm.module.js.map +0 -1
  71. package/esm2015/lib/modules/confirm/confirm.service.js +0 -55
  72. package/esm2015/lib/modules/confirm/confirm.service.js.map +0 -1
  73. package/esm2015/lib/modules/modal/modal-adapter.service.js +0 -47
  74. package/esm2015/lib/modules/modal/modal-adapter.service.js.map +0 -1
  75. package/esm2015/lib/modules/modal/modal-before-close-handler.js +0 -7
  76. package/esm2015/lib/modules/modal/modal-before-close-handler.js.map +0 -1
  77. package/esm2015/lib/modules/modal/modal-close-args.js +0 -3
  78. package/esm2015/lib/modules/modal/modal-close-args.js.map +0 -1
  79. package/esm2015/lib/modules/modal/modal-component-adapter.service.js +0 -98
  80. package/esm2015/lib/modules/modal/modal-component-adapter.service.js.map +0 -1
  81. package/esm2015/lib/modules/modal/modal-configuration.js +0 -19
  82. package/esm2015/lib/modules/modal/modal-configuration.js.map +0 -1
  83. package/esm2015/lib/modules/modal/modal-content.component.js +0 -19
  84. package/esm2015/lib/modules/modal/modal-content.component.js.map +0 -1
  85. package/esm2015/lib/modules/modal/modal-footer.component.js +0 -18
  86. package/esm2015/lib/modules/modal/modal-footer.component.js.map +0 -1
  87. package/esm2015/lib/modules/modal/modal-header.component.js +0 -19
  88. package/esm2015/lib/modules/modal/modal-header.component.js.map +0 -1
  89. package/esm2015/lib/modules/modal/modal-host.component.js +0 -101
  90. package/esm2015/lib/modules/modal/modal-host.component.js.map +0 -1
  91. package/esm2015/lib/modules/modal/modal-host.service.js +0 -55
  92. package/esm2015/lib/modules/modal/modal-host.service.js.map +0 -1
  93. package/esm2015/lib/modules/modal/modal-instance.js +0 -105
  94. package/esm2015/lib/modules/modal/modal-instance.js.map +0 -1
  95. package/esm2015/lib/modules/modal/modal-scroll-shadow-event-args.js +0 -2
  96. package/esm2015/lib/modules/modal/modal-scroll-shadow-event-args.js.map +0 -1
  97. package/esm2015/lib/modules/modal/modal-scroll-shadow.directive.js +0 -122
  98. package/esm2015/lib/modules/modal/modal-scroll-shadow.directive.js.map +0 -1
  99. package/esm2015/lib/modules/modal/modal-state-animation.js +0 -8
  100. package/esm2015/lib/modules/modal/modal-state-animation.js.map +0 -1
  101. package/esm2015/lib/modules/modal/modal.component.js +0 -184
  102. package/esm2015/lib/modules/modal/modal.component.js.map +0 -1
  103. package/esm2015/lib/modules/modal/modal.interface.js +0 -4
  104. package/esm2015/lib/modules/modal/modal.interface.js.map +0 -1
  105. package/esm2015/lib/modules/modal/modal.module.js +0 -64
  106. package/esm2015/lib/modules/modal/modal.module.js.map +0 -1
  107. package/esm2015/lib/modules/modal/modal.service.js +0 -85
  108. package/esm2015/lib/modules/modal/modal.service.js.map +0 -1
  109. package/esm2015/lib/modules/shared/sky-modals-resources.module.js +0 -54
  110. package/esm2015/lib/modules/shared/sky-modals-resources.module.js.map +0 -1
  111. package/esm2015/skyux-modals.js +0 -5
  112. package/esm2015/skyux-modals.js.map +0 -1
  113. package/esm2015/testing/modal-fixture.js.map +0 -1
  114. package/esm2015/testing/public-api.js +0 -2
  115. package/esm2015/testing/public-api.js.map +0 -1
  116. package/esm2015/testing/skyux-modals-testing.js +0 -5
  117. package/esm2015/testing/skyux-modals-testing.js.map +0 -1
  118. package/fesm2015/skyux-modals-testing.js.map +0 -1
  119. package/fesm2015/skyux-modals.js.map +0 -1
@@ -1,184 +0,0 @@
1
- import { Component, ElementRef, Host, HostBinding, HostListener, Input, ViewChild, } from '@angular/core';
2
- import { SkyAppWindowRef, SkyCoreAdapterService, SkyDockLocation, SkyDockService, } from '@skyux/core';
3
- import { SkyModalComponentAdapterService } from './modal-component-adapter.service';
4
- import { SkyModalConfiguration } from './modal-configuration';
5
- import { SkyModalHostService } from './modal-host.service';
6
- import { skyAnimationModalState } from './modal-state-animation';
7
- import * as i0 from "@angular/core";
8
- import * as i1 from "./modal-host.service";
9
- import * as i2 from "./modal-configuration";
10
- import * as i3 from "@skyux/core";
11
- import * as i4 from "./modal-component-adapter.service";
12
- import * as i5 from "@skyux/indicators";
13
- import * as i6 from "@angular/common";
14
- import * as i7 from "./modal-scroll-shadow.directive";
15
- import * as i8 from "@skyux/i18n";
16
- let skyModalUniqueIdentifier = 0;
17
- /**
18
- * Provides a common look-and-feel for modal content with options to display
19
- * a common modal header, specify body content, and display a common modal footer
20
- * and buttons. For information about how to test modals in SKY UX, see
21
- * [write unit tests for modals](https://developer.blackbaud.com/skyux/learn/get-started/advanced/unit-test-modals).
22
- */
23
- export class SkyModalComponent {
24
- constructor(hostService, config, elRef, windowRef, componentAdapter, coreAdapter, dockService) {
25
- this.hostService = hostService;
26
- this.config = config;
27
- this.elRef = elRef;
28
- this.windowRef = windowRef;
29
- this.componentAdapter = componentAdapter;
30
- this.coreAdapter = coreAdapter;
31
- this.dockService = dockService;
32
- this.modalState = 'in';
33
- this.modalContentId = 'sky-modal-content-id-' + skyModalUniqueIdentifier.toString();
34
- this.modalHeaderId = 'sky-modal-header-id-' + skyModalUniqueIdentifier.toString();
35
- }
36
- get wrapperClass() {
37
- return this.config.wrapperClass;
38
- }
39
- /**
40
- * @internal
41
- */
42
- get ariaRole() {
43
- return this.config.ariaRole || 'dialog';
44
- }
45
- set ariaRole(value) {
46
- this.config.ariaRole = value;
47
- }
48
- /**
49
- * @internal
50
- */
51
- set tiledBody(value) {
52
- this.config.tiledBody = value;
53
- }
54
- get modalZIndex() {
55
- return this.hostService.getModalZIndex();
56
- }
57
- get modalFullPage() {
58
- return this.config.fullPage;
59
- }
60
- get isSmallSize() {
61
- return !this.modalFullPage && this.isSizeEqual(this.config.size, 'small');
62
- }
63
- get isMediumSize() {
64
- return !this.modalFullPage && !(this.isSmallSize || this.isLargeSize);
65
- }
66
- get isLargeSize() {
67
- return !this.modalFullPage && this.isSizeEqual(this.config.size, 'large');
68
- }
69
- get isTiledBody() {
70
- return this.config.tiledBody;
71
- }
72
- get ariaDescribedBy() {
73
- return this.config.ariaDescribedBy || this.modalContentId;
74
- }
75
- get ariaLabelledBy() {
76
- return this.config.ariaLabelledBy || this.modalHeaderId;
77
- }
78
- get helpKey() {
79
- return this.config.helpKey;
80
- }
81
- onDocumentKeyUp(event) {
82
- /* istanbul ignore else */
83
- /* sanity check */
84
- if (SkyModalHostService.openModalCount > 0) {
85
- const topModal = SkyModalHostService.topModal;
86
- if (topModal && topModal === this.hostService) {
87
- if (event.which === 27) {
88
- // Escape key up
89
- event.preventDefault();
90
- this.closeButtonClick();
91
- }
92
- }
93
- }
94
- }
95
- onDocumentKeyDown(event) {
96
- /* istanbul ignore else */
97
- /* sanity check */
98
- if (SkyModalHostService.openModalCount > 0) {
99
- const topModal = SkyModalHostService.topModal;
100
- if (topModal && topModal === this.hostService) {
101
- if (event.which === 9) {
102
- // Tab pressed
103
- let focusChanged = false;
104
- const focusElementList = this.coreAdapter.getFocusableChildren(this.elRef.nativeElement);
105
- if (event.shiftKey &&
106
- (this.componentAdapter.isFocusInFirstItem(event, focusElementList) ||
107
- this.componentAdapter.isModalFocused(event, this.elRef))) {
108
- focusChanged =
109
- this.componentAdapter.focusLastElement(focusElementList);
110
- }
111
- else if (!event.shiftKey &&
112
- this.componentAdapter.isFocusInLastItem(event, focusElementList)) {
113
- focusChanged =
114
- this.componentAdapter.focusFirstElement(focusElementList);
115
- }
116
- if (focusChanged) {
117
- event.preventDefault();
118
- event.stopPropagation();
119
- }
120
- }
121
- }
122
- }
123
- }
124
- ngAfterViewInit() {
125
- skyModalUniqueIdentifier++;
126
- this.componentAdapter.handleWindowChange(this.elRef);
127
- // Adding a timeout to avoid ExpressionChangedAfterItHasBeenCheckedError.
128
- // https://stackoverflow.com/questions/40562845
129
- this.windowRef.nativeWindow.setTimeout(() => {
130
- this.componentAdapter.modalOpened(this.elRef);
131
- });
132
- this.dockService.setDockOptions({
133
- location: SkyDockLocation.ElementBottom,
134
- referenceEl: this.modalContentWrapperElement.nativeElement,
135
- zIndex: 5,
136
- });
137
- }
138
- helpButtonClick() {
139
- this.hostService.onOpenHelp(this.helpKey);
140
- }
141
- closeButtonClick() {
142
- this.hostService.onClose();
143
- }
144
- windowResize() {
145
- this.componentAdapter.handleWindowChange(this.elRef);
146
- }
147
- scrollShadowChange(args) {
148
- this.scrollShadow = args;
149
- }
150
- isSizeEqual(actualSize, size) {
151
- return actualSize && actualSize.toLowerCase() === size;
152
- }
153
- }
154
- 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 }], target: i0.ɵɵFactoryTarget.Component });
155
- 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: [SkyModalComponentAdapterService, SkyDockService], viewQueries: [{ propertyName: "modalContentWrapperElement", first: true, predicate: ["modalContentWrapper"], descendants: true, read: ElementRef }], ngImport: i0, template: "<!--\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", styles: [".sky-modal{border-top:1px solid #cdcfd2;border-bottom:1px solid #cdcfd2;border-left:1px solid #cdcfd2;border-right:1px solid #cdcfd2;position:fixed;width:auto;left:0;right:0;top:20px;margin:10px;display:flex;flex-direction:column;overflow:hidden}.sky-modal:focus{outline:none}@media (min-width: 768px){.sky-modal:not(.sky-modal-large){margin:0 auto}.sky-modal-small{width:300px}.sky-modal-small .sky-modal-content,.sky-modal-small .sky-modal-header,.sky-modal-small .sky-modal-footer{max-width:300px}.sky-modal-medium{width:600px}.sky-modal-medium .sky-modal-content,.sky-modal-medium .sky-modal-header,.sky-modal-medium .sky-modal-footer{max-width:600px}}@media (min-width: 920px){.sky-modal-large{margin:0 auto;width:900px}.sky-modal-large .sky-modal-content,.sky-modal-large .sky-modal-header,.sky-modal-large .sky-modal-footer{max-width:900px}}.sky-modal-content{background-color:#fff}.sky-modal-content:focus{outline-style:dotted;outline-width:thin;outline-offset:-1px}.sky-modal-tiled .sky-modal-content{background-color:#eeeeef}.sky-modal-tiled .sky-modal-content ::ng-deep .sky-tile-title{font-family:\"BLKB Sans\",\"Helvetica Neue\",Arial,sans-serif;color:#686c73;font-weight:300;font-size:19px}.sky-modal-header{padding:9px 3px 9px 15px;background-color:#fff;display:flex;align-items:baseline;border-bottom:1px solid #e2e3e4}.sky-modal-header-buttons{flex-shrink:.0001}.sky-modal-header-buttons .sky-btn{border:none;color:#cdcfd2;cursor:pointer}.sky-modal-header-buttons .sky-btn:hover{color:#979ba2;transition:color .15s}.sky-modal-header-content{flex-grow:1}.sky-modal-header{flex-shrink:0;z-index:2}.sky-modal-content{overflow-y:auto}.sky-modal-footer{flex-shrink:0;z-index:2}.sky-modal-footer ::ng-deep sky-tabset-nav-button+sky-tabset-nav-button{margin-left:10px}.sky-modal-footer ::ng-deep sky-tabset-nav-button+.sky-btn{margin-left:10px}.sky-modal-footer ::ng-deep .sky-btn+.sky-btn{margin-left:10px}.sky-modal-footer ::ng-deep .sky-btn+.sky-btn-link{margin-left:-2px}.sky-modal-full-page{width:100%;top:0;margin:0}.sky-modal-full-page .sky-modal-header-buttons sky-icon[icon=close]{font-size:20px}.sky-modal-full-page .sky-modal-content{flex-grow:1}:host ::ng-deep .sky-sectioned-form{min-height:460px;margin:-15px}.sky-modal-content>::ng-deep sky-dock{bottom:-15px;margin-left:-15px;margin-bottom:-15px;padding-top:15px;width:calc(100% + 30px)}:host-context(.sky-theme-modern) .sky-modal-header{border:none;padding:20px 30px}:host-context(.sky-theme-modern) .sky-modal-btn-help,:host-context(.sky-theme-modern) .sky-modal-btn-close{display:none}:host-context(.sky-theme-modern) .sky-modal-content{padding:0}:host-context(.sky-theme-modern) .sky-modal-full-page{width:calc(100% - (60px));margin:30px}:host-context(.sky-theme-modern) .sky-modal-content>::ng-deep sky-dock{bottom:0;margin-left:initial;margin-bottom:initial;padding-top:initial;width:100%}.sky-theme-modern .sky-modal-header{border:none;padding:20px 30px}.sky-theme-modern .sky-modal-btn-help,.sky-theme-modern .sky-modal-btn-close{display:none}.sky-theme-modern .sky-modal-content{padding:0}.sky-theme-modern .sky-modal-full-page{width:calc(100% - (60px));margin:30px}.sky-theme-modern .sky-modal-content>::ng-deep sky-dock{bottom:0;margin-left:initial;margin-bottom:initial;padding-top:initial;width:100%}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-modal{border-color:#121212}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-modal-header{color:#fbfcfe}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-modal-header,:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-modal-content{background-color:transparent}.sky-theme-modern.sky-theme-mode-dark .sky-modal{border-color:#121212}.sky-theme-modern.sky-theme-mode-dark .sky-modal-header{color:#fbfcfe}.sky-theme-modern.sky-theme-mode-dark .sky-modal-header,.sky-theme-modern.sky-theme-mode-dark .sky-modal-content{background-color:transparent}\n"], components: [{ type: i5.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }], directives: [{ type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i6.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.SkyModalScrollShadowDirective, selector: "[skyModalScrollShadow]", outputs: ["skyModalScrollShadow"] }], pipes: { "skyLibResources": i8.SkyLibResourcesPipe }, animations: [skyAnimationModalState] });
156
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyModalComponent, decorators: [{
157
- type: Component,
158
- args: [{
159
- selector: 'sky-modal',
160
- templateUrl: './modal.component.html',
161
- styleUrls: ['./modal.component.scss'],
162
- animations: [skyAnimationModalState],
163
- providers: [SkyModalComponentAdapterService, SkyDockService],
164
- }]
165
- }], 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: [{
166
- type: Host
167
- }] }]; }, propDecorators: { wrapperClass: [{
168
- type: HostBinding,
169
- args: ['class']
170
- }], ariaRole: [{
171
- type: Input
172
- }], tiledBody: [{
173
- type: Input
174
- }], modalContentWrapperElement: [{
175
- type: ViewChild,
176
- args: ['modalContentWrapper', { read: ElementRef }]
177
- }], onDocumentKeyUp: [{
178
- type: HostListener,
179
- args: ['document:keyup', ['$event']]
180
- }], onDocumentKeyDown: [{
181
- type: HostListener,
182
- args: ['document:keydown', ['$event']]
183
- }] } });
184
- //# sourceMappingURL=modal.component.js.map
@@ -1 +0,0 @@
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 ViewChild,\n} from '@angular/core';\nimport {\n SkyAppWindowRef,\n SkyCoreAdapterService,\n SkyDockLocation,\n SkyDockService,\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/get-started/advanced/unit-test-modals).\n */\n@Component({\n selector: 'sky-modal',\n templateUrl: './modal.component.html',\n styleUrls: ['./modal.component.scss'],\n animations: [skyAnimationModalState],\n providers: [SkyModalComponentAdapterService, SkyDockService],\n})\nexport class SkyModalComponent implements AfterViewInit {\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 ) {}\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\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,4 +0,0 @@
1
- // TODO: defaults won't show in the generated docs until this work is done:
2
- // https://github.com/blackbaud/skyux-docs-tools/issues/38
3
- export {};
4
- //# sourceMappingURL=modal.interface.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"modal.interface.js","sourceRoot":"","sources":["../../../../../../../../libs/components/modals/src/lib/modules/modal/modal.interface.ts"],"names":[],"mappings":"AAAA,2EAA2E;AAC3E,0DAA0D","sourcesContent":["// 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 dispays\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"]}
@@ -1,64 +0,0 @@
1
- import { CommonModule } from '@angular/common';
2
- import { NgModule } from '@angular/core';
3
- import { RouterModule } from '@angular/router';
4
- import { SkyIconModule } from '@skyux/indicators';
5
- import { SkyThemeModule } from '@skyux/theme';
6
- import { SkyModalsResourcesModule } from '../shared/sky-modals-resources.module';
7
- import { SkyModalContentComponent } from './modal-content.component';
8
- import { SkyModalFooterComponent } from './modal-footer.component';
9
- import { SkyModalHeaderComponent } from './modal-header.component';
10
- import { SkyModalHostComponent } from './modal-host.component';
11
- import { SkyModalScrollShadowDirective } from './modal-scroll-shadow.directive';
12
- import { SkyModalComponent } from './modal.component';
13
- import * as i0 from "@angular/core";
14
- export class SkyModalModule {
15
- }
16
- SkyModalModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyModalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
17
- SkyModalModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyModalModule, declarations: [SkyModalComponent,
18
- SkyModalContentComponent,
19
- SkyModalFooterComponent,
20
- SkyModalHeaderComponent,
21
- SkyModalHostComponent,
22
- SkyModalScrollShadowDirective], imports: [CommonModule,
23
- RouterModule,
24
- SkyIconModule,
25
- SkyModalsResourcesModule,
26
- SkyThemeModule], exports: [SkyModalComponent,
27
- SkyModalContentComponent,
28
- SkyModalFooterComponent,
29
- SkyModalHeaderComponent] });
30
- SkyModalModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyModalModule, imports: [[
31
- CommonModule,
32
- RouterModule,
33
- SkyIconModule,
34
- SkyModalsResourcesModule,
35
- SkyThemeModule,
36
- ]] });
37
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyModalModule, decorators: [{
38
- type: NgModule,
39
- args: [{
40
- declarations: [
41
- SkyModalComponent,
42
- SkyModalContentComponent,
43
- SkyModalFooterComponent,
44
- SkyModalHeaderComponent,
45
- SkyModalHostComponent,
46
- SkyModalScrollShadowDirective,
47
- ],
48
- imports: [
49
- CommonModule,
50
- RouterModule,
51
- SkyIconModule,
52
- SkyModalsResourcesModule,
53
- SkyThemeModule,
54
- ],
55
- exports: [
56
- SkyModalComponent,
57
- SkyModalContentComponent,
58
- SkyModalFooterComponent,
59
- SkyModalHeaderComponent,
60
- ],
61
- entryComponents: [SkyModalHostComponent],
62
- }]
63
- }] });
64
- //# sourceMappingURL=modal.module.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"modal.module.js","sourceRoot":"","sources":["../../../../../../../../libs/components/modals/src/lib/modules/modal/modal.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAE9C,OAAO,EAAE,wBAAwB,EAAE,MAAM,uCAAuC,CAAC;AAEjF,OAAO,EAAE,wBAAwB,EAAE,MAAM,2BAA2B,CAAC;AACrE,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,uBAAuB,EAAE,MAAM,0BAA0B,CAAC;AACnE,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,6BAA6B,EAAE,MAAM,iCAAiC,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;;AA0BtD,MAAM,OAAO,cAAc;;4GAAd,cAAc;6GAAd,cAAc,iBAtBvB,iBAAiB;QACjB,wBAAwB;QACxB,uBAAuB;QACvB,uBAAuB;QACvB,qBAAqB;QACrB,6BAA6B,aAG7B,YAAY;QACZ,YAAY;QACZ,aAAa;QACb,wBAAwB;QACxB,cAAc,aAGd,iBAAiB;QACjB,wBAAwB;QACxB,uBAAuB;QACvB,uBAAuB;6GAId,cAAc,YAfhB;YACP,YAAY;YACZ,YAAY;YACZ,aAAa;YACb,wBAAwB;YACxB,cAAc;SACf;4FASU,cAAc;kBAxB1B,QAAQ;mBAAC;oBACR,YAAY,EAAE;wBACZ,iBAAiB;wBACjB,wBAAwB;wBACxB,uBAAuB;wBACvB,uBAAuB;wBACvB,qBAAqB;wBACrB,6BAA6B;qBAC9B;oBACD,OAAO,EAAE;wBACP,YAAY;wBACZ,YAAY;wBACZ,aAAa;wBACb,wBAAwB;wBACxB,cAAc;qBACf;oBACD,OAAO,EAAE;wBACP,iBAAiB;wBACjB,wBAAwB;wBACxB,uBAAuB;wBACvB,uBAAuB;qBACxB;oBACD,eAAe,EAAE,CAAC,qBAAqB,CAAC;iBACzC","sourcesContent":["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"]}
@@ -1,85 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import { SkyDynamicComponentService } from '@skyux/core';
3
- import { SkyModalHostComponent } from './modal-host.component';
4
- import { SkyModalInstance } from './modal-instance';
5
- import * as i0 from "@angular/core";
6
- import * as i1 from "@skyux/core";
7
- /**
8
- * A service that lauches modals. For information about how to test modals in SKY UX, see
9
- * [write unit tests for modals](https://developer.blackbaud.com/skyux/learn/get-started/advanced/unit-test-modals).
10
- * @dynamic
11
- */
12
- export class SkyModalService {
13
- // TODO: In future breaking change - remove extra parameters as they are no longer used.
14
- /* tslint:disable:no-unused-variable */
15
- constructor(dynamicComponentService) {
16
- this.dynamicComponentService = dynamicComponentService;
17
- }
18
- /**
19
- * @private
20
- * Removes the modal host from the DOM.
21
- */
22
- dispose() {
23
- if (SkyModalService.host) {
24
- this.dynamicComponentService.removeComponent(SkyModalService.host);
25
- SkyModalService.host = undefined;
26
- }
27
- }
28
- /**
29
- * Opens a modal using the specified component.
30
- * @param component Determines the component to render.
31
- * @param {SkyModalConfigurationInterface} config Populates the modal based on the `SkyModalConfigurationInterface` object.
32
- */
33
- open(component, config) {
34
- const modalInstance = new SkyModalInstance();
35
- this.createHostComponent();
36
- const params = this.getConfigFromParameter(config);
37
- params.providers.push({
38
- provide: SkyModalInstance,
39
- useValue: modalInstance,
40
- });
41
- SkyModalService.host.instance.open(modalInstance, component, params);
42
- return modalInstance;
43
- }
44
- getConfigFromParameter(providersOrConfig) {
45
- const defaultParams = {
46
- providers: [],
47
- fullPage: false,
48
- size: 'medium',
49
- tiledBody: false,
50
- };
51
- let params = undefined;
52
- let method = undefined;
53
- // Object Literal Lookup for backwards compatability.
54
- method = {
55
- 'providers?': Object.assign({}, defaultParams, {
56
- providers: providersOrConfig,
57
- }),
58
- config: Object.assign({}, defaultParams, providersOrConfig),
59
- };
60
- if (Array.isArray(providersOrConfig) === true) {
61
- params = method['providers?'];
62
- }
63
- else {
64
- params = method['config'];
65
- }
66
- return params;
67
- }
68
- createHostComponent() {
69
- if (!SkyModalService.host) {
70
- SkyModalService.host = this.dynamicComponentService.createComponent(SkyModalHostComponent);
71
- }
72
- }
73
- }
74
- SkyModalService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyModalService, deps: [{ token: i1.SkyDynamicComponentService }], target: i0.ɵɵFactoryTarget.Injectable });
75
- SkyModalService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyModalService, providedIn: 'any' });
76
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyModalService, decorators: [{
77
- type: Injectable,
78
- args: [{
79
- // Must be 'any' so that the modal component is created in the context of its module's injector.
80
- // If set to 'root', the component's dependency injections would only be derived from the root
81
- // injector and may loose context if the modal was opened from within a lazy-loaded module.
82
- providedIn: 'any',
83
- }]
84
- }], ctorParameters: function () { return [{ type: i1.SkyDynamicComponentService }]; } });
85
- //# sourceMappingURL=modal.service.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"modal.service.js","sourceRoot":"","sources":["../../../../../../../../libs/components/modals/src/lib/modules/modal/modal.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,UAAU,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AAEzD,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;;;AAGpD;;;;GAIG;AAOH,MAAM,OAAO,eAAe;IAG1B,wFAAwF;IACxF,uCAAuC;IACvC,YAAoB,uBAAoD;QAApD,4BAAuB,GAAvB,uBAAuB,CAA6B;IAAG,CAAC;IAE5E;;;OAGG;IACI,OAAO;QACZ,IAAI,eAAe,CAAC,IAAI,EAAE;YACxB,IAAI,CAAC,uBAAuB,CAAC,eAAe,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;YACnE,eAAe,CAAC,IAAI,GAAG,SAAS,CAAC;SAClC;IACH,CAAC;IAED;;;;OAIG;IACI,IAAI,CACT,SAAc,EACd,MAA+C;QAE/C,MAAM,aAAa,GAAG,IAAI,gBAAgB,EAAE,CAAC;QAC7C,IAAI,CAAC,mBAAmB,EAAE,CAAC;QAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,sBAAsB,CAAC,MAAM,CAAC,CAAC;QAEnD,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC;YACpB,OAAO,EAAE,gBAAgB;YACzB,QAAQ,EAAE,aAAa;SACxB,CAAC,CAAC;QAEH,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,aAAa,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;QAErE,OAAO,aAAa,CAAC;IACvB,CAAC;IAEO,sBAAsB,CAC5B,iBAAsB;QAEtB,MAAM,aAAa,GAAmC;YACpD,SAAS,EAAE,EAAE;YACb,QAAQ,EAAE,KAAK;YACf,IAAI,EAAE,QAAQ;YACd,SAAS,EAAE,KAAK;SACjB,CAAC;QACF,IAAI,MAAM,GAAmC,SAAS,CAAC;QACvD,IAAI,MAAM,GAAQ,SAAS,CAAC;QAE5B,qDAAqD;QACrD,MAAM,GAAG;YACP,YAAY,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,aAAa,EAAE;gBAC7C,SAAS,EAAE,iBAAiB;aAC7B,CAAC;YACF,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,aAAa,EAAE,iBAAiB,CAAC;SAC5D,CAAC;QAEF,IAAI,KAAK,CAAC,OAAO,CAAC,iBAAiB,CAAC,KAAK,IAAI,EAAE;YAC7C,MAAM,GAAG,MAAM,CAAC,YAAY,CAAC,CAAC;SAC/B;aAAM;YACL,MAAM,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;SAC3B;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,mBAAmB;QACzB,IAAI,CAAC,eAAe,CAAC,IAAI,EAAE;YACzB,eAAe,CAAC,IAAI,GAAG,IAAI,CAAC,uBAAuB,CAAC,eAAe,CACjE,qBAAqB,CACtB,CAAC;SACH;IACH,CAAC;;6GA5EU,eAAe;iHAAf,eAAe,cAFd,KAAK;4FAEN,eAAe;kBAN3B,UAAU;mBAAC;oBACV,gGAAgG;oBAChG,8FAA8F;oBAC9F,2FAA2F;oBAC3F,UAAU,EAAE,KAAK;iBAClB","sourcesContent":["import { ComponentRef, Injectable } from '@angular/core';\nimport { SkyDynamicComponentService } from '@skyux/core';\n\nimport { SkyModalHostComponent } from './modal-host.component';\nimport { SkyModalInstance } from './modal-instance';\nimport { SkyModalConfigurationInterface } from './modal.interface';\n\n/**\n * A service that lauches modals. For information about how to test modals in SKY UX, see\n * [write unit tests for modals](https://developer.blackbaud.com/skyux/learn/get-started/advanced/unit-test-modals).\n * @dynamic\n */\n@Injectable({\n // Must be 'any' so that the modal component is created in the context of its module's injector.\n // If set to 'root', the component's dependency injections would only be derived from the root\n // injector and may loose context if the modal was opened from within a lazy-loaded module.\n providedIn: 'any',\n})\nexport class SkyModalService {\n private static host: ComponentRef<SkyModalHostComponent>;\n\n // TODO: In future breaking change - remove extra parameters as they are no longer used.\n /* tslint:disable:no-unused-variable */\n constructor(private dynamicComponentService?: SkyDynamicComponentService) {}\n\n /**\n * @private\n * Removes the modal host from the DOM.\n */\n public dispose(): void {\n if (SkyModalService.host) {\n this.dynamicComponentService.removeComponent(SkyModalService.host);\n SkyModalService.host = undefined;\n }\n }\n\n /**\n * Opens a modal using the specified component.\n * @param component Determines the component to render.\n * @param {SkyModalConfigurationInterface} config Populates the modal based on the `SkyModalConfigurationInterface` object.\n */\n public open(\n component: any,\n config?: SkyModalConfigurationInterface | any[]\n ): SkyModalInstance {\n const modalInstance = new SkyModalInstance();\n this.createHostComponent();\n const params = this.getConfigFromParameter(config);\n\n params.providers.push({\n provide: SkyModalInstance,\n useValue: modalInstance,\n });\n\n SkyModalService.host.instance.open(modalInstance, component, params);\n\n return modalInstance;\n }\n\n private getConfigFromParameter(\n providersOrConfig: any\n ): SkyModalConfigurationInterface {\n const defaultParams: SkyModalConfigurationInterface = {\n providers: [],\n fullPage: false,\n size: 'medium',\n tiledBody: false,\n };\n let params: SkyModalConfigurationInterface = undefined;\n let method: any = undefined;\n\n // Object Literal Lookup for backwards compatability.\n method = {\n 'providers?': Object.assign({}, defaultParams, {\n providers: providersOrConfig,\n }),\n config: Object.assign({}, defaultParams, providersOrConfig),\n };\n\n if (Array.isArray(providersOrConfig) === true) {\n params = method['providers?'];\n } else {\n params = method['config'];\n }\n\n return params;\n }\n\n private createHostComponent(): void {\n if (!SkyModalService.host) {\n SkyModalService.host = this.dynamicComponentService.createComponent(\n SkyModalHostComponent\n );\n }\n }\n}\n"]}
@@ -1,54 +0,0 @@
1
- /**
2
- * NOTICE: DO NOT MODIFY THIS FILE!
3
- * The contents of this file were automatically generated by
4
- * the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-modals' schematic.
5
- * To update this file, simply rerun the command.
6
- */
7
- import { NgModule } from '@angular/core';
8
- import { SKY_LIB_RESOURCES_PROVIDERS, SkyI18nModule, getLibStringForLocale, } from '@skyux/i18n';
9
- import * as i0 from "@angular/core";
10
- const RESOURCES = {
11
- 'EN-US': {
12
- skyux_confirm_dialog_default_ok_text: { message: 'OK' },
13
- skyux_confirm_dialog_default_yes_text: { message: 'Yes' },
14
- skyux_confirm_dialog_default_no_text: { message: 'No' },
15
- skyux_confirm_dialog_default_cancel_text: { message: 'Cancel' },
16
- skyux_modal_close: { message: 'Close modal' },
17
- skyux_modal_open_help: { message: 'Open Help' },
18
- skyux_modal_footer_cancel_button: { message: 'Cancel' },
19
- skyux_modal_footer_primary_button: { message: 'Save' },
20
- },
21
- };
22
- export class SkyModalsResourcesProvider {
23
- getString(localeInfo, name) {
24
- return getLibStringForLocale(RESOURCES, localeInfo.locale, name);
25
- }
26
- }
27
- /**
28
- * Import into any component library module that needs to use resource strings.
29
- */
30
- export class SkyModalsResourcesModule {
31
- }
32
- SkyModalsResourcesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyModalsResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
33
- SkyModalsResourcesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyModalsResourcesModule, exports: [SkyI18nModule] });
34
- SkyModalsResourcesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyModalsResourcesModule, providers: [
35
- {
36
- provide: SKY_LIB_RESOURCES_PROVIDERS,
37
- useClass: SkyModalsResourcesProvider,
38
- multi: true,
39
- },
40
- ], imports: [SkyI18nModule] });
41
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: SkyModalsResourcesModule, decorators: [{
42
- type: NgModule,
43
- args: [{
44
- exports: [SkyI18nModule],
45
- providers: [
46
- {
47
- provide: SKY_LIB_RESOURCES_PROVIDERS,
48
- useClass: SkyModalsResourcesProvider,
49
- multi: true,
50
- },
51
- ],
52
- }]
53
- }] });
54
- //# sourceMappingURL=sky-modals-resources.module.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"sky-modals-resources.module.js","sourceRoot":"","sources":["../../../../../../../../libs/components/modals/src/lib/modules/shared/sky-modals-resources.module.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EACL,2BAA2B,EAE3B,aAAa,EAGb,qBAAqB,GACtB,MAAM,aAAa,CAAC;;AAErB,MAAM,SAAS,GAA0C;IACvD,OAAO,EAAE;QACP,oCAAoC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;QACvD,qCAAqC,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE;QACzD,oCAAoC,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE;QACvD,wCAAwC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE;QAC/D,iBAAiB,EAAE,EAAE,OAAO,EAAE,aAAa,EAAE;QAC7C,qBAAqB,EAAE,EAAE,OAAO,EAAE,WAAW,EAAE;QAC/C,gCAAgC,EAAE,EAAE,OAAO,EAAE,QAAQ,EAAE;QACvD,iCAAiC,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE;KACvD;CACF,CAAC;AAEF,MAAM,OAAO,0BAA0B;IAC9B,SAAS,CACd,UAA4B,EAC5B,IAAY;QAEZ,OAAO,qBAAqB,CAAC,SAAS,EAAE,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACnE,CAAC;CACF;AAED;;GAEG;AAWH,MAAM,OAAO,wBAAwB;;sHAAxB,wBAAwB;uHAAxB,wBAAwB,YATzB,aAAa;uHASZ,wBAAwB,aARxB;QACT;YACE,OAAO,EAAE,2BAA2B;YACpC,QAAQ,EAAE,0BAA0B;YACpC,KAAK,EAAE,IAAI;SACZ;KACF,YAPS,aAAa;4FASZ,wBAAwB;kBAVpC,QAAQ;mBAAC;oBACR,OAAO,EAAE,CAAC,aAAa,CAAC;oBACxB,SAAS,EAAE;wBACT;4BACE,OAAO,EAAE,2BAA2B;4BACpC,QAAQ,EAAE,0BAA0B;4BACpC,KAAK,EAAE,IAAI;yBACZ;qBACF;iBACF","sourcesContent":["/**\n * NOTICE: DO NOT MODIFY THIS FILE!\n * The contents of this file were automatically generated by\n * the 'ng generate @skyux/i18n:lib-resources-module 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"]}
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './index';
5
- //# sourceMappingURL=skyux-modals.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"skyux-modals.js","sourceRoot":"","sources":["../../../../../libs/components/modals/src/skyux-modals.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,SAAS,CAAC","sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"modal-fixture.js","sourceRoot":"","sources":["../../../../../../libs/components/modals/testing/src/modal-fixture.ts"],"names":[],"mappings":"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","sourcesContent":["import { ComponentFixture } from '@angular/core/testing';\n\n/**\n * Allows interaction with a SKY UX modal component.\n */\nexport class SkyModalFixture {\n private modalElement: HTMLElement;\n\n constructor(private fixture: ComponentFixture<any>, skyTestId: string) {\n this.modalElement = document.querySelector(\n 'sky-modal[data-sky-id=\"' + skyTestId + '\"]'\n );\n\n if (!this.modalElement) {\n throw new Error(\n `No element was found with a \\`data-sky-id\\` value of \"${skyTestId}\".`\n );\n }\n }\n\n /**\n * The modal component's ARIA describedby attribute.\n */\n public get ariaDescribedBy(): string {\n const modalDialogElement = this.getModalDiaglogElement();\n if (modalDialogElement) {\n return modalDialogElement.getAttribute('aria-describedby') || undefined;\n } else {\n throw new Error(`No modal exists.`);\n }\n }\n\n /**\n * The modal component's ARIA labelledby attribute.\n */\n public get ariaLabelledBy(): string {\n const modalDialogElement = this.getModalDiaglogElement();\n if (modalDialogElement) {\n return modalDialogElement.getAttribute('aria-labelledby') || undefined;\n } else {\n throw new Error(`No modal exists.`);\n }\n }\n\n /**\n * The modal component's role attribute.\n */\n public get ariaRole(): string {\n const modalDialogElement = this.getModalDiaglogElement();\n if (modalDialogElement) {\n return modalDialogElement.getAttribute('role') || undefined;\n } else {\n throw new Error(`No modal exists.`);\n }\n }\n\n /**\n * Whether or not the modal is a full page modal.\n */\n public get fullPage(): boolean {\n const modalDivElement = this.getModalDiv();\n if (modalDivElement) {\n return modalDivElement.classList.contains('sky-modal-full-page');\n } else {\n throw new Error(`No modal exists.`);\n }\n }\n\n /**\n * The size of the modal.\n */\n public get size(): string {\n const modalDivElement = this.getModalDiv();\n\n if (modalDivElement) {\n const possibleSizes = ['small', 'medium', 'large'];\n\n for (let size of possibleSizes) {\n if (modalDivElement.classList.contains('sky-modal-' + size)) {\n return size;\n }\n }\n } else {\n throw new Error(`No modal exists.`);\n }\n }\n\n /**\n * Whether or not the modal is set up for tiled content.\n */\n public get tiledBody(): boolean {\n const modalDivElement = this.getModalDiv();\n if (modalDivElement) {\n return modalDivElement.classList.contains('sky-modal-tiled');\n } else {\n throw new Error(`No modal exists.`);\n }\n }\n\n /**\n * Clicks the modal header's \"close\" button.\n */\n public clickHeaderCloseButton(): void {\n const closeButton: HTMLElement = this.modalElement.querySelector(\n '.sky-modal .sky-modal-btn-close'\n );\n\n if (closeButton) {\n closeButton.click();\n this.fixture.detectChanges();\n } else {\n throw new Error(`No header close button exists.`);\n }\n }\n\n /**\n * Clicks the modal header's \"help\" button.\n */\n public clickHelpButton(): void {\n const helpButton: HTMLElement = this.modalElement.querySelector(\n '.sky-modal .sky-modal-header-buttons button[name=\"help-button\"]'\n );\n\n if (helpButton) {\n helpButton.click();\n this.fixture.detectChanges();\n } else {\n throw new Error(`No help button exists.`);\n }\n }\n\n /**\n * Returns the main modal element.\n */\n public getModalDiv(): any {\n if (this.modalElement) {\n return this.modalElement.querySelector('.sky-modal');\n } else {\n throw new Error(`No modal exists.`);\n }\n }\n\n /**\n * Returns the modal's content element.\n */\n public getModalContentEl(): any {\n if (this.modalElement) {\n return this.modalElement.querySelector('.sky-modal-content');\n } else {\n throw new Error(`No modal exists.`);\n }\n }\n\n /**\n * Returns the modal's footer element.\n */\n public getModalFooterEl(): any {\n if (this.modalElement) {\n return this.modalElement.querySelector('.sky-modal-footer');\n } else {\n throw new Error(`No modal exists.`);\n }\n }\n\n /**\n * Returns the modal's header element.\n */\n public getModalHeaderEl(): any {\n if (this.modalElement) {\n return this.modalElement.querySelector('.sky-modal-header');\n } else {\n throw new Error(`No modal exists.`);\n }\n }\n\n private getModalDiaglogElement(): HTMLElement {\n if (this.modalElement) {\n return this.modalElement.querySelector('.sky-modal-dialog');\n } else {\n throw new Error(`No modal exists.`);\n }\n }\n}\n"]}
@@ -1,2 +0,0 @@
1
- export * from './modal-fixture';
2
- //# sourceMappingURL=public-api.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"public-api.js","sourceRoot":"","sources":["../../../../../../libs/components/modals/testing/src/public-api.ts"],"names":[],"mappings":"AAAA,cAAc,iBAAiB,CAAC","sourcesContent":["export * from './modal-fixture';\n"]}
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public-api';
5
- //# sourceMappingURL=skyux-modals-testing.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"skyux-modals-testing.js","sourceRoot":"","sources":["../../../../../../libs/components/modals/testing/src/skyux-modals-testing.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,cAAc,CAAC","sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"]}
@@ -1 +0,0 @@
1
- {"version":3,"file":"skyux-modals-testing.js","sources":["../../../../../libs/components/modals/testing/src/modal-fixture.ts","../../../../../libs/components/modals/testing/src/skyux-modals-testing.ts"],"sourcesContent":["import { ComponentFixture } from '@angular/core/testing';\n\n/**\n * Allows interaction with a SKY UX modal component.\n */\nexport class SkyModalFixture {\n private modalElement: HTMLElement;\n\n constructor(private fixture: ComponentFixture<any>, skyTestId: string) {\n this.modalElement = document.querySelector(\n 'sky-modal[data-sky-id=\"' + skyTestId + '\"]'\n );\n\n if (!this.modalElement) {\n throw new Error(\n `No element was found with a \\`data-sky-id\\` value of \"${skyTestId}\".`\n );\n }\n }\n\n /**\n * The modal component's ARIA describedby attribute.\n */\n public get ariaDescribedBy(): string {\n const modalDialogElement = this.getModalDiaglogElement();\n if (modalDialogElement) {\n return modalDialogElement.getAttribute('aria-describedby') || undefined;\n } else {\n throw new Error(`No modal exists.`);\n }\n }\n\n /**\n * The modal component's ARIA labelledby attribute.\n */\n public get ariaLabelledBy(): string {\n const modalDialogElement = this.getModalDiaglogElement();\n if (modalDialogElement) {\n return modalDialogElement.getAttribute('aria-labelledby') || undefined;\n } else {\n throw new Error(`No modal exists.`);\n }\n }\n\n /**\n * The modal component's role attribute.\n */\n public get ariaRole(): string {\n const modalDialogElement = this.getModalDiaglogElement();\n if (modalDialogElement) {\n return modalDialogElement.getAttribute('role') || undefined;\n } else {\n throw new Error(`No modal exists.`);\n }\n }\n\n /**\n * Whether or not the modal is a full page modal.\n */\n public get fullPage(): boolean {\n const modalDivElement = this.getModalDiv();\n if (modalDivElement) {\n return modalDivElement.classList.contains('sky-modal-full-page');\n } else {\n throw new Error(`No modal exists.`);\n }\n }\n\n /**\n * The size of the modal.\n */\n public get size(): string {\n const modalDivElement = this.getModalDiv();\n\n if (modalDivElement) {\n const possibleSizes = ['small', 'medium', 'large'];\n\n for (let size of possibleSizes) {\n if (modalDivElement.classList.contains('sky-modal-' + size)) {\n return size;\n }\n }\n } else {\n throw new Error(`No modal exists.`);\n }\n }\n\n /**\n * Whether or not the modal is set up for tiled content.\n */\n public get tiledBody(): boolean {\n const modalDivElement = this.getModalDiv();\n if (modalDivElement) {\n return modalDivElement.classList.contains('sky-modal-tiled');\n } else {\n throw new Error(`No modal exists.`);\n }\n }\n\n /**\n * Clicks the modal header's \"close\" button.\n */\n public clickHeaderCloseButton(): void {\n const closeButton: HTMLElement = this.modalElement.querySelector(\n '.sky-modal .sky-modal-btn-close'\n );\n\n if (closeButton) {\n closeButton.click();\n this.fixture.detectChanges();\n } else {\n throw new Error(`No header close button exists.`);\n }\n }\n\n /**\n * Clicks the modal header's \"help\" button.\n */\n public clickHelpButton(): void {\n const helpButton: HTMLElement = this.modalElement.querySelector(\n '.sky-modal .sky-modal-header-buttons button[name=\"help-button\"]'\n );\n\n if (helpButton) {\n helpButton.click();\n this.fixture.detectChanges();\n } else {\n throw new Error(`No help button exists.`);\n }\n }\n\n /**\n * Returns the main modal element.\n */\n public getModalDiv(): any {\n if (this.modalElement) {\n return this.modalElement.querySelector('.sky-modal');\n } else {\n throw new Error(`No modal exists.`);\n }\n }\n\n /**\n * Returns the modal's content element.\n */\n public getModalContentEl(): any {\n if (this.modalElement) {\n return this.modalElement.querySelector('.sky-modal-content');\n } else {\n throw new Error(`No modal exists.`);\n }\n }\n\n /**\n * Returns the modal's footer element.\n */\n public getModalFooterEl(): any {\n if (this.modalElement) {\n return this.modalElement.querySelector('.sky-modal-footer');\n } else {\n throw new Error(`No modal exists.`);\n }\n }\n\n /**\n * Returns the modal's header element.\n */\n public getModalHeaderEl(): any {\n if (this.modalElement) {\n return this.modalElement.querySelector('.sky-modal-header');\n } else {\n throw new Error(`No modal exists.`);\n }\n }\n\n private getModalDiaglogElement(): HTMLElement {\n if (this.modalElement) {\n return this.modalElement.querySelector('.sky-modal-dialog');\n } else {\n throw new Error(`No modal exists.`);\n }\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}