@skyux/modals 12.28.1 → 12.30.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.
@@ -408,11 +408,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
408
408
  */
409
409
  class SkyModalHeaderComponent {
410
410
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SkyModalHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
411
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: SkyModalHeaderComponent, isStandalone: true, selector: "sky-modal-header", ngImport: i0, template: "<h2 class=\"sky-modal-heading\" skyTrim>\n <ng-content />\n</h2>\n<span class=\"sky-control-help-container\" skyTrim\n ><ng-content select=\".sky-control-help\"></ng-content\n></span>\n", styles: [".sky-modal-heading:not(.sky-theme-modern *){--sky-override-modal-h2-font-size: 16px;--sky-override-modal-h2-font-weight: 600;--sky-override-modal-h2-line-height: 1.2}:host-context(.sky-theme-modern:not(.sky-theme-brand-base)) .sky-modal-heading{--sky-override-modal-h2-font-size: var(--sky-font-size-display-3);--sky-override-modal-h2-font-weight: var(--sky-font-weight-display-3);--sky-override-modal-h2-line-height: 1.2}h2.sky-modal-heading{display:inline;line-height:var(--sky-override-modal-h2-line-height, var(--sky-font-line_height-heading-2));font-size:var(--sky-override-modal-h2-font-size, var(--sky-font-size-heading-2));font-weight:var(--sky-override-modal-h2-font-weight, var(--sky-font-weight-heading-2))}\n"], dependencies: [{ kind: "ngmodule", type: SkyThemeModule }, { kind: "ngmodule", type: SkyTrimModule }, { kind: "directive", type: i1.λ4, selector: "[skyTrim]" }] }); }
411
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.14", type: SkyModalHeaderComponent, isStandalone: true, selector: "sky-modal-header", ngImport: i0, template: "<h2 class=\"sky-modal-heading\" skyTrim>\n <ng-content />\n</h2>\n<span class=\"sky-control-help-container\" skyTrim\n ><ng-content select=\".sky-control-help\"></ng-content\n></span>\n", styles: [".sky-modal-heading:not(.sky-theme-modern *){--sky-override-modal-h2-font-size: 16px;--sky-override-modal-h2-font-weight: 600;--sky-override-modal-h2-line-height: 1.2}:host-context(.sky-theme-modern:not(.sky-theme-brand-base)) .sky-modal-heading{--sky-override-modal-h2-font-size: var(--sky-font-size-display-3);--sky-override-modal-h2-font-weight: var(--sky-font-style-display-3);--sky-override-modal-h2-line-height: 1.2}h2.sky-modal-heading{display:inline;line-height:var(--sky-override-modal-h2-line-height, var(--sky-font-line_height-heading-2));font-size:var(--sky-override-modal-h2-font-size, var(--sky-font-size-heading-2));font-weight:var(--sky-override-modal-h2-font-weight, var(--sky-font-style-heading-2))}\n"], dependencies: [{ kind: "ngmodule", type: SkyThemeModule }, { kind: "ngmodule", type: SkyTrimModule }, { kind: "directive", type: i1.λ4, selector: "[skyTrim]" }] }); }
412
412
  }
413
413
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SkyModalHeaderComponent, decorators: [{
414
414
  type: Component,
415
- args: [{ selector: 'sky-modal-header', imports: [SkyThemeModule, SkyTrimModule], template: "<h2 class=\"sky-modal-heading\" skyTrim>\n <ng-content />\n</h2>\n<span class=\"sky-control-help-container\" skyTrim\n ><ng-content select=\".sky-control-help\"></ng-content\n></span>\n", styles: [".sky-modal-heading:not(.sky-theme-modern *){--sky-override-modal-h2-font-size: 16px;--sky-override-modal-h2-font-weight: 600;--sky-override-modal-h2-line-height: 1.2}:host-context(.sky-theme-modern:not(.sky-theme-brand-base)) .sky-modal-heading{--sky-override-modal-h2-font-size: var(--sky-font-size-display-3);--sky-override-modal-h2-font-weight: var(--sky-font-weight-display-3);--sky-override-modal-h2-line-height: 1.2}h2.sky-modal-heading{display:inline;line-height:var(--sky-override-modal-h2-line-height, var(--sky-font-line_height-heading-2));font-size:var(--sky-override-modal-h2-font-size, var(--sky-font-size-heading-2));font-weight:var(--sky-override-modal-h2-font-weight, var(--sky-font-weight-heading-2))}\n"] }]
415
+ args: [{ selector: 'sky-modal-header', imports: [SkyThemeModule, SkyTrimModule], template: "<h2 class=\"sky-modal-heading\" skyTrim>\n <ng-content />\n</h2>\n<span class=\"sky-control-help-container\" skyTrim\n ><ng-content select=\".sky-control-help\"></ng-content\n></span>\n", styles: [".sky-modal-heading:not(.sky-theme-modern *){--sky-override-modal-h2-font-size: 16px;--sky-override-modal-h2-font-weight: 600;--sky-override-modal-h2-line-height: 1.2}:host-context(.sky-theme-modern:not(.sky-theme-brand-base)) .sky-modal-heading{--sky-override-modal-h2-font-size: var(--sky-font-size-display-3);--sky-override-modal-h2-font-weight: var(--sky-font-style-display-3);--sky-override-modal-h2-line-height: 1.2}h2.sky-modal-heading{display:inline;line-height:var(--sky-override-modal-h2-line-height, var(--sky-font-line_height-heading-2));font-size:var(--sky-override-modal-h2-font-size, var(--sky-font-size-heading-2));font-weight:var(--sky-override-modal-h2-font-weight, var(--sky-font-style-heading-2))}\n"] }]
416
416
  }] });
417
417
 
418
418
  var _a;
