@skyux/modals 8.7.0 → 9.0.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/esm2022/lib/modules/confirm/confirm.component.mjs +112 -0
  2. package/{esm2020 → esm2022}/lib/modules/confirm/confirm.module.mjs +13 -13
  3. package/esm2022/lib/modules/confirm/confirm.service.mjs +54 -0
  4. package/esm2022/lib/modules/modal/modal-adapter.service.mjs +99 -0
  5. package/esm2022/lib/modules/modal/modal-component-adapter.service.mjs +101 -0
  6. package/{esm2020 → esm2022}/lib/modules/modal/modal-configuration.mjs +4 -4
  7. package/{esm2020 → esm2022}/lib/modules/modal/modal-content.component.mjs +4 -4
  8. package/esm2022/lib/modules/modal/modal-errors.service.mjs +21 -0
  9. package/{esm2020 → esm2022}/lib/modules/modal/modal-footer.component.mjs +4 -4
  10. package/{esm2020 → esm2022}/lib/modules/modal/modal-header.component.mjs +4 -4
  11. package/{esm2020 → esm2022}/lib/modules/modal/modal-host-context.mjs +4 -4
  12. package/esm2022/lib/modules/modal/modal-host.component.mjs +163 -0
  13. package/esm2022/lib/modules/modal/modal-host.service.mjs +62 -0
  14. package/esm2022/lib/modules/modal/modal-instance.mjs +123 -0
  15. package/esm2022/lib/modules/modal/modal-is-dirty.directive.mjs +94 -0
  16. package/esm2022/lib/modules/modal/modal-scroll-shadow.directive.mjs +129 -0
  17. package/esm2022/lib/modules/modal/modal.component.mjs +229 -0
  18. package/{esm2020 → esm2022}/lib/modules/modal/modal.module.mjs +29 -29
  19. package/esm2022/lib/modules/modal/modal.service.mjs +97 -0
  20. package/esm2022/lib/modules/shared/sky-modals-resources.module.mjs +61 -0
  21. package/esm2022/testing/confirm/confirm-button-harness.mjs +46 -0
  22. package/esm2022/testing/confirm/confirm-harness.mjs +90 -0
  23. package/esm2022/testing/modal/modal-harness.mjs +75 -0
  24. package/esm2022/testing/modal-fixture.mjs +143 -0
  25. package/{fesm2020 → fesm2022}/skyux-modals-testing.mjs +60 -73
  26. package/{fesm2020 → fesm2022}/skyux-modals-testing.mjs.map +1 -1
  27. package/fesm2022/skyux-modals.mjs +1502 -0
  28. package/{fesm2015 → fesm2022}/skyux-modals.mjs.map +1 -1
  29. package/lib/modules/modal/modal-is-dirty.directive.d.ts +1 -1
  30. package/lib/modules/modal/modal.component.d.ts +1 -1
  31. package/package.json +16 -24
  32. package/esm2020/lib/modules/confirm/confirm.component.mjs +0 -114
  33. package/esm2020/lib/modules/confirm/confirm.service.mjs +0 -57
  34. package/esm2020/lib/modules/modal/modal-adapter.service.mjs +0 -101
  35. package/esm2020/lib/modules/modal/modal-component-adapter.service.mjs +0 -104
  36. package/esm2020/lib/modules/modal/modal-errors.service.mjs +0 -24
  37. package/esm2020/lib/modules/modal/modal-host.component.mjs +0 -164
  38. package/esm2020/lib/modules/modal/modal-host.service.mjs +0 -65
  39. package/esm2020/lib/modules/modal/modal-instance.mjs +0 -127
  40. package/esm2020/lib/modules/modal/modal-is-dirty.directive.mjs +0 -93
  41. package/esm2020/lib/modules/modal/modal-scroll-shadow.directive.mjs +0 -127
  42. package/esm2020/lib/modules/modal/modal.component.mjs +0 -228
  43. package/esm2020/lib/modules/modal/modal.service.mjs +0 -99
  44. package/esm2020/lib/modules/shared/sky-modals-resources.module.mjs +0 -61
  45. package/esm2020/testing/confirm/confirm-button-harness.mjs +0 -46
  46. package/esm2020/testing/confirm/confirm-harness.mjs +0 -97
  47. package/esm2020/testing/modal/modal-harness.mjs +0 -81
  48. package/esm2020/testing/modal-fixture.mjs +0 -145
  49. package/fesm2015/skyux-modals-testing.mjs +0 -409
  50. package/fesm2015/skyux-modals-testing.mjs.map +0 -1
  51. package/fesm2015/skyux-modals.mjs +0 -1522
  52. package/fesm2020/skyux-modals.mjs +0 -1510
  53. package/fesm2020/skyux-modals.mjs.map +0 -1
  54. /package/{esm2020 → esm2022}/index.mjs +0 -0
  55. /package/{esm2020 → esm2022}/lib/modules/confirm/confirm-button-action.mjs +0 -0
  56. /package/{esm2020 → esm2022}/lib/modules/confirm/confirm-button-config.mjs +0 -0
  57. /package/{esm2020 → esm2022}/lib/modules/confirm/confirm-button-style-type.mjs +0 -0
  58. /package/{esm2020 → esm2022}/lib/modules/confirm/confirm-button.mjs +0 -0
  59. /package/{esm2020 → esm2022}/lib/modules/confirm/confirm-closed-event-args.mjs +0 -0
  60. /package/{esm2020 → esm2022}/lib/modules/confirm/confirm-config-token.mjs +0 -0
  61. /package/{esm2020 → esm2022}/lib/modules/confirm/confirm-config.mjs +0 -0
  62. /package/{esm2020 → esm2022}/lib/modules/confirm/confirm-instance.mjs +0 -0
  63. /package/{esm2020 → esm2022}/lib/modules/confirm/confirm-type.mjs +0 -0
  64. /package/{esm2020 → esm2022}/lib/modules/modal/modal-before-close-handler.mjs +0 -0
  65. /package/{esm2020 → esm2022}/lib/modules/modal/modal-close-args.mjs +0 -0
  66. /package/{esm2020 → esm2022}/lib/modules/modal/modal-error.mjs +0 -0
  67. /package/{esm2020 → esm2022}/lib/modules/modal/modal-host-context-args.mjs +0 -0
  68. /package/{esm2020 → esm2022}/lib/modules/modal/modal-scroll-shadow-event-args.mjs +0 -0
  69. /package/{esm2020 → esm2022}/lib/modules/modal/modal.interface.mjs +0 -0
  70. /package/{esm2020 → esm2022}/skyux-modals.mjs +0 -0
  71. /package/{esm2020 → esm2022}/testing/confirm/confirm-button-harness-filters.mjs +0 -0
  72. /package/{esm2020 → esm2022}/testing/modal/modal-harness-filters.mjs +0 -0
  73. /package/{esm2020 → esm2022}/testing/public-api.mjs +0 -0
  74. /package/{esm2020 → esm2022}/testing/skyux-modals-testing.mjs +0 -0
