@skyux/modals 8.7.2 → 9.0.0-alpha.1

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 (75) hide show
  1. package/documentation.json +56 -56
  2. package/esm2022/lib/modules/confirm/confirm.component.mjs +112 -0
  3. package/{esm2020 → esm2022}/lib/modules/confirm/confirm.module.mjs +13 -13
  4. package/esm2022/lib/modules/confirm/confirm.service.mjs +54 -0
  5. package/esm2022/lib/modules/modal/modal-adapter.service.mjs +99 -0
  6. package/esm2022/lib/modules/modal/modal-component-adapter.service.mjs +101 -0
  7. package/{esm2020 → esm2022}/lib/modules/modal/modal-configuration.mjs +4 -4
  8. package/{esm2020 → esm2022}/lib/modules/modal/modal-content.component.mjs +4 -4
  9. package/esm2022/lib/modules/modal/modal-errors.service.mjs +21 -0
  10. package/{esm2020 → esm2022}/lib/modules/modal/modal-footer.component.mjs +4 -4
  11. package/{esm2020 → esm2022}/lib/modules/modal/modal-header.component.mjs +4 -4
  12. package/{esm2020 → esm2022}/lib/modules/modal/modal-host-context.mjs +4 -4
  13. package/esm2022/lib/modules/modal/modal-host.component.mjs +163 -0
  14. package/esm2022/lib/modules/modal/modal-host.service.mjs +62 -0
  15. package/esm2022/lib/modules/modal/modal-instance.mjs +123 -0
  16. package/esm2022/lib/modules/modal/modal-is-dirty.directive.mjs +94 -0
  17. package/esm2022/lib/modules/modal/modal-scroll-shadow.directive.mjs +129 -0
  18. package/esm2022/lib/modules/modal/modal.component.mjs +229 -0
  19. package/{esm2020 → esm2022}/lib/modules/modal/modal.module.mjs +29 -29
  20. package/esm2022/lib/modules/modal/modal.service.mjs +97 -0
  21. package/esm2022/lib/modules/shared/sky-modals-resources.module.mjs +61 -0
  22. package/esm2022/testing/confirm/confirm-button-harness.mjs +46 -0
  23. package/esm2022/testing/confirm/confirm-harness.mjs +90 -0
  24. package/esm2022/testing/modal/modal-harness.mjs +75 -0
  25. package/esm2022/testing/modal-fixture.mjs +143 -0
  26. package/{fesm2020 → fesm2022}/skyux-modals-testing.mjs +60 -73
  27. package/{fesm2020 → fesm2022}/skyux-modals-testing.mjs.map +1 -1
  28. package/fesm2022/skyux-modals.mjs +1502 -0
  29. package/{fesm2015 → fesm2022}/skyux-modals.mjs.map +1 -1
  30. package/lib/modules/modal/modal-is-dirty.directive.d.ts +1 -1
  31. package/lib/modules/modal/modal.component.d.ts +1 -1
  32. package/package.json +16 -24
  33. package/esm2020/lib/modules/confirm/confirm.component.mjs +0 -114
  34. package/esm2020/lib/modules/confirm/confirm.service.mjs +0 -57
  35. package/esm2020/lib/modules/modal/modal-adapter.service.mjs +0 -101
  36. package/esm2020/lib/modules/modal/modal-component-adapter.service.mjs +0 -104
  37. package/esm2020/lib/modules/modal/modal-errors.service.mjs +0 -24
  38. package/esm2020/lib/modules/modal/modal-host.component.mjs +0 -164
  39. package/esm2020/lib/modules/modal/modal-host.service.mjs +0 -65
  40. package/esm2020/lib/modules/modal/modal-instance.mjs +0 -127
  41. package/esm2020/lib/modules/modal/modal-is-dirty.directive.mjs +0 -93
  42. package/esm2020/lib/modules/modal/modal-scroll-shadow.directive.mjs +0 -127
  43. package/esm2020/lib/modules/modal/modal.component.mjs +0 -228
  44. package/esm2020/lib/modules/modal/modal.service.mjs +0 -99
  45. package/esm2020/lib/modules/shared/sky-modals-resources.module.mjs +0 -61
  46. package/esm2020/testing/confirm/confirm-button-harness.mjs +0 -46
  47. package/esm2020/testing/confirm/confirm-harness.mjs +0 -97
  48. package/esm2020/testing/modal/modal-harness.mjs +0 -81
  49. package/esm2020/testing/modal-fixture.mjs +0 -145
  50. package/fesm2015/skyux-modals-testing.mjs +0 -409
  51. package/fesm2015/skyux-modals-testing.mjs.map +0 -1
  52. package/fesm2015/skyux-modals.mjs +0 -1522
  53. package/fesm2020/skyux-modals.mjs +0 -1510
  54. package/fesm2020/skyux-modals.mjs.map +0 -1
  55. /package/{esm2020 → esm2022}/index.mjs +0 -0
  56. /package/{esm2020 → esm2022}/lib/modules/confirm/confirm-button-action.mjs +0 -0
  57. /package/{esm2020 → esm2022}/lib/modules/confirm/confirm-button-config.mjs +0 -0
  58. /package/{esm2020 → esm2022}/lib/modules/confirm/confirm-button-style-type.mjs +0 -0
  59. /package/{esm2020 → esm2022}/lib/modules/confirm/confirm-button.mjs +0 -0
  60. /package/{esm2020 → esm2022}/lib/modules/confirm/confirm-closed-event-args.mjs +0 -0
  61. /package/{esm2020 → esm2022}/lib/modules/confirm/confirm-config-token.mjs +0 -0
  62. /package/{esm2020 → esm2022}/lib/modules/confirm/confirm-config.mjs +0 -0
  63. /package/{esm2020 → esm2022}/lib/modules/confirm/confirm-instance.mjs +0 -0
  64. /package/{esm2020 → esm2022}/lib/modules/confirm/confirm-type.mjs +0 -0
  65. /package/{esm2020 → esm2022}/lib/modules/modal/modal-before-close-handler.mjs +0 -0
  66. /package/{esm2020 → esm2022}/lib/modules/modal/modal-close-args.mjs +0 -0
  67. /package/{esm2020 → esm2022}/lib/modules/modal/modal-error.mjs +0 -0
  68. /package/{esm2020 → esm2022}/lib/modules/modal/modal-host-context-args.mjs +0 -0
  69. /package/{esm2020 → esm2022}/lib/modules/modal/modal-scroll-shadow-event-args.mjs +0 -0
  70. /package/{esm2020 → esm2022}/lib/modules/modal/modal.interface.mjs +0 -0
  71. /package/{esm2020 → esm2022}/skyux-modals.mjs +0 -0
  72. /package/{esm2020 → esm2022}/testing/confirm/confirm-button-harness-filters.mjs +0 -0
  73. /package/{esm2020 → esm2022}/testing/modal/modal-harness-filters.mjs +0 -0
  74. /package/{esm2020 → esm2022}/testing/public-api.mjs +0 -0
  75. /package/{esm2020 → esm2022}/testing/skyux-modals-testing.mjs +0 -0
