@skyux/modals 5.7.2 → 6.0.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (119) hide show
  1. package/documentation.json +4 -4
  2. package/esm2020/index.mjs +26 -0
  3. package/esm2020/lib/modules/confirm/confirm-button-action.mjs +2 -0
  4. package/esm2020/lib/modules/confirm/confirm-button-config.mjs +2 -0
  5. package/esm2020/lib/modules/confirm/confirm-button.mjs +2 -0
  6. package/esm2020/lib/modules/confirm/confirm-closed-event-args.mjs +2 -0
  7. package/esm2020/lib/modules/confirm/confirm-config.mjs +2 -0
  8. package/esm2020/lib/modules/confirm/confirm-instance.mjs +12 -0
  9. package/esm2020/lib/modules/confirm/confirm-modal-context.mjs +4 -0
  10. package/esm2020/lib/modules/confirm/confirm-type.mjs +25 -0
  11. package/esm2020/lib/modules/confirm/confirm.component.mjs +123 -0
  12. package/esm2020/lib/modules/confirm/confirm.module.mjs +34 -0
  13. package/esm2020/lib/modules/confirm/confirm.service.mjs +55 -0
  14. package/esm2020/lib/modules/modal/modal-adapter.service.mjs +47 -0
  15. package/esm2020/lib/modules/modal/modal-before-close-handler.mjs +7 -0
  16. package/esm2020/lib/modules/modal/modal-close-args.mjs +3 -0
  17. package/esm2020/lib/modules/modal/modal-component-adapter.service.mjs +98 -0
  18. package/esm2020/lib/modules/modal/modal-configuration.mjs +19 -0
  19. package/esm2020/lib/modules/modal/modal-content.component.mjs +14 -0
  20. package/esm2020/lib/modules/modal/modal-footer.component.mjs +14 -0
  21. package/esm2020/lib/modules/modal/modal-header.component.mjs +15 -0
  22. package/esm2020/lib/modules/modal/modal-host.component.mjs +96 -0
  23. package/esm2020/lib/modules/modal/modal-host.service.mjs +55 -0
  24. package/esm2020/lib/modules/modal/modal-instance.mjs +105 -0
  25. package/esm2020/lib/modules/modal/modal-scroll-shadow-event-args.mjs +2 -0
  26. package/esm2020/lib/modules/modal/modal-scroll-shadow.directive.mjs +122 -0
  27. package/esm2020/lib/modules/modal/modal-state-animation.mjs +8 -0
  28. package/esm2020/lib/modules/modal/modal.component.mjs +178 -0
  29. package/esm2020/lib/modules/modal/modal.interface.mjs +4 -0
  30. package/esm2020/lib/modules/modal/modal.module.mjs +63 -0
  31. package/esm2020/lib/modules/modal/modal.service.mjs +85 -0
  32. package/esm2020/lib/modules/shared/sky-modals-resources.module.mjs +54 -0
  33. package/esm2020/skyux-modals.mjs +5 -0
  34. package/esm2020/testing/modal-fixture.mjs +168 -0
  35. package/esm2020/testing/public-api.mjs +2 -0
  36. package/esm2020/testing/skyux-modals-testing.mjs +5 -0
  37. package/fesm2015/{skyux-modals-testing.js → skyux-modals-testing.mjs} +1 -1
  38. package/fesm2015/skyux-modals-testing.mjs.map +1 -0
  39. package/fesm2015/skyux-modals.mjs +1159 -0
  40. package/fesm2015/skyux-modals.mjs.map +1 -0
  41. package/{esm2015/testing/modal-fixture.js → fesm2020/skyux-modals-testing.mjs} +8 -2
  42. package/fesm2020/skyux-modals-testing.mjs.map +1 -0
  43. package/{fesm2015/skyux-modals.js → fesm2020/skyux-modals.mjs} +58 -88
  44. package/fesm2020/skyux-modals.mjs.map +1 -0
  45. package/package.json +39 -15
  46. package/testing/package.json +5 -5
  47. package/bundles/skyux-modals-testing.umd.js +0 -538
  48. package/bundles/skyux-modals.umd.js +0 -1356
  49. package/esm2015/index.js +0 -26
  50. package/esm2015/index.js.map +0 -1
  51. package/esm2015/lib/modules/confirm/confirm-button-action.js +0 -2
  52. package/esm2015/lib/modules/confirm/confirm-button-action.js.map +0 -1
  53. package/esm2015/lib/modules/confirm/confirm-button-config.js +0 -2
  54. package/esm2015/lib/modules/confirm/confirm-button-config.js.map +0 -1
  55. package/esm2015/lib/modules/confirm/confirm-button.js +0 -2
  56. package/esm2015/lib/modules/confirm/confirm-button.js.map +0 -1
  57. package/esm2015/lib/modules/confirm/confirm-closed-event-args.js +0 -2
  58. package/esm2015/lib/modules/confirm/confirm-closed-event-args.js.map +0 -1
  59. package/esm2015/lib/modules/confirm/confirm-config.js +0 -2
  60. package/esm2015/lib/modules/confirm/confirm-config.js.map +0 -1
  61. package/esm2015/lib/modules/confirm/confirm-instance.js +0 -12
  62. package/esm2015/lib/modules/confirm/confirm-instance.js.map +0 -1
  63. package/esm2015/lib/modules/confirm/confirm-modal-context.js +0 -4
  64. package/esm2015/lib/modules/confirm/confirm-modal-context.js.map +0 -1
  65. package/esm2015/lib/modules/confirm/confirm-type.js +0 -25
  66. package/esm2015/lib/modules/confirm/confirm-type.js.map +0 -1
  67. package/esm2015/lib/modules/confirm/confirm.component.js +0 -127
  68. package/esm2015/lib/modules/confirm/confirm.component.js.map +0 -1
  69. package/esm2015/lib/modules/confirm/confirm.module.js +0 -35
  70. package/esm2015/lib/modules/confirm/confirm.module.js.map +0 -1
  71. package/esm2015/lib/modules/confirm/confirm.service.js +0 -55
  72. package/esm2015/lib/modules/confirm/confirm.service.js.map +0 -1
  73. package/esm2015/lib/modules/modal/modal-adapter.service.js +0 -47
  74. package/esm2015/lib/modules/modal/modal-adapter.service.js.map +0 -1
  75. package/esm2015/lib/modules/modal/modal-before-close-handler.js +0 -7
  76. package/esm2015/lib/modules/modal/modal-before-close-handler.js.map +0 -1
  77. package/esm2015/lib/modules/modal/modal-close-args.js +0 -3
  78. package/esm2015/lib/modules/modal/modal-close-args.js.map +0 -1
  79. package/esm2015/lib/modules/modal/modal-component-adapter.service.js +0 -98
  80. package/esm2015/lib/modules/modal/modal-component-adapter.service.js.map +0 -1
  81. package/esm2015/lib/modules/modal/modal-configuration.js +0 -19
  82. package/esm2015/lib/modules/modal/modal-configuration.js.map +0 -1
  83. package/esm2015/lib/modules/modal/modal-content.component.js +0 -19
  84. package/esm2015/lib/modules/modal/modal-content.component.js.map +0 -1
  85. package/esm2015/lib/modules/modal/modal-footer.component.js +0 -18
  86. package/esm2015/lib/modules/modal/modal-footer.component.js.map +0 -1
  87. package/esm2015/lib/modules/modal/modal-header.component.js +0 -19
  88. package/esm2015/lib/modules/modal/modal-header.component.js.map +0 -1
  89. package/esm2015/lib/modules/modal/modal-host.component.js +0 -101
  90. package/esm2015/lib/modules/modal/modal-host.component.js.map +0 -1
  91. package/esm2015/lib/modules/modal/modal-host.service.js +0 -55
  92. package/esm2015/lib/modules/modal/modal-host.service.js.map +0 -1
  93. package/esm2015/lib/modules/modal/modal-instance.js +0 -105
  94. package/esm2015/lib/modules/modal/modal-instance.js.map +0 -1
  95. package/esm2015/lib/modules/modal/modal-scroll-shadow-event-args.js +0 -2
  96. package/esm2015/lib/modules/modal/modal-scroll-shadow-event-args.js.map +0 -1
  97. package/esm2015/lib/modules/modal/modal-scroll-shadow.directive.js +0 -122
  98. package/esm2015/lib/modules/modal/modal-scroll-shadow.directive.js.map +0 -1
  99. package/esm2015/lib/modules/modal/modal-state-animation.js +0 -8
  100. package/esm2015/lib/modules/modal/modal-state-animation.js.map +0 -1
  101. package/esm2015/lib/modules/modal/modal.component.js +0 -184
  102. package/esm2015/lib/modules/modal/modal.component.js.map +0 -1
  103. package/esm2015/lib/modules/modal/modal.interface.js +0 -4
  104. package/esm2015/lib/modules/modal/modal.interface.js.map +0 -1
  105. package/esm2015/lib/modules/modal/modal.module.js +0 -64
  106. package/esm2015/lib/modules/modal/modal.module.js.map +0 -1
  107. package/esm2015/lib/modules/modal/modal.service.js +0 -85
  108. package/esm2015/lib/modules/modal/modal.service.js.map +0 -1
  109. package/esm2015/lib/modules/shared/sky-modals-resources.module.js +0 -54
  110. package/esm2015/lib/modules/shared/sky-modals-resources.module.js.map +0 -1
  111. package/esm2015/skyux-modals.js +0 -5
  112. package/esm2015/skyux-modals.js.map +0 -1
  113. package/esm2015/testing/modal-fixture.js.map +0 -1
  114. package/esm2015/testing/public-api.js +0 -2
  115. package/esm2015/testing/public-api.js.map +0 -1
  116. package/esm2015/testing/skyux-modals-testing.js +0 -5
  117. package/esm2015/testing/skyux-modals-testing.js.map +0 -1
  118. package/fesm2015/skyux-modals-testing.js.map +0 -1
  119. package/fesm2015/skyux-modals.js.map +0 -1