@@ -0,0 +1,112 @@
1
+ import { Component, Inject } from '@angular/core';
2
+ import { ReplaySubject } from 'rxjs';
3
+ import { take } from 'rxjs/operators';
4
+ import { SKY_CONFIRM_CONFIG } from './confirm-config-token';
5
+ import { SkyConfirmType } from './confirm-type';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../modal/modal-instance";
8
+ import * as i2 from "@skyux/i18n";
9
+ import * as i3 from "@skyux/core";
10
+ import * as i4 from "@angular/common";
11
+ import * as i5 from "../modal/modal.component";
12
+ import * as i6 from "../modal/modal-content.component";
13
+ import * as i7 from "@skyux/theme";
14
+ export class SkyConfirmComponent {
15
+ #config;
16
+ #modal;
17
+ #resourcesService;
18
+ constructor(config, modal, resourcesService, idService) {
19
+ this.preserveWhiteSpace = false;
20
+ this.isOkType = false;
21
+ this.#config = config;
22
+ this.#modal = modal;
23
+ this.#resourcesService = resourcesService;
24
+ if (config.type === SkyConfirmType.Custom &&
25
+ config.buttons &&
26
+ config.buttons.length > 0) {
27
+ this.buttons = this.#getCustomButtons(config.buttons);
28
+ }
29
+ else {
30
+ this.#getPresetButtons()
31
+ .pipe(take(1))
32
+ .subscribe((buttons) => {
33
+ this.buttons = buttons;
34
+ });
35
+ }
36
+ this.message = config.message;
37
+ this.body = config.body;
38
+ // Using the service here instead of the directive due to the confirm component's "body" container being conditional and thus a template variable being unavailable at an outer scope
39
+ this.bodyId = idService.generateId();
40
+ this.preserveWhiteSpace = !!config.preserveWhiteSpace;
41
+ this.isOkType = config.type === SkyConfirmType.OK;
42
+ }
43
+ close(button) {
44
+ const result = {
45
+ action: button.action,
46
+ };
47
+ this.#modal.close(result);
48
+ }
49
+ #getPresetButtons() {
50
+ const emitter = new ReplaySubject(1);
51
+ this.#resourcesService
52
+ .getStrings({
53
+ cancel: 'skyux_confirm_dialog_default_cancel_text',
54
+ no: 'skyux_confirm_dialog_default_no_text',
55
+ ok: 'skyux_confirm_dialog_default_ok_text',
56
+ yes: 'skyux_confirm_dialog_default_yes_text',
57
+ })
58
+ .subscribe((values) => {
59
+ const confirmButtons = [];
60
+ switch (this.#config.type) {
61
+ case SkyConfirmType.YesNoCancel:
62
+ case SkyConfirmType.YesCancel:
63
+ confirmButtons.push({
64
+ text: values.yes,
65
+ autofocus: true,
66
+ styleType: 'primary',
67
+ action: 'yes',
68
+ });
69
+ if (this.#config.type === SkyConfirmType.YesNoCancel) {
70
+ confirmButtons.push({
71
+ text: values.no,
72
+ styleType: 'default',
73
+ action: 'no',
74
+ });
75
+ }
76
+ confirmButtons.push({
77
+ text: values.cancel,
78
+ styleType: 'link',
79
+ action: 'cancel',
80
+ });
81
+ break;
82
+ default:
83
+ confirmButtons.push({
84
+ text: values.ok,
85
+ autofocus: true,
86
+ styleType: 'primary',
87
+ action: 'ok',
88
+ });
89
+ }
90
+ emitter.next(confirmButtons);
91
+ });
92
+ return emitter.asObservable();
93
+ }
94
+ #getCustomButtons(buttonConfig) {
95
+ return buttonConfig.map((config) => ({
96
+ text: config.text,
97
+ action: config.action,
98
+ styleType: config.styleType || 'default',
99
+ autofocus: config.autofocus || false,
100
+ }));
101
+ }
102
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyConfirmComponent, deps: [{ token: SKY_CONFIRM_CONFIG }, { token: i1.SkyModalInstance }, { token: i2.SkyLibResourcesService }, { token: i3.SkyIdService }], target: i0.ɵɵFactoryTarget.Component }); }
103
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: SkyConfirmComponent, selector: "sky-confirm", ngImport: i0, template: "<div class=\"sky-confirm\" [ngClass]=\"{ 'sky-confirm-type-ok': isOkType }\">\n <sky-modal\n ariaRole=\"alertdialog\"\n [ariaLabelledBy]=\"confirmMessage.id\"\n [ariaDescribedBy]=\"body ? bodyId : undefined\"\n >\n <sky-modal-content class=\"sky-confirm-content\">\n <!--\n The following \"magic comment\" keeps Prettier from adding line breaks\n inside the div and causing leading and trailing whitespace when\n `preserveWhiteSpace` is `true`.\n https://prettier.io/blog/2018/11/07/1.15.0.html#whitespace-sensitive-formatting\n -->\n <!-- display: inline -->\n <div\n class=\"sky-confirm-message\"\n [ngClass]=\"{\n 'sky-confirm-preserve-white-space': preserveWhiteSpace\n }\"\n [skyThemeClass]=\"{\n 'sky-font-display-4': 'default',\n 'sky-font-heading-1 sky-font-display-3': 'modern'\n }\"\n skyId\n #confirmMessage=\"skyId\"\n >{{ message }}</div\n >\n\n <!--\n The following \"magic comment\" keeps Prettier from adding line breaks\n inside the div and causing leading and trailing whitespace when\n `preserveWhiteSpace` is `true`.\n https://prettier.io/blog/2018/11/07/1.15.0.html#whitespace-sensitive-formatting\n -->\n <!-- display: inline -->\n <div\n *ngIf=\"body\"\n class=\"sky-confirm-body\"\n [id]=\"bodyId\"\n [ngClass]=\"{\n 'sky-confirm-preserve-white-space': preserveWhiteSpace\n }\"\n >{{ body }}</div\n >\n\n <div class=\"sky-confirm-buttons\">\n <button\n *ngFor=\"let button of buttons\"\n type=\"button\"\n class=\"sky-btn\"\n [ngClass]=\"'sky-btn-' + button.styleType\"\n [skyThemeClass]=\"{\n 'sky-margin-inline-sm': 'modern',\n 'sky-margin-inline-compact': 'default'\n }\"\n (click)=\"close(button)\"\n [attr.autofocus]=\"button.autofocus ? 'autofocus' : null\"\n >\n {{ button.text }}\n </button>\n </div>\n </sky-modal-content>\n </sky-modal>\n</div>\n", styles: [".sky-confirm{--sky-confirm-body-margin-top: var(--sky-margin-stacked-sm);--sky-confirm-buttons-margin-top: var(--sky-margin-stacked-xl);--sky-confirm-content-padding: 0;--sky-confirm-message-padding-bottom: 0}:host-context(.sky-theme-modern) .sky-confirm{--sky-confirm-body-margin-top: 0;--sky-confirm-buttons-margin-top: var(--sky-margin-stacked-lg);--sky-confirm-content-padding: var(--sky-margin-stacked-lg) var(--sky-margin-inline-xl);--sky-confirm-message-padding-bottom: var(--sky-margin-stacked-lg)}.sky-theme-modern .sky-confirm{--sky-confirm-body-margin-top: 0;--sky-confirm-buttons-margin-top: var(--sky-margin-stacked-lg);--sky-confirm-content-padding: var(--sky-margin-stacked-lg) var(--sky-margin-inline-xl);--sky-confirm-message-padding-bottom: var(--sky-margin-stacked-lg)}.sky-confirm-content{padding:var(--sky-confirm-content-padding)}.sky-confirm-message{margin-top:var(--sky-margin-stacked-xs);padding-bottom:var(--sky-confirm-message-padding-bottom)}.sky-confirm-body{margin-top:var(--sky-confirm-body-margin-top)}.sky-confirm-buttons{margin-top:var(--sky-confirm-buttons-margin-top)}.sky-confirm-preserve-white-space{white-space:pre-wrap}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.λ2, selector: "[skyId]", exportAs: ["skyId"] }, { kind: "component", type: i5.SkyModalComponent, selector: "sky-modal", inputs: ["formErrors", "ariaRole", "tiledBody", "ariaDescribedBy", "ariaLabelledBy"] }, { kind: "component", type: i6.SkyModalContentComponent, selector: "sky-modal-content" }, { kind: "directive", type: i7.λ2, selector: "[skyThemeClass]", inputs: ["class", "skyThemeClass"] }] }); }
104
+ }
105
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyConfirmComponent, decorators: [{
106
+ type: Component,
107
+ args: [{ selector: 'sky-confirm', template: "<div class=\"sky-confirm\" [ngClass]=\"{ 'sky-confirm-type-ok': isOkType }\">\n <sky-modal\n ariaRole=\"alertdialog\"\n [ariaLabelledBy]=\"confirmMessage.id\"\n [ariaDescribedBy]=\"body ? bodyId : undefined\"\n >\n <sky-modal-content class=\"sky-confirm-content\">\n <!--\n The following \"magic comment\" keeps Prettier from adding line breaks\n inside the div and causing leading and trailing whitespace when\n `preserveWhiteSpace` is `true`.\n https://prettier.io/blog/2018/11/07/1.15.0.html#whitespace-sensitive-formatting\n -->\n <!-- display: inline -->\n <div\n class=\"sky-confirm-message\"\n [ngClass]=\"{\n 'sky-confirm-preserve-white-space': preserveWhiteSpace\n }\"\n [skyThemeClass]=\"{\n 'sky-font-display-4': 'default',\n 'sky-font-heading-1 sky-font-display-3': 'modern'\n }\"\n skyId\n #confirmMessage=\"skyId\"\n >{{ message }}</div\n >\n\n <!--\n The following \"magic comment\" keeps Prettier from adding line breaks\n inside the div and causing leading and trailing whitespace when\n `preserveWhiteSpace` is `true`.\n https://prettier.io/blog/2018/11/07/1.15.0.html#whitespace-sensitive-formatting\n -->\n <!-- display: inline -->\n <div\n *ngIf=\"body\"\n class=\"sky-confirm-body\"\n [id]=\"bodyId\"\n [ngClass]=\"{\n 'sky-confirm-preserve-white-space': preserveWhiteSpace\n }\"\n >{{ body }}</div\n >\n\n <div class=\"sky-confirm-buttons\">\n <button\n *ngFor=\"let button of buttons\"\n type=\"button\"\n class=\"sky-btn\"\n [ngClass]=\"'sky-btn-' + button.styleType\"\n [skyThemeClass]=\"{\n 'sky-margin-inline-sm': 'modern',\n 'sky-margin-inline-compact': 'default'\n }\"\n (click)=\"close(button)\"\n [attr.autofocus]=\"button.autofocus ? 'autofocus' : null\"\n >\n {{ button.text }}\n </button>\n </div>\n </sky-modal-content>\n </sky-modal>\n</div>\n", styles: [".sky-confirm{--sky-confirm-body-margin-top: var(--sky-margin-stacked-sm);--sky-confirm-buttons-margin-top: var(--sky-margin-stacked-xl);--sky-confirm-content-padding: 0;--sky-confirm-message-padding-bottom: 0}:host-context(.sky-theme-modern) .sky-confirm{--sky-confirm-body-margin-top: 0;--sky-confirm-buttons-margin-top: var(--sky-margin-stacked-lg);--sky-confirm-content-padding: var(--sky-margin-stacked-lg) var(--sky-margin-inline-xl);--sky-confirm-message-padding-bottom: var(--sky-margin-stacked-lg)}.sky-theme-modern .sky-confirm{--sky-confirm-body-margin-top: 0;--sky-confirm-buttons-margin-top: var(--sky-margin-stacked-lg);--sky-confirm-content-padding: var(--sky-margin-stacked-lg) var(--sky-margin-inline-xl);--sky-confirm-message-padding-bottom: var(--sky-margin-stacked-lg)}.sky-confirm-content{padding:var(--sky-confirm-content-padding)}.sky-confirm-message{margin-top:var(--sky-margin-stacked-xs);padding-bottom:var(--sky-confirm-message-padding-bottom)}.sky-confirm-body{margin-top:var(--sky-confirm-body-margin-top)}.sky-confirm-buttons{margin-top:var(--sky-confirm-buttons-margin-top)}.sky-confirm-preserve-white-space{white-space:pre-wrap}\n"] }]
108
+ }], ctorParameters: function () { return [{ type: undefined, decorators: [{
109
+ type: Inject,
110
+ args: [SKY_CONFIRM_CONFIG]
111
+ }] }, { type: i1.SkyModalInstance }, { type: i2.SkyLibResourcesService }, { type: i3.SkyIdService }]; } });
112
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbW9kYWxzL3NyYy9saWIvbW9kdWxlcy9jb25maXJtL2NvbmZpcm0uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL21vZGFscy9zcmMvbGliL21vZHVsZXMvY29uZmlybS9jb25maXJtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSWxELE9BQU8sRUFBYyxhQUFhLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDakQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBUXRDLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBQzVELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7O0FBT2hELE1BQU0sT0FBTyxtQkFBbUI7SUFROUIsT0FBTyxDQUFtQjtJQUMxQixNQUFNLENBQW1CO0lBQ3pCLGlCQUFpQixDQUF5QjtJQUUxQyxZQUVFLE1BQXdCLEVBQ3hCLEtBQXVCLEVBQ3ZCLGdCQUF3QyxFQUN4QyxTQUF1QjtRQVpsQix1QkFBa0IsR0FBRyxLQUFLLENBQUM7UUFDM0IsYUFBUSxHQUFHLEtBQUssQ0FBQztRQWF0QixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztRQUN0QixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUNwQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsZ0JBQWdCLENBQUM7UUFFMUMsSUFDRSxNQUFNLENBQUMsSUFBSSxLQUFLLGNBQWMsQ0FBQyxNQUFNO1lBQ3JDLE1BQU0sQ0FBQyxPQUFPO1lBQ2QsTUFBTSxDQUFDLE9BQU8sQ0FB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aUJBQWlCLENBQ2YsWUFBc0M7UUFFdEMsT0FBTyxZQUFZLENBQUMsR0FBRyxDQUNyQixDQUFDLE1BQU0sRUFBRSxFQUFFLENBQ1QsQ0FBQztZQUNDLElBQUksRUFBRSxNQUFNLENBQUMsSUFBSTtZQUNqQixNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU07WUFDckIsU0FBUyxFQUFFLE1BQU0sQ0FBQyxTQUFTLElBQUksU0FBUztZQUN4QyxTQUFTLEVBQUUsTUFBTSxDQUFDLFNBQVMsSUFBSSxLQUFLO1NBQ2hCLENBQUEsQ0FDekIsQ0FBQztJQUNKLENBQUM7OEdBckhVLG1CQUFtQixrQkFhcEIsa0JBQWtCO2tHQWJqQixtQkFBbUIsbURDckJoQyw4bkVBZ0VBOzsyRkQzQ2EsbUJBQW1CO2tCQUwvQixTQUFTOytCQUNFLGFBQWE7OzBCQWlCcEIsTUFBTTsyQkFBQyxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5SWRTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuaW1wb3J0IHsgU2t5TGliUmVzb3VyY2VzU2VydmljZSB9IGZyb20gJ0Bza3l1eC9pMThuJztcblxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5TW9kYWxJbnN0YW5jZSB9IGZyb20gJy4uL21vZGFsL21vZGFsLWluc3RhbmNlJztcblxuaW1wb3J0IHsgU2t5Q29uZmlybUJ1dHRvbiB9IGZyb20gJy4vY29uZmlybS1idXR0b24nO1xuaW1wb3J0IHsgU2t5Q29uZmlybUJ1dHRvbkNvbmZpZyB9IGZyb20gJy4vY29uZmlybS1idXR0b24tY29uZmlnJztcbmltcG9ydCB7IFNreUNvbmZpcm1DbG9zZUV2ZW50QXJncyB9IGZyb20gJy4vY29uZmlybS1jbG9zZWQtZXZlbnQtYXJncyc7XG5pbXBvcnQgeyBTa3lDb25maXJtQ29uZmlnIH0gZnJvbSAnLi9jb25maXJtLWNvbmZpZyc7XG5pbXBvcnQgeyBTS1lfQ09ORklSTV9DT05GSUcgfSBmcm9tICcuL2NvbmZpcm0tY29uZmlnLXRva2VuJztcbmltcG9ydCB7IFNreUNvbmZpcm1UeXBlIH0gZnJvbSAnLi9jb25maXJtLXR5cGUnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktY29uZmlybScsXG4gIHRlbXBsYXRlVXJsOiAnLi9jb25maXJtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vY29uZmlybS5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lDb25maXJtQ29tcG9uZW50IHtcbiAgcHVibGljIGJ1dHRvbnM6IFNreUNvbmZpcm1CdXR0b25bXSB8IHVuZGVmaW5lZDtcbiAgcHVibGljIG1lc3NhZ2U6IHN0cmluZztcbiAgcHVibGljIGJvZHk6IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgcHVibGljIGJvZHlJZDogc3RyaW5nO1xuICBwdWJsaWMgcHJlc2VydmVXaGl0ZVNwYWNlID0gZmFsc2U7XG4gIHB1YmxpYyBpc09rVHlwZSA9IGZhbHNlO1xuXG4gICNjb25maWc6IFNreUNvbmZpcm1Db25maWc7XG4gICNtb2RhbDogU2t5TW9kYWxJbnN0YW5jZTtcbiAgI3Jlc291cmNlc1NlcnZpY2U6IFNreUxpYlJlc291cmNlc1NlcnZpY2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChTS1lfQ09ORklSTV9DT05GSUcpXG4gICAgY29uZmlnOiBTa3lDb25maXJtQ29uZmlnLFxuICAgIG1vZGFsOiBTa3lNb2RhbEluc3RhbmNlLFxuICAgIHJlc291cmNlc1NlcnZpY2U6IFNreUxpYlJlc291cmNlc1NlcnZpY2UsXG4gICAgaWRTZXJ2aWNlOiBTa3lJZFNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy4jY29uZmlnID0gY29uZmlnO1xuICAgIHRoaXMuI21vZGFsID0gbW9kYWw7XG4gICAgdGhpcy4jcmVzb3VyY2VzU2VydmljZSA9IHJlc291cmNlc1NlcnZpY2U7XG5cbiAgICBpZiAoXG4gICAgICBjb25maWcudHlwZSA9PT0gU2t5Q29uZmlybVR5cGUuQ3VzdG9tICYmXG4gICAgICBjb25maWcuYnV0dG9ucyAmJlxuICAgICAgY29uZmlnLmJ1dHRvbnMubGVuZ3RoID4gMFxuICAgICkge1xuICAgICAgdGhpcy5idXR0b25zID0gdGhpcy4jZ2V0Q3VzdG9tQnV0dG9ucyhjb25maWcuYnV0dG9ucyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuI2dldFByZXNldEJ1dHRvbnMoKVxuICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAuc3Vic2NyaWJlKChidXR0b25zOiBTa3lDb25maXJtQnV0dG9uW10pID0+IHtcbiAgICAgICAgICB0aGlzLmJ1dHRvbnMgPSBidXR0b25zO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLm1lc3NhZ2UgPSBjb25maWcubWVzc2FnZTtcbiAgICB0aGlzLmJvZHkgPSBjb25maWcuYm9keTtcbiAgICAvLyBVc2luZyB0aGUgc2VydmljZSBoZXJlIGluc3RlYWQgb2YgdGhlIGRpcmVjdGl2ZSBkdWUgdG8gdGhlIGNvbmZpcm0gY29tcG9uZW50J3MgXCJib2R5XCIgY29udGFpbmVyIGJlaW5nIGNvbmRpdGlvbmFsIGFuZCB0aHVzIGEgdGVtcGxhdGUgdmFyaWFibGUgYmVpbmcgdW5hdmFpbGFibGUgYXQgYW4gb3V0ZXIgc2NvcGVcbiAgICB0aGlzLmJvZHlJZCA9IGlkU2VydmljZS5nZW5lcmF0ZUlkKCk7XG4gICAgdGhpcy5wcmVzZXJ2ZVdoaXRlU3BhY2UgPSAhIWNvbmZpZy5wcmVzZXJ2ZVdoaXRlU3BhY2U7XG4gICAgdGhpcy5pc09rVHlwZSA9IGNvbmZpZy50eXBlID09PSBTa3lDb25maXJtVHlwZS5PSztcbiAgfVxuXG4gIHB1YmxpYyBjbG9zZShidXR0b246IFNreUNvbmZpcm1CdXR0b24pOiB2b2lkIHtcbiAgICBjb25zdCByZXN1bHQ6IFNreUNvbmZpcm1DbG9zZUV2ZW50QXJncyA9IHtcbiAgICAgIGFjdGlvbjogYnV0dG9uLmFjdGlvbixcbiAgICB9O1xuXG4gICAgdGhpcy4jbW9kYWwuY2xvc2UocmVzdWx0KTtcbiAgfVxuXG4gICNnZXRQcmVzZXRCdXR0b25zKCk6IE9ic2VydmFibGU8U2t5Q29uZmlybUJ1dHRvbltdPiB7XG4gICAgY29uc3QgZW1pdHRlciA9IG5ldyBSZXBsYXlTdWJqZWN0PFNreUNvbmZpcm1CdXR0b25bXT4oMSk7XG5cbiAgICB0aGlzLiNyZXNvdXJjZXNTZXJ2aWNlXG4gICAgICAuZ2V0U3RyaW5ncyh7XG4gICAgICAgIGNhbmNlbDogJ3NreXV4X2NvbmZpcm1fZGlhbG9nX2RlZmF1bHRfY2FuY2VsX3RleHQnLFxuICAgICAgICBubzogJ3NreXV4X2NvbmZpcm1fZGlhbG9nX2RlZmF1bHRfbm9fdGV4dCcsXG4gICAgICAgIG9rOiAnc2t5dXhfY29uZmlybV9kaWFsb2dfZGVmYXVsdF9va190ZXh0JyxcbiAgICAgICAgeWVzOiAnc2t5dXhfY29uZmlybV9kaWFsb2dfZGVmYXVsdF95ZXNfdGV4dCcsXG4gICAgICB9KVxuICAgICAgLnN1YnNjcmliZSgodmFsdWVzKSA9PiB7XG4gICAgICAgIGNvbnN0IGNvbmZpcm1CdXR0b25zOiBTa3lDb25maXJtQnV0dG9uW10gPSBbXTtcblxuICAgICAgICBzd2l0Y2ggKHRoaXMuI2NvbmZpZy50eXBlKSB7XG4gICAgICAgICAgY2FzZSBTa3lDb25maXJtVHlwZS5ZZXNOb0NhbmNlbDpcbiAgICAgICAgICBjYXNlIFNreUNvbmZpcm1UeXBlLlllc0NhbmNlbDpcbiAgICAgICAgICAgIGNvbmZpcm1CdXR0b25zLnB1c2goe1xuICAgICAgICAgICAgICB0ZXh0OiB2YWx1ZXMueWVzLFxuICAgICAgICAgICAgICBhdXRvZm9jdXM6IHRydWUsXG4gICAgICAgICAgICAgIHN0eWxlVHlwZTogJ3ByaW1hcnknLFxuICAgICAgICAgICAgICBhY3Rpb246ICd5ZXMnLFxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGlmICh0aGlzLiNjb25maWcudHlwZSA9PT0gU2t5Q29uZmlybVR5cGUuWWVzTm9DYW5jZWwpIHtcbiAgICAgICAgICAgICAgY29uZmlybUJ1dHRvbnMucHVzaCh7XG4gICAgICAgICAgICAgICAgdGV4dDogdmFsdWVzLm5vLFxuICAgICAgICAgICAgICAgIHN0eWxlVHlwZTogJ2RlZmF1bHQnLFxuICAgICAgICAgICAgICAgIGFjdGlvbjogJ25vJyxcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbmZpcm1CdXR0b25zLnB1c2goe1xuICAgICAgICAgICAgICB0ZXh0OiB2YWx1ZXMuY2FuY2VsLFxuICAgICAgICAgICAgICBzdHlsZVR5cGU6ICdsaW5rJyxcbiAgICAgICAgICAgICAgYWN0aW9uOiAnY2FuY2VsJyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgYnJlYWs7XG4gICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIGNvbmZpcm1CdXR0b25zLnB1c2goe1xuICAgICAgICAgICAgICB0ZXh0OiB2YWx1ZXMub2ssXG4gICAgICAgICAgICAgIGF1dG9mb2N1czogdHJ1ZSxcbiAgICAgICAgICAgICAgc3R5bGVUeXBlOiAncHJpbWFyeScsXG4gICAgICAgICAgICAgIGFjdGlvbjogJ29rJyxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgZW1pdHRlci5uZXh0KGNvbmZpcm1CdXR0b25zKTtcbiAgICAgIH0pO1xuXG4gICAgcmV0dXJuIGVtaXR0ZXIuYXNPYnNlcnZhYmxlKCk7XG4gIH1cblxuICAjZ2V0Q3VzdG9tQnV0dG9ucyhcbiAgICBidXR0b25Db25maWc6IFNreUNvbmZpcm1CdXR0b25Db25maWdbXVxuICApOiBTa3lDb25maXJtQnV0dG9uW10ge1xuICAgIHJldHVybiBidXR0b25Db25maWcubWFwKFxuICAgICAgKGNvbmZpZykgPT5cbiAgICAgICAgKHtcbiAgICAgICAgICB0ZXh0OiBjb25maWcudGV4dCxcbiAgICAgICAgICBhY3Rpb246IGNvbmZpZy5hY3Rpb24sXG4gICAgICAgICAgc3R5bGVUeXBlOiBjb25maWcuc3R5bGVUeXBlIHx8ICdkZWZhdWx0JyxcbiAgICAgICAgICBhdXRvZm9jdXM6IGNvbmZpZy5hdXRvZm9jdXMgfHwgZmFsc2UsXG4gICAgICAgIH0gYXMgU2t5Q29uZmlybUJ1dHRvbilcbiAgICApO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwic2t5LWNvbmZpcm1cIiBbbmdDbGFzc109XCJ7ICdza3ktY29uZmlybS10eXBlLW9rJzogaXNPa1R5cGUgfVwiPlxuICA8c2t5LW1vZGFsXG4gICAgYXJpYVJvbGU9XCJhbGVydGRpYWxvZ1wiXG4gICAgW2FyaWFMYWJlbGxlZEJ5XT1cImNvbmZpcm1NZXNzYWdlLmlkXCJcbiAgICBbYXJpYURlc2NyaWJlZEJ5XT1cImJvZHkgPyBib2R5SWQgOiB1bmRlZmluZWRcIlxuICA+XG4gICAgPHNreS1tb2RhbC1jb250ZW50IGNsYXNzPVwic2t5LWNvbmZpcm0tY29udGVudFwiPlxuICAgICAgPCEtLVxuICAgICAgICBUaGUgZm9sbG93aW5nIFwibWFnaWMgY29tbWVudFwiIGtlZXBzIFByZXR0aWVyIGZyb20gYWRkaW5nIGxpbmUgYnJlYWtzXG4gICAgICAgIGluc2lkZSB0aGUgZGl2IGFuZCBjYXVzaW5nIGxlYWRpbmcgYW5kIHRyYWlsaW5nIHdoaXRlc3BhY2Ugd2hlblxuICAgICAgICBgcHJlc2VydmVXaGl0ZVNwYWNlYCBpcyBgdHJ1ZWAuXG4gICAgICAgIGh0dHBzOi8vcHJldHRpZXIuaW8vYmxvZy8yMDE4LzExLzA3LzEuMTUuMC5odG1sI3doaXRlc3BhY2Utc2Vuc2l0aXZlLWZvcm1hdHRpbmdcbiAgICAgIC0tPlxuICAgICAgPCEtLSBkaXNwbGF5OiBpbmxpbmUgLS0+XG4gICAgICA8ZGl2XG4gICAgICAgIGNsYXNzPVwic2t5LWNvbmZpcm0tbWVzc2FnZVwiXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAnc2t5LWNvbmZpcm0tcHJlc2VydmUtd2hpdGUtc3BhY2UnOiBwcmVzZXJ2ZVdoaXRlU3BhY2VcbiAgICAgICAgfVwiXG4gICAgICAgIFtza3lUaGVtZUNsYXNzXT1cIntcbiAgICAgICAgICAnc2t5LWZvbnQtZGlzcGxheS00JzogJ2RlZmF1bHQnLFxuICAgICAgICAgICdza3ktZm9udC1oZWFkaW5nLTEgc2t5LWZvbnQtZGlzcGxheS0zJzogJ21vZGVybidcbiAgICAgICAgfVwiXG4gICAgICAgIHNreUlkXG4gICAgICAgICNjb25maXJtTWVzc2FnZT1cInNreUlkXCJcbiAgICAgICAgPnt7IG1lc3NhZ2UgfX08L2RpdlxuICAgICAgPlxuXG4gICAgICA8IS0tXG4gICAgICAgIFRoZSBmb2xsb3dpbmcgXCJtYWdpYyBjb21tZW50XCIga2VlcHMgUHJldHRpZXIgZnJvbSBhZGRpbmcgbGluZSBicmVha3NcbiAgICAgICAgaW5zaWRlIHRoZSBkaXYgYW5kIGNhdXNpbmcgbGVhZGluZyBhbmQgdHJhaWxpbmcgd2hpdGVzcGFjZSB3aGVuXG4gICAgICAgIGBwcmVzZXJ2ZVdoaXRlU3BhY2VgIGlzIGB0cnVlYC5cbiAgICAgICAgaHR0cHM6Ly9wcmV0dGllci5pby9ibG9nLzIwMTgvMTEvMDcvMS4xNS4wLmh0bWwjd2hpdGVzcGFjZS1zZW5zaXRpdmUtZm9ybWF0dGluZ1xuICAgICAgLS0+XG4gICAgICA8IS0tIGRpc3BsYXk6IGlubGluZSAtLT5cbiAgICAgIDxkaXZcbiAgICAgICAgKm5nSWY9XCJib2R5XCJcbiAgICAgICAgY2xhc3M9XCJza3ktY29uZmlybS1ib2R5XCJcbiAgICAgICAgW2lkXT1cImJvZHlJZFwiXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAnc2t5LWNvbmZpcm0tcHJlc2VydmUtd2hpdGUtc3BhY2UnOiBwcmVzZXJ2ZVdoaXRlU3BhY2VcbiAgICAgICAgfVwiXG4gICAgICAgID57eyBib2R5IH19PC9kaXZcbiAgICAgID5cblxuICAgICAgPGRpdiBjbGFzcz1cInNreS1jb25maXJtLWJ1dHRvbnNcIj5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICpuZ0Zvcj1cImxldCBidXR0b24gb2YgYnV0dG9uc1wiXG4gICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgY2xhc3M9XCJza3ktYnRuXCJcbiAgICAgICAgICBbbmdDbGFzc109XCInc2t5LWJ0bi0nICsgYnV0dG9uLnN0eWxlVHlwZVwiXG4gICAgICAgICAgW3NreVRoZW1lQ2xhc3NdPVwie1xuICAgICAgICAgICAgJ3NreS1tYXJnaW4taW5saW5lLXNtJzogJ21vZGVybicsXG4gICAgICAgICAgICAnc2t5LW1hcmdpbi1pbmxpbmUtY29tcGFjdCc6ICdkZWZhdWx0J1xuICAgICAgICAgIH1cIlxuICAgICAgICAgIChjbGljayk9XCJjbG9zZShidXR0b24pXCJcbiAgICAgICAgICBbYXR0ci5hdXRvZm9jdXNdPVwiYnV0dG9uLmF1dG9mb2N1cyA/ICdhdXRvZm9jdXMnIDogbnVsbFwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBidXR0b24udGV4dCB9fVxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvc2t5LW1vZGFsLWNvbnRlbnQ+XG4gIDwvc2t5LW1vZGFsPlxuPC9kaXY+XG4iXX0=
@@ -7,19 +7,19 @@ import { SkyModalsResourcesModule } from '../shared/sky-modals-resources.module'
7
7
  import { SkyConfirmComponent } from './confirm.component';