@@ -705,7 +705,7 @@ class SkyModalComponent {
705
705
  SkyModalComponentAdapterService,
706
706
  SkyModalErrorsService,
707
707
  SkyDockService,
708
- ], viewQueries: [{ propertyName: "modalContentWrapperElement", first: true, predicate: ["modalContentWrapper"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div\n class=\"sky-modal-dialog\"\n aria-modal=\"true\"\n [attr.aria-describedby]=\"ariaDescribedBy || modalContentId.id\"\n [attr.aria-labelledby]=\"ariaLabelledBy || headerId.id\"\n [attr.aria-owns]=\"ariaOwns\"\n [attr.role]=\"ariaRoleOrDefault\"\n (window:resize)=\"windowResize()\"\n>\n <div\n class=\"sky-modal sky-shadow sky-box sky-elevation-16 sky-modal-{{ size }}\"\n tabindex=\"-1\"\n [ngClass]=\"{\n 'sky-modal-tiled': tiledBody,\n 'sky-modal-viewkeeper': viewkeeperEnabled()\n }\"\n [ngStyle]=\"{\n zIndex: modalZIndex\n }\"\n >\n <div\n class=\"sky-modal-header\"\n [ngStyle]=\"{\n 'box-shadow': scrollShadow?.topShadow\n }\"\n >\n <div #headerId=\"skyId\" class=\"sky-modal-header-content\" skyId>\n @if (headingText) {\n <sky-modal-header>\n {{ headingText }}\n @if (helpKey || helpPopoverContent) {\n <sky-help-inline\n class=\"sky-control-help\"\n [helpKey]=\"helpKey\"\n [labelText]=\"headingText\"\n [popoverContent]=\"helpPopoverContent\"\n [popoverTitle]=\"helpPopoverTitle\"\n />\n }\n </sky-modal-header>\n } @else {\n <ng-content select=\"sky-modal-header\" />\n }\n </div>\n <div class=\"sky-modal-header-buttons\">\n @if (legacyHelpKey) {\n <button\n class=\"sky-btn sky-modal-btn-help\"\n name=\"help-button\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_modal_open_help' | skyLibResources\"\n (click)=\"helpButtonClick()\"\n >\n <sky-icon iconName=\"question-circle\" />\n </button>\n }\n\n <button\n type=\"button\"\n class=\"sky-btn sky-modal-btn-close\"\n [attr.aria-label]=\"'skyux_modal_close' | skyLibResources\"\n (click)=\"closeButtonClick()\"\n >\n <sky-icon iconName=\"close\" />\n </button>\n </div>\n </div>\n <div\n #modalContentId=\"skyId\"\n #modalContentWrapper\n class=\"sky-modal-content\"\n role=\"region\"\n tabindex=\"0\"\n skyId\n skyLayoutHost\n [layout]=\"layout()\"\n [attr.aria-labelledby]=\"headerId.id\"\n [skyScrollShadowEnabled]=\"scrollShadowEnabled\"\n [skyThemeClass]=\"{\n 'sky-padding-even-large': 'default'\n }\"\n (skyScrollShadow)=\"scrollShadowChange($event)\"\n >\n <ng-content select=\"sky-modal-content\" />\n </div>\n <div\n class=\"sky-modal-footer\"\n [ngStyle]=\"{\n 'box-shadow': scrollShadow?.bottomShadow\n }\"\n >\n <ng-content select=\"sky-modal-footer\" />\n </div>\n </div>\n</div>\n", styles: [".sky-modal:not(.sky-theme-modern *){--sky-override-modal-background-color: #fff;--sky-override-modal-border: 1px solid #cdcfd2;--sky-override-modal-dock-bottom: -15px;--sky-override-modal-dock-margin-left-right-bottom: -15px;--sky-override-modal-dock-padding-top: 15px;--sky-override-modal-dock-width: calc(100% + 30px) ;--sky-override-modal-full-page-margin-xs: 0;--sky-override-modal-full-page-margin: 0;--sky-override-modal-full-page-width: 100%;--sky-override-modal-header-bottom-border: 1px solid #e2e3e4;--sky-override-modal-header-padding: 9px 3px 9px 15px;--sky-override-modal-help-close-display: inline-block;--sky-override-modal-margin: 20px auto;--sky-override-modal-viewkept-toolbar-box-shadow: none;--sky-override-modal-viewkept-toolbar-padding-horizontal: 10px;--sky-override-modal-width-l: 900px;--sky-override-modal-width-m: 600px;--sky-override-modal-width-s: 300px;--sky-override-modal-xs-margin: 30px 10px 10px 10px}:host-context(.sky-theme-modern:not(.sky-theme-brand-base)) .sky-modal{--sky-override-modal-full-page-margin-xs: 30px;--sky-override-modal-full-page-margin: 30px;--sky-override-modal-header-top-bottom-padding: 20px;--sky-override-modal-viewkept-toolbar-box-shadow: 0px 4px 8px -4px rgba(0, 0, 0, .3);--sky-override-modal-xs-margin: 30px 10px 10px 10px}:host{--sky-viewport-top: 0;--sky-viewport-bottom: 0;--sky-viewport-left: 0;--sky-viewport-right: 0}.sky-modal{border:var(--sky-override-modal-border, var(--sky-border-width-container-base) solid var(--sky-color-border-container-base));position:fixed;width:auto;left:0;right:0;top:0;margin:var(--sky-override-modal-xs-margin, var(--sky-comp-modal-space-offset-xs-top) var(--sky-comp-modal-space-offset-xs-right) var(--sky-comp-modal-space-offset-xs-bottom) var(--sky-comp-modal-space-offset-xs-left));display:flex;flex-direction:column;overflow:hidden}.sky-modal:has(.sky-modal-content.sky-layout-host-fit){height:var(--sky-modal-content-max-height, 100%)}.sky-modal:focus{outline-style:dotted;outline-width:thin;outline-offset:-1px}.sky-modal-header:has(.sky-modal-header-content:empty){display:none}.sky-modal-btn-help,.sky-modal-btn-close{display:var(--sky-override-modal-help-close-display, none)}.sky-modal-full-page{width:var(--sky-override-modal-full-page-width, calc(100% - (var(--sky-override-modal-full-page-margin-xs, var(--sky-comp-modal-fullscreen-space-offset-xs-right)) + var(--sky-override-modal-full-page-margin-xs, var(--sky-comp-modal-fullscreen-space-offset-xs-left)))));margin:var(--sky-override-modal-full-page-margin-xs, var(--sky-comp-modal-fullscreen-space-offset-xs-top) var(--sky-comp-modal-fullscreen-space-offset-xs-right) var(--sky-comp-modal-fullscreen-space-offset-xs-bottom) var(--sky-comp-modal-fullscreen-space-offset-xs-left))}@media (min-width: 768px){.sky-modal:not(.sky-modal-full-page){margin:var(--sky-override-modal-margin, var(--sky-comp-modal-space-offset-sm-top) auto var(--sky-comp-modal-space-offset-sm-bottom))}.sky-modal-small{width:var(--sky-override-modal-width-s, var(--sky-size-width-modal-s))}.sky-modal-small .sky-modal-content,.sky-modal-small .sky-modal-header,.sky-modal-small .sky-modal-footer{max-width:var(--sky-override-modal-width-s, var(--sky-size-width-modal-s))}.sky-modal-medium{width:var(--sky-override-modal-width-m, var(--sky-size-width-modal-m))}.sky-modal-medium .sky-modal-content,.sky-modal-medium .sky-modal-header,.sky-modal-medium .sky-modal-footer{max-width:var(--sky-override-modal-width-m, var(--sky-size-width-modal-m))}.sky-modal-full-page{width:var(--sky-override-modal-full-page-width, calc(100% - (var(--sky-override-modal-full-page-margin, var(--sky-comp-modal-fullscreen-space-offset-sm-left)) + var(--sky-override-modal-full-page-margin, var(--sky-comp-modal-fullscreen-space-offset-sm-right)))));margin:var(--sky-override-modal-full-page-margin, var(--sky-comp-modal-fullscreen-space-offset-sm-top) var(--sky-comp-modal-fullscreen-space-offset-sm-right) var(--sky-comp-modal-fullscreen-space-offset-sm-bottom) var(--sky-comp-modal-fullscreen-space-offset-sm-left))}}@media (min-width: 920px){.sky-modal-large{width:var(--sky-override-modal-width-l, var(--sky-size-width-modal-l))}.sky-modal-large .sky-modal-content,.sky-modal-large .sky-modal-header,.sky-modal-large .sky-modal-footer{max-width:var(--sky-override-modal-width-l, var(--sky-size-width-modal-l))}}.sky-modal-content{background-color:var(--sky-override-modal-background-color, var(--sky-color-background-container-base));--sky-background-color-page-default: var( --sky-override-modal-background-color, var(--sky-color-background-container-base) )}.sky-modal-content:focus{outline-style:dotted;outline-width:thin;outline-offset:-1px}.sky-modal-content.sky-layout-host-fit{flex-grow:1;position:relative}.sky-modal-tiled .sky-modal-content{background-color:#eeeeef;--sky-background-color-page-default: $sky-background-color-neutral-light}.sky-modal-tiled .sky-modal-content ::ng-deep .sky-tile-title{font-family:BLKB Sans,Helvetica Neue,Arial,sans-serif;color:var(--sky-text-color-deemphasized);font-weight:300;font-size:19px}.sky-modal-header{padding:var(--sky-override-modal-header-padding, var(--sky-override-modal-header-top-bottom-padding, var(--sky-comp-modal-header-space-inset-top)) var(--sky-comp-modal-header-space-inset-right) var(--sky-override-modal-header-top-bottom-padding, var(--sky-comp-modal-header-space-inset-bottom)) var(--sky-comp-modal-header-space-inset-left));background-color:var(--sky-override-modal-background-color, var(--sky-color-background-container-base));border-bottom:var(--sky-override-modal-header-bottom-border);display:flex;align-items:baseline}.sky-modal-header-buttons{flex-shrink:.0001}.sky-modal-header-buttons .sky-btn{border:none;color:#686c73;cursor:pointer}.sky-modal-header-buttons .sky-btn:hover{color:#383a3d;transition:color .15s}.sky-modal-header-content{flex-grow:1}.sky-modal-header{flex-shrink:0;z-index:2}.sky-modal-content{overflow-y:auto}.sky-modal-footer{flex-shrink:0;z-index:2}.sky-modal-full-page .sky-modal-content{flex-grow:1}.sky-modal-content>::ng-deep sky-dock{bottom:var(--sky-override-modal-dock-bottom, 0);margin-left:var(--sky-override-modal-dock-margin-left-right-bottom, initial);margin-right:var(--sky-override-modal-dock-margin-left-right-bottom, initial);margin-bottom:var(--sky-override-modal-dock-margin-left-right-bottom, initial);padding-top:var(--sky-override-modal-dock-padding-top, initial);width:var(--sky-override-modal-dock-width, 100%)}.sky-modal-viewkeeper .sky-modal-header{box-shadow:none!important}.sky-modal-viewkeeper .sky-modal-content ::ng-deep sky-modal-content>.sky-viewkeeper-fixed{box-shadow:var(--sky-override-modal-viewkept-toolbar-box-shadow, var(--sky-elevation-overflow))}.sky-modal-viewkeeper .sky-modal-content ::ng-deep sky-modal-content>.sky-viewkeeper-fixed>sky-toolbar .sky-toolbar-container{background-color:var(--sky-override-modal-background-color, var(--sky-color-background-container-base));--sky-background-color-page-default: var( --sky-override-modal-background-color, var(--sky-color-background-container-base) );padding-left:var(--sky-override-modal-viewkept-toolbar-padding-horizontal, var(--sky-comp-modal-header-space-inset-left));padding-right:var(--sky-override-modal-viewkept-toolbar-padding-horizontal, var(--sky-comp-modal-header-space-inset-right))}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: SkyHelpInlineModule }, { kind: "component", type: i2.λ1, selector: "sky-help-inline", inputs: ["ariaControls", "ariaExpanded", "ariaLabel", "helpKey", "labelledBy", "labelText", "popoverContent", "popoverTitle"], outputs: ["actionClick"] }, { kind: "ngmodule", type: SkyIconModule }, { kind: "component", type: i3.λ1, selector: "sky-icon", inputs: ["icon", "iconName", "iconType", "size", "fixedWidth", "variant", "iconSize"] }, { kind: "ngmodule", type: SkyIdModule }, { kind: "directive", type: i1.λ2, selector: "[skyId]", exportAs: ["skyId"] }, { kind: "directive", type: SkyLayoutHostDirective, selector: "[skyLayoutHost]", inputs: ["layout"] }, { kind: "component", type: SkyModalHeaderComponent, selector: "sky-modal-header" }, { kind: "ngmodule", type: SkyModalsResourcesModule }, { kind: "pipe", type: i5.SkyLibResourcesPipe, name: "skyLibResources" }, { kind: "directive", type: SkyScrollShadowDirective, selector: "[skyScrollShadow]", inputs: ["skyScrollShadowEnabled"], outputs: ["skyScrollShadow"] }, { kind: "ngmodule", type: SkyThemeModule }, { kind: "directive", type: i6.λ2, selector: "[skyThemeClass]", inputs: ["class", "skyThemeClass"] }] }); }
708
+ ], viewQueries: [{ propertyName: "modalContentWrapperElement", first: true, predicate: ["modalContentWrapper"], descendants: true, read: ElementRef }], ngImport: i0, template: "<div\n class=\"sky-modal-dialog\"\n aria-modal=\"true\"\n [attr.aria-describedby]=\"ariaDescribedBy || modalContentId.id\"\n [attr.aria-labelledby]=\"ariaLabelledBy || headerId.id\"\n [attr.aria-owns]=\"ariaOwns\"\n [attr.role]=\"ariaRoleOrDefault\"\n (window:resize)=\"windowResize()\"\n>\n <div\n class=\"sky-modal sky-shadow sky-box sky-elevation-16 sky-modal-{{ size }}\"\n tabindex=\"-1\"\n [ngClass]=\"{\n 'sky-modal-tiled': tiledBody,\n 'sky-modal-viewkeeper': viewkeeperEnabled()\n }\"\n [ngStyle]=\"{\n zIndex: modalZIndex\n }\"\n >\n <div\n class=\"sky-modal-header\"\n [ngStyle]=\"{\n 'box-shadow': scrollShadow?.topShadow\n }\"\n >\n <div #headerId=\"skyId\" class=\"sky-modal-header-content\" skyId>\n @if (headingText) {\n <sky-modal-header>\n {{ headingText }}\n @if (helpKey || helpPopoverContent) {\n <sky-help-inline\n class=\"sky-control-help\"\n [helpKey]=\"helpKey\"\n [labelText]=\"headingText\"\n [popoverContent]=\"helpPopoverContent\"\n [popoverTitle]=\"helpPopoverTitle\"\n />\n }\n </sky-modal-header>\n } @else {\n <ng-content select=\"sky-modal-header\" />\n }\n </div>\n <div class=\"sky-modal-header-buttons\">\n @if (legacyHelpKey) {\n <button\n class=\"sky-btn sky-modal-btn-help\"\n name=\"help-button\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_modal_open_help' | skyLibResources\"\n (click)=\"helpButtonClick()\"\n >\n <sky-icon iconName=\"question-circle\" />\n </button>\n }\n\n <button\n type=\"button\"\n class=\"sky-btn sky-modal-btn-close\"\n [attr.aria-label]=\"'skyux_modal_close' | skyLibResources\"\n (click)=\"closeButtonClick()\"\n >\n <sky-icon iconName=\"close\" />\n </button>\n </div>\n </div>\n <div\n #modalContentId=\"skyId\"\n #modalContentWrapper\n class=\"sky-modal-content\"\n role=\"region\"\n tabindex=\"0\"\n skyId\n skyLayoutHost\n [layout]=\"layout()\"\n [attr.aria-labelledby]=\"headerId.id\"\n [skyScrollShadowEnabled]=\"scrollShadowEnabled\"\n [skyThemeClass]=\"{\n 'sky-padding-even-large': 'default'\n }\"\n (skyScrollShadow)=\"scrollShadowChange($event)\"\n >\n <ng-content select=\"sky-modal-content\" />\n </div>\n <div\n class=\"sky-modal-footer\"\n [ngStyle]=\"{\n 'box-shadow': scrollShadow?.bottomShadow\n }\"\n >\n <ng-content select=\"sky-modal-footer\" />\n </div>\n </div>\n</div>\n", styles: [".sky-modal:not(.sky-theme-modern *){--sky-override-modal-background-color: #fff;--sky-override-modal-border: 1px solid #cdcfd2;--sky-override-modal-dock-bottom: -15px;--sky-override-modal-dock-margin-left-right-bottom: -15px;--sky-override-modal-dock-padding-top: 15px;--sky-override-modal-dock-width: calc(100% + 30px) ;--sky-override-modal-full-page-margin-xs: 0;--sky-override-modal-full-page-margin: 0;--sky-override-modal-full-page-width: 100%;--sky-override-modal-header-bottom-border: 1px solid #e2e3e4;--sky-override-modal-header-padding: 9px 3px 9px 15px;--sky-override-modal-help-close-display: inline-block;--sky-override-modal-margin: 20px auto;--sky-override-modal-viewkept-toolbar-box-shadow: none;--sky-override-modal-viewkept-toolbar-padding-horizontal: 10px;--sky-override-modal-width-l: 900px;--sky-override-modal-width-m: 600px;--sky-override-modal-width-s: 300px;--sky-override-modal-xs-margin: 30px 10px 10px 10px}:host-context(.sky-theme-modern:not(.sky-theme-brand-base)) .sky-modal{--sky-override-modal-full-page-margin-xs: 30px;--sky-override-modal-full-page-margin: 30px;--sky-override-modal-header-top-bottom-padding: 20px;--sky-override-modal-viewkept-toolbar-box-shadow: 0px 4px 8px -4px rgba(0, 0, 0, .3);--sky-override-modal-xs-margin: 30px 10px 10px 10px}:host{--sky-viewport-top: 0;--sky-viewport-bottom: 0;--sky-viewport-left: 0;--sky-viewport-right: 0}.sky-modal{--sky-comp-override-list-header-background-color: initial;border:var(--sky-override-modal-border, var(--sky-border-width-container-base) solid var(--sky-color-border-container-base));position:fixed;width:auto;left:0;right:0;top:0;margin:var(--sky-override-modal-xs-margin, var(--sky-comp-modal-space-offset-xs-top) var(--sky-comp-modal-space-offset-xs-right) var(--sky-comp-modal-space-offset-xs-bottom) var(--sky-comp-modal-space-offset-xs-left));display:flex;flex-direction:column;overflow:hidden}.sky-modal:has(.sky-modal-content.sky-layout-host-fit){height:var(--sky-modal-content-max-height, 100%)}.sky-modal:focus{outline-style:dotted;outline-width:thin;outline-offset:-1px}.sky-modal-header:has(.sky-modal-header-content:empty){display:none}.sky-modal-btn-help,.sky-modal-btn-close{display:var(--sky-override-modal-help-close-display, none)}.sky-modal-full-page{width:var(--sky-override-modal-full-page-width, calc(100% - (var(--sky-override-modal-full-page-margin-xs, var(--sky-comp-modal-fullscreen-space-offset-xs-right)) + var(--sky-override-modal-full-page-margin-xs, var(--sky-comp-modal-fullscreen-space-offset-xs-left)))));margin:var(--sky-override-modal-full-page-margin-xs, var(--sky-comp-modal-fullscreen-space-offset-xs-top) var(--sky-comp-modal-fullscreen-space-offset-xs-right) var(--sky-comp-modal-fullscreen-space-offset-xs-bottom) var(--sky-comp-modal-fullscreen-space-offset-xs-left))}@media (min-width: 768px){.sky-modal:not(.sky-modal-full-page){margin:var(--sky-override-modal-margin, var(--sky-comp-modal-space-offset-sm-top) auto var(--sky-comp-modal-space-offset-sm-bottom))}.sky-modal-small{width:var(--sky-override-modal-width-s, var(--sky-size-width-modal-s))}.sky-modal-small .sky-modal-content,.sky-modal-small .sky-modal-header,.sky-modal-small .sky-modal-footer{max-width:var(--sky-override-modal-width-s, var(--sky-size-width-modal-s))}.sky-modal-medium{width:var(--sky-override-modal-width-m, var(--sky-size-width-modal-m))}.sky-modal-medium .sky-modal-content,.sky-modal-medium .sky-modal-header,.sky-modal-medium .sky-modal-footer{max-width:var(--sky-override-modal-width-m, var(--sky-size-width-modal-m))}.sky-modal-full-page{width:var(--sky-override-modal-full-page-width, calc(100% - (var(--sky-override-modal-full-page-margin, var(--sky-comp-modal-fullscreen-space-offset-sm-left)) + var(--sky-override-modal-full-page-margin, var(--sky-comp-modal-fullscreen-space-offset-sm-right)))));margin:var(--sky-override-modal-full-page-margin, var(--sky-comp-modal-fullscreen-space-offset-sm-top) var(--sky-comp-modal-fullscreen-space-offset-sm-right) var(--sky-comp-modal-fullscreen-space-offset-sm-bottom) var(--sky-comp-modal-fullscreen-space-offset-sm-left))}}@media (min-width: 920px){.sky-modal-large{width:var(--sky-override-modal-width-l, var(--sky-size-width-modal-l))}.sky-modal-large .sky-modal-content,.sky-modal-large .sky-modal-header,.sky-modal-large .sky-modal-footer{max-width:var(--sky-override-modal-width-l, var(--sky-size-width-modal-l))}}.sky-modal-content{background-color:var(--sky-override-modal-background-color, var(--sky-color-background-container-base));--sky-background-color-page-default: var( --sky-override-modal-background-color, var(--sky-color-background-container-base) )}.sky-modal-content:focus{outline-style:dotted;outline-width:thin;outline-offset:-1px}.sky-modal-content.sky-layout-host-fit{flex-grow:1;position:relative}.sky-modal-tiled .sky-modal-content{background-color:#eeeeef;--sky-background-color-page-default: $sky-background-color-neutral-light}.sky-modal-tiled .sky-modal-content ::ng-deep .sky-tile-title{font-family:BLKB Sans,Helvetica Neue,Arial,sans-serif;color:var(--sky-text-color-deemphasized);font-weight:300;font-size:19px}.sky-modal-header{padding:var(--sky-override-modal-header-padding, var(--sky-override-modal-header-top-bottom-padding, var(--sky-comp-modal-header-space-inset-top)) var(--sky-comp-modal-header-space-inset-right) var(--sky-override-modal-header-top-bottom-padding, var(--sky-comp-modal-header-space-inset-bottom)) var(--sky-comp-modal-header-space-inset-left));background-color:var(--sky-override-modal-background-color, var(--sky-color-background-container-base));border-bottom:var(--sky-override-modal-header-bottom-border);display:flex;align-items:baseline}.sky-modal-header-buttons{flex-shrink:.0001}.sky-modal-header-buttons .sky-btn{border:none;color:#686c73;cursor:pointer}.sky-modal-header-buttons .sky-btn:hover{color:#383a3d;transition:color .15s}.sky-modal-header-content{flex-grow:1}.sky-modal-header{flex-shrink:0;z-index:2}.sky-modal-content{overflow-y:auto}.sky-modal-footer{flex-shrink:0;z-index:2}.sky-modal-full-page .sky-modal-content{flex-grow:1}.sky-modal-content>::ng-deep sky-dock{bottom:var(--sky-override-modal-dock-bottom, 0);margin-left:var(--sky-override-modal-dock-margin-left-right-bottom, initial);margin-right:var(--sky-override-modal-dock-margin-left-right-bottom, initial);margin-bottom:var(--sky-override-modal-dock-margin-left-right-bottom, initial);padding-top:var(--sky-override-modal-dock-padding-top, initial);width:var(--sky-override-modal-dock-width, 100%)}.sky-modal-viewkeeper .sky-modal-header{box-shadow:none!important}.sky-modal-viewkeeper .sky-modal-content ::ng-deep sky-modal-content>.sky-viewkeeper-fixed{box-shadow:var(--sky-override-modal-viewkept-toolbar-box-shadow, var(--sky-elevation-overflow))}.sky-modal-viewkeeper .sky-modal-content ::ng-deep sky-modal-content>.sky-viewkeeper-fixed>sky-toolbar .sky-toolbar-container{background-color:var(--sky-override-modal-background-color, var(--sky-color-background-container-base));--sky-background-color-page-default: var( --sky-override-modal-background-color, var(--sky-color-background-container-base) );padding-left:var(--sky-override-modal-viewkept-toolbar-padding-horizontal, var(--sky-comp-modal-header-space-inset-left));padding-right:var(--sky-override-modal-viewkept-toolbar-padding-horizontal, var(--sky-comp-modal-header-space-inset-right))}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: SkyHelpInlineModule }, { kind: "component", type: i2.λ1, selector: "sky-help-inline", inputs: ["ariaControls", "ariaExpanded", "ariaLabel", "helpKey", "labelledBy", "labelText", "popoverContent", "popoverTitle"], outputs: ["actionClick"] }, { kind: "ngmodule", type: SkyIconModule }, { kind: "component", type: i3.λ1, selector: "sky-icon", inputs: ["icon", "iconName", "iconType", "size", "fixedWidth", "variant", "iconSize"] }, { kind: "ngmodule", type: SkyIdModule }, { kind: "directive", type: i1.λ2, selector: "[skyId]", exportAs: ["skyId"] }, { kind: "directive", type: SkyLayoutHostDirective, selector: "[skyLayoutHost]", inputs: ["layout"] }, { kind: "component", type: SkyModalHeaderComponent, selector: "sky-modal-header" }, { kind: "ngmodule", type: SkyModalsResourcesModule }, { kind: "pipe", type: i5.SkyLibResourcesPipe, name: "skyLibResources" }, { kind: "directive", type: SkyScrollShadowDirective, selector: "[skyScrollShadow]", inputs: ["skyScrollShadowEnabled"], outputs: ["skyScrollShadow"] }, { kind: "ngmodule", type: SkyThemeModule }, { kind: "directive", type: i6.λ2, selector: "[skyThemeClass]", inputs: ["class", "skyThemeClass"] }] }); }
709
709
  }
710
710
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: SkyModalComponent, decorators: [{
711
711
  type: Component,
@@ -723,7 +723,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
723
723
  SkyModalsResourcesModule,
724
724
  SkyScrollShadowDirective,
725
725
  SkyThemeModule,
726
- ], template: "<div\n class=\"sky-modal-dialog\"\n aria-modal=\"true\"\n [attr.aria-describedby]=\"ariaDescribedBy || modalContentId.id\"\n [attr.aria-labelledby]=\"ariaLabelledBy || headerId.id\"\n [attr.aria-owns]=\"ariaOwns\"\n [attr.role]=\"ariaRoleOrDefault\"\n (window:resize)=\"windowResize()\"\n>\n <div\n class=\"sky-modal sky-shadow sky-box sky-elevation-16 sky-modal-{{ size }}\"\n tabindex=\"-1\"\n [ngClass]=\"{\n 'sky-modal-tiled': tiledBody,\n 'sky-modal-viewkeeper': viewkeeperEnabled()\n }\"\n [ngStyle]=\"{\n zIndex: modalZIndex\n }\"\n >\n <div\n class=\"sky-modal-header\"\n [ngStyle]=\"{\n 'box-shadow': scrollShadow?.topShadow\n }\"\n >\n <div #headerId=\"skyId\" class=\"sky-modal-header-content\" skyId>\n @if (headingText) {\n <sky-modal-header>\n {{ headingText }}\n @if (helpKey || helpPopoverContent) {\n <sky-help-inline\n class=\"sky-control-help\"\n [helpKey]=\"helpKey\"\n [labelText]=\"headingText\"\n [popoverContent]=\"helpPopoverContent\"\n [popoverTitle]=\"helpPopoverTitle\"\n />\n }\n </sky-modal-header>\n } @else {\n <ng-content select=\"sky-modal-header\" />\n }\n </div>\n <div class=\"sky-modal-header-buttons\">\n @if (legacyHelpKey) {\n <button\n class=\"sky-btn sky-modal-btn-help\"\n name=\"help-button\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_modal_open_help' | skyLibResources\"\n (click)=\"helpButtonClick()\"\n >\n <sky-icon iconName=\"question-circle\" />\n </button>\n }\n\n <button\n type=\"button\"\n class=\"sky-btn sky-modal-btn-close\"\n [attr.aria-label]=\"'skyux_modal_close' | skyLibResources\"\n (click)=\"closeButtonClick()\"\n >\n <sky-icon iconName=\"close\" />\n </button>\n </div>\n </div>\n <div\n #modalContentId=\"skyId\"\n #modalContentWrapper\n class=\"sky-modal-content\"\n role=\"region\"\n tabindex=\"0\"\n skyId\n skyLayoutHost\n [layout]=\"layout()\"\n [attr.aria-labelledby]=\"headerId.id\"\n [skyScrollShadowEnabled]=\"scrollShadowEnabled\"\n [skyThemeClass]=\"{\n 'sky-padding-even-large': 'default'\n }\"\n (skyScrollShadow)=\"scrollShadowChange($event)\"\n >\n <ng-content select=\"sky-modal-content\" />\n </div>\n <div\n class=\"sky-modal-footer\"\n [ngStyle]=\"{\n 'box-shadow': scrollShadow?.bottomShadow\n }\"\n >\n <ng-content select=\"sky-modal-footer\" />\n </div>\n </div>\n</div>\n", styles: [".sky-modal:not(.sky-theme-modern *){--sky-override-modal-background-color: #fff;--sky-override-modal-border: 1px solid #cdcfd2;--sky-override-modal-dock-bottom: -15px;--sky-override-modal-dock-margin-left-right-bottom: -15px;--sky-override-modal-dock-padding-top: 15px;--sky-override-modal-dock-width: calc(100% + 30px) ;--sky-override-modal-full-page-margin-xs: 0;--sky-override-modal-full-page-margin: 0;--sky-override-modal-full-page-width: 100%;--sky-override-modal-header-bottom-border: 1px solid #e2e3e4;--sky-override-modal-header-padding: 9px 3px 9px 15px;--sky-override-modal-help-close-display: inline-block;--sky-override-modal-margin: 20px auto;--sky-override-modal-viewkept-toolbar-box-shadow: none;--sky-override-modal-viewkept-toolbar-padding-horizontal: 10px;--sky-override-modal-width-l: 900px;--sky-override-modal-width-m: 600px;--sky-override-modal-width-s: 300px;--sky-override-modal-xs-margin: 30px 10px 10px 10px}:host-context(.sky-theme-modern:not(.sky-theme-brand-base)) .sky-modal{--sky-override-modal-full-page-margin-xs: 30px;--sky-override-modal-full-page-margin: 30px;--sky-override-modal-header-top-bottom-padding: 20px;--sky-override-modal-viewkept-toolbar-box-shadow: 0px 4px 8px -4px rgba(0, 0, 0, .3);--sky-override-modal-xs-margin: 30px 10px 10px 10px}:host{--sky-viewport-top: 0;--sky-viewport-bottom: 0;--sky-viewport-left: 0;--sky-viewport-right: 0}.sky-modal{border:var(--sky-override-modal-border, var(--sky-border-width-container-base) solid var(--sky-color-border-container-base));position:fixed;width:auto;left:0;right:0;top:0;margin:var(--sky-override-modal-xs-margin, var(--sky-comp-modal-space-offset-xs-top) var(--sky-comp-modal-space-offset-xs-right) var(--sky-comp-modal-space-offset-xs-bottom) var(--sky-comp-modal-space-offset-xs-left));display:flex;flex-direction:column;overflow:hidden}.sky-modal:has(.sky-modal-content.sky-layout-host-fit){height:var(--sky-modal-content-max-height, 100%)}.sky-modal:focus{outline-style:dotted;outline-width:thin;outline-offset:-1px}.sky-modal-header:has(.sky-modal-header-content:empty){display:none}.sky-modal-btn-help,.sky-modal-btn-close{display:var(--sky-override-modal-help-close-display, none)}.sky-modal-full-page{width:var(--sky-override-modal-full-page-width, calc(100% - (var(--sky-override-modal-full-page-margin-xs, var(--sky-comp-modal-fullscreen-space-offset-xs-right)) + var(--sky-override-modal-full-page-margin-xs, var(--sky-comp-modal-fullscreen-space-offset-xs-left)))));margin:var(--sky-override-modal-full-page-margin-xs, var(--sky-comp-modal-fullscreen-space-offset-xs-top) var(--sky-comp-modal-fullscreen-space-offset-xs-right) var(--sky-comp-modal-fullscreen-space-offset-xs-bottom) var(--sky-comp-modal-fullscreen-space-offset-xs-left))}@media (min-width: 768px){.sky-modal:not(.sky-modal-full-page){margin:var(--sky-override-modal-margin, var(--sky-comp-modal-space-offset-sm-top) auto var(--sky-comp-modal-space-offset-sm-bottom))}.sky-modal-small{width:var(--sky-override-modal-width-s, var(--sky-size-width-modal-s))}.sky-modal-small .sky-modal-content,.sky-modal-small .sky-modal-header,.sky-modal-small .sky-modal-footer{max-width:var(--sky-override-modal-width-s, var(--sky-size-width-modal-s))}.sky-modal-medium{width:var(--sky-override-modal-width-m, var(--sky-size-width-modal-m))}.sky-modal-medium .sky-modal-content,.sky-modal-medium .sky-modal-header,.sky-modal-medium .sky-modal-footer{max-width:var(--sky-override-modal-width-m, var(--sky-size-width-modal-m))}.sky-modal-full-page{width:var(--sky-override-modal-full-page-width, calc(100% - (var(--sky-override-modal-full-page-margin, var(--sky-comp-modal-fullscreen-space-offset-sm-left)) + var(--sky-override-modal-full-page-margin, var(--sky-comp-modal-fullscreen-space-offset-sm-right)))));margin:var(--sky-override-modal-full-page-margin, var(--sky-comp-modal-fullscreen-space-offset-sm-top) var(--sky-comp-modal-fullscreen-space-offset-sm-right) var(--sky-comp-modal-fullscreen-space-offset-sm-bottom) var(--sky-comp-modal-fullscreen-space-offset-sm-left))}}@media (min-width: 920px){.sky-modal-large{width:var(--sky-override-modal-width-l, var(--sky-size-width-modal-l))}.sky-modal-large .sky-modal-content,.sky-modal-large .sky-modal-header,.sky-modal-large .sky-modal-footer{max-width:var(--sky-override-modal-width-l, var(--sky-size-width-modal-l))}}.sky-modal-content{background-color:var(--sky-override-modal-background-color, var(--sky-color-background-container-base));--sky-background-color-page-default: var( --sky-override-modal-background-color, var(--sky-color-background-container-base) )}.sky-modal-content:focus{outline-style:dotted;outline-width:thin;outline-offset:-1px}.sky-modal-content.sky-layout-host-fit{flex-grow:1;position:relative}.sky-modal-tiled .sky-modal-content{background-color:#eeeeef;--sky-background-color-page-default: $sky-background-color-neutral-light}.sky-modal-tiled .sky-modal-content ::ng-deep .sky-tile-title{font-family:BLKB Sans,Helvetica Neue,Arial,sans-serif;color:var(--sky-text-color-deemphasized);font-weight:300;font-size:19px}.sky-modal-header{padding:var(--sky-override-modal-header-padding, var(--sky-override-modal-header-top-bottom-padding, var(--sky-comp-modal-header-space-inset-top)) var(--sky-comp-modal-header-space-inset-right) var(--sky-override-modal-header-top-bottom-padding, var(--sky-comp-modal-header-space-inset-bottom)) var(--sky-comp-modal-header-space-inset-left));background-color:var(--sky-override-modal-background-color, var(--sky-color-background-container-base));border-bottom:var(--sky-override-modal-header-bottom-border);display:flex;align-items:baseline}.sky-modal-header-buttons{flex-shrink:.0001}.sky-modal-header-buttons .sky-btn{border:none;color:#686c73;cursor:pointer}.sky-modal-header-buttons .sky-btn:hover{color:#383a3d;transition:color .15s}.sky-modal-header-content{flex-grow:1}.sky-modal-header{flex-shrink:0;z-index:2}.sky-modal-content{overflow-y:auto}.sky-modal-footer{flex-shrink:0;z-index:2}.sky-modal-full-page .sky-modal-content{flex-grow:1}.sky-modal-content>::ng-deep sky-dock{bottom:var(--sky-override-modal-dock-bottom, 0);margin-left:var(--sky-override-modal-dock-margin-left-right-bottom, initial);margin-right:var(--sky-override-modal-dock-margin-left-right-bottom, initial);margin-bottom:var(--sky-override-modal-dock-margin-left-right-bottom, initial);padding-top:var(--sky-override-modal-dock-padding-top, initial);width:var(--sky-override-modal-dock-width, 100%)}.sky-modal-viewkeeper .sky-modal-header{box-shadow:none!important}.sky-modal-viewkeeper .sky-modal-content ::ng-deep sky-modal-content>.sky-viewkeeper-fixed{box-shadow:var(--sky-override-modal-viewkept-toolbar-box-shadow, var(--sky-elevation-overflow))}.sky-modal-viewkeeper .sky-modal-content ::ng-deep sky-modal-content>.sky-viewkeeper-fixed>sky-toolbar .sky-toolbar-container{background-color:var(--sky-override-modal-background-color, var(--sky-color-background-container-base));--sky-background-color-page-default: var( --sky-override-modal-background-color, var(--sky-color-background-container-base) );padding-left:var(--sky-override-modal-viewkept-toolbar-padding-horizontal, var(--sky-comp-modal-header-space-inset-left));padding-right:var(--sky-override-modal-viewkept-toolbar-padding-horizontal, var(--sky-comp-modal-header-space-inset-right))}\n"] }]
726
+ ], template: "<div\n class=\"sky-modal-dialog\"\n aria-modal=\"true\"\n [attr.aria-describedby]=\"ariaDescribedBy || modalContentId.id\"\n [attr.aria-labelledby]=\"ariaLabelledBy || headerId.id\"\n [attr.aria-owns]=\"ariaOwns\"\n [attr.role]=\"ariaRoleOrDefault\"\n (window:resize)=\"windowResize()\"\n>\n <div\n class=\"sky-modal sky-shadow sky-box sky-elevation-16 sky-modal-{{ size }}\"\n tabindex=\"-1\"\n [ngClass]=\"{\n 'sky-modal-tiled': tiledBody,\n 'sky-modal-viewkeeper': viewkeeperEnabled()\n }\"\n [ngStyle]=\"{\n zIndex: modalZIndex\n }\"\n >\n <div\n class=\"sky-modal-header\"\n [ngStyle]=\"{\n 'box-shadow': scrollShadow?.topShadow\n }\"\n >\n <div #headerId=\"skyId\" class=\"sky-modal-header-content\" skyId>\n @if (headingText) {\n <sky-modal-header>\n {{ headingText }}\n @if (helpKey || helpPopoverContent) {\n <sky-help-inline\n class=\"sky-control-help\"\n [helpKey]=\"helpKey\"\n [labelText]=\"headingText\"\n [popoverContent]=\"helpPopoverContent\"\n [popoverTitle]=\"helpPopoverTitle\"\n />\n }\n </sky-modal-header>\n } @else {\n <ng-content select=\"sky-modal-header\" />\n }\n </div>\n <div class=\"sky-modal-header-buttons\">\n @if (legacyHelpKey) {\n <button\n class=\"sky-btn sky-modal-btn-help\"\n name=\"help-button\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_modal_open_help' | skyLibResources\"\n (click)=\"helpButtonClick()\"\n >\n <sky-icon iconName=\"question-circle\" />\n </button>\n }\n\n <button\n type=\"button\"\n class=\"sky-btn sky-modal-btn-close\"\n [attr.aria-label]=\"'skyux_modal_close' | skyLibResources\"\n (click)=\"closeButtonClick()\"\n >\n <sky-icon iconName=\"close\" />\n </button>\n </div>\n </div>\n <div\n #modalContentId=\"skyId\"\n #modalContentWrapper\n class=\"sky-modal-content\"\n role=\"region\"\n tabindex=\"0\"\n skyId\n skyLayoutHost\n [layout]=\"layout()\"\n [attr.aria-labelledby]=\"headerId.id\"\n [skyScrollShadowEnabled]=\"scrollShadowEnabled\"\n [skyThemeClass]=\"{\n 'sky-padding-even-large': 'default'\n }\"\n (skyScrollShadow)=\"scrollShadowChange($event)\"\n >\n <ng-content select=\"sky-modal-content\" />\n </div>\n <div\n class=\"sky-modal-footer\"\n [ngStyle]=\"{\n 'box-shadow': scrollShadow?.bottomShadow\n }\"\n >\n <ng-content select=\"sky-modal-footer\" />\n </div>\n </div>\n</div>\n", styles: [".sky-modal:not(.sky-theme-modern *){--sky-override-modal-background-color: #fff;--sky-override-modal-border: 1px solid #cdcfd2;--sky-override-modal-dock-bottom: -15px;--sky-override-modal-dock-margin-left-right-bottom: -15px;--sky-override-modal-dock-padding-top: 15px;--sky-override-modal-dock-width: calc(100% + 30px) ;--sky-override-modal-full-page-margin-xs: 0;--sky-override-modal-full-page-margin: 0;--sky-override-modal-full-page-width: 100%;--sky-override-modal-header-bottom-border: 1px solid #e2e3e4;--sky-override-modal-header-padding: 9px 3px 9px 15px;--sky-override-modal-help-close-display: inline-block;--sky-override-modal-margin: 20px auto;--sky-override-modal-viewkept-toolbar-box-shadow: none;--sky-override-modal-viewkept-toolbar-padding-horizontal: 10px;--sky-override-modal-width-l: 900px;--sky-override-modal-width-m: 600px;--sky-override-modal-width-s: 300px;--sky-override-modal-xs-margin: 30px 10px 10px 10px}:host-context(.sky-theme-modern:not(.sky-theme-brand-base)) .sky-modal{--sky-override-modal-full-page-margin-xs: 30px;--sky-override-modal-full-page-margin: 30px;--sky-override-modal-header-top-bottom-padding: 20px;--sky-override-modal-viewkept-toolbar-box-shadow: 0px 4px 8px -4px rgba(0, 0, 0, .3);--sky-override-modal-xs-margin: 30px 10px 10px 10px}:host{--sky-viewport-top: 0;--sky-viewport-bottom: 0;--sky-viewport-left: 0;--sky-viewport-right: 0}.sky-modal{--sky-comp-override-list-header-background-color: initial;border:var(--sky-override-modal-border, var(--sky-border-width-container-base) solid var(--sky-color-border-container-base));position:fixed;width:auto;left:0;right:0;top:0;margin:var(--sky-override-modal-xs-margin, var(--sky-comp-modal-space-offset-xs-top) var(--sky-comp-modal-space-offset-xs-right) var(--sky-comp-modal-space-offset-xs-bottom) var(--sky-comp-modal-space-offset-xs-left));display:flex;flex-direction:column;overflow:hidden}.sky-modal:has(.sky-modal-content.sky-layout-host-fit){height:var(--sky-modal-content-max-height, 100%)}.sky-modal:focus{outline-style:dotted;outline-width:thin;outline-offset:-1px}.sky-modal-header:has(.sky-modal-header-content:empty){display:none}.sky-modal-btn-help,.sky-modal-btn-close{display:var(--sky-override-modal-help-close-display, none)}.sky-modal-full-page{width:var(--sky-override-modal-full-page-width, calc(100% - (var(--sky-override-modal-full-page-margin-xs, var(--sky-comp-modal-fullscreen-space-offset-xs-right)) + var(--sky-override-modal-full-page-margin-xs, var(--sky-comp-modal-fullscreen-space-offset-xs-left)))));margin:var(--sky-override-modal-full-page-margin-xs, var(--sky-comp-modal-fullscreen-space-offset-xs-top) var(--sky-comp-modal-fullscreen-space-offset-xs-right) var(--sky-comp-modal-fullscreen-space-offset-xs-bottom) var(--sky-comp-modal-fullscreen-space-offset-xs-left))}@media (min-width: 768px){.sky-modal:not(.sky-modal-full-page){margin:var(--sky-override-modal-margin, var(--sky-comp-modal-space-offset-sm-top) auto var(--sky-comp-modal-space-offset-sm-bottom))}.sky-modal-small{width:var(--sky-override-modal-width-s, var(--sky-size-width-modal-s))}.sky-modal-small .sky-modal-content,.sky-modal-small .sky-modal-header,.sky-modal-small .sky-modal-footer{max-width:var(--sky-override-modal-width-s, var(--sky-size-width-modal-s))}.sky-modal-medium{width:var(--sky-override-modal-width-m, var(--sky-size-width-modal-m))}.sky-modal-medium .sky-modal-content,.sky-modal-medium .sky-modal-header,.sky-modal-medium .sky-modal-footer{max-width:var(--sky-override-modal-width-m, var(--sky-size-width-modal-m))}.sky-modal-full-page{width:var(--sky-override-modal-full-page-width, calc(100% - (var(--sky-override-modal-full-page-margin, var(--sky-comp-modal-fullscreen-space-offset-sm-left)) + var(--sky-override-modal-full-page-margin, var(--sky-comp-modal-fullscreen-space-offset-sm-right)))));margin:var(--sky-override-modal-full-page-margin, var(--sky-comp-modal-fullscreen-space-offset-sm-top) var(--sky-comp-modal-fullscreen-space-offset-sm-right) var(--sky-comp-modal-fullscreen-space-offset-sm-bottom) var(--sky-comp-modal-fullscreen-space-offset-sm-left))}}@media (min-width: 920px){.sky-modal-large{width:var(--sky-override-modal-width-l, var(--sky-size-width-modal-l))}.sky-modal-large .sky-modal-content,.sky-modal-large .sky-modal-header,.sky-modal-large .sky-modal-footer{max-width:var(--sky-override-modal-width-l, var(--sky-size-width-modal-l))}}.sky-modal-content{background-color:var(--sky-override-modal-background-color, var(--sky-color-background-container-base));--sky-background-color-page-default: var( --sky-override-modal-background-color, var(--sky-color-background-container-base) )}.sky-modal-content:focus{outline-style:dotted;outline-width:thin;outline-offset:-1px}.sky-modal-content.sky-layout-host-fit{flex-grow:1;position:relative}.sky-modal-tiled .sky-modal-content{background-color:#eeeeef;--sky-background-color-page-default: $sky-background-color-neutral-light}.sky-modal-tiled .sky-modal-content ::ng-deep .sky-tile-title{font-family:BLKB Sans,Helvetica Neue,Arial,sans-serif;color:var(--sky-text-color-deemphasized);font-weight:300;font-size:19px}.sky-modal-header{padding:var(--sky-override-modal-header-padding, var(--sky-override-modal-header-top-bottom-padding, var(--sky-comp-modal-header-space-inset-top)) var(--sky-comp-modal-header-space-inset-right) var(--sky-override-modal-header-top-bottom-padding, var(--sky-comp-modal-header-space-inset-bottom)) var(--sky-comp-modal-header-space-inset-left));background-color:var(--sky-override-modal-background-color, var(--sky-color-background-container-base));border-bottom:var(--sky-override-modal-header-bottom-border);display:flex;align-items:baseline}.sky-modal-header-buttons{flex-shrink:.0001}.sky-modal-header-buttons .sky-btn{border:none;color:#686c73;cursor:pointer}.sky-modal-header-buttons .sky-btn:hover{color:#383a3d;transition:color .15s}.sky-modal-header-content{flex-grow:1}.sky-modal-header{flex-shrink:0;z-index:2}.sky-modal-content{overflow-y:auto}.sky-modal-footer{flex-shrink:0;z-index:2}.sky-modal-full-page .sky-modal-content{flex-grow:1}.sky-modal-content>::ng-deep sky-dock{bottom:var(--sky-override-modal-dock-bottom, 0);margin-left:var(--sky-override-modal-dock-margin-left-right-bottom, initial);margin-right:var(--sky-override-modal-dock-margin-left-right-bottom, initial);margin-bottom:var(--sky-override-modal-dock-margin-left-right-bottom, initial);padding-top:var(--sky-override-modal-dock-padding-top, initial);width:var(--sky-override-modal-dock-width, 100%)}.sky-modal-viewkeeper .sky-modal-header{box-shadow:none!important}.sky-modal-viewkeeper .sky-modal-content ::ng-deep sky-modal-content>.sky-viewkeeper-fixed{box-shadow:var(--sky-override-modal-viewkept-toolbar-box-shadow, var(--sky-elevation-overflow))}.sky-modal-viewkeeper .sky-modal-content ::ng-deep sky-modal-content>.sky-viewkeeper-fixed>sky-toolbar .sky-toolbar-container{background-color:var(--sky-override-modal-background-color, var(--sky-color-background-container-base));--sky-background-color-page-default: var( --sky-override-modal-background-color, var(--sky-color-background-container-base) );padding-left:var(--sky-override-modal-viewkept-toolbar-padding-horizontal, var(--sky-comp-modal-header-space-inset-left));padding-right:var(--sky-override-modal-viewkept-toolbar-padding-horizontal, var(--sky-comp-modal-header-space-inset-right))}\n"] }]
727
727
  }], ctorParameters: () => [], propDecorators: { wrapperClass: [{
728
728
  type: HostBinding,
729
729
  args: ['class']
@@ -1 +1 @@
1
- {"version":3,"file":"skyux-modals.mjs","sources":["../../../../../libs/components/modals/src/lib/modules/confirm/confirm-instance.ts","../../../../../libs/components/modals/src/lib/modules/confirm/confirm-type.ts","../../../../../libs/components/modals/src/lib/modules/confirm/confirm.module.ts","../../../../../libs/components/modals/src/lib/modules/confirm/confirm-config-token.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-content.component.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-content.component.html","../../../../../libs/components/modals/src/lib/modules/modal/modal-before-close-handler.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-close-args.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-instance.ts","../../../../../libs/components/modals/src/lib/modules/shared/sky-modals-resources.module.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-component-adapter.service.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-configuration.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-errors.service.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-header.component.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-header.component.html","../../../../../libs/components/modals/src/lib/modules/modal/modal-host.service.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal.component.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal.component.html","../../../../../libs/components/modals/src/lib/modules/confirm/confirm.component.ts","../../../../../libs/components/modals/src/lib/modules/confirm/confirm.component.html","../../../../../libs/components/modals/src/lib/modules/modal/modal-host-context.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-adapter.service.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-host.component.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-host.component.html","../../../../../libs/components/modals/src/lib/modules/modal/modal.service.ts","../../../../../libs/components/modals/src/lib/modules/confirm/confirm.service.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-footer.component.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-footer.component.html","../../../../../libs/components/modals/src/lib/modules/modal/modal-is-dirty.directive.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal.module.ts","../../../../../libs/components/modals/src/skyux-modals.ts"],"sourcesContent":["import { Observable, ReplaySubject } from 'rxjs';\n\nimport { SkyConfirmCloseEventArgs } from './confirm-closed-event-args';\n\nexport class SkyConfirmInstance {\n /**\n * Fires when users select an action to close the dialog. This event\n * returns a `SkyConfirmCloseEventArgs` object with information about the button that\n * users select. It returns the `'cancel'` action when users press the <kbd>Escape</kbd> key.\n */\n public get closed(): Observable<SkyConfirmCloseEventArgs> {\n return this.#closedObs;\n }\n\n readonly #closed = new ReplaySubject<SkyConfirmCloseEventArgs>();\n readonly #closedObs = this.#closed.asObservable();\n\n /**\n * Closes the confirm instance.\n * @param args Specifies an object to emit to subscribers of the `closed` event\n * of the confirm instance.\n */\n public close(args: SkyConfirmCloseEventArgs): void {\n this.#closed.next(args);\n this.#closed.complete();\n }\n}\n","export enum SkyConfirmType {\n /**\n * Allows you to define your own buttons using the `buttons` property of `SkyConfirmConfig`.\n */\n Custom = 0,\n /**\n * Displays one button with an **OK** label and an `'ok'` action.\n */\n OK = 1,\n /**\n * Displays two buttons with **Yes** and **Cancel** labels.\n * @deprecated Use the `Custom` type to follow the guidance that labels\n * should clearly indicate the actions that occur when users select buttons.\n */\n YesCancel = 2,\n /**\n * Displays three buttons with **Yes**, **No**, and **Cancel** labels.\n * @deprecated Use the `Custom` type to follow the guidance that labels\n * should clearly indicate the actions that occur when users select buttons.\n */\n YesNoCancel = 3,\n}\n","import { NgModule } from '@angular/core';\n\n/**\n * @deprecated The `SkyConfirmModule` is no longer needed and can be removed from your application.\n * @internal\n */\n@NgModule({})\nexport class SkyConfirmModule {}\n","import { InjectionToken } from '@angular/core';\n\nimport { SkyConfirmConfig } from './confirm-config';\n\n/**\n * @internal\n */\nexport const SKY_CONFIRM_CONFIG = new InjectionToken<SkyConfirmConfig>(\n 'SkyConfirmConfig',\n);\n","import { Component, ViewEncapsulation } from '@angular/core';\nimport { SkyResponsiveHostDirective } from '@skyux/core';\n\n/**\n * Specifies content to display in the modal's body.\n */\n@Component({\n hostDirectives: [SkyResponsiveHostDirective],\n standalone: true,\n selector: 'sky-modal-content',\n templateUrl: './modal-content.component.html',\n styleUrls: ['./modal-content.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SkyModalContentComponent {}\n","<ng-content />\n","import { SkyModalCloseArgs } from './modal-close-args';\n\n/**\n * Properties about the modal close action and a method to close the modal.\n */\nexport class SkyModalBeforeCloseHandler {\n /**\n * The object that would be emitted by a modal's `closed` event. This object\n * can be used to determine whether to prompt the user for confirmation, such\n * as when the user closes a modal form after entering data.\n */\n public readonly closeArgs: SkyModalCloseArgs;\n\n /**\n * Function to call to close the modal. Neglecting to call this function\n * effectively cancels the close modal action.\n */\n public readonly closeModal: () => void;\n\n constructor(closeModal: () => void, closeArgs: SkyModalCloseArgs) {\n this.closeArgs = closeArgs;\n this.closeModal = closeModal;\n }\n}\n","/**\n * Contains an object with the data passed from users when\n * a modal is closed and the reason that the modal was closed.\n */\nexport class SkyModalCloseArgs {\n /**\n * The reason the modal was closed.\n * Options include `\"close\"`, `\"save\"`, and `\"cancel\"`.\n */\n public reason: string | undefined;\n /**\n * The data passed from users when the modal is closed.\n */\n public data: any;\n}\n","import { ComponentRef, ElementRef } from '@angular/core';\n\nimport { Observable, Subject } from 'rxjs';\n\nimport { SkyModalAdapterService } from './modal-adapter.service';\nimport { SkyModalBeforeCloseHandler } from './modal-before-close-handler';\nimport { SkyModalCloseArgs } from './modal-close-args';\n\nexport class SkyModalInstance {\n /**\n * An event that the modal instance emits when it is about to close.\n * It emits a `SkyModalBeforeCloseHandler` object with a `closeModal` method\n * that closes the modal. If a subscription exists for this event,\n * the modal does not close until the subscriber calls the `closeModal` method.\n */\n public get beforeClose(): Observable<SkyModalBeforeCloseHandler> {\n return this.#_beforeClose;\n }\n\n /**\n * An event that the modal instance emits when it closes.\n * It emits a `SkyModalCloseArgs` object with a `data` property that includes\n * data passed from users on close or save and a `reason` property that indicates\n * whether the modal was saved or closed without saving.\n * The `reason` property accepts any string value.\n * Common examples include `\"cancel\"`, `\"close\"`, and `\"save\"`.\n */\n public get closed(): Observable<SkyModalCloseArgs> {\n return this.#_closed;\n }\n\n /**\n * An event that the modal instance emits when users click\n * the <i class=\"fa fa-question-circle\" aria-hidden=\"true\"></i> button.\n * If a `helpKey` parameter was specified, the `helpOpened` event broadcasts the `helpKey`.\n * @deprecated\n */\n public get helpOpened(): Observable<string> {\n return this.#_helpOpened;\n }\n\n /**\n * A direct reference to the provided component's class.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public componentInstance: any;\n\n /**\n * Sets the component adapter for the instance. This is used internally for actions such as scrolling the content.\n * @internal\n */\n public set adapter(value: SkyModalAdapterService) {\n this.#adapter = value;\n }\n\n /**\n * Sets the component ref for the instance. This is used to extract the component instance for the public API and the element ref for internal use.\n * @internal\n */\n public set componentRef(value: ComponentRef<any>) {\n this.componentInstance = value.instance;\n this.#elementRef = value.location;\n }\n\n #_beforeClose = new Subject<SkyModalBeforeCloseHandler>();\n\n #_closed = new Subject<SkyModalCloseArgs>();\n\n /**\n * @deprecated\n */\n #_helpOpened = new Subject<string>();\n\n #adapter: SkyModalAdapterService | undefined;\n #elementRef: ElementRef | undefined;\n\n /**\n * Closes the modal instance.\n * @param result Specifies an object to emit to subscribers of the `closed` event of the\n * modal instance. The `SkyModalInstance` provider can be injected into a component's constructor\n * so that this `close` function can be called from a button in the `sky-modal-footer`.\n * @param reason Specifies the reason for the modal closing, with the default reason of `\"close\"`.\n * @param ignoreBeforeClose Indicates whether to ignore the modal instance's `beforeClose` event.\n */\n public close(\n result?: any,\n reason?: string,\n ignoreBeforeClose?: boolean,\n ): void {\n if (reason === undefined) {\n reason = 'close';\n }\n\n this.#closeModal(reason, result, ignoreBeforeClose);\n }\n\n /**\n * Closes the modal instance with `reason=\"cancel\"`.\n * @param result Specifies an object to emit to subscribers of the `closed` event of the modal\n * instance. The `SkyModalInstance` provider can be injected into a component's constructor so\n * that this cancel function can be called from a button in the `sky-modal-footer`.\n */\n public cancel(result?: any): void {\n this.#closeModal('cancel', result);\n }\n\n /**\n * Closes the modal instance with `reason=\"save\"`.\n * @param result Specifies an object to emit to subscribers of the `closed` event of the modal\n * instance. The `SkyModalInstance` provider can be injected into a component's constructor so\n * that this `save` function can be called from a button in `the sky-modal-footer`.\n */\n public save(result?: any): void {\n this.#closeModal('save', result);\n }\n\n /**\n * Scrolls the modal content area to the top of its scrollable area.\n */\n public scrollContentToTop(): void {\n if (this.#adapter && this.#elementRef) {\n this.#adapter.scrollContentToTop(this.#elementRef);\n }\n }\n\n /**\n * Triggers the `helpOpened` event that broadcasts a `helpKey` parameter to open\n * when users click the <i class=\"fa fa-question-circle\" aria-hidden=\"true\"></i> button.\n * @param helpKey Specifies a string to emit to subscribers of\n * the modal instance's `helpOpened` event. Consumers can inject the `SkyModalInstance` provider\n * into a component's constructor to call the `openHelp` function in the modal template.\n * @deprecated\n */\n public openHelp(helpKey: string): void {\n this.#_helpOpened.next(helpKey);\n }\n\n #closeModal(type: string, result?: any, ignoreBeforeClose = false): void {\n const args = new SkyModalCloseArgs();\n\n args.reason = type;\n args.data = result;\n\n if (this.#_beforeClose.observers.length === 0 || ignoreBeforeClose) {\n this.#notifyClosed(args);\n } else {\n this.#_beforeClose.next(\n new SkyModalBeforeCloseHandler(() => {\n this.#notifyClosed(args);\n }, args),\n );\n }\n }\n\n #notifyClosed(args: SkyModalCloseArgs): void {\n this.#_closed.next(args);\n this.#_closed.complete();\n this.#_beforeClose.complete();\n this.#_helpOpened.complete();\n }\n}\n","/* istanbul ignore file */\n/**\n * NOTICE: DO NOT MODIFY THIS FILE!\n * The contents of this file were automatically generated by\n * the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-modals' schematic.\n * To update this file, simply rerun the command.\n */\nimport { NgModule } from '@angular/core';\nimport {\n SkyI18nModule,\n SkyLibResources,\n SkyLibResourcesService,\n} from '@skyux/i18n';\n\nconst RESOURCES: Record<string, SkyLibResources> = {\n 'EN-US': {\n skyux_confirm_dialog_default_ok_text: { message: 'OK' },\n skyux_confirm_dialog_default_yes_text: { message: 'Yes' },\n skyux_confirm_dialog_default_no_text: { message: 'No' },\n skyux_confirm_dialog_default_cancel_text: { message: 'Cancel' },\n skyux_modal_close: { message: 'Close modal' },\n skyux_modal_open_help: { message: 'Open Help' },\n skyux_modal_footer_cancel_button: { message: 'Cancel' },\n skyux_modal_footer_primary_button: { message: 'Save' },\n skyux_modal_dirty_default_message: {\n message: 'Are you sure you want to discard your changes?',\n },\n skyux_modal_dirty_default_discard_changes_text: {\n message: 'Discard changes',\n },\n skyux_modal_dirty_default_keep_working_text: { message: 'Keep working' },\n },\n 'FR-CA': {\n skyux_confirm_dialog_default_ok_text: { message: 'OK' },\n skyux_confirm_dialog_default_yes_text: { message: 'Oui' },\n skyux_confirm_dialog_default_no_text: { message: 'Non' },\n skyux_confirm_dialog_default_cancel_text: { message: 'Annuler' },\n skyux_modal_close: { message: 'Fermer le modal' },\n skyux_modal_open_help: { message: 'Ouvrir l’aide' },\n skyux_modal_footer_cancel_button: { message: 'Annuler' },\n skyux_modal_footer_primary_button: { message: 'Sauvegarder' },\n skyux_modal_dirty_default_message: {\n message: 'Êtes-vous certain de vouloir supprimer ces changements?',\n },\n skyux_modal_dirty_default_discard_changes_text: {\n message: 'Supprimer les changements',\n },\n skyux_modal_dirty_default_keep_working_text: {\n message: 'Continuer à travailler',\n },\n },\n};\n\nSkyLibResourcesService.addResources(RESOURCES);\n\n/**\n * Import into any component library module that needs to use resource strings.\n */\n@NgModule({\n exports: [SkyI18nModule],\n})\nexport class SkyModalsResourcesModule {}\n","import { ElementRef, Injectable } from '@angular/core';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyModalComponentAdapterService {\n public handleWindowChange(modalEl: ElementRef): void {\n const boundedHeightEl = modalEl.nativeElement.querySelector('.sky-modal');\n const fullPageModalEl = modalEl.nativeElement.querySelector(\n '.sky-modal-full-page',\n );\n const modalStyle = getComputedStyle(boundedHeightEl);\n\n const marginTopBottom =\n parseInt(modalStyle.marginTop, 10) +\n parseInt(modalStyle.marginBottom, 10);\n\n /*\n Set modal height equal to max height of window (accounting for padding above and below modal)\n */\n const newHeight = window.innerHeight - marginTopBottom;\n\n boundedHeightEl.style.maxHeight = newHeight.toString() + 'px';\n boundedHeightEl.style.setProperty(\n '--sky-modal-content-max-height',\n boundedHeightEl.style.maxHeight,\n );\n if (fullPageModalEl) {\n this.#setFullPageHeight(fullPageModalEl);\n }\n }\n\n public isFocusInFirstItem(\n event: KeyboardEvent,\n list: HTMLElement[],\n ): boolean {\n /* istanbul ignore next */\n /* sanity check */\n const eventTarget = event.target || event.srcElement;\n return list.length > 0 && eventTarget === list[0];\n }\n\n public isFocusInLastItem(event: KeyboardEvent, list: HTMLElement[]): boolean {\n /* istanbul ignore next */\n /* sanity check */\n const eventTarget = event.target || event.srcElement;\n return list.length > 0 && eventTarget === list[list.length - 1];\n }\n\n public isModalFocused(event: KeyboardEvent, modalEl: ElementRef): boolean {\n /* istanbul ignore next */\n /* sanity check */\n const eventTarget = event.target || event.srcElement;\n return (\n modalEl &&\n eventTarget === modalEl.nativeElement.querySelector('.sky-modal-dialog')\n );\n }\n\n public focusLastElement(list: HTMLElement[]): boolean {\n if (list.length > 0) {\n list[list.length - 1].focus();\n return true;\n }\n return false;\n }\n\n public focusFirstElement(list: HTMLElement[]): boolean {\n if (list.length > 0) {\n list[0].focus();\n return true;\n }\n return false;\n }\n\n public modalContentHasDirectChildViewkeeper(\n modalContentEl: ElementRef,\n ): boolean {\n return !!modalContentEl.nativeElement.querySelector(\n 'sky-modal-content > .sky-viewkeeper-fixed',\n );\n }\n\n #setFullPageHeight(fullPageModalEl: HTMLElement): void {\n const windowHeight = window.innerHeight;\n const fullPageModalStyle = getComputedStyle(fullPageModalEl);\n\n const marginTopBottom =\n parseInt(fullPageModalStyle.marginTop, 10) +\n parseInt(fullPageModalStyle.marginBottom, 10);\n\n const fullPageModalHeight = windowHeight - marginTopBottom + 'px';\n\n fullPageModalEl.style.height = fullPageModalHeight;\n fullPageModalEl.style.maxHeight = fullPageModalHeight;\n }\n}\n","import { Injectable } from '@angular/core';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyModalConfiguration {\n public fullPage?: boolean;\n public size?: string;\n /**\n * @deprecated\n */\n public ariaDescribedBy?: string;\n /**\n * @deprecated\n */\n public ariaLabelledBy?: string;\n public ariaRole?: string;\n /**\n * @deprecated\n */\n public tiledBody?: boolean;\n /**\n * @deprecated\n */\n public helpKey?: string;\n public wrapperClass?: string;\n\n constructor() {\n this.size = 'medium';\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nimport { SkyModalError } from './modal-error';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyModalErrorsService {\n public formErrors: Observable<SkyModalError[] | undefined>;\n\n #formErrors = new BehaviorSubject<SkyModalError[] | undefined>(undefined);\n\n constructor() {\n this.formErrors = this.#formErrors.asObservable();\n }\n\n public updateErrors(value: SkyModalError[] | undefined): void {\n this.#formErrors.next(value);\n }\n}\n","import { Component } from '@angular/core';\nimport { SkyTrimModule } from '@skyux/core';\nimport { SkyThemeModule } from '@skyux/theme';\n\n/**\n * Specifies a header for the modal.\n */\n@Component({\n selector: 'sky-modal-header',\n templateUrl: './modal-header.component.html',\n styleUrls: ['./modal-header.component.scss'],\n imports: [SkyThemeModule, SkyTrimModule],\n})\nexport class SkyModalHeaderComponent {}\n","<h2 class=\"sky-modal-heading\" skyTrim>\n <ng-content />\n</h2>\n<span class=\"sky-control-help-container\" skyTrim\n ><ng-content select=\".sky-control-help\"></ng-content\n></span>\n","import { Injectable } from '@angular/core';\n\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\n\nconst BASE_Z_INDEX = 1040;\nconst modalHosts: SkyModalHostService[] = [];\n\nconst backdropZIndex = new BehaviorSubject<number>(0);\nconst backdropZIndexObs = backdropZIndex.asObservable();\n\nconst openModalCount = new BehaviorSubject<number>(0);\nconst openModalCountObs = openModalCount.asObservable();\n\n/**\n * @internal\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class SkyModalHostService {\n public static get openModalCountChange(): Observable<number> {\n return openModalCountObs;\n }\n\n public static get backdropZIndexChange(): Observable<number> {\n return backdropZIndexObs;\n }\n\n /**\n * @deprecated Subscribe to `openModalCountChange` instead.\n */\n public static get openModalCount(): number {\n return modalHosts.length;\n }\n\n public static get fullPageModalCount(): number {\n const fullPageModals = modalHosts.filter((modal) => modal.fullPage);\n return fullPageModals.length;\n }\n\n /**\n * @deprecated Subscribe to `backdropZIndexChange` instead.\n */\n public static get backdropZIndex(): number {\n return BASE_Z_INDEX + modalHosts.length * 10;\n }\n\n public static get topModal(): SkyModalHostService {\n return modalHosts[modalHosts.length - 1];\n }\n\n public close = new Subject<void>();\n public fullPage = false;\n /**\n * @deprecated\n */\n public openHelp = new Subject<string>();\n public zIndex: number;\n\n constructor() {\n this.zIndex = this.#calculateZIndex();\n modalHosts.push(this);\n this.#notifyBackdropZIndex();\n this.#notifyOpenModalCount();\n }\n\n public getModalZIndex(): number {\n return this.zIndex;\n }\n\n public onClose(): void {\n this.close.next();\n }\n\n /**\n * @deprecated\n */\n public onOpenHelp(helpKey: string): void {\n this.openHelp.next(helpKey);\n }\n\n public destroy(): void {\n modalHosts.splice(modalHosts.indexOf(this), 1);\n this.#notifyBackdropZIndex();\n this.#notifyOpenModalCount();\n }\n\n #calculateZIndex(): number {\n const zIndexArray = modalHosts.map((hostService) => hostService.zIndex);\n if (zIndexArray.length === 0) {\n return BASE_Z_INDEX + 11;\n } else {\n const currentMaxZIndex = Math.max(...zIndexArray);\n return currentMaxZIndex + 10;\n }\n }\n\n #notifyOpenModalCount(): void {\n openModalCount.next(modalHosts.length);\n }\n\n #notifyBackdropZIndex(): void {\n backdropZIndex.next(SkyModalHostService.backdropZIndex);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostBinding,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n TemplateRef,\n ViewChild,\n inject,\n input,\n} from '@angular/core';\nimport {\n SkyCoreAdapterService,\n SkyDockLocation,\n SkyDockService,\n SkyIdModule,\n SkyLayoutHostDirective,\n SkyLiveAnnouncerService,\n SkyScrollShadowDirective,\n SkyScrollShadowEventArgs,\n} from '@skyux/core';\nimport { SkyHelpInlineModule } from '@skyux/help-inline';\nimport { SkyIconModule } from '@skyux/icon';\nimport { SkyTheme, SkyThemeModule, SkyThemeService } from '@skyux/theme';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyModalsResourcesModule } from '../shared/sky-modals-resources.module';\n\nimport { SkyModalComponentAdapterService } from './modal-component-adapter.service';\nimport { SkyModalConfiguration } from './modal-configuration';\nimport { SkyModalError } from './modal-error';\nimport { SkyModalErrorsService } from './modal-errors.service';\nimport { SkyModalHeaderComponent } from './modal-header.component';\nimport { SkyModalHostService } from './modal-host.service';\n\nconst ARIA_ROLE_DEFAULT = 'dialog';\n\n/**\n * Provides a common look-and-feel for modal content with options to display\n * a common modal header, specify body content, and display a common modal footer\n * and buttons.\n */\n@Component({\n selector: 'sky-modal',\n templateUrl: './modal.component.html',\n styleUrls: ['./modal.component.scss'],\n providers: [\n SkyModalComponentAdapterService,\n SkyModalErrorsService,\n SkyDockService,\n ],\n imports: [\n CommonModule,\n SkyHelpInlineModule,\n SkyIconModule,\n SkyIdModule,\n SkyLayoutHostDirective,\n SkyModalHeaderComponent,\n SkyModalsResourcesModule,\n SkyScrollShadowDirective,\n SkyThemeModule,\n ],\n})\nexport class SkyModalComponent implements AfterViewInit, OnDestroy, OnInit {\n @HostBinding('class')\n public wrapperClass: string | undefined;\n\n /**\n * A list of form-level errors to display to the user.\n */\n @Input()\n public set formErrors(value: SkyModalError[] | undefined) {\n this.#errorsSvc.updateErrors(value);\n }\n\n /**\n * The text to display as the modal's heading.\n */\n @Input()\n public headingText: string | undefined;\n\n /**\n * A help key that identifies the global help content to display. When specified along with `headingText`, a [help inline](https://developer.blackbaud.com/skyux/components/help-inline) button is\n * added to the modal header. Clicking the button invokes global help as configured by the application. This property only applies when `headingText` is also specified.\n */\n @Input()\n public helpKey: string | undefined;\n\n /**\n * The content of the help popover. When specified along with `headingText`, a [help inline](https://developer.blackbaud.com/skyux/components/help-inline)\n * button is added to the modal header. The help inline button displays a [popover](https://developer.blackbaud.com/skyux/components/popover)\n * when clicked using the specified content and optional title. This property only applies when `headingText` is also specified.\n */\n @Input()\n public helpPopoverContent: string | TemplateRef<unknown> | undefined;\n\n /**\n * The title of the help popover. This property only applies when `helpPopoverContent` is\n * also specified.\n */\n @Input()\n public helpPopoverTitle: string | undefined;\n\n /**\n * Used by the confirm component to set a different role for the modal.\n * @internal\n */\n @Input()\n public set ariaRole(value: string | undefined) {\n this.ariaRoleOrDefault = value || ARIA_ROLE_DEFAULT;\n }\n\n public ariaRoleOrDefault = ARIA_ROLE_DEFAULT;\n\n /**\n * @internal\n * @deprecated\n */\n @Input()\n public tiledBody: boolean | undefined;\n\n /**\n * Used by the confirm component to set descriptive text without using a\n * modal header.\n * @internal\n */\n @Input()\n public set ariaDescribedBy(id: string | undefined) {\n this.#_ariaDescribedBy = id;\n }\n\n public get ariaDescribedBy(): string | undefined {\n return this.#_ariaDescribedBy;\n }\n\n /**\n * Used by the confirm component to set descriptive text without using a\n * modal header.\n * @internal\n */\n @Input()\n public set ariaLabelledBy(id: string | undefined) {\n this.#_ariaLabelledBy = id;\n }\n\n public get ariaLabelledBy(): string | undefined {\n return this.#_ariaLabelledBy;\n }\n\n public readonly layout = input<'none' | 'fit'>('none');\n\n public ariaOwns: string | null = null;\n\n /**\n * @deprecated\n */\n public legacyHelpKey: string | undefined;\n\n public modalState = 'in';\n\n public modalZIndex: number | undefined;\n\n public scrollShadow: SkyScrollShadowEventArgs = {\n bottomShadow: 'none',\n topShadow: 'none',\n };\n\n public size: string;\n\n @ViewChild('modalContentWrapper', { read: ElementRef })\n public modalContentWrapperElement: ElementRef | undefined;\n\n protected scrollShadowEnabled = false;\n\n #ngUnsubscribe = new Subject<void>();\n\n #_ariaDescribedBy: string | undefined;\n #_ariaLabelledBy: string | undefined;\n\n readonly #changeDetector = inject(ChangeDetectorRef);\n readonly #componentAdapter = inject(SkyModalComponentAdapterService);\n readonly #coreAdapter = inject(SkyCoreAdapterService);\n readonly #dockService = inject(SkyDockService, { host: true });\n readonly #elRef = inject(ElementRef);\n readonly #errorsSvc = inject(SkyModalErrorsService);\n readonly #hostService = inject(SkyModalHostService);\n readonly #liveAnnouncerSvc = inject(SkyLiveAnnouncerService);\n\n /**\n * This provider is optional to account for situations where a modal component\n * is implemented without the modal service. For example, when a consumer tests\n * a component that uses the modal component but doesn't launch the modal from\n * the modal service before executing assertions.\n */\n readonly #config =\n inject(SkyModalConfiguration, { optional: true }) ??\n new SkyModalConfiguration();\n readonly #themeSvc = inject(SkyThemeService, { optional: true });\n\n constructor() {\n this.ariaDescribedBy = this.#config.ariaDescribedBy;\n this.ariaLabelledBy = this.#config.ariaLabelledBy;\n this.ariaRole = this.#config.ariaRole;\n this.legacyHelpKey = this.#config.helpKey;\n this.tiledBody = this.#config.tiledBody;\n this.wrapperClass = this.#config.wrapperClass;\n\n this.size = this.#config.fullPage\n ? 'full-page'\n : this.#config.size?.toLowerCase() || 'medium';\n\n this.modalZIndex = this.#hostService.zIndex;\n }\n\n @HostListener('document:keyup', ['$event'])\n public onDocumentKeyUp(event: KeyboardEvent): void {\n /* istanbul ignore else */\n /* sanity check */\n if (SkyModalHostService.openModalCount > 0) {\n const topModal = SkyModalHostService.topModal;\n if (topModal && topModal === this.#hostService) {\n if (event.which === 27) {\n // Escape key up\n event.preventDefault();\n this.closeButtonClick();\n }\n }\n }\n }\n\n @HostListener('document:keydown', ['$event'])\n public onDocumentKeyDown(event: KeyboardEvent): void {\n /* istanbul ignore else */\n /* sanity check */\n if (SkyModalHostService.openModalCount > 0) {\n const topModal = SkyModalHostService.topModal;\n if (topModal && topModal === this.#hostService) {\n if (event.which === 9) {\n // Tab pressed\n let focusChanged = false;\n\n const focusElementList = this.#coreAdapter.getFocusableChildren(\n this.#elRef.nativeElement,\n );\n\n if (\n event.shiftKey &&\n (this.#componentAdapter.isFocusInFirstItem(\n event,\n focusElementList,\n ) ||\n this.#componentAdapter.isModalFocused(event, this.#elRef))\n ) {\n focusChanged =\n this.#componentAdapter.focusLastElement(focusElementList);\n } else if (\n !event.shiftKey &&\n this.#componentAdapter.isFocusInLastItem(event, focusElementList)\n ) {\n focusChanged =\n this.#componentAdapter.focusFirstElement(focusElementList);\n }\n\n if (focusChanged) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n }\n }\n }\n\n public ngOnInit(): void {\n this.#liveAnnouncerSvc.announcerElementChanged\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((element) => {\n if (element?.id) {\n this.ariaOwns = element.id;\n this.#changeDetector.markForCheck();\n }\n });\n\n if (this.#themeSvc) {\n this.#themeSvc.settingsChange\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((themeSettings) => {\n this.scrollShadowEnabled =\n themeSettings.currentSettings.theme === SkyTheme.presets.modern;\n });\n }\n }\n\n public ngAfterViewInit(): void {\n this.#componentAdapter.handleWindowChange(this.#elRef);\n\n this.#dockService.setDockOptions({\n location: SkyDockLocation.ElementBottom,\n referenceEl: this.modalContentWrapperElement!.nativeElement,\n zIndex: 5,\n });\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n /**\n * @deprecated\n */\n public helpButtonClick(): void {\n if (this.legacyHelpKey) {\n this.#hostService.onOpenHelp(this.legacyHelpKey);\n }\n }\n\n public closeButtonClick(): void {\n this.#hostService.onClose();\n }\n\n public windowResize(): void {\n this.#componentAdapter.handleWindowChange(this.#elRef);\n }\n\n public scrollShadowChange(args: SkyScrollShadowEventArgs): void {\n this.scrollShadow = args;\n }\n\n public viewkeeperEnabled(): boolean {\n return this.#componentAdapter.modalContentHasDirectChildViewkeeper(\n this.#elRef,\n );\n }\n}\n","<div\n class=\"sky-modal-dialog\"\n aria-modal=\"true\"\n [attr.aria-describedby]=\"ariaDescribedBy || modalContentId.id\"\n [attr.aria-labelledby]=\"ariaLabelledBy || headerId.id\"\n [attr.aria-owns]=\"ariaOwns\"\n [attr.role]=\"ariaRoleOrDefault\"\n (window:resize)=\"windowResize()\"\n>\n <div\n class=\"sky-modal sky-shadow sky-box sky-elevation-16 sky-modal-{{ size }}\"\n tabindex=\"-1\"\n [ngClass]=\"{\n 'sky-modal-tiled': tiledBody,\n 'sky-modal-viewkeeper': viewkeeperEnabled()\n }\"\n [ngStyle]=\"{\n zIndex: modalZIndex\n }\"\n >\n <div\n class=\"sky-modal-header\"\n [ngStyle]=\"{\n 'box-shadow': scrollShadow?.topShadow\n }\"\n >\n <div #headerId=\"skyId\" class=\"sky-modal-header-content\" skyId>\n @if (headingText) {\n <sky-modal-header>\n {{ headingText }}\n @if (helpKey || helpPopoverContent) {\n <sky-help-inline\n class=\"sky-control-help\"\n [helpKey]=\"helpKey\"\n [labelText]=\"headingText\"\n [popoverContent]=\"helpPopoverContent\"\n [popoverTitle]=\"helpPopoverTitle\"\n />\n }\n </sky-modal-header>\n } @else {\n <ng-content select=\"sky-modal-header\" />\n }\n </div>\n <div class=\"sky-modal-header-buttons\">\n @if (legacyHelpKey) {\n <button\n class=\"sky-btn sky-modal-btn-help\"\n name=\"help-button\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_modal_open_help' | skyLibResources\"\n (click)=\"helpButtonClick()\"\n >\n <sky-icon iconName=\"question-circle\" />\n </button>\n }\n\n <button\n type=\"button\"\n class=\"sky-btn sky-modal-btn-close\"\n [attr.aria-label]=\"'skyux_modal_close' | skyLibResources\"\n (click)=\"closeButtonClick()\"\n >\n <sky-icon iconName=\"close\" />\n </button>\n </div>\n </div>\n <div\n #modalContentId=\"skyId\"\n #modalContentWrapper\n class=\"sky-modal-content\"\n role=\"region\"\n tabindex=\"0\"\n skyId\n skyLayoutHost\n [layout]=\"layout()\"\n [attr.aria-labelledby]=\"headerId.id\"\n [skyScrollShadowEnabled]=\"scrollShadowEnabled\"\n [skyThemeClass]=\"{\n 'sky-padding-even-large': 'default'\n }\"\n (skyScrollShadow)=\"scrollShadowChange($event)\"\n >\n <ng-content select=\"sky-modal-content\" />\n </div>\n <div\n class=\"sky-modal-footer\"\n [ngStyle]=\"{\n 'box-shadow': scrollShadow?.bottomShadow\n }\"\n >\n <ng-content select=\"sky-modal-footer\" />\n </div>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, OnDestroy, inject } from '@angular/core';\nimport { SkyIdModule, SkyIdService } from '@skyux/core';\nimport { SkyLibResourcesService } from '@skyux/i18n';\nimport { SkyThemeModule } from '@skyux/theme';\n\nimport { Observable, ReplaySubject, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyModalContentComponent } from '../modal/modal-content.component';\nimport { SkyModalInstance } from '../modal/modal-instance';\nimport { SkyModalComponent } from '../modal/modal.component';\nimport { SkyModalsResourcesModule } from '../shared/sky-modals-resources.module';\n\nimport { SkyConfirmButton } from './confirm-button';\nimport { SkyConfirmButtonConfig } from './confirm-button-config';\nimport { SkyConfirmCloseEventArgs } from './confirm-closed-event-args';\nimport { SKY_CONFIRM_CONFIG } from './confirm-config-token';\nimport { SkyConfirmInstance } from './confirm-instance';\nimport { SkyConfirmType } from './confirm-type';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-confirm',\n templateUrl: './confirm.component.html',\n styleUrls: ['./confirm.component.scss'],\n imports: [\n CommonModule,\n SkyIdModule,\n SkyModalComponent,\n SkyModalContentComponent,\n SkyModalsResourcesModule,\n SkyThemeModule,\n ],\n})\nexport class SkyConfirmComponent implements OnDestroy {\n protected body: string | undefined;\n protected bodyId: string;\n protected buttons: SkyConfirmButton[] | undefined;\n protected isOkType = false;\n protected message: string;\n protected preserveWhiteSpace = false;\n\n #ngUnsubscribe = new Subject<void>();\n\n readonly #config = inject(SKY_CONFIRM_CONFIG);\n readonly #modalInstance = inject(SkyModalInstance);\n readonly #confirmInstance = inject(SkyConfirmInstance);\n readonly #resourcesSvc = inject(SkyLibResourcesService);\n readonly #idSvc = inject(SkyIdService);\n\n constructor() {\n this.#config.type ??= SkyConfirmType.OK;\n\n if (\n this.#config.type === SkyConfirmType.Custom &&\n this.#config.buttons &&\n this.#config.buttons.length > 0\n ) {\n this.buttons = this.#getCustomButtons(this.#config.buttons);\n } else {\n this.#getPresetButtons()\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((buttons) => {\n this.buttons = buttons;\n });\n }\n\n this.message = this.#config.message;\n this.body = this.#config.body;\n\n // Using the service here instead of the directive due to the confirm\n // component's \"body\" container being conditional and thus a template\n // variable being unavailable at an outer scope\n this.bodyId = this.#idSvc.generateId();\n\n this.preserveWhiteSpace = !!this.#config.preserveWhiteSpace;\n this.isOkType = this.#config.type === SkyConfirmType.OK;\n\n // Closes the modal when requested by the confirm instance.\n this.#confirmInstance.closed.subscribe((args) => {\n this.#modalInstance.close(args);\n });\n\n this.#modalInstance.closed.subscribe((args) => {\n // Close the confirm when the \"escape\" key is pressed (passes 'undefined')\n // since this behavior is handled by the underlying modal component.\n if (args.data === undefined) {\n this.#confirmInstance.close({\n action: 'cancel',\n });\n }\n });\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n protected close(button: SkyConfirmButton): void {\n const result: SkyConfirmCloseEventArgs = {\n action: button.action,\n };\n\n this.#confirmInstance.close(result);\n }\n\n #getPresetButtons(): Observable<SkyConfirmButton[]> {\n const emitter = new ReplaySubject<SkyConfirmButton[]>(1);\n\n this.#resourcesSvc\n .getStrings({\n cancel: 'skyux_confirm_dialog_default_cancel_text',\n no: 'skyux_confirm_dialog_default_no_text',\n ok: 'skyux_confirm_dialog_default_ok_text',\n yes: 'skyux_confirm_dialog_default_yes_text',\n })\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((values) => {\n const confirmButtons: SkyConfirmButton[] = [];\n\n switch (this.#config.type) {\n case SkyConfirmType.YesNoCancel:\n case SkyConfirmType.YesCancel:\n confirmButtons.push({\n text: values.yes,\n autofocus: true,\n styleType: 'primary',\n action: 'yes',\n });\n\n if (this.#config.type === SkyConfirmType.YesNoCancel) {\n confirmButtons.push({\n text: values.no,\n styleType: 'default',\n action: 'no',\n });\n }\n\n confirmButtons.push({\n text: values.cancel,\n styleType: 'link',\n action: 'cancel',\n });\n break;\n default:\n confirmButtons.push({\n text: values.ok,\n autofocus: true,\n styleType: 'primary',\n action: 'ok',\n });\n }\n\n emitter.next(confirmButtons);\n });\n\n return emitter.asObservable();\n }\n\n #getCustomButtons(\n buttonConfig: SkyConfirmButtonConfig[],\n ): SkyConfirmButton[] {\n return buttonConfig.map(\n (config) =>\n ({\n text: config.text,\n action: config.action,\n styleType: config.styleType || 'default',\n autofocus: config.autofocus || false,\n }) as SkyConfirmButton,\n );\n }\n}\n","<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 #confirmMessage=\"skyId\"\n class=\"sky-confirm-message\"\n skyId\n [ngClass]=\"{\n 'sky-confirm-preserve-white-space': preserveWhiteSpace\n }\"\n [skyThemeClass]=\"{\n 'sky-font-display-4': 'default'\n }\"\n >{{ message }}</div\n >\n\n @if (body) {\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-body\"\n [id]=\"bodyId\"\n [ngClass]=\"{\n 'sky-confirm-preserve-white-space': preserveWhiteSpace\n }\"\n >{{ body }}</div\n >\n }\n\n <div class=\"sky-confirm-buttons\">\n @for (button of buttons; track button.text) {\n <button\n type=\"button\"\n class=\"sky-btn\"\n [ngClass]=\"'sky-btn-' + button.styleType\"\n [attr.autofocus]=\"button.autofocus ? 'autofocus' : null\"\n (click)=\"close(button)\"\n >\n {{ button.text }}\n </button>\n }\n </div>\n </sky-modal-content>\n </sky-modal>\n</div>\n","import { Inject, Injectable } from '@angular/core';\n\nimport { SkyModalHostContextArgs } from './modal-host-context-args';\n\n/**\n * Provided by the modal service to give the modal host\n * component additional context and features.\n * @internal\n */\n@Injectable()\nexport class SkyModalHostContext {\n constructor(\n @Inject('SkyModalHostContextArgs') public args: SkyModalHostContextArgs,\n ) {}\n}\n","import { ElementRef, Injectable, inject } from '@angular/core';\nimport { SkyAppWindowRef, SkyCoreAdapterService } from '@skyux/core';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyModalAdapterService {\n private static readonly MODAL_BODY_FULL_CLASS = 'sky-modal-body-full-page';\n private static readonly MODAL_BODY_CLASS = 'sky-modal-body-open';\n\n #docRef: any;\n #bodyEl: HTMLElement;\n\n #coreAdapter = inject(SkyCoreAdapterService);\n #windowRef: SkyAppWindowRef;\n #hostSiblingAriaHiddenCache = new Map<Element, string | null>();\n\n constructor(windowRef: SkyAppWindowRef) {\n this.#windowRef = windowRef;\n this.#docRef = this.#windowRef.nativeWindow.document;\n this.#bodyEl = this.#windowRef.nativeWindow.document.body;\n }\n\n public toggleFullPageModalClass(isAddFull: boolean): void {\n if (isAddFull) {\n this.#addClassToBody(SkyModalAdapterService.MODAL_BODY_FULL_CLASS);\n } else {\n this.#removeClassFromBody(SkyModalAdapterService.MODAL_BODY_FULL_CLASS);\n }\n }\n\n public setPageScroll(isAdd: boolean): void {\n if (isAdd) {\n this.#addClassToBody(SkyModalAdapterService.MODAL_BODY_CLASS);\n } else {\n this.#removeClassFromBody(SkyModalAdapterService.MODAL_BODY_CLASS);\n }\n }\n\n public getModalOpener(): HTMLElement {\n return this.#docRef.activeElement;\n }\n\n #addClassToBody(className: string): void {\n this.#bodyEl.classList.add(className);\n }\n\n #removeClassFromBody(className: string): void {\n this.#bodyEl.classList.remove(className);\n }\n\n public scrollContentToTop(element: ElementRef): void {\n element.nativeElement.querySelector('.sky-modal-content').scrollTop = 0;\n }\n\n /**\n * Hides siblings of modal-host from screen readers\n * @param hostElRef reference to modal-host element\n */\n public hideHostSiblingsFromScreenReaders(hostElRef: ElementRef): void {\n const hostElement = hostElRef.nativeElement;\n const hostSiblings = hostElement.parentElement?.children;\n\n if (hostSiblings) {\n for (const element of hostSiblings) {\n if (element.contains(document.activeElement)) {\n document.body.focus();\n }\n if (\n element !== hostElement &&\n !element.hasAttribute('aria-live') &&\n element.nodeName.toLowerCase() !== 'script' &&\n element.nodeName.toLowerCase() !== 'style'\n ) {\n // preserve previous aria-hidden status of elements outside of modal host\n this.#hostSiblingAriaHiddenCache.set(\n element,\n element.getAttribute('aria-hidden'),\n );\n element.setAttribute('aria-hidden', 'true');\n }\n }\n }\n }\n\n public focusFirstElement(modalEl: ElementRef): void {\n /* istanbul ignore else */\n /* handle the case where somehow there is a focused element already in the modal */\n if (\n !(\n document.activeElement &&\n modalEl.nativeElement.contains(document.activeElement)\n )\n ) {\n const currentScrollX = window.pageXOffset;\n const currentScrollY = window.pageYOffset;\n\n const inputWithAutofocus =\n modalEl.nativeElement.querySelector('[autofocus]');\n\n if (inputWithAutofocus) {\n inputWithAutofocus.focus();\n } else {\n this.#coreAdapter.getFocusableChildrenAndApplyFocus(\n modalEl,\n '.sky-modal-content',\n true,\n );\n }\n window.scrollTo(currentScrollX, currentScrollY);\n }\n }\n\n /**\n * Restores modal-host siblings to screen reader status prior to modals being opened\n */\n public unhideOrRestoreHostSiblingsFromScreenReaders(): void {\n this.#hostSiblingAriaHiddenCache.forEach((previousValue, element) => {\n // if element had aria-hidden status prior, restore status\n if (element.parentElement) {\n if (previousValue) {\n element.setAttribute('aria-hidden', previousValue);\n } else {\n element.removeAttribute('aria-hidden');\n }\n }\n });\n this.#hostSiblingAriaHiddenCache.clear();\n }\n\n public hidePreviousModalFromScreenReaders(topModal: ElementRef): void {\n if (topModal && topModal.nativeElement.previousElementSibling) {\n topModal.nativeElement.previousElementSibling.setAttribute(\n 'aria-hidden',\n 'true',\n );\n }\n }\n\n public unhidePreviousModalFromScreenReaders(topModal: ElementRef): void {\n if (topModal && topModal.nativeElement.previousElementSibling) {\n topModal.nativeElement.previousElementSibling.removeAttribute(\n 'aria-hidden',\n );\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectorRef,\n Component,\n ElementRef,\n EnvironmentInjector,\n OnDestroy,\n Type,\n ViewChild,\n ViewContainerRef,\n inject,\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { NavigationStart, Router, RouterModule } from '@angular/router';\nimport {\n SKY_STACKING_CONTEXT,\n SkyAppWindowRef,\n SkyDynamicComponentService,\n} from '@skyux/core';\n\nimport { BehaviorSubject } from 'rxjs';\nimport { takeUntil, takeWhile } from 'rxjs/operators';\n\nimport { SkyModalsResourcesModule } from '../shared/sky-modals-resources.module';\n\nimport { SkyModalAdapterService } from './modal-adapter.service';\nimport { SkyModalConfiguration } from './modal-configuration';\nimport { SkyModalHostContext } from './modal-host-context';\nimport { SkyModalHostService } from './modal-host.service';\nimport { SkyModalInstance } from './modal-instance';\nimport { SkyModalConfigurationInterface } from './modal.interface';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-modal-host',\n templateUrl: './modal-host.component.html',\n styleUrls: ['./modal-host.component.scss'],\n viewProviders: [SkyModalAdapterService],\n imports: [CommonModule, RouterModule, SkyModalsResourcesModule],\n})\nexport class SkyModalHostComponent implements OnDestroy {\n protected backdropZIndex = toSignal(SkyModalHostService.backdropZIndexChange);\n protected modalCount = toSignal(SkyModalHostService.openModalCountChange);\n\n @ViewChild('target', {\n read: ViewContainerRef,\n static: true,\n })\n public target: ViewContainerRef | undefined;\n\n #modalInstances: SkyModalInstance[] = [];\n\n readonly #adapter = inject(SkyModalAdapterService);\n readonly #changeDetector = inject(ChangeDetectorRef);\n readonly #dynamicComponentSvc = inject(SkyDynamicComponentService);\n readonly #elRef = inject(ElementRef);\n readonly #environmentInjector = inject(EnvironmentInjector);\n readonly #modalHostContext = inject(SkyModalHostContext);\n readonly #router = inject(Router, { optional: true });\n readonly #windowRef = inject(SkyAppWindowRef);\n\n public ngOnDestroy(): void {\n // Close all modal instances before disposing of the host container.\n this.#closeAllModalInstances();\n this.#modalHostContext.args.teardownCallback();\n }\n\n public open<T>(\n modalInstance: SkyModalInstance,\n component: Type<T>,\n config?: SkyModalConfigurationInterface,\n environmentInjector?: EnvironmentInjector,\n ): void {\n /* Ignore coverage as we specify the target element and so the view child should never be undefined unless\n * we were to call the `open` method in an early lifecycle hook. */\n /* istanbul ignore next */\n if (!this.target) {\n return;\n }\n\n const params: SkyModalConfigurationInterface = Object.assign({}, config);\n\n const hostService = new SkyModalHostService();\n hostService.fullPage = !!params.fullPage;\n\n const adapter = this.#adapter;\n const modalOpener: HTMLElement = adapter.getModalOpener();\n\n let isOpen = true;\n\n params.providers ||= [];\n params.providers.push(\n {\n provide: SkyModalHostService,\n useValue: hostService,\n },\n {\n provide: SkyModalConfiguration,\n useValue: params,\n },\n {\n provide: SKY_STACKING_CONTEXT,\n useValue: {\n zIndex: new BehaviorSubject(hostService.getModalZIndex())\n .asObservable()\n .pipe(takeUntil(modalInstance.closed)),\n },\n },\n );\n\n adapter.setPageScroll(SkyModalHostService.openModalCount > 0);\n adapter.toggleFullPageModalClass(\n SkyModalHostService.fullPageModalCount > 0,\n );\n\n environmentInjector ||= this.#environmentInjector;\n const modalComponentRef = this.#dynamicComponentSvc.createComponent(\n component,\n {\n environmentInjector: environmentInjector,\n providers: params.providers,\n viewContainerRef: this.target,\n },\n );\n\n // modal element that was just opened\n const modalElement = modalComponentRef.location;\n\n modalInstance.adapter = this.#adapter;\n modalInstance.componentRef = modalComponentRef;\n\n this.#registerModalInstance(modalInstance);\n\n // Adding a timeout to avoid ExpressionChangedAfterItHasBeenCheckedError.\n // https://stackoverflow.com/questions/40562845\n this.#windowRef.nativeWindow.setTimeout(() => {\n this.#adapter.focusFirstElement(modalElement);\n\n // hiding all elements at the modal-host level from screen readers when the a modal is opened\n this.#adapter.hideHostSiblingsFromScreenReaders(this.#elRef);\n if (\n SkyModalHostService.openModalCount > 1 &&\n SkyModalHostService.topModal === hostService\n ) {\n // hiding the lower modals when more than one modal is opened\n this.#adapter.hidePreviousModalFromScreenReaders(modalElement);\n }\n });\n\n const closeModal = (): void => {\n // unhide siblings if last modal is closing\n if (SkyModalHostService.openModalCount === 1) {\n this.#adapter.unhideOrRestoreHostSiblingsFromScreenReaders();\n } else if (SkyModalHostService.topModal === hostService) {\n // if there are more than 1 modal then unhide the one behind this one before closing it\n this.#adapter.unhidePreviousModalFromScreenReaders(modalElement);\n }\n\n hostService.destroy();\n adapter.setPageScroll(SkyModalHostService.openModalCount > 0);\n adapter.toggleFullPageModalClass(\n SkyModalHostService.fullPageModalCount > 0,\n );\n /* istanbul ignore else */\n /* sanity check */\n if (modalOpener && modalOpener.focus) {\n modalOpener.focus();\n }\n modalComponentRef.destroy();\n };\n\n hostService.openHelp.subscribe((helpKey) => {\n modalInstance.openHelp(helpKey);\n });\n\n hostService.close.subscribe(() => {\n modalInstance.close();\n });\n\n this.#router?.events.pipe(takeWhile(() => isOpen)).subscribe((event) => {\n /* istanbul ignore else */\n if (event instanceof NavigationStart) {\n modalInstance.close();\n }\n });\n\n modalInstance.closed.subscribe(() => {\n isOpen = false;\n this.#unregisterModalInstance(modalInstance);\n closeModal();\n });\n\n // Necessary if the host was created via a consumer's lifecycle hook such as ngOnInit\n this.#changeDetector.detectChanges();\n }\n\n #registerModalInstance(instance: SkyModalInstance): void {\n this.#modalInstances.push(instance);\n }\n\n #unregisterModalInstance(instance: SkyModalInstance): void {\n this.#modalInstances.slice(this.#modalInstances.indexOf(instance), 1);\n }\n\n #closeAllModalInstances(): void {\n for (const instance of this.#modalInstances) {\n instance.close();\n }\n }\n}\n","<div\n class=\"sky-modal-host-backdrop\"\n [hidden]=\"modalCount() === 0\"\n [ngStyle]=\"{\n zIndex: backdropZIndex()\n }\"\n></div>\n<div #target></div>\n","import {\n ComponentRef,\n EnvironmentInjector,\n Injectable,\n inject,\n} from '@angular/core';\nimport {\n SkyDynamicComponentLegacyService,\n SkyDynamicComponentService,\n} from '@skyux/core';\n\nimport { SkyModalHostContext } from './modal-host-context';\nimport { SkyModalHostComponent } from './modal-host.component';\nimport { SkyModalInstance } from './modal-instance';\nimport { SkyModalServiceInterface } from './modal-service-interface';\nimport { SkyModalConfigurationInterface } from './modal.interface';\n\n/**\n * A service that launches modals.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class SkyModalService implements SkyModalServiceInterface {\n private static host: ComponentRef<SkyModalHostComponent> | undefined; // <-- how do we handle only having one of these?\n\n #dynamicComponentService: SkyDynamicComponentService;\n #environmentInjector = inject(EnvironmentInjector);\n\n constructor(dynamicComponentService: SkyDynamicComponentService) {\n this.#dynamicComponentService = dynamicComponentService;\n }\n\n /**\n * @internal\n * Removes the modal host from the DOM.\n */\n public dispose(): void {\n if (SkyModalService.host) {\n this.#dynamicComponentService.removeComponent(SkyModalService.host);\n SkyModalService.host = undefined;\n }\n }\n\n /**\n * Opens a modal using the specified component.\n * @param component Determines the component to render.\n * @param {SkyModalConfigurationInterface} config Specifies configuration options for the modal.\n */\n public open(\n component: any,\n config?: SkyModalConfigurationInterface | any[],\n ): SkyModalInstance {\n const modalInstance = new SkyModalInstance();\n\n if (!SkyModalService.host) {\n SkyModalService.host = this.#createHostComponent();\n }\n\n const params = this.#getConfigFromParameter(config);\n\n params.providers ||= [];\n params.providers.push({\n provide: SkyModalInstance,\n useValue: modalInstance,\n });\n\n if (SkyModalService.host) {\n SkyModalService.host.instance.open(\n modalInstance,\n component,\n params,\n this.#environmentInjector,\n );\n }\n\n return modalInstance;\n }\n\n #getConfigFromParameter(\n providersOrConfig: any,\n ): SkyModalConfigurationInterface {\n const defaultParams: SkyModalConfigurationInterface = {\n providers: [],\n fullPage: false,\n size: 'medium',\n tiledBody: false,\n };\n let params: SkyModalConfigurationInterface = {};\n let method: any = undefined;\n\n // Object Literal Lookup for backwards compatibility.\n method = {\n 'providers?': Object.assign({}, defaultParams, {\n providers: providersOrConfig,\n }),\n config: Object.assign({}, defaultParams, providersOrConfig),\n };\n\n if (Array.isArray(providersOrConfig) === true) {\n params = method['providers?'];\n } else {\n params = method['config'];\n }\n\n return params;\n }\n\n #createHostComponent(): ComponentRef<SkyModalHostComponent> {\n const componentRef = this.#dynamicComponentService.createComponent(\n SkyModalHostComponent,\n {\n environmentInjector: this.#environmentInjector,\n providers: [\n {\n provide: SkyModalHostContext,\n useValue: new SkyModalHostContext({\n teardownCallback: (): void => {\n this.dispose();\n },\n }),\n },\n ],\n },\n );\n\n return componentRef;\n }\n}\n\n/**\n * A service that launches modals.\n * @internal\n * @deprecated Use `SkyModalService` to open a standalone component instead.\n */\n@Injectable({\n // Must be 'any' so that the modal component is created in the context of its module's injector.\n // If set to 'root', the component's dependency injections would only be derived from the root\n // injector and may lose context if the modal was opened from within a lazy-loaded module.\n providedIn: 'any',\n})\nexport class SkyModalLegacyService extends SkyModalService {\n /* istanbul ignore next */\n constructor(dynamicComponentSvc: SkyDynamicComponentLegacyService) {\n super(dynamicComponentSvc);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { SkyModalService } from '../modal/modal.service';\n\nimport { SkyConfirmConfig } from './confirm-config';\nimport { SKY_CONFIRM_CONFIG } from './confirm-config-token';\nimport { SkyConfirmInstance } from './confirm-instance';\nimport { SkyConfirmServiceInterface } from './confirm-service-interface';\nimport { SkyConfirmComponent } from './confirm.component';\n\n/**\n * Launches a dialog.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class SkyConfirmService implements SkyConfirmServiceInterface {\n #modalService: SkyModalService;\n\n constructor(modalService: SkyModalService) {\n this.#modalService = modalService;\n }\n\n /**\n * Opens a dialog using the specified options.\n * @param config Specifies configuration options for the dialog.\n */\n public open(config: SkyConfirmConfig): SkyConfirmInstance {\n const confirmInstance = new SkyConfirmInstance();\n\n this.#modalService.open(SkyConfirmComponent, {\n providers: [\n {\n provide: SKY_CONFIRM_CONFIG,\n useValue: config,\n },\n {\n provide: SkyConfirmInstance,\n useValue: confirmInstance,\n },\n ],\n });\n\n return confirmInstance;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, ViewEncapsulation, inject } from '@angular/core';\nimport { SkyResponsiveHostDirective } from '@skyux/core';\nimport { SkyStatusIndicatorModule } from '@skyux/indicators';\n\nimport { SkyModalErrorsService } from './modal-errors.service';\n\n/**\n * Specifies content to display in the modal's footer.\n */\n@Component({\n hostDirectives: [SkyResponsiveHostDirective],\n selector: 'sky-modal-footer',\n templateUrl: './modal-footer.component.html',\n styleUrls: ['./modal-footer.component.scss'],\n encapsulation: ViewEncapsulation.None,\n imports: [CommonModule, SkyStatusIndicatorModule],\n})\nexport class SkyModalFooterComponent {\n protected readonly errorsSvc = inject(SkyModalErrorsService);\n}\n","<div class=\"sky-modal-footer-container\">\n <div aria-live=\"polite\">\n @if (errorsSvc.formErrors | async; as formErrors) {\n @if (formErrors.length > 0) {\n <div\n class=\"sky-modal-footer-errors sky-margin-stacked-lg sky-errors-overflow\"\n tabindex=\"0\"\n >\n @for (formError of formErrors; track formError.message) {\n <sky-status-indicator\n descriptionType=\"error\"\n indicatorType=\"danger\"\n [ngClass]=\"{\n 'sky-margin-stacked-sm':\n formErrors.indexOf(formError) < formErrors.length - 1,\n 'footer-error': true\n }\"\n >\n {{ formError.message }}\n </sky-status-indicator>\n }\n </div>\n }\n }\n </div>\n <ng-content />\n</div>\n","import {\n Directive,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n inject,\n} from '@angular/core';\nimport { SkyLibResourcesService } from '@skyux/i18n';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyConfirmType } from '../confirm/confirm-type';\nimport { SkyConfirmService } from '../confirm/confirm.service';\n\nimport { SkyModalBeforeCloseHandler } from './modal-before-close-handler';\nimport { SkyModalInstance } from './modal-instance';\n\n/**\n * Provides a way to mark a modal as \"dirty\" and displays a confirmation\n * message when a user closes the modal without saving.\n */\n@Directive({\n standalone: true,\n // Since this is limited to sky-modal, it should be safe to\n // leave off the sky prefix.\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'sky-modal[isDirty]',\n})\nexport class SkyModalIsDirtyDirective implements OnInit, OnDestroy {\n /**\n * Whether the user edited an input on the modal.\n * @required\n */\n @Input()\n // This attribute is being applied to the host to support\n // unit testing this feature.\n @HostBinding('attr.data-sky-modal-is-dirty')\n public isDirty = false;\n\n readonly #ngUnsubscribe = new Subject<void>();\n\n readonly #modalInstance = inject(SkyModalInstance);\n readonly #confirmSvc = inject(SkyConfirmService);\n readonly #resourcesSvc = inject(SkyLibResourcesService);\n\n public ngOnInit(): void {\n this.#modalInstance.beforeClose\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((handler) => this.#promptIfDirty(handler));\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n #promptIfDirty(handler: SkyModalBeforeCloseHandler): void {\n if (\n this.isDirty &&\n (handler.closeArgs.reason === 'close' ||\n handler.closeArgs.reason === 'cancel')\n ) {\n this.#resourcesSvc\n .getStrings({\n message: 'skyux_modal_dirty_default_message',\n discardActionText: 'skyux_modal_dirty_default_discard_changes_text',\n keepActionText: 'skyux_modal_dirty_default_keep_working_text',\n })\n .subscribe((textValues) => {\n const discardAction = 'discard';\n const keepAction = 'keep';\n\n this.#confirmSvc\n .open({\n message: textValues.message,\n buttons: [\n {\n action: discardAction,\n text: textValues.discardActionText,\n styleType: 'primary',\n },\n {\n action: keepAction,\n text: textValues.keepActionText,\n styleType: 'link',\n },\n ],\n type: SkyConfirmType.Custom,\n })\n .closed.subscribe((args) => {\n if (args.action === discardAction) {\n handler.closeModal();\n }\n });\n });\n } else {\n handler.closeModal();\n }\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { SkyModalContentComponent } from './modal-content.component';\nimport { SkyModalFooterComponent } from './modal-footer.component';\nimport { SkyModalHeaderComponent } from './modal-header.component';\nimport { SkyModalIsDirtyDirective } from './modal-is-dirty.directive';\nimport { SkyModalComponent } from './modal.component';\n\n@NgModule({\n imports: [\n SkyModalComponent,\n SkyModalContentComponent,\n SkyModalFooterComponent,\n SkyModalHeaderComponent,\n SkyModalIsDirtyDirective,\n ],\n exports: [\n SkyModalComponent,\n SkyModalContentComponent,\n SkyModalFooterComponent,\n SkyModalHeaderComponent,\n SkyModalIsDirtyDirective,\n ],\n})\nexport class SkyModalModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i4","i2","i3","i1.SkyModalService"],"mappings":"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"}
1
+ {"version":3,"file":"skyux-modals.mjs","sources":["../../../../../libs/components/modals/src/lib/modules/confirm/confirm-instance.ts","../../../../../libs/components/modals/src/lib/modules/confirm/confirm-type.ts","../../../../../libs/components/modals/src/lib/modules/confirm/confirm.module.ts","../../../../../libs/components/modals/src/lib/modules/confirm/confirm-config-token.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-content.component.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-content.component.html","../../../../../libs/components/modals/src/lib/modules/modal/modal-before-close-handler.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-close-args.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-instance.ts","../../../../../libs/components/modals/src/lib/modules/shared/sky-modals-resources.module.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-component-adapter.service.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-configuration.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-errors.service.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-header.component.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-header.component.html","../../../../../libs/components/modals/src/lib/modules/modal/modal-host.service.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal.component.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal.component.html","../../../../../libs/components/modals/src/lib/modules/confirm/confirm.component.ts","../../../../../libs/components/modals/src/lib/modules/confirm/confirm.component.html","../../../../../libs/components/modals/src/lib/modules/modal/modal-host-context.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-adapter.service.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-host.component.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-host.component.html","../../../../../libs/components/modals/src/lib/modules/modal/modal.service.ts","../../../../../libs/components/modals/src/lib/modules/confirm/confirm.service.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-footer.component.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal-footer.component.html","../../../../../libs/components/modals/src/lib/modules/modal/modal-is-dirty.directive.ts","../../../../../libs/components/modals/src/lib/modules/modal/modal.module.ts","../../../../../libs/components/modals/src/skyux-modals.ts"],"sourcesContent":["import { Observable, ReplaySubject } from 'rxjs';\n\nimport { SkyConfirmCloseEventArgs } from './confirm-closed-event-args';\n\nexport class SkyConfirmInstance {\n /**\n * Fires when users select an action to close the dialog. This event\n * returns a `SkyConfirmCloseEventArgs` object with information about the button that\n * users select. It returns the `'cancel'` action when users press the <kbd>Escape</kbd> key.\n */\n public get closed(): Observable<SkyConfirmCloseEventArgs> {\n return this.#closedObs;\n }\n\n readonly #closed = new ReplaySubject<SkyConfirmCloseEventArgs>();\n readonly #closedObs = this.#closed.asObservable();\n\n /**\n * Closes the confirm instance.\n * @param args Specifies an object to emit to subscribers of the `closed` event\n * of the confirm instance.\n */\n public close(args: SkyConfirmCloseEventArgs): void {\n this.#closed.next(args);\n this.#closed.complete();\n }\n}\n","export enum SkyConfirmType {\n /**\n * Allows you to define your own buttons using the `buttons` property of `SkyConfirmConfig`.\n */\n Custom = 0,\n /**\n * Displays one button with an **OK** label and an `'ok'` action.\n */\n OK = 1,\n /**\n * Displays two buttons with **Yes** and **Cancel** labels.\n * @deprecated Use the `Custom` type to follow the guidance that labels\n * should clearly indicate the actions that occur when users select buttons.\n */\n YesCancel = 2,\n /**\n * Displays three buttons with **Yes**, **No**, and **Cancel** labels.\n * @deprecated Use the `Custom` type to follow the guidance that labels\n * should clearly indicate the actions that occur when users select buttons.\n */\n YesNoCancel = 3,\n}\n","import { NgModule } from '@angular/core';\n\n/**\n * @deprecated The `SkyConfirmModule` is no longer needed and can be removed from your application.\n * @internal\n */\n@NgModule({})\nexport class SkyConfirmModule {}\n","import { InjectionToken } from '@angular/core';\n\nimport { SkyConfirmConfig } from './confirm-config';\n\n/**\n * @internal\n */\nexport const SKY_CONFIRM_CONFIG = new InjectionToken<SkyConfirmConfig>(\n 'SkyConfirmConfig',\n);\n","import { Component, ViewEncapsulation } from '@angular/core';\nimport { SkyResponsiveHostDirective } from '@skyux/core';\n\n/**\n * Specifies content to display in the modal's body.\n */\n@Component({\n hostDirectives: [SkyResponsiveHostDirective],\n standalone: true,\n selector: 'sky-modal-content',\n templateUrl: './modal-content.component.html',\n styleUrls: ['./modal-content.component.scss'],\n encapsulation: ViewEncapsulation.None,\n})\nexport class SkyModalContentComponent {}\n","<ng-content />\n","import { SkyModalCloseArgs } from './modal-close-args';\n\n/**\n * Properties about the modal close action and a method to close the modal.\n */\nexport class SkyModalBeforeCloseHandler {\n /**\n * The object that would be emitted by a modal's `closed` event. This object\n * can be used to determine whether to prompt the user for confirmation, such\n * as when the user closes a modal form after entering data.\n */\n public readonly closeArgs: SkyModalCloseArgs;\n\n /**\n * Function to call to close the modal. Neglecting to call this function\n * effectively cancels the close modal action.\n */\n public readonly closeModal: () => void;\n\n constructor(closeModal: () => void, closeArgs: SkyModalCloseArgs) {\n this.closeArgs = closeArgs;\n this.closeModal = closeModal;\n }\n}\n","/**\n * Contains an object with the data passed from users when\n * a modal is closed and the reason that the modal was closed.\n */\nexport class SkyModalCloseArgs {\n /**\n * The reason the modal was closed.\n * Options include `\"close\"`, `\"save\"`, and `\"cancel\"`.\n */\n public reason: string | undefined;\n /**\n * The data passed from users when the modal is closed.\n */\n public data: any;\n}\n","import { ComponentRef, ElementRef } from '@angular/core';\n\nimport { Observable, Subject } from 'rxjs';\n\nimport { SkyModalAdapterService } from './modal-adapter.service';\nimport { SkyModalBeforeCloseHandler } from './modal-before-close-handler';\nimport { SkyModalCloseArgs } from './modal-close-args';\n\nexport class SkyModalInstance {\n /**\n * An event that the modal instance emits when it is about to close.\n * It emits a `SkyModalBeforeCloseHandler` object with a `closeModal` method\n * that closes the modal. If a subscription exists for this event,\n * the modal does not close until the subscriber calls the `closeModal` method.\n */\n public get beforeClose(): Observable<SkyModalBeforeCloseHandler> {\n return this.#_beforeClose;\n }\n\n /**\n * An event that the modal instance emits when it closes.\n * It emits a `SkyModalCloseArgs` object with a `data` property that includes\n * data passed from users on close or save and a `reason` property that indicates\n * whether the modal was saved or closed without saving.\n * The `reason` property accepts any string value.\n * Common examples include `\"cancel\"`, `\"close\"`, and `\"save\"`.\n */\n public get closed(): Observable<SkyModalCloseArgs> {\n return this.#_closed;\n }\n\n /**\n * An event that the modal instance emits when users click\n * the <i class=\"fa fa-question-circle\" aria-hidden=\"true\"></i> button.\n * If a `helpKey` parameter was specified, the `helpOpened` event broadcasts the `helpKey`.\n * @deprecated\n */\n public get helpOpened(): Observable<string> {\n return this.#_helpOpened;\n }\n\n /**\n * A direct reference to the provided component's class.\n */\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n public componentInstance: any;\n\n /**\n * Sets the component adapter for the instance. This is used internally for actions such as scrolling the content.\n * @internal\n */\n public set adapter(value: SkyModalAdapterService) {\n this.#adapter = value;\n }\n\n /**\n * Sets the component ref for the instance. This is used to extract the component instance for the public API and the element ref for internal use.\n * @internal\n */\n public set componentRef(value: ComponentRef<any>) {\n this.componentInstance = value.instance;\n this.#elementRef = value.location;\n }\n\n #_beforeClose = new Subject<SkyModalBeforeCloseHandler>();\n\n #_closed = new Subject<SkyModalCloseArgs>();\n\n /**\n * @deprecated\n */\n #_helpOpened = new Subject<string>();\n\n #adapter: SkyModalAdapterService | undefined;\n #elementRef: ElementRef | undefined;\n\n /**\n * Closes the modal instance.\n * @param result Specifies an object to emit to subscribers of the `closed` event of the\n * modal instance. The `SkyModalInstance` provider can be injected into a component's constructor\n * so that this `close` function can be called from a button in the `sky-modal-footer`.\n * @param reason Specifies the reason for the modal closing, with the default reason of `\"close\"`.\n * @param ignoreBeforeClose Indicates whether to ignore the modal instance's `beforeClose` event.\n */\n public close(\n result?: any,\n reason?: string,\n ignoreBeforeClose?: boolean,\n ): void {\n if (reason === undefined) {\n reason = 'close';\n }\n\n this.#closeModal(reason, result, ignoreBeforeClose);\n }\n\n /**\n * Closes the modal instance with `reason=\"cancel\"`.\n * @param result Specifies an object to emit to subscribers of the `closed` event of the modal\n * instance. The `SkyModalInstance` provider can be injected into a component's constructor so\n * that this cancel function can be called from a button in the `sky-modal-footer`.\n */\n public cancel(result?: any): void {\n this.#closeModal('cancel', result);\n }\n\n /**\n * Closes the modal instance with `reason=\"save\"`.\n * @param result Specifies an object to emit to subscribers of the `closed` event of the modal\n * instance. The `SkyModalInstance` provider can be injected into a component's constructor so\n * that this `save` function can be called from a button in `the sky-modal-footer`.\n */\n public save(result?: any): void {\n this.#closeModal('save', result);\n }\n\n /**\n * Scrolls the modal content area to the top of its scrollable area.\n */\n public scrollContentToTop(): void {\n if (this.#adapter && this.#elementRef) {\n this.#adapter.scrollContentToTop(this.#elementRef);\n }\n }\n\n /**\n * Triggers the `helpOpened` event that broadcasts a `helpKey` parameter to open\n * when users click the <i class=\"fa fa-question-circle\" aria-hidden=\"true\"></i> button.\n * @param helpKey Specifies a string to emit to subscribers of\n * the modal instance's `helpOpened` event. Consumers can inject the `SkyModalInstance` provider\n * into a component's constructor to call the `openHelp` function in the modal template.\n * @deprecated\n */\n public openHelp(helpKey: string): void {\n this.#_helpOpened.next(helpKey);\n }\n\n #closeModal(type: string, result?: any, ignoreBeforeClose = false): void {\n const args = new SkyModalCloseArgs();\n\n args.reason = type;\n args.data = result;\n\n if (this.#_beforeClose.observers.length === 0 || ignoreBeforeClose) {\n this.#notifyClosed(args);\n } else {\n this.#_beforeClose.next(\n new SkyModalBeforeCloseHandler(() => {\n this.#notifyClosed(args);\n }, args),\n );\n }\n }\n\n #notifyClosed(args: SkyModalCloseArgs): void {\n this.#_closed.next(args);\n this.#_closed.complete();\n this.#_beforeClose.complete();\n this.#_helpOpened.complete();\n }\n}\n","/* istanbul ignore file */\n/**\n * NOTICE: DO NOT MODIFY THIS FILE!\n * The contents of this file were automatically generated by\n * the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-modals' schematic.\n * To update this file, simply rerun the command.\n */\nimport { NgModule } from '@angular/core';\nimport {\n SkyI18nModule,\n SkyLibResources,\n SkyLibResourcesService,\n} from '@skyux/i18n';\n\nconst RESOURCES: Record<string, SkyLibResources> = {\n 'EN-US': {\n skyux_confirm_dialog_default_ok_text: { message: 'OK' },\n skyux_confirm_dialog_default_yes_text: { message: 'Yes' },\n skyux_confirm_dialog_default_no_text: { message: 'No' },\n skyux_confirm_dialog_default_cancel_text: { message: 'Cancel' },\n skyux_modal_close: { message: 'Close modal' },\n skyux_modal_open_help: { message: 'Open Help' },\n skyux_modal_footer_cancel_button: { message: 'Cancel' },\n skyux_modal_footer_primary_button: { message: 'Save' },\n skyux_modal_dirty_default_message: {\n message: 'Are you sure you want to discard your changes?',\n },\n skyux_modal_dirty_default_discard_changes_text: {\n message: 'Discard changes',\n },\n skyux_modal_dirty_default_keep_working_text: { message: 'Keep working' },\n },\n 'FR-CA': {\n skyux_confirm_dialog_default_ok_text: { message: 'OK' },\n skyux_confirm_dialog_default_yes_text: { message: 'Oui' },\n skyux_confirm_dialog_default_no_text: { message: 'Non' },\n skyux_confirm_dialog_default_cancel_text: { message: 'Annuler' },\n skyux_modal_close: { message: 'Fermer le modal' },\n skyux_modal_open_help: { message: 'Ouvrir l’aide' },\n skyux_modal_footer_cancel_button: { message: 'Annuler' },\n skyux_modal_footer_primary_button: { message: 'Sauvegarder' },\n skyux_modal_dirty_default_message: {\n message: 'Êtes-vous certain de vouloir supprimer ces changements?',\n },\n skyux_modal_dirty_default_discard_changes_text: {\n message: 'Supprimer les changements',\n },\n skyux_modal_dirty_default_keep_working_text: {\n message: 'Continuer à travailler',\n },\n },\n};\n\nSkyLibResourcesService.addResources(RESOURCES);\n\n/**\n * Import into any component library module that needs to use resource strings.\n */\n@NgModule({\n exports: [SkyI18nModule],\n})\nexport class SkyModalsResourcesModule {}\n","import { ElementRef, Injectable } from '@angular/core';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyModalComponentAdapterService {\n public handleWindowChange(modalEl: ElementRef): void {\n const boundedHeightEl = modalEl.nativeElement.querySelector('.sky-modal');\n const fullPageModalEl = modalEl.nativeElement.querySelector(\n '.sky-modal-full-page',\n );\n const modalStyle = getComputedStyle(boundedHeightEl);\n\n const marginTopBottom =\n parseInt(modalStyle.marginTop, 10) +\n parseInt(modalStyle.marginBottom, 10);\n\n /*\n Set modal height equal to max height of window (accounting for padding above and below modal)\n */\n const newHeight = window.innerHeight - marginTopBottom;\n\n boundedHeightEl.style.maxHeight = newHeight.toString() + 'px';\n boundedHeightEl.style.setProperty(\n '--sky-modal-content-max-height',\n boundedHeightEl.style.maxHeight,\n );\n if (fullPageModalEl) {\n this.#setFullPageHeight(fullPageModalEl);\n }\n }\n\n public isFocusInFirstItem(\n event: KeyboardEvent,\n list: HTMLElement[],\n ): boolean {\n /* istanbul ignore next */\n /* sanity check */\n const eventTarget = event.target || event.srcElement;\n return list.length > 0 && eventTarget === list[0];\n }\n\n public isFocusInLastItem(event: KeyboardEvent, list: HTMLElement[]): boolean {\n /* istanbul ignore next */\n /* sanity check */\n const eventTarget = event.target || event.srcElement;\n return list.length > 0 && eventTarget === list[list.length - 1];\n }\n\n public isModalFocused(event: KeyboardEvent, modalEl: ElementRef): boolean {\n /* istanbul ignore next */\n /* sanity check */\n const eventTarget = event.target || event.srcElement;\n return (\n modalEl &&\n eventTarget === modalEl.nativeElement.querySelector('.sky-modal-dialog')\n );\n }\n\n public focusLastElement(list: HTMLElement[]): boolean {\n if (list.length > 0) {\n list[list.length - 1].focus();\n return true;\n }\n return false;\n }\n\n public focusFirstElement(list: HTMLElement[]): boolean {\n if (list.length > 0) {\n list[0].focus();\n return true;\n }\n return false;\n }\n\n public modalContentHasDirectChildViewkeeper(\n modalContentEl: ElementRef,\n ): boolean {\n return !!modalContentEl.nativeElement.querySelector(\n 'sky-modal-content > .sky-viewkeeper-fixed',\n );\n }\n\n #setFullPageHeight(fullPageModalEl: HTMLElement): void {\n const windowHeight = window.innerHeight;\n const fullPageModalStyle = getComputedStyle(fullPageModalEl);\n\n const marginTopBottom =\n parseInt(fullPageModalStyle.marginTop, 10) +\n parseInt(fullPageModalStyle.marginBottom, 10);\n\n const fullPageModalHeight = windowHeight - marginTopBottom + 'px';\n\n fullPageModalEl.style.height = fullPageModalHeight;\n fullPageModalEl.style.maxHeight = fullPageModalHeight;\n }\n}\n","import { Injectable } from '@angular/core';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyModalConfiguration {\n public fullPage?: boolean;\n public size?: string;\n /**\n * @deprecated\n */\n public ariaDescribedBy?: string;\n /**\n * @deprecated\n */\n public ariaLabelledBy?: string;\n public ariaRole?: string;\n /**\n * @deprecated\n */\n public tiledBody?: boolean;\n /**\n * @deprecated\n */\n public helpKey?: string;\n public wrapperClass?: string;\n\n constructor() {\n this.size = 'medium';\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { BehaviorSubject, Observable } from 'rxjs';\n\nimport { SkyModalError } from './modal-error';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyModalErrorsService {\n public formErrors: Observable<SkyModalError[] | undefined>;\n\n #formErrors = new BehaviorSubject<SkyModalError[] | undefined>(undefined);\n\n constructor() {\n this.formErrors = this.#formErrors.asObservable();\n }\n\n public updateErrors(value: SkyModalError[] | undefined): void {\n this.#formErrors.next(value);\n }\n}\n","import { Component } from '@angular/core';\nimport { SkyTrimModule } from '@skyux/core';\nimport { SkyThemeModule } from '@skyux/theme';\n\n/**\n * Specifies a header for the modal.\n */\n@Component({\n selector: 'sky-modal-header',\n templateUrl: './modal-header.component.html',\n styleUrls: ['./modal-header.component.scss'],\n imports: [SkyThemeModule, SkyTrimModule],\n})\nexport class SkyModalHeaderComponent {}\n","<h2 class=\"sky-modal-heading\" skyTrim>\n <ng-content />\n</h2>\n<span class=\"sky-control-help-container\" skyTrim\n ><ng-content select=\".sky-control-help\"></ng-content\n></span>\n","import { Injectable } from '@angular/core';\n\nimport { BehaviorSubject, Observable, Subject } from 'rxjs';\n\nconst BASE_Z_INDEX = 1040;\nconst modalHosts: SkyModalHostService[] = [];\n\nconst backdropZIndex = new BehaviorSubject<number>(0);\nconst backdropZIndexObs = backdropZIndex.asObservable();\n\nconst openModalCount = new BehaviorSubject<number>(0);\nconst openModalCountObs = openModalCount.asObservable();\n\n/**\n * @internal\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class SkyModalHostService {\n public static get openModalCountChange(): Observable<number> {\n return openModalCountObs;\n }\n\n public static get backdropZIndexChange(): Observable<number> {\n return backdropZIndexObs;\n }\n\n /**\n * @deprecated Subscribe to `openModalCountChange` instead.\n */\n public static get openModalCount(): number {\n return modalHosts.length;\n }\n\n public static get fullPageModalCount(): number {\n const fullPageModals = modalHosts.filter((modal) => modal.fullPage);\n return fullPageModals.length;\n }\n\n /**\n * @deprecated Subscribe to `backdropZIndexChange` instead.\n */\n public static get backdropZIndex(): number {\n return BASE_Z_INDEX + modalHosts.length * 10;\n }\n\n public static get topModal(): SkyModalHostService {\n return modalHosts[modalHosts.length - 1];\n }\n\n public close = new Subject<void>();\n public fullPage = false;\n /**\n * @deprecated\n */\n public openHelp = new Subject<string>();\n public zIndex: number;\n\n constructor() {\n this.zIndex = this.#calculateZIndex();\n modalHosts.push(this);\n this.#notifyBackdropZIndex();\n this.#notifyOpenModalCount();\n }\n\n public getModalZIndex(): number {\n return this.zIndex;\n }\n\n public onClose(): void {\n this.close.next();\n }\n\n /**\n * @deprecated\n */\n public onOpenHelp(helpKey: string): void {\n this.openHelp.next(helpKey);\n }\n\n public destroy(): void {\n modalHosts.splice(modalHosts.indexOf(this), 1);\n this.#notifyBackdropZIndex();\n this.#notifyOpenModalCount();\n }\n\n #calculateZIndex(): number {\n const zIndexArray = modalHosts.map((hostService) => hostService.zIndex);\n if (zIndexArray.length === 0) {\n return BASE_Z_INDEX + 11;\n } else {\n const currentMaxZIndex = Math.max(...zIndexArray);\n return currentMaxZIndex + 10;\n }\n }\n\n #notifyOpenModalCount(): void {\n openModalCount.next(modalHosts.length);\n }\n\n #notifyBackdropZIndex(): void {\n backdropZIndex.next(SkyModalHostService.backdropZIndex);\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ElementRef,\n HostBinding,\n HostListener,\n Input,\n OnDestroy,\n OnInit,\n TemplateRef,\n ViewChild,\n inject,\n input,\n} from '@angular/core';\nimport {\n SkyCoreAdapterService,\n SkyDockLocation,\n SkyDockService,\n SkyIdModule,\n SkyLayoutHostDirective,\n SkyLiveAnnouncerService,\n SkyScrollShadowDirective,\n SkyScrollShadowEventArgs,\n} from '@skyux/core';\nimport { SkyHelpInlineModule } from '@skyux/help-inline';\nimport { SkyIconModule } from '@skyux/icon';\nimport { SkyTheme, SkyThemeModule, SkyThemeService } from '@skyux/theme';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyModalsResourcesModule } from '../shared/sky-modals-resources.module';\n\nimport { SkyModalComponentAdapterService } from './modal-component-adapter.service';\nimport { SkyModalConfiguration } from './modal-configuration';\nimport { SkyModalError } from './modal-error';\nimport { SkyModalErrorsService } from './modal-errors.service';\nimport { SkyModalHeaderComponent } from './modal-header.component';\nimport { SkyModalHostService } from './modal-host.service';\n\nconst ARIA_ROLE_DEFAULT = 'dialog';\n\n/**\n * Provides a common look-and-feel for modal content with options to display\n * a common modal header, specify body content, and display a common modal footer\n * and buttons.\n */\n@Component({\n selector: 'sky-modal',\n templateUrl: './modal.component.html',\n styleUrls: ['./modal.component.scss'],\n providers: [\n SkyModalComponentAdapterService,\n SkyModalErrorsService,\n SkyDockService,\n ],\n imports: [\n CommonModule,\n SkyHelpInlineModule,\n SkyIconModule,\n SkyIdModule,\n SkyLayoutHostDirective,\n SkyModalHeaderComponent,\n SkyModalsResourcesModule,\n SkyScrollShadowDirective,\n SkyThemeModule,\n ],\n})\nexport class SkyModalComponent implements AfterViewInit, OnDestroy, OnInit {\n @HostBinding('class')\n public wrapperClass: string | undefined;\n\n /**\n * A list of form-level errors to display to the user.\n */\n @Input()\n public set formErrors(value: SkyModalError[] | undefined) {\n this.#errorsSvc.updateErrors(value);\n }\n\n /**\n * The text to display as the modal's heading.\n */\n @Input()\n public headingText: string | undefined;\n\n /**\n * A help key that identifies the global help content to display. When specified along with `headingText`, a [help inline](https://developer.blackbaud.com/skyux/components/help-inline) button is\n * added to the modal header. Clicking the button invokes global help as configured by the application. This property only applies when `headingText` is also specified.\n */\n @Input()\n public helpKey: string | undefined;\n\n /**\n * The content of the help popover. When specified along with `headingText`, a [help inline](https://developer.blackbaud.com/skyux/components/help-inline)\n * button is added to the modal header. The help inline button displays a [popover](https://developer.blackbaud.com/skyux/components/popover)\n * when clicked using the specified content and optional title. This property only applies when `headingText` is also specified.\n */\n @Input()\n public helpPopoverContent: string | TemplateRef<unknown> | undefined;\n\n /**\n * The title of the help popover. This property only applies when `helpPopoverContent` is\n * also specified.\n */\n @Input()\n public helpPopoverTitle: string | undefined;\n\n /**\n * Used by the confirm component to set a different role for the modal.\n * @internal\n */\n @Input()\n public set ariaRole(value: string | undefined) {\n this.ariaRoleOrDefault = value || ARIA_ROLE_DEFAULT;\n }\n\n public ariaRoleOrDefault = ARIA_ROLE_DEFAULT;\n\n /**\n * @internal\n * @deprecated\n */\n @Input()\n public tiledBody: boolean | undefined;\n\n /**\n * Used by the confirm component to set descriptive text without using a\n * modal header.\n * @internal\n */\n @Input()\n public set ariaDescribedBy(id: string | undefined) {\n this.#_ariaDescribedBy = id;\n }\n\n public get ariaDescribedBy(): string | undefined {\n return this.#_ariaDescribedBy;\n }\n\n /**\n * Used by the confirm component to set descriptive text without using a\n * modal header.\n * @internal\n */\n @Input()\n public set ariaLabelledBy(id: string | undefined) {\n this.#_ariaLabelledBy = id;\n }\n\n public get ariaLabelledBy(): string | undefined {\n return this.#_ariaLabelledBy;\n }\n\n public readonly layout = input<'none' | 'fit'>('none');\n\n public ariaOwns: string | null = null;\n\n /**\n * @deprecated\n */\n public legacyHelpKey: string | undefined;\n\n public modalState = 'in';\n\n public modalZIndex: number | undefined;\n\n public scrollShadow: SkyScrollShadowEventArgs = {\n bottomShadow: 'none',\n topShadow: 'none',\n };\n\n public size: string;\n\n @ViewChild('modalContentWrapper', { read: ElementRef })\n public modalContentWrapperElement: ElementRef | undefined;\n\n protected scrollShadowEnabled = false;\n\n #ngUnsubscribe = new Subject<void>();\n\n #_ariaDescribedBy: string | undefined;\n #_ariaLabelledBy: string | undefined;\n\n readonly #changeDetector = inject(ChangeDetectorRef);\n readonly #componentAdapter = inject(SkyModalComponentAdapterService);\n readonly #coreAdapter = inject(SkyCoreAdapterService);\n readonly #dockService = inject(SkyDockService, { host: true });\n readonly #elRef = inject(ElementRef);\n readonly #errorsSvc = inject(SkyModalErrorsService);\n readonly #hostService = inject(SkyModalHostService);\n readonly #liveAnnouncerSvc = inject(SkyLiveAnnouncerService);\n\n /**\n * This provider is optional to account for situations where a modal component\n * is implemented without the modal service. For example, when a consumer tests\n * a component that uses the modal component but doesn't launch the modal from\n * the modal service before executing assertions.\n */\n readonly #config =\n inject(SkyModalConfiguration, { optional: true }) ??\n new SkyModalConfiguration();\n readonly #themeSvc = inject(SkyThemeService, { optional: true });\n\n constructor() {\n this.ariaDescribedBy = this.#config.ariaDescribedBy;\n this.ariaLabelledBy = this.#config.ariaLabelledBy;\n this.ariaRole = this.#config.ariaRole;\n this.legacyHelpKey = this.#config.helpKey;\n this.tiledBody = this.#config.tiledBody;\n this.wrapperClass = this.#config.wrapperClass;\n\n this.size = this.#config.fullPage\n ? 'full-page'\n : this.#config.size?.toLowerCase() || 'medium';\n\n this.modalZIndex = this.#hostService.zIndex;\n }\n\n @HostListener('document:keyup', ['$event'])\n public onDocumentKeyUp(event: KeyboardEvent): void {\n /* istanbul ignore else */\n /* sanity check */\n if (SkyModalHostService.openModalCount > 0) {\n const topModal = SkyModalHostService.topModal;\n if (topModal && topModal === this.#hostService) {\n if (event.which === 27) {\n // Escape key up\n event.preventDefault();\n this.closeButtonClick();\n }\n }\n }\n }\n\n @HostListener('document:keydown', ['$event'])\n public onDocumentKeyDown(event: KeyboardEvent): void {\n /* istanbul ignore else */\n /* sanity check */\n if (SkyModalHostService.openModalCount > 0) {\n const topModal = SkyModalHostService.topModal;\n if (topModal && topModal === this.#hostService) {\n if (event.which === 9) {\n // Tab pressed\n let focusChanged = false;\n\n const focusElementList = this.#coreAdapter.getFocusableChildren(\n this.#elRef.nativeElement,\n );\n\n if (\n event.shiftKey &&\n (this.#componentAdapter.isFocusInFirstItem(\n event,\n focusElementList,\n ) ||\n this.#componentAdapter.isModalFocused(event, this.#elRef))\n ) {\n focusChanged =\n this.#componentAdapter.focusLastElement(focusElementList);\n } else if (\n !event.shiftKey &&\n this.#componentAdapter.isFocusInLastItem(event, focusElementList)\n ) {\n focusChanged =\n this.#componentAdapter.focusFirstElement(focusElementList);\n }\n\n if (focusChanged) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n }\n }\n }\n\n public ngOnInit(): void {\n this.#liveAnnouncerSvc.announcerElementChanged\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((element) => {\n if (element?.id) {\n this.ariaOwns = element.id;\n this.#changeDetector.markForCheck();\n }\n });\n\n if (this.#themeSvc) {\n this.#themeSvc.settingsChange\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((themeSettings) => {\n this.scrollShadowEnabled =\n themeSettings.currentSettings.theme === SkyTheme.presets.modern;\n });\n }\n }\n\n public ngAfterViewInit(): void {\n this.#componentAdapter.handleWindowChange(this.#elRef);\n\n this.#dockService.setDockOptions({\n location: SkyDockLocation.ElementBottom,\n referenceEl: this.modalContentWrapperElement!.nativeElement,\n zIndex: 5,\n });\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n /**\n * @deprecated\n */\n public helpButtonClick(): void {\n if (this.legacyHelpKey) {\n this.#hostService.onOpenHelp(this.legacyHelpKey);\n }\n }\n\n public closeButtonClick(): void {\n this.#hostService.onClose();\n }\n\n public windowResize(): void {\n this.#componentAdapter.handleWindowChange(this.#elRef);\n }\n\n public scrollShadowChange(args: SkyScrollShadowEventArgs): void {\n this.scrollShadow = args;\n }\n\n public viewkeeperEnabled(): boolean {\n return this.#componentAdapter.modalContentHasDirectChildViewkeeper(\n this.#elRef,\n );\n }\n}\n","<div\n class=\"sky-modal-dialog\"\n aria-modal=\"true\"\n [attr.aria-describedby]=\"ariaDescribedBy || modalContentId.id\"\n [attr.aria-labelledby]=\"ariaLabelledBy || headerId.id\"\n [attr.aria-owns]=\"ariaOwns\"\n [attr.role]=\"ariaRoleOrDefault\"\n (window:resize)=\"windowResize()\"\n>\n <div\n class=\"sky-modal sky-shadow sky-box sky-elevation-16 sky-modal-{{ size }}\"\n tabindex=\"-1\"\n [ngClass]=\"{\n 'sky-modal-tiled': tiledBody,\n 'sky-modal-viewkeeper': viewkeeperEnabled()\n }\"\n [ngStyle]=\"{\n zIndex: modalZIndex\n }\"\n >\n <div\n class=\"sky-modal-header\"\n [ngStyle]=\"{\n 'box-shadow': scrollShadow?.topShadow\n }\"\n >\n <div #headerId=\"skyId\" class=\"sky-modal-header-content\" skyId>\n @if (headingText) {\n <sky-modal-header>\n {{ headingText }}\n @if (helpKey || helpPopoverContent) {\n <sky-help-inline\n class=\"sky-control-help\"\n [helpKey]=\"helpKey\"\n [labelText]=\"headingText\"\n [popoverContent]=\"helpPopoverContent\"\n [popoverTitle]=\"helpPopoverTitle\"\n />\n }\n </sky-modal-header>\n } @else {\n <ng-content select=\"sky-modal-header\" />\n }\n </div>\n <div class=\"sky-modal-header-buttons\">\n @if (legacyHelpKey) {\n <button\n class=\"sky-btn sky-modal-btn-help\"\n name=\"help-button\"\n type=\"button\"\n [attr.aria-label]=\"'skyux_modal_open_help' | skyLibResources\"\n (click)=\"helpButtonClick()\"\n >\n <sky-icon iconName=\"question-circle\" />\n </button>\n }\n\n <button\n type=\"button\"\n class=\"sky-btn sky-modal-btn-close\"\n [attr.aria-label]=\"'skyux_modal_close' | skyLibResources\"\n (click)=\"closeButtonClick()\"\n >\n <sky-icon iconName=\"close\" />\n </button>\n </div>\n </div>\n <div\n #modalContentId=\"skyId\"\n #modalContentWrapper\n class=\"sky-modal-content\"\n role=\"region\"\n tabindex=\"0\"\n skyId\n skyLayoutHost\n [layout]=\"layout()\"\n [attr.aria-labelledby]=\"headerId.id\"\n [skyScrollShadowEnabled]=\"scrollShadowEnabled\"\n [skyThemeClass]=\"{\n 'sky-padding-even-large': 'default'\n }\"\n (skyScrollShadow)=\"scrollShadowChange($event)\"\n >\n <ng-content select=\"sky-modal-content\" />\n </div>\n <div\n class=\"sky-modal-footer\"\n [ngStyle]=\"{\n 'box-shadow': scrollShadow?.bottomShadow\n }\"\n >\n <ng-content select=\"sky-modal-footer\" />\n </div>\n </div>\n</div>\n","import { CommonModule } from '@angular/common';\nimport { Component, OnDestroy, inject } from '@angular/core';\nimport { SkyIdModule, SkyIdService } from '@skyux/core';\nimport { SkyLibResourcesService } from '@skyux/i18n';\nimport { SkyThemeModule } from '@skyux/theme';\n\nimport { Observable, ReplaySubject, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyModalContentComponent } from '../modal/modal-content.component';\nimport { SkyModalInstance } from '../modal/modal-instance';\nimport { SkyModalComponent } from '../modal/modal.component';\nimport { SkyModalsResourcesModule } from '../shared/sky-modals-resources.module';\n\nimport { SkyConfirmButton } from './confirm-button';\nimport { SkyConfirmButtonConfig } from './confirm-button-config';\nimport { SkyConfirmCloseEventArgs } from './confirm-closed-event-args';\nimport { SKY_CONFIRM_CONFIG } from './confirm-config-token';\nimport { SkyConfirmInstance } from './confirm-instance';\nimport { SkyConfirmType } from './confirm-type';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-confirm',\n templateUrl: './confirm.component.html',\n styleUrls: ['./confirm.component.scss'],\n imports: [\n CommonModule,\n SkyIdModule,\n SkyModalComponent,\n SkyModalContentComponent,\n SkyModalsResourcesModule,\n SkyThemeModule,\n ],\n})\nexport class SkyConfirmComponent implements OnDestroy {\n protected body: string | undefined;\n protected bodyId: string;\n protected buttons: SkyConfirmButton[] | undefined;\n protected isOkType = false;\n protected message: string;\n protected preserveWhiteSpace = false;\n\n #ngUnsubscribe = new Subject<void>();\n\n readonly #config = inject(SKY_CONFIRM_CONFIG);\n readonly #modalInstance = inject(SkyModalInstance);\n readonly #confirmInstance = inject(SkyConfirmInstance);\n readonly #resourcesSvc = inject(SkyLibResourcesService);\n readonly #idSvc = inject(SkyIdService);\n\n constructor() {\n this.#config.type ??= SkyConfirmType.OK;\n\n if (\n this.#config.type === SkyConfirmType.Custom &&\n this.#config.buttons &&\n this.#config.buttons.length > 0\n ) {\n this.buttons = this.#getCustomButtons(this.#config.buttons);\n } else {\n this.#getPresetButtons()\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((buttons) => {\n this.buttons = buttons;\n });\n }\n\n this.message = this.#config.message;\n this.body = this.#config.body;\n\n // Using the service here instead of the directive due to the confirm\n // component's \"body\" container being conditional and thus a template\n // variable being unavailable at an outer scope\n this.bodyId = this.#idSvc.generateId();\n\n this.preserveWhiteSpace = !!this.#config.preserveWhiteSpace;\n this.isOkType = this.#config.type === SkyConfirmType.OK;\n\n // Closes the modal when requested by the confirm instance.\n this.#confirmInstance.closed.subscribe((args) => {\n this.#modalInstance.close(args);\n });\n\n this.#modalInstance.closed.subscribe((args) => {\n // Close the confirm when the \"escape\" key is pressed (passes 'undefined')\n // since this behavior is handled by the underlying modal component.\n if (args.data === undefined) {\n this.#confirmInstance.close({\n action: 'cancel',\n });\n }\n });\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n protected close(button: SkyConfirmButton): void {\n const result: SkyConfirmCloseEventArgs = {\n action: button.action,\n };\n\n this.#confirmInstance.close(result);\n }\n\n #getPresetButtons(): Observable<SkyConfirmButton[]> {\n const emitter = new ReplaySubject<SkyConfirmButton[]>(1);\n\n this.#resourcesSvc\n .getStrings({\n cancel: 'skyux_confirm_dialog_default_cancel_text',\n no: 'skyux_confirm_dialog_default_no_text',\n ok: 'skyux_confirm_dialog_default_ok_text',\n yes: 'skyux_confirm_dialog_default_yes_text',\n })\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((values) => {\n const confirmButtons: SkyConfirmButton[] = [];\n\n switch (this.#config.type) {\n case SkyConfirmType.YesNoCancel:\n case SkyConfirmType.YesCancel:\n confirmButtons.push({\n text: values.yes,\n autofocus: true,\n styleType: 'primary',\n action: 'yes',\n });\n\n if (this.#config.type === SkyConfirmType.YesNoCancel) {\n confirmButtons.push({\n text: values.no,\n styleType: 'default',\n action: 'no',\n });\n }\n\n confirmButtons.push({\n text: values.cancel,\n styleType: 'link',\n action: 'cancel',\n });\n break;\n default:\n confirmButtons.push({\n text: values.ok,\n autofocus: true,\n styleType: 'primary',\n action: 'ok',\n });\n }\n\n emitter.next(confirmButtons);\n });\n\n return emitter.asObservable();\n }\n\n #getCustomButtons(\n buttonConfig: SkyConfirmButtonConfig[],\n ): SkyConfirmButton[] {\n return buttonConfig.map(\n (config) =>\n ({\n text: config.text,\n action: config.action,\n styleType: config.styleType || 'default',\n autofocus: config.autofocus || false,\n }) as SkyConfirmButton,\n );\n }\n}\n","<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 #confirmMessage=\"skyId\"\n class=\"sky-confirm-message\"\n skyId\n [ngClass]=\"{\n 'sky-confirm-preserve-white-space': preserveWhiteSpace\n }\"\n [skyThemeClass]=\"{\n 'sky-font-display-4': 'default'\n }\"\n >{{ message }}</div\n >\n\n @if (body) {\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-body\"\n [id]=\"bodyId\"\n [ngClass]=\"{\n 'sky-confirm-preserve-white-space': preserveWhiteSpace\n }\"\n >{{ body }}</div\n >\n }\n\n <div class=\"sky-confirm-buttons\">\n @for (button of buttons; track button.text) {\n <button\n type=\"button\"\n class=\"sky-btn\"\n [ngClass]=\"'sky-btn-' + button.styleType\"\n [attr.autofocus]=\"button.autofocus ? 'autofocus' : null\"\n (click)=\"close(button)\"\n >\n {{ button.text }}\n </button>\n }\n </div>\n </sky-modal-content>\n </sky-modal>\n</div>\n","import { Inject, Injectable } from '@angular/core';\n\nimport { SkyModalHostContextArgs } from './modal-host-context-args';\n\n/**\n * Provided by the modal service to give the modal host\n * component additional context and features.\n * @internal\n */\n@Injectable()\nexport class SkyModalHostContext {\n constructor(\n @Inject('SkyModalHostContextArgs') public args: SkyModalHostContextArgs,\n ) {}\n}\n","import { ElementRef, Injectable, inject } from '@angular/core';\nimport { SkyAppWindowRef, SkyCoreAdapterService } from '@skyux/core';\n\n/**\n * @internal\n */\n@Injectable()\nexport class SkyModalAdapterService {\n private static readonly MODAL_BODY_FULL_CLASS = 'sky-modal-body-full-page';\n private static readonly MODAL_BODY_CLASS = 'sky-modal-body-open';\n\n #docRef: any;\n #bodyEl: HTMLElement;\n\n #coreAdapter = inject(SkyCoreAdapterService);\n #windowRef: SkyAppWindowRef;\n #hostSiblingAriaHiddenCache = new Map<Element, string | null>();\n\n constructor(windowRef: SkyAppWindowRef) {\n this.#windowRef = windowRef;\n this.#docRef = this.#windowRef.nativeWindow.document;\n this.#bodyEl = this.#windowRef.nativeWindow.document.body;\n }\n\n public toggleFullPageModalClass(isAddFull: boolean): void {\n if (isAddFull) {\n this.#addClassToBody(SkyModalAdapterService.MODAL_BODY_FULL_CLASS);\n } else {\n this.#removeClassFromBody(SkyModalAdapterService.MODAL_BODY_FULL_CLASS);\n }\n }\n\n public setPageScroll(isAdd: boolean): void {\n if (isAdd) {\n this.#addClassToBody(SkyModalAdapterService.MODAL_BODY_CLASS);\n } else {\n this.#removeClassFromBody(SkyModalAdapterService.MODAL_BODY_CLASS);\n }\n }\n\n public getModalOpener(): HTMLElement {\n return this.#docRef.activeElement;\n }\n\n #addClassToBody(className: string): void {\n this.#bodyEl.classList.add(className);\n }\n\n #removeClassFromBody(className: string): void {\n this.#bodyEl.classList.remove(className);\n }\n\n public scrollContentToTop(element: ElementRef): void {\n element.nativeElement.querySelector('.sky-modal-content').scrollTop = 0;\n }\n\n /**\n * Hides siblings of modal-host from screen readers\n * @param hostElRef reference to modal-host element\n */\n public hideHostSiblingsFromScreenReaders(hostElRef: ElementRef): void {\n const hostElement = hostElRef.nativeElement;\n const hostSiblings = hostElement.parentElement?.children;\n\n if (hostSiblings) {\n for (const element of hostSiblings) {\n if (element.contains(document.activeElement)) {\n document.body.focus();\n }\n if (\n element !== hostElement &&\n !element.hasAttribute('aria-live') &&\n element.nodeName.toLowerCase() !== 'script' &&\n element.nodeName.toLowerCase() !== 'style'\n ) {\n // preserve previous aria-hidden status of elements outside of modal host\n this.#hostSiblingAriaHiddenCache.set(\n element,\n element.getAttribute('aria-hidden'),\n );\n element.setAttribute('aria-hidden', 'true');\n }\n }\n }\n }\n\n public focusFirstElement(modalEl: ElementRef): void {\n /* istanbul ignore else */\n /* handle the case where somehow there is a focused element already in the modal */\n if (\n !(\n document.activeElement &&\n modalEl.nativeElement.contains(document.activeElement)\n )\n ) {\n const currentScrollX = window.pageXOffset;\n const currentScrollY = window.pageYOffset;\n\n const inputWithAutofocus =\n modalEl.nativeElement.querySelector('[autofocus]');\n\n if (inputWithAutofocus) {\n inputWithAutofocus.focus();\n } else {\n this.#coreAdapter.getFocusableChildrenAndApplyFocus(\n modalEl,\n '.sky-modal-content',\n true,\n );\n }\n window.scrollTo(currentScrollX, currentScrollY);\n }\n }\n\n /**\n * Restores modal-host siblings to screen reader status prior to modals being opened\n */\n public unhideOrRestoreHostSiblingsFromScreenReaders(): void {\n this.#hostSiblingAriaHiddenCache.forEach((previousValue, element) => {\n // if element had aria-hidden status prior, restore status\n if (element.parentElement) {\n if (previousValue) {\n element.setAttribute('aria-hidden', previousValue);\n } else {\n element.removeAttribute('aria-hidden');\n }\n }\n });\n this.#hostSiblingAriaHiddenCache.clear();\n }\n\n public hidePreviousModalFromScreenReaders(topModal: ElementRef): void {\n if (topModal && topModal.nativeElement.previousElementSibling) {\n topModal.nativeElement.previousElementSibling.setAttribute(\n 'aria-hidden',\n 'true',\n );\n }\n }\n\n public unhidePreviousModalFromScreenReaders(topModal: ElementRef): void {\n if (topModal && topModal.nativeElement.previousElementSibling) {\n topModal.nativeElement.previousElementSibling.removeAttribute(\n 'aria-hidden',\n );\n }\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n ChangeDetectorRef,\n Component,\n ElementRef,\n EnvironmentInjector,\n OnDestroy,\n Type,\n ViewChild,\n ViewContainerRef,\n inject,\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { NavigationStart, Router, RouterModule } from '@angular/router';\nimport {\n SKY_STACKING_CONTEXT,\n SkyAppWindowRef,\n SkyDynamicComponentService,\n} from '@skyux/core';\n\nimport { BehaviorSubject } from 'rxjs';\nimport { takeUntil, takeWhile } from 'rxjs/operators';\n\nimport { SkyModalsResourcesModule } from '../shared/sky-modals-resources.module';\n\nimport { SkyModalAdapterService } from './modal-adapter.service';\nimport { SkyModalConfiguration } from './modal-configuration';\nimport { SkyModalHostContext } from './modal-host-context';\nimport { SkyModalHostService } from './modal-host.service';\nimport { SkyModalInstance } from './modal-instance';\nimport { SkyModalConfigurationInterface } from './modal.interface';\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-modal-host',\n templateUrl: './modal-host.component.html',\n styleUrls: ['./modal-host.component.scss'],\n viewProviders: [SkyModalAdapterService],\n imports: [CommonModule, RouterModule, SkyModalsResourcesModule],\n})\nexport class SkyModalHostComponent implements OnDestroy {\n protected backdropZIndex = toSignal(SkyModalHostService.backdropZIndexChange);\n protected modalCount = toSignal(SkyModalHostService.openModalCountChange);\n\n @ViewChild('target', {\n read: ViewContainerRef,\n static: true,\n })\n public target: ViewContainerRef | undefined;\n\n #modalInstances: SkyModalInstance[] = [];\n\n readonly #adapter = inject(SkyModalAdapterService);\n readonly #changeDetector = inject(ChangeDetectorRef);\n readonly #dynamicComponentSvc = inject(SkyDynamicComponentService);\n readonly #elRef = inject(ElementRef);\n readonly #environmentInjector = inject(EnvironmentInjector);\n readonly #modalHostContext = inject(SkyModalHostContext);\n readonly #router = inject(Router, { optional: true });\n readonly #windowRef = inject(SkyAppWindowRef);\n\n public ngOnDestroy(): void {\n // Close all modal instances before disposing of the host container.\n this.#closeAllModalInstances();\n this.#modalHostContext.args.teardownCallback();\n }\n\n public open<T>(\n modalInstance: SkyModalInstance,\n component: Type<T>,\n config?: SkyModalConfigurationInterface,\n environmentInjector?: EnvironmentInjector,\n ): void {\n /* Ignore coverage as we specify the target element and so the view child should never be undefined unless\n * we were to call the `open` method in an early lifecycle hook. */\n /* istanbul ignore next */\n if (!this.target) {\n return;\n }\n\n const params: SkyModalConfigurationInterface = Object.assign({}, config);\n\n const hostService = new SkyModalHostService();\n hostService.fullPage = !!params.fullPage;\n\n const adapter = this.#adapter;\n const modalOpener: HTMLElement = adapter.getModalOpener();\n\n let isOpen = true;\n\n params.providers ||= [];\n params.providers.push(\n {\n provide: SkyModalHostService,\n useValue: hostService,\n },\n {\n provide: SkyModalConfiguration,\n useValue: params,\n },\n {\n provide: SKY_STACKING_CONTEXT,\n useValue: {\n zIndex: new BehaviorSubject(hostService.getModalZIndex())\n .asObservable()\n .pipe(takeUntil(modalInstance.closed)),\n },\n },\n );\n\n adapter.setPageScroll(SkyModalHostService.openModalCount > 0);\n adapter.toggleFullPageModalClass(\n SkyModalHostService.fullPageModalCount > 0,\n );\n\n environmentInjector ||= this.#environmentInjector;\n const modalComponentRef = this.#dynamicComponentSvc.createComponent(\n component,\n {\n environmentInjector: environmentInjector,\n providers: params.providers,\n viewContainerRef: this.target,\n },\n );\n\n // modal element that was just opened\n const modalElement = modalComponentRef.location;\n\n modalInstance.adapter = this.#adapter;\n modalInstance.componentRef = modalComponentRef;\n\n this.#registerModalInstance(modalInstance);\n\n // Adding a timeout to avoid ExpressionChangedAfterItHasBeenCheckedError.\n // https://stackoverflow.com/questions/40562845\n this.#windowRef.nativeWindow.setTimeout(() => {\n this.#adapter.focusFirstElement(modalElement);\n\n // hiding all elements at the modal-host level from screen readers when the a modal is opened\n this.#adapter.hideHostSiblingsFromScreenReaders(this.#elRef);\n if (\n SkyModalHostService.openModalCount > 1 &&\n SkyModalHostService.topModal === hostService\n ) {\n // hiding the lower modals when more than one modal is opened\n this.#adapter.hidePreviousModalFromScreenReaders(modalElement);\n }\n });\n\n const closeModal = (): void => {\n // unhide siblings if last modal is closing\n if (SkyModalHostService.openModalCount === 1) {\n this.#adapter.unhideOrRestoreHostSiblingsFromScreenReaders();\n } else if (SkyModalHostService.topModal === hostService) {\n // if there are more than 1 modal then unhide the one behind this one before closing it\n this.#adapter.unhidePreviousModalFromScreenReaders(modalElement);\n }\n\n hostService.destroy();\n adapter.setPageScroll(SkyModalHostService.openModalCount > 0);\n adapter.toggleFullPageModalClass(\n SkyModalHostService.fullPageModalCount > 0,\n );\n /* istanbul ignore else */\n /* sanity check */\n if (modalOpener && modalOpener.focus) {\n modalOpener.focus();\n }\n modalComponentRef.destroy();\n };\n\n hostService.openHelp.subscribe((helpKey) => {\n modalInstance.openHelp(helpKey);\n });\n\n hostService.close.subscribe(() => {\n modalInstance.close();\n });\n\n this.#router?.events.pipe(takeWhile(() => isOpen)).subscribe((event) => {\n /* istanbul ignore else */\n if (event instanceof NavigationStart) {\n modalInstance.close();\n }\n });\n\n modalInstance.closed.subscribe(() => {\n isOpen = false;\n this.#unregisterModalInstance(modalInstance);\n closeModal();\n });\n\n // Necessary if the host was created via a consumer's lifecycle hook such as ngOnInit\n this.#changeDetector.detectChanges();\n }\n\n #registerModalInstance(instance: SkyModalInstance): void {\n this.#modalInstances.push(instance);\n }\n\n #unregisterModalInstance(instance: SkyModalInstance): void {\n this.#modalInstances.slice(this.#modalInstances.indexOf(instance), 1);\n }\n\n #closeAllModalInstances(): void {\n for (const instance of this.#modalInstances) {\n instance.close();\n }\n }\n}\n","<div\n class=\"sky-modal-host-backdrop\"\n [hidden]=\"modalCount() === 0\"\n [ngStyle]=\"{\n zIndex: backdropZIndex()\n }\"\n></div>\n<div #target></div>\n","import {\n ComponentRef,\n EnvironmentInjector,\n Injectable,\n inject,\n} from '@angular/core';\nimport {\n SkyDynamicComponentLegacyService,\n SkyDynamicComponentService,\n} from '@skyux/core';\n\nimport { SkyModalHostContext } from './modal-host-context';\nimport { SkyModalHostComponent } from './modal-host.component';\nimport { SkyModalInstance } from './modal-instance';\nimport { SkyModalServiceInterface } from './modal-service-interface';\nimport { SkyModalConfigurationInterface } from './modal.interface';\n\n/**\n * A service that launches modals.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class SkyModalService implements SkyModalServiceInterface {\n private static host: ComponentRef<SkyModalHostComponent> | undefined; // <-- how do we handle only having one of these?\n\n #dynamicComponentService: SkyDynamicComponentService;\n #environmentInjector = inject(EnvironmentInjector);\n\n constructor(dynamicComponentService: SkyDynamicComponentService) {\n this.#dynamicComponentService = dynamicComponentService;\n }\n\n /**\n * @internal\n * Removes the modal host from the DOM.\n */\n public dispose(): void {\n if (SkyModalService.host) {\n this.#dynamicComponentService.removeComponent(SkyModalService.host);\n SkyModalService.host = undefined;\n }\n }\n\n /**\n * Opens a modal using the specified component.\n * @param component Determines the component to render.\n * @param {SkyModalConfigurationInterface} config Specifies configuration options for the modal.\n */\n public open(\n component: any,\n config?: SkyModalConfigurationInterface | any[],\n ): SkyModalInstance {\n const modalInstance = new SkyModalInstance();\n\n if (!SkyModalService.host) {\n SkyModalService.host = this.#createHostComponent();\n }\n\n const params = this.#getConfigFromParameter(config);\n\n params.providers ||= [];\n params.providers.push({\n provide: SkyModalInstance,\n useValue: modalInstance,\n });\n\n if (SkyModalService.host) {\n SkyModalService.host.instance.open(\n modalInstance,\n component,\n params,\n this.#environmentInjector,\n );\n }\n\n return modalInstance;\n }\n\n #getConfigFromParameter(\n providersOrConfig: any,\n ): SkyModalConfigurationInterface {\n const defaultParams: SkyModalConfigurationInterface = {\n providers: [],\n fullPage: false,\n size: 'medium',\n tiledBody: false,\n };\n let params: SkyModalConfigurationInterface = {};\n let method: any = undefined;\n\n // Object Literal Lookup for backwards compatibility.\n method = {\n 'providers?': Object.assign({}, defaultParams, {\n providers: providersOrConfig,\n }),\n config: Object.assign({}, defaultParams, providersOrConfig),\n };\n\n if (Array.isArray(providersOrConfig) === true) {\n params = method['providers?'];\n } else {\n params = method['config'];\n }\n\n return params;\n }\n\n #createHostComponent(): ComponentRef<SkyModalHostComponent> {\n const componentRef = this.#dynamicComponentService.createComponent(\n SkyModalHostComponent,\n {\n environmentInjector: this.#environmentInjector,\n providers: [\n {\n provide: SkyModalHostContext,\n useValue: new SkyModalHostContext({\n teardownCallback: (): void => {\n this.dispose();\n },\n }),\n },\n ],\n },\n );\n\n return componentRef;\n }\n}\n\n/**\n * A service that launches modals.\n * @internal\n * @deprecated Use `SkyModalService` to open a standalone component instead.\n */\n@Injectable({\n // Must be 'any' so that the modal component is created in the context of its module's injector.\n // If set to 'root', the component's dependency injections would only be derived from the root\n // injector and may lose context if the modal was opened from within a lazy-loaded module.\n providedIn: 'any',\n})\nexport class SkyModalLegacyService extends SkyModalService {\n /* istanbul ignore next */\n constructor(dynamicComponentSvc: SkyDynamicComponentLegacyService) {\n super(dynamicComponentSvc);\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { SkyModalService } from '../modal/modal.service';\n\nimport { SkyConfirmConfig } from './confirm-config';\nimport { SKY_CONFIRM_CONFIG } from './confirm-config-token';\nimport { SkyConfirmInstance } from './confirm-instance';\nimport { SkyConfirmServiceInterface } from './confirm-service-interface';\nimport { SkyConfirmComponent } from './confirm.component';\n\n/**\n * Launches a dialog.\n */\n@Injectable({\n providedIn: 'root',\n})\nexport class SkyConfirmService implements SkyConfirmServiceInterface {\n #modalService: SkyModalService;\n\n constructor(modalService: SkyModalService) {\n this.#modalService = modalService;\n }\n\n /**\n * Opens a dialog using the specified options.\n * @param config Specifies configuration options for the dialog.\n */\n public open(config: SkyConfirmConfig): SkyConfirmInstance {\n const confirmInstance = new SkyConfirmInstance();\n\n this.#modalService.open(SkyConfirmComponent, {\n providers: [\n {\n provide: SKY_CONFIRM_CONFIG,\n useValue: config,\n },\n {\n provide: SkyConfirmInstance,\n useValue: confirmInstance,\n },\n ],\n });\n\n return confirmInstance;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { Component, ViewEncapsulation, inject } from '@angular/core';\nimport { SkyResponsiveHostDirective } from '@skyux/core';\nimport { SkyStatusIndicatorModule } from '@skyux/indicators';\n\nimport { SkyModalErrorsService } from './modal-errors.service';\n\n/**\n * Specifies content to display in the modal's footer.\n */\n@Component({\n hostDirectives: [SkyResponsiveHostDirective],\n selector: 'sky-modal-footer',\n templateUrl: './modal-footer.component.html',\n styleUrls: ['./modal-footer.component.scss'],\n encapsulation: ViewEncapsulation.None,\n imports: [CommonModule, SkyStatusIndicatorModule],\n})\nexport class SkyModalFooterComponent {\n protected readonly errorsSvc = inject(SkyModalErrorsService);\n}\n","<div class=\"sky-modal-footer-container\">\n <div aria-live=\"polite\">\n @if (errorsSvc.formErrors | async; as formErrors) {\n @if (formErrors.length > 0) {\n <div\n class=\"sky-modal-footer-errors sky-margin-stacked-lg sky-errors-overflow\"\n tabindex=\"0\"\n >\n @for (formError of formErrors; track formError.message) {\n <sky-status-indicator\n descriptionType=\"error\"\n indicatorType=\"danger\"\n [ngClass]=\"{\n 'sky-margin-stacked-sm':\n formErrors.indexOf(formError) < formErrors.length - 1,\n 'footer-error': true\n }\"\n >\n {{ formError.message }}\n </sky-status-indicator>\n }\n </div>\n }\n }\n </div>\n <ng-content />\n</div>\n","import {\n Directive,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n inject,\n} from '@angular/core';\nimport { SkyLibResourcesService } from '@skyux/i18n';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyConfirmType } from '../confirm/confirm-type';\nimport { SkyConfirmService } from '../confirm/confirm.service';\n\nimport { SkyModalBeforeCloseHandler } from './modal-before-close-handler';\nimport { SkyModalInstance } from './modal-instance';\n\n/**\n * Provides a way to mark a modal as \"dirty\" and displays a confirmation\n * message when a user closes the modal without saving.\n */\n@Directive({\n standalone: true,\n // Since this is limited to sky-modal, it should be safe to\n // leave off the sky prefix.\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: 'sky-modal[isDirty]',\n})\nexport class SkyModalIsDirtyDirective implements OnInit, OnDestroy {\n /**\n * Whether the user edited an input on the modal.\n * @required\n */\n @Input()\n // This attribute is being applied to the host to support\n // unit testing this feature.\n @HostBinding('attr.data-sky-modal-is-dirty')\n public isDirty = false;\n\n readonly #ngUnsubscribe = new Subject<void>();\n\n readonly #modalInstance = inject(SkyModalInstance);\n readonly #confirmSvc = inject(SkyConfirmService);\n readonly #resourcesSvc = inject(SkyLibResourcesService);\n\n public ngOnInit(): void {\n this.#modalInstance.beforeClose\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((handler) => this.#promptIfDirty(handler));\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n #promptIfDirty(handler: SkyModalBeforeCloseHandler): void {\n if (\n this.isDirty &&\n (handler.closeArgs.reason === 'close' ||\n handler.closeArgs.reason === 'cancel')\n ) {\n this.#resourcesSvc\n .getStrings({\n message: 'skyux_modal_dirty_default_message',\n discardActionText: 'skyux_modal_dirty_default_discard_changes_text',\n keepActionText: 'skyux_modal_dirty_default_keep_working_text',\n })\n .subscribe((textValues) => {\n const discardAction = 'discard';\n const keepAction = 'keep';\n\n this.#confirmSvc\n .open({\n message: textValues.message,\n buttons: [\n {\n action: discardAction,\n text: textValues.discardActionText,\n styleType: 'primary',\n },\n {\n action: keepAction,\n text: textValues.keepActionText,\n styleType: 'link',\n },\n ],\n type: SkyConfirmType.Custom,\n })\n .closed.subscribe((args) => {\n if (args.action === discardAction) {\n handler.closeModal();\n }\n });\n });\n } else {\n handler.closeModal();\n }\n }\n}\n","import { NgModule } from '@angular/core';\n\nimport { SkyModalContentComponent } from './modal-content.component';\nimport { SkyModalFooterComponent } from './modal-footer.component';\nimport { SkyModalHeaderComponent } from './modal-header.component';\nimport { SkyModalIsDirtyDirective } from './modal-is-dirty.directive';\nimport { SkyModalComponent } from './modal.component';\n\n@NgModule({\n imports: [\n SkyModalComponent,\n SkyModalContentComponent,\n SkyModalFooterComponent,\n SkyModalHeaderComponent,\n SkyModalIsDirtyDirective,\n ],\n exports: [\n SkyModalComponent,\n SkyModalContentComponent,\n SkyModalFooterComponent,\n SkyModalHeaderComponent,\n SkyModalIsDirtyDirective,\n ],\n})\nexport class SkyModalModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1","i4","i2","i3","i1.SkyModalService"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skyux/modals",
3
- "version": "12.28.1",
3
+ "version": "12.30.0",
4
4
  "author": "Blackbaud, Inc.",
5
5
  "keywords": [
6
6
  "blackbaud",
@@ -20,12 +20,12 @@
20
20
  "@angular/common": "^19.2.14",
21
21
  "@angular/core": "^19.2.14",
22
22
  "@angular/router": "^19.2.14",
23
- "@skyux/core": "12.28.1",
24
- "@skyux/help-inline": "12.28.1",
25
- "@skyux/i18n": "12.28.1",
26
- "@skyux/icon": "12.28.1",
27
- "@skyux/indicators": "12.28.1",
28
- "@skyux/theme": "12.28.1"
23
+ "@skyux/core": "12.30.0",
24
+ "@skyux/help-inline": "12.30.0",
25
+ "@skyux/i18n": "12.30.0",
26
+ "@skyux/icon": "12.30.0",
27
+ "@skyux/indicators": "12.30.0",
28
+ "@skyux/theme": "12.30.0"
29
29
  },
30
30
  "dependencies": {
31
31
  "tslib": "^2.8.1"