@@ -0,0 +1,14 @@
1
+ import { Component, ViewEncapsulation } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * Specifies content to display in the modal's body.
5
+ */
6
+ export class SkyModalContentComponent {
7
+ }
8
+ SkyModalContentComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyModalContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
9
+ SkyModalContentComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.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 });
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyModalContentComponent, decorators: [{
11
+ type: Component,
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
+ }] });
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtY29udGVudC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbW9kYWxzL3NyYy9saWIvbW9kdWxlcy9tb2RhbC9tb2RhbC1jb250ZW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9tb2RhbHMvc3JjL2xpYi9tb2R1bGVzL21vZGFsL21vZGFsLWNvbnRlbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFN0Q7O0dBRUc7QUFPSCxNQUFNLE9BQU8sd0JBQXdCOztxSEFBeEIsd0JBQXdCO3lHQUF4Qix3QkFBd0IseURDWHJDLDZCQUNBOzJGRFVhLHdCQUF3QjtrQkFOcEMsU0FBUzsrQkFDRSxtQkFBbUIsaUJBR2QsaUJBQWlCLENBQUMsSUFBSSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0VuY2Fwc3VsYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBTcGVjaWZpZXMgY29udGVudCB0byBkaXNwbGF5IGluIHRoZSBtb2RhbCdzIGJvZHkuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1tb2RhbC1jb250ZW50JyxcbiAgdGVtcGxhdGVVcmw6ICcuL21vZGFsLWNvbnRlbnQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tb2RhbC1jb250ZW50LmNvbXBvbmVudC5zY3NzJ10sXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG59KVxuZXhwb3J0IGNsYXNzIFNreU1vZGFsQ29udGVudENvbXBvbmVudCB7fVxuIiwiPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuIl19
@@ -0,0 +1,14 @@
1
+ import { Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * Specifies content to display in the modal's footer.
5
+ */
6
+ export class SkyModalFooterComponent {
7
+ }
8
+ SkyModalFooterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyModalFooterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
9
+ SkyModalFooterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyModalFooterComponent, selector: "sky-modal-footer", ngImport: i0, template: "<div class=\"sky-modal-footer-container sky-padding-even-large\">\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 ::ng-deep .sky-btn-link:first-child{margin-left:-12px}:host-context(.sky-theme-modern) .sky-modal-footer-container{border-top:none;padding:20px 30px}.sky-theme-modern .sky-modal-footer-container{border-top:none;padding:20px 30px}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-modal-footer-container{background-color:transparent}.sky-theme-modern.sky-theme-mode-dark .sky-modal-footer-container{background-color:transparent}\n"] });
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyModalFooterComponent, decorators: [{
11
+ type: Component,
12
+ args: [{ selector: 'sky-modal-footer', template: "<div class=\"sky-modal-footer-container sky-padding-even-large\">\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 ::ng-deep .sky-btn-link:first-child{margin-left:-12px}:host-context(.sky-theme-modern) .sky-modal-footer-container{border-top:none;padding:20px 30px}.sky-theme-modern .sky-modal-footer-container{border-top:none;padding:20px 30px}:host-context(.sky-theme-modern.sky-theme-mode-dark) .sky-modal-footer-container{background-color:transparent}.sky-theme-modern.sky-theme-mode-dark .sky-modal-footer-container{background-color:transparent}\n"] }]
13
+ }] });
14
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtZm9vdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9tb2RhbHMvc3JjL2xpYi9tb2R1bGVzL21vZGFsL21vZGFsLWZvb3Rlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbW9kYWxzL3NyYy9saWIvbW9kdWxlcy9tb2RhbC9tb2RhbC1mb290ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFFMUM7O0dBRUc7QUFNSCxNQUFNLE9BQU8sdUJBQXVCOztvSEFBdkIsdUJBQXVCO3dHQUF2Qix1QkFBdUIsd0RDVnBDLDBHQUdBOzJGRE9hLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSxrQkFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuLyoqXG4gKiBTcGVjaWZpZXMgY29udGVudCB0byBkaXNwbGF5IGluIHRoZSBtb2RhbCdzIGZvb3Rlci5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc2t5LW1vZGFsLWZvb3RlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9tb2RhbC1mb290ZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tb2RhbC1mb290ZXIuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5TW9kYWxGb290ZXJDb21wb25lbnQge31cbiIsIjxkaXYgY2xhc3M9XCJza3ktbW9kYWwtZm9vdGVyLWNvbnRhaW5lciBza3ktcGFkZGluZy1ldmVuLWxhcmdlXCI+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvZGl2PlxuIl19
@@ -0,0 +1,15 @@
1
+ import { Component } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@skyux/theme";
4
+ /**
5
+ * Specifies a header for the modal.
6
+ */
7
+ export class SkyModalHeaderComponent {
8
+ }
9
+ SkyModalHeaderComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyModalHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
10
+ SkyModalHeaderComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyModalHeaderComponent, selector: "sky-modal-header", ngImport: i0, template: "<h1\n class=\"sky-emphasized\"\n [skyThemeClass]=\"{\n 'sky-font-display-3': 'modern'\n }\"\n>\n <ng-content></ng-content>\n</h1>\n", styles: ["h1{margin:0;line-height:1.2}:host-context(.sky-theme-modern.sky-theme-mode-dark) h1{color:#fbfcfe}.sky-theme-modern.sky-theme-mode-dark h1{color:#fbfcfe}\n"], directives: [{ type: i1.λ2, selector: "[skyThemeClass]", inputs: ["class", "skyThemeClass"] }] });
11
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyModalHeaderComponent, decorators: [{
12
+ type: Component,
13
+ args: [{ selector: 'sky-modal-header', template: "<h1\n class=\"sky-emphasized\"\n [skyThemeClass]=\"{\n 'sky-font-display-3': 'modern'\n }\"\n>\n <ng-content></ng-content>\n</h1>\n", styles: ["h1{margin:0;line-height:1.2}:host-context(.sky-theme-modern.sky-theme-mode-dark) h1{color:#fbfcfe}.sky-theme-modern.sky-theme-mode-dark h1{color:#fbfcfe}\n"] }]
14
+ }] });
15
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9tb2RhbHMvc3JjL2xpYi9tb2R1bGVzL21vZGFsL21vZGFsLWhlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbW9kYWxzL3NyYy9saWIvbW9kdWxlcy9tb2RhbC9tb2RhbC1oZWFkZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQzs7O0FBRTFDOztHQUVHO0FBTUgsTUFBTSxPQUFPLHVCQUF1Qjs7b0hBQXZCLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLHdEQ1ZwQyw0SUFRQTsyRkRFYSx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0Usa0JBQWtCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogU3BlY2lmaWVzIGEgaGVhZGVyIGZvciB0aGUgbW9kYWwuXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1tb2RhbC1oZWFkZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vbW9kYWwtaGVhZGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbW9kYWwtaGVhZGVyLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNreU1vZGFsSGVhZGVyQ29tcG9uZW50IHt9XG4iLCI8aDFcbiAgY2xhc3M9XCJza3ktZW1waGFzaXplZFwiXG4gIFtza3lUaGVtZUNsYXNzXT1cIntcbiAgICAnc2t5LWZvbnQtZGlzcGxheS0zJzogJ21vZGVybidcbiAgfVwiXG4+XG4gIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbjwvaDE+XG4iXX0=
@@ -0,0 +1,96 @@
1
+ import { ChangeDetectorRef, Component, ComponentFactoryResolver, Injector, ViewChild, ViewContainerRef, } from '@angular/core';
2
+ import { NavigationStart, Router } from '@angular/router';
3
+ import { takeWhile } from 'rxjs/operators';
4
+ import { SkyModalAdapterService } from './modal-adapter.service';
5
+ import { SkyModalConfiguration } from './modal-configuration';
6
+ import { SkyModalHostService } from './modal-host.service';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "./modal-adapter.service";
9
+ import * as i2 from "@angular/router";
10
+ import * as i3 from "@angular/common";
11
+ /**
12
+ * @internal
13
+ */
14
+ export class SkyModalHostComponent {
15
+ constructor(resolver, adapter, injector, router, changeDetector) {
16
+ this.resolver = resolver;
17
+ this.adapter = adapter;
18
+ this.injector = injector;
19
+ this.router = router;
20
+ this.changeDetector = changeDetector;
21
+ }
22
+ get modalOpen() {
23
+ return SkyModalHostService.openModalCount > 0;
24
+ }
25
+ get backdropZIndex() {
26
+ return SkyModalHostService.backdropZIndex;
27
+ }
28
+ open(modalInstance, component, config) {
29
+ const params = Object.assign({}, config);
30
+ const factory = this.resolver.resolveComponentFactory(component);
31
+ const hostService = new SkyModalHostService();
32
+ hostService.fullPage = !!params.fullPage;
33
+ const adapter = this.adapter;
34
+ const modalOpener = adapter.getModalOpener();
35
+ let isOpen = true;
36
+ params.providers.push({
37
+ provide: SkyModalHostService,
38
+ useValue: hostService,
39
+ });
40
+ params.providers.push({
41
+ provide: SkyModalConfiguration,
42
+ useValue: params,
43
+ });
44
+ adapter.setPageScroll(SkyModalHostService.openModalCount > 0);
45
+ adapter.toggleFullPageModalClass(SkyModalHostService.fullPageModalCount > 0);
46
+ const providers = params.providers || /* istanbul ignore next */ [];
47
+ const injector = Injector.create({
48
+ providers,
49
+ parent: this.injector,
50
+ });
51
+ const modalComponentRef = this.target.createComponent(factory, undefined, injector);
52
+ modalInstance.componentInstance = modalComponentRef.instance;
53
+ function closeModal() {
54
+ hostService.destroy();
55
+ adapter.setPageScroll(SkyModalHostService.openModalCount > 0);
56
+ adapter.toggleFullPageModalClass(SkyModalHostService.fullPageModalCount > 0);
57
+ /* istanbul ignore else */
58
+ /* sanity check */
59
+ if (modalOpener && modalOpener.focus) {
60
+ modalOpener.focus();
61
+ }
62
+ modalComponentRef.destroy();
63
+ }
64
+ hostService.openHelp.subscribe((helpKey) => {
65
+ modalInstance.openHelp(helpKey);
66
+ });
67
+ hostService.close.subscribe(() => {
68
+ modalInstance.close();
69
+ });
70
+ this.router.events.pipe(takeWhile(() => isOpen)).subscribe((event) => {
71
+ /* istanbul ignore else */
72
+ if (event instanceof NavigationStart) {
73
+ modalInstance.close();
74
+ }
75
+ });
76
+ modalInstance.closed.subscribe(() => {
77
+ isOpen = false;
78
+ closeModal();
79
+ });
80
+ // Necessary if the host was created via a consumer's lifecycle hook such as ngOnInit
81
+ this.changeDetector.detectChanges();
82
+ }
83
+ }
84
+ SkyModalHostComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyModalHostComponent, deps: [{ token: i0.ComponentFactoryResolver }, { token: i1.SkyModalAdapterService }, { token: i0.Injector }, { token: i2.Router }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
85
+ SkyModalHostComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.7", type: SkyModalHostComponent, selector: "sky-modal-host", viewQueries: [{ propertyName: "target", first: true, predicate: ["target"], descendants: true, read: ViewContainerRef, static: true }], ngImport: i0, template: "<div\n class=\"sky-modal-host-backdrop\"\n [hidden]=\"!modalOpen\"\n [ngStyle]=\"{\n zIndex: backdropZIndex\n }\"\n></div>\n<div #target></div>\n", styles: [".sky-modal-host-backdrop{background-color:#00000080;position:fixed;top:0;left:0;bottom:0;right:0}\n"], directives: [{ type: i3.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }], viewProviders: [SkyModalAdapterService] });
86
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyModalHostComponent, decorators: [{
87
+ type: Component,
88
+ args: [{ selector: 'sky-modal-host', viewProviders: [SkyModalAdapterService], template: "<div\n class=\"sky-modal-host-backdrop\"\n [hidden]=\"!modalOpen\"\n [ngStyle]=\"{\n zIndex: backdropZIndex\n }\"\n></div>\n<div #target></div>\n", styles: [".sky-modal-host-backdrop{background-color:#00000080;position:fixed;top:0;left:0;bottom:0;right:0}\n"] }]
89
+ }], ctorParameters: function () { return [{ type: i0.ComponentFactoryResolver }, { type: i1.SkyModalAdapterService }, { type: i0.Injector }, { type: i2.Router }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { target: [{
90
+ type: ViewChild,
91
+ args: ['target', {
92
+ read: ViewContainerRef,
93
+ static: true,
94
+ }]
95
+ }] } });
96
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtaG9zdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbW9kYWxzL3NyYy9saWIvbW9kdWxlcy9tb2RhbC9tb2RhbC1ob3N0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9tb2RhbHMvc3JjL2xpYi9tb2R1bGVzL21vZGFsL21vZGFsLWhvc3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1Qsd0JBQXdCLEVBQ3hCLFFBQVEsRUFDUixTQUFTLEVBQ1QsZ0JBQWdCLEdBQ2pCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFMUQsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTNDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ2pFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHVCQUF1QixDQUFDO0FBQzlELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDOzs7OztBQUkzRDs7R0FFRztBQU9ILE1BQU0sT0FBTyxxQkFBcUI7SUFxQmhDLFlBQ1UsUUFBa0MsRUFDbEMsT0FBK0IsRUFDL0IsUUFBa0IsRUFDbEIsTUFBYyxFQUNkLGNBQWlDO1FBSmpDLGFBQVEsR0FBUixRQUFRLENBQTBCO1FBQ2xDLFlBQU8sR0FBUCxPQUFPLENBQXdCO1FBQy9CLGFBQVEsR0FBUixRQUFRLENBQVU7UUFDbEIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLG1CQUFjLEdBQWQsY0FBYyxDQUFtQjtJQUN4QyxDQUFDO0lBMUJKLElBQVcsU0FBUztRQUNsQixPQUFPLG1CQUFtQixD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WUFBWSxlQUFlLEVBQUU7Z0JBQ3BDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUN2QjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsYUFBYSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQ2xDLE1BQU0sR0FBRyxLQUFLLENBQUM7WUFDZixVQUFVLEVBQUUsQ0FBQztRQUNmLENBQUMsQ0FBQyxDQUFDO1FBRUgscUZBQXFGO1FBQ3JGLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDdEMsQ0FBQzs7a0hBN0dVLHFCQUFxQjtzR0FBckIscUJBQXFCLG1JQWdCeEIsZ0JBQWdCLDJDQzNDMUIsMEpBUUEsa05EaUJpQixDQUFDLHNCQUFzQixDQUFDOzJGQUU1QixxQkFBcUI7a0JBTmpDLFNBQVM7K0JBQ0UsZ0JBQWdCLGlCQUdYLENBQUMsc0JBQXNCLENBQUM7Z09BcUJoQyxNQUFNO3NCQUpaLFNBQVM7dUJBQUMsUUFBUSxFQUFFO3dCQUNuQixJQUFJLEVBQUUsZ0JBQWdCO3dCQUN0QixNQUFNLEVBQUUsSUFBSTtxQkFDTiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgSW5qZWN0b3IsXG4gIFZpZXdDaGlsZCxcbiAgVmlld0NvbnRhaW5lclJlZixcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uU3RhcnQsIFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5cbmltcG9ydCB7IHRha2VXaGlsZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgU2t5TW9kYWxBZGFwdGVyU2VydmljZSB9IGZyb20gJy4vbW9kYWwtYWRhcHRlci5zZXJ2aWNlJztcbmltcG9ydCB7IFNreU1vZGFsQ29uZmlndXJhdGlvbiB9IGZyb20gJy4vbW9kYWwtY29uZmlndXJhdGlvbic7XG5pbXBvcnQgeyBTa3lNb2RhbEhvc3RTZXJ2aWNlIH0gZnJvbSAnLi9tb2RhbC1ob3N0LnNlcnZpY2UnO1xuaW1wb3J0IHsgU2t5TW9kYWxJbnN0YW5jZSB9IGZyb20gJy4vbW9kYWwtaW5zdGFuY2UnO1xuaW1wb3J0IHsgU2t5TW9kYWxDb25maWd1cmF0aW9uSW50ZXJmYWNlIH0gZnJvbSAnLi9tb2RhbC5pbnRlcmZhY2UnO1xuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktbW9kYWwtaG9zdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9tb2RhbC1ob3N0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vbW9kYWwtaG9zdC5jb21wb25lbnQuc2NzcyddLFxuICB2aWV3UHJvdmlkZXJzOiBbU2t5TW9kYWxBZGFwdGVyU2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNreU1vZGFsSG9zdENvbXBvbmVudCB7XG4gIHB1YmxpYyBnZXQgbW9kYWxPcGVuKCkge1xuICAgIHJldHVybiBTa3lNb2RhbEhvc3RTZXJ2aWNlLm9wZW5Nb2RhbENvdW50ID4gMDtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgYmFja2Ryb3BaSW5kZXgoKSB7XG4gICAgcmV0dXJuIFNreU1vZGFsSG9zdFNlcnZpY2UuYmFja2Ryb3BaSW5kZXg7XG4gIH1cblxuICAvKipcbiAgICogVXNlIGBhbnlgIGZvciBiYWNrd2FyZHMtY29tcGF0aWJpbGl0eSB3aXRoIEFuZ3VsYXIgNC03LlxuICAgKiBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9hbmd1bGFyL2FuZ3VsYXIvaXNzdWVzLzMwNjU0XG4gICAqIFRPRE86IFJlbW92ZSB0aGUgYGFueWAgaW4gYSBicmVha2luZyBjaGFuZ2UuXG4gICAqIEBpbnRlcm5hbFxuICAgKi9cbiAgQFZpZXdDaGlsZCgndGFyZ2V0Jywge1xuICAgIHJlYWQ6IFZpZXdDb250YWluZXJSZWYsXG4gICAgc3RhdGljOiB0cnVlLFxuICB9IGFzIGFueSlcbiAgcHVibGljIHRhcmdldDogVmlld0NvbnRhaW5lclJlZjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgcHJpdmF0ZSBhZGFwdGVyOiBTa3lNb2RhbEFkYXB0ZXJTZXJ2aWNlLFxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBjaGFuZ2VEZXRlY3RvcjogQ2hhbmdlRGV0ZWN0b3JSZWZcbiAgKSB7fVxuXG4gIHB1YmxpYyBvcGVuKFxuICAgIG1vZGFsSW5zdGFuY2U6IFNreU1vZGFsSW5zdGFuY2UsXG4gICAgY29tcG9uZW50OiBhbnksXG4gICAgY29uZmlnPzogU2t5TW9kYWxDb25maWd1cmF0aW9uSW50ZXJmYWNlXG4gICkge1xuICAgIGNvbnN0IHBhcmFtczogU2t5TW9kYWxDb25maWd1cmF0aW9uSW50ZXJmYWNlID0gT2JqZWN0LmFzc2lnbih7fSwgY29uZmlnKTtcbiAgICBjb25zdCBmYWN0b3J5ID0gdGhpcy5yZXNvbHZlci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShjb21wb25lbnQpO1xuXG4gICAgY29uc3QgaG9zdFNlcnZpY2UgPSBuZXcgU2t5TW9kYWxIb3N0U2VydmljZSgpO1xuICAgIGhvc3RTZXJ2aWNlLmZ1bGxQYWdlID0gISFwYXJhbXMuZnVsbFBhZ2U7XG5cbiAgICBjb25zdCBhZGFwdGVyID0gdGhpcy5hZGFwdGVyO1xuICAgIGNvbnN0IG1vZGFsT3BlbmVyOiBIVE1MRWxlbWVudCA9IGFkYXB0ZXIuZ2V0TW9kYWxPcGVuZXIoKTtcblxuICAgIGxldCBpc09wZW4gPSB0cnVlO1xuXG4gICAgcGFyYW1zLnByb3ZpZGVycy5wdXNoKHtcbiAgICAgIHByb3ZpZGU6IFNreU1vZGFsSG9zdFNlcnZpY2UsXG4gICAgICB1c2VWYWx1ZTogaG9zdFNlcnZpY2UsXG4gICAgfSk7XG4gICAgcGFyYW1zLnByb3ZpZGVycy5wdXNoKHtcbiAgICAgIHByb3ZpZGU6IFNreU1vZGFsQ29uZmlndXJhdGlvbixcbiAgICAgIHVzZVZhbHVlOiBwYXJhbXMsXG4gICAgfSk7XG5cbiAgICBhZGFwdGVyLnNldFBhZ2VTY3JvbGwoU2t5TW9kYWxIb3N0U2VydmljZS5vcGVuTW9kYWxDb3VudCA+IDApO1xuICAgIGFkYXB0ZXIudG9nZ2xlRnVsbFBhZ2VNb2RhbENsYXNzKFxuICAgICAgU2t5TW9kYWxIb3N0U2VydmljZS5mdWxsUGFnZU1vZGFsQ291bnQgPiAwXG4gICAgKTtcblxuICAgIGNvbnN0IHByb3ZpZGVycyA9IHBhcmFtcy5wcm92aWRlcnMgfHwgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi8gW107XG4gICAgY29uc3QgaW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgcHJvdmlkZXJzLFxuICAgICAgcGFyZW50OiB0aGlzLmluamVjdG9yLFxuICAgIH0pO1xuXG4gICAgY29uc3QgbW9kYWxDb21wb25lbnRSZWYgPSB0aGlzLnRhcmdldC5jcmVhdGVDb21wb25lbnQoXG4gICAgICBmYWN0b3J5LFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgaW5qZWN0b3JcbiAgICApO1xuXG4gICAgbW9kYWxJbnN0YW5jZS5jb21wb25lbnRJbnN0YW5jZSA9IG1vZGFsQ29tcG9uZW50UmVmLmluc3RhbmNlO1xuXG4gICAgZnVuY3Rpb24gY2xvc2VNb2RhbCgpIHtcbiAgICAgIGhvc3RTZXJ2aWNlLmRlc3Ryb3koKTtcbiAgICAgIGFkYXB0ZXIuc2V0UGFnZVNjcm9sbChTa3lNb2RhbEhvc3RTZXJ2aWNlLm9wZW5Nb2RhbENvdW50ID4gMCk7XG4gICAgICBhZGFwdGVyLnRvZ2dsZUZ1bGxQYWdlTW9kYWxDbGFzcyhcbiAgICAgICAgU2t5TW9kYWxIb3N0U2VydmljZS5mdWxsUGFnZU1vZGFsQ291bnQgPiAwXG4gICAgICApO1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgIC8qIHNhbml0eSBjaGVjayAqL1xuICAgICAgaWYgKG1vZGFsT3BlbmVyICYmIG1vZGFsT3BlbmVyLmZvY3VzKSB7XG4gICAgICAgIG1vZGFsT3BlbmVyLmZvY3VzKCk7XG4gICAgICB9XG4gICAgICBtb2RhbENvbXBvbmVudFJlZi5kZXN0cm95KCk7XG4gICAgfVxuXG4gICAgaG9zdFNlcnZpY2Uub3BlbkhlbHAuc3Vic2NyaWJlKChoZWxwS2V5Pzogc3RyaW5nKSA9PiB7XG4gICAgICBtb2RhbEluc3RhbmNlLm9wZW5IZWxwKGhlbHBLZXkpO1xuICAgIH0pO1xuXG4gICAgaG9zdFNlcnZpY2UuY2xvc2Uuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIG1vZGFsSW5zdGFuY2UuY2xvc2UoKTtcbiAgICB9KTtcblxuICAgIHRoaXMucm91dGVyLmV2ZW50cy5waXBlKHRha2VXaGlsZSgoKSA9PiBpc09wZW4pKS5zdWJzY3JpYmUoKGV2ZW50KSA9PiB7XG4gICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgICAgaWYgKGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvblN0YXJ0KSB7XG4gICAgICAgIG1vZGFsSW5zdGFuY2UuY2xvc2UoKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIG1vZGFsSW5zdGFuY2UuY2xvc2VkLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICBpc09wZW4gPSBmYWxzZTtcbiAgICAgIGNsb3NlTW9kYWwoKTtcbiAgICB9KTtcblxuICAgIC8vIE5lY2Vzc2FyeSBpZiB0aGUgaG9zdCB3YXMgY3JlYXRlZCB2aWEgYSBjb25zdW1lcidzIGxpZmVjeWNsZSBob29rIHN1Y2ggYXMgbmdPbkluaXRcbiAgICB0aGlzLmNoYW5nZURldGVjdG9yLmRldGVjdENoYW5nZXMoKTtcbiAgfVxufVxuIiwiPGRpdlxuICBjbGFzcz1cInNreS1tb2RhbC1ob3N0LWJhY2tkcm9wXCJcbiAgW2hpZGRlbl09XCIhbW9kYWxPcGVuXCJcbiAgW25nU3R5bGVdPVwie1xuICAgIHpJbmRleDogYmFja2Ryb3BaSW5kZXhcbiAgfVwiXG4+PC9kaXY+XG48ZGl2ICN0YXJnZXQ+PC9kaXY+XG4iXX0=
@@ -0,0 +1,55 @@
1
+ import { EventEmitter, Injectable } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ /**
4
+ * @internal
5
+ * @dynamic
6
+ */
7
+ export class SkyModalHostService {
8
+ constructor() {
9
+ this.close = new EventEmitter();
10
+ this.fullPage = false;
11
+ this.openHelp = new EventEmitter();
12
+ SkyModalHostService.modalHosts.push(this);
13
+ }
14
+ static get openModalCount() {
15
+ return SkyModalHostService.modalHosts.length;
16
+ }
17
+ static get fullPageModalCount() {
18
+ const fullPageModals = SkyModalHostService.modalHosts.filter((modal) => modal.fullPage);
19
+ return fullPageModals.length;
20
+ }
21
+ static get BASE_Z_INDEX() {
22
+ return 1040;
23
+ }
24
+ static get backdropZIndex() {
25
+ return (SkyModalHostService.BASE_Z_INDEX +
26
+ SkyModalHostService.modalHosts.length * 10);
27
+ }
28
+ static get topModal() {
29
+ return SkyModalHostService.modalHosts[SkyModalHostService.modalHosts.length - 1];
30
+ }
31
+ getModalZIndex() {
32
+ let zIndex = SkyModalHostService.BASE_Z_INDEX + 1;
33
+ zIndex += (SkyModalHostService.modalHosts.indexOf(this) + 1) * 10;
34
+ return zIndex;
35
+ }
36
+ onClose() {
37
+ this.close.emit();
38
+ }
39
+ onOpenHelp(helpKey) {
40
+ this.openHelp.emit(helpKey);
41
+ }
42
+ destroy() {
43
+ SkyModalHostService.modalHosts.splice(SkyModalHostService.modalHosts.indexOf(this), 1);
44
+ }
45
+ }
46
+ SkyModalHostService.modalHosts = [];
47
+ SkyModalHostService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyModalHostService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
48
+ SkyModalHostService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyModalHostService, providedIn: 'root' });
49
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyModalHostService, decorators: [{
50
+ type: Injectable,
51
+ args: [{
52
+ providedIn: 'root',
53
+ }]
54
+ }], ctorParameters: function () { return []; } });
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtaG9zdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL21vZGFscy9zcmMvbGliL21vZHVsZXMvbW9kYWwvbW9kYWwtaG9zdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUV6RDs7O0dBR0c7QUFJSCxNQUFNLE9BQU8sbUJBQW1CO0lBbUM5QjtRQUpPLFVBQUssR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ2pDLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDakIsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFHeEMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBcENNLE1BQU0sS0FBSyxjQUFjO1FBQzlCLE9BQU8sbUJBQW1CLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQztJQUMvQyxDQUFDO0lBRU0sTUFBTSxLQUFLLGtCQUFrQjtRQUNsQyxNQUFNLGNBQWMsR0FBRyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUMxRCxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FDMUIsQ0FBQztRQUNGLE9BQU8sY0FBYyxDQUFDLE1BQU0sQ0FBQztJQUMvQixDQUFDO0lBRU8sTUFBTSxLQUFLLFlBQVk7UUFDN0IsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0lBRU0sTUFBTSxLQUFLLGNBQWM7UUFDOUIsT0FBTyxDQUNMLG1CQUFtQixDQUFDLFlBQVk7WUFDaEMsbUJBQW1CLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQzNDLENBQUM7SUFDSixDQUFDO0lBRU0sTUFBTSxLQUFLLFFBQVE7UUFDeEIsT0FBTyxtQkFBbUIsQ0FBQyxVQUFVLENBQ25DLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUMxQyxDQUFDO0lBQ0osQ0FBQztJQVlNLGNBQWM7UUFDbkIsSUFBSSxNQUFNLEdBQUcsbUJBQW1CLENBQUMsWUFBWSxHQUFHLENBQUMsQ0FBQztRQUNsRCxNQUFNLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNsRSxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRU0sT0FBTztRQUNaLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDcEIsQ0FBQztJQUVNLFVBQVUsQ0FBQyxPQUFnQjtRQUNoQyxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRU0sT0FBTztRQUNaLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQ25DLG1CQUFtQixDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQzVDLENBQUMsQ0FDRixDQUFDO0lBQ0osQ0FBQzs7QUE3QmMsOEJBQVUsR0FBMEIsRUFBRyxDQUFBO2dIQTdCM0MsbUJBQW1CO29IQUFuQixtQkFBbUIsY0FGbEIsTUFBTTsyRkFFUCxtQkFBbUI7a0JBSC9CLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRXZlbnRFbWl0dGVyLCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogQGludGVybmFsXG4gKiBAZHluYW1pY1xuICovXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5TW9kYWxIb3N0U2VydmljZSB7XG4gIHB1YmxpYyBzdGF0aWMgZ2V0IG9wZW5Nb2RhbENvdW50KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIFNreU1vZGFsSG9zdFNlcnZpY2UubW9kYWxIb3N0cy5sZW5ndGg7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIGdldCBmdWxsUGFnZU1vZGFsQ291bnQoKTogbnVtYmVyIHtcbiAgICBjb25zdCBmdWxsUGFnZU1vZGFscyA9IFNreU1vZGFsSG9zdFNlcnZpY2UubW9kYWxIb3N0cy5maWx0ZXIoXG4gICAgICAobW9kYWwpID0+IG1vZGFsLmZ1bGxQYWdlXG4gICAgKTtcbiAgICByZXR1cm4gZnVsbFBhZ2VNb2RhbHMubGVuZ3RoO1xuICB9XG5cbiAgcHJpdmF0ZSBzdGF0aWMgZ2V0IEJBU0VfWl9JTkRFWCgpOiBudW1iZXIge1xuICAgIHJldHVybiAxMDQwO1xuICB9XG5cbiAgcHVibGljIHN0YXRpYyBnZXQgYmFja2Ryb3BaSW5kZXgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gKFxuICAgICAgU2t5TW9kYWxIb3N0U2VydmljZS5CQVNFX1pfSU5ERVggK1xuICAgICAgU2t5TW9kYWxIb3N0U2VydmljZS5tb2RhbEhvc3RzLmxlbmd0aCAqIDEwXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgZ2V0IHRvcE1vZGFsKCk6IFNreU1vZGFsSG9zdFNlcnZpY2Uge1xuICAgIHJldHVybiBTa3lNb2RhbEhvc3RTZXJ2aWNlLm1vZGFsSG9zdHNbXG4gICAgICBTa3lNb2RhbEhvc3RTZXJ2aWNlLm1vZGFsSG9zdHMubGVuZ3RoIC0gMVxuICAgIF07XG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBtb2RhbEhvc3RzOiBTa3lNb2RhbEhvc3RTZXJ2aWNlW10gPSBbXTtcblxuICBwdWJsaWMgY2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XG4gIHB1YmxpYyBmdWxsUGFnZSA9IGZhbHNlO1xuICBwdWJsaWMgb3BlbkhlbHAgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBTa3lNb2RhbEhvc3RTZXJ2aWNlLm1vZGFsSG9zdHMucHVzaCh0aGlzKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRNb2RhbFpJbmRleCgpOiBudW1iZXIge1xuICAgIGxldCB6SW5kZXggPSBTa3lNb2RhbEhvc3RTZXJ2aWNlLkJBU0VfWl9JTkRFWCArIDE7XG4gICAgekluZGV4ICs9IChTa3lNb2RhbEhvc3RTZXJ2aWNlLm1vZGFsSG9zdHMuaW5kZXhPZih0aGlzKSArIDEpICogMTA7XG4gICAgcmV0dXJuIHpJbmRleDtcbiAgfVxuXG4gIHB1YmxpYyBvbkNsb3NlKCk6IHZvaWQge1xuICAgIHRoaXMuY2xvc2UuZW1pdCgpO1xuICB9XG5cbiAgcHVibGljIG9uT3BlbkhlbHAoaGVscEtleT86IHN0cmluZykge1xuICAgIHRoaXMub3BlbkhlbHAuZW1pdChoZWxwS2V5KTtcbiAgfVxuXG4gIHB1YmxpYyBkZXN0cm95KCk6IHZvaWQge1xuICAgIFNreU1vZGFsSG9zdFNlcnZpY2UubW9kYWxIb3N0cy5zcGxpY2UoXG4gICAgICBTa3lNb2RhbEhvc3RTZXJ2aWNlLm1vZGFsSG9zdHMuaW5kZXhPZih0aGlzKSxcbiAgICAgIDFcbiAgICApO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,105 @@
1
+ import { Subject } from 'rxjs';
2
+ import { SkyModalBeforeCloseHandler } from './modal-before-close-handler';
3
+ import { SkyModalCloseArgs } from './modal-close-args';
4
+ // TODO: this class won't show in the generated docs until this work is done:
5
+ // https://github.com/blackbaud/skyux-docs-tools/issues/30
6
+ /**
7
+ * Allows you to close the modal and return data from the launched modal.
8
+ */
9
+ export class SkyModalInstance {
10
+ constructor() {
11
+ this._beforeClose = new Subject();
12
+ this._closed = new Subject();
13
+ this._helpOpened = new Subject();
14
+ }
15
+ /**
16
+ * An event that the modal instance emits when it is about to close.
17
+ * It emits a `SkyModalBeforeCloseHandler` object with a `closeModal` method
18
+ * that closes the modal. If a subscription exists for this event,
19
+ * the modal does not close until the subscriber calls the `closeModal` method.
20
+ */
21
+ get beforeClose() {
22
+ return this._beforeClose;
23
+ }
24
+ /**
25
+ * An event that the modal instance emits when it closes.
26
+ * It emits a `SkyModalCloseArgs` object with a `data` property that includes
27
+ * data passed from users on close or save and a `reason` property that indicates
28
+ * whether the modal was saved or closed without saving.
29
+ * The `reason` property accepts any string value.
30
+ * Common examples include `cancel`, `close`, and `save`.
31
+ */
32
+ get closed() {
33
+ return this._closed;
34
+ }
35
+ /**
36
+ * An event that the modal instance emits when users click
37
+ * the <i class="fa fa-question-circle" aria-hidden="true"></i> button.
38
+ * If a `helpKey` parameter was specified, the `helpOpened` event broadcasts the `helpKey`.
39
+ */
40
+ get helpOpened() {
41
+ return this._helpOpened;
42
+ }
43
+ /**
44
+ * Closes the modal instance.
45
+ * @param result Specifies an object to emit to subscribers of the `closed` event of the
46
+ * modal instance. The `SkyModalInstance` provider can be injected into a component's constructor
47
+ * so that this `close` function can be called from a button in the `sky-modal-footer`.
48
+ * @param reason Specifies the reason for the modal closing, with the default reason of `close`.
49
+ * @param ignoreBeforeClose Indicates whether to ignore the modal instance's `beforeClose` event.
50
+ */
51
+ close(result, reason, ignoreBeforeClose) {
52
+ if (reason === undefined) {
53
+ reason = 'close';
54
+ }
55
+ this.closeModal(reason, result, ignoreBeforeClose);
56
+ }
57
+ /**
58
+ * Closes the modal instance with `reason=cancel`.
59
+ * @param result Specifies an object to emit to subscribers of the `closed` event of the modal
60
+ * instance. The `SkyModalInstance` provider can be injected into a component's constructor so
61
+ * that this cancel function can be called from a button in the `sky-modal-footer`.
62
+ */
63
+ cancel(result) {
64
+ this.closeModal('cancel', result);
65
+ }
66
+ /**
67
+ * Closes the modal instance with `reason=save`.
68
+ * @param result Specifies an object to emit to subscribers of the `closed` event of the modal
69
+ * instance. The `SkyModalInstance` provider can be injected into a component's constructor so
70
+ * that this `save` function can be called from a button in `the sky-modal-footer`.
71
+ */
72
+ save(result) {
73
+ this.closeModal('save', result);
74
+ }
75
+ /**
76
+ * Triggers the `helpOpened` event that broadcasts a `helpKey` parameter to open
77
+ * when users click the <i class="fa fa-question-circle" aria-hidden="true"></i> button.
78
+ * @param helpKey Specifies a string to emit to subscribers of
79
+ * the modal instance's `helpOpened` event. Consumers can inject the `SkyModalInstance` provider
80
+ * into a component's constructor to call the `openHelp` function in the modal template.
81
+ */
82
+ openHelp(helpKey) {
83
+ this._helpOpened.next(helpKey);
84
+ }
85
+ closeModal(type, result, ignoreBeforeClose = false) {
86
+ const args = new SkyModalCloseArgs();
87
+ args.reason = type;
88
+ args.data = result;
89
+ if (this._beforeClose.observers.length === 0 || ignoreBeforeClose) {
90
+ this.notifyClosed(args);
91
+ }
92
+ else {
93
+ this._beforeClose.next(new SkyModalBeforeCloseHandler(() => {
94
+ this.notifyClosed(args);
95
+ }, args));
96
+ }
97
+ }
98
+ notifyClosed(args) {
99
+ this._closed.next(args);
100
+ this._closed.complete();
101
+ this._beforeClose.complete();
102
+ this._helpOpened.complete();
103
+ }
104
+ }
105
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtaW5zdGFuY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbW9kYWxzL3NyYy9saWIvbW9kdWxlcy9tb2RhbC9tb2RhbC1pbnN0YW5jZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWMsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRTNDLE9BQU8sRUFBRSwwQkFBMEIsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzFFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBRXZELDZFQUE2RTtBQUM3RSwwREFBMEQ7QUFFMUQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sZ0JBQWdCO0lBQTdCO1FBcUNVLGlCQUFZLEdBQUcsSUFBSSxPQUFPLEVBQThCLENBQUM7UUFFekQsWUFBTyxHQUFHLElBQUksT0FBTyxFQUFxQixDQUFDO1FBRTNDLGdCQUFXLEdBQUcsSUFBSSxPQUFPLEVBQVUsQ0FBQztJQWdGOUMsQ0FBQztJQXhIQzs7Ozs7T0FLRztJQUNILElBQVcsV0FBVztRQUNwQixPQUFPLElBQUksQ0FBQyxZQUFZLENBQUM7SUFDM0IsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxJQUFXLE1BQU07UUFDZixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUM7SUFDdEIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxJQUFXLFVBQVU7UUFDbkIsT0FBTyxJQUFJLENBQUMsV0FBVyxDQUFDO0lBQzFCLENBQUM7SUFhRDs7Ozs7OztPQU9HO0lBQ0ksS0FBSyxDQUNWLE1BQVksRUFDWixNQUFlLEVBQ2YsaUJBQTJCO1FBRTNCLElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRTtZQUN4QixNQUFNLEdBQUcsT0FBTyxDQUFDO1NBQ2xCO1FBRUQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLGlCQUFpQixDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLE1BQVk7UUFDeEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksSUFBSSxDQUFDLE1BQVk7UUFDdEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLFFBQVEsQ0FBQyxPQUFnQjtRQUM5QixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRU8sVUFBVSxDQUNoQixJQUFZLEVBQ1osTUFBWSxFQUNaLGlCQUFpQixHQUFHLEtBQUs7UUFFekIsTUFBTSxJQUFJLEdBQUcsSUFBSSxpQkFBaUIsRUFBRSxDQUFDO1FBRXJDLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBQ25CLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDO1FBRW5CLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxpQkFBaUIsRUFBRTtZQUNqRSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ3pCO2FBQU07WUFDTCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FDcEIsSUFBSSwwQkFBMEIsQ0FBQyxHQUFHLEVBQUU7Z0JBQ2xDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDMUIsQ0FBQyxFQUFFLElBQUksQ0FBQyxDQUNULENBQUM7U0FDSDtJQUNILENBQUM7SUFFTyxZQUFZLENBQUMsSUFBdUI7UUFDMUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsQ0FBQztRQUN4QixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDOUIsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBTa3lNb2RhbEJlZm9yZUNsb3NlSGFuZGxlciB9IGZyb20gJy4vbW9kYWwtYmVmb3JlLWNsb3NlLWhhbmRsZXInO1xuaW1wb3J0IHsgU2t5TW9kYWxDbG9zZUFyZ3MgfSBmcm9tICcuL21vZGFsLWNsb3NlLWFyZ3MnO1xuXG4vLyBUT0RPOiB0aGlzIGNsYXNzIHdvbid0IHNob3cgaW4gdGhlIGdlbmVyYXRlZCBkb2NzIHVudGlsIHRoaXMgd29yayBpcyBkb25lOlxuLy8gaHR0cHM6Ly9naXRodWIuY29tL2JsYWNrYmF1ZC9za3l1eC1kb2NzLXRvb2xzL2lzc3Vlcy8zMFxuXG4vKipcbiAqIEFsbG93cyB5b3UgdG8gY2xvc2UgdGhlIG1vZGFsIGFuZCByZXR1cm4gZGF0YSBmcm9tIHRoZSBsYXVuY2hlZCBtb2RhbC5cbiAqL1xuZXhwb3J0IGNsYXNzIFNreU1vZGFsSW5zdGFuY2Uge1xuICAvKipcbiAgICogQW4gZXZlbnQgdGhhdCB0aGUgbW9kYWwgaW5zdGFuY2UgZW1pdHMgd2hlbiBpdCBpcyBhYm91dCB0byBjbG9zZS5cbiAgICogSXQgZW1pdHMgYSBgU2t5TW9kYWxCZWZvcmVDbG9zZUhhbmRsZXJgIG9iamVjdCB3aXRoIGEgYGNsb3NlTW9kYWxgIG1ldGhvZFxuICAgKiB0aGF0IGNsb3NlcyB0aGUgbW9kYWwuIElmIGEgc3Vic2NyaXB0aW9uIGV4aXN0cyBmb3IgdGhpcyBldmVudCxcbiAgICogdGhlIG1vZGFsIGRvZXMgbm90IGNsb3NlIHVudGlsIHRoZSBzdWJzY3JpYmVyIGNhbGxzIHRoZSBgY2xvc2VNb2RhbGAgbWV0aG9kLlxuICAgKi9cbiAgcHVibGljIGdldCBiZWZvcmVDbG9zZSgpOiBPYnNlcnZhYmxlPFNreU1vZGFsQmVmb3JlQ2xvc2VIYW5kbGVyPiB7XG4gICAgcmV0dXJuIHRoaXMuX2JlZm9yZUNsb3NlO1xuICB9XG5cbiAgLyoqXG4gICAqIEFuIGV2ZW50IHRoYXQgdGhlIG1vZGFsIGluc3RhbmNlIGVtaXRzIHdoZW4gaXQgY2xvc2VzLlxuICAgKiBJdCBlbWl0cyBhIGBTa3lNb2RhbENsb3NlQXJnc2Agb2JqZWN0IHdpdGggYSBgZGF0YWAgcHJvcGVydHkgdGhhdCBpbmNsdWRlc1xuICAgKiBkYXRhIHBhc3NlZCBmcm9tIHVzZXJzIG9uIGNsb3NlIG9yIHNhdmUgYW5kIGEgYHJlYXNvbmAgcHJvcGVydHkgdGhhdCBpbmRpY2F0ZXNcbiAgICogd2hldGhlciB0aGUgbW9kYWwgd2FzIHNhdmVkIG9yIGNsb3NlZCB3aXRob3V0IHNhdmluZy5cbiAgICogVGhlIGByZWFzb25gIHByb3BlcnR5IGFjY2VwdHMgYW55IHN0cmluZyB2YWx1ZS5cbiAgICogQ29tbW9uIGV4YW1wbGVzIGluY2x1ZGUgYGNhbmNlbGAsIGBjbG9zZWAsIGFuZCBgc2F2ZWAuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGNsb3NlZCgpOiBPYnNlcnZhYmxlPFNreU1vZGFsQ2xvc2VBcmdzPiB7XG4gICAgcmV0dXJuIHRoaXMuX2Nsb3NlZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBbiBldmVudCB0aGF0IHRoZSBtb2RhbCBpbnN0YW5jZSBlbWl0cyB3aGVuIHVzZXJzIGNsaWNrXG4gICAqIHRoZSA8aSBjbGFzcz1cImZhIGZhLXF1ZXN0aW9uLWNpcmNsZVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT4gYnV0dG9uLlxuICAgKiBJZiBhIGBoZWxwS2V5YCBwYXJhbWV0ZXIgd2FzIHNwZWNpZmllZCwgdGhlIGBoZWxwT3BlbmVkYCBldmVudCBicm9hZGNhc3RzIHRoZSBgaGVscEtleWAuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGhlbHBPcGVuZWQoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICByZXR1cm4gdGhpcy5faGVscE9wZW5lZDtcbiAgfVxuXG4gIC8qKlxuICAgKiBBIGRpcmVjdCByZWZlcmVuY2UgdG8gdGhlIHByb3ZpZGVkIGNvbXBvbmVudCdzIGNsYXNzLlxuICAgKi9cbiAgcHVibGljIGNvbXBvbmVudEluc3RhbmNlOiBhbnk7XG5cbiAgcHJpdmF0ZSBfYmVmb3JlQ2xvc2UgPSBuZXcgU3ViamVjdDxTa3lNb2RhbEJlZm9yZUNsb3NlSGFuZGxlcj4oKTtcblxuICBwcml2YXRlIF9jbG9zZWQgPSBuZXcgU3ViamVjdDxTa3lNb2RhbENsb3NlQXJncz4oKTtcblxuICBwcml2YXRlIF9oZWxwT3BlbmVkID0gbmV3IFN1YmplY3Q8c3RyaW5nPigpO1xuXG4gIC8qKlxuICAgKiBDbG9zZXMgdGhlIG1vZGFsIGluc3RhbmNlLlxuICAgKiBAcGFyYW0gcmVzdWx0IFNwZWNpZmllcyBhbiBvYmplY3QgdG8gZW1pdCB0byBzdWJzY3JpYmVycyBvZiB0aGUgYGNsb3NlZGAgZXZlbnQgb2YgdGhlXG4gICAqIG1vZGFsIGluc3RhbmNlLiBUaGUgYFNreU1vZGFsSW5zdGFuY2VgIHByb3ZpZGVyIGNhbiBiZSBpbmplY3RlZCBpbnRvIGEgY29tcG9uZW50J3MgY29uc3RydWN0b3JcbiAgICogc28gdGhhdCB0aGlzIGBjbG9zZWAgZnVuY3Rpb24gY2FuIGJlIGNhbGxlZCBmcm9tIGEgYnV0dG9uIGluIHRoZSBgc2t5LW1vZGFsLWZvb3RlcmAuXG4gICAqIEBwYXJhbSByZWFzb24gU3BlY2lmaWVzIHRoZSByZWFzb24gZm9yIHRoZSBtb2RhbCBjbG9zaW5nLCB3aXRoIHRoZSBkZWZhdWx0IHJlYXNvbiBvZiBgY2xvc2VgLlxuICAgKiBAcGFyYW0gaWdub3JlQmVmb3JlQ2xvc2UgSW5kaWNhdGVzIHdoZXRoZXIgdG8gaWdub3JlIHRoZSBtb2RhbCBpbnN0YW5jZSdzIGBiZWZvcmVDbG9zZWAgZXZlbnQuXG4gICAqL1xuICBwdWJsaWMgY2xvc2UoXG4gICAgcmVzdWx0PzogYW55LFxuICAgIHJlYXNvbj86IHN0cmluZyxcbiAgICBpZ25vcmVCZWZvcmVDbG9zZT86IGJvb2xlYW5cbiAgKTogdm9pZCB7XG4gICAgaWYgKHJlYXNvbiA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICByZWFzb24gPSAnY2xvc2UnO1xuICAgIH1cblxuICAgIHRoaXMuY2xvc2VNb2RhbChyZWFzb24sIHJlc3VsdCwgaWdub3JlQmVmb3JlQ2xvc2UpO1xuICB9XG5cbiAgLyoqXG4gICAqIENsb3NlcyB0aGUgbW9kYWwgaW5zdGFuY2Ugd2l0aCBgcmVhc29uPWNhbmNlbGAuXG4gICAqIEBwYXJhbSByZXN1bHQgU3BlY2lmaWVzIGFuIG9iamVjdCB0byBlbWl0IHRvIHN1YnNjcmliZXJzIG9mIHRoZSBgY2xvc2VkYCBldmVudCBvZiB0aGUgbW9kYWxcbiAgICogaW5zdGFuY2UuIFRoZSBgU2t5TW9kYWxJbnN0YW5jZWAgcHJvdmlkZXIgY2FuIGJlIGluamVjdGVkIGludG8gYSBjb21wb25lbnQncyBjb25zdHJ1Y3RvciBzb1xuICAgKiB0aGF0IHRoaXMgY2FuY2VsIGZ1bmN0aW9uIGNhbiBiZSBjYWxsZWQgZnJvbSBhIGJ1dHRvbiBpbiB0aGUgYHNreS1tb2RhbC1mb290ZXJgLlxuICAgKi9cbiAgcHVibGljIGNhbmNlbChyZXN1bHQ/OiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLmNsb3NlTW9kYWwoJ2NhbmNlbCcsIHJlc3VsdCk7XG4gIH1cblxuICAvKipcbiAgICogQ2xvc2VzIHRoZSBtb2RhbCBpbnN0YW5jZSB3aXRoIGByZWFzb249c2F2ZWAuXG4gICAqIEBwYXJhbSByZXN1bHQgU3BlY2lmaWVzIGFuIG9iamVjdCB0byBlbWl0IHRvIHN1YnNjcmliZXJzIG9mIHRoZSBgY2xvc2VkYCBldmVudCBvZiB0aGUgbW9kYWxcbiAgICogaW5zdGFuY2UuIFRoZSBgU2t5TW9kYWxJbnN0YW5jZWAgcHJvdmlkZXIgY2FuIGJlIGluamVjdGVkIGludG8gYSBjb21wb25lbnQncyBjb25zdHJ1Y3RvciBzb1xuICAgKiB0aGF0IHRoaXMgYHNhdmVgIGZ1bmN0aW9uIGNhbiBiZSBjYWxsZWQgZnJvbSBhIGJ1dHRvbiBpbiBgdGhlIHNreS1tb2RhbC1mb290ZXJgLlxuICAgKi9cbiAgcHVibGljIHNhdmUocmVzdWx0PzogYW55KTogdm9pZCB7XG4gICAgdGhpcy5jbG9zZU1vZGFsKCdzYXZlJywgcmVzdWx0KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUcmlnZ2VycyB0aGUgYGhlbHBPcGVuZWRgIGV2ZW50IHRoYXQgYnJvYWRjYXN0cyBhIGBoZWxwS2V5YCBwYXJhbWV0ZXIgdG8gb3BlblxuICAgKiB3aGVuIHVzZXJzIGNsaWNrIHRoZSA8aSBjbGFzcz1cImZhIGZhLXF1ZXN0aW9uLWNpcmNsZVwiIGFyaWEtaGlkZGVuPVwidHJ1ZVwiPjwvaT4gYnV0dG9uLlxuICAgKiBAcGFyYW0gaGVscEtleSBTcGVjaWZpZXMgYSBzdHJpbmcgdG8gZW1pdCB0byBzdWJzY3JpYmVycyBvZlxuICAgKiB0aGUgbW9kYWwgaW5zdGFuY2UncyBgaGVscE9wZW5lZGAgZXZlbnQuIENvbnN1bWVycyBjYW4gaW5qZWN0IHRoZSBgU2t5TW9kYWxJbnN0YW5jZWAgcHJvdmlkZXJcbiAgICogaW50byBhIGNvbXBvbmVudCdzIGNvbnN0cnVjdG9yIHRvIGNhbGwgdGhlIGBvcGVuSGVscGAgZnVuY3Rpb24gaW4gdGhlIG1vZGFsIHRlbXBsYXRlLlxuICAgKi9cbiAgcHVibGljIG9wZW5IZWxwKGhlbHBLZXk/OiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLl9oZWxwT3BlbmVkLm5leHQoaGVscEtleSk7XG4gIH1cblxuICBwcml2YXRlIGNsb3NlTW9kYWwoXG4gICAgdHlwZTogc3RyaW5nLFxuICAgIHJlc3VsdD86IGFueSxcbiAgICBpZ25vcmVCZWZvcmVDbG9zZSA9IGZhbHNlXG4gICk6IHZvaWQge1xuICAgIGNvbnN0IGFyZ3MgPSBuZXcgU2t5TW9kYWxDbG9zZUFyZ3MoKTtcblxuICAgIGFyZ3MucmVhc29uID0gdHlwZTtcbiAgICBhcmdzLmRhdGEgPSByZXN1bHQ7XG5cbiAgICBpZiAodGhpcy5fYmVmb3JlQ2xvc2Uub2JzZXJ2ZXJzLmxlbmd0aCA9PT0gMCB8fCBpZ25vcmVCZWZvcmVDbG9zZSkge1xuICAgICAgdGhpcy5ub3RpZnlDbG9zZWQoYXJncyk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuX2JlZm9yZUNsb3NlLm5leHQoXG4gICAgICAgIG5ldyBTa3lNb2RhbEJlZm9yZUNsb3NlSGFuZGxlcigoKSA9PiB7XG4gICAgICAgICAgdGhpcy5ub3RpZnlDbG9zZWQoYXJncyk7XG4gICAgICAgIH0sIGFyZ3MpXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgbm90aWZ5Q2xvc2VkKGFyZ3M6IFNreU1vZGFsQ2xvc2VBcmdzKTogdm9pZCB7XG4gICAgdGhpcy5fY2xvc2VkLm5leHQoYXJncyk7XG4gICAgdGhpcy5fY2xvc2VkLmNvbXBsZXRlKCk7XG4gICAgdGhpcy5fYmVmb3JlQ2xvc2UuY29tcGxldGUoKTtcbiAgICB0aGlzLl9oZWxwT3BlbmVkLmNvbXBsZXRlKCk7XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtc2Nyb2xsLXNoYWRvdy1ldmVudC1hcmdzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL21vZGFscy9zcmMvbGliL21vZHVsZXMvbW9kYWwvbW9kYWwtc2Nyb2xsLXNoYWRvdy1ldmVudC1hcmdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNreU1vZGFsU2Nyb2xsU2hhZG93RXZlbnRBcmdzIHtcbiAgYm90dG9tU2hhZG93OiBzdHJpbmc7XG5cbiAgdG9wU2hhZG93OiBzdHJpbmc7XG59XG4iXX0=
@@ -0,0 +1,122 @@
1
+ import { Directive, ElementRef, EventEmitter, HostListener, NgZone, Optional, Output, } from '@angular/core';
2
+ import { MutationObserverService } from '@skyux/core';
3
+ import { SkyTheme, SkyThemeService } from '@skyux/theme';
4
+ import { Subject } from 'rxjs';
5
+ import { takeUntil } from 'rxjs/operators';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@skyux/theme";
8
+ import * as i2 from "@skyux/core";
9
+ /**
10
+ * Raises an event when the box shadow for the modal header or footer should be adjusted
11
+ * based on the scroll position of the host element.
12
+ * @internal
13
+ */
14
+ export class SkyModalScrollShadowDirective {
15
+ constructor(elRef, themeSvc, mutationObserverSvc, ngZone) {
16
+ this.elRef = elRef;
17
+ this.themeSvc = themeSvc;
18
+ this.mutationObserverSvc = mutationObserverSvc;
19
+ this.ngZone = ngZone;
20
+ this.skyModalScrollShadow = new EventEmitter();
21
+ this.ngUnsubscribe = new Subject();
22
+ }
23
+ windowResize() {
24
+ this.checkForShadow();
25
+ }
26
+ scroll() {
27
+ this.checkForShadow();
28
+ }
29
+ ngOnInit() {
30
+ if (this.themeSvc) {
31
+ this.themeSvc.settingsChange
32
+ .pipe(takeUntil(this.ngUnsubscribe))
33
+ .subscribe((themeSettings) => {
34
+ this.currentTheme = themeSettings.currentSettings.theme;
35
+ if (this.currentTheme === SkyTheme.presets.modern) {
36
+ this.initMutationObserver();
37
+ }
38
+ else {
39
+ this.emitShadow({
40
+ bottomShadow: 'none',
41
+ topShadow: 'none',
42
+ });
43
+ this.destroyMutationObserver();
44
+ }
45
+ });
46
+ }
47
+ }
48
+ ngOnDestroy() {
49
+ this.ngUnsubscribe.next();
50
+ this.ngUnsubscribe.complete();
51
+ this.destroyMutationObserver();
52
+ }
53
+ initMutationObserver() {
54
+ if (!this.mutationObserver) {
55
+ const el = this.elRef.nativeElement;
56
+ // MutationObserver is patched by Zone.js and therefore becomes part of the
57
+ // Angular change detection cycle, but this can lead to infinite loops in some
58
+ // secnarios. This will keep MutationObserver from triggering change detection.
59
+ this.ngZone.runOutsideAngular(() => {
60
+ this.mutationObserver = this.mutationObserverSvc.create(() => {
61
+ this.checkForShadow();
62
+ });
63
+ this.mutationObserver.observe(el, {
64
+ attributes: true,
65
+ characterData: true,
66
+ childList: true,
67
+ subtree: true,
68
+ });
69
+ });
70
+ }
71
+ }
72
+ destroyMutationObserver() {
73
+ if (this.mutationObserver) {
74
+ this.mutationObserver.disconnect();
75
+ this.mutationObserver = undefined;
76
+ }
77
+ }
78
+ checkForShadow() {
79
+ if (this.currentTheme === SkyTheme.presets.modern) {
80
+ const el = this.elRef.nativeElement;
81
+ const topShadow = this.buildShadowStyle(el.scrollTop);
82
+ const bottomShadow = this.buildShadowStyle(el.scrollHeight - el.scrollTop - el.clientHeight);
83
+ this.emitShadow({
84
+ bottomShadow,
85
+ topShadow,
86
+ });
87
+ }
88
+ }
89
+ buildShadowStyle(pixelsFromEnd) {
90
+ // Progressively darken the shadow until the user scrolls 30 pixels from the top or bottom
91
+ // of the scrollable element, with a max opacity of 0.3.
92
+ const opacity = Math.min(pixelsFromEnd / 30, 1) * 0.3;
93
+ return opacity > 0 ? `0px 1px 8px 0px rgba(0, 0, 0, ${opacity})` : 'none';
94
+ }
95
+ emitShadow(shadow) {
96
+ if (!this.currentShadow ||
97
+ this.currentShadow.bottomShadow !== shadow.bottomShadow ||
98
+ this.currentShadow.topShadow !== shadow.topShadow) {
99
+ this.skyModalScrollShadow.emit(shadow);
100
+ this.currentShadow = shadow;
101
+ }
102
+ }
103
+ }
104
+ SkyModalScrollShadowDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyModalScrollShadowDirective, deps: [{ token: i0.ElementRef }, { token: i1.SkyThemeService, optional: true }, { token: i2.MutationObserverService }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
105
+ SkyModalScrollShadowDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.2.7", type: SkyModalScrollShadowDirective, selector: "[skyModalScrollShadow]", outputs: { skyModalScrollShadow: "skyModalScrollShadow" }, host: { listeners: { "window:resize": "windowResize()", "scroll": "scroll()" } }, ngImport: i0 });
106
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.7", ngImport: i0, type: SkyModalScrollShadowDirective, decorators: [{
107
+ type: Directive,
108
+ args: [{
109
+ selector: '[skyModalScrollShadow]',
110
+ }]
111
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.SkyThemeService, decorators: [{
112
+ type: Optional
113
+ }] }, { type: i2.MutationObserverService }, { type: i0.NgZone }]; }, propDecorators: { skyModalScrollShadow: [{
114
+ type: Output
115
+ }], windowResize: [{
116
+ type: HostListener,
117
+ args: ['window:resize']
118
+ }], scroll: [{
119
+ type: HostListener,
120
+ args: ['scroll']
121
+ }] } });
122
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtc2Nyb2xsLXNoYWRvdy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvbW9kYWxzL3NyYy9saWIvbW9kdWxlcy9tb2RhbC9tb2RhbC1zY3JvbGwtc2hhZG93LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0wsU0FBUyxFQUNULFVBQVUsRUFDVixZQUFZLEVBQ1osWUFBWSxFQUNaLE1BQU0sRUFHTixRQUFRLEVBQ1IsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUN0RCxPQUFPLEVBQUUsUUFBUSxFQUFFLGVBQWUsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUV6RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQUkzQzs7OztHQUlHO0FBSUgsTUFBTSxPQUFPLDZCQUE2QjtJQVl4QyxZQUNVLEtBQWlCLEVBQ0wsUUFBeUIsRUFDckMsbUJBQTRDLEVBQzVDLE1BQWM7UUFIZCxVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQ0wsYUFBUSxHQUFSLFFBQVEsQ0FBaUI7UUFDckMsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUF5QjtRQUM1QyxXQUFNLEdBQU4sTUFBTSxDQUFRO1FBZGpCLHlCQUFvQixHQUFHLElBQUksWUFBWSxFQUFpQyxDQUFDO1FBUXhFLGtCQUFhLEdBQUcsSUFBSSxPQUFPLEVBQU8sQ0FBQztJQU94QyxDQUFDO0lBR0csWUFBWTtRQUNqQixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUdNLE1BQU07UUFDWCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVNLFFBQVE7UUFDYixJQUFJLElB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QyxPQUFPLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDO0lBQzVFLENBQUM7SUFFTyxVQUFVLENBQUMsTUFBcUM7UUFDdEQsSUFDRSxDQUFDLElBQUksQ0FBQyxhQUFhO1lBQ25CLElBQUksQ0FBQyxhQUFhLENBQUMsWUFBWSxLQUFLLE1BQU0sQ0FBQyxZQUFZO1lBQ3ZELElBQUksQ0FBQyxhQUFhLENBQUMsU0FBUyxLQUFLLE1BQU0sQ0FBQyxTQUFTLEVBQ2pEO1lBQ0EsSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztZQUN2QyxJQUFJLENBQUMsYUFBYSxHQUFHLE1BQU0sQ0FBQztTQUM3QjtJQUNILENBQUM7OzBIQXhIVSw2QkFBNkI7OEdBQTdCLDZCQUE2QjsyRkFBN0IsNkJBQTZCO2tCQUh6QyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSx3QkFBd0I7aUJBQ25DOzswQkFlSSxRQUFRO3VHQVpKLG9CQUFvQjtzQkFEMUIsTUFBTTtnQkFtQkEsWUFBWTtzQkFEbEIsWUFBWTt1QkFBQyxlQUFlO2dCQU10QixNQUFNO3NCQURaLFlBQVk7dUJBQUMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIERpcmVjdGl2ZSxcbiAgRWxlbWVudFJlZixcbiAgRXZlbnRFbWl0dGVyLFxuICBIb3N0TGlzdGVuZXIsXG4gIE5nWm9uZSxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE9wdGlvbmFsLFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTXV0YXRpb25PYnNlcnZlclNlcnZpY2UgfSBmcm9tICdAc2t5dXgvY29yZSc7XG5pbXBvcnQgeyBTa3lUaGVtZSwgU2t5VGhlbWVTZXJ2aWNlIH0gZnJvbSAnQHNreXV4L3RoZW1lJztcblxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5pbXBvcnQgeyBTa3lNb2RhbFNjcm9sbFNoYWRvd0V2ZW50QXJncyB9IGZyb20gJy4vbW9kYWwtc2Nyb2xsLXNoYWRvdy1ldmVudC1hcmdzJztcblxuLyoqXG4gKiBSYWlzZXMgYW4gZXZlbnQgd2hlbiB0aGUgYm94IHNoYWRvdyBmb3IgdGhlIG1vZGFsIGhlYWRlciBvciBmb290ZXIgc2hvdWxkIGJlIGFkanVzdGVkXG4gKiBiYXNlZCBvbiB0aGUgc2Nyb2xsIHBvc2l0aW9uIG9mIHRoZSBob3N0IGVsZW1lbnQuXG4gKiBAaW50ZXJuYWxcbiAqL1xuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiAnW3NreU1vZGFsU2Nyb2xsU2hhZG93XScsXG59KVxuZXhwb3J0IGNsYXNzIFNreU1vZGFsU2Nyb2xsU2hhZG93RGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBAT3V0cHV0KClcbiAgcHVibGljIHNreU1vZGFsU2Nyb2xsU2hhZG93ID0gbmV3IEV2ZW50RW1pdHRlcjxTa3lNb2RhbFNjcm9sbFNoYWRvd0V2ZW50QXJncz4oKTtcblxuICBwcml2YXRlIGN1cnJlbnRTaGFkb3c6IFNreU1vZGFsU2Nyb2xsU2hhZG93RXZlbnRBcmdzO1xuXG4gIHByaXZhdGUgY3VycmVudFRoZW1lOiBTa3lUaGVtZTtcblxuICBwcml2YXRlIG11dGF0aW9uT2JzZXJ2ZXI6IE11dGF0aW9uT2JzZXJ2ZXI7XG5cbiAgcHJpdmF0ZSBuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8YW55PigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZWxSZWY6IEVsZW1lbnRSZWYsXG4gICAgQE9wdGlvbmFsKCkgcHJpdmF0ZSB0aGVtZVN2YzogU2t5VGhlbWVTZXJ2aWNlLFxuICAgIHByaXZhdGUgbXV0YXRpb25PYnNlcnZlclN2YzogTXV0YXRpb25PYnNlcnZlclNlcnZpY2UsXG4gICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZVxuICApIHt9XG5cbiAgQEhvc3RMaXN0ZW5lcignd2luZG93OnJlc2l6ZScpXG4gIHB1YmxpYyB3aW5kb3dSZXNpemUoKTogdm9pZCB7XG4gICAgdGhpcy5jaGVja0ZvclNoYWRvdygpO1xuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcignc2Nyb2xsJylcbiAgcHVibGljIHNjcm9sbCgpOiB2b2lkIHtcbiAgICB0aGlzLmNoZWNrRm9yU2hhZG93KCk7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMudGhlbWVTdmMpIHtcbiAgICAgIHRoaXMudGhlbWVTdmMuc2V0dGluZ3NDaGFuZ2VcbiAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMubmdVbnN1YnNjcmliZSkpXG4gICAgICAgIC5zdWJzY3JpYmUoKHRoZW1lU2V0dGluZ3MpID0+IHtcbiAgICAgICAgICB0aGlzLmN1cnJlbnRUaGVtZSA9IHRoZW1lU2V0dGluZ3MuY3VycmVudFNldHRpbmdzLnRoZW1lO1xuXG4gICAgICAgICAgaWYgKHRoaXMuY3VycmVudFRoZW1lID09PSBTa3lUaGVtZS5wcmVzZXRzLm1vZGVybikge1xuICAgICAgICAgICAgdGhpcy5pbml0TXV0YXRpb25PYnNlcnZlcigpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmVtaXRTaGFkb3coe1xuICAgICAgICAgICAgICBib3R0b21TaGFkb3c6ICdub25lJyxcbiAgICAgICAgICAgICAgdG9wU2hhZG93OiAnbm9uZScsXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgdGhpcy5kZXN0cm95TXV0YXRpb25PYnNlcnZlcigpO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMubmdVbnN1YnNjcmliZS5uZXh0KCk7XG4gICAgdGhpcy5uZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG5cbiAgICB0aGlzLmRlc3Ryb3lNdXRhdGlvbk9ic2VydmVyKCk7XG4gIH1cblxuICBwcml2YXRlIGluaXRNdXRhdGlvbk9ic2VydmVyKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5tdXRhdGlvbk9ic2VydmVyKSB7XG4gICAgICBjb25zdCBlbCA9IHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudDtcblxuICAgICAgLy8gTXV0YXRpb25PYnNlcnZlciBpcyBwYXRjaGVkIGJ5IFpvbmUuanMgYW5kIHRoZXJlZm9yZSBiZWNvbWVzIHBhcnQgb2YgdGhlXG4gICAgICAvLyBBbmd1bGFyIGNoYW5nZSBkZXRlY3Rpb24gY3ljbGUsIGJ1dCB0aGlzIGNhbiBsZWFkIHRvIGluZmluaXRlIGxvb3BzIGluIHNvbWVcbiAgICAgIC8vIHNlY25hcmlvcy4gVGhpcyB3aWxsIGtlZXAgTXV0YXRpb25PYnNlcnZlciBmcm9tIHRyaWdnZXJpbmcgY2hhbmdlIGRldGVjdGlvbi5cbiAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgdGhpcy5tdXRhdGlvbk9ic2VydmVyID0gdGhpcy5tdXRhdGlvbk9ic2VydmVyU3ZjLmNyZWF0ZSgoKSA9PiB7XG4gICAgICAgICAgdGhpcy5jaGVja0ZvclNoYWRvdygpO1xuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLm11dGF0aW9uT2JzZXJ2ZXIub2JzZXJ2ZShlbCwge1xuICAgICAgICAgIGF0dHJpYnV0ZXM6IHRydWUsXG4gICAgICAgICAgY2hhcmFjdGVyRGF0YTogdHJ1ZSxcbiAgICAgICAgICBjaGlsZExpc3Q6IHRydWUsXG4gICAgICAgICAgc3VidHJlZTogdHJ1ZSxcbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGRlc3Ryb3lNdXRhdGlvbk9ic2VydmVyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLm11dGF0aW9uT2JzZXJ2ZXIpIHtcbiAgICAgIHRoaXMubXV0YXRpb25PYnNlcnZlci5kaXNjb25uZWN0KCk7XG4gICAgICB0aGlzLm11dGF0aW9uT2JzZXJ2ZXIgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjaGVja0ZvclNoYWRvdygpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5jdXJyZW50VGhlbWUgPT09IFNreVRoZW1lLnByZXNldHMubW9kZXJuKSB7XG4gICAgICBjb25zdCBlbCA9IHRoaXMuZWxSZWYubmF0aXZlRWxlbWVudDtcblxuICAgICAgY29uc3QgdG9wU2hhZG93ID0gdGhpcy5idWlsZFNoYWRvd1N0eWxlKGVsLnNjcm9sbFRvcCk7XG5cbiAgICAgIGNvbnN0IGJvdHRvbVNoYWRvdyA9IHRoaXMuYnVpbGRTaGFkb3dTdHlsZShcbiAgICAgICAgZWwuc2Nyb2xsSGVpZ2h0IC0gZWwuc2Nyb2xsVG9wIC0gZWwuY2xpZW50SGVpZ2h0XG4gICAgICApO1xuXG4gICAgICB0aGlzLmVtaXRTaGFkb3coe1xuICAgICAgICBib3R0b21TaGFkb3csXG4gICAgICAgIHRvcFNoYWRvdyxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYnVpbGRTaGFkb3dTdHlsZShwaXhlbHNGcm9tRW5kOiBudW1iZXIpOiBzdHJpbmcge1xuICAgIC8vIFByb2dyZXNzaXZlbHkgZGFya2VuIHRoZSBzaGFkb3cgdW50aWwgdGhlIHVzZXIgc2Nyb2xscyAzMCBwaXhlbHMgZnJvbSB0aGUgdG9wIG9yIGJvdHRvbVxuICAgIC8vIG9mIHRoZSBzY3JvbGxhYmxlIGVsZW1lbnQsIHdpdGggYSBtYXggb3BhY2l0eSBvZiAwLjMuXG4gICAgY29uc3Qgb3BhY2l0eSA9IE1hdGgubWluKHBpeGVsc0Zyb21FbmQgLyAzMCwgMSkgKiAwLjM7XG5cbiAgICByZXR1cm4gb3BhY2l0eSA+IDAgPyBgMHB4IDFweCA4cHggMHB4IHJnYmEoMCwgMCwgMCwgJHtvcGFjaXR5fSlgIDogJ25vbmUnO1xuICB9XG5cbiAgcHJpdmF0ZSBlbWl0U2hhZG93KHNoYWRvdzogU2t5TW9kYWxTY3JvbGxTaGFkb3dFdmVudEFyZ3MpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICAhdGhpcy5jdXJyZW50U2hhZG93IHx8XG4gICAgICB0aGlzLmN1cnJlbnRTaGFkb3cuYm90dG9tU2hhZG93ICE9PSBzaGFkb3cuYm90dG9tU2hhZG93IHx8XG4gICAgICB0aGlzLmN1cnJlbnRTaGFkb3cudG9wU2hhZG93ICE9PSBzaGFkb3cudG9wU2hhZG93XG4gICAgKSB7XG4gICAgICB0aGlzLnNreU1vZGFsU2Nyb2xsU2hhZG93LmVtaXQoc2hhZG93KTtcbiAgICAgIHRoaXMuY3VycmVudFNoYWRvdyA9IHNoYWRvdztcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -0,0 +1,8 @@
1
+ import { animate, state, style, transition, trigger, } from '@angular/animations';
2
+ export const skyAnimationModalState = trigger('modalState', [
3
+ state('in', style({ opacity: '1.0' })),
4
+ state('out', style({ opacity: '0.0' })),
5
+ transition('void => *', [style({ opacity: '0.0' }), animate(150)]),
6
+ transition('* => void', [animate(150, style({ opacity: '0.0' }))]),
7
+ ]);
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kYWwtc3RhdGUtYW5pbWF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL21vZGFscy9zcmMvbGliL21vZHVsZXMvbW9kYWwvbW9kYWwtc3RhdGUtYW5pbWF0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxPQUFPLEVBQ1AsS0FBSyxFQUNMLEtBQUssRUFDTCxVQUFVLEVBQ1YsT0FBTyxHQUNSLE1BQU0scUJBQXFCLENBQUM7QUFFN0IsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsT0FBTyxDQUFDLFlBQVksRUFBRTtJQUMxRCxLQUFLLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ3RDLEtBQUssQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDdkMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ2xFLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLE9BQU8sRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztDQUNuRSxDQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBhbmltYXRlLFxuICBzdGF0ZSxcbiAgc3R5bGUsXG4gIHRyYW5zaXRpb24sXG4gIHRyaWdnZXIsXG59IGZyb20gJ0Bhbmd1bGFyL2FuaW1hdGlvbnMnO1xuXG5leHBvcnQgY29uc3Qgc2t5QW5pbWF0aW9uTW9kYWxTdGF0ZSA9IHRyaWdnZXIoJ21vZGFsU3RhdGUnLCBbXG4gIHN0YXRlKCdpbicsIHN0eWxlKHsgb3BhY2l0eTogJzEuMCcgfSkpLFxuICBzdGF0ZSgnb3V0Jywgc3R5bGUoeyBvcGFjaXR5OiAnMC4wJyB9KSksXG4gIHRyYW5zaXRpb24oJ3ZvaWQgPT4gKicsIFtzdHlsZSh7IG9wYWNpdHk6ICcwLjAnIH0pLCBhbmltYXRlKDE1MCldKSxcbiAgdHJhbnNpdGlvbignKiA9PiB2b2lkJywgW2FuaW1hdGUoMTUwLCBzdHlsZSh7IG9wYWNpdHk6ICcwLjAnIH0pKV0pLFxuXSkgYXMgYW55O1xuIl19