8
8
  import * as i0 from "@angular/core";
9
9
  export class SkyConfirmModule {
10
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyConfirmModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
11
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: SkyConfirmModule, declarations: [SkyConfirmComponent], imports: [CommonModule,
12
+ SkyIdModule,
13
+ SkyModalModule,
14
+ SkyModalsResourcesModule,
15
+ SkyThemeModule], exports: [SkyConfirmComponent] }); }
16
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyConfirmModule, imports: [CommonModule,
17
+ SkyIdModule,
18
+ SkyModalModule,
19
+ SkyModalsResourcesModule,
20
+ SkyThemeModule] }); }
10
21
  }
11
- SkyConfirmModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyConfirmModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
12
- SkyConfirmModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.9", ngImport: i0, type: SkyConfirmModule, declarations: [SkyConfirmComponent], imports: [CommonModule,
13
- SkyIdModule,
14
- SkyModalModule,
15
- SkyModalsResourcesModule,
16
- SkyThemeModule], exports: [SkyConfirmComponent] });
17
- SkyConfirmModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyConfirmModule, imports: [CommonModule,
18
- SkyIdModule,
19
- SkyModalModule,
20
- SkyModalsResourcesModule,
21
- SkyThemeModule] });
22
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyConfirmModule, decorators: [{
22
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyConfirmModule, decorators: [{
23
23
  type: NgModule,
24
24
  args: [{
25
25
  declarations: [SkyConfirmComponent],
@@ -33,4 +33,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
33
33
  exports: [SkyConfirmComponent],
34
34
  }]
35
35
  }] });
