@skyux/layout
Version:
This library was generated with [Nx](https://nx.dev).
285 lines (279 loc) • 303 kB
JavaScript
import * as i5 from '@angular/cdk/observers';
import { ObserversModule } from '@angular/cdk/observers';
import * as i1 from '@angular/common';
import { CommonModule, DOCUMENT } from '@angular/common';
import * as i0 from '@angular/core';
import { Injectable, EventEmitter, Output, Input, HostBinding, SkipSelf, ViewEncapsulation, Component, ElementRef, HostListener, ViewChild, ContentChildren, Optional, inject, computed, NgModule, ChangeDetectionStrategy, Directive, InjectionToken, numberAttribute, booleanAttribute, ContentChild, TemplateRef, Inject, contentChildren, effect } from '@angular/core';
import * as i2 from '@angular/router';
import { RouterModule } from '@angular/router';
import * as i3 from '@skyux/router';
import { SkyHrefModule } from '@skyux/router';
import * as i2$1 from '@skyux/theme';
import { SkyThemeComponentClassDirective, SkyThemeModule } from '@skyux/theme';
import { Subject, BehaviorSubject, forkJoin } from 'rxjs';
import { takeUntil, take } from 'rxjs/operators';
import * as i1$1 from '@skyux/core';
import { SkyMediaQueryService, SkyContentInfoProvider, SkyLogService, SkyIdService, SkyTrimModule, SkyCoreAdapterService, SkyIdModule } from '@skyux/core';
import { toSignal } from '@angular/core/rxjs-interop';
import * as i1$2 from '@skyux/icon';
import { SkyIconModule } from '@skyux/icon';
import * as i1$3 from '@skyux/i18n';
import { SkyLibResourcesService, SkyI18nModule } from '@skyux/i18n';
import * as i1$4 from '@skyux/help-inline';
import { SkyHelpInlineModule } from '@skyux/help-inline';
import * as i3$1 from '@angular/forms';
import { FormsModule } from '@angular/forms';
import * as i4 from '@skyux/forms';
import { SkyCheckboxModule } from '@skyux/forms';
import * as i2$2 from '@skyux/indicators';
import { SkyWaitModule } from '@skyux/indicators';
import { trigger, transition, style, query, group, animate, state } from '@angular/animations';
import * as i1$5 from '@skyux/modals';
import { SkyModalModule } from '@skyux/modals';
const RESPONSIVE_CLASS_SM = 'sky-action-button-container-sm';
const RESPONSIVE_CLASS_MD = 'sky-action-button-container-md';
const RESPONSIVE_CLASS_LG = 'sky-action-button-container-lg';
const BREAKPOINT_MD = 912;
const BREAKPOINT_LG = 1378;
/**
* @internal
*/
class SkyActionButtonAdapterService {
#renderer;
constructor(rendererFactory) {
this.#renderer = rendererFactory.createRenderer(undefined, null);
}
getParentWidth(element) {
return element.nativeElement.parentElement?.getBoundingClientRect().width;
}
setResponsiveClass(element, width = 0) {
const el = element.nativeElement;
const className = this.#getResponsiveClassName(width);
this.#renderer.removeClass(el, RESPONSIVE_CLASS_SM);
this.#renderer.removeClass(el, RESPONSIVE_CLASS_MD);
this.#renderer.removeClass(el, RESPONSIVE_CLASS_LG);
this.#renderer.addClass(el, className);
}
#getResponsiveClassName(width) {
if (width < BREAKPOINT_MD) {
return RESPONSIVE_CLASS_SM;
}
else if (width >= BREAKPOINT_MD && width < BREAKPOINT_LG) {
return RESPONSIVE_CLASS_MD;
}
else {
return RESPONSIVE_CLASS_LG;
}
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkyActionButtonAdapterService, deps: [{ token: i0.RendererFactory2 }], target: i0.ɵɵFactoryTarget.Injectable }); }
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkyActionButtonAdapterService }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkyActionButtonAdapterService, decorators: [{
type: Injectable
}], ctorParameters: () => [{ type: i0.RendererFactory2 }] });
/**
* Creates a button to present users with an option to move forward with tasks.
*/
class SkyActionButtonComponent {
#changeDetector;
constructor(changeDetector) {
this.hidden = false;
/**
* Fires when users select the action button.
*/
this.actionClick = new EventEmitter();
this.#changeDetector = changeDetector;
}
buttonClicked() {
this.actionClick.emit();
}
enterPress() {
this.actionClick.emit();
}
onSkyHrefDisplayChange($event) {
if (this.hidden === $event.userHasAccess) {
setTimeout(() => {
this.hidden = !$event.userHasAccess;
this.#changeDetector.markForCheck();
});
}
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkyActionButtonComponent, deps: [{ token: i0.ChangeDetectorRef, skipSelf: true }], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.1", type: SkyActionButtonComponent, isStandalone: false, selector: "sky-action-button", inputs: { permalink: "permalink" }, outputs: { actionClick: "actionClick" }, host: { properties: { "hidden": "this.hidden" } }, ngImport: i0, template: "@if (!!permalink?.route?.commands) {\n <a\n class=\"sky-action-button sky-btn-default sky-rounded-corners\"\n tabindex=\"0\"\n [fragment]=\"permalink?.route?.extras?.fragment\"\n [skyThemeClass]=\"{\n 'sky-btn sky-box': 'modern'\n }\"\n [queryParams]=\"permalink?.route?.extras?.queryParams\"\n [queryParamsHandling]=\"permalink?.route?.extras?.queryParamsHandling\"\n [routerLink]=\"permalink?.route?.commands\"\n >\n <ng-container *ngTemplateOutlet=\"actionButtonContent\" />\n </a>\n} @else if (!permalink?.route && permalink?.url) {\n @if (\n !permalink?.url?.includes('://') || permalink?.url?.startsWith('https://')\n ) {\n <a\n class=\"sky-action-button sky-btn-default sky-rounded-corners\"\n tabindex=\"0\"\n [href]=\"permalink?.url\"\n [skyThemeClass]=\"{\n 'sky-btn sky-box': 'modern'\n }\"\n >\n <ng-container *ngTemplateOutlet=\"actionButtonContent\" />\n </a>\n } @else {\n <a\n class=\"sky-action-button sky-btn-default sky-rounded-corners\"\n tabindex=\"0\"\n [skyHref]=\"permalink?.url\"\n [skyThemeClass]=\"{\n 'sky-btn sky-box': 'modern'\n }\"\n (skyHrefChange)=\"onSkyHrefDisplayChange($event)\"\n >\n <ng-container *ngTemplateOutlet=\"actionButtonContent\" />\n </a>\n }\n} @else {\n <div\n class=\"sky-action-button sky-btn-default sky-rounded-corners\"\n tabindex=\"0\"\n role=\"button\"\n [skyThemeClass]=\"{\n 'sky-btn sky-box': 'modern'\n }\"\n (click)=\"buttonClicked()\"\n (keydown.enter)=\"enterPress()\"\n >\n <ng-container *ngTemplateOutlet=\"actionButtonContent\" />\n </div>\n}\n\n<ng-template #actionButtonContent>\n <ng-container *skyThemeIf=\"'default'\">\n <div class=\"sky-action-button-icon-header-container\">\n <ng-container *ngTemplateOutlet=\"icon\" />\n <ng-container *ngTemplateOutlet=\"header\" />\n </div>\n <ng-container *ngTemplateOutlet=\"details\" />\n </ng-container>\n\n <ng-container *skyThemeIf=\"'modern'\">\n <ng-container *ngTemplateOutlet=\"icon\" />\n <div class=\"sky-action-button-content\">\n <ng-container *ngTemplateOutlet=\"header\" />\n <div\n class=\"sky-action-button-details\"\n [skyThemeClass]=\"{\n 'sky-font-deemphasized': 'modern'\n }\"\n >\n <ng-container *ngTemplateOutlet=\"details\" />\n </div>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #icon>\n <ng-content select=\"sky-action-button-icon\" />\n</ng-template>\n\n<ng-template #header>\n <ng-content select=\"sky-action-button-header\" />\n</ng-template>\n\n<ng-template #details>\n <ng-content select=\"sky-action-button-details\" />\n</ng-template>\n", styles: [".sky-action-button:not(.sky-theme-modern *){--sky-action-button-padding: 20px 20px 30px;--sky-action-button-max-width: none;--sky-action-button-margin-bottom: 20px;--sky-action-button-icon-header-container-flex-direction: unset;border-top:1px solid #cdcfd2;border-bottom:1px solid #cdcfd2;border-left:1px solid #cdcfd2;border-right:1px solid #cdcfd2;cursor:pointer;text-align:center;text-decoration:none!important;display:block;padding:var(--sky-action-button-padding);max-width:var(--sky-action-button-max-width)}.sky-action-button:not(.sky-theme-modern *):hover{border-color:#c2c4c6}.sky-action-button:not(.sky-theme-modern *) .sky-action-button-icon-header-container{display:flex;flex-direction:var(--sky-action-button-icon-header-container-flex-direction);justify-content:center;margin-bottom:var(--sky-action-button-margin-bottom)}.sky-responsive-container-xs .sky-action-button:not(.sky-theme-modern *),.sky-responsive-container-sm .sky-action-button:not(.sky-theme-modern *),.sky-responsive-container-md .sky-action-button:not(.sky-theme-modern *),.sky-responsive-container-lg .sky-action-button:not(.sky-theme-modern *){--sky-action-button-padding: 20px 20px 30px;--sky-action-button-max-width: none;--sky-action-button-margin-bottom: 20px;--sky-action-button-icon-header-container-flex-direction: unset;border-top:1px solid #cdcfd2;border-bottom:1px solid #cdcfd2;border-left:1px solid #cdcfd2;border-right:1px solid #cdcfd2;cursor:pointer;text-align:center;text-decoration:none!important;display:block;padding:var(--sky-action-button-padding);max-width:var(--sky-action-button-max-width)}.sky-responsive-container-xs .sky-action-button:not(.sky-theme-modern *):hover,.sky-responsive-container-sm .sky-action-button:not(.sky-theme-modern *):hover,.sky-responsive-container-md .sky-action-button:not(.sky-theme-modern *):hover,.sky-responsive-container-lg .sky-action-button:not(.sky-theme-modern *):hover{border-color:#c2c4c6}.sky-responsive-container-xs .sky-action-button:not(.sky-theme-modern *) .sky-action-button-icon-header-container,.sky-responsive-container-sm .sky-action-button:not(.sky-theme-modern *) .sky-action-button-icon-header-container,.sky-responsive-container-md .sky-action-button:not(.sky-theme-modern *) .sky-action-button-icon-header-container,.sky-responsive-container-lg .sky-action-button:not(.sky-theme-modern *) .sky-action-button-icon-header-container{display:flex;flex-direction:var(--sky-action-button-icon-header-container-flex-direction);justify-content:center;margin-bottom:var(--sky-action-button-margin-bottom)}@media (min-width: 768px){.sky-action-button:not(.sky-theme-modern *){--sky-action-button-padding: 30px 20px;--sky-action-button-max-width: 236px;--sky-action-button-margin-bottom: 0;--sky-action-button-icon-header-container-flex-direction: column}}.sky-responsive-container-sm .sky-action-button:not(.sky-theme-modern *),.sky-responsive-container-md .sky-action-button:not(.sky-theme-modern *),.sky-responsive-container-lg .sky-action-button:not(.sky-theme-modern *){--sky-action-button-padding: 30px 20px;--sky-action-button-max-width: 236px;--sky-action-button-margin-bottom: 0;--sky-action-button-icon-header-container-flex-direction: column}\n", ".sky-theme-modern .sky-action-button{--sky-action-button-margin-bottom: 20px;--sky-action-button-icon-header-container-flex-direction: unset;cursor:pointer;text-decoration:none!important;max-width:446px;display:flex;flex-flow:row nowrap;padding:30px;text-align:left;border:none;margin:0}.sky-theme-modern .sky-action-button:hover{border-color:#c2c4c6}.sky-theme-modern .sky-action-button .sky-action-button-content{flex:1 1 auto;margin:0 10px 0 0;white-space:initial}.sky-theme-modern .sky-action-button .sky-action-button-icon-header-container{display:flex;flex-direction:var(--sky-action-button-icon-header-container-flex-direction);justify-content:center;margin-bottom:var(--sky-action-button-margin-bottom)}.sky-responsive-container-xs .sky-theme-modern .sky-action-button,.sky-responsive-container-sm .sky-theme-modern .sky-action-button,.sky-responsive-container-md .sky-theme-modern .sky-action-button,.sky-responsive-container-lg .sky-theme-modern .sky-action-button{--sky-action-button-margin-bottom: 20px;--sky-action-button-icon-header-container-flex-direction: unset;cursor:pointer;text-decoration:none!important;max-width:446px;display:flex;flex-flow:row nowrap;padding:30px;text-align:left;border:none;margin:0}.sky-responsive-container-xs .sky-theme-modern .sky-action-button:hover,.sky-responsive-container-sm .sky-theme-modern .sky-action-button:hover,.sky-responsive-container-md .sky-theme-modern .sky-action-button:hover,.sky-responsive-container-lg .sky-theme-modern .sky-action-button:hover{border-color:#c2c4c6}.sky-responsive-container-xs .sky-theme-modern .sky-action-button .sky-action-button-content,.sky-responsive-container-sm .sky-theme-modern .sky-action-button .sky-action-button-content,.sky-responsive-container-md .sky-theme-modern .sky-action-button .sky-action-button-content,.sky-responsive-container-lg .sky-theme-modern .sky-action-button .sky-action-button-content{flex:1 1 auto;margin:0 10px 0 0;white-space:initial}.sky-responsive-container-xs .sky-theme-modern .sky-action-button .sky-action-button-icon-header-container,.sky-responsive-container-sm .sky-theme-modern .sky-action-button .sky-action-button-icon-header-container,.sky-responsive-container-md .sky-theme-modern .sky-action-button .sky-action-button-icon-header-container,.sky-responsive-container-lg .sky-theme-modern .sky-action-button .sky-action-button-icon-header-container{display:flex;flex-direction:var(--sky-action-button-icon-header-container-flex-direction);justify-content:center;margin-bottom:var(--sky-action-button-margin-bottom)}@media (min-width: 768px){.sky-theme-modern .sky-action-button{--sky-action-button-margin-bottom: 0;--sky-action-button-icon-header-container-flex-direction: column}}.sky-responsive-container-sm .sky-theme-modern .sky-action-button,.sky-responsive-container-md .sky-theme-modern .sky-action-button,.sky-responsive-container-lg .sky-theme-modern .sky-action-button{--sky-action-button-margin-bottom: 0;--sky-action-button-icon-header-container-flex-direction: column}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "directive", type: i3.λ1, selector: "[skyHref]", inputs: ["skyHref", "queryParams", "skyHrefElse"], outputs: ["skyHrefChange"] }, { kind: "directive", type: i2$1.λ2, selector: "[skyThemeClass]", inputs: ["class", "skyThemeClass"] }, { kind: "directive", type: i2$1.λ3, selector: "[skyThemeIf]", inputs: ["skyThemeIf"] }], encapsulation: i0.ViewEncapsulation.None }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkyActionButtonComponent, decorators: [{
type: Component,
args: [{ selector: 'sky-action-button', encapsulation: ViewEncapsulation.None, standalone: false, template: "@if (!!permalink?.route?.commands) {\n <a\n class=\"sky-action-button sky-btn-default sky-rounded-corners\"\n tabindex=\"0\"\n [fragment]=\"permalink?.route?.extras?.fragment\"\n [skyThemeClass]=\"{\n 'sky-btn sky-box': 'modern'\n }\"\n [queryParams]=\"permalink?.route?.extras?.queryParams\"\n [queryParamsHandling]=\"permalink?.route?.extras?.queryParamsHandling\"\n [routerLink]=\"permalink?.route?.commands\"\n >\n <ng-container *ngTemplateOutlet=\"actionButtonContent\" />\n </a>\n} @else if (!permalink?.route && permalink?.url) {\n @if (\n !permalink?.url?.includes('://') || permalink?.url?.startsWith('https://')\n ) {\n <a\n class=\"sky-action-button sky-btn-default sky-rounded-corners\"\n tabindex=\"0\"\n [href]=\"permalink?.url\"\n [skyThemeClass]=\"{\n 'sky-btn sky-box': 'modern'\n }\"\n >\n <ng-container *ngTemplateOutlet=\"actionButtonContent\" />\n </a>\n } @else {\n <a\n class=\"sky-action-button sky-btn-default sky-rounded-corners\"\n tabindex=\"0\"\n [skyHref]=\"permalink?.url\"\n [skyThemeClass]=\"{\n 'sky-btn sky-box': 'modern'\n }\"\n (skyHrefChange)=\"onSkyHrefDisplayChange($event)\"\n >\n <ng-container *ngTemplateOutlet=\"actionButtonContent\" />\n </a>\n }\n} @else {\n <div\n class=\"sky-action-button sky-btn-default sky-rounded-corners\"\n tabindex=\"0\"\n role=\"button\"\n [skyThemeClass]=\"{\n 'sky-btn sky-box': 'modern'\n }\"\n (click)=\"buttonClicked()\"\n (keydown.enter)=\"enterPress()\"\n >\n <ng-container *ngTemplateOutlet=\"actionButtonContent\" />\n </div>\n}\n\n<ng-template #actionButtonContent>\n <ng-container *skyThemeIf=\"'default'\">\n <div class=\"sky-action-button-icon-header-container\">\n <ng-container *ngTemplateOutlet=\"icon\" />\n <ng-container *ngTemplateOutlet=\"header\" />\n </div>\n <ng-container *ngTemplateOutlet=\"details\" />\n </ng-container>\n\n <ng-container *skyThemeIf=\"'modern'\">\n <ng-container *ngTemplateOutlet=\"icon\" />\n <div class=\"sky-action-button-content\">\n <ng-container *ngTemplateOutlet=\"header\" />\n <div\n class=\"sky-action-button-details\"\n [skyThemeClass]=\"{\n 'sky-font-deemphasized': 'modern'\n }\"\n >\n <ng-container *ngTemplateOutlet=\"details\" />\n </div>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #icon>\n <ng-content select=\"sky-action-button-icon\" />\n</ng-template>\n\n<ng-template #header>\n <ng-content select=\"sky-action-button-header\" />\n</ng-template>\n\n<ng-template #details>\n <ng-content select=\"sky-action-button-details\" />\n</ng-template>\n", styles: [".sky-action-button:not(.sky-theme-modern *){--sky-action-button-padding: 20px 20px 30px;--sky-action-button-max-width: none;--sky-action-button-margin-bottom: 20px;--sky-action-button-icon-header-container-flex-direction: unset;border-top:1px solid #cdcfd2;border-bottom:1px solid #cdcfd2;border-left:1px solid #cdcfd2;border-right:1px solid #cdcfd2;cursor:pointer;text-align:center;text-decoration:none!important;display:block;padding:var(--sky-action-button-padding);max-width:var(--sky-action-button-max-width)}.sky-action-button:not(.sky-theme-modern *):hover{border-color:#c2c4c6}.sky-action-button:not(.sky-theme-modern *) .sky-action-button-icon-header-container{display:flex;flex-direction:var(--sky-action-button-icon-header-container-flex-direction);justify-content:center;margin-bottom:var(--sky-action-button-margin-bottom)}.sky-responsive-container-xs .sky-action-button:not(.sky-theme-modern *),.sky-responsive-container-sm .sky-action-button:not(.sky-theme-modern *),.sky-responsive-container-md .sky-action-button:not(.sky-theme-modern *),.sky-responsive-container-lg .sky-action-button:not(.sky-theme-modern *){--sky-action-button-padding: 20px 20px 30px;--sky-action-button-max-width: none;--sky-action-button-margin-bottom: 20px;--sky-action-button-icon-header-container-flex-direction: unset;border-top:1px solid #cdcfd2;border-bottom:1px solid #cdcfd2;border-left:1px solid #cdcfd2;border-right:1px solid #cdcfd2;cursor:pointer;text-align:center;text-decoration:none!important;display:block;padding:var(--sky-action-button-padding);max-width:var(--sky-action-button-max-width)}.sky-responsive-container-xs .sky-action-button:not(.sky-theme-modern *):hover,.sky-responsive-container-sm .sky-action-button:not(.sky-theme-modern *):hover,.sky-responsive-container-md .sky-action-button:not(.sky-theme-modern *):hover,.sky-responsive-container-lg .sky-action-button:not(.sky-theme-modern *):hover{border-color:#c2c4c6}.sky-responsive-container-xs .sky-action-button:not(.sky-theme-modern *) .sky-action-button-icon-header-container,.sky-responsive-container-sm .sky-action-button:not(.sky-theme-modern *) .sky-action-button-icon-header-container,.sky-responsive-container-md .sky-action-button:not(.sky-theme-modern *) .sky-action-button-icon-header-container,.sky-responsive-container-lg .sky-action-button:not(.sky-theme-modern *) .sky-action-button-icon-header-container{display:flex;flex-direction:var(--sky-action-button-icon-header-container-flex-direction);justify-content:center;margin-bottom:var(--sky-action-button-margin-bottom)}@media (min-width: 768px){.sky-action-button:not(.sky-theme-modern *){--sky-action-button-padding: 30px 20px;--sky-action-button-max-width: 236px;--sky-action-button-margin-bottom: 0;--sky-action-button-icon-header-container-flex-direction: column}}.sky-responsive-container-sm .sky-action-button:not(.sky-theme-modern *),.sky-responsive-container-md .sky-action-button:not(.sky-theme-modern *),.sky-responsive-container-lg .sky-action-button:not(.sky-theme-modern *){--sky-action-button-padding: 30px 20px;--sky-action-button-max-width: 236px;--sky-action-button-margin-bottom: 0;--sky-action-button-icon-header-container-flex-direction: column}\n", ".sky-theme-modern .sky-action-button{--sky-action-button-margin-bottom: 20px;--sky-action-button-icon-header-container-flex-direction: unset;cursor:pointer;text-decoration:none!important;max-width:446px;display:flex;flex-flow:row nowrap;padding:30px;text-align:left;border:none;margin:0}.sky-theme-modern .sky-action-button:hover{border-color:#c2c4c6}.sky-theme-modern .sky-action-button .sky-action-button-content{flex:1 1 auto;margin:0 10px 0 0;white-space:initial}.sky-theme-modern .sky-action-button .sky-action-button-icon-header-container{display:flex;flex-direction:var(--sky-action-button-icon-header-container-flex-direction);justify-content:center;margin-bottom:var(--sky-action-button-margin-bottom)}.sky-responsive-container-xs .sky-theme-modern .sky-action-button,.sky-responsive-container-sm .sky-theme-modern .sky-action-button,.sky-responsive-container-md .sky-theme-modern .sky-action-button,.sky-responsive-container-lg .sky-theme-modern .sky-action-button{--sky-action-button-margin-bottom: 20px;--sky-action-button-icon-header-container-flex-direction: unset;cursor:pointer;text-decoration:none!important;max-width:446px;display:flex;flex-flow:row nowrap;padding:30px;text-align:left;border:none;margin:0}.sky-responsive-container-xs .sky-theme-modern .sky-action-button:hover,.sky-responsive-container-sm .sky-theme-modern .sky-action-button:hover,.sky-responsive-container-md .sky-theme-modern .sky-action-button:hover,.sky-responsive-container-lg .sky-theme-modern .sky-action-button:hover{border-color:#c2c4c6}.sky-responsive-container-xs .sky-theme-modern .sky-action-button .sky-action-button-content,.sky-responsive-container-sm .sky-theme-modern .sky-action-button .sky-action-button-content,.sky-responsive-container-md .sky-theme-modern .sky-action-button .sky-action-button-content,.sky-responsive-container-lg .sky-theme-modern .sky-action-button .sky-action-button-content{flex:1 1 auto;margin:0 10px 0 0;white-space:initial}.sky-responsive-container-xs .sky-theme-modern .sky-action-button .sky-action-button-icon-header-container,.sky-responsive-container-sm .sky-theme-modern .sky-action-button .sky-action-button-icon-header-container,.sky-responsive-container-md .sky-theme-modern .sky-action-button .sky-action-button-icon-header-container,.sky-responsive-container-lg .sky-theme-modern .sky-action-button .sky-action-button-icon-header-container{display:flex;flex-direction:var(--sky-action-button-icon-header-container-flex-direction);justify-content:center;margin-bottom:var(--sky-action-button-margin-bottom)}@media (min-width: 768px){.sky-theme-modern .sky-action-button{--sky-action-button-margin-bottom: 0;--sky-action-button-icon-header-container-flex-direction: column}}.sky-responsive-container-sm .sky-theme-modern .sky-action-button,.sky-responsive-container-md .sky-theme-modern .sky-action-button,.sky-responsive-container-lg .sky-theme-modern .sky-action-button{--sky-action-button-margin-bottom: 0;--sky-action-button-icon-header-container-flex-direction: column}\n"] }]
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef, decorators: [{
type: SkipSelf
}] }], propDecorators: { hidden: [{
type: HostBinding,
args: ['hidden']
}], permalink: [{
type: Input
}], actionClick: [{
type: Output
}] } });
/**
* Wraps action buttons to ensures that they have consistent height and spacing.
* @required
*/
class SkyActionButtonContainerComponent {
/**
* How to display the action buttons inside the action button container.
* Options are `"center"` or `"left"`.
* @default "center"
*/
set alignItems(value) {
this.#_alignItems = value ?? 'center';
}
get alignItems() {
return this.#_alignItems;
}
#ngUnsubscribe = new Subject();
#syncMaxHeightTimeout;
set #themeName(value) {
this.#_themeName = value;
this.#updateResponsiveClass();
this.#updateHeight();
}
#_alignItems = 'center';
#_themeName;
#viewInitialized = false;
#actionButtonAdapterService;
#changeDetector;
#coreAdapterService;
#hostElRef;
#themeSvc;
constructor(actionButtonAdapterService, changeDetector, coreAdapterService, hostElRef, themeSvc) {
this.#actionButtonAdapterService = actionButtonAdapterService;
this.#changeDetector = changeDetector;
this.#coreAdapterService = coreAdapterService;
this.#hostElRef = hostElRef;
this.#themeSvc = themeSvc;
}
ngOnInit() {
/* istanbul ignore else */
if (this.#themeSvc) {
this.#themeSvc.settingsChange
.pipe(takeUntil(this.#ngUnsubscribe))
.subscribe((themeSettings) => {
this.#themeName = themeSettings.currentSettings.theme.name;
this.#changeDetector.markForCheck();
});
}
// Wait for children components to complete rendering before container width is determined.
setTimeout(() => {
this.#updateResponsiveClass();
});
}
ngAfterViewInit() {
// Watch for dynamic action button changes and recalculate height.
/* istanbul ignore else */
if (this.actionButtons) {
this.actionButtons.changes
.pipe(takeUntil(this.#ngUnsubscribe))
.subscribe(() => {
this.#updateHeight();
});
}
this.#viewInitialized = true;
this.#updateHeight();
}
ngOnDestroy() {
this.#ngUnsubscribe.next();
this.#ngUnsubscribe.complete();
}
onContentChange() {
this.#updateHeight();
}
onWindowResize() {
this.#updateResponsiveClass();
}
#updateHeight(delay = 0) {
const ref = this.containerRef;
if (ref && this.#viewInitialized) {
this.#coreAdapterService.resetHeight(ref, '.sky-action-button');
if (this.#_themeName === 'modern') {
// Wait for children components to complete rendering before height is determined.
clearTimeout(this.#syncMaxHeightTimeout);
this.#syncMaxHeightTimeout = setTimeout(() => {
const selector = '.sky-action-button:not([hidden])';
const button = ref.nativeElement.querySelector(selector);
if (button && button.offsetHeight > 0) {
this.#coreAdapterService.syncMaxHeight(ref, selector);
}
else if (delay < 200) {
// Wait progressively longer between retries.
this.#updateHeight(delay + 50);
}
}, delay);
}
}
}
#updateResponsiveClass() {
if (this.containerRef) {
const parentWidth = this.#actionButtonAdapterService.getParentWidth(this.#hostElRef);
this.#actionButtonAdapterService.setResponsiveClass(this.containerRef, parentWidth);
}
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkyActionButtonContainerComponent, deps: [{ token: SkyActionButtonAdapterService }, { token: i0.ChangeDetectorRef }, { token: i1$1.SkyCoreAdapterService }, { token: i0.ElementRef }, { token: i2$1.SkyThemeService, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.1", type: SkyActionButtonContainerComponent, isStandalone: false, selector: "sky-action-button-container", inputs: { alignItems: "alignItems" }, host: { listeners: { "window:resize": "onWindowResize()" } }, providers: [SkyActionButtonAdapterService], queries: [{ propertyName: "actionButtons", predicate: SkyActionButtonComponent }], viewQueries: [{ propertyName: "containerRef", first: true, predicate: ["container"], descendants: true, read: ElementRef, static: true }], hostDirectives: [{ directive: i2$1.SkyThemeComponentClassDirective }], ngImport: i0, template: "<div #container class=\"sky-action-button-container\">\n <div\n class=\"sky-action-button-flex\"\n [ngClass]=\"{\n 'sky-action-button-flex-align-left': alignItems === 'left',\n 'sky-action-button-flex-align-center': alignItems === 'center'\n }\"\n (cdkObserveContent)=\"onContentChange()\"\n >\n <ng-content />\n </div>\n</div>\n", styles: [":host.sky-cmp-theme-default{display:block}.sky-action-button-container:not(.sky-theme-modern *) .sky-action-button-flex sky-action-button{display:block}.sky-action-button-container:not(.sky-theme-modern *) .sky-action-button-flex .sky-action-button{height:100%;min-width:236px;margin-left:10px;margin-right:10px}.sky-action-button-container:not(.sky-theme-modern *) .sky-action-button-flex{display:block;padding:0;margin:-20px 0}.sky-action-button-container:not(.sky-theme-modern *) .sky-action-button-flex sky-action-button{margin:20px 0}.sky-responsive-container-xs .sky-action-button-container:not(.sky-theme-modern *) .sky-action-button-flex,.sky-responsive-container-sm .sky-action-button-container:not(.sky-theme-modern *) .sky-action-button-flex,.sky-responsive-container-md .sky-action-button-container:not(.sky-theme-modern *) .sky-action-button-flex,.sky-responsive-container-lg .sky-action-button-container:not(.sky-theme-modern *) .sky-action-button-flex{display:block;padding:0;margin:-20px 0}.sky-responsive-container-xs .sky-action-button-container:not(.sky-theme-modern *) .sky-action-button-flex sky-action-button,.sky-responsive-container-sm .sky-action-button-container:not(.sky-theme-modern *) .sky-action-button-flex sky-action-button,.sky-responsive-container-md .sky-action-button-container:not(.sky-theme-modern *) .sky-action-button-flex sky-action-button,.sky-responsive-container-lg .sky-action-button-container:not(.sky-theme-modern *) .sky-action-button-flex sky-action-button{margin:20px 0}@media (min-width: 768px){.sky-action-button-container:not(.sky-theme-modern *) .sky-action-button-flex{display:flex;flex-flow:row wrap;padding:0;margin:-10px 0}.sky-action-button-container:not(.sky-theme-modern *) .sky-action-button-flex.sky-action-button-flex-align-center{justify-content:center}.sky-action-button-container:not(.sky-theme-modern *) .sky-action-button-flex.sky-action-button-flex-align-left{justify-content:flex-start}.sky-action-button-container:not(.sky-theme-modern *) .sky-action-button-flex sky-action-button{margin:10px 0}}.sky-responsive-container-sm .sky-action-button-container:not(.sky-theme-modern *) .sky-action-button-flex,.sky-responsive-container-md .sky-action-button-container:not(.sky-theme-modern *) .sky-action-button-flex,.sky-responsive-container-lg .sky-action-button-container:not(.sky-theme-modern *) .sky-action-button-flex{display:flex;flex-flow:row wrap;padding:0;margin:-10px 0}.sky-responsive-container-sm .sky-action-button-container:not(.sky-theme-modern *) .sky-action-button-flex.sky-action-button-flex-align-center,.sky-responsive-container-md .sky-action-button-container:not(.sky-theme-modern *) .sky-action-button-flex.sky-action-button-flex-align-center,.sky-responsive-container-lg .sky-action-button-container:not(.sky-theme-modern *) .sky-action-button-flex.sky-action-button-flex-align-center{justify-content:center}.sky-responsive-container-sm .sky-action-button-container:not(.sky-theme-modern *) .sky-action-button-flex.sky-action-button-flex-align-left,.sky-responsive-container-md .sky-action-button-container:not(.sky-theme-modern *) .sky-action-button-flex.sky-action-button-flex-align-left,.sky-responsive-container-lg .sky-action-button-container:not(.sky-theme-modern *) .sky-action-button-flex.sky-action-button-flex-align-left{justify-content:flex-start}.sky-responsive-container-sm .sky-action-button-container:not(.sky-theme-modern *) .sky-action-button-flex sky-action-button,.sky-responsive-container-md .sky-action-button-container:not(.sky-theme-modern *) .sky-action-button-flex sky-action-button,.sky-responsive-container-lg .sky-action-button-container:not(.sky-theme-modern *) .sky-action-button-flex sky-action-button{margin:10px 0}\n", ":host-context(.sky-theme-modern) :host.sky-cmp-theme-modern{display:block}.sky-theme-modern .sky-action-button-container{margin:0 auto}.sky-theme-modern .sky-action-button-container.sky-action-button-container-sm{max-width:446px}.sky-theme-modern .sky-action-button-container.sky-action-button-container-md{max-width:912px}.sky-theme-modern .sky-action-button-container.sky-action-button-container-lg{max-width:1378px}.sky-theme-modern .sky-action-button-container .sky-action-button-flex sky-action-button{display:block}.sky-theme-modern .sky-action-button-container .sky-action-button-flex .sky-action-button{height:auto;min-width:auto;margin:0}.sky-theme-modern .sky-action-button-container .sky-action-button-flex{display:flex;flex-flow:row wrap;padding:0;margin:0 0 -20px -20px}.sky-theme-modern .sky-action-button-container .sky-action-button-flex sky-action-button{margin:0 0 20px 20px;flex:0 1 446px}.sky-responsive-container-xs .sky-theme-modern .sky-action-button-container .sky-action-button-flex,.sky-responsive-container-sm .sky-theme-modern .sky-action-button-container .sky-action-button-flex,.sky-responsive-container-md .sky-theme-modern .sky-action-button-container .sky-action-button-flex,.sky-responsive-container-lg .sky-theme-modern .sky-action-button-container .sky-action-button-flex{display:flex;flex-flow:row wrap;padding:0;margin:0 0 -20px -20px}.sky-responsive-container-xs .sky-theme-modern .sky-action-button-container .sky-action-button-flex sky-action-button,.sky-responsive-container-sm .sky-theme-modern .sky-action-button-container .sky-action-button-flex sky-action-button,.sky-responsive-container-md .sky-theme-modern .sky-action-button-container .sky-action-button-flex sky-action-button,.sky-responsive-container-lg .sky-theme-modern .sky-action-button-container .sky-action-button-flex sky-action-button{margin:0 0 20px 20px;flex:0 1 446px}@media (min-width: 768px){.sky-theme-modern .sky-action-button-container .sky-action-button-flex.sky-action-button-flex-align-center{justify-content:center}.sky-theme-modern .sky-action-button-container .sky-action-button-flex.sky-action-button-flex-align-left{justify-content:flex-start}}.sky-responsive-container-sm .sky-theme-modern .sky-action-button-container .sky-action-button-flex.sky-action-button-flex-align-center,.sky-responsive-container-md .sky-theme-modern .sky-action-button-container .sky-action-button-flex.sky-action-button-flex-align-center,.sky-responsive-container-lg .sky-theme-modern .sky-action-button-container .sky-action-button-flex.sky-action-button-flex-align-center{justify-content:center}.sky-responsive-container-sm .sky-theme-modern .sky-action-button-container .sky-action-button-flex.sky-action-button-flex-align-left,.sky-responsive-container-md .sky-theme-modern .sky-action-button-container .sky-action-button-flex.sky-action-button-flex-align-left,.sky-responsive-container-lg .sky-theme-modern .sky-action-button-container .sky-action-button-flex.sky-action-button-flex-align-left{justify-content:flex-start}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.CdkObserveContent, selector: "[cdkObserveContent]", inputs: ["cdkObserveContentDisabled", "debounce"], outputs: ["cdkObserveContent"], exportAs: ["cdkObserveContent"] }], encapsulation: i0.ViewEncapsulation.None }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkyActionButtonContainerComponent, decorators: [{
type: Component,
args: [{ selector: 'sky-action-button-container', providers: [SkyActionButtonAdapterService], encapsulation: ViewEncapsulation.None, hostDirectives: [SkyThemeComponentClassDirective], standalone: false, template: "<div #container class=\"sky-action-button-container\">\n <div\n class=\"sky-action-button-flex\"\n [ngClass]=\"{\n 'sky-action-button-flex-align-left': alignItems === 'left',\n 'sky-action-button-flex-align-center': alignItems === 'center'\n }\"\n (cdkObserveContent)=\"onContentChange()\"\n >\n <ng-content />\n </div>\n</div>\n", styles: [":host.sky-cmp-theme-default{display:block}.sky-action-button-container:not(.sky-theme-modern *) .sky-action-button-flex sky-action-button{display:block}.sky-action-button-container:not(.sky-theme-modern *) .sky-action-button-flex .sky-action-button{height:100%;min-width:236px;margin-left:10px;margin-right:10px}.sky-action-button-container:not(.sky-theme-modern *) .sky-action-button-flex{display:block;padding:0;margin:-20px 0}.sky-action-button-container:not(.sky-theme-modern *) .sky-action-button-flex sky-action-button{margin:20px 0}.sky-responsive-container-xs .sky-action-button-container:not(.sky-theme-modern *) .sky-action-button-flex,.sky-responsive-container-sm .sky-action-button-container:not(.sky-theme-modern *) .sky-action-button-flex,.sky-responsive-container-md .sky-action-button-container:not(.sky-theme-modern *) .sky-action-button-flex,.sky-responsive-container-lg .sky-action-button-container:not(.sky-theme-modern *) .sky-action-button-flex{display:block;padding:0;margin:-20px 0}.sky-responsive-container-xs .sky-action-button-container:not(.sky-theme-modern *) .sky-action-button-flex sky-action-button,.sky-responsive-container-sm .sky-action-button-container:not(.sky-theme-modern *) .sky-action-button-flex sky-action-button,.sky-responsive-container-md .sky-action-button-container:not(.sky-theme-modern *) .sky-action-button-flex sky-action-button,.sky-responsive-container-lg .sky-action-button-container:not(.sky-theme-modern *) .sky-action-button-flex sky-action-button{margin:20px 0}@media (min-width: 768px){.sky-action-button-container:not(.sky-theme-modern *) .sky-action-button-flex{display:flex;flex-flow:row wrap;padding:0;margin:-10px 0}.sky-action-button-container:not(.sky-theme-modern *) .sky-action-button-flex.sky-action-button-flex-align-center{justify-content:center}.sky-action-button-container:not(.sky-theme-modern *) .sky-action-button-flex.sky-action-button-flex-align-left{justify-content:flex-start}.sky-action-button-container:not(.sky-theme-modern *) .sky-action-button-flex sky-action-button{margin:10px 0}}.sky-responsive-container-sm .sky-action-button-container:not(.sky-theme-modern *) .sky-action-button-flex,.sky-responsive-container-md .sky-action-button-container:not(.sky-theme-modern *) .sky-action-button-flex,.sky-responsive-container-lg .sky-action-button-container:not(.sky-theme-modern *) .sky-action-button-flex{display:flex;flex-flow:row wrap;padding:0;margin:-10px 0}.sky-responsive-container-sm .sky-action-button-container:not(.sky-theme-modern *) .sky-action-button-flex.sky-action-button-flex-align-center,.sky-responsive-container-md .sky-action-button-container:not(.sky-theme-modern *) .sky-action-button-flex.sky-action-button-flex-align-center,.sky-responsive-container-lg .sky-action-button-container:not(.sky-theme-modern *) .sky-action-button-flex.sky-action-button-flex-align-center{justify-content:center}.sky-responsive-container-sm .sky-action-button-container:not(.sky-theme-modern *) .sky-action-button-flex.sky-action-button-flex-align-left,.sky-responsive-container-md .sky-action-button-container:not(.sky-theme-modern *) .sky-action-button-flex.sky-action-button-flex-align-left,.sky-responsive-container-lg .sky-action-button-container:not(.sky-theme-modern *) .sky-action-button-flex.sky-action-button-flex-align-left{justify-content:flex-start}.sky-responsive-container-sm .sky-action-button-container:not(.sky-theme-modern *) .sky-action-button-flex sky-action-button,.sky-responsive-container-md .sky-action-button-container:not(.sky-theme-modern *) .sky-action-button-flex sky-action-button,.sky-responsive-container-lg .sky-action-button-container:not(.sky-theme-modern *) .sky-action-button-flex sky-action-button{margin:10px 0}\n", ":host-context(.sky-theme-modern) :host.sky-cmp-theme-modern{display:block}.sky-theme-modern .sky-action-button-container{margin:0 auto}.sky-theme-modern .sky-action-button-container.sky-action-button-container-sm{max-width:446px}.sky-theme-modern .sky-action-button-container.sky-action-button-container-md{max-width:912px}.sky-theme-modern .sky-action-button-container.sky-action-button-container-lg{max-width:1378px}.sky-theme-modern .sky-action-button-container .sky-action-button-flex sky-action-button{display:block}.sky-theme-modern .sky-action-button-container .sky-action-button-flex .sky-action-button{height:auto;min-width:auto;margin:0}.sky-theme-modern .sky-action-button-container .sky-action-button-flex{display:flex;flex-flow:row wrap;padding:0;margin:0 0 -20px -20px}.sky-theme-modern .sky-action-button-container .sky-action-button-flex sky-action-button{margin:0 0 20px 20px;flex:0 1 446px}.sky-responsive-container-xs .sky-theme-modern .sky-action-button-container .sky-action-button-flex,.sky-responsive-container-sm .sky-theme-modern .sky-action-button-container .sky-action-button-flex,.sky-responsive-container-md .sky-theme-modern .sky-action-button-container .sky-action-button-flex,.sky-responsive-container-lg .sky-theme-modern .sky-action-button-container .sky-action-button-flex{display:flex;flex-flow:row wrap;padding:0;margin:0 0 -20px -20px}.sky-responsive-container-xs .sky-theme-modern .sky-action-button-container .sky-action-button-flex sky-action-button,.sky-responsive-container-sm .sky-theme-modern .sky-action-button-container .sky-action-button-flex sky-action-button,.sky-responsive-container-md .sky-theme-modern .sky-action-button-container .sky-action-button-flex sky-action-button,.sky-responsive-container-lg .sky-theme-modern .sky-action-button-container .sky-action-button-flex sky-action-button{margin:0 0 20px 20px;flex:0 1 446px}@media (min-width: 768px){.sky-theme-modern .sky-action-button-container .sky-action-button-flex.sky-action-button-flex-align-center{justify-content:center}.sky-theme-modern .sky-action-button-container .sky-action-button-flex.sky-action-button-flex-align-left{justify-content:flex-start}}.sky-responsive-container-sm .sky-theme-modern .sky-action-button-container .sky-action-button-flex.sky-action-button-flex-align-center,.sky-responsive-container-md .sky-theme-modern .sky-action-button-container .sky-action-button-flex.sky-action-button-flex-align-center,.sky-responsive-container-lg .sky-theme-modern .sky-action-button-container .sky-action-button-flex.sky-action-button-flex-align-center{justify-content:center}.sky-responsive-container-sm .sky-theme-modern .sky-action-button-container .sky-action-button-flex.sky-action-button-flex-align-left,.sky-responsive-container-md .sky-theme-modern .sky-action-button-container .sky-action-button-flex.sky-action-button-flex-align-left,.sky-responsive-container-lg .sky-theme-modern .sky-action-button-container .sky-action-button-flex.sky-action-button-flex-align-left{justify-content:flex-start}\n"] }]
}], ctorParameters: () => [{ type: SkyActionButtonAdapterService }, { type: i0.ChangeDetectorRef }, { type: i1$1.SkyCoreAdapterService }, { type: i0.ElementRef }, { type: i2$1.SkyThemeService, decorators: [{
type: Optional
}] }], propDecorators: { alignItems: [{
type: Input
}], actionButtons: [{
type: ContentChildren,
args: [SkyActionButtonComponent]
}], containerRef: [{
type: ViewChild,
args: ['container', {
read: ElementRef,
static: true,
}]
}], onWindowResize: [{
type: HostListener,
args: ['window:resize']
}] } });
/**
* Specifies a description to display on an action button.
*/
class SkyActionButtonDetailsComponent {
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkyActionButtonDetailsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.1", type: SkyActionButtonDetailsComponent, isStandalone: false, selector: "sky-action-button-details", ngImport: i0, template: "<ng-content />\n" }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkyActionButtonDetailsComponent, decorators: [{
type: Component,
args: [{ selector: 'sky-action-button-details', standalone: false, template: "<ng-content />\n" }]
}] });
/**
* Specifies a header to display on an action button.
*/
class SkyActionButtonHeaderComponent {
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkyActionButtonHeaderComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.1", type: SkyActionButtonHeaderComponent, isStandalone: false, selector: "sky-action-button-header", hostDirectives: [{ directive: i2$1.SkyThemeComponentClassDirective }], ngImport: i0, template: "<div\n class=\"sky-action-button-header\"\n [skyThemeClass]=\"{\n 'sky-font-display-3': 'modern',\n 'sky-font-heading-2': 'default'\n }\"\n>\n <ng-content />\n</div>\n", styles: [":host .sky-action-button-header:not(.sky-theme-modern *){margin:0 5px}:host-context(.sky-responsive-container-xs) .sky-action-button-header:not(.sky-theme-modern *),:host-context(.sky-responsive-container-sm) .sky-action-button-header:not(.sky-theme-modern *),:host-context(.sky-responsive-container-md) .sky-action-button-header:not(.sky-theme-modern *),:host-context(.sky-responsive-container-lg) .sky-action-button-header:not(.sky-theme-modern *){margin:0 5px}@media (min-width: 768px){:host .sky-action-button-header:not(.sky-theme-modern *){margin:0 0 20px}}:host-context(.sky-responsive-container-sm) .sky-action-button-header:not(.sky-theme-modern *),:host-context(.sky-responsive-container-md) .sky-action-button-header:not(.sky-theme-modern *),:host-context(.sky-responsive-container-lg) .sky-action-button-header:not(.sky-theme-modern *){margin:0 0 20px}\n", ":host-context(.sky-theme-modern) .sky-action-button-header{margin:0 0 10px}\n"], dependencies: [{ kind: "directive", type: i2$1.λ2, selector: "[skyThemeClass]", inputs: ["class", "skyThemeClass"] }] }); }
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkyActionButtonHeaderComponent, decorators: [{
type: Component,
args: [{ selector: 'sky-action-button-header', hostDirectives: [SkyThemeComponentClassDirective], standalone: false, template: "<div\n class=\"sky-action-button-header\"\n [skyThemeClass]=\"{\n 'sky-font-display-3': 'modern',\n 'sky-font-heading-2': 'default'\n }\"\n>\n <ng-content />\n</div>\n", styles: [":host .sky-action-button-header:not(.sky-theme-modern *){margin:0 5px}:host-context(.sky-responsive-container-xs) .sky-action-button-header:not(.sky-theme-modern *),:host-context(.sky-responsive-container-sm) .sky-action-button-header:not(.sky-theme-modern *),:host-context(.sky-responsive-container-md) .sky-action-button-header:not(.sky-theme-modern *),:host-context(.sky-responsive-container-lg) .sky-action-button-header:not(.sky-theme-modern *){margin:0 5px}@media (min-width: 768px){:host .sky-action-button-header:not(.sky-theme-modern *){margin:0 0 20px}}:host-context(.sky-responsive-container-sm) .sky-action-button-header:not(.sky-theme-modern *),:host-context(.sky-responsive-container-md) .sky-action-button-header:not(.sky-theme-modern *),:host-context(.sky-responsive-container-lg) .sky-action-button-header:not(.sky-theme-modern *){margin:0 0 20px}\n", ":host-context(.sky-theme-modern) .sky-action-button-header{margin:0 0 10px}\n"] }]
}] });
const FONTSIZECLASS_SMALL = '2x';
const FONTSIZECLASS_LARGE = '3x';
/**
* Specifies an icon to display on the action button.
*/
class SkyActionButtonIconComponent {
constructor() {
this.breakpoint = toSignal(inject(SkyMediaQueryService).breakpointChange);
this.fontSizeClass = computed(() => {
return this.breakpoint() === 'xs'
? FONTSIZECLASS_SMALL
: FONTSIZECLASS_LARGE;
});
}
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SkyActionButto