@@ -0,0 +1,229 @@
1
+ import { ChangeDetectorRef, Component, ElementRef, Host, HostBinding, HostListener, Input, Optional, ViewChild, inject, } from '@angular/core';
2
+ import { SkyDockLocation, SkyDockService, SkyLiveAnnouncerService, } from '@skyux/core';
3
+ import { Subject } from 'rxjs';
4
+ import { takeUntil } from 'rxjs/operators';
5
+ import { SkyModalComponentAdapterService } from './modal-component-adapter.service';
6
+ import { SkyModalErrorsService } from './modal-errors.service';
7
+ import { SkyModalHostService } from './modal-host.service';
8
+ import * as i0 from "@angular/core";
9
+ import * as i1 from "./modal-host.service";
10
+ import * as i2 from "./modal-configuration";
11
+ import * as i3 from "@skyux/core";
12
+ import * as i4 from "./modal-component-adapter.service";
13
+ import * as i5 from "@angular/common";
14
+ import * as i6 from "@skyux/indicators";
15
+ import * as i7 from "./modal-scroll-shadow.directive";
16
+ import * as i8 from "@skyux/i18n";
17
+ const ARIA_ROLE_DEFAULT = 'dialog';
18
+ /**
19
+ * Provides a common look-and-feel for modal content with options to display
20
+ * a common modal header, specify body content, and display a common modal footer
21
+ * and buttons.
22
+ */
23
+ export class SkyModalComponent {
24
+ /**
25
+ * A list of form-level errors to display to the user.
26
+ */
27
+ set formErrors(value) {
28
+ this.#errorsSvc.updateErrors(value);
29
+ }
30
+ /**
31
+ * @internal
32
+ */
33
+ set ariaRole(value) {
34
+ this.ariaRoleOrDefault = value || ARIA_ROLE_DEFAULT;
35
+ }
36
+ /**
37
+ * @internal
38
+ */
39
+ set ariaDescribedBy(id) {
40
+ this.#_ariaDescribedBy = id;
41
+ }
42
+ get ariaDescribedBy() {
43
+ return this.#_ariaDescribedBy;
44
+ }
45
+ /**
46
+ * @internal
47
+ */
48
+ set ariaLabelledBy(id) {
49
+ this.#_ariaLabelledBy = id;
50
+ }
51
+ get ariaLabelledBy() {
52
+ return this.#_ariaLabelledBy;
53
+ }
54
+ #hostService;
55
+ #elRef;
56
+ #windowRef;
57
+ #componentAdapter;
58
+ #coreAdapter;
59
+ #dockService;
60
+ #mediaQueryService;
61
+ #ngUnsubscribe;
62
+ #_ariaDescribedBy;
63
+ #_ariaLabelledBy;
64
+ #changeDetector;
65
+ #errorsSvc;
66
+ #liveAnnouncerSvc;
67
+ constructor(hostService, config, elRef, windowRef, componentAdapter, coreAdapter, dockService, mediaQueryService) {
68
+ this.ariaRoleOrDefault = ARIA_ROLE_DEFAULT;
69
+ this.ariaOwns = null;
70
+ this.modalState = 'in';
71
+ this.#ngUnsubscribe = new Subject();
72
+ this.#changeDetector = inject(ChangeDetectorRef);
73
+ this.#errorsSvc = inject(SkyModalErrorsService);
74
+ this.#liveAnnouncerSvc = inject(SkyLiveAnnouncerService);
75
+ this.#hostService = hostService;
76
+ this.#elRef = elRef;
77
+ this.#windowRef = windowRef;
78
+ this.#componentAdapter = componentAdapter;
79
+ this.#coreAdapter = coreAdapter;
80
+ this.#dockService = dockService;
81
+ this.#mediaQueryService = mediaQueryService;
82
+ this.ariaDescribedBy = config.ariaDescribedBy;
83
+ this.ariaLabelledBy = config.ariaLabelledBy;
84
+ this.ariaRole = config.ariaRole;
85
+ this.helpKey = config.helpKey;
86
+ this.tiledBody = config.tiledBody;
87
+ this.wrapperClass = config.wrapperClass;
88
+ this.size = config.fullPage
89
+ ? 'full-page'
90
+ : config.size?.toLowerCase() || 'medium';
91
+ this.modalZIndex = this.#hostService.zIndex;
92
+ }
93
+ onDocumentKeyUp(event) {
94
+ /* istanbul ignore else */
95
+ /* sanity check */
96
+ if (SkyModalHostService.openModalCount > 0) {
97
+ const topModal = SkyModalHostService.topModal;
98
+ if (topModal && topModal === this.#hostService) {
99
+ if (event.which === 27) {
100
+ // Escape key up
101
+ event.preventDefault();
102
+ this.closeButtonClick();
103
+ }
104
+ }
105
+ }
106
+ }
107
+ onDocumentKeyDown(event) {
108
+ /* istanbul ignore else */
109
+ /* sanity check */
110
+ if (SkyModalHostService.openModalCount > 0) {
111
+ const topModal = SkyModalHostService.topModal;
112
+ if (topModal && topModal === this.#hostService) {
113
+ if (event.which === 9) {
114
+ // Tab pressed
115
+ let focusChanged = false;
116
+ const focusElementList = this.#coreAdapter.getFocusableChildren(this.#elRef.nativeElement);
117
+ if (event.shiftKey &&
118
+ (this.#componentAdapter.isFocusInFirstItem(event, focusElementList) ||
119
+ this.#componentAdapter.isModalFocused(event, this.#elRef))) {
120
+ focusChanged =
121
+ this.#componentAdapter.focusLastElement(focusElementList);
122
+ }
123
+ else if (!event.shiftKey &&
124
+ this.#componentAdapter.isFocusInLastItem(event, focusElementList)) {
125
+ focusChanged =
126
+ this.#componentAdapter.focusFirstElement(focusElementList);
127
+ }
128
+ if (focusChanged) {
129
+ event.preventDefault();
130
+ event.stopPropagation();
131
+ }
132
+ }
133
+ }
134
+ }
135
+ }
136
+ ngOnInit() {
137
+ this.#liveAnnouncerSvc.announcerElementChanged
138
+ .pipe(takeUntil(this.#ngUnsubscribe))
139
+ .subscribe((element) => {
140
+ if (element?.id) {
141
+ this.ariaOwns = element.id;
142
+ this.#changeDetector.markForCheck();
143
+ }
144
+ });
145
+ }
146
+ ngAfterViewInit() {
147
+ this.#componentAdapter.handleWindowChange(this.#elRef);
148
+ // Adding a timeout to avoid ExpressionChangedAfterItHasBeenCheckedError.
149
+ // https://stackoverflow.com/questions/40562845
150
+ this.#windowRef.nativeWindow.setTimeout(() => {
151
+ this.#componentAdapter.modalOpened(this.#elRef);
152
+ });
153
+ this.#dockService.setDockOptions({
154
+ location: SkyDockLocation.ElementBottom,
155
+ referenceEl: this.modalContentWrapperElement.nativeElement,
156
+ zIndex: 5,
157
+ });
158
+ /* istanbul ignore next */
159
+ if (this.#mediaQueryService) {
160
+ this.#mediaQueryService.observe(this.modalContentWrapperElement);
161
+ }
162
+ }
163
+ ngOnDestroy() {
164
+ /* istanbul ignore next */
165
+ if (this.#mediaQueryService) {
166
+ this.#mediaQueryService.unobserve();
167
+ }
168
+ this.#ngUnsubscribe.next();
169
+ this.#ngUnsubscribe.complete();
170
+ }
171
+ helpButtonClick() {
172
+ if (this.helpKey) {
173
+ this.#hostService.onOpenHelp(this.helpKey);
174
+ }
175
+ }
176
+ closeButtonClick() {
177
+ this.#hostService.onClose();
178
+ }
179
+ windowResize() {
180
+ this.#componentAdapter.handleWindowChange(this.#elRef);
181
+ }
182
+ scrollShadowChange(args) {
183
+ this.scrollShadow = args;
184
+ }
185
+ viewkeeperEnabled() {
186
+ return this.#componentAdapter.modalContentHasDirectChildViewkeeper(this.#elRef);
187
+ }
188
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", 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, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
189
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: SkyModalComponent, selector: "sky-modal", inputs: { formErrors: "formErrors", ariaRole: "ariaRole", tiledBody: "tiledBody", ariaDescribedBy: "ariaDescribedBy", ariaLabelledBy: "ariaLabelledBy" }, host: { listeners: { "document:keyup": "onDocumentKeyUp($event)", "document:keydown": "onDocumentKeyDown($event)" }, properties: { "class": "this.wrapperClass" } }, providers: [
190
+ SkyModalComponentAdapterService,
191
+ SkyModalErrorsService,
192
+ SkyDockService,
193
+ ], viewQueries: [{ propertyName: "modalContentWrapperElement", first: true, predicate: ["modalContentWrapper"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div\n class=\"sky-modal-dialog\"\n aria-modal=\"true\"\n [attr.aria-describedby]=\"ariaDescribedBy || modalContentId.id\"\n [attr.aria-labelledby]=\"ariaLabelledBy || headerId.id\"\n [attr.aria-owns]=\"ariaOwns\"\n [attr.role]=\"ariaRoleOrDefault\"\n (window:resize)=\"windowResize()\"\n>\n <div\n class=\"sky-modal sky-shadow sky-box sky-elevation-16 sky-modal-{{ size }}\"\n tabindex=\"-1\"\n [ngClass]=\"{\n 'sky-modal-tiled': tiledBody,\n 'sky-modal-viewkeeper': viewkeeperEnabled()\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 skyId\n [ngClass]=\"{\n 'sky-font-heading-2': size === 'full-page'\n }\"\n #headerContent\n #headerId=\"skyId\"\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 skyId\n [attr.aria-labelledby]=\"headerId.id\"\n (skyModalScrollShadow)=\"scrollShadowChange($event)\"\n #modalContentId=\"skyId\"\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-background-color-page-default: #fff}.sky-modal-content:focus{outline-style:dotted;outline-width:thin;outline-offset:-1px}.sky-modal-tiled .sky-modal-content{background-color:#eeeeef;--sky-background-color-page-default: $sky-background-color-neutral-light}.sky-modal-tiled .sky-modal-content ::ng-deep .sky-tile-title{font-family:BLKB Sans,Helvetica Neue,Arial,sans-serif;color:var(--sky-text-color-deemphasized);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-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%}:host-context(.sky-theme-modern) .sky-modal-viewkeeper .sky-modal-header{box-shadow:none!important}:host-context(.sky-theme-modern) .sky-modal-viewkeeper .sky-modal-content ::ng-deep sky-modal-content>.sky-viewkeeper-fixed{box-shadow:0 4px 8px -4px #0000004d}:host-context(.sky-theme-modern) .sky-modal-viewkeeper .sky-modal-content ::ng-deep sky-modal-content>.sky-viewkeeper-fixed>sky-toolbar .sky-toolbar-container{background-color:#fff;--sky-background-color-page-default: #fff;padding-left:30px;padding-right:30px}.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%}.sky-theme-modern .sky-modal-viewkeeper .sky-modal-header{box-shadow:none!important}.sky-theme-modern .sky-modal-viewkeeper .sky-modal-content ::ng-deep sky-modal-content>.sky-viewkeeper-fixed{box-shadow:0 4px 8px -4px #0000004d}.sky-theme-modern .sky-modal-viewkeeper .sky-modal-content ::ng-deep sky-modal-content>.sky-viewkeeper-fixed>sky-toolbar .sky-toolbar-container{background-color:#fff;--sky-background-color-page-default: #fff;padding-left:30px;padding-right:30px}: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-background-color-page-default: $sky-theme-modern-mode-dark-background-color-page-default}.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;--sky-background-color-page-default: $sky-theme-modern-mode-dark-background-color-page-default}\n"], dependencies: [{ kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i6.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }, { kind: "directive", type: i3.λ2, selector: "[skyId]", exportAs: ["skyId"] }, { kind: "directive", type: i7.SkyModalScrollShadowDirective, selector: "[skyModalScrollShadow]", outputs: ["skyModalScrollShadow"] }, { kind: "pipe", type: i8.SkyLibResourcesPipe, name: "skyLibResources" }] }); }
194
+ }
195
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyModalComponent, decorators: [{
196
+ type: Component,
197
+ args: [{ selector: 'sky-modal', providers: [
198
+ SkyModalComponentAdapterService,
199
+ SkyModalErrorsService,
200
+ SkyDockService,
201
+ ], template: "<div\n class=\"sky-modal-dialog\"\n aria-modal=\"true\"\n [attr.aria-describedby]=\"ariaDescribedBy || modalContentId.id\"\n [attr.aria-labelledby]=\"ariaLabelledBy || headerId.id\"\n [attr.aria-owns]=\"ariaOwns\"\n [attr.role]=\"ariaRoleOrDefault\"\n (window:resize)=\"windowResize()\"\n>\n <div\n class=\"sky-modal sky-shadow sky-box sky-elevation-16 sky-modal-{{ size }}\"\n tabindex=\"-1\"\n [ngClass]=\"{\n 'sky-modal-tiled': tiledBody,\n 'sky-modal-viewkeeper': viewkeeperEnabled()\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 skyId\n [ngClass]=\"{\n 'sky-font-heading-2': size === 'full-page'\n }\"\n #headerContent\n #headerId=\"skyId\"\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 skyId\n [attr.aria-labelledby]=\"headerId.id\"\n (skyModalScrollShadow)=\"scrollShadowChange($event)\"\n #modalContentId=\"skyId\"\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-background-color-page-default: #fff}.sky-modal-content:focus{outline-style:dotted;outline-width:thin;outline-offset:-1px}.sky-modal-tiled .sky-modal-content{background-color:#eeeeef;--sky-background-color-page-default: $sky-background-color-neutral-light}.sky-modal-tiled .sky-modal-content ::ng-deep .sky-tile-title{font-family:BLKB Sans,Helvetica Neue,Arial,sans-serif;color:var(--sky-text-color-deemphasized);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-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%}:host-context(.sky-theme-modern) .sky-modal-viewkeeper .sky-modal-header{box-shadow:none!important}:host-context(.sky-theme-modern) .sky-modal-viewkeeper .sky-modal-content ::ng-deep sky-modal-content>.sky-viewkeeper-fixed{box-shadow:0 4px 8px -4px #0000004d}:host-context(.sky-theme-modern) .sky-modal-viewkeeper .sky-modal-content ::ng-deep sky-modal-content>.sky-viewkeeper-fixed>sky-toolbar .sky-toolbar-container{background-color:#fff;--sky-background-color-page-default: #fff;padding-left:30px;padding-right:30px}.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%}.sky-theme-modern .sky-modal-viewkeeper .sky-modal-header{box-shadow:none!important}.sky-theme-modern .sky-modal-viewkeeper .sky-modal-content ::ng-deep sky-modal-content>.sky-viewkeeper-fixed{box-shadow:0 4px 8px -4px #0000004d}.sky-theme-modern .sky-modal-viewkeeper .sky-modal-content ::ng-deep sky-modal-content>.sky-viewkeeper-fixed>sky-toolbar .sky-toolbar-container{background-color:#fff;--sky-background-color-page-default: #fff;padding-left:30px;padding-right:30px}: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-background-color-page-default: $sky-theme-modern-mode-dark-background-color-page-default}.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;--sky-background-color-page-default: $sky-theme-modern-mode-dark-background-color-page-default}\n"] }]
202
+ }], 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: [{
203
+ type: Host
204
+ }] }, { type: i3.SkyResizeObserverMediaQueryService, decorators: [{
205
+ type: Optional
206
+ }] }]; }, propDecorators: { wrapperClass: [{
207
+ type: HostBinding,
208
+ args: ['class']
209
+ }], formErrors: [{
210
+ type: Input
211
+ }], ariaRole: [{
212
+ type: Input
213
+ }], tiledBody: [{
214
+ type: Input
215
+ }], ariaDescribedBy: [{
216
+ type: Input
217
+ }], ariaLabelledBy: [{
218
+ type: Input
219
+ }], modalContentWrapperElement: [{
220
+ type: ViewChild,
221
+ args: ['modalContentWrapper', { read: ElementRef }]
222
+ }], onDocumentKeyUp: [{
223
+ type: HostListener,
224
+ args: ['document:keyup', ['$event']]
225
+ }], onDocumentKeyDown: [{
226
+ type: HostListener,
227
+ args: ['document:keydown', ['$event']]
228
+ }] } });
229
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL21vZGFscy9zcmMvbGliL21vZHVsZXMvbW9kYWwvbW9kYWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL21vZGFscy9zcmMvbGliL21vZHVsZXMvbW9kYWwvbW9kYWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1QsVUFBVSxFQUNWLElBQUksRUFDSixXQUFXLEVBQ1gsWUFBWSxFQUNaLEtBQUssRUFHTCxRQUFRLEVBQ1IsU0FBUyxFQUNULE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBR0wsZUFBZSxFQUNmLGNBQWMsRUFDZCx1QkFBdUIsR0FFeEIsTUFBTSxhQUFhLENBQUM7QUFFckIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMvQixPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFM0MsT0FBTyxFQUFFLCtCQUErQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFHcEYsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDL0QsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7QUFHM0QsTUFBTSxpQkFBaUIsR0FBRyxRQUFRLENBQUM7QUFFbkM7Ozs7R0FJRztBQVdILE1BQU0sT0FBTyxpQkFBaUI7SUFJNUI7O09BRUc7SUFDSCxJQUNXLFVBQVUsQ0FBQyxLQUFrQztRQUN0RCxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN0QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxJQUNXLFFBQVEsQ0FBQyxL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LHFCQUFxQjt3QkFDckIsY0FBYztxQkFDZjs7MEJBNEZFLElBQUk7OzBCQUNKLFFBQVE7NENBekZKLFlBQVk7c0JBRGxCLFdBQVc7dUJBQUMsT0FBTztnQkFPVCxVQUFVO3NCQURwQixLQUFLO2dCQVNLLFFBQVE7c0JBRGxCLEtBQUs7Z0JBV0MsU0FBUztzQkFEZixLQUFLO2dCQU9LLGVBQWU7c0JBRHpCLEtBQUs7Z0JBYUssY0FBYztzQkFEeEIsS0FBSztnQkFzQkMsMEJBQTBCO3NCQURoQyxTQUFTO3VCQUFDLHFCQUFxQixFQUFFLEVBQUUsSUFBSSxFQUFFLFVBQVUsRUFBRTtnQkFxRC9DLGVBQWU7c0JBRHJCLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBaUJuQyxpQkFBaUI7c0JBRHZCLFlBQVk7dUJBQUMsa0JBQWtCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBBZnRlclZpZXdJbml0LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFbGVtZW50UmVmLFxuICBIb3N0LFxuICBIb3N0QmluZGluZyxcbiAgSG9zdExpc3RlbmVyLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBWaWV3Q2hpbGQsXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBTa3lBcHBXaW5kb3dSZWYsXG4gIFNreUNvcmVBZGFwdGVyU2VydmljZSxcbiAgU2t5RG9ja0xvY2F0aW9uLFxuICBTa3lEb2NrU2VydmljZSxcbiAgU2t5TGl2ZUFubm91bmNlclNlcnZpY2UsXG4gIFNreVJlc2l6ZU9ic2VydmVyTWVkaWFRdWVyeVNlcnZpY2UsXG59IGZyb20gJ0Bza3l1eC9jb3JlJztcblxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTa3lNb2RhbENvbXBvbmVudEFkYXB0ZXJTZXJ2aWNlIH0gZnJvbSAnLi9tb2RhbC1jb21wb25lbnQtYWRhcHRlci5zZXJ2aWNlJztcbmltcG9ydCB7IFNreU1vZGFsQ29uZmlndXJhdGlvbiB9IGZyb20gJy4vbW9kYWwtY29uZmlndXJhdGlvbic7XG5pbXBvcnQgeyBTa3lNb2RhbEVycm9yIH0gZnJvbSAnLi9tb2RhbC1lcnJvcic7XG5pbXBvcnQgeyBTa3lNb2RhbEVycm9yc1NlcnZpY2UgfSBmcm9tICcuL21vZGFsLWVycm9ycy5zZXJ2aWNlJztcbmltcG9ydCB7IFNreU1vZGFsSG9zdFNlcnZpY2UgfSBmcm9tICcuL21vZGFsLWhvc3Quc2VydmljZSc7XG5pbXBvcnQgeyBTa3lNb2RhbFNjcm9sbFNoYWRvd0V2ZW50QXJncyB9IGZyb20gJy4vbW9kYWwtc2Nyb2xsLXNoYWRvdy1ldmVudC1hcmdzJztcblxuY29uc3QgQVJJQV9ST0xFX0RFRkFVTFQgPSAnZGlhbG9nJztcblxuLyoqXG4gKiBQcm92aWRlcyBhIGNvbW1vbiBsb29rLWFuZC1mZWVsIGZvciBtb2RhbCBjb250ZW50IHdpdGggb3B0aW9ucyB0byBkaXNwbGF5XG4gKiBhIGNvbW1vbiBtb2RhbCBoZWFkZXIsIHNwZWNpZnkgYm9keSBjb250ZW50LCBhbmQgZGlzcGxheSBhIGNvbW1vbiBtb2RhbCBmb290ZXJcbiAqIGFuZCBidXR0b25zLlxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktbW9kYWwnLFxuICB0ZW1wbGF0ZVVybDogJy4vbW9kYWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tb2RhbC5jb21wb25lbnQuc2NzcyddLFxuICBwcm92aWRlcnM6IFtcbiAgICBTa3lNb2RhbENvbXBvbmVudEFkYXB0ZXJTZXJ2aWNlLFxuICAgIFNreU1vZGFsRXJyb3JzU2VydmljZSxcbiAgICBTa3lEb2NrU2VydmljZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5TW9kYWxDb21wb25lbnQgaW1wbGVtZW50cyBBZnRlclZpZXdJbml0LCBPbkRlc3Ryb3ksIE9uSW5pdCB7XG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBwdWJsaWMgd3JhcHBlckNsYXNzOiBzdHJpbmcgfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBmb3JtLWxldmVsIGVycm9ycyB0byBkaXNwbGF5IHRvIHRoZSB1c2VyLlxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBmb3JtRXJyb3JzKHZhbHVlOiBTa3lNb2RhbEVycm9yW10gfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNlcnJvcnNTdmMudXBkYXRlRXJyb3JzKHZhbHVlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgYXJpYVJvbGUodmFsdWU6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuYXJpYVJvbGVPckRlZmF1bHQgPSB2YWx1ZSB8fCBBUklBX1JPTEVfREVGQVVMVDtcbiAgfVxuXG4gIHB1YmxpYyBhcmlhUm9sZU9yRGVmYXVsdCA9IEFSSUFfUk9MRV9ERUZBVUxUO1xuXG4gIC8qKlxuICAgKiBAaW50ZXJuYWxcbiAgICovXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyB0aWxlZEJvZHk6IGJvb2xlYW4gfCB1bmRlZmluZWQ7XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgQElucHV0KClcbiAgcHVibGljIHNldCBhcmlhRGVzY3JpYmVkQnkoaWQ6IHN0cmluZyB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuI19hcmlhRGVzY3JpYmVkQnkgPSBpZDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYXJpYURlc2NyaWJlZEJ5KCk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuI19hcmlhRGVzY3JpYmVkQnk7XG4gIH1cblxuICAvKipcbiAgICogQGludGVybmFsXG4gICAqL1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGFyaWFMYWJlbGxlZEJ5KGlkOiBzdHJpbmcgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLiNfYXJpYUxhYmVsbGVkQnkgPSBpZDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYXJpYUxhYmVsbGVkQnkoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy4jX2FyaWFMYWJlbGxlZEJ5O1xuICB9XG5cbiAgcHVibGljIGFyaWFPd25zOiBzdHJpbmcgfCBudWxsID0gbnVsbDtcblxuICBwdWJsaWMgaGVscEtleTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gIHB1YmxpYyBtb2RhbFN0YXRlID0gJ2luJztcblxuICBwdWJsaWMgbW9kYWxaSW5kZXg6IG51bWJlciB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgc2Nyb2xsU2hhZG93OiBTa3lNb2RhbFNjcm9sbFNoYWRvd0V2ZW50QXJncyB8IHVuZGVmaW5lZDtcblxuICBwdWJsaWMgc2l6ZTogc3RyaW5nO1xuXG4gIEBWaWV3Q2hpbGQoJ21vZGFsQ29udGVudFdyYXBwZXInLCB7IHJlYWQ6IEVsZW1lbnRSZWYgfSlcbiAgcHVibGljIG1vZGFsQ29udGVudFdyYXBwZXJFbGVtZW50OiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xuXG4gICNob3N0U2VydmljZTogU2t5TW9kYWxIb3N0U2VydmljZTtcbiAgI2VsUmVmOiBFbGVtZW50UmVmO1xuICAjd2luZG93UmVmOiBTa3lBcHBXaW5kb3dSZWY7XG4gICNjb21wb25lbnRBZGFwdGVyOiBTa3lNb2RhbENvbXBvbmVudEFkYXB0ZXJTZXJ2aWNlO1xuICAjY29yZUFkYXB0ZXI6IFNreUNvcmVBZGFwdGVyU2VydmljZTtcbiAgI2RvY2tTZXJ2aWNlOiBTa3lEb2NrU2VydmljZTtcbiAgI21lZGlhUXVlcnlTZXJ2aWNlOiBTa3lSZXNpemVPYnNlcnZlck1lZGlhUXVlcnlTZXJ2aWNlIHwgdW5kZWZpbmVkO1xuICAjbmdVbnN1YnNjcmliZSA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgI19hcmlhRGVzY3JpYmVkQnk6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgI19hcmlhTGFiZWxsZWRCeTogc3RyaW5nIHwgdW5kZWZpbmVkO1xuXG4gICNjaGFuZ2VEZXRlY3RvciA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG4gICNlcnJvcnNTdmMgPSBpbmplY3QoU2t5TW9kYWxFcnJvcnNTZXJ2aWNlKTtcbiAgI2xpdmVBbm5vdW5jZXJTdmMgPSBpbmplY3QoU2t5TGl2ZUFubm91bmNlclNlcnZpY2UpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIGhvc3RTZXJ2aWNlOiBTa3lNb2RhbEhvc3RTZXJ2aWNlLFxuICAgIGNvbmZpZzogU2t5TW9kYWxDb25maWd1cmF0aW9uLFxuICAgIGVsUmVmOiBFbGVtZW50UmVmLFxuICAgIHdpbmRvd1JlZjogU2t5QXBwV2luZG93UmVmLFxuICAgIGNvbXBvbmVudEFkYXB0ZXI6IFNreU1vZGFsQ29tcG9uZW50QWRhcHRlclNlcnZpY2UsXG4gICAgY29yZUFkYXB0ZXI6IFNreUNvcmVBZGFwdGVyU2VydmljZSxcbiAgICBASG9zdCgpIGRvY2tTZXJ2aWNlOiBTa3lEb2NrU2VydmljZSxcbiAgICBAT3B0aW9uYWwoKVxuICAgIG1lZGlhUXVlcnlTZXJ2aWNlPzogU2t5UmVzaXplT2JzZXJ2ZXJNZWRpYVF1ZXJ5U2VydmljZVxuICApIHtcbiAgICB0aGlzLiNob3N0U2VydmljZSA9IGhvc3RTZXJ2aWNlO1xuICAgIHRoaXMuI2VsUmVmID0gZWxSZWY7XG4gICAgdGhpcy4jd2luZG93UmVmID0gd2luZG93UmVmO1xuICAgIHRoaXMuI2NvbXBvbmVudEFkYXB0ZXIgPSBjb21wb25lbnRBZGFwdGVyO1xuICAgIHRoaXMuI2NvcmVBZGFwdGVyID0gY29yZUFkYXB0ZXI7XG4gICAgdGhpcy4jZG9ja1NlcnZpY2UgPSBkb2NrU2VydmljZTtcbiAgICB0aGlzLiNtZWRpYVF1ZXJ5U2VydmljZSA9IG1lZGlhUXVlcnlTZXJ2aWNlO1xuXG4gICAgdGhpcy5hcmlhRGVzY3JpYmVkQnkgPSBjb25maWcuYXJpYURlc2NyaWJlZEJ5O1xuICAgIHRoaXMuYXJpYUxhYmVsbGVkQnkgPSBjb25maWcuYXJpYUxhYmVsbGVkQnk7XG4gICAgdGhpcy5hcmlhUm9sZSA9IGNvbmZpZy5hcmlhUm9sZTtcbiAgICB0aGlzLmhlbHBLZXkgPSBjb25maWcuaGVscEtleTtcbiAgICB0aGlzLnRpbGVkQm9keSA9IGNvbmZpZy50aWxlZEJvZHk7XG4gICAgdGhpcy53cmFwcGVyQ2xhc3MgPSBjb25maWcud3JhcHBlckNsYXNzO1xuXG4gICAgdGhpcy5zaXplID0gY29uZmlnLmZ1bGxQYWdlXG4gICAgICA/ICdmdWxsLXBhZ2UnXG4gICAgICA6IGNvbmZpZy5zaXplPy50b0xvd2VyQ2FzZSgpIHx8ICdtZWRpdW0nO1xuXG4gICAgdGhpcy5tb2RhbFpJbmRleCA9IHRoaXMuI2hvc3RTZXJ2aWNlLnpJbmRleDtcbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleXVwJywgWyckZXZlbnQnXSlcbiAgcHVibGljIG9uRG9jdW1lbnRLZXlVcChldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgLyogc2FuaXR5IGNoZWNrICovXG4gICAgaWYgKFNreU1vZGFsSG9zdFNlcnZpY2Uub3Blbk1vZGFsQ291bnQgPiAwKSB7XG4gICAgICBjb25zdCB0b3BNb2RhbCA9IFNreU1vZGFsSG9zdFNlcnZpY2UudG9wTW9kYWw7XG4gICAgICBpZiAodG9wTW9kYWwgJiYgdG9wTW9kYWwgPT09IHRoaXMuI2hvc3RTZXJ2aWNlKSB7XG4gICAgICAgIGlmIChldmVudC53aGljaCA9PT0gMjcpIHtcbiAgICAgICAgICAvLyBFc2NhcGUga2V5IHVwXG4gICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgICB0aGlzLmNsb3NlQnV0dG9uQ2xpY2soKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24nLCBbJyRldmVudCddKVxuICBwdWJsaWMgb25Eb2N1bWVudEtleURvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIC8qIHNhbml0eSBjaGVjayAqL1xuICAgIGlmIChTa3lNb2RhbEhvc3RTZXJ2aWNlLm9wZW5Nb2RhbENvdW50ID4gMCkge1xuICAgICAgY29uc3QgdG9wTW9kYWwgPSBTa3lNb2RhbEhvc3RTZXJ2aWNlLnRvcE1vZGFsO1xuICAgICAgaWYgKHRvcE1vZGFsICYmIHRvcE1vZGFsID09PSB0aGlzLiNob3N0U2VydmljZSkge1xuICAgICAgICBpZiAoZXZlbnQud2hpY2ggPT09IDkpIHtcbiAgICAgICAgICAvLyBUYWIgcHJlc3NlZFxuICAgICAgICAgIGxldCBmb2N1c0NoYW5nZWQgPSBmYWxzZTtcblxuICAgICAgICAgIGNvbnN0IGZvY3VzRWxlbWVudExpc3QgPSB0aGlzLiNjb3JlQWRhcHRlci5nZXRGb2N1c2FibGVDaGlsZHJlbihcbiAgICAgICAgICAgIHRoaXMuI2VsUmVmLm5hdGl2ZUVsZW1lbnRcbiAgICAgICAgICApO1xuXG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgZXZlbnQuc2hpZnRLZXkgJiZcbiAgICAgICAgICAgICh0aGlzLiNjb21wb25lbnRBZGFwdGVyLmlzRm9jdXNJbkZpcnN0SXRlbShcbiAgICAgICAgICAgICAgZXZlbnQsXG4gICAgICAgICAgICAgIGZvY3VzRWxlbWVudExpc3RcbiAgICAgICAgICAgICkgfHxcbiAgICAgICAgICAgICAgdGhpcy4jY29tcG9uZW50QWRhcHRlci5pc01vZGFsRm9jdXNlZChldmVudCwgdGhpcy4jZWxSZWYpKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgZm9jdXNDaGFuZ2VkID1cbiAgICAgICAgICAgICAgdGhpcy4jY29tcG9uZW50QWRhcHRlci5mb2N1c0xhc3RFbGVtZW50KGZvY3VzRWxlbWVudExpc3QpO1xuICAgICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICAhZXZlbnQuc2hpZnRLZXkgJiZcbiAgICAgICAgICAgIHRoaXMuI2NvbXBvbmVudEFkYXB0ZXIuaXNGb2N1c0luTGFzdEl0ZW0oZXZlbnQsIGZvY3VzRWxlbWVudExpc3QpXG4gICAgICAgICAgKSB7XG4gICAgICAgICAgICBmb2N1c0NoYW5nZWQgPVxuICAgICAgICAgICAgICB0aGlzLiNjb21wb25lbnRBZGFwdGVyLmZvY3VzRmlyc3RFbGVtZW50KGZvY3VzRWxlbWVudExpc3QpO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmIChmb2N1c0NoYW5nZWQpIHtcbiAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICBldmVudC5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy4jbGl2ZUFubm91bmNlclN2Yy5hbm5vdW5jZXJFbGVtZW50Q2hhbmdlZFxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuI25nVW5zdWJzY3JpYmUpKVxuICAgICAgLnN1YnNjcmliZSgoZWxlbWVudCkgPT4ge1xuICAgICAgICBpZiAoZWxlbWVudD8uaWQpIHtcbiAgICAgICAgICB0aGlzLmFyaWFPd25zID0gZWxlbWVudC5pZDtcbiAgICAgICAgICB0aGlzLiNjaGFuZ2VEZXRlY3Rvci5tYXJrRm9yQ2hlY2soKTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgbmdBZnRlclZpZXdJbml0KCkge1xuICAgIHRoaXMuI2NvbXBvbmVudEFkYXB0ZXIuaGFuZGxlV2luZG93Q2hhbmdlKHRoaXMuI2VsUmVmKTtcblxuICAgIC8vIEFkZGluZyBhIHRpbWVvdXQgdG8gYXZvaWQgRXhwcmVzc2lvbkNoYW5nZWRBZnRlckl0SGFzQmVlbkNoZWNrZWRFcnJvci5cbiAgICAvLyBodHRwczovL3N0YWNrb3ZlcmZsb3cuY29tL3F1ZXN0aW9ucy80MDU2Mjg0NVxuICAgIHRoaXMuI3dpbmRvd1JlZi5uYXRpdmVXaW5kb3cuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLiNjb21wb25lbnRBZGFwdGVyLm1vZGFsT3BlbmVkKHRoaXMuI2VsUmVmKTtcbiAgICB9KTtcblxuICAgIHRoaXMuI2RvY2tTZXJ2aWNlLnNldERvY2tPcHRpb25zKHtcbiAgICAgIGxvY2F0aW9uOiBTa3lEb2NrTG9jYXRpb24uRWxlbWVudEJvdHRvbSxcbiAgICAgIHJlZmVyZW5jZUVsOiB0aGlzLm1vZGFsQ29udGVudFdyYXBwZXJFbGVtZW50IS5uYXRpdmVFbGVtZW50LFxuICAgICAgekluZGV4OiA1LFxuICAgIH0pO1xuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICBpZiAodGhpcy4jbWVkaWFRdWVyeVNlcnZpY2UpIHtcbiAgICAgIHRoaXMuI21lZGlhUXVlcnlTZXJ2aWNlLm9ic2VydmUodGhpcy5tb2RhbENvbnRlbnRXcmFwcGVyRWxlbWVudCEpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIGlmICh0aGlzLiNtZWRpYVF1ZXJ5U2VydmljZSkge1xuICAgICAgdGhpcy4jbWVkaWFRdWVyeVNlcnZpY2UudW5vYnNlcnZlKCk7XG4gICAgfVxuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBoZWxwQnV0dG9uQ2xpY2soKSB7XG4gICAgaWYgKHRoaXMuaGVscEtleSkge1xuICAgICAgdGhpcy4jaG9zdFNlcnZpY2Uub25PcGVuSGVscCh0aGlzLmhlbHBLZXkpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBjbG9zZUJ1dHRvbkNsaWNrKCkge1xuICAgIHRoaXMuI2hvc3RTZXJ2aWNlLm9uQ2xvc2UoKTtcbiAgfVxuXG4gIHB1YmxpYyB3aW5kb3dSZXNpemUoKSB7XG4gICAgdGhpcy4jY29tcG9uZW50QWRhcHRlci5oYW5kbGVXaW5kb3dDaGFuZ2UodGhpcy4jZWxSZWYpO1xuICB9XG5cbiAgcHVibGljIHNjcm9sbFNoYWRvd0NoYW5nZShhcmdzOiBTa3lNb2RhbFNjcm9sbFNoYWRvd0V2ZW50QXJncyk6IHZvaWQge1xuICAgIHRoaXMuc2Nyb2xsU2hhZG93ID0gYXJncztcbiAgfVxuXG4gIHB1YmxpYyB2aWV3a2VlcGVyRW5hYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy4jY29tcG9uZW50QWRhcHRlci5tb2RhbENvbnRlbnRIYXNEaXJlY3RDaGlsZFZpZXdrZWVwZXIoXG4gICAgICB0aGlzLiNlbFJlZlxuICAgICk7XG4gIH1cbn1cbiIsIjxkaXZcbiAgY2xhc3M9XCJza3ktbW9kYWwtZGlhbG9nXCJcbiAgYXJpYS1tb2RhbD1cInRydWVcIlxuICBbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XT1cImFyaWFEZXNjcmliZWRCeSB8fCBtb2RhbENvbnRlbnRJZC5pZFwiXG4gIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJhcmlhTGFiZWxsZWRCeSB8fCBoZWFkZXJJZC5pZFwiXG4gIFthdHRyLmFyaWEtb3duc109XCJhcmlhT3duc1wiXG4gIFthdHRyLnJvbGVdPVwiYXJpYVJvbGVPckRlZmF1bHRcIlxuICAod2luZG93OnJlc2l6ZSk9XCJ3aW5kb3dSZXNpemUoKVwiXG4+XG4gIDxkaXZcbiAgICBjbGFzcz1cInNreS1tb2RhbCBza3ktc2hhZG93IHNreS1ib3ggc2t5LWVsZXZhdGlvbi0xNiBza3ktbW9kYWwte3sgc2l6ZSB9fVwiXG4gICAgdGFiaW5kZXg9XCItMVwiXG4gICAgW25nQ2xhc3NdPVwie1xuICAgICAgJ3NreS1tb2RhbC10aWxlZCc6IHRpbGVkQm9keSxcbiAgICAgICdza3ktbW9kYWwtdmlld2tlZXBlcic6IHZpZXdrZWVwZXJFbmFibGVkKClcbiAgICB9XCJcbiAgICBbbmdTdHlsZV09XCJ7XG4gICAgICB6SW5kZXg6IG1vZGFsWkluZGV4XG4gICAgfVwiXG4gID5cbiAgICA8ZGl2XG4gICAgICBjbGFzcz1cInNreS1tb2RhbC1oZWFkZXJcIlxuICAgICAgW2hpZGRlbl09XCIhaGVhZGVyQ29udGVudCB8fCAhaGVhZGVyQ29udGVudC5jaGlsZHJlbiB8fCBoZWFkZXJDb250ZW50LmNoaWxkcmVuLmxlbmd0aCAmbHQ7IDFcIlxuICAgICAgW25nU3R5bGVdPVwie1xuICAgICAgICAnYm94LXNoYWRvdyc6IHNjcm9sbFNoYWRvdz8udG9wU2hhZG93XG4gICAgICB9XCJcbiAgICA+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwic2t5LW1vZGFsLWhlYWRlci1jb250ZW50XCJcbiAgICAgICAgc2t5SWRcbiAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICdza3ktZm9udC1oZWFkaW5nLTInOiBzaXplID09PSAnZnVsbC1wYWdlJ1xuICAgICAgICB9XCJcbiAgICAgICAgI2hlYWRlckNvbnRlbnRcbiAgICAgICAgI2hlYWRlcklkPVwic2t5SWRcIlxuICAgICAgPlxuICAgICAgICA8bmctY29udGVudCBzZWxlY3Q9XCJza3ktbW9kYWwtaGVhZGVyXCI+PC9uZy1jb250ZW50PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwic2t5LW1vZGFsLWhlYWRlci1idXR0b25zXCI+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICAqbmdJZj1cImhlbHBLZXlcIlxuICAgICAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktbW9kYWwtYnRuLWhlbHBcIlxuICAgICAgICAgIG5hbWU9XCJoZWxwLWJ1dHRvblwiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgW2F0dHIuYXJpYS1sYWJlbF09XCInc2t5dXhfbW9kYWxfb3Blbl9oZWxwJyB8IHNreUxpYlJlc291cmNlc1wiXG4gICAgICAgICAgKGNsaWNrKT1cImhlbHBCdXR0b25DbGljaygpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxza3ktaWNvbiBpY29uPVwicXVlc3Rpb24tY2lyY2xlXCI+PC9za3ktaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktbW9kYWwtYnRuLWNsb3NlXCJcbiAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidza3l1eF9tb2RhbF9jbG9zZScgfCBza3lMaWJSZXNvdXJjZXNcIlxuICAgICAgICAgIChjbGljayk9XCJjbG9zZUJ1dHRvbkNsaWNrKClcIlxuICAgICAgICA+XG4gICAgICAgICAgPHNreS1pY29uIGljb249XCJjbG9zZVwiPjwvc2t5LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJza3ktbW9kYWwtY29udGVudCBza3ktcGFkZGluZy1ldmVuLWxhcmdlXCJcbiAgICAgIHJvbGU9XCJyZWdpb25cIlxuICAgICAgdGFiaW5kZXg9XCIwXCJcbiAgICAgIHNreUlkXG4gICAgICBbYXR0ci5hcmlhLWxhYmVsbGVkYnldPVwiaGVhZGVySWQuaWRcIlxuICAgICAgKHNreU1vZGFsU2Nyb2xsU2hhZG93KT1cInNjcm9sbFNoYWRvd0NoYW5nZSgkZXZlbnQpXCJcbiAgICAgICNtb2RhbENvbnRlbnRJZD1cInNreUlkXCJcbiAgICAgICNtb2RhbENvbnRlbnRXcmFwcGVyXG4gICAgPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic2t5LW1vZGFsLWNvbnRlbnRcIj48L25nLWNvbnRlbnQ+XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJza3ktbW9kYWwtZm9vdGVyXCJcbiAgICAgIFtuZ1N0eWxlXT1cIntcbiAgICAgICAgJ2JveC1zaGFkb3cnOiBzY3JvbGxTaGFkb3c/LmJvdHRvbVNoYWRvd1xuICAgICAgfVwiXG4gICAgPlxuICAgICAgPG5nLWNvbnRlbnQgc2VsZWN0PVwic2t5LW1vZGFsLWZvb3RlclwiPjwvbmctY29udGVudD5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cbiJdfQ==
@@ -14,35 +14,35 @@ import { SkyModalScrollShadowDirective } from './modal-scroll-shadow.directive';
14
14
  import { SkyModalComponent } from './modal.component';