36
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbW9kYWxzL3NyYy9saWIvbW9kdWxlcy9jb25maXJtL2NvbmZpcm0ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDMUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU5QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFFakYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBYTFELE1BQU0sT0FBTyxnQkFBZ0I7OzZHQUFoQixnQkFBZ0I7OEdBQWhCLGdCQUFnQixpQkFWWixtQkFBbUIsYUFFaEMsWUFBWTtRQUNaLFdBQVc7UUFDWCxjQUFjO1FBQ2Qsd0JBQXdCO1FBQ3hCLGNBQWMsYUFFTixtQkFBbUI7OEdBRWxCLGdCQUFnQixZQVJ6QixZQUFZO1FBQ1osV0FBVztRQUNYLGNBQWM7UUFDZCx3QkFBd0I7UUFDeEIsY0FBYzsyRkFJTCxnQkFBZ0I7a0JBWDVCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsbUJBQW1CLENBQUM7b0JBQ25DLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsY0FBYzt3QkFDZCx3QkFBd0I7d0JBQ3hCLGNBQWM7cUJBQ2Y7b0JBQ0QsT0FBTyxFQUFFLENBQUMsbUJBQW1CLENBQUM7aUJBQy9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lJZE1vZHVsZSB9IGZyb20gJ0Bza3l1eC9jb3JlJztcbmltcG9ydCB7IFNreVRoZW1lTW9kdWxlIH0gZnJvbSAnQHNreXV4L3RoZW1lJztcblxuaW1wb3J0IHsgU2t5TW9kYWxNb2R1bGUgfSBmcm9tICcuLi9tb2RhbC9tb2RhbC5tb2R1bGUnO1xuaW1wb3J0IHsgU2t5TW9kYWxzUmVzb3VyY2VzTW9kdWxlIH0gZnJvbSAnLi4vc2hhcmVkL3NreS1tb2RhbHMtcmVzb3VyY2VzLm1vZHVsZSc7XG5cbmltcG9ydCB7IFNreUNvbmZpcm1Db21wb25lbnQgfSBmcm9tICcuL2NvbmZpcm0uY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbU2t5Q29uZmlybUNvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgU2t5SWRNb2R1bGUsXG4gICAgU2t5TW9kYWxNb2R1bGUsXG4gICAgU2t5TW9kYWxzUmVzb3VyY2VzTW9kdWxlLFxuICAgIFNreVRoZW1lTW9kdWxlLFxuICBdLFxuICBleHBvcnRzOiBbU2t5Q29uZmlybUNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUNvbmZpcm1Nb2R1bGUge31cbiJdfQ==
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbW9kYWxzL3NyYy9saWIvbW9kdWxlcy9jb25maXJtL2NvbmZpcm0ubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFDMUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUU5QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDdkQsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFFakYsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0scUJBQXFCLENBQUM7O0FBYTFELE1BQU0sT0FBTyxnQkFBZ0I7OEdBQWhCLGdCQUFnQjsrR0FBaEIsZ0JBQWdCLGlCQVZaLG1CQUFtQixhQUVoQyxZQUFZO1lBQ1osV0FBVztZQUNYLGNBQWM7WUFDZCx3QkFBd0I7WUFDeEIsY0FBYyxhQUVOLG1CQUFtQjsrR0FFbEIsZ0JBQWdCLFlBUnpCLFlBQVk7WUFDWixXQUFXO1lBQ1gsY0FBYztZQUNkLHdCQUF3QjtZQUN4QixjQUFjOzsyRkFJTCxnQkFBZ0I7a0JBWDVCLFFBQVE7bUJBQUM7b0JBQ1IsWUFBWSxFQUFFLENBQUMsbUJBQW1CLENBQUM7b0JBQ25DLE9BQU8sRUFBRTt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsY0FBYzt3QkFDZCx3QkFBd0I7d0JBQ3hCLGNBQWM7cUJBQ2Y7b0JBQ0QsT0FBTyxFQUFFLENBQUMsbUJBQW1CLENBQUM7aUJBQy9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lJZE1vZHVsZSB9IGZyb20gJ0Bza3l1eC9jb3JlJztcbmltcG9ydCB7IFNreVRoZW1lTW9kdWxlIH0gZnJvbSAnQHNreXV4L3RoZW1lJztcblxuaW1wb3J0IHsgU2t5TW9kYWxNb2R1bGUgfSBmcm9tICcuLi9tb2RhbC9tb2RhbC5tb2R1bGUnO1xuaW1wb3J0IHsgU2t5TW9kYWxzUmVzb3VyY2VzTW9kdWxlIH0gZnJvbSAnLi4vc2hhcmVkL3NreS1tb2RhbHMtcmVzb3VyY2VzLm1vZHVsZSc7XG5cbmltcG9ydCB7IFNreUNvbmZpcm1Db21wb25lbnQgfSBmcm9tICcuL2NvbmZpcm0uY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbU2t5Q29uZmlybUNvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgU2t5SWRNb2R1bGUsXG4gICAgU2t5TW9kYWxNb2R1bGUsXG4gICAgU2t5TW9kYWxzUmVzb3VyY2VzTW9kdWxlLFxuICAgIFNreVRoZW1lTW9kdWxlLFxuICBdLFxuICBleHBvcnRzOiBbU2t5Q29uZmlybUNvbXBvbmVudF0sXG59KVxuZXhwb3J0IGNsYXNzIFNreUNvbmZpcm1Nb2R1bGUge31cbiJdfQ==
@@ -0,0 +1,54 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { SKY_CONFIRM_CONFIG } from './confirm-config-token';
3
+ import { SkyConfirmInstance } from './confirm-instance';
4
+ import { SkyConfirmComponent } from './confirm.component';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "../modal/modal.service";
7
+ /**
8
+ * Launches a dialog.
9
+ */
10
+ export class SkyConfirmService {
11
+ #modalService;
12
+ constructor(modalService) {
13
+ this.#modalService = modalService;
14
+ }
15
+ /**
16
+ * Opens a dialog using the specified options.
17
+ * @param config Specifies configuration options for the dialog.
18
+ */
19
+ open(config) {
20
+ const modalInstance = this.#modalService.open(SkyConfirmComponent, {
21
+ providers: [
22
+ {
23
+ provide: SKY_CONFIRM_CONFIG,
24
+ useValue: config,
25
+ },
26
+ ],
27
+ });
28
+ const confirmInstance = new SkyConfirmInstance();
29
+ modalInstance.closed.subscribe((args) => {
30
+ let result = args.data;
31
+ // The modal was closed using the ESC key.
32
+ if (result === undefined) {
33
+ result = {
34
+ action: 'cancel',
35
+ };
36
+ }
37
+ confirmInstance.closed.emit(result);
38
+ confirmInstance.closed.complete();
39
+ });
40
+ return confirmInstance;
41
+ }
42
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyConfirmService, deps: [{ token: i1.SkyModalService }], target: i0.ɵɵFactoryTarget.Injectable }); }
43
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyConfirmService, providedIn: 'any' }); }
44
+ }
45
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyConfirmService, decorators: [{
46
+ type: Injectable,
47
+ args: [{
48
+ // Must be 'any' so that the modal component is created in the context of its module's injector.
49
+ // If set to 'root', the component's dependency injections would only be derived from the root
50
+ // injector and may loose context if the modal was opened from within a lazy-loaded module.
51
+ providedIn: 'any',
52
+ }]
53
+ }], ctorParameters: function () { return [{ type: i1.SkyModalService }]; } });
54
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29uZmlybS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL21vZGFscy9zcmMvbGliL21vZHVsZXMvY29uZmlybS9jb25maXJtLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVEzQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQkFBb0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7O0FBRTFEOztHQUVHO0FBT0gsTUFBTSxPQUFPLGlCQUFpQjtJQUM1QixhQUFhLENBQWtCO0lBRS9CLFlBQVksWUFBNkI7UUFDdkMsSUFBSSxDQUFDLGFBQWEsR0FBRyxZQUFZLENBQUM7SUFDcEMsQ0FBQztJQUVEOzs7T0FHRztJQUNJLElBQUksQ0FBQyxNQUF3QjtRQUNsQyxNQUFNLGFBQWEsR0FBcUIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQzdELG1CQUFtQixFQUNuQjtZQUNFLFNBQVMsRUFBRTtnQkFDVDtvQkFDRSxPQUFPLEVBQUUsa0JBQWtCO29CQUMzQixRQUFRLEVBQUUsTUFBTTtpQkFDakI7YUFDRjtTQUNGLENBQ0YsQ0FBQztRQUVGLE1BQU0sZUFBZSxHQUFHLElBQUksa0JBQWtCLEVBQUUsQ0FBQztRQUVqRCxhQUFhLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQXVCLEVBQUUsRUFBRTtZQUN6RCxJQUFJLE1BQU0sR0FBNkIsSUFBSSxDQUFDLElBQUksQ0FBQztZQUVqRCwwQ0FBMEM7WUFDMUMsSUFBSSxNQUFNLEtBQUssU0FBUyxFQUFFO2dCQUN4QixNQUFNLEdBQUc7b0JBQ1AsTUFBTSxFQUFFLFFBQVE7aUJBQ2pCLENBQUM7YUFDSDtZQUVELGVBQWUsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ3BDLGVBQWUsQ0FBQyxNQUFNLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDcEMsQ0FBQyxDQUFDLENBQUM7UUFFSCxPQUFPLGVBQWUsQ0FBQztJQUN6QixDQUFDOzhHQXpDVSxpQkFBaUI7a0hBQWpCLGlCQUFpQixjQUZoQixLQUFLOzsyRkFFTixpQkFBaUI7a0JBTjdCLFVBQVU7bUJBQUM7b0JBQ1YsZ0dBQWdHO29CQUNoRyw4RkFBOEY7b0JBQzlGLDJGQUEyRjtvQkFDM0YsVUFBVSxFQUFFLEtBQUs7aUJBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTa3lNb2RhbENsb3NlQXJncyB9IGZyb20gJy4uL21vZGFsL21vZGFsLWNsb3NlLWFyZ3MnO1xuaW1wb3J0IHsgU2t5TW9kYWxJbnN0YW5jZSB9IGZyb20gJy4uL21vZGFsL21vZGFsLWluc3RhbmNlJztcbmltcG9ydCB7IFNreU1vZGFsU2VydmljZSB9IGZyb20gJy4uL21vZGFsL21vZGFsLnNlcnZpY2UnO1xuXG5pbXBvcnQgeyBTa3lDb25maXJtQ2xvc2VFdmVudEFyZ3MgfSBmcm9tICcuL2NvbmZpcm0tY2xvc2VkLWV2ZW50LWFyZ3MnO1xuaW1wb3J0IHsgU2t5Q29uZmlybUNvbmZpZyB9IGZyb20gJy4vY29uZmlybS1jb25maWcnO1xuaW1wb3J0IHsgU0tZX0NPTkZJUk1fQ09ORklHIH0gZnJvbSAnLi9jb25maXJtLWNvbmZpZy10b2tlbic7XG5pbXBvcnQgeyBTa3lDb25maXJtSW5zdGFuY2UgfSBmcm9tICcuL2NvbmZpcm0taW5zdGFuY2UnO1xuaW1wb3J0IHsgU2t5Q29uZmlybUNvbXBvbmVudCB9IGZyb20gJy4vY29uZmlybS5jb21wb25lbnQnO1xuXG4vKipcbiAqIExhdW5jaGVzIGEgZGlhbG9nLlxuICovXG5ASW5qZWN0YWJsZSh7XG4gIC8vIE11c3QgYmUgJ2FueScgc28gdGhhdCB0aGUgbW9kYWwgY29tcG9uZW50IGlzIGNyZWF0ZWQgaW4gdGhlIGNvbnRleHQgb2YgaXRzIG1vZHVsZSdzIGluamVjdG9yLlxuICAvLyBJZiBzZXQgdG8gJ3Jvb3QnLCB0aGUgY29tcG9uZW50J3MgZGVwZW5kZW5jeSBpbmplY3Rpb25zIHdvdWxkIG9ubHkgYmUgZGVyaXZlZCBmcm9tIHRoZSByb290XG4gIC8vIGluamVjdG9yIGFuZCBtYXkgbG9vc2UgY29udGV4dCBpZiB0aGUgbW9kYWwgd2FzIG9wZW5lZCBmcm9tIHdpdGhpbiBhIGxhenktbG9hZGVkIG1vZHVsZS5cbiAgcHJvdmlkZWRJbjogJ2FueScsXG59KVxuZXhwb3J0IGNsYXNzIFNreUNvbmZpcm1TZXJ2aWNlIHtcbiAgI21vZGFsU2VydmljZTogU2t5TW9kYWxTZXJ2aWNlO1xuXG4gIGNvbnN0cnVjdG9yKG1vZGFsU2VydmljZTogU2t5TW9kYWxTZXJ2aWNlKSB7XG4gICAgdGhpcy4jbW9kYWxTZXJ2aWNlID0gbW9kYWxTZXJ2aWNlO1xuICB9XG5cbiAgLyoqXG4gICAqIE9wZW5zIGEgZGlhbG9nIHVzaW5nIHRoZSBzcGVjaWZpZWQgb3B0aW9ucy5cbiAgICogQHBhcmFtIGNvbmZpZyBTcGVjaWZpZXMgY29uZmlndXJhdGlvbiBvcHRpb25zIGZvciB0aGUgZGlhbG9nLlxuICAgKi9cbiAgcHVibGljIG9wZW4oY29uZmlnOiBTa3lDb25maXJtQ29uZmlnKTogU2t5Q29uZmlybUluc3RhbmNlIHtcbiAgICBjb25zdCBtb2RhbEluc3RhbmNlOiBTa3lNb2RhbEluc3RhbmNlID0gdGhpcy4jbW9kYWxTZXJ2aWNlLm9wZW4oXG4gICAgICBTa3lDb25maXJtQ29tcG9uZW50LFxuICAgICAge1xuICAgICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBwcm92aWRlOiBTS1lfQ09ORklSTV9DT05GSUcsXG4gICAgICAgICAgICB1c2VWYWx1ZTogY29uZmlnLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9XG4gICAgKTtcblxuICAgIGNvbnN0IGNvbmZpcm1JbnN0YW5jZSA9IG5ldyBTa3lDb25maXJtSW5zdGFuY2UoKTtcblxuICAgIG1vZGFsSW5zdGFuY2UuY2xvc2VkLnN1YnNjcmliZSgoYXJnczogU2t5TW9kYWxDbG9zZUFyZ3MpID0+IHtcbiAgICAgIGxldCByZXN1bHQ6IFNreUNvbmZpcm1DbG9zZUV2ZW50QXJncyA9IGFyZ3MuZGF0YTtcblxuICAgICAgLy8gVGhlIG1vZGFsIHdhcyBjbG9zZWQgdXNpbmcgdGhlIEVTQyBrZXkuXG4gICAgICBpZiAocmVzdWx0ID09PSB1bmRlZmluZWQpIHtcbiAgICAgICAgcmVzdWx0ID0ge1xuICAgICAgICAgIGFjdGlvbjogJ2NhbmNlbCcsXG4gICAgICAgIH07XG4gICAgICB9XG5cbiAgICAgIGNvbmZpcm1JbnN0YW5jZS5jbG9zZWQuZW1pdChyZXN1bHQpO1xuICAgICAgY29uZmlybUluc3RhbmNlLmNsb3NlZC5jb21wbGV0ZSgpO1xuICAgIH0pO1xuXG4gICAgcmV0dXJuIGNvbmZpcm1JbnN0YW5jZTtcbiAgfVxufVxuIl19
@@ -0,0 +1,99 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@skyux/core";
4
+ /**
5
+ * @internal
6
+ */
7
+ export class SkyModalAdapterService {
8
+ static { this.MODAL_BODY_FULL_CLASS = 'sky-modal-body-full-page'; }
9
+ static { this.MODAL_BODY_CLASS = 'sky-modal-body-open'; }
10
+ #docRef;
11
+ #bodyEl;
12
+ #windowRef;
13
+ #hostSiblingAriaHiddenCache = new Map();
14
+ constructor(windowRef) {
15
+ this.#windowRef = windowRef;
16
+ this.#docRef = this.#windowRef.nativeWindow.document;
17
+ this.#bodyEl = this.#windowRef.nativeWindow.document.body;
18
+ }
19
+ toggleFullPageModalClass(isAddFull) {
20
+ if (isAddFull) {
21
+ this.#addClassToBody(SkyModalAdapterService.MODAL_BODY_FULL_CLASS);
22
+ }
23
+ else {
24
+ this.#removeClassFromBody(SkyModalAdapterService.MODAL_BODY_FULL_CLASS);
25
+ }
26
+ }
27
+ setPageScroll(isAdd) {
28
+ if (isAdd) {
29
+ this.#addClassToBody(SkyModalAdapterService.MODAL_BODY_CLASS);
30
+ }
31
+ else {
32
+ this.#removeClassFromBody(SkyModalAdapterService.MODAL_BODY_CLASS);
33
+ }
34
+ }
35
+ getModalOpener() {
36
+ return this.#docRef.activeElement;
37
+ }
38
+ #addClassToBody(className) {
39
+ this.#bodyEl.classList.add(className);
40
+ }
41
+ #removeClassFromBody(className) {
42
+ this.#bodyEl.classList.remove(className);
43
+ }
44
+ scrollContentToTop(element) {
45
+ element.nativeElement.querySelector('.sky-modal-content').scrollTop = 0;
46
+ }
47
+ /**
48
+ * Hides siblings of modal-host from screen readers
49
+ * @param hostElRef reference to modal-host element
50
+ */
51
+ hideHostSiblingsFromScreenReaders(hostElRef) {
52
+ const hostElement = hostElRef.nativeElement;
53
+ const hostSiblings = hostElement.parentElement.children;
54
+ for (let i = 0; i < hostSiblings.length; i++) {
55
+ const element = hostSiblings[i];
56
+ if (element !== hostElement &&
57
+ !element.hasAttribute('aria-live') &&
58
+ element.nodeName.toLowerCase() !== 'script' &&
59
+ element.nodeName.toLowerCase() !== 'style') {
60
+ // preserve previous aria-hidden status of elements outside of modal host
61
+ this.#hostSiblingAriaHiddenCache.set(element, element.getAttribute('aria-hidden'));
62
+ element.setAttribute('aria-hidden', 'true');
63
+ }
64
+ }
65
+ }
66
+ /**
67
+ * Restores modal-host siblings to screen reader status prior to modals being opened
68
+ */
69
+ unhideOrRestoreHostSiblingsFromScreenReaders() {
70
+ this.#hostSiblingAriaHiddenCache.forEach((previousValue, element) => {
71
+ // if element had aria-hidden status prior, restore status
72
+ if (element.parentElement) {
73
+ if (previousValue) {
74
+ element.setAttribute('aria-hidden', previousValue);
75
+ }
76
+ else {
77
+ element.removeAttribute('aria-hidden');
78
+ }
79
+ }
80
+ });
81
+ this.#hostSiblingAriaHiddenCache.clear();
82
+ }
83
+ hidePreviousModalFromScreenReaders(topModal) {
84
+ if (topModal && topModal.nativeElement.previousElementSibling) {
85
+ topModal.nativeElement.previousElementSibling.setAttribute('aria-hidden', 'true');
86
+ }
87
+ }
88
+ unhidePreviousModalFromScreenReaders(topModal) {
89
+ if (topModal && topModal.nativeElement.previousElementSibling) {
90
+ topModal.nativeElement.previousElementSibling.removeAttribute('aria-hidden');
91
+ }
92
+ }
93
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyModalAdapterService, deps: [{ token: i1.SkyAppWindowRef }], target: i0.ɵɵFactoryTarget.Injectable }); }
94
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyModalAdapterService }); }
95
+ }
96
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyModalAdapterService, decorators: [{
97
+ type: Injectable
98
+ }], ctorParameters: function () { return [{ type: i1.SkyAppWindowRef }]; } });
99
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtYWRhcHRlci5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL21vZGFscy9zcmMvbGliL21vZHVsZXMvbW9kYWwvbW9kYWwtYWRhcHRlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQUd2RDs7R0FFRztBQUVILE1BQU0sT0FBTyxzQkFBc0I7YUFDVCwwQkFBcUIsR0FBRywwQkFBMEIsQUFBN0IsQ0FBOEI7YUFDbkQscUJBQWdCLEdBQUcscUJBQXFCLEFBQXhCLENBQXlCO0lBRWpFLE9BQU8sQ0FBTTtJQUNiLE9BQU8sQ0FBYztJQUVyQixVQUFVLENBQWtCO0lBQzVCLDJCQUEyQixHQUFHLElBQUksR0FBRyxFQUEwQixDQUFDO0lBRWhFLFlBQVksU0FBMEI7UUFDcEMsSUFBSSxDQUFDLFVBQVUsR0FBRyxTQUFTLENBQUM7UUFDNUIsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUM7UUFDckQsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDO0lBQzVELENBQUM7SUFFTSx3QkFBd0IsQ0FBQyxTQUFrQjtRQUNoRCxJQUFJLFNBQVMsRUFBRTtZQUNiLElBQUksQ0FBQyxlQUFlLENBQUMsc0JBQXNCLENBQUMscUJBQXFCLENBQUMsQ0FBQztTQUNwRTthQUFNO1lBQ0wsSUFBSSxDQUFDLG9CQUFvQixDQUFDLHNCQUFzQixDQUFDLHFCQUFxQixDQUFDLENBQUM7U0FDekU7SUFDSCxDQUFDO0lBRU0sYUFBYSxDQUFDLEtBQWM7UUFDakMsSUFBSSxLQUFLLEVBQUU7WUFDVCxJQUFJLENBQUMsZUFBZSxDQUFDLHNCQUFzQixDQUFDLGdCQUFn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eyBFbGVtZW50UmVmLCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBTa3lBcHBXaW5kb3dSZWYgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTa3lNb2RhbEFkYXB0ZXJTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBzdGF0aWMgcmVhZG9ubHkgTU9EQUxfQk9EWV9GVUxMX0NMQVNTID0gJ3NreS1tb2RhbC1ib2R5LWZ1bGwtcGFnZSc7XG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IE1PREFMX0JPRFlfQ0xBU1MgPSAnc2t5LW1vZGFsLWJvZHktb3Blbic7XG5cbiAgI2RvY1JlZjogYW55O1xuICAjYm9keUVsOiBIVE1MRWxlbWVudDtcblxuICAjd2luZG93UmVmOiBTa3lBcHBXaW5kb3dSZWY7XG4gICNob3N0U2libGluZ0FyaWFIaWRkZW5DYWNoZSA9IG5ldyBNYXA8RWxlbWVudCwgc3RyaW5nIHwgbnVsbD4oKTtcblxuICBjb25zdHJ1Y3Rvcih3aW5kb3dSZWY6IFNreUFwcFdpbmRvd1JlZikge1xuICAgIHRoaXMuI3dpbmRvd1JlZiA9IHdpbmRvd1JlZjtcbiAgICB0aGlzLiNkb2NSZWYgPSB0aGlzLiN3aW5kb3dSZWYubmF0aXZlV2luZG93LmRvY3VtZW50O1xuICAgIHRoaXMuI2JvZHlFbCA9IHRoaXMuI3dpbmRvd1JlZi5uYXRpdmVXaW5kb3cuZG9jdW1lbnQuYm9keTtcbiAgfVxuXG4gIHB1YmxpYyB0b2dnbGVGdWxsUGFnZU1vZGFsQ2xhc3MoaXNBZGRGdWxsOiBib29sZWFuKTogdm9pZCB7XG4gICAgaWYgKGlzQWRkRnVsbCkge1xuICAgICAgdGhpcy4jYWRkQ2xhc3NUb0JvZHkoU2t5TW9kYWxBZGFwdGVyU2VydmljZS5NT0RBTF9CT0RZX0ZVTExfQ0xBU1MpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLiNyZW1vdmVDbGFzc0Zyb21Cb2R5KFNreU1vZGFsQWRhcHRlclNlcnZpY2UuTU9EQUxfQk9EWV9GVUxMX0NMQVNTKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2V0UGFnZVNjcm9sbChpc0FkZDogYm9vbGVhbik6IHZvaWQge1xuICAgIGlmIChpc0FkZCkge1xuICAgICAgdGhpcy4jYWRkQ2xhc3NUb0JvZHkoU2t5TW9kYWxBZGFwdGVyU2VydmljZS5NT0RBTF9CT0RZX0NMQVNTKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy4jcmVtb3ZlQ2xhc3NGcm9tQm9keShTa3lNb2RhbEFkYXB0ZXJTZXJ2aWNlLk1PREFMX0JPRFlfQ0xBU1MpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRNb2RhbE9wZW5lcigpOiBIVE1MRWxlbWVudCB7XG4gICAgcmV0dXJuIHRoaXMuI2RvY1JlZi5hY3RpdmVFbGVtZW50O1xuICB9XG5cbiAgI2FkZENsYXNzVG9Cb2R5KGNsYXNzTmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy4jYm9keUVsLmNsYXNzTGlzdC5hZGQoY2xhc3NOYW1lKTtcbiAgfVxuXG4gICNyZW1vdmVDbGFzc0Zyb21Cb2R5KGNsYXNzTmFtZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy4jYm9keUVsLmNsYXNzTGlzdC5yZW1vdmUoY2xhc3NOYW1lKTtcbiAgfVxuXG4gIHB1YmxpYyBzY3JvbGxDb250ZW50VG9Ub3AoZWxlbWVudDogRWxlbWVudFJlZik6IHZvaWQge1xuICAgIGVsZW1lbnQubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuc2t5LW1vZGFsLWNvbnRlbnQnKS5zY3JvbGxUb3AgPSAwO1xuICB9XG5cbiAgLyoqXG4gICAqIEhpZGVzIHNpYmxpbmdzIG9mIG1vZGFsLWhvc3QgZnJvbSBzY3JlZW4gcmVhZGVyc1xuICAgKiBAcGFyYW0gaG9zdEVsUmVmIHJlZmVyZW5jZSB0byBtb2RhbC1ob3N0IGVsZW1lbnRcbiAgICovXG4gIHB1YmxpYyBoaWRlSG9zdFNpYmxpbmdzRnJvbVNjcmVlblJlYWRlcnMoaG9zdEVsUmVmOiBFbGVtZW50UmVmKTogdm9pZCB7XG4gICAgY29uc3QgaG9zdEVsZW1lbnQgPSBob3N0RWxSZWYubmF0aXZlRWxlbWVudDtcbiAgICBjb25zdCBob3N0U2libGluZ3MgPSBob3N0RWxlbWVudC5wYXJlbnRFbGVtZW50LmNoaWxkcmVuO1xuXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBob3N0U2libGluZ3MubGVuZ3RoOyBpKyspIHtcbiAgICAgIGNvbnN0IGVsZW1lbnQgPSBob3N0U2libGluZ3NbaV07XG4gICAgICBpZiAoXG4gICAgICAgIGVsZW1lbnQgIT09IGhvc3RFbGVtZW50ICYmXG4gICAgICAgICFlbGVtZW50Lmhhc0F0dHJpYnV0ZSgnYXJpYS1saXZlJykgJiZcbiAgICAgICAgZWxlbWVudC5ub2RlTmFtZS50b0xvd2VyQ2FzZSgpICE9PSAnc2NyaXB0JyAmJlxuICAgICAgICBlbGVtZW50Lm5vZGVOYW1lLnRvTG93ZXJDYXNlKCkgIT09ICdzdHlsZSdcbiAgICAgICkge1xuICAgICAgICAvLyBwcmVzZXJ2ZSBwcmV2aW91cyBhcmlhLWhpZGRlbiBzdGF0dXMgb2YgZWxlbWVudHMgb3V0c2lkZSBvZiBtb2RhbCBob3N0XG4gICAgICAgIHRoaXMuI2hvc3RTaWJsaW5nQXJpYUhpZGRlbkNhY2hlLnNldChcbiAgICAgICAgICBlbGVtZW50LFxuICAgICAgICAgIGVsZW1lbnQuZ2V0QXR0cmlidXRlKCdhcmlhLWhpZGRlbicpXG4gICAgICAgICk7XG4gICAgICAgIGVsZW1lbnQuc2V0QXR0cmlidXRlKCdhcmlhLWhpZGRlbicsICd0cnVlJyk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJlc3RvcmVzIG1vZGFsLWhvc3Qgc2libGluZ3MgdG8gc2NyZWVuIHJlYWRlciBzdGF0dXMgcHJpb3IgdG8gbW9kYWxzIGJlaW5nIG9wZW5lZFxuICAgKi9cbiAgcHVibGljIHVuaGlkZU9yUmVzdG9yZUhvc3RTaWJsaW5nc0Zyb21TY3JlZW5SZWFkZXJzKCk6IHZvaWQge1xuICAgIHRoaXMuI2hvc3RTaWJsaW5nQXJpYUhpZGRlbkNhY2hlLmZvckVhY2goKHByZXZpb3VzVmFsdWUsIGVsZW1lbnQpID0+IHtcbiAgICAgIC8vIGlmIGVsZW1lbnQgaGFkIGFyaWEtaGlkZGVuIHN0YXR1cyBwcmlvciwgcmVzdG9yZSBzdGF0dXNcbiAgICAgIGlmIChlbGVtZW50LnBhcmVudEVsZW1lbnQpIHtcbiAgICAgICAgaWYgKHByZXZpb3VzVmFsdWUpIHtcbiAgICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgnYXJpYS1oaWRkZW4nLCBwcmV2aW91c1ZhbHVlKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBlbGVtZW50LnJlbW92ZUF0dHJpYnV0ZSgnYXJpYS1oaWRkZW4nKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMuI2hvc3RTaWJsaW5nQXJpYUhpZGRlbkNhY2hlLmNsZWFyKCk7XG4gIH1cblxuICBwdWJsaWMgaGlkZVByZXZpb3VzTW9kYWxGcm9tU2NyZWVuUmVhZGVycyh0b3BNb2RhbDogRWxlbWVudFJlZik6IHZvaWQge1xuICAgIGlmICh0b3BNb2RhbCAmJiB0b3BNb2RhbC5uYXRpdmVFbGVtZW50LnByZXZpb3VzRWxlbWVudFNpYmxpbmcpIHtcbiAgICAgIHRvcE1vZGFsLm5hdGl2ZUVsZW1lbnQucHJldmlvdXNFbGVtZW50U2libGluZy5zZXRBdHRyaWJ1dGUoXG4gICAgICAgICdhcmlhLWhpZGRlbicsXG4gICAgICAgICd0cnVlJ1xuICAgICAgKTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgdW5oaWRlUHJldmlvdXNNb2RhbEZyb21TY3JlZW5SZWFkZXJzKHRvcE1vZGFsOiBFbGVtZW50UmVmKTogdm9pZCB7XG4gICAgaWYgKHRvcE1vZGFsICYmIHRvcE1vZGFsLm5hdGl2ZUVsZW1lbnQucHJldmlvdXNFbGVtZW50U2libGluZykge1xuICAgICAgdG9wTW9kYWwubmF0aXZlRWxlbWVudC5wcmV2aW91c0VsZW1lbnRTaWJsaW5nLnJlbW92ZUF0dHJpYnV0ZShcbiAgICAgICAgJ2FyaWEtaGlkZGVuJ1xuICAgICAgKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,101 @@
1
+ import { Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@skyux/core";
4
+ /**
5
+ * @internal
6
+ */
7
+ export class SkyModalComponentAdapterService {
8
+ #coreAdapter;
9
+ constructor(coreAdapter) {
10
+ this.#coreAdapter = coreAdapter;
11
+ }
12
+ handleWindowChange(modalEl) {
13
+ const boundedHeightEl = modalEl.nativeElement.querySelector('.sky-modal');
14
+ const fullPageModalEl = modalEl.nativeElement.querySelector('.sky-modal-full-page');
15
+ /*
16
+ Set modal height equal to max height of window (accounting for padding above and below modal)
17
+ */
18
+ const newHeight = window.innerHeight - 40;
19
+ boundedHeightEl.style.maxHeight = newHeight.toString() + 'px';
20
+ if (fullPageModalEl) {
21
+ this.#setFullPageHeight(fullPageModalEl);
22
+ }
23
+ else {
24
+ /*
25
+ IE11 doesn't handle flex and max-height correctly so we have to explicitly add
26
+ max-height to the content that accounts for standard header and footer height.
27
+ */
28
+ const modalContentEl = modalEl.nativeElement.querySelector('.sky-modal-content');
29
+ const contentHeight = newHeight - 114;
30
+ modalContentEl.style.maxHeight = contentHeight.toString() + 'px';
31
+ }
32
+ }
33
+ isFocusInFirstItem(event, list) {
34
+ /* istanbul ignore next */
35
+ /* sanity check */
36
+ const eventTarget = event.target || event.srcElement;
37
+ return list.length > 0 && eventTarget === list[0];
38
+ }
39
+ isFocusInLastItem(event, list) {
40
+ /* istanbul ignore next */
41
+ /* sanity check */
42
+ const eventTarget = event.target || event.srcElement;
43
+ return list.length > 0 && eventTarget === list[list.length - 1];
44
+ }
45
+ isModalFocused(event, modalEl) {
46
+ /* istanbul ignore next */
47
+ /* sanity check */
48
+ const eventTarget = event.target || event.srcElement;
49
+ return (modalEl &&
50
+ eventTarget === modalEl.nativeElement.querySelector('.sky-modal-dialog'));
51
+ }
52
+ focusLastElement(list) {
53
+ if (list.length > 0) {
54
+ list[list.length - 1].focus();
55
+ return true;
56
+ }
57
+ return false;
58
+ }
59
+ focusFirstElement(list) {
60
+ if (list.length > 0) {
61
+ list[0].focus();
62
+ return true;
63
+ }
64
+ return false;
65
+ }
66
+ modalContentHasDirectChildViewkeeper(modalContentEl) {
67
+ return !!modalContentEl.nativeElement.querySelector('sky-modal-content > .sky-viewkeeper-fixed');
68
+ }
69
+ modalOpened(modalEl) {
70
+ /* istanbul ignore else */
71
+ /* handle the case where somehow there is a focused element already in the modal */
72
+ if (!(document.activeElement &&
73
+ modalEl.nativeElement.contains(document.activeElement))) {
74
+ const currentScrollX = window.pageXOffset;
75
+ const currentScrollY = window.pageYOffset;
76
+ const inputWithAutofocus = modalEl.nativeElement.querySelector('[autofocus]');
77
+ if (inputWithAutofocus) {
78
+ inputWithAutofocus.focus();
79
+ }
80
+ else {
81
+ this.#coreAdapter.getFocusableChildrenAndApplyFocus(modalEl, '.sky-modal-content', true);
82
+ }
83
+ window.scrollTo(currentScrollX, currentScrollY);
84
+ }
85
+ }
86
+ #setFullPageHeight(fullPageModalEl) {
87
+ const windowHeight = window.innerHeight;
88
+ const fullPageModalStyle = getComputedStyle(fullPageModalEl);
89
+ const marginTopBottom = parseInt(fullPageModalStyle.marginTop, 10) +
90
+ parseInt(fullPageModalStyle.marginBottom, 10);
91
+ const fullPageModalHeight = windowHeight - marginTopBottom + 'px';
92
+ fullPageModalEl.style.height = fullPageModalHeight;
93
+ fullPageModalEl.style.maxHeight = fullPageModalHeight;
94
+ }
95
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyModalComponentAdapterService, deps: [{ token: i1.SkyCoreAdapterService }], target: i0.ɵɵFactoryTarget.Injectable }); }
96
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyModalComponentAdapterService }); }
97
+ }
98
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyModalComponentAdapterService, decorators: [{
99
+ type: Injectable
100
+ }], ctorParameters: function () { return [{ type: i1.SkyCoreAdapterService }]; } });
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtY29tcG9uZW50LWFkYXB0ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9tb2RhbHMvc3JjL2xpYi9tb2R1bGVzL21vZGFsL21vZGFsLWNvbXBvbmVudC1hZGFwdGVyLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFjLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBR3ZEOztHQUVHO0FBRUgsTUFBTSxPQUFPLCtCQUErQjtJQUMxQyxZQUFZLENBQXdCO0lBRXBDLFlBQVksV0FBa0M7UUFDNUMsSUFBSSxDQUFDLFlBQVksR0FBRyxXQUFXLENBQUM7SUFDbEMsQ0FBQztJQUVNLGtCQUFrQixDQUFDLE9BQW1CO1FBQzNDLE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzFFLE1BQU0sZUFBZSxHQUFHLE9BQU8sQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUN6RCxzQkFBc0IsQ0FDdkIsQ0FBQztRQUNGOztVQUVFO1FBQ0YsTUFBTSxTQUFTLEdBQUcsTUFBTSxDQUFDLFdBQVcsR0FBRyxFQUFFLENBQUM7UUFFMUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsU0FBUyxDQUFDLFFBQVEsRUFBRSxHQUFHLElBQUksQ0FBQztRQUM5RCxJQUFJLGVBQWUsRUFBRTtZQUNuQixJQUFJLENBQUMsa0JBQWtCLENBQUMsZUFBZSxDQUFDLENBQUM7U0FDMUM7YUFBTTtZQUNMOzs7Y0FHRTtZQUNGLE1BQU0sY0FBYyxHQUNsQixPQUFPLENBQUMsYUFBYSxDQUFDLGFBQWEsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1lBQzVELE1BQU0sYUFBYSxHQUFHLFNBQVMsR0FBRyxHQUFHLENBQUM7WUFDdEMsY0FBYyxDQUFDLEtBQUssQ0FBQyxTQUFTLEdBQUcsYUFBYSxD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LGVBQWUsR0FDbkIsUUFBUSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsRUFBRSxFQUFFLENBQUM7WUFDMUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsQ0FBQztRQUVoRCxNQUFNLG1CQUFtQixHQUFHLFlBQVksR0FBRyxlQUFlLEdBQUcsSUFBSSxDQUFDO1FBRWxFLGVBQWUsQ0FBQyxLQUFLLENBQUMsTUFBTSxHQUFHLG1CQUFtQixDQUFDO1FBQ25ELGVBQWUsQ0FBQyxLQUFLLENBQUMsU0FBUyxHQUFHLG1CQUFtQixDQUFDO0lBQ3hELENBQUM7OEdBOUhVLCtCQUErQjtrSEFBL0IsK0JBQStCOzsyRkFBL0IsK0JBQStCO2tCQUQzQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5Q29yZUFkYXB0ZXJTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L2NvcmUnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2t5TW9kYWxDb21wb25lbnRBZGFwdGVyU2VydmljZSB7XG4gICNjb3JlQWRhcHRlcjogU2t5Q29yZUFkYXB0ZXJTZXJ2aWNlO1xuXG4gIGNvbnN0cnVjdG9yKGNvcmVBZGFwdGVyOiBTa3lDb3JlQWRhcHRlclNlcnZpY2UpIHtcbiAgICB0aGlzLiNjb3JlQWRhcHRlciA9IGNvcmVBZGFwdGVyO1xuICB9XG5cbiAgcHVibGljIGhhbmRsZVdpbmRvd0NoYW5nZShtb2RhbEVsOiBFbGVtZW50UmVmKTogdm9pZCB7XG4gICAgY29uc3QgYm91bmRlZEhlaWdodEVsID0gbW9kYWxFbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJy5za3ktbW9kYWwnKTtcbiAgICBjb25zdCBmdWxsUGFnZU1vZGFsRWwgPSBtb2RhbEVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcihcbiAgICAgICcuc2t5LW1vZGFsLWZ1bGwtcGFnZSdcbiAgICApO1xuICAgIC8qXG4gICAgICBTZXQgbW9kYWwgaGVpZ2h0IGVxdWFsIHRvIG1heCBoZWlnaHQgb2Ygd2luZG93IChhY2NvdW50aW5nIGZvciBwYWRkaW5nIGFib3ZlIGFuZCBiZWxvdyBtb2RhbClcbiAgICAqL1xuICAgIGNvbnN0IG5ld0hlaWdodCA9IHdpbmRvdy5pbm5lckhlaWdodCAtIDQwO1xuXG4gICAgYm91bmRlZEhlaWdodEVsLnN0eWxlLm1heEhlaWdodCA9IG5ld0hlaWdodC50b1N0cmluZygpICsgJ3B4JztcbiAgICBpZiAoZnVsbFBhZ2VNb2RhbEVsKSB7XG4gICAgICB0aGlzLiNzZXRGdWxsUGFnZUhlaWdodChmdWxsUGFnZU1vZGFsRWwpO1xuICAgIH0gZWxzZSB7XG4gICAgICAvKlxuICAgICAgICBJRTExIGRvZXNuJ3QgaGFuZGxlIGZsZXggYW5kIG1heC1oZWlnaHQgY29ycmVjdGx5IHNvIHdlIGhhdmUgdG8gZXhwbGljaXRseSBhZGRcbiAgICAgICAgbWF4LWhlaWdodCB0byB0aGUgY29udGVudCB0aGF0IGFjY291bnRzIGZvciBzdGFuZGFyZCBoZWFkZXIgYW5kIGZvb3RlciBoZWlnaHQuXG4gICAgICAqL1xuICAgICAgY29uc3QgbW9kYWxDb250ZW50RWwgPVxuICAgICAgICBtb2RhbEVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignLnNreS1tb2RhbC1jb250ZW50Jyk7XG4gICAgICBjb25zdCBjb250ZW50SGVpZ2h0ID0gbmV3SGVpZ2h0IC0gMTE0O1xuICAgICAgbW9kYWxDb250ZW50RWwuc3R5bGUubWF4SGVpZ2h0ID0gY29udGVudEhlaWdodC50b1N0cmluZygpICsgJ3B4JztcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgaXNGb2N1c0luRmlyc3RJdGVtKFxuICAgIGV2ZW50OiBLZXlib2FyZEV2ZW50LFxuICAgIGxpc3Q6IEFycmF5PEhUTUxFbGVtZW50PlxuICApOiBib29sZWFuIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgIC8qIHNhbml0eSBjaGVjayAqL1xuICAgIGNvbnN0IGV2ZW50VGFyZ2V0ID0gZXZlbnQudGFyZ2V0IHx8IGV2ZW50LnNyY0VsZW1lbnQ7XG4gICAgcmV0dXJuIGxpc3QubGVuZ3RoID4gMCAmJiBldmVudFRhcmdldCA9PT0gbGlzdFswXTtcbiAgfVxuXG4gIHB1YmxpYyBpc0ZvY3VzSW5MYXN0SXRlbShcbiAgICBldmVudDogS2V5Ym9hcmRFdmVudCxcbiAgICBsaXN0OiBBcnJheTxIVE1MRWxlbWVudD5cbiAgKTogYm9vbGVhbiB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgICAvKiBzYW5pdHkgY2hlY2sgKi9cbiAgICBjb25zdCBldmVudFRhcmdldCA9IGV2ZW50LnRhcmdldCB8fCBldmVudC5zcmNFbGVtZW50O1xuICAgIHJldHVybiBsaXN0Lmxlbmd0aCA+IDAgJiYgZXZlbnRUYXJnZXQgPT09IGxpc3RbbGlzdC5sZW5ndGggLSAxXTtcbiAgfVxuXG4gIHB1YmxpYyBpc01vZGFsRm9jdXNlZChldmVudDogS2V5Ym9hcmRFdmVudCwgbW9kYWxFbDogRWxlbWVudFJlZik6IGJvb2xlYW4ge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgLyogc2FuaXR5IGNoZWNrICovXG4gICAgY29uc3QgZXZlbnRUYXJnZXQgPSBldmVudC50YXJnZXQgfHwgZXZlbnQuc3JjRWxlbWVudDtcbiAgICByZXR1cm4gKFxuICAgICAgbW9kYWxFbCAmJlxuICAgICAgZXZlbnRUYXJnZXQgPT09IG1vZGFsRWwubmF0aXZlRWxlbWVudC5xdWVyeVNlbGVjdG9yKCcuc2t5LW1vZGFsLWRpYWxvZycpXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBmb2N1c0xhc3RFbGVtZW50KGxpc3Q6IEFycmF5PEhUTUxFbGVtZW50Pik6IGJvb2xlYW4ge1xuICAgIGlmIChsaXN0Lmxlbmd0aCA+IDApIHtcbiAgICAgIGxpc3RbbGlzdC5sZW5ndGggLSAxXS5mb2N1cygpO1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuICAgIHJldHVybiBmYWxzZTtcbiAgfVxuXG4gIHB1YmxpYyBmb2N1c0ZpcnN0RWxlbWVudChsaXN0OiBBcnJheTxIVE1MRWxlbWVudD4pOiBib29sZWFuIHtcbiAgICBpZiAobGlzdC5sZW5ndGggPiAwKSB7XG4gICAgICBsaXN0WzBdLmZvY3VzKCk7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHVibGljIG1vZGFsQ29udGVudEhhc0RpcmVjdENoaWxkVmlld2tlZXBlcihcbiAgICBtb2RhbENvbnRlbnRFbDogRWxlbWVudFJlZlxuICApOiBib29sZWFuIHtcbiAgICByZXR1cm4gISFtb2RhbENvbnRlbnRFbC5uYXRpdmVFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoXG4gICAgICAnc2t5LW1vZGFsLWNvbnRlbnQgPiAuc2t5LXZpZXdrZWVwZXItZml4ZWQnXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBtb2RhbE9wZW5lZChtb2RhbEVsOiBFbGVtZW50UmVmKTogdm9pZCB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAvKiBoYW5kbGUgdGhlIGNhc2Ugd2hlcmUgc29tZWhvdyB0aGVyZSBpcyBhIGZvY3VzZWQgZWxlbWVudCBhbHJlYWR5IGluIHRoZSBtb2RhbCAqL1xuICAgIGlmIChcbiAgICAgICEoXG4gICAgICAgIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQgJiZcbiAgICAgICAgbW9kYWxFbC5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQpXG4gICAgICApXG4gICAgKSB7XG4gICAgICBjb25zdCBjdXJyZW50U2Nyb2xsWCA9IHdpbmRvdy5wYWdlWE9mZnNldDtcbiAgICAgIGNvbnN0IGN1cnJlbnRTY3JvbGxZID0gd2luZG93LnBhZ2VZT2Zmc2V0O1xuXG4gICAgICBjb25zdCBpbnB1dFdpdGhBdXRvZm9jdXMgPVxuICAgICAgICBtb2RhbEVsLm5hdGl2ZUVsZW1lbnQucXVlcnlTZWxlY3RvcignW2F1dG9mb2N1c10nKTtcblxuICAgICAgaWYgKGlucHV0V2l0aEF1dG9mb2N1cykge1xuICAgICAgICBpbnB1dFdpdGhBdXRvZm9jdXMuZm9jdXMoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuI2NvcmVBZGFwdGVyLmdldEZvY3VzYWJsZUNoaWxkcmVuQW5kQXBwbHlGb2N1cyhcbiAgICAgICAgICBtb2RhbEVsLFxuICAgICAgICAgICcuc2t5LW1vZGFsLWNvbnRlbnQnLFxuICAgICAgICAgIHRydWVcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICAgIHdpbmRvdy5zY3JvbGxUbyhjdXJyZW50U2Nyb2xsWCwgY3VycmVudFNjcm9sbFkpO1xuICAgIH1cbiAgfVxuXG4gICNzZXRGdWxsUGFnZUhlaWdodChmdWxsUGFnZU1vZGFsRWw6IEhUTUxFbGVtZW50KTogdm9pZCB7XG4gICAgY29uc3Qgd2luZG93SGVpZ2h0ID0gd2luZG93LmlubmVySGVpZ2h0O1xuICAgIGNvbnN0IGZ1bGxQYWdlTW9kYWxTdHlsZSA9IGdldENvbXB1dGVkU3R5bGUoZnVsbFBhZ2VNb2RhbEVsKTtcblxuICAgIGNvbnN0IG1hcmdpblRvcEJvdHRvbSA9XG4gICAgICBwYXJzZUludChmdWxsUGFnZU1vZGFsU3R5bGUubWFyZ2luVG9wLCAxMCkgK1xuICAgICAgcGFyc2VJbnQoZnVsbFBhZ2VNb2RhbFN0eWxlLm1hcmdpbkJvdHRvbSwgMTApO1xuXG4gICAgY29uc3QgZnVsbFBhZ2VNb2RhbEhlaWdodCA9IHdpbmRvd0hlaWdodCAtIG1hcmdpblRvcEJvdHRvbSArICdweCc7XG5cbiAgICBmdWxsUGFnZU1vZGFsRWwuc3R5bGUuaGVpZ2h0ID0gZnVsbFBhZ2VNb2RhbEhlaWdodDtcbiAgICBmdWxsUGFnZU1vZGFsRWwuc3R5bGUubWF4SGVpZ2h0ID0gZnVsbFBhZ2VNb2RhbEhlaWdodDtcbiAgfVxufVxuIl19
@@ -7,13 +7,13 @@ export class SkyModalConfiguration {
7
7
  constructor() {
8
8
  this.size = 'medium';
9
9
  }
10
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyModalConfiguration, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
11
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyModalConfiguration, providedIn: 'any' }); }
10
12
  }
11
- SkyModalConfiguration.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyModalConfiguration, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
12
- SkyModalConfiguration.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyModalConfiguration, providedIn: 'any' });
13
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyModalConfiguration, decorators: [{
13
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyModalConfiguration, decorators: [{
14
14
  type: Injectable,
15
15
  args: [{
16
16
  providedIn: 'any',
17
17
  }]
18
18
  }], ctorParameters: function () { return []; } });
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtY29uZmlndXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9tb2RhbHMvc3JjL2xpYi9tb2R1bGVzL21vZGFsL21vZGFsLWNvbmZpZ3VyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFM0M7O0dBRUc7QUFJSCxNQUFNLE9BQU8scUJBQXFCO0lBVWhDO1FBQ0UsSUFBSSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUM7SUFDdkIsQ0FBQzs7a0hBWlUscUJBQXFCO3NIQUFyQixxQkFBcUIsY0FGcEIsS0FBSzsyRkFFTixxQkFBcUI7a0JBSGpDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLEtBQUs7aUJBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdhbnknLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lNb2RhbENvbmZpZ3VyYXRpb24ge1xuICBwdWJsaWMgZnVsbFBhZ2U/OiBib29sZWFuO1xuICBwdWJsaWMgc2l6ZT86IHN0cmluZztcbiAgcHVibGljIGFyaWFEZXNjcmliZWRCeT86IHN0cmluZztcbiAgcHVibGljIGFyaWFMYWJlbGxlZEJ5Pzogc3RyaW5nO1xuICBwdWJsaWMgYXJpYVJvbGU/OiBzdHJpbmc7XG4gIHB1YmxpYyB0aWxlZEJvZHk/OiBib29sZWFuO1xuICBwdWJsaWMgaGVscEtleT86IHN0cmluZztcbiAgcHVibGljIHdyYXBwZXJDbGFzcz86IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLnNpemUgPSAnbWVkaXVtJztcbiAgfVxufVxuIl19
19
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtY29uZmlndXJhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9tb2RhbHMvc3JjL2xpYi9tb2R1bGVzL21vZGFsL21vZGFsLWNvbmZpZ3VyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFM0M7O0dBRUc7QUFJSCxNQUFNLE9BQU8scUJBQXFCO0lBVWhDO1FBQ0UsSUFBSSxDQUFDLElBQUksR0FBRyxRQUFRLENBQUM7SUFDdkIsQ0FBQzs4R0FaVSxxQkFBcUI7a0hBQXJCLHFCQUFxQixjQUZwQixLQUFLOzsyRkFFTixxQkFBcUI7a0JBSGpDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLEtBQUs7aUJBQ2xCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdhbnknLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lNb2RhbENvbmZpZ3VyYXRpb24ge1xuICBwdWJsaWMgZnVsbFBhZ2U/OiBib29sZWFuO1xuICBwdWJsaWMgc2l6ZT86IHN0cmluZztcbiAgcHVibGljIGFyaWFEZXNjcmliZWRCeT86IHN0cmluZztcbiAgcHVibGljIGFyaWFMYWJlbGxlZEJ5Pzogc3RyaW5nO1xuICBwdWJsaWMgYXJpYVJvbGU/OiBzdHJpbmc7XG4gIHB1YmxpYyB0aWxlZEJvZHk/OiBib29sZWFuO1xuICBwdWJsaWMgaGVscEtleT86IHN0cmluZztcbiAgcHVibGljIHdyYXBwZXJDbGFzcz86IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLnNpemUgPSAnbWVkaXVtJztcbiAgfVxufVxuIl19
@@ -4,11 +4,11 @@ import * as i0 from "@angular/core";
4
4
  * Specifies content to display in the modal's body.