15
15
  import * as i0 from "@angular/core";
16
16
  export class SkyModalModule {
17
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyModalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
18
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: SkyModalModule, declarations: [SkyModalComponent,
19
+ SkyModalContentComponent,
20
+ SkyModalFooterComponent,
21
+ SkyModalHeaderComponent,
22
+ SkyModalHostComponent,
23
+ SkyModalIsDirtyDirective,
24
+ SkyModalScrollShadowDirective], imports: [CommonModule,
25
+ RouterModule,
26
+ SkyIconModule,
27
+ SkyIdModule,
28
+ SkyModalsResourcesModule,
29
+ SkyStatusIndicatorModule,
30
+ SkyThemeModule,
31
+ SkyTrimModule], exports: [SkyModalComponent,
32
+ SkyModalContentComponent,
33
+ SkyModalFooterComponent,
34
+ SkyModalHeaderComponent,
35
+ SkyModalIsDirtyDirective] }); }
36
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyModalModule, imports: [CommonModule,
37
+ RouterModule,
38
+ SkyIconModule,
39
+ SkyIdModule,
40
+ SkyModalsResourcesModule,
41
+ SkyStatusIndicatorModule,
42
+ SkyThemeModule,
43
+ SkyTrimModule] }); }
17
44
  }
18
- SkyModalModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyModalModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
19
- SkyModalModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: SkyModalModule, declarations: [SkyModalComponent,
20
- SkyModalContentComponent,
21
- SkyModalFooterComponent,
22
- SkyModalHeaderComponent,
23
- SkyModalHostComponent,
24
- SkyModalIsDirtyDirective,
25
- SkyModalScrollShadowDirective], imports: [CommonModule,
26
- RouterModule,
27
- SkyIconModule,
28
- SkyIdModule,
29
- SkyModalsResourcesModule,
30
- SkyStatusIndicatorModule,
31
- SkyThemeModule,
32
- SkyTrimModule], exports: [SkyModalComponent,
33
- SkyModalContentComponent,
34
- SkyModalFooterComponent,
35
- SkyModalHeaderComponent,
36
- SkyModalIsDirtyDirective] });
37
- SkyModalModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyModalModule, imports: [CommonModule,
38
- RouterModule,
39
- SkyIconModule,
40
- SkyIdModule,
41
- SkyModalsResourcesModule,
42
- SkyStatusIndicatorModule,
43
- SkyThemeModule,
44
- SkyTrimModule] });
45
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyModalModule, decorators: [{
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyModalModule, decorators: [{
46
46
  type: NgModule,
47
47
  args: [{
48
48
  declarations: [
@@ -73,4 +73,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
73
73
  ],
74
74
  }]
75
75
  }] });
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL21vZGFscy9zcmMvbGliL21vZHVsZXMvbW9kYWwvbW9kYWwubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLHdCQUF3QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDNUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU5QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUVqRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNoRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUE4QnRELE1BQU0sT0FBTyxjQUFjOzsyR0FBZCxjQUFjOzRHQUFkLGNBQWMsaUJBMUJ2QixpQkFBaUI7UUFDakIsd0JBQXdCO1FBQ3hCLHVCQUF1QjtRQUN2Qix1QkFBdUI7UUFDdkIscUJBQXFCO1FBQ3JCLHdCQUF3QjtRQUN4Qiw2QkFBNkIsYUFHN0IsWUFBWTtRQUNaLFlBQVk7UUFDWixhQUFhO1FBQ2IsV0FBVztRQUNYLHdCQUF3QjtRQUN4Qix3QkFBd0I7UUFDeEIsY0FBYztRQUNkLGFBQWEsYUFHYixpQkFBaUI7UUFDakIsd0JBQXdCO1FBQ3hCLHVCQUF1QjtRQUN2Qix1QkFBdUI7UUFDdkIsd0JBQXdCOzRHQUdmLGNBQWMsWUFqQnZCLFlBQVk7UUFDWixZQUFZO1FBQ1osYUFBYTtRQUNiLFdBQVc7UUFDWCx3QkFBd0I7UUFDeEIsd0JBQXdCO1FBQ3hCLGNBQWM7UUFDZCxhQUFhOzJGQVVKLGNBQWM7a0JBNUIxQixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixpQkFBaUI7d0JBQ2pCLHdCQUF3Qjt3QkFDeEIsdUJBQXVCO3dCQUN2Qix1QkFBdUI7d0JBQ3ZCLHFCQUFxQjt3QkFDckIsd0JBQXdCO3dCQUN4Qiw2QkFBNkI7cUJBQzlCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixXQUFXO3dCQUNYLHdCQUF3Qjt3QkFDeEIsd0JBQXdCO3dCQUN4QixjQUFjO3dCQUNkLGFBQWE7cUJBQ2Q7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLGlCQUFpQjt3QkFDakIsd0JBQXdCO3dCQUN4Qix1QkFBdUI7d0JBQ3ZCLHVCQUF1Qjt3QkFDdkIsd0JBQXdCO3FCQUN6QjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFNreUlkTW9kdWxlLCBTa3lUcmltTW9kdWxlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuaW1wb3J0IHsgU2t5SWNvbk1vZHVsZSwgU2t5U3RhdHVzSW5kaWNhdG9yTW9kdWxlIH0gZnJvbSAnQHNreXV4L2luZGljYXRvcnMnO1xuaW1wb3J0IHsgU2t5VGhlbWVNb2R1bGUgfSBmcm9tICdAc2t5dXgvdGhlbWUnO1xuXG5pbXBvcnQgeyBTa3lNb2RhbHNSZXNvdXJjZXNNb2R1bGUgfSBmcm9tICcuLi9zaGFyZWQvc2t5LW1vZGFscy1yZXNvdXJjZXMubW9kdWxlJztcblxuaW1wb3J0IHsgU2t5TW9kYWxDb250ZW50Q29tcG9uZW50IH0gZnJvbSAnLi9tb2RhbC1jb250ZW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lNb2RhbEZvb3RlckNvbXBvbmVudCB9IGZyb20gJy4vbW9kYWwtZm9vdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lNb2RhbEhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vbW9kYWwtaGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lNb2RhbEhvc3RDb21wb25lbnQgfSBmcm9tICcuL21vZGFsLWhvc3QuY29tcG9uZW50JztcbmltcG9ydCB7IFNreU1vZGFsSXNEaXJ0eURpcmVjdGl2ZSB9IGZyb20gJy4vbW9kYWwtaXMtZGlydHkuZGlyZWN0aXZlJztcbmltcG9ydCB7IFNreU1vZGFsU2Nyb2xsU2hhZG93RGlyZWN0aXZlIH0gZnJvbSAnLi9tb2RhbC1zY3JvbGwtc2hhZG93LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBTa3lNb2RhbENvbXBvbmVudCB9IGZyb20gJy4vbW9kYWwuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgU2t5TW9kYWxDb21wb25lbnQsXG4gICAgU2t5TW9kYWxDb250ZW50Q29tcG9uZW50LFxuICAgIFNreU1vZGFsRm9vdGVyQ29tcG9uZW50LFxuICAgIFNreU1vZGFsSGVhZGVyQ29tcG9uZW50LFxuICAgIFNreU1vZGFsSG9zdENvbXBvbmVudCxcbiAgICBTa3lNb2RhbElzRGlydHlEaXJlY3RpdmUsXG4gICAgU2t5TW9kYWxTY3JvbGxTaGFkb3dEaXJlY3RpdmUsXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUm91dGVyTW9kdWxlLFxuICAgIFNreUljb25Nb2R1bGUsXG4gICAgU2t5SWRNb2R1bGUsXG4gICAgU2t5TW9kYWxzUmVzb3VyY2VzTW9kdWxlLFxuICAgIFNreVN0YXR1c0luZGljYXRvck1vZHVsZSxcbiAgICBTa3lUaGVtZU1vZHVsZSxcbiAgICBTa3lUcmltTW9kdWxlLFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgU2t5TW9kYWxDb21wb25lbnQsXG4gICAgU2t5TW9kYWxDb250ZW50Q29tcG9uZW50LFxuICAgIFNreU1vZGFsRm9vdGVyQ29tcG9uZW50LFxuICAgIFNreU1vZGFsSGVhZGVyQ29tcG9uZW50LFxuICAgIFNreU1vZGFsSXNEaXJ0eURpcmVjdGl2ZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5TW9kYWxNb2R1bGUge31cbiJdfQ==
76
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL21vZGFscy9zcmMvbGliL21vZHVsZXMvbW9kYWwvbW9kYWwubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLHdCQUF3QixFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDNUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU5QyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUVqRixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUNyRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNuRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUMvRCxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNoRixPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQzs7QUE4QnRELE1BQU0sT0FBTyxjQUFjOzhHQUFkLGNBQWM7K0dBQWQsY0FBYyxpQkExQnZCLGlCQUFpQjtZQUNqQix3QkFBd0I7WUFDeEIsdUJBQXVCO1lBQ3ZCLHVCQUF1QjtZQUN2QixxQkFBcUI7WUFDckIsd0JBQXdCO1lBQ3hCLDZCQUE2QixhQUc3QixZQUFZO1lBQ1osWUFBWTtZQUNaLGFBQWE7WUFDYixXQUFXO1lBQ1gsd0JBQXdCO1lBQ3hCLHdCQUF3QjtZQUN4QixjQUFjO1lBQ2QsYUFBYSxhQUdiLGlCQUFpQjtZQUNqQix3QkFBd0I7WUFDeEIsdUJBQXVCO1lBQ3ZCLHVCQUF1QjtZQUN2Qix3QkFBd0I7K0dBR2YsY0FBYyxZQWpCdkIsWUFBWTtZQUNaLFlBQVk7WUFDWixhQUFhO1lBQ2IsV0FBVztZQUNYLHdCQUF3QjtZQUN4Qix3QkFBd0I7WUFDeEIsY0FBYztZQUNkLGFBQWE7OzJGQVVKLGNBQWM7a0JBNUIxQixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRTt3QkFDWixpQkFBaUI7d0JBQ2pCLHdCQUF3Qjt3QkFDeEIsdUJBQXVCO3dCQUN2Qix1QkFBdUI7d0JBQ3ZCLHFCQUFxQjt3QkFDckIsd0JBQXdCO3dCQUN4Qiw2QkFBNkI7cUJBQzlCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFlBQVk7d0JBQ1osYUFBYTt3QkFDYixXQUFXO3dCQUNYLHdCQUF3Qjt3QkFDeEIsd0JBQXdCO3dCQUN4QixjQUFjO3dCQUNkLGFBQWE7cUJBQ2Q7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLGlCQUFpQjt3QkFDakIsd0JBQXdCO3dCQUN4Qix1QkFBdUI7d0JBQ3ZCLHVCQUF1Qjt3QkFDdkIsd0JBQXdCO3FCQUN6QjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFNreUlkTW9kdWxlLCBTa3lUcmltTW9kdWxlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuaW1wb3J0IHsgU2t5SWNvbk1vZHVsZSwgU2t5U3RhdHVzSW5kaWNhdG9yTW9kdWxlIH0gZnJvbSAnQHNreXV4L2luZGljYXRvcnMnO1xuaW1wb3J0IHsgU2t5VGhlbWVNb2R1bGUgfSBmcm9tICdAc2t5dXgvdGhlbWUnO1xuXG5pbXBvcnQgeyBTa3lNb2RhbHNSZXNvdXJjZXNNb2R1bGUgfSBmcm9tICcuLi9zaGFyZWQvc2t5LW1vZGFscy1yZXNvdXJjZXMubW9kdWxlJztcblxuaW1wb3J0IHsgU2t5TW9kYWxDb250ZW50Q29tcG9uZW50IH0gZnJvbSAnLi9tb2RhbC1jb250ZW50LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lNb2RhbEZvb3RlckNvbXBvbmVudCB9IGZyb20gJy4vbW9kYWwtZm9vdGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lNb2RhbEhlYWRlckNvbXBvbmVudCB9IGZyb20gJy4vbW9kYWwtaGVhZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lNb2RhbEhvc3RDb21wb25lbnQgfSBmcm9tICcuL21vZGFsLWhvc3QuY29tcG9uZW50JztcbmltcG9ydCB7IFNreU1vZGFsSXNEaXJ0eURpcmVjdGl2ZSB9IGZyb20gJy4vbW9kYWwtaXMtZGlydHkuZGlyZWN0aXZlJztcbmltcG9ydCB7IFNreU1vZGFsU2Nyb2xsU2hhZG93RGlyZWN0aXZlIH0gZnJvbSAnLi9tb2RhbC1zY3JvbGwtc2hhZG93LmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBTa3lNb2RhbENvbXBvbmVudCB9IGZyb20gJy4vbW9kYWwuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbXG4gICAgU2t5TW9kYWxDb21wb25lbnQsXG4gICAgU2t5TW9kYWxDb250ZW50Q29tcG9uZW50LFxuICAgIFNreU1vZGFsRm9vdGVyQ29tcG9uZW50LFxuICAgIFNreU1vZGFsSGVhZGVyQ29tcG9uZW50LFxuICAgIFNreU1vZGFsSG9zdENvbXBvbmVudCxcbiAgICBTa3lNb2RhbElzRGlydHlEaXJlY3RpdmUsXG4gICAgU2t5TW9kYWxTY3JvbGxTaGFkb3dEaXJlY3RpdmUsXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgUm91dGVyTW9kdWxlLFxuICAgIFNreUljb25Nb2R1bGUsXG4gICAgU2t5SWRNb2R1bGUsXG4gICAgU2t5TW9kYWxzUmVzb3VyY2VzTW9kdWxlLFxuICAgIFNreVN0YXR1c0luZGljYXRvck1vZHVsZSxcbiAgICBTa3lUaGVtZU1vZHVsZSxcbiAgICBTa3lUcmltTW9kdWxlLFxuICBdLFxuICBleHBvcnRzOiBbXG4gICAgU2t5TW9kYWxDb21wb25lbnQsXG4gICAgU2t5TW9kYWxDb250ZW50Q29tcG9uZW50LFxuICAgIFNreU1vZGFsRm9vdGVyQ29tcG9uZW50LFxuICAgIFNreU1vZGFsSGVhZGVyQ29tcG9uZW50LFxuICAgIFNreU1vZGFsSXNEaXJ0eURpcmVjdGl2ZSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5TW9kYWxNb2R1bGUge31cbiJdfQ==
@@ -0,0 +1,97 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { SkyModalHostContext } from './modal-host-context';
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 launches modals.
9
+ * @dynamic
10
+ */
11
+ export class SkyModalService {
12
+ #dynamicComponentService;
13
+ constructor(dynamicComponentService) {
14
+ this.#dynamicComponentService = dynamicComponentService;
15
+ }
16
+ /**
17
+ * @internal
18
+ * Removes the modal host from the DOM.
19
+ */
20
+ dispose() {
21
+ if (SkyModalService.host) {
22
+ this.#dynamicComponentService.removeComponent(SkyModalService.host);
23
+ SkyModalService.host = undefined;
24
+ }
25
+ }
26
+ /**
27
+ * Opens a modal using the specified component.
28
+ * @param component Determines the component to render.
29
+ * @param {SkyModalConfigurationInterface} config Specifies configuration options for the modal.
30
+ */
31
+ open(component, config) {
32
+ const modalInstance = new SkyModalInstance();
33
+ this.#createHostComponent();
34
+ const params = this.#getConfigFromParameter(config);
35
+ params.providers ||= [];
36
+ params.providers.push({
37
+ provide: SkyModalInstance,
38
+ useValue: modalInstance,
39
+ });
40
+ if (SkyModalService.host) {
41
+ SkyModalService.host.instance.open(modalInstance, component, params);
42
+ }
43
+ return modalInstance;
44
+ }
45
+ #getConfigFromParameter(providersOrConfig) {
46
+ const defaultParams = {
47
+ providers: [],
48
+ fullPage: false,
49
+ size: 'medium',
50
+ tiledBody: false,
51
+ };
52
+ let params = {};
53
+ let method = undefined;
54
+ // Object Literal Lookup for backwards compatibility.
55
+ method = {
56
+ 'providers?': Object.assign({}, defaultParams, {
57
+ providers: providersOrConfig,
58
+ }),
59
+ config: Object.assign({}, defaultParams, providersOrConfig),
60
+ };
61
+ if (Array.isArray(providersOrConfig) === true) {
62
+ params = method['providers?'];
63
+ }
64
+ else {
65
+ params = method['config'];
66
+ }
67
+ return params;
68
+ }
69
+ #createHostComponent() {
70
+ if (!SkyModalService.host) {
71
+ SkyModalService.host = this.#dynamicComponentService.createComponent(SkyModalHostComponent, {
72
+ providers: [
73
+ {
74
+ provide: SkyModalHostContext,
75
+ useValue: new SkyModalHostContext({
76
+ teardownCallback: () => {
77
+ this.dispose();
78
+ },
79
+ }),
80
+ },
81
+ ],
82
+ });
83
+ }
84
+ }
85
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyModalService, deps: [{ token: i1.SkyDynamicComponentService }], target: i0.ɵɵFactoryTarget.Injectable }); }
86
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyModalService, providedIn: 'any' }); }
87
+ }
88
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyModalService, decorators: [{
89
+ type: Injectable,
90
+ args: [{
91
+ // Must be 'any' so that the modal component is created in the context of its module's injector.
92
+ // If set to 'root', the component's dependency injections would only be derived from the root
93
+ // injector and may lose context if the modal was opened from within a lazy-loaded module.
94
+ providedIn: 'any',
95
+ }]
96
+ }], ctorParameters: function () { return [{ type: i1.SkyDynamicComponentService }]; } });
97
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9tb2RhbHMvc3JjL2xpYi9tb2R1bGVzL21vZGFsL21vZGFsLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFnQixVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHekQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7OztBQUdwRDs7O0dBR0c7QUFPSCxNQUFNLE9BQU8sZUFBZTtJQUcxQix3QkFBd0IsQ0FBNkI7SUFFckQsWUFBWSx1QkFBbUQ7UUFDN0QsSUFBSSxDQUFDLHdCQUF3QixHQUFHLHVCQUF1QixDQUFDO0lBQzFELENBQUM7SUFFRDs7O09BR0c7SUFDSSxPQUFPO1FBQ1osSUFBSSxlQUFlLENBQUMsSUFBSSxFQUFFO1lBQ3hCLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxlQUFlLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3BFLGVBQWUsQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDO1NBQ2xDO0lBQ0gsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxJQUFJLENBQ1QsU0FBYyxFQUNkLE1BQStDO1FBRS9DLE1BQU0sYUFBYSxHQUFHLElBQUksZ0JBQWdCLEVBQUUsQ0FBQztRQUM3QyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUM1QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFcEQsTUFBTSxDQUFDLFNBQVMsS0FBSyxFQUFFLENBQUM7UUFDeEIsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUM7WUFDcEIsT0FBTyxFQUFFLGdCQUFnQjtZQUN6QixRQUFRLEVBQUUsYUFBYTtTQUN4QixDQUFDLENBQUM7UUFFSCxJQUFJLGVBQWUsQ0FBQyxJQUFJLEVBQUU7WUFDeEIsZUFBZSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxTQUFTLEVBQUUsTUFBTSxDQUFDLENBQUM7U0FDdEU7UUFFRCxPQUFPLGFBQWEsQ0FBQztJQUN2QixDQUFDO0lBRUQsdUJBQXVCLENBQ3JCLGlCQUFzQjtRQUV0QixNQUFNLGFBQWEsR0FBbUM7WUFDcEQsU0FBUyxFQUFFLEVBQUU7WUFDYixRQUFRLEVBQUUsS0FBSztZQUNmLElBQUksRUFBRSxRQUFRO1lBQ2QsU0FBUyxFQUFFLEtBQUs7U0FDakIsQ0FBQztRQUNGLElBQUksTUFBTSxHQUFtQyxFQUFFLENBQUM7UUFDaEQsSUFBSSxNQUFNLEdBQVEsU0FBUyxDQUFDO1FBRTVCLHFEQUFxRDtRQUNyRCxNQUFNLEdBQUc7WUFDUCxZQUFZLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsYUFBYSxFQUFFO2dCQUM3QyxTQUFTLEVBQUUsaUJBQWlCO2FBQzdCLENBQUM7WUFDRixNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixDQUFDO1NBQzVELENBQUM7UUFFRixJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsS0FBSyxJQUFJLEVBQUU7WUFDN0MsTUFBTSxHQUFHLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUMvQjthQUFNO1lBQ0wsTUFBTSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztTQUMzQjtRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFRCxvQkFBb0I7UUFDbEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEVBQUU7WUFDekIsZUFBZSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQUMsZUFBZSxDQUNsRSxxQkFBcUIsRUFDckI7Z0JBQ0UsU0FBUyxFQUFFO29CQUNUO3dCQUNFLE9BQU8sRUFBRSxtQkFBbUI7d0JBQzVCLFFBQVEsRUFBRSxJQUFJLG1CQUFtQixDQUFDOzRCQUNoQyxnQkFBZ0IsRUFBRSxHQUFHLEVBQUU7Z0NBQ3JCLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQzs0QkFDakIsQ0FBQzt5QkFDRixDQUFDO3FCQUNIO2lCQUNGO2FBQ0YsQ0FDRixDQUFDO1NBQ0g7SUFDSCxDQUFDOzhHQTdGVSxlQUFlO2tIQUFmLGVBQWUsY0FGZCxLQUFLOzsyRkFFTixlQUFlO2tCQU4zQixVQUFVO21CQUFDO29CQUNWLGdHQUFnRztvQkFDaEcsOEZBQThGO29CQUM5RiwwRkFBMEY7b0JBQzFGLFVBQVUsRUFBRSxLQUFLO2lCQUNsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudFJlZiwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5RHluYW1pY0NvbXBvbmVudFNlcnZpY2UgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5cbmltcG9ydCB7IFNreU1vZGFsSG9zdENvbnRleHQgfSBmcm9tICcuL21vZGFsLWhvc3QtY29udGV4dCc7XG5pbXBvcnQgeyBTa3lNb2RhbEhvc3RDb21wb25lbnQgfSBmcm9tICcuL21vZGFsLWhvc3QuY29tcG9uZW50JztcbmltcG9ydCB7IFNreU1vZGFsSW5zdGFuY2UgfSBmcm9tICcuL21vZGFsLWluc3RhbmNlJztcbmltcG9ydCB7IFNreU1vZGFsQ29uZmlndXJhdGlvbkludGVyZmFjZSB9IGZyb20gJy4vbW9kYWwuaW50ZXJmYWNlJztcblxuLyoqXG4gKiBBIHNlcnZpY2UgdGhhdCBsYXVuY2hlcyBtb2RhbHMuXG4gKiBAZHluYW1pY1xuICovXG5ASW5qZWN0YWJsZSh7XG4gIC8vIE11c3QgYmUgJ2FueScgc28gdGhhdCB0aGUgbW9kYWwgY29tcG9uZW50IGlzIGNyZWF0ZWQgaW4gdGhlIGNvbnRleHQgb2YgaXRzIG1vZHVsZSdzIGluamVjdG9yLlxuICAvLyBJZiBzZXQgdG8gJ3Jvb3QnLCB0aGUgY29tcG9uZW50J3MgZGVwZW5kZW5jeSBpbmplY3Rpb25zIHdvdWxkIG9ubHkgYmUgZGVyaXZlZCBmcm9tIHRoZSByb290XG4gIC8vIGluamVjdG9yIGFuZCBtYXkgbG9zZSBjb250ZXh0IGlmIHRoZSBtb2RhbCB3YXMgb3BlbmVkIGZyb20gd2l0aGluIGEgbGF6eS1sb2FkZWQgbW9kdWxlLlxuICBwcm92aWRlZEluOiAnYW55Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5TW9kYWxTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBzdGF0aWMgaG9zdDogQ29tcG9uZW50UmVmPFNreU1vZGFsSG9zdENvbXBvbmVudD4gfCB1bmRlZmluZWQ7XG5cbiAgI2R5bmFtaWNDb21wb25lbnRTZXJ2aWNlOiBTa3lEeW5hbWljQ29tcG9uZW50U2VydmljZTtcblxuICBjb25zdHJ1Y3RvcihkeW5hbWljQ29tcG9uZW50U2VydmljZTogU2t5RHluYW1pY0NvbXBvbmVudFNlcnZpY2UpIHtcbiAgICB0aGlzLiNkeW5hbWljQ29tcG9uZW50U2VydmljZSA9IGR5bmFtaWNDb21wb25lbnRTZXJ2aWNlO1xuICB9XG5cbiAgLyoqXG4gICAqIEBpbnRlcm5hbFxuICAgKiBSZW1vdmVzIHRoZSBtb2RhbCBob3N0IGZyb20gdGhlIERPTS5cbiAgICovXG4gIHB1YmxpYyBkaXNwb3NlKCk6IHZvaWQge1xuICAgIGlmIChTa3lNb2RhbFNlcnZpY2UuaG9zdCkge1xuICAgICAgdGhpcy4jZHluYW1pY0NvbXBvbmVudFNlcnZpY2UucmVtb3ZlQ29tcG9uZW50KFNreU1vZGFsU2VydmljZS5ob3N0KTtcbiAgICAgIFNreU1vZGFsU2VydmljZS5ob3N0ID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBPcGVucyBhIG1vZGFsIHVzaW5nIHRoZSBzcGVjaWZpZWQgY29tcG9uZW50LlxuICAgKiBAcGFyYW0gY29tcG9uZW50IERldGVybWluZXMgdGhlIGNvbXBvbmVudCB0byByZW5kZXIuXG4gICAqIEBwYXJhbSB7U2t5TW9kYWxDb25maWd1cmF0aW9uSW50ZXJmYWNlfSBjb25maWcgU3BlY2lmaWVzIGNvbmZpZ3VyYXRpb24gb3B0aW9ucyBmb3IgdGhlIG1vZGFsLlxuICAgKi9cbiAgcHVibGljIG9wZW4oXG4gICAgY29tcG9uZW50OiBhbnksXG4gICAgY29uZmlnPzogU2t5TW9kYWxDb25maWd1cmF0aW9uSW50ZXJmYWNlIHwgYW55W11cbiAgKTogU2t5TW9kYWxJbnN0YW5jZSB7XG4gICAgY29uc3QgbW9kYWxJbnN0YW5jZSA9IG5ldyBTa3lNb2RhbEluc3RhbmNlKCk7XG4gICAgdGhpcy4jY3JlYXRlSG9zdENvbXBvbmVudCgpO1xuICAgIGNvbnN0IHBhcmFtcyA9IHRoaXMuI2dldENvbmZpZ0Zyb21QYXJhbWV0ZXIoY29uZmlnKTtcblxuICAgIHBhcmFtcy5wcm92aWRlcnMgfHw9IFtdO1xuICAgIHBhcmFtcy5wcm92aWRlcnMucHVzaCh7XG4gICAgICBwcm92aWRlOiBTa3lNb2RhbEluc3RhbmNlLFxuICAgICAgdXNlVmFsdWU6IG1vZGFsSW5zdGFuY2UsXG4gICAgfSk7XG5cbiAgICBpZiAoU2t5TW9kYWxTZXJ2aWNlLmhvc3QpIHtcbiAgICAgIFNreU1vZGFsU2VydmljZS5ob3N0Lmluc3RhbmNlLm9wZW4obW9kYWxJbnN0YW5jZSwgY29tcG9uZW50LCBwYXJhbXMpO1xuICAgIH1cblxuICAgIHJldHVybiBtb2RhbEluc3RhbmNlO1xuICB9XG5cbiAgI2dldENvbmZpZ0Zyb21QYXJhbWV0ZXIoXG4gICAgcHJvdmlkZXJzT3JDb25maWc6IGFueVxuICApOiBTa3lNb2RhbENvbmZpZ3VyYXRpb25JbnRlcmZhY2Uge1xuICAgIGNvbnN0IGRlZmF1bHRQYXJhbXM6IFNreU1vZGFsQ29uZmlndXJhdGlvbkludGVyZmFjZSA9IHtcbiAgICAgIHByb3ZpZGVyczogW10sXG4gICAgICBmdWxsUGFnZTogZmFsc2UsXG4gICAgICBzaXplOiAnbWVkaXVtJyxcbiAgICAgIHRpbGVkQm9keTogZmFsc2UsXG4gICAgfTtcbiAgICBsZXQgcGFyYW1zOiBTa3lNb2RhbENvbmZpZ3VyYXRpb25JbnRlcmZhY2UgPSB7fTtcbiAgICBsZXQgbWV0aG9kOiBhbnkgPSB1bmRlZmluZWQ7XG5cbiAgICAvLyBPYmplY3QgTGl0ZXJhbCBMb29rdXAgZm9yIGJhY2t3YXJkcyBjb21wYXRpYmlsaXR5LlxuICAgIG1ldGhvZCA9IHtcbiAgICAgICdwcm92aWRlcnM/JzogT2JqZWN0LmFzc2lnbih7fSwgZGVmYXVsdFBhcmFtcywge1xuICAgICAgICBwcm92aWRlcnM6IHByb3ZpZGVyc09yQ29uZmlnLFxuICAgICAgfSksXG4gICAgICBjb25maWc6IE9iamVjdC5hc3NpZ24oe30sIGRlZmF1bHRQYXJhbXMsIHByb3ZpZGVyc09yQ29uZmlnKSxcbiAgICB9O1xuXG4gICAgaWYgKEFycmF5LmlzQXJyYXkocHJvdmlkZXJzT3JDb25maWcpID09PSB0cnVlKSB7XG4gICAgICBwYXJhbXMgPSBtZXRob2RbJ3Byb3ZpZGVycz8nXTtcbiAgICB9IGVsc2Uge1xuICAgICAgcGFyYW1zID0gbWV0aG9kWydjb25maWcnXTtcbiAgICB9XG5cbiAgICByZXR1cm4gcGFyYW1zO1xuICB9XG5cbiAgI2NyZWF0ZUhvc3RDb21wb25lbnQoKTogdm9pZCB7XG4gICAgaWYgKCFTa3lNb2RhbFNlcnZpY2UuaG9zdCkge1xuICAgICAgU2t5TW9kYWxTZXJ2aWNlLmhvc3QgPSB0aGlzLiNkeW5hbWljQ29tcG9uZW50U2VydmljZS5jcmVhdGVDb21wb25lbnQoXG4gICAgICAgIFNreU1vZGFsSG9zdENvbXBvbmVudCxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBwcm92aWRlOiBTa3lNb2RhbEhvc3RDb250ZXh0LFxuICAgICAgICAgICAgICB1c2VWYWx1ZTogbmV3IFNreU1vZGFsSG9zdENvbnRleHQoe1xuICAgICAgICAgICAgICAgIHRlYXJkb3duQ2FsbGJhY2s6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgIHRoaXMuZGlzcG9zZSgpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdLFxuICAgICAgICB9XG4gICAgICApO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -0,0 +1,61 @@
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
+ skyux_modal_dirty_default_message: {
21
+ message: 'Are you sure you want to discard your changes?',
22
+ },
23
+ skyux_modal_dirty_default_discard_changes_text: {
24
+ message: 'Discard changes',
25
+ },
26
+ skyux_modal_dirty_default_keep_working_text: { message: 'Keep working' },
27
+ },
28
+ };
29
+ export class SkyModalsResourcesProvider {
30
+ getString(localeInfo, name) {
31
+ return getLibStringForLocale(RESOURCES, localeInfo.locale, name);
32
+ }
33
+ }
34
+ /**
35
+ * Import into any component library module that needs to use resource strings.
36
+ */
37
+ export class SkyModalsResourcesModule {
38
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyModalsResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
39
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: SkyModalsResourcesModule, exports: [SkyI18nModule] }); }
40
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyModalsResourcesModule, providers: [
41
+ {
42
+ provide: SKY_LIB_RESOURCES_PROVIDERS,
43
+ useClass: SkyModalsResourcesProvider,
44
+ multi: true,
45
+ },
46
+ ], imports: [SkyI18nModule] }); }
47
+ }
48
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyModalsResourcesModule, decorators: [{
49
+ type: NgModule,
50
+ args: [{
51
+ exports: [SkyI18nModule],
52
+ providers: [
53
+ {
54
+ provide: SKY_LIB_RESOURCES_PROVIDERS,
55
+ useClass: SkyModalsResourcesProvider,
56
+ multi: true,
57
+ },
58
+ ],
59
+ }]
60
+ }] });
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2t5LW1vZGFscy1yZXNvdXJjZXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL21vZGFscy9zcmMvbGliL21vZHVsZXMvc2hhcmVkL3NreS1tb2RhbHMtcmVzb3VyY2VzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7R0FLRztBQUNILE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUNMLDJCQUEyQixFQUUzQixhQUFhLEVBR2IscUJBQXFCLEdBQ3RCLE1BQU0sYUFBYSxDQUFDOztBQUVyQixNQUFNLFNBQVMsR0FBMEM7SUFDdkQsT0FBTyxFQUFFO1FBQ1Asb0NBQW9DLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFO1FBQ3ZELHFDQUFxQyxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRTtRQUN6RCxvQ0FBb0MsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUU7UUFDdkQsd0NBQXdDLEVBQUUsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFO1FBQy9ELGlCQUFpQixFQUFFLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRTtRQUM3QyxxQkFBcUIsRUFBRSxFQUFFLE9BQU8sRUFBRSxXQUFXLEVBQUU7UUFDL0MsZ0NBQWdDLEVBQUUsRUFBRSxPQUFPLEVBQUUsUUFBUSxFQUFFO1FBQ3ZELGlDQUFpQyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sRUFBRTtRQUN0RCxpQ0FBaUMsRUFBRTtZQUNqQyxPQUFPLEVBQUUsZ0RBQWdEO1NBQzFEO1FBQ0QsOENBQThDLEVBQUU7WUFDOUMsT0FBTyxFQUFFLGlCQUFpQjtTQUMzQjtRQUNELDJDQUEyQyxFQUFFLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRTtLQUN6RTtDQUNGLENBQUM7QUFFRixNQUFNLE9BQU8sMEJBQTBCO0lBQzlCLFNBQVMsQ0FDZCxVQUE0QixFQUM1QixJQUFZO1FBRVosT0FBTyxxQkFBcUIsQ0FBQyxTQUFTLEVBQUUsVUFBVSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNuRSxDQUFDO0NBQ0Y7QUFFRDs7R0FFRztBQVdILE1BQU0sT0FBTyx3QkFBd0I7OEdBQXhCLHdCQUF3QjsrR0FBeEIsd0JBQXdCLFlBVHpCLGFBQWE7K0dBU1osd0JBQXdCLGFBUnhCO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLDJCQUEyQjtnQkFDcEMsUUFBUSxFQUFFLDBCQUEwQjtnQkFDcEMsS0FBSyxFQUFFLElBQUk7YUFDWjtTQUNGLFlBUFMsYUFBYTs7MkZBU1osd0JBQXdCO2tCQVZwQyxRQUFRO21CQUFDO29CQUNSLE9BQU8sRUFBRSxDQUFDLGFBQWEsQ0FBQztvQkFDeEIsU0FBUyxFQUFFO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSwyQkFBMkI7NEJBQ3BDLFFBQVEsRUFBRSwwQkFBMEI7NEJBQ3BDLEtBQUssRUFBRSxJQUFJO3lCQUNaO3FCQUNGO2lCQUNGIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBOT1RJQ0U6IERPIE5PVCBNT0RJRlkgVEhJUyBGSUxFIVxuICogVGhlIGNvbnRlbnRzIG9mIHRoaXMgZmlsZSB3ZXJlIGF1dG9tYXRpY2FsbHkgZ2VuZXJhdGVkIGJ5XG4gKiB0aGUgJ25nIGdlbmVyYXRlIEBza3l1eC9pMThuOmxpYi1yZXNvdXJjZXMtbW9kdWxlIGxpYi9tb2R1bGVzL3NoYXJlZC9za3ktbW9kYWxzJyBzY2hlbWF0aWMuXG4gKiBUbyB1cGRhdGUgdGhpcyBmaWxlLCBzaW1wbHkgcmVydW4gdGhlIGNvbW1hbmQuXG4gKi9cbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBTS1lfTElCX1JFU09VUkNFU19QUk9WSURFUlMsXG4gIFNreUFwcExvY2FsZUluZm8sXG4gIFNreUkxOG5Nb2R1bGUsXG4gIFNreUxpYlJlc291cmNlcyxcbiAgU2t5TGliUmVzb3VyY2VzUHJvdmlkZXIsXG4gIGdldExpYlN0cmluZ0ZvckxvY2FsZSxcbn0gZnJvbSAnQHNreXV4L2kxOG4nO1xuXG5jb25zdCBSRVNPVVJDRVM6IHsgW2xvY2FsZTogc3RyaW5nXTogU2t5TGliUmVzb3VyY2VzIH0gPSB7XG4gICdFTi1VUyc6IHtcbiAgICBza3l1eF9jb25maXJtX2RpYWxvZ19kZWZhdWx0X29rX3RleHQ6IHsgbWVzc2FnZTogJ09LJyB9LFxuICAgIHNreXV4X2NvbmZpcm1fZGlhbG9nX2RlZmF1bHRfeWVzX3RleHQ6IHsgbWVzc2FnZTogJ1llcycgfSxcbiAgICBza3l1eF9jb25maXJtX2RpYWxvZ19kZWZhdWx0X25vX3RleHQ6IHsgbWVzc2FnZTogJ05vJyB9LFxuICAgIHNreXV4X2NvbmZpcm1fZGlhbG9nX2RlZmF1bHRfY2FuY2VsX3RleHQ6IHsgbWVzc2FnZTogJ0NhbmNlbCcgfSxcbiAgICBza3l1eF9tb2RhbF9jbG9zZTogeyBtZXNzYWdlOiAnQ2xvc2UgbW9kYWwnIH0sXG4gICAgc2t5dXhfbW9kYWxfb3Blbl9oZWxwOiB7IG1lc3NhZ2U6ICdPcGVuIEhlbHAnIH0sXG4gICAgc2t5dXhfbW9kYWxfZm9vdGVyX2NhbmNlbF9idXR0b246IHsgbWVzc2FnZTogJ0NhbmNlbCcgfSxcbiAgICBza3l1eF9tb2RhbF9mb290ZXJfcHJpbWFyeV9idXR0b246IHsgbWVzc2FnZTogJ1NhdmUnIH0sXG4gICAgc2t5dXhfbW9kYWxfZGlydHlfZGVmYXVsdF9tZXNzYWdlOiB7XG4gICAgICBtZXNzYWdlOiAnQXJlIHlvdSBzdXJlIHlvdSB3YW50IHRvIGRpc2NhcmQgeW91ciBjaGFuZ2VzPycsXG4gICAgfSxcbiAgICBza3l1eF9tb2RhbF9kaXJ0eV9kZWZhdWx0X2Rpc2NhcmRfY2hhbmdlc190ZXh0OiB7XG4gICAgICBtZXNzYWdlOiAnRGlzY2FyZCBjaGFuZ2VzJyxcbiAgICB9LFxuICAgIHNreXV4X21vZGFsX2RpcnR5X2RlZmF1bHRfa2VlcF93b3JraW5nX3RleHQ6IHsgbWVzc2FnZTogJ0tlZXAgd29ya2luZycgfSxcbiAgfSxcbn07XG5cbmV4cG9ydCBjbGFzcyBTa3lNb2RhbHNSZXNvdXJjZXNQcm92aWRlciBpbXBsZW1lbnRzIFNreUxpYlJlc291cmNlc1Byb3ZpZGVyIHtcbiAgcHVibGljIGdldFN0cmluZyhcbiAgICBsb2NhbGVJbmZvOiBTa3lBcHBMb2NhbGVJbmZvLFxuICAgIG5hbWU6IHN0cmluZ1xuICApOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiBnZXRMaWJTdHJpbmdGb3JMb2NhbGUoUkVTT1VSQ0VTLCBsb2NhbGVJbmZvLmxvY2FsZSwgbmFtZSk7XG4gIH1cbn1cblxuLyoqXG4gKiBJbXBvcnQgaW50byBhbnkgY29tcG9uZW50IGxpYnJhcnkgbW9kdWxlIHRoYXQgbmVlZHMgdG8gdXNlIHJlc291cmNlIHN0cmluZ3MuXG4gKi9cbkBOZ01vZHVsZSh7XG4gIGV4cG9ydHM6IFtTa3lJMThuTW9kdWxlXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogU0tZX0xJQl9SRVNPVVJDRVNfUFJPVklERVJTLFxuICAgICAgdXNlQ2xhc3M6IFNreU1vZGFsc1Jlc291cmNlc1Byb3ZpZGVyLFxuICAgICAgbXVsdGk6IHRydWUsXG4gICAgfSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5TW9kYWxzUmVzb3VyY2VzTW9kdWxlIHt9XG4iXX0=
@@ -0,0 +1,46 @@
1
+ import { ComponentHarness, HarnessPredicate } from '@angular/cdk/testing';
2
+ /**
3
+ * Harness for interacting with a confirm component in tests.
4
+ * @internal
5
+ */
6
+ export class SkyConfirmButtonHarness extends ComponentHarness {
7
+ static { this.hostSelector = '.sky-confirm-buttons .sky-btn'; }
8
+ /**
9
+ * Gets a `HarnessPredicate` that can be used to search for a
10
+ * `SkyConfirmButtonHarness` that meets certain criteria.
11
+ */
12
+ static with(filters) {
13
+ return new HarnessPredicate(SkyConfirmButtonHarness, filters)
14
+ .addOption('text', filters.text, async (harness, text) => HarnessPredicate.stringMatches(await harness.getText(), text))
15
+ .addOption('styleType', filters.styleType, async (harness, styleType) => HarnessPredicate.stringMatches(await harness.getStyleType(), styleType));
16
+ }
17
+ /**
18
+ * Clicks the confirm button.
19
+ */
20
+ async click() {
21
+ return (await this.host()).click();
22
+ }
23
+ /**
24
+ * Gets the button style of the confirm button.
25
+ */
26
+ async getStyleType() {
27
+ const hostEl = await this.host();
28
+ if (await hostEl.hasClass('sky-btn-primary')) {
29
+ return 'primary';
30
+ }
31
+ else if (await hostEl.hasClass('sky-btn-link')) {
32
+ return 'link';
33
+ }
34
+ else if (await hostEl.hasClass('sky-btn-danger')) {
35
+ return 'danger';
36
+ }
37
+ return 'default';
38
+ }
39
+ /**
40
+ * Gets the text content of the confirm button.
41
+ */
42
+ async getText() {
43
+ return (await this.host()).text();
44
+ }
45
+ }
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybS1idXR0b24taGFybmVzcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9tb2RhbHMvdGVzdGluZy9zcmMvY29uZmlybS9jb25maXJtLWJ1dHRvbi1oYXJuZXNzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBSzFFOzs7R0FHRztBQUNILE1BQU0sT0FBTyx1QkFBd0IsU0FBUSxnQkFBZ0I7YUFDN0MsaUJBQVksR0FBRywrQkFBK0IsQ0FBQztJQUU3RDs7O09BR0c7SUFDSSxNQUFNLENBQUMsSUFBSSxDQUNoQixPQUF1QztRQUV2QyxPQUFPLElBQUksZ0JBQWdCLENBQUMsdUJBQXVCLEVBQUUsT0FBTyxDQUFDO2FBQzFELFNBQVMsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxFQUFFLENBQ3ZELGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxNQUFNLE9BQU8sQ0FBQyxPQUFPLEVBQUUsRUFBRSxJQUFJLENBQUMsQ0FDOUQ7YUFDQSxTQUFTLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxTQUFTLEVBQUUsS0FBSyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsRUFBRSxDQUN0RSxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsTUFBTSxPQUFPLENBQUMsWUFBWSxFQUFFLEVBQUUsU0FBUyxDQUFDLENBQ3hFLENBQUM7SUFDTixDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsS0FBSztRQUNoQixPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsWUFBWTtRQUN2QixNQUFNLE1BQU0sR0FBRyxNQUFNLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUVqQyxJQUFJLE1BQU0sTUFBTSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxFQUFFO1lBQzVDLE9BQU8sU0FBUyxDQUFDO1NBQ2xCO2FBQU0sSUFBSSxNQUFNLE1BQU0sQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLEVBQUU7WUFDaEQsT0FBTyxNQUFNLENBQUM7U0FDZjthQUFNLElBQUksTUFBTSxNQUFNLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLEVBQUU7WUFDbEQsT0FBTyxRQUFRLENBQUM7U0FDakI7UUFDRCxPQUFPLFNBQVMsQ0FBQztJQUNuQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsT0FBTztRQUNsQixPQUFPLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNwQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50SGFybmVzcywgSGFybmVzc1ByZWRpY2F0ZSB9IGZyb20gJ0Bhbmd1bGFyL2Nkay90ZXN0aW5nJztcbmltcG9ydCB7IFNreUNvbmZpcm1CdXR0b25TdHlsZVR5cGUgfSBmcm9tICdAc2t5dXgvbW9kYWxzJztcblxuaW1wb3J0IHsgU2t5Q29uZmlybUJ1dHRvbkhhcm5lc3NGaWx0ZXJzIH0gZnJvbSAnLi9jb25maXJtLWJ1dHRvbi1oYXJuZXNzLWZpbHRlcnMnO1xuXG4vKipcbiAqIEhhcm5lc3MgZm9yIGludGVyYWN0aW5nIHdpdGggYSBjb25maXJtIGNvbXBvbmVudCBpbiB0ZXN0cy5cbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgY2xhc3MgU2t5Q29uZmlybUJ1dHRvbkhhcm5lc3MgZXh0ZW5kcyBDb21wb25lbnRIYXJuZXNzIHtcbiAgcHVibGljIHN0YXRpYyBob3N0U2VsZWN0b3IgPSAnLnNreS1jb25maXJtLWJ1dHRvbnMgLnNreS1idG4nO1xuXG4gIC8qKlxuICAgKiBHZXRzIGEgYEhhcm5lc3NQcmVkaWNhdGVgIHRoYXQgY2FuIGJlIHVzZWQgdG8gc2VhcmNoIGZvciBhXG4gICAqIGBTa3lDb25maXJtQnV0dG9uSGFybmVzc2AgdGhhdCBtZWV0cyBjZXJ0YWluIGNyaXRlcmlhLlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB3aXRoKFxuICAgIGZpbHRlcnM6IFNreUNvbmZpcm1CdXR0b25IYXJuZXNzRmlsdGVyc1xuICApOiBIYXJuZXNzUHJlZGljYXRlPFNreUNvbmZpcm1CdXR0b25IYXJuZXNzPiB7XG4gICAgcmV0dXJuIG5ldyBIYXJuZXNzUHJlZGljYXRlKFNreUNvbmZpcm1CdXR0b25IYXJuZXNzLCBmaWx0ZXJzKVxuICAgICAgLmFkZE9wdGlvbigndGV4dCcsIGZpbHRlcnMudGV4dCwgYXN5bmMgKGhhcm5lc3MsIHRleHQpID0+XG4gICAgICAgIEhhcm5lc3NQcmVkaWNhdGUuc3RyaW5nTWF0Y2hlcyhhd2FpdCBoYXJuZXNzLmdldFRleHQoKSwgdGV4dClcbiAgICAgIClcbiAgICAgIC5hZGRPcHRpb24oJ3N0eWxlVHlwZScsIGZpbHRlcnMuc3R5bGVUeXBlLCBhc3luYyAoaGFybmVzcywgc3R5bGVUeXBlKSA9PlxuICAgICAgICBIYXJuZXNzUHJlZGljYXRlLnN0cmluZ01hdGNoZXMoYXdhaXQgaGFybmVzcy5nZXRTdHlsZVR5cGUoKSwgc3R5bGVUeXBlKVxuICAgICAgKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDbGlja3MgdGhlIGNvbmZpcm0gYnV0dG9uLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGNsaWNrKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiAoYXdhaXQgdGhpcy5ob3N0KCkpLmNsaWNrKCk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgYnV0dG9uIHN0eWxlIG9mIHRoZSBjb25maXJtIGJ1dHRvbi5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRTdHlsZVR5cGUoKTogUHJvbWlzZTxTa3lDb25maXJtQnV0dG9uU3R5bGVUeXBlPiB7XG4gICAgY29uc3QgaG9zdEVsID0gYXdhaXQgdGhpcy5ob3N0KCk7XG5cbiAgICBpZiAoYXdhaXQgaG9zdEVsLmhhc0NsYXNzKCdza3ktYnRuLXByaW1hcnknKSkge1xuICAgICAgcmV0dXJuICdwcmltYXJ5JztcbiAgICB9IGVsc2UgaWYgKGF3YWl0IGhvc3RFbC5oYXNDbGFzcygnc2t5LWJ0bi1saW5rJykpIHtcbiAgICAgIHJldHVybiAnbGluayc7XG4gICAgfSBlbHNlIGlmIChhd2FpdCBob3N0RWwuaGFzQ2xhc3MoJ3NreS1idG4tZGFuZ2VyJykpIHtcbiAgICAgIHJldHVybiAnZGFuZ2VyJztcbiAgICB9XG4gICAgcmV0dXJuICdkZWZhdWx0JztcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSB0ZXh0IGNvbnRlbnQgb2YgdGhlIGNvbmZpcm0gYnV0dG9uLlxuICAgKi9cbiAgcHVibGljIGFzeW5jIGdldFRleHQoKTogUHJvbWlzZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gKGF3YWl0IHRoaXMuaG9zdCgpKS50ZXh0KCk7XG4gIH1cbn1cbiJdfQ==