5
5
  */
6
6
  export class SkyModalContentComponent {
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyModalContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
8
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: SkyModalContentComponent, selector: "sky-modal-content", ngImport: i0, template: "<ng-content></ng-content>\n", styles: ["sky-modal-content{display:block;min-height:100%}.sky-theme-modern sky-modal-content{padding:10px 30px 30px}\n"], encapsulation: i0.ViewEncapsulation.None }); }
7
9
  }
8
- SkyModalContentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyModalContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
9
- SkyModalContentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SkyModalContentComponent, selector: "sky-modal-content", ngImport: i0, template: "<ng-content></ng-content>\n", styles: ["sky-modal-content{display:block;min-height:100%}.sky-theme-modern sky-modal-content{padding:10px 30px 30px}\n"], encapsulation: i0.ViewEncapsulation.None });
10
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyModalContentComponent, decorators: [{
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyModalContentComponent, decorators: [{
11
11
  type: Component,
12
12
  args: [{ selector: 'sky-modal-content', encapsulation: ViewEncapsulation.None, template: "<ng-content></ng-content>\n", styles: ["sky-modal-content{display:block;min-height:100%}.sky-theme-modern sky-modal-content{padding:10px 30px 30px}\n"] }]
13
13
  }] });
14
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtY29udGVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbW9kYWxzL3NyYy9saWIvbW9kdWxlcy9tb2RhbC9tb2RhbC1jb250ZW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9tb2RhbHMvc3JjL2xpYi9tb2R1bGVzL21vZGFsL21vZGFsLWNvbnRlbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFN0Q7O0dBRUc7QUFPSCxNQUFNLE9BQU8sd0JBQXdCOztxSEFBeEIsd0JBQXdCO3lHQUF4Qix3QkFBd0IseURDWHJDLDZCQUNBOzJGRFVhLHdCQUF3QjtrQkFOcEMsU0FBUzsrQkFDRSxtQkFBbUIsaUJBR2QsaUJBQWlCLENBQUMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBTcGVjaWZpZXMgY29udGVudCB0byBkaXNwbGF5IGluIHRoZSBtb2RhbCdzIGJvZHkuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1tb2RhbC1jb250ZW50JyxcbiAgdGVtcGxhdGVVcmw6ICcuL21vZGFsLWNvbnRlbnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tb2RhbC1jb250ZW50LmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIFNreU1vZGFsQ29udGVudENvbXBvbmVudCB7fVxuIiwiPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuIl19
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtY29udGVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbW9kYWxzL3NyYy9saWIvbW9kdWxlcy9tb2RhbC9tb2RhbC1jb250ZW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9tb2RhbHMvc3JjL2xpYi9tb2R1bGVzL21vZGFsL21vZGFsLWNvbnRlbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFN0Q7O0dBRUc7QUFPSCxNQUFNLE9BQU8sd0JBQXdCOzhHQUF4Qix3QkFBd0I7a0dBQXhCLHdCQUF3Qix5RENYckMsNkJBQ0E7OzJGRFVhLHdCQUF3QjtrQkFOcEMsU0FBUzsrQkFDRSxtQkFBbUIsaUJBR2QsaUJBQWlCLENBQUMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBTcGVjaWZpZXMgY29udGVudCB0byBkaXNwbGF5IGluIHRoZSBtb2RhbCdzIGJvZHkuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1tb2RhbC1jb250ZW50JyxcbiAgdGVtcGxhdGVVcmw6ICcuL21vZGFsLWNvbnRlbnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tb2RhbC1jb250ZW50LmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIFNreU1vZGFsQ29udGVudENvbXBvbmVudCB7fVxuIiwiPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuIl19
@@ -0,0 +1,21 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { BehaviorSubject } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ /**
5
+ * @internal
6
+ */
7
+ export class SkyModalErrorsService {
8
+ #formErrors = new BehaviorSubject(undefined);
9
+ constructor() {
10
+ this.formErrors = this.#formErrors.asObservable();
11
+ }
12
+ updateErrors(value) {
13
+ this.#formErrors.next(value);
14
+ }
15
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyModalErrorsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
16
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyModalErrorsService }); }
17
+ }
18
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyModalErrorsService, decorators: [{
19
+ type: Injectable
20
+ }], ctorParameters: function () { return []; } });
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtZXJyb3JzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbW9kYWxzL3NyYy9saWIvbW9kdWxlcy9tb2RhbC9tb2RhbC1lcnJvcnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxlQUFlLEVBQWMsTUFBTSxNQUFNLENBQUM7O0FBSW5EOztHQUVHO0FBRUgsTUFBTSxPQUFPLHFCQUFxQjtJQUdoQyxXQUFXLEdBQUcsSUFBSSxlQUFlLENBQThCLFNBQVMsQ0FBQyxDQUFDO0lBRTFFO1FBQ0UsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ3BELENBQUM7SUFFTSxZQUFZLENBQUMsS0FBa0M7UUFDcEQsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDL0IsQ0FBQzs4R0FYVSxxQkFBcUI7a0hBQXJCLHFCQUFxQjs7MkZBQXJCLHFCQUFxQjtrQkFEakMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFNreU1vZGFsRXJyb3IgfSBmcm9tICcuL21vZGFsLWVycm9yJztcblxuLyoqXG4gKiBAaW50ZXJuYWxcbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFNreU1vZGFsRXJyb3JzU2VydmljZSB7XG4gIHB1YmxpYyBmb3JtRXJyb3JzOiBPYnNlcnZhYmxlPFNreU1vZGFsRXJyb3JbXSB8IHVuZGVmaW5lZD47XG5cbiAgI2Zvcm1FcnJvcnMgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNreU1vZGFsRXJyb3JbXSB8IHVuZGVmaW5lZD4odW5kZWZpbmVkKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICB0aGlzLmZvcm1FcnJvcnMgPSB0aGlzLiNmb3JtRXJyb3JzLmFzT2JzZXJ2YWJsZSgpO1xuICB9XG5cbiAgcHVibGljIHVwZGF0ZUVycm9ycyh2YWx1ZTogU2t5TW9kYWxFcnJvcltdIHwgdW5kZWZpbmVkKTogdm9pZCB7XG4gICAgdGhpcy4jZm9ybUVycm9ycy5uZXh0KHZhbHVlKTtcbiAgfVxufVxuIl19
@@ -10,11 +10,11 @@ export class SkyModalFooterComponent {
10
10
  constructor() {
11
11
  this.errorsSvc = inject(SkyModalErrorsService);
12
12
  }
13
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyModalFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
14
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.1.7", type: SkyModalFooterComponent, selector: "sky-modal-footer", ngImport: i0, template: "<div class=\"sky-modal-footer-container sky-padding-even-large\">\n <div aria-live=\"polite\">\n <div\n *ngIf=\"errorsSvc.formErrors | async as formErrors\"\n class=\"sky-modal-footer-errors sky-margin-stacked-lg\"\n >\n <sky-status-indicator\n *ngFor=\"let formError of formErrors\"\n [ngClass]=\"{\n 'sky-margin-stacked-lg':\n formErrors.indexOf(formError) < formErrors.length - 1,\n 'footer-error': true\n }\"\n descriptionType=\"error\"\n indicatorType=\"danger\"\n >\n {{ formError.message }}\n </sky-status-indicator>\n </div>\n </div>\n <ng-content></ng-content>\n</div>\n", styles: [".sky-modal-footer-container{background-color:#fff;border-top:1px solid #e2e3e4}.sky-modal-footer-container .sky-btn-link:first-child{margin-left:-12px}.sky-modal-footer-container .sky-btn+.sky-btn{margin-left:10px}.sky-modal-footer-container .sky-btn+.sky-btn-link{margin-left:-2px}.sky-modal-footer-container .sky-modal-footer-errors{max-height:100px;overflow-y:auto}.sky-modal-footer-container .sky-modal-footer-errors .footer-error{display:block}.sky-theme-modern .sky-modal-footer-container{border-top:none;padding:20px 30px}.sky-theme-modern .sky-modal-footer-container .sky-btn-link:first-child{margin-left:0}.sky-theme-modern .sky-modal-footer-container .sky-btn+.sky-btn-link{margin-left:var(--sky-compat-modal-footer-adjacent-btn-btn-link-margin, 10px)}.sky-theme-modern-dark .sky-modal-footer-container{background-color:transparent}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.λ10, selector: "sky-status-indicator", inputs: ["indicatorType", "descriptionType", "customDescription"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], encapsulation: i0.ViewEncapsulation.None }); }
13
15
  }
14
- SkyModalFooterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyModalFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
15
- SkyModalFooterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: SkyModalFooterComponent, selector: "sky-modal-footer", ngImport: i0, template: "<div class=\"sky-modal-footer-container sky-padding-even-large\">\n <div aria-live=\"polite\">\n <div\n *ngIf=\"errorsSvc.formErrors | async as formErrors\"\n class=\"sky-modal-footer-errors sky-margin-stacked-lg\"\n >\n <sky-status-indicator\n *ngFor=\"let formError of formErrors\"\n [ngClass]=\"{\n 'sky-margin-stacked-lg':\n formErrors.indexOf(formError) < formErrors.length - 1,\n 'footer-error': true\n }\"\n descriptionType=\"error\"\n indicatorType=\"danger\"\n >\n {{ formError.message }}\n </sky-status-indicator>\n </div>\n </div>\n <ng-content></ng-content>\n</div>\n", styles: [".sky-modal-footer-container{background-color:#fff;border-top:1px solid #e2e3e4}.sky-modal-footer-container .sky-btn-link:first-child{margin-left:-12px}.sky-modal-footer-container .sky-btn+.sky-btn{margin-left:10px}.sky-modal-footer-container .sky-btn+.sky-btn-link{margin-left:-2px}.sky-modal-footer-container .sky-modal-footer-errors{max-height:100px;overflow-y:auto}.sky-modal-footer-container .sky-modal-footer-errors .footer-error{display:block}.sky-theme-modern .sky-modal-footer-container{border-top:none;padding:20px 30px}.sky-theme-modern .sky-modal-footer-container .sky-btn-link:first-child{margin-left:0}.sky-theme-modern .sky-modal-footer-container .sky-btn+.sky-btn-link{margin-left:var(--sky-compat-modal-footer-adjacent-btn-btn-link-margin, 10px)}.sky-theme-modern-dark .sky-modal-footer-container{background-color:transparent}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.λ10, selector: "sky-status-indicator", inputs: ["indicatorType", "descriptionType", "customDescription"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }], encapsulation: i0.ViewEncapsulation.None });
16
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: SkyModalFooterComponent, decorators: [{
16
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkyModalFooterComponent, decorators: [{
17
17
  type: Component,
18
18
  args: [{ selector: 'sky-modal-footer', encapsulation: ViewEncapsulation.None, template: "<div class=\"sky-modal-footer-container sky-padding-even-large\">\n <div aria-live=\"polite\">\n <div\n *ngIf=\"errorsSvc.formErrors | async as formErrors\"\n class=\"sky-modal-footer-errors sky-margin-stacked-lg\"\n >\n <sky-status-indicator\n *ngFor=\"let formError of formErrors\"\n [ngClass]=\"{\n 'sky-margin-stacked-lg':\n formErrors.indexOf(formError) < formErrors.length - 1,\n 'footer-error': true\n }\"\n descriptionType=\"error\"\n indicatorType=\"danger\"\n >\n {{ formError.message }}\n </sky-status-indicator>\n </div>\n </div>\n <ng-content></ng-content>\n</div>\n", styles: [".sky-modal-footer-container{background-color:#fff;border-top:1px solid #e2e3e4}.sky-modal-footer-container .sky-btn-link:first-child{margin-left:-12px}.sky-modal-footer-container .sky-btn+.sky-btn{margin-left:10px}.sky-modal-footer-container .sky-btn+.sky-btn-link{margin-left:-2px}.sky-modal-footer-container .sky-modal-footer-errors{max-height:100px;overflow-y:auto}.sky-modal-footer-container .sky-modal-footer-errors .footer-error{display:block}.sky-theme-modern .sky-modal-footer-container{border-top:none;padding:20px 30px}.sky-theme-modern .sky-modal-footer-container .sky-btn-link:first-child{margin-left:0}.sky-theme-modern .sky-modal-footer-container .sky-btn+.sky-btn-link{margin-left:var(--sky-compat-modal-footer-adjacent-btn-btn-link-margin, 10px)}.sky-theme-modern-dark .sky-modal-footer-container{background-color:transparent}\n"] }]
19
19
  }] });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtZm9vdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9tb2RhbHMvc3JjL2xpYi9tb2R1bGVzL21vZGFsL21vZGFsLWZvb3Rlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbW9kYWxzL3NyYy9saWIvbW9kdWxlcy9tb2RhbC9tb2RhbC1mb290ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFckUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7QUFFL0Q7O0dBRUc7QUFPSCxNQUFNLE9BQU8sdUJBQXVCO0lBTnBDO1FBT1ksY0FBUyxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0tBQ3JEOztvSEFGWSx1QkFBdUI7d0dBQXZCLHVCQUF1Qix3RENicEMsaXJCQXNCQTsyRkRUYSx1QkFBdUI7a0JBTm5DLFNBQVM7K0JBQ0Usa0JBQWtCLGlCQUdiLGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFZpZXdFbmNhcHN1bGF0aW9uLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU2t5TW9kYWxFcnJvcnNTZXJ2aWNlIH0gZnJvbSAnLi9tb2RhbC1lcnJvcnMuc2VydmljZSc7XG5cbi8qKlxuICogU3BlY2lmaWVzIGNvbnRlbnQgdG8gZGlzcGxheSBpbiB0aGUgbW9kYWwncyBmb290ZXIuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1tb2RhbC1mb290ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vbW9kYWwtZm9vdGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbW9kYWwtZm9vdGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIFNreU1vZGFsRm9vdGVyQ29tcG9uZW50IHtcbiAgcHJvdGVjdGVkIGVycm9yc1N2YyA9IGluamVjdChTa3lNb2RhbEVycm9yc1NlcnZpY2UpO1xufVxuIiwiPGRpdiBjbGFzcz1cInNreS1tb2RhbC1mb290ZXItY29udGFpbmVyIHNreS1wYWRkaW5nLWV2ZW4tbGFyZ2VcIj5cbiAgPGRpdiBhcmlhLWxpdmU9XCJwb2xpdGVcIj5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cImVycm9yc1N2Yy5mb3JtRXJyb3JzIHwgYXN5bmMgYXMgZm9ybUVycm9yc1wiXG4gICAgICBjbGFzcz1cInNreS1tb2RhbC1mb290ZXItZXJyb3JzIHNreS1tYXJnaW4tc3RhY2tlZC1sZ1wiXG4gICAgPlxuICAgICAgPHNreS1zdGF0dXMtaW5kaWNhdG9yXG4gICAgICAgICpuZ0Zvcj1cImxldCBmb3JtRXJyb3Igb2YgZm9ybUVycm9yc1wiXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAnc2t5LW1hcmdpbi1zdGFja2VkLWxnJzpcbiAgICAgICAgICAgIGZvcm1FcnJvcnMuaW5kZXhPZihmb3JtRXJyb3IpIDwgZm9ybUVycm9ycy5sZW5ndGggLSAxLFxuICAgICAgICAgICdmb290ZXItZXJyb3InOiB0cnVlXG4gICAgICAgIH1cIlxuICAgICAgICBkZXNjcmlwdGlvblR5cGU9XCJlcnJvclwiXG4gICAgICAgIGluZGljYXRvclR5cGU9XCJkYW5nZXJcIlxuICAgICAgPlxuICAgICAgICB7eyBmb3JtRXJyb3IubWVzc2FnZSB9fVxuICAgICAgPC9za3ktc3RhdHVzLWluZGljYXRvcj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvZGl2PlxuIl19
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtZm9vdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9tb2RhbHMvc3JjL2xpYi9tb2R1bGVzL21vZGFsL21vZGFsLWZvb3Rlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbW9kYWxzL3NyYy9saWIvbW9kdWxlcy9tb2RhbC9tb2RhbC1mb290ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFckUsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7QUFFL0Q7O0dBRUc7QUFPSCxNQUFNLE9BQU8sdUJBQXVCO0lBTnBDO1FBT1ksY0FBUyxHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO0tBQ3JEOzhHQUZZLHVCQUF1QjtrR0FBdkIsdUJBQXVCLHdEQ2JwQyxpckJBc0JBOzsyRkRUYSx1QkFBdUI7a0JBTm5DLFNBQVM7K0JBQ0Usa0JBQWtCLGlCQUdiLGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIFZpZXdFbmNhcHN1bGF0aW9uLCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU2t5TW9kYWxFcnJvcnNTZXJ2aWNlIH0gZnJvbSAnLi9tb2RhbC1lcnJvcnMuc2VydmljZSc7XG5cbi8qKlxuICogU3BlY2lmaWVzIGNvbnRlbnQgdG8gZGlzcGxheSBpbiB0aGUgbW9kYWwncyBmb290ZXIuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1tb2RhbC1mb290ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vbW9kYWwtZm9vdGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbW9kYWwtZm9vdGVyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIFNreU1vZGFsRm9vdGVyQ29tcG9uZW50IHtcbiAgcHJvdGVjdGVkIGVycm9yc1N2YyA9IGluamVjdChTa3lNb2RhbEVycm9yc1NlcnZpY2UpO1xufVxuIiwiPGRpdiBjbGFzcz1cInNreS1tb2RhbC1mb290ZXItY29udGFpbmVyIHNreS1wYWRkaW5nLWV2ZW4tbGFyZ2VcIj5cbiAgPGRpdiBhcmlhLWxpdmU9XCJwb2xpdGVcIj5cbiAgICA8ZGl2XG4gICAgICAqbmdJZj1cImVycm9yc1N2Yy5mb3JtRXJyb3JzIHwgYXN5bmMgYXMgZm9ybUVycm9yc1wiXG4gICAgICBjbGFzcz1cInNreS1tb2RhbC1mb290ZXItZXJyb3JzIHNreS1tYXJnaW4tc3RhY2tlZC1sZ1wiXG4gICAgPlxuICAgICAgPHNreS1zdGF0dXMtaW5kaWNhdG9yXG4gICAgICAgICpuZ0Zvcj1cImxldCBmb3JtRXJyb3Igb2YgZm9ybUVycm9yc1wiXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAnc2t5LW1hcmdpbi1zdGFja2VkLWxnJzpcbiAgICAgICAgICAgIGZvcm1FcnJvcnMuaW5kZXhPZihmb3JtRXJyb3IpIDwgZm9ybUVycm9ycy5sZW5ndGggLSAxLFxuICAgICAgICAgICdmb290ZXItZXJyb3InOiB0cnVlXG4gICAgICAgIH1cIlxuICAgICAgICBkZXNjcmlwdGlvblR5cGU9XCJlcnJvclwiXG4gICAgICAgIGluZGljYXRvclR5cGU9XCJkYW5nZXJcIlxuICAgICAgPlxuICAgICAgICB7eyBmb3JtRXJyb3IubWVzc2FnZSB9fVxuICAgICAgPC9za3ktc3RhdHVzLWluZGljYXRvcj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvZGl2PlxuIl19