@skyux/tiles 14.4.0 → 15.0.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,5 +1,5 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Component, InjectionToken, inject, NgModule, EventEmitter, DestroyRef, Injector, RendererFactory2, computed, effect, afterNextRender, Output, Injectable, ElementRef, ContentChild, ViewChild, Input, Optional, EnvironmentInjector, ViewContainerRef, ViewChildren } from '@angular/core';
2
+ import { ChangeDetectionStrategy, Component, InjectionToken, inject, NgModule, EventEmitter, DestroyRef, Injector, RendererFactory2, computed, effect, afterNextRender, Output, Injectable, ElementRef, ContentChild, ViewChild, Input, Optional, EnvironmentInjector, ViewContainerRef, ViewChildren } from '@angular/core';
3
3
  import * as i1 from '@skyux/core';
4
4
  import { SkyTrimModule, SkyMediaQueryService, SkyDynamicComponentService, SkyUIConfigService, SkyLogService, SkyIdModule, _SkyAnimationSlideComponent, SkyIdService } from '@skyux/core';
5
5
  import * as i4 from '@angular/common';
@@ -23,12 +23,12 @@ import { toSignal, takeUntilDestroyed } from '@angular/core/rxjs-interop';
23
23
  * Specifies content to display in the tile's summary.
24
24
  */
25
25
  class SkyTileSummaryComponent {
26
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SkyTileSummaryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
27
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.0", type: SkyTileSummaryComponent, isStandalone: true, selector: "sky-tile-summary", ngImport: i0, template: "<ng-content />\n" }); }
26
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyTileSummaryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
27
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.1", type: SkyTileSummaryComponent, isStandalone: true, selector: "sky-tile-summary", ngImport: i0, template: "<ng-content />\n", changeDetection: i0.ChangeDetectionStrategy.Eager }); }
28
28
  }
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SkyTileSummaryComponent, decorators: [{
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyTileSummaryComponent, decorators: [{
30
30
  type: Component,
31
- args: [{ selector: 'sky-tile-summary', template: "<ng-content />\n" }]
31
+ args: [{ selector: 'sky-tile-summary', changeDetection: ChangeDetectionStrategy.Eager, template: "<ng-content />\n" }]
32
32
  }] });
33
33
 
34
34
  const SKY_TILE_TITLE_ID = new InjectionToken('SKY_TILE_TITLE_ID');
@@ -40,12 +40,12 @@ class SkyTileTitleComponent {
40
40
  constructor() {
41
41
  this.tileTitleId = inject(SKY_TILE_TITLE_ID);
42
42
  }
43
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SkyTileTitleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
44
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.0", type: SkyTileTitleComponent, isStandalone: true, selector: "sky-tile-title", ngImport: i0, template: "<h2 class=\"sky-tile-title sky-font-heading-2\">\n <span skyTrim [id]=\"tileTitleId\"><ng-content /></span\n ><span class=\"sky-control-help-container\"\n ><ng-content select=\".sky-control-help\"></ng-content\n ></span>\n</h2>\n", styles: [".sky-tile-title{margin:0;padding:0}\n"], dependencies: [{ kind: "ngmodule", type: SkyTrimModule }, { kind: "directive", type: i1.λ4, selector: "[skyTrim]" }] }); }
43
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyTileTitleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
44
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.1", type: SkyTileTitleComponent, isStandalone: true, selector: "sky-tile-title", ngImport: i0, template: "<h2 class=\"sky-tile-title sky-font-heading-2\">\n <span skyTrim [id]=\"tileTitleId\"><ng-content /></span\n ><span class=\"sky-control-help-container\"\n ><ng-content select=\".sky-control-help\"></ng-content\n ></span>\n</h2>\n", styles: [".sky-tile-title{margin:0;padding:0}\n"], dependencies: [{ kind: "ngmodule", type: SkyTrimModule }, { kind: "directive", type: i1.λ4, selector: "[skyTrim]" }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
45
45
  }
46
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SkyTileTitleComponent, decorators: [{
46
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyTileTitleComponent, decorators: [{
47
47
  type: Component,
48
- args: [{ selector: 'sky-tile-title', imports: [SkyTrimModule], template: "<h2 class=\"sky-tile-title sky-font-heading-2\">\n <span skyTrim [id]=\"tileTitleId\"><ng-content /></span\n ><span class=\"sky-control-help-container\"\n ><ng-content select=\".sky-control-help\"></ng-content\n ></span>\n</h2>\n", styles: [".sky-tile-title{margin:0;padding:0}\n"] }]
48
+ args: [{ selector: 'sky-tile-title', changeDetection: ChangeDetectionStrategy.Eager, imports: [SkyTrimModule], template: "<h2 class=\"sky-tile-title sky-font-heading-2\">\n <span skyTrim [id]=\"tileTitleId\"><ng-content /></span\n ><span class=\"sky-control-help-container\"\n ><ng-content select=\".sky-control-help\"></ng-content\n ></span>\n</h2>\n", styles: [".sky-tile-title{margin:0;padding:0}\n"] }]
49
49
  }] });
50
50
 
51
51
  /* istanbul ignore file */
@@ -94,11 +94,11 @@ SkyLibResourcesService.addResources(RESOURCES);
94
94
  * Import into any component library module that needs to use resource strings.
95
95
  */
96
96
  class SkyTilesResourcesModule {
97
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SkyTilesResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
98
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.0", ngImport: i0, type: SkyTilesResourcesModule, exports: [SkyI18nModule] }); }
99
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SkyTilesResourcesModule, imports: [SkyI18nModule] }); }
97
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyTilesResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
98
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.1", ngImport: i0, type: SkyTilesResourcesModule, exports: [SkyI18nModule] }); }
99
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyTilesResourcesModule, imports: [SkyI18nModule] }); }
100
100
  }
101
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SkyTilesResourcesModule, decorators: [{
101
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyTilesResourcesModule, decorators: [{
102
102
  type: NgModule,
103
103
  args: [{
104
104
  exports: [SkyI18nModule],
@@ -143,7 +143,8 @@ class SkyTileDashboardService {
143
143
  this.#mode = computed(() => {
144
144
  const breakpoint = this.#breakpoint();
145
145
  return breakpoint === 'xs' || breakpoint === 'sm' ? 'single' : 'multi';
146
- }, ...(ngDevMode ? [{ debugName: "#mode" }] : []));
146
+ }, /* @ts-ignore */
147
+ ...(ngDevMode ? [{ debugName: "#mode" }] : /* istanbul ignore next */ []));
147
148
  effect(() => {
148
149
  const mode = this.#mode();
149
150
  this.changeColumnMode(mode);
@@ -718,10 +719,10 @@ class SkyTileDashboardService {
718
719
  });
719
720
  return hasChange;
720
721
  }
721
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SkyTileDashboardService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
722
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SkyTileDashboardService }); }
722
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyTileDashboardService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
723
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyTileDashboardService }); }
723
724
  }
724
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SkyTileDashboardService, decorators: [{
725
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyTileDashboardService, decorators: [{
725
726
  type: Injectable
726
727
  }], ctorParameters: () => [], propDecorators: { dashboardInitialized: [{
727
728
  type: Output
@@ -863,8 +864,8 @@ class SkyTileComponent {
863
864
  #focusHandle() {
864
865
  this.grabHandle?.nativeElement.focus();
865
866
  }
866
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SkyTileComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: SkyTileDashboardService, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
867
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: SkyTileComponent, isStandalone: true, selector: "sky-tile", inputs: { helpKey: "helpKey", helpPopoverContent: "helpPopoverContent", helpPopoverTitle: "helpPopoverTitle", showSettings: "showSettings", showHelp: "showHelp", tileName: "tileName", isCollapsed: "isCollapsed" }, outputs: { settingsClick: "settingsClick", isCollapsedChange: "isCollapsedChange", helpClick: "helpClick" }, providers: [
867
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyTileComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: SkyTileDashboardService, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
868
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.1", type: SkyTileComponent, isStandalone: true, selector: "sky-tile", inputs: { helpKey: "helpKey", helpPopoverContent: "helpPopoverContent", helpPopoverTitle: "helpPopoverTitle", showSettings: "showSettings", showHelp: "showHelp", tileName: "tileName", isCollapsed: "isCollapsed" }, outputs: { settingsClick: "settingsClick", isCollapsedChange: "isCollapsedChange", helpClick: "helpClick" }, providers: [
868
869
  {
869
870
  provide: SKY_TILE_TITLE_ID,
870
871
  useFactory() {
@@ -872,9 +873,9 @@ class SkyTileComponent {
872
873
  return idService.generateId();
873
874
  },
874
875
  },
875
- ], queries: [{ propertyName: "titleRef", first: true, predicate: SkyTileTitleComponent, descendants: true, read: ElementRef }], viewQueries: [{ propertyName: "grabHandle", first: true, predicate: ["grabHandle"], descendants: true, read: ElementRef }, { propertyName: "title", first: true, predicate: ["titleContainer"], descendants: true, read: ElementRef }], usesOnChanges: true, ngImport: i0, template: "<section\n class=\"sky-tile\"\n [ngClass]=\"{\n 'sky-tile-collapsed': isCollapsed\n }\"\n [skyThemeClass]=\"{\n 'sky-box sky-elevation-1-bordered': 'modern'\n }\"\n>\n <header class=\"sky-tile-header\">\n <div class=\"sky-tile-header-content\" (click)=\"titleClick($event)\">\n <div #titleContainer class=\"sky-tile-header-title\">\n <ng-content select=\"sky-tile-title\" />\n @if (tileName && (helpKey || helpPopoverContent)) {\n <span class=\"sky-control-help-container\">\n <sky-help-inline\n [helpKey]=\"helpKey\"\n [labelText]=\"tileName\"\n [popoverContent]=\"helpPopoverContent\"\n [popoverTitle]=\"helpPopoverTitle\"\n />\n </span>\n }\n </div>\n <div class=\"sky-tile-summary sky-font-heading-2\">\n <ng-content select=\"sky-tile-summary\" />\n </div>\n </div>\n <div class=\"sky-tile-header-column-tools\">\n <div class=\"sky-tile-tools\">\n <ng-container *skyThemeIf=\"'default'\">\n @if (hasHelp) {\n <button\n class=\"sky-btn sky-btn-icon-borderless sky-tile-tools-control sky-tile-help\"\n type=\"button\"\n [attr.aria-label]=\"\n tileName\n ? ('skyux_tile_help' | skyLibResources: tileName)\n : ('skyux_tile_help_default' | skyLibResources)\n \"\n (click)=\"helpButtonClicked()\"\n >\n <sky-icon iconName=\"question-circle\" />\n </button>\n }\n </ng-container>\n <sky-chevron\n class=\"sky-tile-tools-control\"\n [ariaControls]=\"tileContent.id\"\n [ariaLabel]=\"\n tileName\n ? ('skyux_tile_expand' | skyLibResources: tileName)\n : ('skyux_tile_expand_default' | skyLibResources)\n \"\n [direction]=\"isCollapsed ? 'down' : 'up'\"\n (directionChange)=\"chevronDirectionChange($event)\"\n />\n @if (hasSettings) {\n <button\n class=\"sky-btn sky-tile-settings sky-btn-icon-borderless sky-tile-tools-control\"\n type=\"button\"\n [attr.aria-label]=\"\n tileName\n ? ('skyux_tile_settings' | skyLibResources: tileName)\n : ('skyux_tile_settings_default' | skyLibResources)\n \"\n (click)=\"settingsButtonClicked()\"\n >\n <sky-icon iconName=\"settings\" />\n </button>\n }\n @if (isInDashboardColumn) {\n <button\n #grabHandle\n class=\"sky-btn sky-btn-icon-borderless sky-tile-tools-control sky-tile-grab-handle\"\n type=\"button\"\n [attr.aria-label]=\"\n tileName\n ? ('skyux_tile_move' | skyLibResources: tileName)\n : ('skyux_tile_move_default' | skyLibResources)\n \"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"moveTile($event)\"\n >\n <sky-icon iconName=\"re-order-dots-vertical\" iconSize=\"s\" />\n </button>\n }\n </div>\n </div>\n </header>\n <div\n #tileContent=\"skyId\"\n class=\"sky-tile-content\"\n role=\"region\"\n skyId\n [attr.aria-label]=\"tileName\"\n [attr.aria-labelledby]=\"!tileName && titleRef ? tileTitleId : undefined\"\n >\n <sky-animation-slide [opened]=\"!isCollapsed\">\n <ng-content select=\"sky-tile-content\" />\n </sky-animation-slide>\n </div>\n</section>\n", styles: [".sky-tile:not(.sky-theme-modern *){--sky-override-tile-background-color: #fff;--sky-override-tile-border-radius: 0;--sky-override-tile-border-radius-xs-first: 0;--sky-override-tile-border-radius-xs-last: 0;--sky-override-tile-content-border-color: #e2e3e4;--sky-override-tile-content-border-style: solid solid none;--sky-override-tile-content-border-width: 1px 0;--sky-override-tile-header-border-color: #cdcfd2;--sky-override-tile-header-border-style: solid solid none;--sky-override-tile-header-border-width: 4px 0 0;--sky-override-tile-header-column-tools-align-items: center;--sky-override-tile-header-title-margin: 0;--sky-override-tile-header-title-padding: 10px 15px;--sky-override-tile-margin-bottom-base: 20px;--sky-override-tile-margin-bottom-gt-xs: 20px;--sky-override-tile-margin-bottom-xs: 0;--sky-override-tile-padding: 0;--sky-override-tile-summary-color: #0974a1;--sky-override-tile-summary-padding-left: 15px;--sky-override-tile-tools-control-color: var(--sky-text-color-deemphasized);--sky-override-tile-tools-control-margin-right: 9px;--sky-override-tile-tools-control-size: 24px;--sky-override-tile-tools-padding-right: 15px}.sky-tile{--sky-comp-override-list-header-background-color: initial;background-color:var(--sky-override-tile-background-color, var(--sky-color-background-container-base));margin-bottom:var(--sky-override-tile-margin-bottom-base, var(--sky-space-stacked-xl));padding:var(--sky-override-tile-padding, var(--sky-comp-tile-space-inset-top) var(--sky-comp-tile-space-inset-right) var(--sky-comp-tile-space-inset-bottom) var(--sky-comp-tile-space-inset-left));--sky-background-color-page-default: var( --sky-override-tile-background-color, var(--sky-color-background-container-base) )}:host-context(.sky-tile-dashboard-layout-single,.sky-tile-dashboard-layout-multi) .sky-tile{margin-bottom:var(--sky-override-tile-margin-bottom-xs, var(--sky-space-stacked-0))}:host-context(.sky-tile-dashboard-gt-xs) :host-context(.sky-tile-dashboard-layout-single) .sky-tile,:host-context(.sky-tile-dashboard-gt-xs) :host-context(.sky-tile-dashboard-layout-multi) .sky-tile{margin-bottom:var(--sky-override-tile-margin-bottom-gt-xs, var(--sky-space-stacked-xl))}.sky-tile-header{border-color:var(--sky-override-tile-header-border-color, none);border-style:var(--sky-override-tile-header-border-style, none);border-width:var(--sky-override-tile-header-border-width, 0);display:flex}.sky-tile-header-content{display:flex;flex:1;align-items:baseline;cursor:pointer}.sky-tile-header-title{display:inline-flex;align-items:baseline;padding:var(--sky-override-tile-header-title-padding, 0);margin:var(--sky-override-tile-header-title-margin, 0 var(--sky-space-inline-xl) 0 0)}.sky-tile-summary{color:var(--sky-override-tile-summary-color, var(--sky-color-text-action));display:none;padding-right:var(--sky-override-tile-summary-padding-left, var(--sky-space-inline-m));max-height:30px;overflow:hidden}.sky-tile-collapsed .sky-tile-summary{display:block}.sky-tile-header-column-tools{display:flex;align-items:var(--sky-override-tile-header-column-tools-align-items, flex-start);flex:0 0 auto}.sky-tile-tools{align-items:center;display:flex;padding:0 var(--sky-override-tile-tools-padding-right, 0) 0 0}.sky-tile-tools-control{--sky-expansion-indicator-color: var( --sky-override-tile-tools-control-color, var(--sky-color-icon-deemphasized) );color:var(--sky-override-tile-tools-control-color, var(--sky-color-icon-deemphasized));height:var(--sky-override-tile-tools-control-size, auto);width:var(--sky-override-tile-tools-control-size, auto)}.sky-tile-tools-control:not(:last-child){margin-right:var(--sky-override-tile-tools-control-margin-right, var(--sky-space-gap-action_group-s))}.sky-tile-grab-handle{cursor:move;cursor:-webkit-grab;cursor:-moz-grab}:host-context(.sky-tile-dashboard-xs .sky-tile-dashboard-column > *:has(.sky-tile):nth-child(1 of .sky-tile-parent)) .sky-tile{border-radius:var(--sky-override-tile-border-radius-xs-first, var(--sky-border-radius-s) var(--sky-border-radius-s) var(--sky-border-radius-0) var(--sky-border-radius-0))}:host-context(.sky-tile-dashboard-xs .sky-tile-dashboard-column > *:has(.sky-tile):nth-last-child(1 of .sky-tile-parent)) .sky-tile{border-radius:var(--sky-override-tile-border-radius-xs-last, var(--sky-border-radius-0) var(--sky-border-radius-0) var(--sky-border-radius-s) var(--sky-border-radius-s))}:host .sky-tile{border-radius:var(--sky-override-tile-border-radius, var(--sky-border-radius-0))}:host-context(.sky-responsive-container-xs) .sky-tile,:host-context(.sky-responsive-container-sm) .sky-tile,:host-context(.sky-responsive-container-md) .sky-tile,:host-context(.sky-responsive-container-lg) .sky-tile{border-radius:var(--sky-override-tile-border-radius, var(--sky-border-radius-0))}@media(min-width:768px){:host .sky-tile{border-radius:var(--sky-override-tile-border-radius, var(--sky-border-radius-s))}}:host-context(.sky-responsive-container-sm) .sky-tile,:host-context(.sky-responsive-container-md) .sky-tile,:host-context(.sky-responsive-container-lg) .sky-tile{border-radius:var(--sky-override-tile-border-radius, var(--sky-border-radius-s))}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: SkyChevronModule }, { kind: "component", type: i3.λ2, selector: "sky-chevron", inputs: ["ariaControls", "ariaLabel", "direction", "disabled"], outputs: ["directionChange"] }, { kind: "ngmodule", type: SkyHelpInlineModule }, { kind: "component", type: i4$1.λ1, selector: "sky-help-inline", inputs: ["ariaControls", "ariaExpanded", "ariaLabel", "helpKey", "labelledBy", "labelText", "popoverContent", "popoverTitle"], outputs: ["actionClick"] }, { kind: "ngmodule", type: SkyIconModule }, { kind: "component", type: i5.λ1, selector: "sky-icon", inputs: ["iconName", "variant", "iconSize"] }, { kind: "ngmodule", type: SkyIdModule }, { kind: "directive", type: i1.λ2, selector: "[skyId]", exportAs: ["skyId"] }, { kind: "ngmodule", type: SkyThemeModule }, { kind: "directive", type: i7.λ2, selector: "[skyThemeClass]", inputs: ["class", "skyThemeClass"] }, { kind: "directive", type: i7.λ3, selector: "[skyThemeIf]", inputs: ["skyThemeIf"] }, { kind: "ngmodule", type: SkyTilesResourcesModule }, { kind: "component", type: _SkyAnimationSlideComponent, selector: "sky-animation-slide", inputs: ["opened"] }, { kind: "pipe", type: i2.SkyLibResourcesPipe, name: "skyLibResources" }] }); }
876
+ ], queries: [{ propertyName: "titleRef", first: true, predicate: SkyTileTitleComponent, descendants: true, read: ElementRef }], viewQueries: [{ propertyName: "grabHandle", first: true, predicate: ["grabHandle"], descendants: true, read: ElementRef }, { propertyName: "title", first: true, predicate: ["titleContainer"], descendants: true, read: ElementRef }], usesOnChanges: true, ngImport: i0, template: "<section\n class=\"sky-tile\"\n [ngClass]=\"{\n 'sky-tile-collapsed': isCollapsed\n }\"\n [skyThemeClass]=\"{\n 'sky-box sky-elevation-1-bordered': 'modern'\n }\"\n>\n <header class=\"sky-tile-header\">\n <div class=\"sky-tile-header-content\" (click)=\"titleClick($event)\">\n <div #titleContainer class=\"sky-tile-header-title\">\n <ng-content select=\"sky-tile-title\" />\n @if (tileName && (helpKey || helpPopoverContent)) {\n <span class=\"sky-control-help-container\">\n <sky-help-inline\n [helpKey]=\"helpKey\"\n [labelText]=\"tileName\"\n [popoverContent]=\"helpPopoverContent\"\n [popoverTitle]=\"helpPopoverTitle\"\n />\n </span>\n }\n </div>\n <div class=\"sky-tile-summary sky-font-heading-2\">\n <ng-content select=\"sky-tile-summary\" />\n </div>\n </div>\n <div class=\"sky-tile-header-column-tools\">\n <div class=\"sky-tile-tools\">\n <ng-container *skyThemeIf=\"'default'\">\n @if (hasHelp) {\n <button\n class=\"sky-btn sky-btn-icon-borderless sky-tile-tools-control sky-tile-help\"\n type=\"button\"\n [attr.aria-label]=\"\n tileName\n ? ('skyux_tile_help' | skyLibResources: tileName)\n : ('skyux_tile_help_default' | skyLibResources)\n \"\n (click)=\"helpButtonClicked()\"\n >\n <sky-icon iconName=\"question-circle\" />\n </button>\n }\n </ng-container>\n <sky-chevron\n class=\"sky-tile-tools-control\"\n [ariaControls]=\"tileContent.id\"\n [ariaLabel]=\"\n tileName\n ? ('skyux_tile_expand' | skyLibResources: tileName)\n : ('skyux_tile_expand_default' | skyLibResources)\n \"\n [direction]=\"isCollapsed ? 'down' : 'up'\"\n (directionChange)=\"chevronDirectionChange($event)\"\n />\n @if (hasSettings) {\n <button\n class=\"sky-btn sky-tile-settings sky-btn-icon-borderless sky-tile-tools-control\"\n type=\"button\"\n [attr.aria-label]=\"\n tileName\n ? ('skyux_tile_settings' | skyLibResources: tileName)\n : ('skyux_tile_settings_default' | skyLibResources)\n \"\n (click)=\"settingsButtonClicked()\"\n >\n <sky-icon iconName=\"settings\" />\n </button>\n }\n @if (isInDashboardColumn) {\n <button\n #grabHandle\n class=\"sky-btn sky-btn-icon-borderless sky-tile-tools-control sky-tile-grab-handle\"\n type=\"button\"\n [attr.aria-label]=\"\n tileName\n ? ('skyux_tile_move' | skyLibResources: tileName)\n : ('skyux_tile_move_default' | skyLibResources)\n \"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"moveTile($event)\"\n >\n <sky-icon iconName=\"re-order-dots-vertical\" iconSize=\"s\" />\n </button>\n }\n </div>\n </div>\n </header>\n <div\n #tileContent=\"skyId\"\n class=\"sky-tile-content\"\n role=\"region\"\n skyId\n [attr.aria-label]=\"tileName\"\n [attr.aria-labelledby]=\"!tileName && titleRef ? tileTitleId : undefined\"\n >\n <sky-animation-slide [opened]=\"!isCollapsed\">\n <ng-content select=\"sky-tile-content\" />\n </sky-animation-slide>\n </div>\n</section>\n", styles: [".sky-tile:not(.sky-theme-modern *){--sky-override-tile-background-color: #fff;--sky-override-tile-border-radius: 0;--sky-override-tile-border-radius-xs-first: 0;--sky-override-tile-border-radius-xs-last: 0;--sky-override-tile-content-border-color: #e2e3e4;--sky-override-tile-content-border-style: solid solid none;--sky-override-tile-content-border-width: 1px 0;--sky-override-tile-header-border-color: #cdcfd2;--sky-override-tile-header-border-style: solid solid none;--sky-override-tile-header-border-width: 4px 0 0;--sky-override-tile-header-column-tools-align-items: center;--sky-override-tile-header-title-margin: 0;--sky-override-tile-header-title-padding: 10px 15px;--sky-override-tile-margin-bottom-base: 20px;--sky-override-tile-margin-bottom-gt-xs: 20px;--sky-override-tile-margin-bottom-xs: 0;--sky-override-tile-padding: 0;--sky-override-tile-summary-color: #0974a1;--sky-override-tile-summary-padding-left: 15px;--sky-override-tile-tools-control-color: var(--sky-text-color-deemphasized);--sky-override-tile-tools-control-margin-right: 9px;--sky-override-tile-tools-control-size: 24px;--sky-override-tile-tools-padding-right: 15px}.sky-tile{--sky-comp-override-list-header-background-color: initial;background-color:var(--sky-override-tile-background-color, var(--sky-color-background-container-base));margin-bottom:var(--sky-override-tile-margin-bottom-base, var(--sky-space-stacked-xl));padding:var(--sky-override-tile-padding, var(--sky-comp-tile-space-inset-top) var(--sky-comp-tile-space-inset-right) var(--sky-comp-tile-space-inset-bottom) var(--sky-comp-tile-space-inset-left));--sky-background-color-page-default: var( --sky-override-tile-background-color, var(--sky-color-background-container-base) )}:host-context(.sky-tile-dashboard-layout-single,.sky-tile-dashboard-layout-multi) .sky-tile{margin-bottom:var(--sky-override-tile-margin-bottom-xs, var(--sky-space-stacked-0))}:host-context(.sky-tile-dashboard-gt-xs) :host-context(.sky-tile-dashboard-layout-single) .sky-tile,:host-context(.sky-tile-dashboard-gt-xs) :host-context(.sky-tile-dashboard-layout-multi) .sky-tile{margin-bottom:var(--sky-override-tile-margin-bottom-gt-xs, var(--sky-space-stacked-xl))}.sky-tile-header{border-color:var(--sky-override-tile-header-border-color, none);border-style:var(--sky-override-tile-header-border-style, none);border-width:var(--sky-override-tile-header-border-width, 0);display:flex}.sky-tile-header-content{display:flex;flex:1;align-items:baseline;cursor:pointer}.sky-tile-header-title{display:inline-flex;align-items:baseline;padding:var(--sky-override-tile-header-title-padding, 0);margin:var(--sky-override-tile-header-title-margin, 0 var(--sky-space-inline-xl) 0 0)}.sky-tile-summary{color:var(--sky-override-tile-summary-color, var(--sky-color-text-action));display:none;padding-right:var(--sky-override-tile-summary-padding-left, var(--sky-space-inline-m));max-height:30px;overflow:hidden}.sky-tile-collapsed .sky-tile-summary{display:block}.sky-tile-header-column-tools{display:flex;align-items:var(--sky-override-tile-header-column-tools-align-items, flex-start);flex:0 0 auto}.sky-tile-tools{align-items:center;display:flex;padding:0 var(--sky-override-tile-tools-padding-right, 0) 0 0}.sky-tile-tools-control{--sky-expansion-indicator-color: var( --sky-override-tile-tools-control-color, var(--sky-color-icon-deemphasized) );color:var(--sky-override-tile-tools-control-color, var(--sky-color-icon-deemphasized));height:var(--sky-override-tile-tools-control-size, auto);width:var(--sky-override-tile-tools-control-size, auto)}.sky-tile-tools-control:not(:last-child){margin-right:var(--sky-override-tile-tools-control-margin-right, var(--sky-space-gap-action_group-s))}.sky-tile-grab-handle{cursor:move;cursor:-webkit-grab;cursor:-moz-grab}:host-context(.sky-tile-dashboard-xs .sky-tile-dashboard-column > *:has(.sky-tile):nth-child(1 of .sky-tile-parent)) .sky-tile{border-radius:var(--sky-override-tile-border-radius-xs-first, var(--sky-border-radius-s) var(--sky-border-radius-s) var(--sky-border-radius-0) var(--sky-border-radius-0))}:host-context(.sky-tile-dashboard-xs .sky-tile-dashboard-column > *:has(.sky-tile):nth-last-child(1 of .sky-tile-parent)) .sky-tile{border-radius:var(--sky-override-tile-border-radius-xs-last, var(--sky-border-radius-0) var(--sky-border-radius-0) var(--sky-border-radius-s) var(--sky-border-radius-s))}:host .sky-tile{border-radius:var(--sky-override-tile-border-radius, var(--sky-border-radius-0))}:host-context(.sky-responsive-container-xs) .sky-tile,:host-context(.sky-responsive-container-sm) .sky-tile,:host-context(.sky-responsive-container-md) .sky-tile,:host-context(.sky-responsive-container-lg) .sky-tile{border-radius:var(--sky-override-tile-border-radius, var(--sky-border-radius-0))}@media(min-width:768px){:host .sky-tile{border-radius:var(--sky-override-tile-border-radius, var(--sky-border-radius-s))}}:host-context(.sky-responsive-container-sm) .sky-tile,:host-context(.sky-responsive-container-md) .sky-tile,:host-context(.sky-responsive-container-lg) .sky-tile{border-radius:var(--sky-override-tile-border-radius, var(--sky-border-radius-s))}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "ngmodule", type: SkyChevronModule }, { kind: "component", type: i3.λ2, selector: "sky-chevron", inputs: ["ariaControls", "ariaLabel", "direction", "disabled"], outputs: ["directionChange"] }, { kind: "ngmodule", type: SkyHelpInlineModule }, { kind: "component", type: i4$1.λ1, selector: "sky-help-inline", inputs: ["ariaControls", "ariaExpanded", "ariaLabel", "helpKey", "labelledBy", "labelText", "popoverContent", "popoverTitle"], outputs: ["actionClick"] }, { kind: "ngmodule", type: SkyIconModule }, { kind: "component", type: i5.λ1, selector: "sky-icon", inputs: ["iconName", "variant", "iconSize"] }, { kind: "ngmodule", type: SkyIdModule }, { kind: "directive", type: i1.λ2, selector: "[skyId]", exportAs: ["skyId"] }, { kind: "ngmodule", type: SkyThemeModule }, { kind: "directive", type: i7.λ2, selector: "[skyThemeClass]", inputs: ["class", "skyThemeClass"] }, { kind: "directive", type: i7.λ3, selector: "[skyThemeIf]", inputs: ["skyThemeIf"] }, { kind: "ngmodule", type: SkyTilesResourcesModule }, { kind: "component", type: _SkyAnimationSlideComponent, selector: "sky-animation-slide", inputs: ["opened"] }, { kind: "pipe", type: i2.SkyLibResourcesPipe, name: "skyLibResources" }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
876
877
  }
877
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SkyTileComponent, decorators: [{
878
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyTileComponent, decorators: [{
878
879
  type: Component,
879
880
  args: [{ selector: 'sky-tile', imports: [
880
881
  CommonModule,
@@ -885,7 +886,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
885
886
  SkyThemeModule,
886
887
  SkyTilesResourcesModule,
887
888
  _SkyAnimationSlideComponent,
888
- ], providers: [
889
+ ], changeDetection: ChangeDetectionStrategy.Eager, providers: [
889
890
  {
890
891
  provide: SKY_TILE_TITLE_ID,
891
892
  useFactory() {
@@ -934,11 +935,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
934
935
  }] } });
935
936
 
936
937
  class SkyTileModule {
937
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SkyTileModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
938
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.0", ngImport: i0, type: SkyTileModule, imports: [SkyTileComponent, SkyTileSummaryComponent, SkyTileTitleComponent], exports: [SkyTileComponent, SkyTileSummaryComponent, SkyTileTitleComponent] }); }
939
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SkyTileModule, imports: [SkyTileComponent, SkyTileTitleComponent] }); }
938
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyTileModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
939
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.1", ngImport: i0, type: SkyTileModule, imports: [SkyTileComponent, SkyTileSummaryComponent, SkyTileTitleComponent], exports: [SkyTileComponent, SkyTileSummaryComponent, SkyTileTitleComponent] }); }
940
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyTileModule, imports: [SkyTileComponent, SkyTileTitleComponent] }); }
940
941
  }
941
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SkyTileModule, decorators: [{
942
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyTileModule, decorators: [{
942
943
  type: NgModule,
943
944
  args: [{
944
945
  imports: [SkyTileComponent, SkyTileSummaryComponent, SkyTileTitleComponent],
@@ -950,32 +951,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
950
951
  * Specifies content to display inside a padded section of a SkyTileContentComponent.
951
952
  */
952
953
  class SkyTileContentSectionComponent {
953
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SkyTileContentSectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
954
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.0", type: SkyTileContentSectionComponent, isStandalone: true, selector: "sky-tile-content-section", ngImport: i0, template: "<div class=\"sky-tile-content-section sky-border-bottom-row\">\n <ng-content />\n</div>\n", styles: [".sky-tile-content-section:not(.sky-theme-modern *){--sky-override-tile-content-section-border-color: #e2e3e4;--sky-override-tile-content-section-border-style: solid;--sky-override-tile-content-section-first-margin-top: 0;--sky-override-tile-content-section-padding: 15px;--sky-override-tile-content-section-padding-last: 15px}.sky-tile-content-section{border-bottom-color:var(--sky-override-tile-content-section-border-color, var(--sky-color-border-separator-row));border-bottom-style:var(--sky-override-tile-content-section-border-style, var(--sky-border-style-separator-row));padding:var(--sky-override-tile-content-section-padding, var(--sky-comp-tile-section-space-inset-top) var(--sky-comp-tile-section-space-inset-right) var(--sky-comp-tile-section-space-inset-bottom) var(--sky-comp-tile-section-space-inset-left))}:host:first-child .sky-tile-content-section{margin-top:var(--sky-override-tile-content-section-first-margin-top, var(--sky-space-stacked-m))}:host:last-child .sky-tile-content-section{padding-bottom:var(--sky-override-tile-content-section-padding-last, 0);border-bottom:none}\n"], dependencies: [{ kind: "ngmodule", type: SkyThemeModule }] }); }
954
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyTileContentSectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
955
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.1", type: SkyTileContentSectionComponent, isStandalone: true, selector: "sky-tile-content-section", ngImport: i0, template: "<div class=\"sky-tile-content-section sky-border-bottom-row\">\n <ng-content />\n</div>\n", styles: [".sky-tile-content-section:not(.sky-theme-modern *){--sky-override-tile-content-section-border-color: #e2e3e4;--sky-override-tile-content-section-border-style: solid;--sky-override-tile-content-section-first-margin-top: 0;--sky-override-tile-content-section-padding: 15px;--sky-override-tile-content-section-padding-last: 15px}.sky-tile-content-section{border-bottom-color:var(--sky-override-tile-content-section-border-color, var(--sky-color-border-separator-row));border-bottom-style:var(--sky-override-tile-content-section-border-style, var(--sky-border-style-separator-row));padding:var(--sky-override-tile-content-section-padding, var(--sky-comp-tile-section-space-inset-top) var(--sky-comp-tile-section-space-inset-right) var(--sky-comp-tile-section-space-inset-bottom) var(--sky-comp-tile-section-space-inset-left))}:host:first-child .sky-tile-content-section{margin-top:var(--sky-override-tile-content-section-first-margin-top, var(--sky-space-stacked-m))}:host:last-child .sky-tile-content-section{padding-bottom:var(--sky-override-tile-content-section-padding-last, 0);border-bottom:none}\n"], dependencies: [{ kind: "ngmodule", type: SkyThemeModule }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
955
956
  }
956
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SkyTileContentSectionComponent, decorators: [{
957
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyTileContentSectionComponent, decorators: [{
957
958
  type: Component,
958
- args: [{ selector: 'sky-tile-content-section', imports: [SkyThemeModule], template: "<div class=\"sky-tile-content-section sky-border-bottom-row\">\n <ng-content />\n</div>\n", styles: [".sky-tile-content-section:not(.sky-theme-modern *){--sky-override-tile-content-section-border-color: #e2e3e4;--sky-override-tile-content-section-border-style: solid;--sky-override-tile-content-section-first-margin-top: 0;--sky-override-tile-content-section-padding: 15px;--sky-override-tile-content-section-padding-last: 15px}.sky-tile-content-section{border-bottom-color:var(--sky-override-tile-content-section-border-color, var(--sky-color-border-separator-row));border-bottom-style:var(--sky-override-tile-content-section-border-style, var(--sky-border-style-separator-row));padding:var(--sky-override-tile-content-section-padding, var(--sky-comp-tile-section-space-inset-top) var(--sky-comp-tile-section-space-inset-right) var(--sky-comp-tile-section-space-inset-bottom) var(--sky-comp-tile-section-space-inset-left))}:host:first-child .sky-tile-content-section{margin-top:var(--sky-override-tile-content-section-first-margin-top, var(--sky-space-stacked-m))}:host:last-child .sky-tile-content-section{padding-bottom:var(--sky-override-tile-content-section-padding-last, 0);border-bottom:none}\n"] }]
959
+ args: [{ selector: 'sky-tile-content-section', changeDetection: ChangeDetectionStrategy.Eager, imports: [SkyThemeModule], template: "<div class=\"sky-tile-content-section sky-border-bottom-row\">\n <ng-content />\n</div>\n", styles: [".sky-tile-content-section:not(.sky-theme-modern *){--sky-override-tile-content-section-border-color: #e2e3e4;--sky-override-tile-content-section-border-style: solid;--sky-override-tile-content-section-first-margin-top: 0;--sky-override-tile-content-section-padding: 15px;--sky-override-tile-content-section-padding-last: 15px}.sky-tile-content-section{border-bottom-color:var(--sky-override-tile-content-section-border-color, var(--sky-color-border-separator-row));border-bottom-style:var(--sky-override-tile-content-section-border-style, var(--sky-border-style-separator-row));padding:var(--sky-override-tile-content-section-padding, var(--sky-comp-tile-section-space-inset-top) var(--sky-comp-tile-section-space-inset-right) var(--sky-comp-tile-section-space-inset-bottom) var(--sky-comp-tile-section-space-inset-left))}:host:first-child .sky-tile-content-section{margin-top:var(--sky-override-tile-content-section-first-margin-top, var(--sky-space-stacked-m))}:host:last-child .sky-tile-content-section{padding-bottom:var(--sky-override-tile-content-section-padding-last, 0);border-bottom:none}\n"] }]
959
960
  }] });
960
961
 
961
962
  /**
962
963
  * Specifies content to display in the tile's body.
963
964
  */
964
965
  class SkyTileContentComponent {
965
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SkyTileContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
966
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.0", type: SkyTileContentComponent, isStandalone: true, selector: "sky-tile-content", ngImport: i0, template: "<ng-content />\n", styles: [":host{display:block;border-color:var(--sky-override-tile-content-border-color, none);border-style:var(--sky-override-tile-content-border-style, none);border-width:var(--sky-override-tile-content-border-width, 0);border-image:none}\n"] }); }
966
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyTileContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
967
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.1", type: SkyTileContentComponent, isStandalone: true, selector: "sky-tile-content", ngImport: i0, template: "<ng-content />\n", styles: [":host{display:block;border-color:var(--sky-override-tile-content-border-color, none);border-style:var(--sky-override-tile-content-border-style, none);border-width:var(--sky-override-tile-content-border-width, 0);border-image:none}\n"], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
967
968
  }
968
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SkyTileContentComponent, decorators: [{
969
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyTileContentComponent, decorators: [{
969
970
  type: Component,
970
- args: [{ selector: 'sky-tile-content', template: "<ng-content />\n", styles: [":host{display:block;border-color:var(--sky-override-tile-content-border-color, none);border-style:var(--sky-override-tile-content-border-style, none);border-width:var(--sky-override-tile-content-border-width, 0);border-image:none}\n"] }]
971
+ args: [{ selector: 'sky-tile-content', changeDetection: ChangeDetectionStrategy.Eager, template: "<ng-content />\n", styles: [":host{display:block;border-color:var(--sky-override-tile-content-border-color, none);border-style:var(--sky-override-tile-content-border-style, none);border-width:var(--sky-override-tile-content-border-width, 0);border-image:none}\n"] }]
971
972
  }] });
972
973
 
973
974
  class SkyTileContentModule {
974
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SkyTileContentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
975
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.0", ngImport: i0, type: SkyTileContentModule, imports: [SkyTileContentComponent, SkyTileContentSectionComponent], exports: [SkyTileContentComponent, SkyTileContentSectionComponent] }); }
976
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SkyTileContentModule, imports: [SkyTileContentSectionComponent] }); }
975
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyTileContentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
976
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.1", ngImport: i0, type: SkyTileContentModule, imports: [SkyTileContentComponent, SkyTileContentSectionComponent], exports: [SkyTileContentComponent, SkyTileContentSectionComponent] }); }
977
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyTileContentModule, imports: [SkyTileContentSectionComponent] }); }
977
978
  }
978
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SkyTileContentModule, decorators: [{
979
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyTileContentModule, decorators: [{
979
980
  type: NgModule,
980
981
  args: [{
981
982
  imports: [SkyTileContentComponent, SkyTileContentSectionComponent],
@@ -1007,12 +1008,12 @@ class SkyTileDashboardColumnComponent {
1007
1008
  this.injector = inject(EnvironmentInjector);
1008
1009
  this.columnId = `tile-dashboard-column-${++columnIdIndex}`;
1009
1010
  }
1010
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SkyTileDashboardColumnComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1011
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.0", type: SkyTileDashboardColumnComponent, isStandalone: true, selector: "sky-tile-dashboard-column", viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true, read: ViewContainerRef }], hostDirectives: [{ directive: i7.SkyThemeComponentClassDirective }], ngImport: i0, template: "<div class=\"sky-tile-dashboard-column\">\n <div #content></div>\n</div>\n", styles: [":host.sky-cmp-theme-default{--sky-override-tile-dashboard-column-padding-gt-sm: 0 10px;--sky-override-tile-dashboard-column-padding-xs: 0}:host{display:flex;flex-grow:1;overflow:hidden}:host{padding:var(--sky-override-tile-dashboard-column-padding-xs, var(--sky-comp-tile-dashboard-column-space-inset-xs-top) calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-right) + var(--sky-comp-tile-dashboard-column-space-inset-xs-right)) calc(var(--sky-space-stacked-xl) + var(--sky-comp-tile-dashboard-column-space-inset-xs-bottom)) calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-left) + var(--sky-comp-tile-dashboard-column-space-inset-xs-left)))}:host-context(.sky-responsive-container-xs),:host-context(.sky-responsive-container-sm),:host-context(.sky-responsive-container-md),:host-context(.sky-responsive-container-lg){padding:var(--sky-override-tile-dashboard-column-padding-xs, var(--sky-comp-tile-dashboard-column-space-inset-xs-top) calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-right) + var(--sky-comp-tile-dashboard-column-space-inset-xs-right)) calc(var(--sky-space-stacked-xl) + var(--sky-comp-tile-dashboard-column-space-inset-xs-bottom)) calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-left) + var(--sky-comp-tile-dashboard-column-space-inset-xs-left)))}@media(min-width:768px){:host{padding:var(--sky-override-tile-dashboard-column-padding-gt-sm, var(--sky-comp-tile-dashboard-column-space-inset-sm-top) var(--sky-comp-tile-dashboard-column-space-inset-sm-right) var(--sky-comp-tile-dashboard-column-space-inset-sm-bottom) var(--sky-comp-tile-dashboard-column-space-inset-sm-left))}:host.sky-tile-dashboard-layout-single{padding-bottom:calc(var(--sky-space-stacked-xl) + var(--sky-comp-tile-dashboard-column-space-inset-sm-bottom))}}:host-context(.sky-responsive-container-sm),:host-context(.sky-responsive-container-md),:host-context(.sky-responsive-container-lg){padding:var(--sky-override-tile-dashboard-column-padding-gt-sm, var(--sky-comp-tile-dashboard-column-space-inset-sm-top) var(--sky-comp-tile-dashboard-column-space-inset-sm-right) var(--sky-comp-tile-dashboard-column-space-inset-sm-bottom) var(--sky-comp-tile-dashboard-column-space-inset-sm-left))}:host-context(.sky-responsive-container-sm).sky-tile-dashboard-layout-single,:host-context(.sky-responsive-container-md).sky-tile-dashboard-layout-single,:host-context(.sky-responsive-container-lg).sky-tile-dashboard-layout-single{padding-bottom:calc(var(--sky-space-stacked-xl) + var(--sky-comp-tile-dashboard-column-space-inset-sm-bottom))}.sky-tile-dashboard-column{min-height:100px;width:100%}\n"] }); }
1011
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyTileDashboardColumnComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1012
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.1", type: SkyTileDashboardColumnComponent, isStandalone: true, selector: "sky-tile-dashboard-column", viewQueries: [{ propertyName: "content", first: true, predicate: ["content"], descendants: true, read: ViewContainerRef }], hostDirectives: [{ directive: i7.SkyThemeComponentClassDirective }], ngImport: i0, template: "<div class=\"sky-tile-dashboard-column\">\n <div #content></div>\n</div>\n", styles: [":host.sky-cmp-theme-default{--sky-override-tile-dashboard-column-padding-gt-sm: 0 10px;--sky-override-tile-dashboard-column-padding-xs: 0}:host{display:flex;flex-grow:1;overflow:hidden}:host{padding:var(--sky-override-tile-dashboard-column-padding-xs, var(--sky-comp-tile-dashboard-column-space-inset-xs-top) calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-right) + var(--sky-comp-tile-dashboard-column-space-inset-xs-right)) calc(var(--sky-space-stacked-xl) + var(--sky-comp-tile-dashboard-column-space-inset-xs-bottom)) calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-left) + var(--sky-comp-tile-dashboard-column-space-inset-xs-left)))}:host-context(.sky-responsive-container-xs),:host-context(.sky-responsive-container-sm),:host-context(.sky-responsive-container-md),:host-context(.sky-responsive-container-lg){padding:var(--sky-override-tile-dashboard-column-padding-xs, var(--sky-comp-tile-dashboard-column-space-inset-xs-top) calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-right) + var(--sky-comp-tile-dashboard-column-space-inset-xs-right)) calc(var(--sky-space-stacked-xl) + var(--sky-comp-tile-dashboard-column-space-inset-xs-bottom)) calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-left) + var(--sky-comp-tile-dashboard-column-space-inset-xs-left)))}@media(min-width:768px){:host{padding:var(--sky-override-tile-dashboard-column-padding-gt-sm, var(--sky-comp-tile-dashboard-column-space-inset-sm-top) var(--sky-comp-tile-dashboard-column-space-inset-sm-right) var(--sky-comp-tile-dashboard-column-space-inset-sm-bottom) var(--sky-comp-tile-dashboard-column-space-inset-sm-left))}:host.sky-tile-dashboard-layout-single{padding-bottom:calc(var(--sky-space-stacked-xl) + var(--sky-comp-tile-dashboard-column-space-inset-sm-bottom))}}:host-context(.sky-responsive-container-sm),:host-context(.sky-responsive-container-md),:host-context(.sky-responsive-container-lg){padding:var(--sky-override-tile-dashboard-column-padding-gt-sm, var(--sky-comp-tile-dashboard-column-space-inset-sm-top) var(--sky-comp-tile-dashboard-column-space-inset-sm-right) var(--sky-comp-tile-dashboard-column-space-inset-sm-bottom) var(--sky-comp-tile-dashboard-column-space-inset-sm-left))}:host-context(.sky-responsive-container-sm).sky-tile-dashboard-layout-single,:host-context(.sky-responsive-container-md).sky-tile-dashboard-layout-single,:host-context(.sky-responsive-container-lg).sky-tile-dashboard-layout-single{padding-bottom:calc(var(--sky-space-stacked-xl) + var(--sky-comp-tile-dashboard-column-space-inset-sm-bottom))}.sky-tile-dashboard-column{min-height:100px;width:100%}\n"], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
1012
1013
  }
1013
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SkyTileDashboardColumnComponent, decorators: [{
1014
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyTileDashboardColumnComponent, decorators: [{
1014
1015
  type: Component,
1015
- args: [{ selector: 'sky-tile-dashboard-column', hostDirectives: [SkyThemeComponentClassDirective], template: "<div class=\"sky-tile-dashboard-column\">\n <div #content></div>\n</div>\n", styles: [":host.sky-cmp-theme-default{--sky-override-tile-dashboard-column-padding-gt-sm: 0 10px;--sky-override-tile-dashboard-column-padding-xs: 0}:host{display:flex;flex-grow:1;overflow:hidden}:host{padding:var(--sky-override-tile-dashboard-column-padding-xs, var(--sky-comp-tile-dashboard-column-space-inset-xs-top) calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-right) + var(--sky-comp-tile-dashboard-column-space-inset-xs-right)) calc(var(--sky-space-stacked-xl) + var(--sky-comp-tile-dashboard-column-space-inset-xs-bottom)) calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-left) + var(--sky-comp-tile-dashboard-column-space-inset-xs-left)))}:host-context(.sky-responsive-container-xs),:host-context(.sky-responsive-container-sm),:host-context(.sky-responsive-container-md),:host-context(.sky-responsive-container-lg){padding:var(--sky-override-tile-dashboard-column-padding-xs, var(--sky-comp-tile-dashboard-column-space-inset-xs-top) calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-right) + var(--sky-comp-tile-dashboard-column-space-inset-xs-right)) calc(var(--sky-space-stacked-xl) + var(--sky-comp-tile-dashboard-column-space-inset-xs-bottom)) calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-left) + var(--sky-comp-tile-dashboard-column-space-inset-xs-left)))}@media(min-width:768px){:host{padding:var(--sky-override-tile-dashboard-column-padding-gt-sm, var(--sky-comp-tile-dashboard-column-space-inset-sm-top) var(--sky-comp-tile-dashboard-column-space-inset-sm-right) var(--sky-comp-tile-dashboard-column-space-inset-sm-bottom) var(--sky-comp-tile-dashboard-column-space-inset-sm-left))}:host.sky-tile-dashboard-layout-single{padding-bottom:calc(var(--sky-space-stacked-xl) + var(--sky-comp-tile-dashboard-column-space-inset-sm-bottom))}}:host-context(.sky-responsive-container-sm),:host-context(.sky-responsive-container-md),:host-context(.sky-responsive-container-lg){padding:var(--sky-override-tile-dashboard-column-padding-gt-sm, var(--sky-comp-tile-dashboard-column-space-inset-sm-top) var(--sky-comp-tile-dashboard-column-space-inset-sm-right) var(--sky-comp-tile-dashboard-column-space-inset-sm-bottom) var(--sky-comp-tile-dashboard-column-space-inset-sm-left))}:host-context(.sky-responsive-container-sm).sky-tile-dashboard-layout-single,:host-context(.sky-responsive-container-md).sky-tile-dashboard-layout-single,:host-context(.sky-responsive-container-lg).sky-tile-dashboard-layout-single{padding-bottom:calc(var(--sky-space-stacked-xl) + var(--sky-comp-tile-dashboard-column-space-inset-sm-bottom))}.sky-tile-dashboard-column{min-height:100px;width:100%}\n"] }]
1016
+ args: [{ selector: 'sky-tile-dashboard-column', changeDetection: ChangeDetectionStrategy.Eager, hostDirectives: [SkyThemeComponentClassDirective], template: "<div class=\"sky-tile-dashboard-column\">\n <div #content></div>\n</div>\n", styles: [":host.sky-cmp-theme-default{--sky-override-tile-dashboard-column-padding-gt-sm: 0 10px;--sky-override-tile-dashboard-column-padding-xs: 0}:host{display:flex;flex-grow:1;overflow:hidden}:host{padding:var(--sky-override-tile-dashboard-column-padding-xs, var(--sky-comp-tile-dashboard-column-space-inset-xs-top) calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-right) + var(--sky-comp-tile-dashboard-column-space-inset-xs-right)) calc(var(--sky-space-stacked-xl) + var(--sky-comp-tile-dashboard-column-space-inset-xs-bottom)) calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-left) + var(--sky-comp-tile-dashboard-column-space-inset-xs-left)))}:host-context(.sky-responsive-container-xs),:host-context(.sky-responsive-container-sm),:host-context(.sky-responsive-container-md),:host-context(.sky-responsive-container-lg){padding:var(--sky-override-tile-dashboard-column-padding-xs, var(--sky-comp-tile-dashboard-column-space-inset-xs-top) calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-right) + var(--sky-comp-tile-dashboard-column-space-inset-xs-right)) calc(var(--sky-space-stacked-xl) + var(--sky-comp-tile-dashboard-column-space-inset-xs-bottom)) calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-left) + var(--sky-comp-tile-dashboard-column-space-inset-xs-left)))}@media(min-width:768px){:host{padding:var(--sky-override-tile-dashboard-column-padding-gt-sm, var(--sky-comp-tile-dashboard-column-space-inset-sm-top) var(--sky-comp-tile-dashboard-column-space-inset-sm-right) var(--sky-comp-tile-dashboard-column-space-inset-sm-bottom) var(--sky-comp-tile-dashboard-column-space-inset-sm-left))}:host.sky-tile-dashboard-layout-single{padding-bottom:calc(var(--sky-space-stacked-xl) + var(--sky-comp-tile-dashboard-column-space-inset-sm-bottom))}}:host-context(.sky-responsive-container-sm),:host-context(.sky-responsive-container-md),:host-context(.sky-responsive-container-lg){padding:var(--sky-override-tile-dashboard-column-padding-gt-sm, var(--sky-comp-tile-dashboard-column-space-inset-sm-top) var(--sky-comp-tile-dashboard-column-space-inset-sm-right) var(--sky-comp-tile-dashboard-column-space-inset-sm-bottom) var(--sky-comp-tile-dashboard-column-space-inset-sm-left))}:host-context(.sky-responsive-container-sm).sky-tile-dashboard-layout-single,:host-context(.sky-responsive-container-md).sky-tile-dashboard-layout-single,:host-context(.sky-responsive-container-lg).sky-tile-dashboard-layout-single{padding-bottom:calc(var(--sky-space-stacked-xl) + var(--sky-comp-tile-dashboard-column-space-inset-sm-bottom))}.sky-tile-dashboard-column{min-height:100px;width:100%}\n"] }]
1016
1017
  }], propDecorators: { content: [{
1017
1018
  type: ViewChild,
1018
1019
  args: ['content', {
@@ -1077,7 +1078,8 @@ class SkyTileDashboardComponent {
1077
1078
  layoutClassName += ' sky-tile-dashboard-gt-xs';
1078
1079
  }
1079
1080
  return layoutClassName;
1080
- }, ...(ngDevMode ? [{ debugName: "layoutClassName" }] : []));
1081
+ }, /* @ts-ignore */
1082
+ ...(ngDevMode ? [{ debugName: "layoutClassName" }] : /* istanbul ignore next */ []));
1081
1083
  this.#configSet = false;
1082
1084
  this.#ngUnsubscribe = new Subject();
1083
1085
  this.#viewReady = false;
@@ -1135,14 +1137,14 @@ class SkyTileDashboardComponent {
1135
1137
  break;
1136
1138
  }
1137
1139
  }
1138
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SkyTileDashboardComponent, deps: [{ token: SkyTileDashboardService }, { token: i2.SkyLibResourcesService, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
1139
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: SkyTileDashboardComponent, isStandalone: false, selector: "sky-tile-dashboard", inputs: { config: "config", messageStream: "messageStream", settingsKey: "settingsKey" }, outputs: { configChange: "configChange" }, host: { properties: { "class": "layoutClassName()" } }, providers: [SkyTileDashboardService], viewQueries: [{ propertyName: "singleColumn", first: true, predicate: ["singleColumn"], descendants: true, read: SkyTileDashboardColumnComponent }, { propertyName: "columns", predicate: SkyTileDashboardColumnComponent, descendants: true }], hostDirectives: [{ directive: i7.SkyThemeComponentClassDirective }], ngImport: i0, template: "@if (config) {\n <span aria-live=\"assertive\" class=\"sky-assistive-text\">\n {{ tileMovedReport }}\n </span>\n @for (\n column of config.layout.multiColumn;\n track column;\n let first = $first, last = $last\n ) {\n <sky-tile-dashboard-column\n class=\"sky-tile-dashboard-layout-multi\"\n [ngClass]=\"{\n 'sky-tile-dashboard-layout-multi-first': first,\n 'sky-tile-dashboard-layout-multi-last': last\n }\"\n [ngStyle]=\"{\n 'flex-basis': 100 / config.layout.multiColumn.length + '%'\n }\"\n />\n }\n <sky-tile-dashboard-column\n #singleColumn\n class=\"sky-tile-dashboard-layout-single\"\n />\n <span class=\"sky-screen-reader-only\" [id]=\"moveInstructionsId\">{{\n 'skyux_tile_move_instructions' | skyLibResources\n }}</span>\n <ng-content />\n}\n", styles: [":host.sky-cmp-theme-default{--sky-override-tile-dashboard-background-color: #eeeeef;--sky-override-tile-dashboard-column-padding: 0;--sky-override-tile-dashboard-multi-column-padding: 0 10px;--sky-override-tile-dashboard-padding-top: 20px}:host{background-color:var(--sky-override-tile-dashboard-background-color, transparent);display:block;padding:var(--sky-override-tile-dashboard-column-padding, var(--sky-comp-tile-dashboard-space-inset-xs-top) var(--sky-comp-tile-dashboard-space-inset-xs-right) var(--sky-comp-tile-dashboard-space-inset-xs-bottom) var(--sky-comp-tile-dashboard-space-inset-xs-left));margin-bottom:calc(var(--sky-space-stacked-xl) * -1)}:host .sky-tile-dashboard-layout-multi{display:none}:host .sky-tile-dashboard-layout-single{display:block}:host-context(.sky-tile-dashboard-gt-xs){padding-top:var(--sky-override-tile-dashboard-padding-top, var(--sky-comp-tile-dashboard-space-inset-xs-top))!important}:host{margin-left:calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-left) * -1);margin-right:calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-right) * -1)}:host-context(.sky-responsive-container-xs),:host-context(.sky-responsive-container-sm),:host-context(.sky-responsive-container-md),:host-context(.sky-responsive-container-lg){margin-left:calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-left) * -1);margin-right:calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-right) * -1)}@media(min-width:768px){:host{margin-left:0;margin-right:0}}:host-context(.sky-responsive-container-sm),:host-context(.sky-responsive-container-md),:host-context(.sky-responsive-container-lg){margin-left:0;margin-right:0}:host-context(.sky-tile-dashboard-multi-column){display:flex;padding:var(--sky-override-tile-dashboard-multi-column-padding, var(--sky-comp-tile-dashboard-space-inset-sm-top) var(--sky-comp-tile-dashboard-space-inset-sm-right) var(--sky-comp-tile-dashboard-space-inset-sm-bottom) var(--sky-comp-tile-dashboard-space-inset-sm-left));margin-bottom:0}:host-context(.sky-tile-dashboard-multi-column) .sky-tile-dashboard-layout-multi{display:block}:host-context(.sky-tile-dashboard-multi-column) .sky-tile-dashboard-layout-single{display:none}@media screen{.sky-assistive-text{width:1px;height:1px;padding:0;opacity:0;position:absolute;margin:-1px;border:0;overflow:hidden;clip-path:inset(50%);outline:none;white-space:nowrap}}:host-context(.sky-theme-modern .sky-layout-host-blocks){padding:0;margin-left:calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-left) * -1);margin-right:calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-right) * -1)}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: SkyTileDashboardColumnComponent, selector: "sky-tile-dashboard-column" }, { kind: "pipe", type: i2.SkyLibResourcesPipe, name: "skyLibResources" }] }); }
1140
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyTileDashboardComponent, deps: [{ token: SkyTileDashboardService }, { token: i2.SkyLibResourcesService, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
1141
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.1", type: SkyTileDashboardComponent, isStandalone: false, selector: "sky-tile-dashboard", inputs: { config: "config", messageStream: "messageStream", settingsKey: "settingsKey" }, outputs: { configChange: "configChange" }, host: { properties: { "class": "layoutClassName()" } }, providers: [SkyTileDashboardService], viewQueries: [{ propertyName: "singleColumn", first: true, predicate: ["singleColumn"], descendants: true, read: SkyTileDashboardColumnComponent }, { propertyName: "columns", predicate: SkyTileDashboardColumnComponent, descendants: true }], hostDirectives: [{ directive: i7.SkyThemeComponentClassDirective }], ngImport: i0, template: "@if (config) {\n <span aria-live=\"assertive\" class=\"sky-assistive-text\">\n {{ tileMovedReport }}\n </span>\n @for (\n column of config.layout.multiColumn;\n track column;\n let first = $first, last = $last\n ) {\n <sky-tile-dashboard-column\n class=\"sky-tile-dashboard-layout-multi\"\n [ngClass]=\"{\n 'sky-tile-dashboard-layout-multi-first': first,\n 'sky-tile-dashboard-layout-multi-last': last\n }\"\n [ngStyle]=\"{\n 'flex-basis': 100 / config.layout.multiColumn.length + '%'\n }\"\n />\n }\n <sky-tile-dashboard-column\n #singleColumn\n class=\"sky-tile-dashboard-layout-single\"\n />\n <span class=\"sky-screen-reader-only\" [id]=\"moveInstructionsId\">{{\n 'skyux_tile_move_instructions' | skyLibResources\n }}</span>\n <ng-content />\n}\n", styles: [":host.sky-cmp-theme-default{--sky-override-tile-dashboard-background-color: #eeeeef;--sky-override-tile-dashboard-column-padding: 0;--sky-override-tile-dashboard-multi-column-padding: 0 10px;--sky-override-tile-dashboard-padding-top: 20px}:host{background-color:var(--sky-override-tile-dashboard-background-color, transparent);display:block;padding:var(--sky-override-tile-dashboard-column-padding, var(--sky-comp-tile-dashboard-space-inset-xs-top) var(--sky-comp-tile-dashboard-space-inset-xs-right) var(--sky-comp-tile-dashboard-space-inset-xs-bottom) var(--sky-comp-tile-dashboard-space-inset-xs-left));margin-bottom:calc(var(--sky-space-stacked-xl) * -1)}:host .sky-tile-dashboard-layout-multi{display:none}:host .sky-tile-dashboard-layout-single{display:block}:host-context(.sky-tile-dashboard-gt-xs){padding-top:var(--sky-override-tile-dashboard-padding-top, var(--sky-comp-tile-dashboard-space-inset-xs-top))!important}:host{margin-left:calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-left) * -1);margin-right:calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-right) * -1)}:host-context(.sky-responsive-container-xs),:host-context(.sky-responsive-container-sm),:host-context(.sky-responsive-container-md),:host-context(.sky-responsive-container-lg){margin-left:calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-left) * -1);margin-right:calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-right) * -1)}@media(min-width:768px){:host{margin-left:0;margin-right:0}}:host-context(.sky-responsive-container-sm),:host-context(.sky-responsive-container-md),:host-context(.sky-responsive-container-lg){margin-left:0;margin-right:0}:host-context(.sky-tile-dashboard-multi-column){display:flex;padding:var(--sky-override-tile-dashboard-multi-column-padding, var(--sky-comp-tile-dashboard-space-inset-sm-top) var(--sky-comp-tile-dashboard-space-inset-sm-right) var(--sky-comp-tile-dashboard-space-inset-sm-bottom) var(--sky-comp-tile-dashboard-space-inset-sm-left));margin-bottom:0}:host-context(.sky-tile-dashboard-multi-column) .sky-tile-dashboard-layout-multi{display:block}:host-context(.sky-tile-dashboard-multi-column) .sky-tile-dashboard-layout-single{display:none}@media screen{.sky-assistive-text{width:1px;height:1px;padding:0;opacity:0;position:absolute;margin:-1px;border:0;overflow:hidden;clip-path:inset(50%);outline:none;white-space:nowrap}}:host-context(.sky-theme-modern .sky-layout-host-blocks){padding:0;margin-left:calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-left) * -1);margin-right:calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-right) * -1)}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: SkyTileDashboardColumnComponent, selector: "sky-tile-dashboard-column" }, { kind: "pipe", type: i2.SkyLibResourcesPipe, name: "skyLibResources" }], changeDetection: i0.ChangeDetectionStrategy.Eager }); }
1140
1142
  }
1141
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SkyTileDashboardComponent, decorators: [{
1143
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyTileDashboardComponent, decorators: [{
1142
1144
  type: Component,
1143
1145
  args: [{ selector: 'sky-tile-dashboard', providers: [SkyTileDashboardService], host: {
1144
1146
  '[class]': 'layoutClassName()',
1145
- }, standalone: false, hostDirectives: [SkyThemeComponentClassDirective], template: "@if (config) {\n <span aria-live=\"assertive\" class=\"sky-assistive-text\">\n {{ tileMovedReport }}\n </span>\n @for (\n column of config.layout.multiColumn;\n track column;\n let first = $first, last = $last\n ) {\n <sky-tile-dashboard-column\n class=\"sky-tile-dashboard-layout-multi\"\n [ngClass]=\"{\n 'sky-tile-dashboard-layout-multi-first': first,\n 'sky-tile-dashboard-layout-multi-last': last\n }\"\n [ngStyle]=\"{\n 'flex-basis': 100 / config.layout.multiColumn.length + '%'\n }\"\n />\n }\n <sky-tile-dashboard-column\n #singleColumn\n class=\"sky-tile-dashboard-layout-single\"\n />\n <span class=\"sky-screen-reader-only\" [id]=\"moveInstructionsId\">{{\n 'skyux_tile_move_instructions' | skyLibResources\n }}</span>\n <ng-content />\n}\n", styles: [":host.sky-cmp-theme-default{--sky-override-tile-dashboard-background-color: #eeeeef;--sky-override-tile-dashboard-column-padding: 0;--sky-override-tile-dashboard-multi-column-padding: 0 10px;--sky-override-tile-dashboard-padding-top: 20px}:host{background-color:var(--sky-override-tile-dashboard-background-color, transparent);display:block;padding:var(--sky-override-tile-dashboard-column-padding, var(--sky-comp-tile-dashboard-space-inset-xs-top) var(--sky-comp-tile-dashboard-space-inset-xs-right) var(--sky-comp-tile-dashboard-space-inset-xs-bottom) var(--sky-comp-tile-dashboard-space-inset-xs-left));margin-bottom:calc(var(--sky-space-stacked-xl) * -1)}:host .sky-tile-dashboard-layout-multi{display:none}:host .sky-tile-dashboard-layout-single{display:block}:host-context(.sky-tile-dashboard-gt-xs){padding-top:var(--sky-override-tile-dashboard-padding-top, var(--sky-comp-tile-dashboard-space-inset-xs-top))!important}:host{margin-left:calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-left) * -1);margin-right:calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-right) * -1)}:host-context(.sky-responsive-container-xs),:host-context(.sky-responsive-container-sm),:host-context(.sky-responsive-container-md),:host-context(.sky-responsive-container-lg){margin-left:calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-left) * -1);margin-right:calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-right) * -1)}@media(min-width:768px){:host{margin-left:0;margin-right:0}}:host-context(.sky-responsive-container-sm),:host-context(.sky-responsive-container-md),:host-context(.sky-responsive-container-lg){margin-left:0;margin-right:0}:host-context(.sky-tile-dashboard-multi-column){display:flex;padding:var(--sky-override-tile-dashboard-multi-column-padding, var(--sky-comp-tile-dashboard-space-inset-sm-top) var(--sky-comp-tile-dashboard-space-inset-sm-right) var(--sky-comp-tile-dashboard-space-inset-sm-bottom) var(--sky-comp-tile-dashboard-space-inset-sm-left));margin-bottom:0}:host-context(.sky-tile-dashboard-multi-column) .sky-tile-dashboard-layout-multi{display:block}:host-context(.sky-tile-dashboard-multi-column) .sky-tile-dashboard-layout-single{display:none}@media screen{.sky-assistive-text{width:1px;height:1px;padding:0;opacity:0;position:absolute;margin:-1px;border:0;overflow:hidden;clip-path:inset(50%);outline:none;white-space:nowrap}}:host-context(.sky-theme-modern .sky-layout-host-blocks){padding:0;margin-left:calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-left) * -1);margin-right:calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-right) * -1)}\n"] }]
1147
+ }, standalone: false, changeDetection: ChangeDetectionStrategy.Eager, hostDirectives: [SkyThemeComponentClassDirective], template: "@if (config) {\n <span aria-live=\"assertive\" class=\"sky-assistive-text\">\n {{ tileMovedReport }}\n </span>\n @for (\n column of config.layout.multiColumn;\n track column;\n let first = $first, last = $last\n ) {\n <sky-tile-dashboard-column\n class=\"sky-tile-dashboard-layout-multi\"\n [ngClass]=\"{\n 'sky-tile-dashboard-layout-multi-first': first,\n 'sky-tile-dashboard-layout-multi-last': last\n }\"\n [ngStyle]=\"{\n 'flex-basis': 100 / config.layout.multiColumn.length + '%'\n }\"\n />\n }\n <sky-tile-dashboard-column\n #singleColumn\n class=\"sky-tile-dashboard-layout-single\"\n />\n <span class=\"sky-screen-reader-only\" [id]=\"moveInstructionsId\">{{\n 'skyux_tile_move_instructions' | skyLibResources\n }}</span>\n <ng-content />\n}\n", styles: [":host.sky-cmp-theme-default{--sky-override-tile-dashboard-background-color: #eeeeef;--sky-override-tile-dashboard-column-padding: 0;--sky-override-tile-dashboard-multi-column-padding: 0 10px;--sky-override-tile-dashboard-padding-top: 20px}:host{background-color:var(--sky-override-tile-dashboard-background-color, transparent);display:block;padding:var(--sky-override-tile-dashboard-column-padding, var(--sky-comp-tile-dashboard-space-inset-xs-top) var(--sky-comp-tile-dashboard-space-inset-xs-right) var(--sky-comp-tile-dashboard-space-inset-xs-bottom) var(--sky-comp-tile-dashboard-space-inset-xs-left));margin-bottom:calc(var(--sky-space-stacked-xl) * -1)}:host .sky-tile-dashboard-layout-multi{display:none}:host .sky-tile-dashboard-layout-single{display:block}:host-context(.sky-tile-dashboard-gt-xs){padding-top:var(--sky-override-tile-dashboard-padding-top, var(--sky-comp-tile-dashboard-space-inset-xs-top))!important}:host{margin-left:calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-left) * -1);margin-right:calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-right) * -1)}:host-context(.sky-responsive-container-xs),:host-context(.sky-responsive-container-sm),:host-context(.sky-responsive-container-md),:host-context(.sky-responsive-container-lg){margin-left:calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-left) * -1);margin-right:calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-right) * -1)}@media(min-width:768px){:host{margin-left:0;margin-right:0}}:host-context(.sky-responsive-container-sm),:host-context(.sky-responsive-container-md),:host-context(.sky-responsive-container-lg){margin-left:0;margin-right:0}:host-context(.sky-tile-dashboard-multi-column){display:flex;padding:var(--sky-override-tile-dashboard-multi-column-padding, var(--sky-comp-tile-dashboard-space-inset-sm-top) var(--sky-comp-tile-dashboard-space-inset-sm-right) var(--sky-comp-tile-dashboard-space-inset-sm-bottom) var(--sky-comp-tile-dashboard-space-inset-sm-left));margin-bottom:0}:host-context(.sky-tile-dashboard-multi-column) .sky-tile-dashboard-layout-multi{display:block}:host-context(.sky-tile-dashboard-multi-column) .sky-tile-dashboard-layout-single{display:none}@media screen{.sky-assistive-text{width:1px;height:1px;padding:0;opacity:0;position:absolute;margin:-1px;border:0;overflow:hidden;clip-path:inset(50%);outline:none;white-space:nowrap}}:host-context(.sky-theme-modern .sky-layout-host-blocks){padding:0;margin-left:calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-left) * -1);margin-right:calc(var(--sky-comp-tile-dashboard-column-space-inset-sm-right) * -1)}\n"] }]
1146
1148
  }], ctorParameters: () => [{ type: SkyTileDashboardService }, { type: i2.SkyLibResourcesService, decorators: [{
1147
1149
  type: Optional
1148
1150
  }] }], propDecorators: { config: [{
@@ -1165,14 +1167,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
1165
1167
  }] } });
1166
1168
 
1167
1169
  class SkyTileDashboardModule {
1168
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SkyTileDashboardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1169
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.0", ngImport: i0, type: SkyTileDashboardModule, declarations: [SkyTileDashboardComponent], imports: [CommonModule,
1170
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyTileDashboardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1171
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.1", ngImport: i0, type: SkyTileDashboardModule, declarations: [SkyTileDashboardComponent], imports: [CommonModule,
1170
1172
  SkyTileDashboardColumnComponent,
1171
1173
  SkyTilesResourcesModule], exports: [SkyTileDashboardComponent] }); }
1172
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SkyTileDashboardModule, imports: [CommonModule,
1174
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyTileDashboardModule, imports: [CommonModule,
1173
1175
  SkyTilesResourcesModule] }); }
1174
1176
  }
1175
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SkyTileDashboardModule, decorators: [{
1177
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyTileDashboardModule, decorators: [{
1176
1178
  type: NgModule,
1177
1179
  args: [{
1178
1180
  declarations: [SkyTileDashboardComponent],
@@ -1186,11 +1188,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
1186
1188
  }] });
1187
1189
 
1188
1190
  class SkyTileDashboardColumnModule {
1189
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SkyTileDashboardColumnModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1190
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.0", ngImport: i0, type: SkyTileDashboardColumnModule, imports: [SkyTileDashboardColumnComponent], exports: [SkyTileDashboardColumnComponent] }); }
1191
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SkyTileDashboardColumnModule }); }
1191
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyTileDashboardColumnModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1192
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.1", ngImport: i0, type: SkyTileDashboardColumnModule, imports: [SkyTileDashboardColumnComponent], exports: [SkyTileDashboardColumnComponent] }); }
1193
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyTileDashboardColumnModule }); }
1192
1194
  }
1193
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SkyTileDashboardColumnModule, decorators: [{
1195
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyTileDashboardColumnModule, decorators: [{
1194
1196
  type: NgModule,
1195
1197
  args: [{
1196
1198
  imports: [SkyTileDashboardColumnComponent],
@@ -1199,17 +1201,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
1199
1201
  }] });
1200
1202
 
1201
1203
  class SkyTilesModule {
1202
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SkyTilesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1203
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.0", ngImport: i0, type: SkyTilesModule, exports: [SkyTileContentModule,
1204
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyTilesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1205
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.0.1", ngImport: i0, type: SkyTilesModule, exports: [SkyTileContentModule,
1204
1206
  SkyTileModule,
1205
1207
  SkyTileDashboardColumnModule,
1206
1208
  SkyTileDashboardModule] }); }
1207
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SkyTilesModule, imports: [SkyTileContentModule,
1209
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyTilesModule, imports: [SkyTileContentModule,
1208
1210
  SkyTileModule,
1209
1211
  SkyTileDashboardColumnModule,
1210
1212
  SkyTileDashboardModule] }); }
1211
1213
  }
1212
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SkyTilesModule, decorators: [{
1214
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.1", ngImport: i0, type: SkyTilesModule, decorators: [{
1213
1215
  type: NgModule,
1214
1216
  args: [{
1215
1217
  exports: [
@@ -1 +1 @@
1
- {"version":3,"file":"skyux-tiles.mjs","sources":["../../../../../libs/components/tiles/src/lib/modules/tiles/tile/tile-summary.component.ts","../../../../../libs/components/tiles/src/lib/modules/tiles/tile/tile-summary.component.html","../../../../../libs/components/tiles/src/lib/modules/tiles/tile/tile-title-id-token.ts","../../../../../libs/components/tiles/src/lib/modules/tiles/tile/tile-title.component.ts","../../../../../libs/components/tiles/src/lib/modules/tiles/tile/tile-title.component.html","../../../../../libs/components/tiles/src/lib/modules/shared/sky-tiles-resources.module.ts","../../../../../libs/components/tiles/src/lib/modules/tiles/tile-dashboard/tile-dashboard.service.ts","../../../../../libs/components/tiles/src/lib/modules/tiles/tile/tile.component.ts","../../../../../libs/components/tiles/src/lib/modules/tiles/tile/tile.component.html","../../../../../libs/components/tiles/src/lib/modules/tiles/tile/tile.module.ts","../../../../../libs/components/tiles/src/lib/modules/tiles/tile-content/tile-content-section.component.ts","../../../../../libs/components/tiles/src/lib/modules/tiles/tile-content/tile-content-section.component.html","../../../../../libs/components/tiles/src/lib/modules/tiles/tile-content/tile-content.component.ts","../../../../../libs/components/tiles/src/lib/modules/tiles/tile-content/tile-content.component.html","../../../../../libs/components/tiles/src/lib/modules/tiles/tile-content/tile-content.module.ts","../../../../../libs/components/tiles/src/lib/modules/tiles/tile-dashboard/tile-dashboard-message-type.ts","../../../../../libs/components/tiles/src/lib/modules/tiles/tile-dashboard-column/tile-dashboard-column.component.ts","../../../../../libs/components/tiles/src/lib/modules/tiles/tile-dashboard-column/tile-dashboard-column.component.html","../../../../../libs/components/tiles/src/lib/modules/tiles/tile-dashboard/tile-dashboard.component.ts","../../../../../libs/components/tiles/src/lib/modules/tiles/tile-dashboard/tile-dashboard.component.html","../../../../../libs/components/tiles/src/lib/modules/tiles/tile-dashboard/tile-dashboard.module.ts","../../../../../libs/components/tiles/src/lib/modules/tiles/tile-dashboard-column/tile-dashboard-column.module.ts","../../../../../libs/components/tiles/src/lib/modules/tiles/tiles.module.ts","../../../../../libs/components/tiles/src/skyux-tiles.ts"],"sourcesContent":["import { Component } from '@angular/core';\n\n/**\n * Specifies content to display in the tile's summary.\n */\n@Component({\n selector: 'sky-tile-summary',\n templateUrl: 'tile-summary.component.html',\n})\nexport class SkyTileSummaryComponent {}\n","<ng-content />\n","import { InjectionToken } from '@angular/core';\n\nexport const SKY_TILE_TITLE_ID = new InjectionToken<string>(\n 'SKY_TILE_TITLE_ID',\n);\n","import { Component, inject } from '@angular/core';\nimport { SkyTrimModule } from '@skyux/core';\n\nimport { SKY_TILE_TITLE_ID } from './tile-title-id-token';\n\n/**\n * Specifies content to display in the tile's title.\n */\n@Component({\n selector: 'sky-tile-title',\n templateUrl: './tile-title.component.html',\n styleUrls: ['./tile-title.component.scss'],\n imports: [SkyTrimModule],\n})\nexport class SkyTileTitleComponent {\n protected readonly tileTitleId = inject(SKY_TILE_TITLE_ID);\n}\n","<h2 class=\"sky-tile-title sky-font-heading-2\">\n <span skyTrim [id]=\"tileTitleId\"><ng-content /></span\n ><span class=\"sky-control-help-container\"\n ><ng-content select=\".sky-control-help\"></ng-content\n ></span>\n</h2>\n","/* istanbul ignore file */\n\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-tiles' 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_tile_expand: { message: 'Expand or collapse {0}' },\n skyux_tile_expand_default: { message: 'Expand or collapse' },\n skyux_tile_help: { message: '{0} help' },\n skyux_tile_help_default: { message: 'Help' },\n skyux_tile_settings: { message: '{0} settings' },\n skyux_tile_settings_default: { message: 'Settings' },\n skyux_tile_move: { message: 'Move {0}' },\n skyux_tile_move_default: { message: 'Move' },\n skyux_tile_move_instructions: {\n message:\n \"When focus is placed on a tile's move button, use the arrow keys to move it. The up and down keys change its position within a column. The left and right keys move it between columns.\",\n },\n skyux_tile_moved_assistive_text: {\n message:\n '{0} moved. Current column: {1} of {2}. Current position in column: {3} of {4}',\n },\n },\n 'FR-CA': {\n skyux_tile_expand: { message: 'Agrandir ou réduire {0}' },\n skyux_tile_expand_default: { message: 'Agrandir ou réduire' },\n skyux_tile_help: { message: '{0} aide' },\n skyux_tile_help_default: { message: 'Aide' },\n skyux_tile_settings: { message: '{0} paramètres' },\n skyux_tile_settings_default: { message: 'Paramètres' },\n skyux_tile_move: { message: 'Déplacer {0}' },\n skyux_tile_move_default: { message: 'Déplacer' },\n skyux_tile_move_instructions: {\n message:\n 'Lorsque le curseur est placé sur le bouton déplacer d’une mosaïque, utilisez les touches fléchées pour la déplacer. Les flèches vers le haut et vers le bas modifie la position dans une colonne. Les flèches de gauche et de droite la déplace d’une colonne à l’autre.',\n },\n skyux_tile_moved_assistive_text: {\n message:\n '{0} déplacé(e). Colonne actuelle : {1} de {2}. Position actuelle dans la colonne : {3} de {4}',\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 SkyTilesResourcesModule {}\n","import {\n DragRef,\n DropListRef,\n createDragRef,\n createDropListRef,\n} from '@angular/cdk/drag-drop';\nimport {\n AfterRenderRef,\n ComponentRef,\n DestroyRef,\n EventEmitter,\n Injectable,\n Injector,\n Output,\n QueryList,\n RendererFactory2,\n afterNextRender,\n computed,\n effect,\n inject,\n} from '@angular/core';\nimport { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';\nimport {\n SkyDynamicComponentService,\n SkyMediaQueryService,\n SkyUIConfigService,\n} from '@skyux/core';\n\nimport { take } from 'rxjs/operators';\n\nimport { SkyTileDashboardColumnComponent } from '../tile-dashboard-column/tile-dashboard-column.component';\nimport { SkyTileDashboardConfig } from '../tile-dashboard-config/tile-dashboard-config';\nimport { SkyTileDashboardConfigLayoutColumn } from '../tile-dashboard-config/tile-dashboard-config-layout-column';\nimport { SkyTileDashboardConfigLayoutTile } from '../tile-dashboard-config/tile-dashboard-config-layout-tile';\nimport { SkyTileDashboardConfigTile } from '../tile-dashboard-config/tile-dashboard-config-tile';\nimport { SkyTileComponent } from '../tile/tile.component';\n\nimport { SkyTileDashboardColumnMode } from './tile-dashboard-column-mode';\n\nconst ATTR_TILE_ID = '_sky-tile-dashboard-tile-id';\n\nlet bagIdIndex = 0;\n\n@Injectable()\nexport class SkyTileDashboardService {\n /**\n * @internal\n */\n public bagId: string;\n\n /**\n * @internal\n */\n public configChange = new EventEmitter<SkyTileDashboardConfig>();\n\n /**\n * Fires when the tile dashboard's initialization is complete.\n */\n @Output()\n public dashboardInitialized = new EventEmitter<void>();\n\n #columns: QueryList<SkyTileDashboardColumnComponent> | undefined;\n #config: SkyTileDashboardConfig | undefined;\n #singleColumn: SkyTileDashboardColumnComponent | undefined;\n #settingsKey: string | undefined;\n #tileComponents: ComponentRef<any>[] | undefined;\n\n readonly #breakpoint = toSignal(\n inject(SkyMediaQueryService).breakpointChange,\n );\n\n readonly #destroyRef = inject(DestroyRef);\n readonly #injector = inject(Injector);\n readonly #dragRefs: DragRef[] = [];\n readonly #dropListRefs: DropListRef[] = [];\n #pendingRenderRef: AfterRenderRef | undefined;\n readonly #dynamicComponentService = inject(SkyDynamicComponentService);\n readonly #renderer = inject(RendererFactory2).createRenderer(undefined, null);\n readonly #uiConfigService = inject(SkyUIConfigService);\n\n readonly #mode = computed<SkyTileDashboardColumnMode>(() => {\n const breakpoint = this.#breakpoint();\n\n return breakpoint === 'xs' || breakpoint === 'sm' ? 'single' : 'multi';\n });\n\n constructor() {\n effect(() => {\n const mode = this.#mode();\n this.changeColumnMode(mode);\n });\n\n this.bagId = `sky-tile-dashboard-bag-${++bagIdIndex}`;\n\n this.#destroyRef.onDestroy(() => {\n this.#disposeDragDrop();\n });\n }\n\n /**\n * @internal\n */\n public init(\n config: SkyTileDashboardConfig,\n columns?: QueryList<SkyTileDashboardColumnComponent>,\n singleColumn?: SkyTileDashboardColumnComponent,\n settingsKey?: string,\n ): void {\n // Clone this so changes to the config object outside of this class don't modify\n // the config used inside and vice versa.\n this.#config = Object.assign({}, config) as SkyTileDashboardConfig;\n\n // Verify that all tiles are accounted for in the layout.\n const tileIds = [\n ...new Set([\n ...this.#config.layout.multiColumn.flatMap((column) =>\n column.tiles.map(({ id }) => id),\n ),\n ...this.#config.layout.singleColumn.tiles.map(({ id }) => id),\n ]),\n ];\n this.#checkForNewTiles(this.#config, tileIds);\n\n if (settingsKey) {\n this.#settingsKey = settingsKey;\n\n this.#uiConfigService\n .getConfig(settingsKey, this.#config)\n .pipe(take(1), takeUntilDestroyed(this.#destroyRef))\n .subscribe({\n next: (value: any) => {\n if (this.#config && value.persisted) {\n this.#config.layout = value.layout;\n this.#checkForNewTiles(this.#config, value.tileIds);\n this.configChange.emit(this.#config);\n }\n this.#checkReadyAndLoadTiles(columns, singleColumn);\n },\n error: () => {\n // Config setting key doesn't exist or other config service error\n this.#checkReadyAndLoadTiles(columns, singleColumn);\n },\n });\n } else {\n this.#checkReadyAndLoadTiles(columns, singleColumn);\n }\n }\n\n /**\n * Adds a new tile to the tile dashboard.\n * @param tile Specifies the tile configuration.\n * @param component Specifies the tile component to add.\n */\n public addTileComponent(\n tile: SkyTileDashboardConfigLayoutTile,\n component: ComponentRef<any>,\n ): void {\n this.#tileComponents = this.#tileComponents || [];\n\n this.#tileComponents.push(component);\n\n component.location.nativeElement.setAttribute(ATTR_TILE_ID, tile.id);\n }\n\n /**\n * @internal\n * Registers the grab handle for a tile component so it can be used as the\n * drag handle. This is necessary when the tile is rendered asynchronously\n * (e.g., wrapped in an `@if` block) after the initial drag refs are created.\n */\n public registerGrabHandle(tile: SkyTileComponent): void {\n const handle = tile.grabHandle?.nativeElement;\n\n if (!handle) {\n return;\n }\n\n const skyTileEl = tile.elementRef.nativeElement;\n const dragRef = this.#dragRefs.find((ref) =>\n ref.getRootElement().contains(skyTileEl),\n );\n\n if (dragRef) {\n dragRef.withHandles([handle]);\n }\n }\n\n /**\n * Checks whether a specified tile is collapsed.\n * @param tile Specifies the tile component to check.\n */\n public tileIsCollapsed(tile: SkyTileComponent): boolean {\n const tileConfig = this.#findTile(this.#getTileId(tile));\n\n if (tileConfig) {\n return tileConfig.isCollapsed;\n }\n\n return false;\n }\n\n /**\n * Sets the collapsed state of all tiles.\n * @param isCollapsed Indicates whether tiles are collapsed.\n */\n public setAllTilesCollapsed(isCollapsed: boolean): void {\n if (this.#config && this.#config.layout.multiColumn) {\n for (const column of this.#config.layout.multiColumn) {\n for (const tile of column.tiles) {\n tile.isCollapsed = isCollapsed;\n }\n }\n for (const tile of this.#config.layout.singleColumn.tiles) {\n tile.isCollapsed = isCollapsed;\n }\n }\n\n if (this.#settingsKey) {\n this.#setUserConfig(this.#config);\n }\n\n this.configChange.emit(this.#config);\n }\n\n /**\n * Sets the collapsed state of a specified tile.\n * @param tile Specifies the tile component.\n * @param isCollapsed Indicates whether the tile is collapsed.\n */\n public setTileCollapsed(\n tile: SkyTileComponent | undefined,\n isCollapsed: boolean,\n ): void {\n const tileConfig = this.#findTile(this.#getTileId(tile));\n\n if (tileConfig) {\n tileConfig.isCollapsed = isCollapsed;\n\n if (this.#settingsKey) {\n this.#setUserConfig(this.#config);\n }\n\n this.configChange.emit(this.#config);\n }\n }\n\n /**\n * @internal\n */\n public getTileComponentType(\n layoutTile: SkyTileDashboardConfigLayoutTile | undefined,\n ): any {\n if (layoutTile && this.#config) {\n for (const tile of this.#config.tiles) {\n if (tile.id === layoutTile.id) {\n return tile.componentType;\n }\n }\n }\n\n return undefined;\n }\n\n /**\n * @internal\n */\n public changeColumnMode(mode: SkyTileDashboardColumnMode): void {\n if (this.#config) {\n if (mode === 'single') {\n this.#moveTilesToSingleColumn();\n } else {\n this.#moveTilesToMultiColumn();\n }\n\n this.#syncDragDropItems();\n }\n }\n\n /**\n * @internal\n */\n public getTileComponent(tileId: string): ComponentRef<any> | undefined {\n return this.#tileComponents?.find(\n (tileComponent) =>\n tileComponent.location.nativeElement.getAttribute(ATTR_TILE_ID) ===\n tileId,\n );\n }\n\n /**\n * @internal\n */\n public moveTileOnKeyDown(\n tileCmp: SkyTileComponent,\n direction: 'up' | 'down' | 'left' | 'right',\n tileDescription: string,\n ): void {\n if (this.#config) {\n const mode = this.#mode();\n const tileId = this.#getTileId(tileCmp);\n const tile = this.#findTile(tileId);\n\n let column: SkyTileDashboardConfigLayoutColumn | undefined;\n let colIndex = 0;\n\n if (mode === 'single') {\n column = this.#config.layout.singleColumn;\n } else if (this.#config.layout.multiColumn) {\n colIndex = this.#findTileColumnIndex(\n this.#config.layout.multiColumn,\n tileId,\n );\n column = this.#config.layout.multiColumn[colIndex];\n }\n\n if (column && tile && tileId) {\n if (direction === 'left' || direction === 'right') {\n if (mode === 'multi') {\n this.#moveTileArrowLeftRight(\n tile,\n tileDescription,\n direction,\n colIndex,\n column,\n this.#config.layout.multiColumn,\n );\n }\n } else {\n // Get the column element\n let columnEl: Element | undefined;\n if (mode === 'single') {\n columnEl = this.#getColumnEl(this.#singleColumn);\n } else {\n columnEl = this.#getColumnEl(this.#columns?.toArray()[colIndex]);\n }\n this.#moveTileArrowUpDown(\n tile,\n tileDescription,\n direction,\n colIndex,\n column,\n columnEl,\n );\n }\n }\n }\n }\n\n #moveTileArrowLeftRight(\n tile: SkyTileDashboardConfigLayoutTile,\n tileDescription: string,\n direction: 'left' | 'right',\n colIndex: number,\n column: SkyTileDashboardConfigLayoutColumn,\n multiColumn: SkyTileDashboardConfigLayoutColumn[],\n ): void {\n const operator = direction === 'left' ? -1 : 1;\n const newColumn = multiColumn[colIndex + operator];\n\n if (newColumn) {\n // Move the tile to the end of the new column\n newColumn.tiles.push(tile);\n column.tiles = column.tiles.filter((item) => item !== tile);\n this.#moveTilesToColumn(this.#columns?.toArray()[colIndex + operator], [\n tile,\n ]);\n\n this.#syncDragDropItems();\n\n // Report the change in configuration\n this.#emitTileMove(\n tileDescription,\n tile,\n colIndex + operator + 1,\n newColumn.tiles.length,\n );\n }\n }\n\n #moveTileArrowUpDown(\n tile: SkyTileDashboardConfigLayoutTile,\n tileDescription: string,\n direction: 'up' | 'down',\n colIndex: number,\n column: SkyTileDashboardConfigLayoutColumn,\n columnEl: Element | undefined,\n ): void {\n const operator = direction === 'up' ? -1 : 1;\n const curIndex = column.tiles.findIndex((value) => value.id === tile.id);\n const tileComponentInstance = this.getTileComponent(tile.id);\n\n if (tileComponentInstance && column.tiles[curIndex + operator]) {\n const temp = column.tiles[curIndex + operator];\n column.tiles[curIndex + operator] = tile;\n column.tiles[curIndex] = temp;\n\n if (columnEl) {\n // Move the tile element in the document\n if (curIndex + operator === column.tiles.length - 1) {\n this.#renderer.appendChild(\n columnEl,\n tileComponentInstance.location.nativeElement,\n );\n } else {\n this.#renderer.insertBefore(\n columnEl,\n tileComponentInstance.location.nativeElement,\n this.getTileComponent(column.tiles[curIndex + operator + 1].id)\n ?.location.nativeElement,\n );\n }\n }\n\n this.#syncDragDropItems();\n\n // Report the change in configuration\n this.#emitTileMove(\n tileDescription,\n tile,\n colIndex + 1,\n curIndex + operator + 1,\n );\n }\n }\n\n #emitTileMove(\n tileDescription: string,\n tile: SkyTileDashboardConfigLayoutTile,\n newColumnIndex: number,\n newRowIndex: number,\n ): void {\n const reportConfig = this.#getConfigForUIState();\n if (reportConfig) {\n if (this.#settingsKey) {\n this.#setUserConfig({ ...reportConfig });\n }\n reportConfig.movedTile = {\n tileDescription: this.#getTileDescription(tileDescription, tile),\n column: newColumnIndex,\n position: newRowIndex,\n };\n this.configChange.emit(reportConfig);\n }\n }\n\n #getTileDescription(\n tileDescription: string,\n tile: SkyTileDashboardConfigLayoutTile,\n ): string {\n return tileDescription || tile.id;\n }\n\n #getTileId(tile: SkyTileComponent | undefined): string | undefined {\n if (tile) {\n let el = tile.elementRef.nativeElement;\n let tileId: string;\n\n while (el) {\n tileId = el.getAttribute(ATTR_TILE_ID);\n\n if (tileId) {\n return tileId;\n }\n\n el = el.parentElement;\n }\n }\n\n return undefined;\n }\n\n #getTileOrRemoveFromLayout(\n layoutTile: SkyTileDashboardConfigLayoutTile,\n ): SkyTileDashboardConfigTile | undefined {\n if (layoutTile && this.#config) {\n for (const tile of this.#config.tiles) {\n if (tile.id === layoutTile.id) {\n return tile;\n }\n }\n\n // If the layout tile was not found in the list of tiles, it was removed since last the user updated settings\n if (this.#config?.layout.singleColumn) {\n this.#config.layout.singleColumn.tiles =\n this.#config.layout.singleColumn.tiles.filter(\n (elem) => elem.id !== layoutTile.id,\n );\n }\n\n this.#config?.layout.multiColumn.forEach((elem) => {\n elem.tiles = elem.tiles.filter((res) => res.id !== layoutTile.id);\n });\n }\n\n return undefined;\n }\n\n #checkReadyAndLoadTiles(\n columns: QueryList<SkyTileDashboardColumnComponent> | undefined,\n singleColumn: SkyTileDashboardColumnComponent | undefined,\n ): void {\n this.#columns = columns;\n this.#singleColumn = singleColumn;\n if (this.#config && this.#columns) {\n this.#loadTiles(this.#config, this.#columns.toArray());\n this.#initDragDrop();\n this.dashboardInitialized.emit();\n }\n }\n\n #loadTiles(\n config: SkyTileDashboardConfig,\n columns: SkyTileDashboardColumnComponent[],\n ): void {\n const layout = config.layout;\n\n if (this.#mode() === 'single') {\n for (const tile of layout.singleColumn.tiles) {\n this.#loadTileIntoColumn(this.#singleColumn, tile);\n }\n } else {\n for (let i = 0, n = layout.multiColumn.length; i < n; i++) {\n const column = columns[i];\n for (const tile of layout.multiColumn[i].tiles) {\n this.#loadTileIntoColumn(column, tile);\n }\n }\n }\n }\n\n #loadTileIntoColumn(\n column: SkyTileDashboardColumnComponent | undefined,\n layoutTile: SkyTileDashboardConfigLayoutTile,\n ): void {\n if (column) {\n const tile = this.#getTileOrRemoveFromLayout(layoutTile);\n\n if (tile && this.#dynamicComponentService) {\n const componentType = tile.componentType;\n const providers = tile.providers ?? [];\n\n const componentRef = this.#dynamicComponentService.createComponent(\n componentType,\n {\n providers: providers,\n viewContainerRef: column.content,\n environmentInjector: column.injector,\n className: 'sky-tile-parent',\n },\n );\n\n this.addTileComponent(layoutTile, componentRef);\n\n // Make sure the component is marked for changes in case the parent component uses\n // the OnPush change detection strategy.\n componentRef.changeDetectorRef.markForCheck();\n }\n }\n }\n\n #moveTilesToSingleColumn(): void {\n this.#moveTilesToColumn(\n this.#singleColumn,\n this.#config?.layout.singleColumn.tiles,\n );\n }\n\n #moveTilesToMultiColumn(): void {\n let layoutColumns: SkyTileDashboardConfigLayoutColumn[] = [];\n if (this.#config) {\n layoutColumns = this.#config.layout.multiColumn;\n }\n const columns: SkyTileDashboardColumnComponent[] =\n this.#columns?.toArray() ?? [];\n\n for (let i = 0, n = layoutColumns.length; i < n; i++) {\n this.#moveTilesToColumn(columns[i], layoutColumns[i].tiles);\n }\n }\n\n #moveTilesToColumn(\n column: SkyTileDashboardColumnComponent | undefined,\n layoutTiles: SkyTileDashboardConfigLayoutTile[] | undefined,\n ): void {\n const columnEl = this.#getColumnEl(column);\n if (columnEl && layoutTiles) {\n for (const layoutTile of layoutTiles) {\n const tileComponentInstance = this.getTileComponent(layoutTile.id);\n if (tileComponentInstance) {\n this.#renderer.appendChild(\n columnEl,\n tileComponentInstance.location.nativeElement,\n );\n }\n }\n }\n }\n\n #getConfigForUIState(): SkyTileDashboardConfig | undefined {\n if (this.#config) {\n this.#config = {\n tiles: this.#config.tiles,\n layout: {\n singleColumn: this.#getSingleColumnLayoutForUIState(this.#config),\n multiColumn: this.#getMultiColumnLayoutForUIState(this.#config),\n },\n };\n }\n\n return this.#config;\n }\n\n #getSingleColumnLayoutForUIState(\n config: SkyTileDashboardConfig,\n ): SkyTileDashboardConfigLayoutColumn {\n if (this.#mode() === 'single') {\n return {\n tiles: this.#getTilesInEl(this.#getColumnEl(this.#singleColumn)),\n };\n }\n\n return config.layout.singleColumn;\n }\n\n #getMultiColumnLayoutForUIState(\n config: SkyTileDashboardConfig,\n ): SkyTileDashboardConfigLayoutColumn[] {\n if (this.#mode() === 'multi') {\n const layoutColumns: SkyTileDashboardConfigLayoutColumn[] = [];\n let columns: SkyTileDashboardColumnComponent[] = [];\n if (this.#columns) {\n columns = this.#columns?.toArray();\n }\n\n for (const column of columns) {\n if (column !== this.#singleColumn) {\n const layoutColumn: SkyTileDashboardConfigLayoutColumn = {\n tiles: this.#getTilesInEl(this.#getColumnEl(column)),\n };\n\n layoutColumns.push(layoutColumn);\n }\n }\n\n return layoutColumns;\n }\n\n return config.layout.multiColumn;\n }\n\n #getTilesInEl(el: Element | undefined): SkyTileDashboardConfigLayoutTile[] {\n const tileEls = el?.querySelectorAll('[' + ATTR_TILE_ID + ']');\n const layoutTiles: SkyTileDashboardConfigLayoutTile[] = [];\n\n if (tileEls) {\n for (let i = 0, n = tileEls.length; i < n; i++) {\n const tileEl = tileEls[i];\n const tileId = tileEl.getAttribute(ATTR_TILE_ID);\n const tile = this.#findTile(tileId);\n\n if (tile) {\n layoutTiles.push(tile);\n }\n }\n }\n\n return layoutTiles;\n }\n\n /**\n * @internal\n * Handles a tile drop event by reading the current DOM state and emitting\n * the updated configuration.\n */\n public handleDrop(): void {\n const config = this.#getConfigForUIState();\n\n if (config) {\n if (this.#settingsKey) {\n this.#setUserConfig(config);\n }\n\n this.configChange.emit(config);\n }\n }\n\n #moveDomElement(event: {\n item: DragRef;\n container: DropListRef;\n previousContainer: DropListRef;\n previousIndex: number;\n currentIndex: number;\n }): void {\n const element = event.item.getRootElement();\n const targetContainer = event.container.element as HTMLElement;\n\n // Get the tile elements currently in the target container (excluding the dragged item).\n const tileChildren = Array.from(\n targetContainer.querySelectorAll(`:scope > [${ATTR_TILE_ID}]`),\n ).filter((el) => el !== element);\n\n const referenceNode = tileChildren[event.currentIndex];\n\n if (referenceNode) {\n targetContainer.insertBefore(element, referenceNode);\n } else {\n targetContainer.appendChild(element);\n }\n }\n\n #initDragDrop(): void {\n this.#disposeDragDrop();\n\n this.#columns?.forEach((column) => {\n const columnEl = this.#getColumnEl(column);\n\n if (columnEl) {\n const dropListRef = createDropListRef(this.#injector, columnEl);\n dropListRef.withOrientation('vertical');\n\n dropListRef.dropped\n .pipe(takeUntilDestroyed(this.#destroyRef))\n .subscribe((event) => {\n this.#moveDomElement(event);\n this.handleDrop();\n this.#syncDragDropItems();\n });\n\n this.#dropListRefs.push(dropListRef);\n }\n });\n\n // Connect all drop lists for cross-column dragging.\n for (const ref of this.#dropListRefs) {\n ref.connectedTo(this.#dropListRefs.filter((r) => r !== ref));\n }\n\n // Defer drag ref creation to after Angular renders tile templates\n // so that grab handle elements are available.\n this.#pendingRenderRef?.destroy();\n this.#pendingRenderRef = afterNextRender(\n () => {\n this.#initDragRefs();\n },\n { injector: this.#injector },\n );\n }\n\n #initDragRefs(): void {\n if (this.#tileComponents) {\n for (const tileComponent of this.#tileComponents) {\n const tileEl = tileComponent.location.nativeElement as HTMLElement;\n const dragRef = createDragRef(this.#injector, tileEl);\n\n const handle = tileEl.querySelector('.sky-tile-grab-handle');\n\n if (handle instanceof HTMLElement) {\n dragRef.withHandles([handle]);\n }\n\n this.#dragRefs.push(dragRef);\n }\n }\n\n this.#syncDragDropItems();\n }\n\n #syncDragDropItems(): void {\n const dragRefByEl = new Map(\n this.#dragRefs.map((dragRef) => [dragRef.getRootElement(), dragRef]),\n );\n\n for (const dropListRef of this.#dropListRefs) {\n const containerEl = dropListRef.element as HTMLElement;\n\n const dragRefsInContainer = Array.from(\n containerEl.querySelectorAll(`[${ATTR_TILE_ID}]`),\n )\n .map((el) => dragRefByEl.get(el as HTMLElement))\n .filter((ref): ref is DragRef => ref !== undefined);\n\n dropListRef.withItems(dragRefsInContainer);\n }\n }\n\n #disposeDragDrop(): void {\n for (const ref of this.#dragRefs) {\n ref.dispose();\n }\n\n for (const ref of this.#dropListRefs) {\n ref.dispose();\n }\n\n this.#dragRefs.length = 0;\n this.#dropListRefs.length = 0;\n this.#pendingRenderRef?.destroy();\n this.#pendingRenderRef = undefined;\n }\n\n #getColumnEl(\n column: SkyTileDashboardColumnComponent | undefined,\n ): HTMLElement | undefined {\n return column?.content?.element.nativeElement.parentNode as\n | HTMLElement\n | undefined;\n }\n\n #findTile(\n tileId: string | undefined | null,\n ): SkyTileDashboardConfigLayoutTile | undefined {\n if (this.#config && this.#config.layout.multiColumn) {\n for (const column of this.#config.layout.multiColumn) {\n if (column.tiles) {\n for (const tile of column.tiles) {\n if (tile.id === tileId) {\n return tile;\n }\n }\n }\n }\n }\n\n return undefined;\n }\n\n #findTileColumnIndex(\n multiColumn: SkyTileDashboardConfigLayoutColumn[],\n tileId: string | undefined,\n ): number {\n return multiColumn.findIndex(\n (col) => !!col.tiles?.find((tile) => tile.id === tileId),\n );\n }\n\n #setUserConfig(config?: SkyTileDashboardConfig): void {\n if (config && this.#settingsKey)\n this.#uiConfigService\n .setConfig(this.#settingsKey, {\n layout: config.layout,\n persisted: true,\n tileIds: config.tiles.map((elem) => elem.id),\n })\n .pipe(take(1), takeUntilDestroyed(this.#destroyRef))\n .subscribe({\n error: (err) => {\n console.warn('Could not save tile dashboard settings.');\n console.warn(err);\n },\n });\n }\n\n #checkForNewTiles(\n config: SkyTileDashboardConfig,\n oldTileIds: string[],\n ): boolean {\n // Get a list of tiles that are in the config's default list but not in the user's settings\n const newTiles = config.tiles.filter(({ id }) => !oldTileIds.includes(id));\n let hasChange = newTiles.length > 0;\n\n const multiColumn: SkyTileDashboardConfigLayoutColumn[] | undefined =\n config.layout.multiColumn;\n const singleColumn: SkyTileDashboardConfigLayoutColumn | undefined =\n config.layout.singleColumn;\n\n // Append new tiles to the end of the layouts\n if (multiColumn) {\n const multiColumnTileIds = multiColumn.flatMap((column) =>\n column.tiles.map((tile) => tile.id),\n );\n const newMultiColumnTiles = [\n ...new Set([\n ...newTiles,\n ...config.tiles.filter(\n (tile) => !multiColumnTileIds.includes(tile.id),\n ),\n ]),\n ] as SkyTileDashboardConfigTile[];\n newMultiColumnTiles.forEach((elem) => {\n const smallest = Math.min(\n ...multiColumn.map((col) => col.tiles.length),\n );\n const locationToAdd = multiColumn.findIndex(\n (col) => col.tiles.length === smallest,\n );\n multiColumn[locationToAdd].tiles.push({\n id: elem.id,\n isCollapsed: false,\n });\n });\n }\n\n if (singleColumn) {\n const singleColumnTileIds = singleColumn.tiles.map((tile) => tile.id);\n const newSingleColumnTiles = [\n ...new Set([\n ...newTiles,\n ...config.tiles.filter(\n (tile) => !singleColumnTileIds.includes(tile.id),\n ),\n ]),\n ] as SkyTileDashboardConfigTile[];\n newSingleColumnTiles.forEach((elem) => {\n singleColumn.tiles.push({ id: elem.id, isCollapsed: false });\n });\n }\n\n singleColumn?.tiles.forEach((tile) => {\n hasChange ||= !this.#getTileOrRemoveFromLayout(tile);\n });\n\n multiColumn?.forEach((column) => {\n column.tiles.forEach((tile) => {\n hasChange ||= !this.#getTileOrRemoveFromLayout(tile);\n });\n });\n\n return hasChange;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Optional,\n Output,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n inject,\n} from '@angular/core';\nimport {\n SkyIdModule,\n SkyIdService,\n SkyLogService,\n _SkyAnimationSlideComponent,\n} from '@skyux/core';\nimport { SkyHelpInlineModule } from '@skyux/help-inline';\nimport { SkyIconModule } from '@skyux/icon';\nimport { SkyChevronModule } from '@skyux/indicators';\nimport { SkyThemeModule } from '@skyux/theme';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyTilesResourcesModule } from '../../shared/sky-tiles-resources.module';\nimport { SkyTileDashboardService } from '../tile-dashboard/tile-dashboard.service';\n\nimport { SKY_TILE_TITLE_ID } from './tile-title-id-token';\nimport { SkyTileTitleComponent } from './tile-title.component';\n\n/**\n * Provides a common look-and-feel for tab content.\n */\n@Component({\n selector: 'sky-tile',\n styleUrls: ['./tile.component.scss'],\n templateUrl: './tile.component.html',\n imports: [\n CommonModule,\n SkyChevronModule,\n SkyHelpInlineModule,\n SkyIconModule,\n SkyIdModule,\n SkyThemeModule,\n SkyTilesResourcesModule,\n _SkyAnimationSlideComponent,\n ],\n providers: [\n {\n provide: SKY_TILE_TITLE_ID,\n useFactory(): string {\n const idService = inject(SkyIdService);\n return idService.generateId();\n },\n },\n ],\n})\nexport class SkyTileComponent implements AfterViewInit, OnChanges, OnDestroy {\n /**\n * A help key that identifies the global help content to display. When specified along with `tileName`, a [help inline](https://developer.blackbaud.com/skyux/components/help-inline) button is\n * added to the tile header. Clicking the button invokes [global help](https://developer.blackbaud.com/skyux/learn/develop/global-help) as configured by the application.\n * This property only applies when `tileName` is also specified.\n */\n @Input()\n public helpKey: string | undefined;\n\n /**\n * The content of the help popover. When specified along with `tileName`, a [help inline](https://developer.blackbaud.com/skyux/components/help-inline)\n * button is added to the tile 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 `tileName` 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 * Whether to display a settings button in the tile header. To display the\n * button, you must also listen for the `settingsClick` event.\n * @default true\n */\n @Input()\n public showSettings = true;\n\n /**\n * Whether to display a help button in the tile header. To display the\n * button, you must also listen for the `helpClick` event.\n * @default true\n * @deprecated Set the `helpKey` or `helpPopoverContent` inputs instead.\n */\n @Input()\n public showHelp = true;\n\n /**\n * The human-readable name for the tile that is available to the tile controls for multiple purposes, such as accessibility and instrumentation. The component uses the name to construct ARIA labels for the help, expand/collapse, settings, and drag handle buttons to [support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility).\n * For example, if the tile name is \"Constituents,\" the help input's `aria-label` is \"Constituents help\" and the drag handle's `aria-label` is \"Move Constituents.\" For more information about the `aria-label` attribute, see the [WAI-ARIA definition](https://www.w3.org/TR/wai-aria/#aria-label).\n */\n @Input()\n public tileName: string | undefined;\n\n /**\n * Fires when users select the settings button in the tile header. The settings\n * button only appears when the `showSettings` property is set to `true`.\n */\n @Output()\n public settingsClick = new EventEmitter();\n\n /**\n * Fires when the tile's collapsed state changes. Returns `true` when the tile\n * collapses and `false` when it expands.\n */\n @Output()\n public isCollapsedChange = new EventEmitter<boolean>();\n\n /**\n * Fires when users select the help button in the tile header. The help\n * button only appears when the `showHelp` property is set to `true`.\n * @deprecated Set the `helpKey` or `helpPopoverContent` inputs instead.\n */\n @Output()\n public helpClick = new EventEmitter();\n\n public get isCollapsed(): boolean {\n if (this.#dashboardService) {\n const configCollapsedState = this.#dashboardService.tileIsCollapsed(this);\n this.#_isCollapsed = configCollapsedState;\n }\n\n return this.#_isCollapsed;\n }\n\n /**\n * Whether the tile is in a collapsed state.\n * @default false\n */\n @Input()\n public set isCollapsed(value: boolean | undefined) {\n this.#_isCollapsed = !!value;\n\n if (this.#dashboardService) {\n this.#dashboardService.setTileCollapsed(this, this.#_isCollapsed);\n }\n\n this.isCollapsedChange.emit(this.#_isCollapsed);\n }\n\n public ariaDescribedBy: string | undefined;\n\n public isInDashboardColumn = false;\n\n @ViewChild('grabHandle', {\n read: ElementRef,\n static: false,\n })\n public grabHandle: ElementRef | undefined;\n\n @ViewChild('titleContainer', {\n read: ElementRef,\n static: false,\n })\n public title: ElementRef | undefined;\n\n @ContentChild(SkyTileTitleComponent, { read: ElementRef })\n protected titleRef: ElementRef | undefined;\n\n #changeDetector: ChangeDetectorRef;\n #dashboardService: SkyTileDashboardService | undefined;\n #ngUnsubscribe = new Subject<void>();\n #_isCollapsed = false;\n\n protected tileTitleId = inject(SKY_TILE_TITLE_ID);\n\n readonly #logSvc = inject(SkyLogService);\n\n constructor(\n public elementRef: ElementRef,\n changeDetector: ChangeDetectorRef,\n @Optional() dashboardService?: SkyTileDashboardService,\n ) {\n this.#changeDetector = changeDetector;\n this.#dashboardService = dashboardService;\n this.isInDashboardColumn = !!this.#dashboardService;\n\n if (this.#dashboardService) {\n this.ariaDescribedBy = `${this.#dashboardService.bagId}-move-instructions`;\n\n /**\n * This subscription ensures that if any values which come in from the dashboard service are\n * updated that the component will update if the tile's parent component utilizes OnPush\n * change detection.\n */\n this.#dashboardService.configChange\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n this.#changeDetector.markForCheck();\n });\n }\n }\n\n public ngAfterViewInit(): void {\n if (this.#dashboardService) {\n this.#dashboardService.registerGrabHandle(this);\n }\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes['showHelp']?.firstChange) {\n this.#logSvc.deprecated('SkyTileComponent.showHelp', {\n deprecationMajorVersion: 10,\n replacementRecommendation:\n 'Set the `helpKey` or `helpPopoverContent` inputs instead.',\n });\n }\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n public settingsButtonClicked(): void {\n this.settingsClick.emit(undefined);\n }\n\n /**\n * @deprecated\n */\n public helpButtonClicked(): void {\n this.helpClick.emit(undefined);\n }\n\n public get hasSettings(): boolean {\n return this.settingsClick.observed && this.showSettings;\n }\n\n /**\n * @deprecated\n */\n public get hasHelp(): boolean {\n return this.helpClick.observed && this.showHelp;\n }\n\n public titleClick(evt: MouseEvent): void {\n const targetEl = evt.target as HTMLElement | null;\n\n // Don't expand/collapse if the help inline button is clicked.\n if (targetEl?.closest('sky-help-inline') === null) {\n this.isCollapsed = !this.isCollapsed;\n }\n }\n\n public chevronDirectionChange(direction: string): void {\n this.isCollapsed = direction === 'down';\n }\n\n protected moveTile(event: KeyboardEvent): void {\n if (\n ['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'].includes(event.key) &&\n this.#dashboardService\n ) {\n const direction = event.key.toLowerCase().replace('arrow', '') as\n | 'up'\n | 'down'\n | 'left'\n | 'right';\n this.#dashboardService.moveTileOnKeyDown(\n this,\n direction,\n this.title?.nativeElement.innerText,\n );\n this.#focusHandle();\n }\n }\n\n #focusHandle(): void {\n this.grabHandle?.nativeElement.focus();\n }\n}\n","<section\n class=\"sky-tile\"\n [ngClass]=\"{\n 'sky-tile-collapsed': isCollapsed\n }\"\n [skyThemeClass]=\"{\n 'sky-box sky-elevation-1-bordered': 'modern'\n }\"\n>\n <header class=\"sky-tile-header\">\n <div class=\"sky-tile-header-content\" (click)=\"titleClick($event)\">\n <div #titleContainer class=\"sky-tile-header-title\">\n <ng-content select=\"sky-tile-title\" />\n @if (tileName && (helpKey || helpPopoverContent)) {\n <span class=\"sky-control-help-container\">\n <sky-help-inline\n [helpKey]=\"helpKey\"\n [labelText]=\"tileName\"\n [popoverContent]=\"helpPopoverContent\"\n [popoverTitle]=\"helpPopoverTitle\"\n />\n </span>\n }\n </div>\n <div class=\"sky-tile-summary sky-font-heading-2\">\n <ng-content select=\"sky-tile-summary\" />\n </div>\n </div>\n <div class=\"sky-tile-header-column-tools\">\n <div class=\"sky-tile-tools\">\n <ng-container *skyThemeIf=\"'default'\">\n @if (hasHelp) {\n <button\n class=\"sky-btn sky-btn-icon-borderless sky-tile-tools-control sky-tile-help\"\n type=\"button\"\n [attr.aria-label]=\"\n tileName\n ? ('skyux_tile_help' | skyLibResources: tileName)\n : ('skyux_tile_help_default' | skyLibResources)\n \"\n (click)=\"helpButtonClicked()\"\n >\n <sky-icon iconName=\"question-circle\" />\n </button>\n }\n </ng-container>\n <sky-chevron\n class=\"sky-tile-tools-control\"\n [ariaControls]=\"tileContent.id\"\n [ariaLabel]=\"\n tileName\n ? ('skyux_tile_expand' | skyLibResources: tileName)\n : ('skyux_tile_expand_default' | skyLibResources)\n \"\n [direction]=\"isCollapsed ? 'down' : 'up'\"\n (directionChange)=\"chevronDirectionChange($event)\"\n />\n @if (hasSettings) {\n <button\n class=\"sky-btn sky-tile-settings sky-btn-icon-borderless sky-tile-tools-control\"\n type=\"button\"\n [attr.aria-label]=\"\n tileName\n ? ('skyux_tile_settings' | skyLibResources: tileName)\n : ('skyux_tile_settings_default' | skyLibResources)\n \"\n (click)=\"settingsButtonClicked()\"\n >\n <sky-icon iconName=\"settings\" />\n </button>\n }\n @if (isInDashboardColumn) {\n <button\n #grabHandle\n class=\"sky-btn sky-btn-icon-borderless sky-tile-tools-control sky-tile-grab-handle\"\n type=\"button\"\n [attr.aria-label]=\"\n tileName\n ? ('skyux_tile_move' | skyLibResources: tileName)\n : ('skyux_tile_move_default' | skyLibResources)\n \"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"moveTile($event)\"\n >\n <sky-icon iconName=\"re-order-dots-vertical\" iconSize=\"s\" />\n </button>\n }\n </div>\n </div>\n </header>\n <div\n #tileContent=\"skyId\"\n class=\"sky-tile-content\"\n role=\"region\"\n skyId\n [attr.aria-label]=\"tileName\"\n [attr.aria-labelledby]=\"!tileName && titleRef ? tileTitleId : undefined\"\n >\n <sky-animation-slide [opened]=\"!isCollapsed\">\n <ng-content select=\"sky-tile-content\" />\n </sky-animation-slide>\n </div>\n</section>\n","import { NgModule } from '@angular/core';\n\nimport { SkyTileSummaryComponent } from './tile-summary.component';\nimport { SkyTileTitleComponent } from './tile-title.component';\nimport { SkyTileComponent } from './tile.component';\n\n@NgModule({\n imports: [SkyTileComponent, SkyTileSummaryComponent, SkyTileTitleComponent],\n exports: [SkyTileComponent, SkyTileSummaryComponent, SkyTileTitleComponent],\n})\nexport class SkyTileModule {}\n","import { Component } from '@angular/core';\nimport { SkyThemeModule } from '@skyux/theme';\n\n/**\n * Specifies content to display inside a padded section of a SkyTileContentComponent.\n */\n@Component({\n selector: 'sky-tile-content-section',\n styleUrls: ['./tile-content-section.component.scss'],\n templateUrl: './tile-content-section.component.html',\n imports: [SkyThemeModule],\n})\nexport class SkyTileContentSectionComponent {}\n","<div class=\"sky-tile-content-section sky-border-bottom-row\">\n <ng-content />\n</div>\n","import { Component } from '@angular/core';\n\n/**\n * Specifies content to display in the tile's body.\n */\n@Component({\n selector: 'sky-tile-content',\n styleUrl: './tile-content.component.scss',\n templateUrl: './tile-content.component.html',\n})\nexport class SkyTileContentComponent {}\n","<ng-content />\n","import { NgModule } from '@angular/core';\n\nimport { SkyTileContentSectionComponent } from './tile-content-section.component';\nimport { SkyTileContentComponent } from './tile-content.component';\n\n@NgModule({\n imports: [SkyTileContentComponent, SkyTileContentSectionComponent],\n exports: [SkyTileContentComponent, SkyTileContentSectionComponent],\n})\nexport class SkyTileContentModule {}\n","/**\n * The type of message to send to the tile dashboard component.\n */\nexport enum SkyTileDashboardMessageType {\n /**\n * Expands all tiles within the tile dashboard.\n */\n ExpandAll = 0,\n\n /**\n * Collapses all tiles within the tile dashboard.\n */\n CollapseAll = 1,\n}\n","import {\n Component,\n EnvironmentInjector,\n ViewChild,\n ViewContainerRef,\n inject,\n} from '@angular/core';\nimport { SkyThemeComponentClassDirective } from '@skyux/theme';\n\nlet columnIdIndex = 0;\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-tile-dashboard-column',\n styleUrls: ['./tile-dashboard-column.component.scss'],\n templateUrl: './tile-dashboard-column.component.html',\n hostDirectives: [SkyThemeComponentClassDirective],\n})\nexport class SkyTileDashboardColumnComponent {\n public readonly injector = inject(EnvironmentInjector);\n\n public columnId = `tile-dashboard-column-${++columnIdIndex}`;\n\n @ViewChild('content', {\n read: ViewContainerRef,\n static: false,\n })\n public content: ViewContainerRef | undefined;\n}\n","<div class=\"sky-tile-dashboard-column\">\n <div #content></div>\n</div>\n","import {\n AfterViewInit,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n Optional,\n Output,\n QueryList,\n ViewChild,\n ViewChildren,\n computed,\n inject,\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { SkyMediaQueryService } from '@skyux/core';\nimport { SkyLibResourcesService } from '@skyux/i18n';\nimport { SkyThemeComponentClassDirective } from '@skyux/theme';\n\nimport { Observable, Subject } from 'rxjs';\nimport { take, takeUntil } from 'rxjs/operators';\n\nimport { SkyTileDashboardColumnComponent } from '../tile-dashboard-column/tile-dashboard-column.component';\nimport { SkyTileDashboardConfig } from '../tile-dashboard-config/tile-dashboard-config';\n\nimport { SkyTileDashboardMessage } from './tile-dashboard-message';\nimport { SkyTileDashboardMessageType } from './tile-dashboard-message-type';\nimport { SkyTileDashboardService } from './tile-dashboard.service';\n\n/**\n * Specifies a container to group multiple tiles.\n */\n@Component({\n selector: 'sky-tile-dashboard',\n styleUrls: ['./tile-dashboard.component.scss'],\n templateUrl: './tile-dashboard.component.html',\n providers: [SkyTileDashboardService],\n host: {\n '[class]': 'layoutClassName()',\n },\n standalone: false,\n hostDirectives: [SkyThemeComponentClassDirective],\n})\nexport class SkyTileDashboardComponent implements AfterViewInit, OnDestroy {\n readonly #breakpoint = toSignal(\n inject(SkyMediaQueryService).breakpointChange,\n );\n\n /**\n * Populates the tile dashboard based on the `SkyTileDashboardConfig` object.\n * @required\n */\n @Input()\n public set config(value: SkyTileDashboardConfig | undefined) {\n if (value && !this.#configSet) {\n this.#_config = value;\n this.#configSet = true;\n this.#checkReady();\n }\n }\n\n public get config(): SkyTileDashboardConfig | undefined {\n return this.#_config;\n }\n\n /**\n * The observable to send commands to the tile dashboard. The commands must respect the\n * `SkyTileDashboardMessage` type.\n */\n @Input()\n public messageStream = new Subject<SkyTileDashboardMessage>();\n\n /**\n * The unique key for the UI Config Service to retrieve stored settings\n * from a database. The UI Config Service saves configuration settings for users\n * to preserve the layout and collapsed state of tile dashboards. The UI Config Service relies on `id` values from the `config` property to maintain user settings. For more information\n * about the UI Config Service, see the\n * [sticky settings documentation](https://developer.blackbaud.com/skyux/learn/develop/sticky-settings).\n */\n @Input()\n public settingsKey: string | undefined;\n\n /**\n * Fires when the tile dashboard changes state and emits a SkyTileDashboardConfig\n * object. This occurs when tiles collapse or expand and when users drag and drop\n * tiles to rearrange them.\n */\n @Output()\n public configChange = new EventEmitter<SkyTileDashboardConfig>();\n\n @ViewChildren(SkyTileDashboardColumnComponent)\n public columns: QueryList<SkyTileDashboardColumnComponent> | undefined;\n\n @ViewChild('singleColumn', {\n read: SkyTileDashboardColumnComponent,\n static: false,\n })\n public singleColumn: SkyTileDashboardColumnComponent | undefined;\n\n public tileMovedReport = '';\n\n public moveInstructionsId: string;\n\n protected layoutClassName = computed(() => {\n const breakpoint = this.#breakpoint();\n\n let layoutClassName = '';\n\n if (breakpoint === 'xs' || breakpoint === 'sm') {\n layoutClassName = 'sky-tile-dashboard-single-column';\n } else {\n layoutClassName = 'sky-tile-dashboard-multi-column';\n }\n\n if (breakpoint === 'xs') {\n layoutClassName += ' sky-tile-dashboard-xs';\n } else {\n layoutClassName += ' sky-tile-dashboard-gt-xs';\n }\n\n return layoutClassName;\n });\n\n #configSet = false;\n #dashboardService: SkyTileDashboardService;\n #ngUnsubscribe = new Subject<void>();\n #resourcesService: SkyLibResourcesService | undefined;\n #viewReady = false;\n #viewReadyTimer: ReturnType<typeof setTimeout> | undefined;\n #_config: SkyTileDashboardConfig | undefined;\n\n constructor(\n dashboardService: SkyTileDashboardService,\n @Optional() resourcesService?: SkyLibResourcesService,\n ) {\n this.#dashboardService = dashboardService;\n this.#resourcesService = resourcesService;\n this.moveInstructionsId =\n this.#dashboardService.bagId + '-move-instructions';\n\n this.#dashboardService.configChange.subscribe(\n (config: SkyTileDashboardConfig) => {\n this.configChange.emit(config);\n\n // Update aria live region with tile drag info\n if (config.movedTile && this.#resourcesService) {\n let messageObservable: Observable<string>;\n\n if (this.#breakpoint() === 'xs' || this.#breakpoint() === 'sm') {\n messageObservable = this.#resourcesService.getString(\n 'skyux_tile_moved_assistive_text',\n config.movedTile.tileDescription,\n '1',\n '1',\n config.movedTile.position.toString(),\n config.layout.singleColumn.tiles.length.toString(),\n );\n } else {\n messageObservable = this.#resourcesService.getString(\n 'skyux_tile_moved_assistive_text',\n config.movedTile.tileDescription,\n config.movedTile.column.toString(),\n config.layout.multiColumn.length.toString(),\n config.movedTile.position.toString(),\n config.layout.multiColumn[\n config.movedTile.column - 1\n ].tiles.length.toString(),\n );\n }\n messageObservable.pipe(take(1)).subscribe((message: string) => {\n this.tileMovedReport = message;\n });\n }\n },\n );\n }\n\n public ngAfterViewInit(): void {\n this.messageStream\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((message: SkyTileDashboardMessage) => {\n this.#handleIncomingMessages(message);\n });\n\n this.#viewReady = true;\n this.#checkReady();\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n #checkReady(): void {\n if (this.#viewReady && this.config && !this.#viewReadyTimer) {\n this.#viewReadyTimer = setTimeout(() => {\n this.#viewReadyTimer = undefined;\n if (this.config && this.columns && this.singleColumn) {\n this.#dashboardService.init(\n this.config,\n this.columns,\n this.singleColumn,\n this.settingsKey,\n );\n }\n }, 0);\n }\n }\n\n #handleIncomingMessages(message: SkyTileDashboardMessage): void {\n switch (message.type) {\n case SkyTileDashboardMessageType.ExpandAll:\n this.#dashboardService.setAllTilesCollapsed(false);\n break;\n\n case SkyTileDashboardMessageType.CollapseAll:\n this.#dashboardService.setAllTilesCollapsed(true);\n break;\n }\n }\n}\n","@if (config) {\n <span aria-live=\"assertive\" class=\"sky-assistive-text\">\n {{ tileMovedReport }}\n </span>\n @for (\n column of config.layout.multiColumn;\n track column;\n let first = $first, last = $last\n ) {\n <sky-tile-dashboard-column\n class=\"sky-tile-dashboard-layout-multi\"\n [ngClass]=\"{\n 'sky-tile-dashboard-layout-multi-first': first,\n 'sky-tile-dashboard-layout-multi-last': last\n }\"\n [ngStyle]=\"{\n 'flex-basis': 100 / config.layout.multiColumn.length + '%'\n }\"\n />\n }\n <sky-tile-dashboard-column\n #singleColumn\n class=\"sky-tile-dashboard-layout-single\"\n />\n <span class=\"sky-screen-reader-only\" [id]=\"moveInstructionsId\">{{\n 'skyux_tile_move_instructions' | skyLibResources\n }}</span>\n <ng-content />\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { SkyTilesResourcesModule } from '../../shared/sky-tiles-resources.module';\nimport { SkyTileDashboardColumnComponent } from '../tile-dashboard-column/tile-dashboard-column.component';\n\nimport { SkyTileDashboardComponent } from './tile-dashboard.component';\n\n@NgModule({\n declarations: [SkyTileDashboardComponent],\n imports: [\n CommonModule,\n SkyTileDashboardColumnComponent,\n SkyTilesResourcesModule,\n ],\n exports: [SkyTileDashboardComponent],\n})\nexport class SkyTileDashboardModule {}\n","import { NgModule } from '@angular/core';\n\nimport { SkyTileDashboardColumnComponent } from './tile-dashboard-column.component';\n\n@NgModule({\n imports: [SkyTileDashboardColumnComponent],\n exports: [SkyTileDashboardColumnComponent],\n})\nexport class SkyTileDashboardColumnModule {}\n","import { NgModule } from '@angular/core';\n\nimport { SkyTileContentModule } from './tile-content/tile-content.module';\nimport { SkyTileDashboardColumnModule } from './tile-dashboard-column/tile-dashboard-column.module';\nimport { SkyTileDashboardModule } from './tile-dashboard/tile-dashboard.module';\nimport { SkyTileModule } from './tile/tile.module';\n\n@NgModule({\n exports: [\n SkyTileContentModule,\n SkyTileModule,\n SkyTileDashboardColumnModule,\n SkyTileDashboardModule,\n ],\n})\nexport class SkyTilesModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.SkyTileDashboardService","i2","i4","i8","i1","i3","i5.SkyTileDashboardColumnComponent"],"mappings":"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"}
1
+ {"version":3,"file":"skyux-tiles.mjs","sources":["../../../../../libs/components/tiles/src/lib/modules/tiles/tile/tile-summary.component.ts","../../../../../libs/components/tiles/src/lib/modules/tiles/tile/tile-summary.component.html","../../../../../libs/components/tiles/src/lib/modules/tiles/tile/tile-title-id-token.ts","../../../../../libs/components/tiles/src/lib/modules/tiles/tile/tile-title.component.ts","../../../../../libs/components/tiles/src/lib/modules/tiles/tile/tile-title.component.html","../../../../../libs/components/tiles/src/lib/modules/shared/sky-tiles-resources.module.ts","../../../../../libs/components/tiles/src/lib/modules/tiles/tile-dashboard/tile-dashboard.service.ts","../../../../../libs/components/tiles/src/lib/modules/tiles/tile/tile.component.ts","../../../../../libs/components/tiles/src/lib/modules/tiles/tile/tile.component.html","../../../../../libs/components/tiles/src/lib/modules/tiles/tile/tile.module.ts","../../../../../libs/components/tiles/src/lib/modules/tiles/tile-content/tile-content-section.component.ts","../../../../../libs/components/tiles/src/lib/modules/tiles/tile-content/tile-content-section.component.html","../../../../../libs/components/tiles/src/lib/modules/tiles/tile-content/tile-content.component.ts","../../../../../libs/components/tiles/src/lib/modules/tiles/tile-content/tile-content.component.html","../../../../../libs/components/tiles/src/lib/modules/tiles/tile-content/tile-content.module.ts","../../../../../libs/components/tiles/src/lib/modules/tiles/tile-dashboard/tile-dashboard-message-type.ts","../../../../../libs/components/tiles/src/lib/modules/tiles/tile-dashboard-column/tile-dashboard-column.component.ts","../../../../../libs/components/tiles/src/lib/modules/tiles/tile-dashboard-column/tile-dashboard-column.component.html","../../../../../libs/components/tiles/src/lib/modules/tiles/tile-dashboard/tile-dashboard.component.ts","../../../../../libs/components/tiles/src/lib/modules/tiles/tile-dashboard/tile-dashboard.component.html","../../../../../libs/components/tiles/src/lib/modules/tiles/tile-dashboard/tile-dashboard.module.ts","../../../../../libs/components/tiles/src/lib/modules/tiles/tile-dashboard-column/tile-dashboard-column.module.ts","../../../../../libs/components/tiles/src/lib/modules/tiles/tiles.module.ts","../../../../../libs/components/tiles/src/skyux-tiles.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n/**\n * Specifies content to display in the tile's summary.\n */\n@Component({\n selector: 'sky-tile-summary',\n changeDetection: ChangeDetectionStrategy.Eager,\n templateUrl: 'tile-summary.component.html',\n})\nexport class SkyTileSummaryComponent {}\n","<ng-content />\n","import { InjectionToken } from '@angular/core';\n\nexport const SKY_TILE_TITLE_ID = new InjectionToken<string>(\n 'SKY_TILE_TITLE_ID',\n);\n","import { ChangeDetectionStrategy, Component, inject } from '@angular/core';\nimport { SkyTrimModule } from '@skyux/core';\n\nimport { SKY_TILE_TITLE_ID } from './tile-title-id-token';\n\n/**\n * Specifies content to display in the tile's title.\n */\n@Component({\n selector: 'sky-tile-title',\n templateUrl: './tile-title.component.html',\n styleUrls: ['./tile-title.component.scss'],\n changeDetection: ChangeDetectionStrategy.Eager,\n imports: [SkyTrimModule],\n})\nexport class SkyTileTitleComponent {\n protected readonly tileTitleId = inject(SKY_TILE_TITLE_ID);\n}\n","<h2 class=\"sky-tile-title sky-font-heading-2\">\n <span skyTrim [id]=\"tileTitleId\"><ng-content /></span\n ><span class=\"sky-control-help-container\"\n ><ng-content select=\".sky-control-help\"></ng-content\n ></span>\n</h2>\n","/* istanbul ignore file */\n\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-tiles' 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_tile_expand: { message: 'Expand or collapse {0}' },\n skyux_tile_expand_default: { message: 'Expand or collapse' },\n skyux_tile_help: { message: '{0} help' },\n skyux_tile_help_default: { message: 'Help' },\n skyux_tile_settings: { message: '{0} settings' },\n skyux_tile_settings_default: { message: 'Settings' },\n skyux_tile_move: { message: 'Move {0}' },\n skyux_tile_move_default: { message: 'Move' },\n skyux_tile_move_instructions: {\n message:\n \"When focus is placed on a tile's move button, use the arrow keys to move it. The up and down keys change its position within a column. The left and right keys move it between columns.\",\n },\n skyux_tile_moved_assistive_text: {\n message:\n '{0} moved. Current column: {1} of {2}. Current position in column: {3} of {4}',\n },\n },\n 'FR-CA': {\n skyux_tile_expand: { message: 'Agrandir ou réduire {0}' },\n skyux_tile_expand_default: { message: 'Agrandir ou réduire' },\n skyux_tile_help: { message: '{0} aide' },\n skyux_tile_help_default: { message: 'Aide' },\n skyux_tile_settings: { message: '{0} paramètres' },\n skyux_tile_settings_default: { message: 'Paramètres' },\n skyux_tile_move: { message: 'Déplacer {0}' },\n skyux_tile_move_default: { message: 'Déplacer' },\n skyux_tile_move_instructions: {\n message:\n 'Lorsque le curseur est placé sur le bouton déplacer d’une mosaïque, utilisez les touches fléchées pour la déplacer. Les flèches vers le haut et vers le bas modifie la position dans une colonne. Les flèches de gauche et de droite la déplace d’une colonne à l’autre.',\n },\n skyux_tile_moved_assistive_text: {\n message:\n '{0} déplacé(e). Colonne actuelle : {1} de {2}. Position actuelle dans la colonne : {3} de {4}',\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 SkyTilesResourcesModule {}\n","import {\n DragRef,\n DropListRef,\n createDragRef,\n createDropListRef,\n} from '@angular/cdk/drag-drop';\nimport {\n AfterRenderRef,\n ComponentRef,\n DestroyRef,\n EventEmitter,\n Injectable,\n Injector,\n Output,\n QueryList,\n RendererFactory2,\n afterNextRender,\n computed,\n effect,\n inject,\n} from '@angular/core';\nimport { takeUntilDestroyed, toSignal } from '@angular/core/rxjs-interop';\nimport {\n SkyDynamicComponentService,\n SkyMediaQueryService,\n SkyUIConfigService,\n} from '@skyux/core';\n\nimport { take } from 'rxjs/operators';\n\nimport { SkyTileDashboardColumnComponent } from '../tile-dashboard-column/tile-dashboard-column.component';\nimport { SkyTileDashboardConfig } from '../tile-dashboard-config/tile-dashboard-config';\nimport { SkyTileDashboardConfigLayoutColumn } from '../tile-dashboard-config/tile-dashboard-config-layout-column';\nimport { SkyTileDashboardConfigLayoutTile } from '../tile-dashboard-config/tile-dashboard-config-layout-tile';\nimport { SkyTileDashboardConfigTile } from '../tile-dashboard-config/tile-dashboard-config-tile';\nimport { SkyTileComponent } from '../tile/tile.component';\n\nimport { SkyTileDashboardColumnMode } from './tile-dashboard-column-mode';\n\nconst ATTR_TILE_ID = '_sky-tile-dashboard-tile-id';\n\nlet bagIdIndex = 0;\n\n@Injectable()\nexport class SkyTileDashboardService {\n /**\n * @internal\n */\n public bagId: string;\n\n /**\n * @internal\n */\n public configChange = new EventEmitter<SkyTileDashboardConfig>();\n\n /**\n * Fires when the tile dashboard's initialization is complete.\n */\n @Output()\n public dashboardInitialized = new EventEmitter<void>();\n\n #columns: QueryList<SkyTileDashboardColumnComponent> | undefined;\n #config: SkyTileDashboardConfig | undefined;\n #singleColumn: SkyTileDashboardColumnComponent | undefined;\n #settingsKey: string | undefined;\n #tileComponents: ComponentRef<any>[] | undefined;\n\n readonly #breakpoint = toSignal(\n inject(SkyMediaQueryService).breakpointChange,\n );\n\n readonly #destroyRef = inject(DestroyRef);\n readonly #injector = inject(Injector);\n readonly #dragRefs: DragRef[] = [];\n readonly #dropListRefs: DropListRef[] = [];\n #pendingRenderRef: AfterRenderRef | undefined;\n readonly #dynamicComponentService = inject(SkyDynamicComponentService);\n readonly #renderer = inject(RendererFactory2).createRenderer(undefined, null);\n readonly #uiConfigService = inject(SkyUIConfigService);\n\n readonly #mode = computed<SkyTileDashboardColumnMode>(() => {\n const breakpoint = this.#breakpoint();\n\n return breakpoint === 'xs' || breakpoint === 'sm' ? 'single' : 'multi';\n });\n\n constructor() {\n effect(() => {\n const mode = this.#mode();\n this.changeColumnMode(mode);\n });\n\n this.bagId = `sky-tile-dashboard-bag-${++bagIdIndex}`;\n\n this.#destroyRef.onDestroy(() => {\n this.#disposeDragDrop();\n });\n }\n\n /**\n * @internal\n */\n public init(\n config: SkyTileDashboardConfig,\n columns?: QueryList<SkyTileDashboardColumnComponent>,\n singleColumn?: SkyTileDashboardColumnComponent,\n settingsKey?: string,\n ): void {\n // Clone this so changes to the config object outside of this class don't modify\n // the config used inside and vice versa.\n this.#config = Object.assign({}, config) as SkyTileDashboardConfig;\n\n // Verify that all tiles are accounted for in the layout.\n const tileIds = [\n ...new Set([\n ...this.#config.layout.multiColumn.flatMap((column) =>\n column.tiles.map(({ id }) => id),\n ),\n ...this.#config.layout.singleColumn.tiles.map(({ id }) => id),\n ]),\n ];\n this.#checkForNewTiles(this.#config, tileIds);\n\n if (settingsKey) {\n this.#settingsKey = settingsKey;\n\n this.#uiConfigService\n .getConfig(settingsKey, this.#config)\n .pipe(take(1), takeUntilDestroyed(this.#destroyRef))\n .subscribe({\n next: (value: any) => {\n if (this.#config && value.persisted) {\n this.#config.layout = value.layout;\n this.#checkForNewTiles(this.#config, value.tileIds);\n this.configChange.emit(this.#config);\n }\n this.#checkReadyAndLoadTiles(columns, singleColumn);\n },\n error: () => {\n // Config setting key doesn't exist or other config service error\n this.#checkReadyAndLoadTiles(columns, singleColumn);\n },\n });\n } else {\n this.#checkReadyAndLoadTiles(columns, singleColumn);\n }\n }\n\n /**\n * Adds a new tile to the tile dashboard.\n * @param tile Specifies the tile configuration.\n * @param component Specifies the tile component to add.\n */\n public addTileComponent(\n tile: SkyTileDashboardConfigLayoutTile,\n component: ComponentRef<any>,\n ): void {\n this.#tileComponents = this.#tileComponents || [];\n\n this.#tileComponents.push(component);\n\n component.location.nativeElement.setAttribute(ATTR_TILE_ID, tile.id);\n }\n\n /**\n * @internal\n * Registers the grab handle for a tile component so it can be used as the\n * drag handle. This is necessary when the tile is rendered asynchronously\n * (e.g., wrapped in an `@if` block) after the initial drag refs are created.\n */\n public registerGrabHandle(tile: SkyTileComponent): void {\n const handle = tile.grabHandle?.nativeElement;\n\n if (!handle) {\n return;\n }\n\n const skyTileEl = tile.elementRef.nativeElement;\n const dragRef = this.#dragRefs.find((ref) =>\n ref.getRootElement().contains(skyTileEl),\n );\n\n if (dragRef) {\n dragRef.withHandles([handle]);\n }\n }\n\n /**\n * Checks whether a specified tile is collapsed.\n * @param tile Specifies the tile component to check.\n */\n public tileIsCollapsed(tile: SkyTileComponent): boolean {\n const tileConfig = this.#findTile(this.#getTileId(tile));\n\n if (tileConfig) {\n return tileConfig.isCollapsed;\n }\n\n return false;\n }\n\n /**\n * Sets the collapsed state of all tiles.\n * @param isCollapsed Indicates whether tiles are collapsed.\n */\n public setAllTilesCollapsed(isCollapsed: boolean): void {\n if (this.#config && this.#config.layout.multiColumn) {\n for (const column of this.#config.layout.multiColumn) {\n for (const tile of column.tiles) {\n tile.isCollapsed = isCollapsed;\n }\n }\n for (const tile of this.#config.layout.singleColumn.tiles) {\n tile.isCollapsed = isCollapsed;\n }\n }\n\n if (this.#settingsKey) {\n this.#setUserConfig(this.#config);\n }\n\n this.configChange.emit(this.#config);\n }\n\n /**\n * Sets the collapsed state of a specified tile.\n * @param tile Specifies the tile component.\n * @param isCollapsed Indicates whether the tile is collapsed.\n */\n public setTileCollapsed(\n tile: SkyTileComponent | undefined,\n isCollapsed: boolean,\n ): void {\n const tileConfig = this.#findTile(this.#getTileId(tile));\n\n if (tileConfig) {\n tileConfig.isCollapsed = isCollapsed;\n\n if (this.#settingsKey) {\n this.#setUserConfig(this.#config);\n }\n\n this.configChange.emit(this.#config);\n }\n }\n\n /**\n * @internal\n */\n public getTileComponentType(\n layoutTile: SkyTileDashboardConfigLayoutTile | undefined,\n ): any {\n if (layoutTile && this.#config) {\n for (const tile of this.#config.tiles) {\n if (tile.id === layoutTile.id) {\n return tile.componentType;\n }\n }\n }\n\n return undefined;\n }\n\n /**\n * @internal\n */\n public changeColumnMode(mode: SkyTileDashboardColumnMode): void {\n if (this.#config) {\n if (mode === 'single') {\n this.#moveTilesToSingleColumn();\n } else {\n this.#moveTilesToMultiColumn();\n }\n\n this.#syncDragDropItems();\n }\n }\n\n /**\n * @internal\n */\n public getTileComponent(tileId: string): ComponentRef<any> | undefined {\n return this.#tileComponents?.find(\n (tileComponent) =>\n tileComponent.location.nativeElement.getAttribute(ATTR_TILE_ID) ===\n tileId,\n );\n }\n\n /**\n * @internal\n */\n public moveTileOnKeyDown(\n tileCmp: SkyTileComponent,\n direction: 'up' | 'down' | 'left' | 'right',\n tileDescription: string,\n ): void {\n if (this.#config) {\n const mode = this.#mode();\n const tileId = this.#getTileId(tileCmp);\n const tile = this.#findTile(tileId);\n\n let column: SkyTileDashboardConfigLayoutColumn | undefined;\n let colIndex = 0;\n\n if (mode === 'single') {\n column = this.#config.layout.singleColumn;\n } else if (this.#config.layout.multiColumn) {\n colIndex = this.#findTileColumnIndex(\n this.#config.layout.multiColumn,\n tileId,\n );\n column = this.#config.layout.multiColumn[colIndex];\n }\n\n if (column && tile && tileId) {\n if (direction === 'left' || direction === 'right') {\n if (mode === 'multi') {\n this.#moveTileArrowLeftRight(\n tile,\n tileDescription,\n direction,\n colIndex,\n column,\n this.#config.layout.multiColumn,\n );\n }\n } else {\n // Get the column element\n let columnEl: Element | undefined;\n if (mode === 'single') {\n columnEl = this.#getColumnEl(this.#singleColumn);\n } else {\n columnEl = this.#getColumnEl(this.#columns?.toArray()[colIndex]);\n }\n this.#moveTileArrowUpDown(\n tile,\n tileDescription,\n direction,\n colIndex,\n column,\n columnEl,\n );\n }\n }\n }\n }\n\n #moveTileArrowLeftRight(\n tile: SkyTileDashboardConfigLayoutTile,\n tileDescription: string,\n direction: 'left' | 'right',\n colIndex: number,\n column: SkyTileDashboardConfigLayoutColumn,\n multiColumn: SkyTileDashboardConfigLayoutColumn[],\n ): void {\n const operator = direction === 'left' ? -1 : 1;\n const newColumn = multiColumn[colIndex + operator];\n\n if (newColumn) {\n // Move the tile to the end of the new column\n newColumn.tiles.push(tile);\n column.tiles = column.tiles.filter((item) => item !== tile);\n this.#moveTilesToColumn(this.#columns?.toArray()[colIndex + operator], [\n tile,\n ]);\n\n this.#syncDragDropItems();\n\n // Report the change in configuration\n this.#emitTileMove(\n tileDescription,\n tile,\n colIndex + operator + 1,\n newColumn.tiles.length,\n );\n }\n }\n\n #moveTileArrowUpDown(\n tile: SkyTileDashboardConfigLayoutTile,\n tileDescription: string,\n direction: 'up' | 'down',\n colIndex: number,\n column: SkyTileDashboardConfigLayoutColumn,\n columnEl: Element | undefined,\n ): void {\n const operator = direction === 'up' ? -1 : 1;\n const curIndex = column.tiles.findIndex((value) => value.id === tile.id);\n const tileComponentInstance = this.getTileComponent(tile.id);\n\n if (tileComponentInstance && column.tiles[curIndex + operator]) {\n const temp = column.tiles[curIndex + operator];\n column.tiles[curIndex + operator] = tile;\n column.tiles[curIndex] = temp;\n\n if (columnEl) {\n // Move the tile element in the document\n if (curIndex + operator === column.tiles.length - 1) {\n this.#renderer.appendChild(\n columnEl,\n tileComponentInstance.location.nativeElement,\n );\n } else {\n this.#renderer.insertBefore(\n columnEl,\n tileComponentInstance.location.nativeElement,\n this.getTileComponent(column.tiles[curIndex + operator + 1].id)\n ?.location.nativeElement,\n );\n }\n }\n\n this.#syncDragDropItems();\n\n // Report the change in configuration\n this.#emitTileMove(\n tileDescription,\n tile,\n colIndex + 1,\n curIndex + operator + 1,\n );\n }\n }\n\n #emitTileMove(\n tileDescription: string,\n tile: SkyTileDashboardConfigLayoutTile,\n newColumnIndex: number,\n newRowIndex: number,\n ): void {\n const reportConfig = this.#getConfigForUIState();\n if (reportConfig) {\n if (this.#settingsKey) {\n this.#setUserConfig({ ...reportConfig });\n }\n reportConfig.movedTile = {\n tileDescription: this.#getTileDescription(tileDescription, tile),\n column: newColumnIndex,\n position: newRowIndex,\n };\n this.configChange.emit(reportConfig);\n }\n }\n\n #getTileDescription(\n tileDescription: string,\n tile: SkyTileDashboardConfigLayoutTile,\n ): string {\n return tileDescription || tile.id;\n }\n\n #getTileId(tile: SkyTileComponent | undefined): string | undefined {\n if (tile) {\n let el = tile.elementRef.nativeElement;\n let tileId: string;\n\n while (el) {\n tileId = el.getAttribute(ATTR_TILE_ID);\n\n if (tileId) {\n return tileId;\n }\n\n el = el.parentElement;\n }\n }\n\n return undefined;\n }\n\n #getTileOrRemoveFromLayout(\n layoutTile: SkyTileDashboardConfigLayoutTile,\n ): SkyTileDashboardConfigTile | undefined {\n if (layoutTile && this.#config) {\n for (const tile of this.#config.tiles) {\n if (tile.id === layoutTile.id) {\n return tile;\n }\n }\n\n // If the layout tile was not found in the list of tiles, it was removed since last the user updated settings\n if (this.#config?.layout.singleColumn) {\n this.#config.layout.singleColumn.tiles =\n this.#config.layout.singleColumn.tiles.filter(\n (elem) => elem.id !== layoutTile.id,\n );\n }\n\n this.#config?.layout.multiColumn.forEach((elem) => {\n elem.tiles = elem.tiles.filter((res) => res.id !== layoutTile.id);\n });\n }\n\n return undefined;\n }\n\n #checkReadyAndLoadTiles(\n columns: QueryList<SkyTileDashboardColumnComponent> | undefined,\n singleColumn: SkyTileDashboardColumnComponent | undefined,\n ): void {\n this.#columns = columns;\n this.#singleColumn = singleColumn;\n if (this.#config && this.#columns) {\n this.#loadTiles(this.#config, this.#columns.toArray());\n this.#initDragDrop();\n this.dashboardInitialized.emit();\n }\n }\n\n #loadTiles(\n config: SkyTileDashboardConfig,\n columns: SkyTileDashboardColumnComponent[],\n ): void {\n const layout = config.layout;\n\n if (this.#mode() === 'single') {\n for (const tile of layout.singleColumn.tiles) {\n this.#loadTileIntoColumn(this.#singleColumn, tile);\n }\n } else {\n for (let i = 0, n = layout.multiColumn.length; i < n; i++) {\n const column = columns[i];\n for (const tile of layout.multiColumn[i].tiles) {\n this.#loadTileIntoColumn(column, tile);\n }\n }\n }\n }\n\n #loadTileIntoColumn(\n column: SkyTileDashboardColumnComponent | undefined,\n layoutTile: SkyTileDashboardConfigLayoutTile,\n ): void {\n if (column) {\n const tile = this.#getTileOrRemoveFromLayout(layoutTile);\n\n if (tile && this.#dynamicComponentService) {\n const componentType = tile.componentType;\n const providers = tile.providers ?? [];\n\n const componentRef = this.#dynamicComponentService.createComponent(\n componentType,\n {\n providers: providers,\n viewContainerRef: column.content,\n environmentInjector: column.injector,\n className: 'sky-tile-parent',\n },\n );\n\n this.addTileComponent(layoutTile, componentRef);\n\n // Make sure the component is marked for changes in case the parent component uses\n // the OnPush change detection strategy.\n componentRef.changeDetectorRef.markForCheck();\n }\n }\n }\n\n #moveTilesToSingleColumn(): void {\n this.#moveTilesToColumn(\n this.#singleColumn,\n this.#config?.layout.singleColumn.tiles,\n );\n }\n\n #moveTilesToMultiColumn(): void {\n let layoutColumns: SkyTileDashboardConfigLayoutColumn[] = [];\n if (this.#config) {\n layoutColumns = this.#config.layout.multiColumn;\n }\n const columns: SkyTileDashboardColumnComponent[] =\n this.#columns?.toArray() ?? [];\n\n for (let i = 0, n = layoutColumns.length; i < n; i++) {\n this.#moveTilesToColumn(columns[i], layoutColumns[i].tiles);\n }\n }\n\n #moveTilesToColumn(\n column: SkyTileDashboardColumnComponent | undefined,\n layoutTiles: SkyTileDashboardConfigLayoutTile[] | undefined,\n ): void {\n const columnEl = this.#getColumnEl(column);\n if (columnEl && layoutTiles) {\n for (const layoutTile of layoutTiles) {\n const tileComponentInstance = this.getTileComponent(layoutTile.id);\n if (tileComponentInstance) {\n this.#renderer.appendChild(\n columnEl,\n tileComponentInstance.location.nativeElement,\n );\n }\n }\n }\n }\n\n #getConfigForUIState(): SkyTileDashboardConfig | undefined {\n if (this.#config) {\n this.#config = {\n tiles: this.#config.tiles,\n layout: {\n singleColumn: this.#getSingleColumnLayoutForUIState(this.#config),\n multiColumn: this.#getMultiColumnLayoutForUIState(this.#config),\n },\n };\n }\n\n return this.#config;\n }\n\n #getSingleColumnLayoutForUIState(\n config: SkyTileDashboardConfig,\n ): SkyTileDashboardConfigLayoutColumn {\n if (this.#mode() === 'single') {\n return {\n tiles: this.#getTilesInEl(this.#getColumnEl(this.#singleColumn)),\n };\n }\n\n return config.layout.singleColumn;\n }\n\n #getMultiColumnLayoutForUIState(\n config: SkyTileDashboardConfig,\n ): SkyTileDashboardConfigLayoutColumn[] {\n if (this.#mode() === 'multi') {\n const layoutColumns: SkyTileDashboardConfigLayoutColumn[] = [];\n let columns: SkyTileDashboardColumnComponent[] = [];\n if (this.#columns) {\n columns = this.#columns?.toArray();\n }\n\n for (const column of columns) {\n if (column !== this.#singleColumn) {\n const layoutColumn: SkyTileDashboardConfigLayoutColumn = {\n tiles: this.#getTilesInEl(this.#getColumnEl(column)),\n };\n\n layoutColumns.push(layoutColumn);\n }\n }\n\n return layoutColumns;\n }\n\n return config.layout.multiColumn;\n }\n\n #getTilesInEl(el: Element | undefined): SkyTileDashboardConfigLayoutTile[] {\n const tileEls = el?.querySelectorAll('[' + ATTR_TILE_ID + ']');\n const layoutTiles: SkyTileDashboardConfigLayoutTile[] = [];\n\n if (tileEls) {\n for (let i = 0, n = tileEls.length; i < n; i++) {\n const tileEl = tileEls[i];\n const tileId = tileEl.getAttribute(ATTR_TILE_ID);\n const tile = this.#findTile(tileId);\n\n if (tile) {\n layoutTiles.push(tile);\n }\n }\n }\n\n return layoutTiles;\n }\n\n /**\n * @internal\n * Handles a tile drop event by reading the current DOM state and emitting\n * the updated configuration.\n */\n public handleDrop(): void {\n const config = this.#getConfigForUIState();\n\n if (config) {\n if (this.#settingsKey) {\n this.#setUserConfig(config);\n }\n\n this.configChange.emit(config);\n }\n }\n\n #moveDomElement(event: {\n item: DragRef;\n container: DropListRef;\n previousContainer: DropListRef;\n previousIndex: number;\n currentIndex: number;\n }): void {\n const element = event.item.getRootElement();\n const targetContainer = event.container.element as HTMLElement;\n\n // Get the tile elements currently in the target container (excluding the dragged item).\n const tileChildren = Array.from(\n targetContainer.querySelectorAll(`:scope > [${ATTR_TILE_ID}]`),\n ).filter((el) => el !== element);\n\n const referenceNode = tileChildren[event.currentIndex];\n\n if (referenceNode) {\n targetContainer.insertBefore(element, referenceNode);\n } else {\n targetContainer.appendChild(element);\n }\n }\n\n #initDragDrop(): void {\n this.#disposeDragDrop();\n\n this.#columns?.forEach((column) => {\n const columnEl = this.#getColumnEl(column);\n\n if (columnEl) {\n const dropListRef = createDropListRef(this.#injector, columnEl);\n dropListRef.withOrientation('vertical');\n\n dropListRef.dropped\n .pipe(takeUntilDestroyed(this.#destroyRef))\n .subscribe((event) => {\n this.#moveDomElement(event);\n this.handleDrop();\n this.#syncDragDropItems();\n });\n\n this.#dropListRefs.push(dropListRef);\n }\n });\n\n // Connect all drop lists for cross-column dragging.\n for (const ref of this.#dropListRefs) {\n ref.connectedTo(this.#dropListRefs.filter((r) => r !== ref));\n }\n\n // Defer drag ref creation to after Angular renders tile templates\n // so that grab handle elements are available.\n this.#pendingRenderRef?.destroy();\n this.#pendingRenderRef = afterNextRender(\n () => {\n this.#initDragRefs();\n },\n { injector: this.#injector },\n );\n }\n\n #initDragRefs(): void {\n if (this.#tileComponents) {\n for (const tileComponent of this.#tileComponents) {\n const tileEl = tileComponent.location.nativeElement as HTMLElement;\n const dragRef = createDragRef(this.#injector, tileEl);\n\n const handle = tileEl.querySelector('.sky-tile-grab-handle');\n\n if (handle instanceof HTMLElement) {\n dragRef.withHandles([handle]);\n }\n\n this.#dragRefs.push(dragRef);\n }\n }\n\n this.#syncDragDropItems();\n }\n\n #syncDragDropItems(): void {\n const dragRefByEl = new Map(\n this.#dragRefs.map((dragRef) => [dragRef.getRootElement(), dragRef]),\n );\n\n for (const dropListRef of this.#dropListRefs) {\n const containerEl = dropListRef.element as HTMLElement;\n\n const dragRefsInContainer = Array.from(\n containerEl.querySelectorAll(`[${ATTR_TILE_ID}]`),\n )\n .map((el) => dragRefByEl.get(el as HTMLElement))\n .filter((ref): ref is DragRef => ref !== undefined);\n\n dropListRef.withItems(dragRefsInContainer);\n }\n }\n\n #disposeDragDrop(): void {\n for (const ref of this.#dragRefs) {\n ref.dispose();\n }\n\n for (const ref of this.#dropListRefs) {\n ref.dispose();\n }\n\n this.#dragRefs.length = 0;\n this.#dropListRefs.length = 0;\n this.#pendingRenderRef?.destroy();\n this.#pendingRenderRef = undefined;\n }\n\n #getColumnEl(\n column: SkyTileDashboardColumnComponent | undefined,\n ): HTMLElement | undefined {\n return column?.content?.element.nativeElement.parentNode as\n | HTMLElement\n | undefined;\n }\n\n #findTile(\n tileId: string | undefined | null,\n ): SkyTileDashboardConfigLayoutTile | undefined {\n if (this.#config && this.#config.layout.multiColumn) {\n for (const column of this.#config.layout.multiColumn) {\n if (column.tiles) {\n for (const tile of column.tiles) {\n if (tile.id === tileId) {\n return tile;\n }\n }\n }\n }\n }\n\n return undefined;\n }\n\n #findTileColumnIndex(\n multiColumn: SkyTileDashboardConfigLayoutColumn[],\n tileId: string | undefined,\n ): number {\n return multiColumn.findIndex(\n (col) => !!col.tiles?.find((tile) => tile.id === tileId),\n );\n }\n\n #setUserConfig(config?: SkyTileDashboardConfig): void {\n if (config && this.#settingsKey)\n this.#uiConfigService\n .setConfig(this.#settingsKey, {\n layout: config.layout,\n persisted: true,\n tileIds: config.tiles.map((elem) => elem.id),\n })\n .pipe(take(1), takeUntilDestroyed(this.#destroyRef))\n .subscribe({\n error: (err) => {\n console.warn('Could not save tile dashboard settings.');\n console.warn(err);\n },\n });\n }\n\n #checkForNewTiles(\n config: SkyTileDashboardConfig,\n oldTileIds: string[],\n ): boolean {\n // Get a list of tiles that are in the config's default list but not in the user's settings\n const newTiles = config.tiles.filter(({ id }) => !oldTileIds.includes(id));\n let hasChange = newTiles.length > 0;\n\n const multiColumn: SkyTileDashboardConfigLayoutColumn[] | undefined =\n config.layout.multiColumn;\n const singleColumn: SkyTileDashboardConfigLayoutColumn | undefined =\n config.layout.singleColumn;\n\n // Append new tiles to the end of the layouts\n if (multiColumn) {\n const multiColumnTileIds = multiColumn.flatMap((column) =>\n column.tiles.map((tile) => tile.id),\n );\n const newMultiColumnTiles = [\n ...new Set([\n ...newTiles,\n ...config.tiles.filter(\n (tile) => !multiColumnTileIds.includes(tile.id),\n ),\n ]),\n ] as SkyTileDashboardConfigTile[];\n newMultiColumnTiles.forEach((elem) => {\n const smallest = Math.min(\n ...multiColumn.map((col) => col.tiles.length),\n );\n const locationToAdd = multiColumn.findIndex(\n (col) => col.tiles.length === smallest,\n );\n multiColumn[locationToAdd].tiles.push({\n id: elem.id,\n isCollapsed: false,\n });\n });\n }\n\n if (singleColumn) {\n const singleColumnTileIds = singleColumn.tiles.map((tile) => tile.id);\n const newSingleColumnTiles = [\n ...new Set([\n ...newTiles,\n ...config.tiles.filter(\n (tile) => !singleColumnTileIds.includes(tile.id),\n ),\n ]),\n ] as SkyTileDashboardConfigTile[];\n newSingleColumnTiles.forEach((elem) => {\n singleColumn.tiles.push({ id: elem.id, isCollapsed: false });\n });\n }\n\n singleColumn?.tiles.forEach((tile) => {\n hasChange ||= !this.#getTileOrRemoveFromLayout(tile);\n });\n\n multiColumn?.forEach((column) => {\n column.tiles.forEach((tile) => {\n hasChange ||= !this.#getTileOrRemoveFromLayout(tile);\n });\n });\n\n return hasChange;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChild,\n ElementRef,\n EventEmitter,\n Input,\n OnChanges,\n OnDestroy,\n Optional,\n Output,\n SimpleChanges,\n TemplateRef,\n ViewChild,\n inject,\n} from '@angular/core';\nimport {\n SkyIdModule,\n SkyIdService,\n SkyLogService,\n _SkyAnimationSlideComponent,\n} from '@skyux/core';\nimport { SkyHelpInlineModule } from '@skyux/help-inline';\nimport { SkyIconModule } from '@skyux/icon';\nimport { SkyChevronModule } from '@skyux/indicators';\nimport { SkyThemeModule } from '@skyux/theme';\n\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { SkyTilesResourcesModule } from '../../shared/sky-tiles-resources.module';\nimport { SkyTileDashboardService } from '../tile-dashboard/tile-dashboard.service';\n\nimport { SKY_TILE_TITLE_ID } from './tile-title-id-token';\nimport { SkyTileTitleComponent } from './tile-title.component';\n\n/**\n * Provides a common look-and-feel for tab content.\n */\n@Component({\n selector: 'sky-tile',\n styleUrls: ['./tile.component.scss'],\n templateUrl: './tile.component.html',\n imports: [\n CommonModule,\n SkyChevronModule,\n SkyHelpInlineModule,\n SkyIconModule,\n SkyIdModule,\n SkyThemeModule,\n SkyTilesResourcesModule,\n _SkyAnimationSlideComponent,\n ],\n changeDetection: ChangeDetectionStrategy.Eager,\n providers: [\n {\n provide: SKY_TILE_TITLE_ID,\n useFactory(): string {\n const idService = inject(SkyIdService);\n return idService.generateId();\n },\n },\n ],\n})\nexport class SkyTileComponent implements AfterViewInit, OnChanges, OnDestroy {\n /**\n * A help key that identifies the global help content to display. When specified along with `tileName`, a [help inline](https://developer.blackbaud.com/skyux/components/help-inline) button is\n * added to the tile header. Clicking the button invokes [global help](https://developer.blackbaud.com/skyux/learn/develop/global-help) as configured by the application.\n * This property only applies when `tileName` is also specified.\n */\n @Input()\n public helpKey: string | undefined;\n\n /**\n * The content of the help popover. When specified along with `tileName`, a [help inline](https://developer.blackbaud.com/skyux/components/help-inline)\n * button is added to the tile 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 `tileName` 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 * Whether to display a settings button in the tile header. To display the\n * button, you must also listen for the `settingsClick` event.\n * @default true\n */\n @Input()\n public showSettings = true;\n\n /**\n * Whether to display a help button in the tile header. To display the\n * button, you must also listen for the `helpClick` event.\n * @default true\n * @deprecated Set the `helpKey` or `helpPopoverContent` inputs instead.\n */\n @Input()\n public showHelp = true;\n\n /**\n * The human-readable name for the tile that is available to the tile controls for multiple purposes, such as accessibility and instrumentation. The component uses the name to construct ARIA labels for the help, expand/collapse, settings, and drag handle buttons to [support accessibility](https://developer.blackbaud.com/skyux/learn/accessibility).\n * For example, if the tile name is \"Constituents,\" the help input's `aria-label` is \"Constituents help\" and the drag handle's `aria-label` is \"Move Constituents.\" For more information about the `aria-label` attribute, see the [WAI-ARIA definition](https://www.w3.org/TR/wai-aria/#aria-label).\n */\n @Input()\n public tileName: string | undefined;\n\n /**\n * Fires when users select the settings button in the tile header. The settings\n * button only appears when the `showSettings` property is set to `true`.\n */\n @Output()\n public settingsClick = new EventEmitter();\n\n /**\n * Fires when the tile's collapsed state changes. Returns `true` when the tile\n * collapses and `false` when it expands.\n */\n @Output()\n public isCollapsedChange = new EventEmitter<boolean>();\n\n /**\n * Fires when users select the help button in the tile header. The help\n * button only appears when the `showHelp` property is set to `true`.\n * @deprecated Set the `helpKey` or `helpPopoverContent` inputs instead.\n */\n @Output()\n public helpClick = new EventEmitter();\n\n public get isCollapsed(): boolean {\n if (this.#dashboardService) {\n const configCollapsedState = this.#dashboardService.tileIsCollapsed(this);\n this.#_isCollapsed = configCollapsedState;\n }\n\n return this.#_isCollapsed;\n }\n\n /**\n * Whether the tile is in a collapsed state.\n * @default false\n */\n @Input()\n public set isCollapsed(value: boolean | undefined) {\n this.#_isCollapsed = !!value;\n\n if (this.#dashboardService) {\n this.#dashboardService.setTileCollapsed(this, this.#_isCollapsed);\n }\n\n this.isCollapsedChange.emit(this.#_isCollapsed);\n }\n\n public ariaDescribedBy: string | undefined;\n\n public isInDashboardColumn = false;\n\n @ViewChild('grabHandle', {\n read: ElementRef,\n static: false,\n })\n public grabHandle: ElementRef | undefined;\n\n @ViewChild('titleContainer', {\n read: ElementRef,\n static: false,\n })\n public title: ElementRef | undefined;\n\n @ContentChild(SkyTileTitleComponent, { read: ElementRef })\n protected titleRef: ElementRef | undefined;\n\n #changeDetector: ChangeDetectorRef;\n #dashboardService: SkyTileDashboardService | undefined;\n #ngUnsubscribe = new Subject<void>();\n #_isCollapsed = false;\n\n protected tileTitleId = inject(SKY_TILE_TITLE_ID);\n\n readonly #logSvc = inject(SkyLogService);\n\n constructor(\n public elementRef: ElementRef,\n changeDetector: ChangeDetectorRef,\n @Optional() dashboardService?: SkyTileDashboardService,\n ) {\n this.#changeDetector = changeDetector;\n this.#dashboardService = dashboardService;\n this.isInDashboardColumn = !!this.#dashboardService;\n\n if (this.#dashboardService) {\n this.ariaDescribedBy = `${this.#dashboardService.bagId}-move-instructions`;\n\n /**\n * This subscription ensures that if any values which come in from the dashboard service are\n * updated that the component will update if the tile's parent component utilizes OnPush\n * change detection.\n */\n this.#dashboardService.configChange\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe(() => {\n this.#changeDetector.markForCheck();\n });\n }\n }\n\n public ngAfterViewInit(): void {\n if (this.#dashboardService) {\n this.#dashboardService.registerGrabHandle(this);\n }\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes['showHelp']?.firstChange) {\n this.#logSvc.deprecated('SkyTileComponent.showHelp', {\n deprecationMajorVersion: 10,\n replacementRecommendation:\n 'Set the `helpKey` or `helpPopoverContent` inputs instead.',\n });\n }\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n public settingsButtonClicked(): void {\n this.settingsClick.emit(undefined);\n }\n\n /**\n * @deprecated\n */\n public helpButtonClicked(): void {\n this.helpClick.emit(undefined);\n }\n\n public get hasSettings(): boolean {\n return this.settingsClick.observed && this.showSettings;\n }\n\n /**\n * @deprecated\n */\n public get hasHelp(): boolean {\n return this.helpClick.observed && this.showHelp;\n }\n\n public titleClick(evt: MouseEvent): void {\n const targetEl = evt.target as HTMLElement | null;\n\n // Don't expand/collapse if the help inline button is clicked.\n if (targetEl?.closest('sky-help-inline') === null) {\n this.isCollapsed = !this.isCollapsed;\n }\n }\n\n public chevronDirectionChange(direction: string): void {\n this.isCollapsed = direction === 'down';\n }\n\n protected moveTile(event: KeyboardEvent): void {\n if (\n ['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight'].includes(event.key) &&\n this.#dashboardService\n ) {\n const direction = event.key.toLowerCase().replace('arrow', '') as\n | 'up'\n | 'down'\n | 'left'\n | 'right';\n this.#dashboardService.moveTileOnKeyDown(\n this,\n direction,\n this.title?.nativeElement.innerText,\n );\n this.#focusHandle();\n }\n }\n\n #focusHandle(): void {\n this.grabHandle?.nativeElement.focus();\n }\n}\n","<section\n class=\"sky-tile\"\n [ngClass]=\"{\n 'sky-tile-collapsed': isCollapsed\n }\"\n [skyThemeClass]=\"{\n 'sky-box sky-elevation-1-bordered': 'modern'\n }\"\n>\n <header class=\"sky-tile-header\">\n <div class=\"sky-tile-header-content\" (click)=\"titleClick($event)\">\n <div #titleContainer class=\"sky-tile-header-title\">\n <ng-content select=\"sky-tile-title\" />\n @if (tileName && (helpKey || helpPopoverContent)) {\n <span class=\"sky-control-help-container\">\n <sky-help-inline\n [helpKey]=\"helpKey\"\n [labelText]=\"tileName\"\n [popoverContent]=\"helpPopoverContent\"\n [popoverTitle]=\"helpPopoverTitle\"\n />\n </span>\n }\n </div>\n <div class=\"sky-tile-summary sky-font-heading-2\">\n <ng-content select=\"sky-tile-summary\" />\n </div>\n </div>\n <div class=\"sky-tile-header-column-tools\">\n <div class=\"sky-tile-tools\">\n <ng-container *skyThemeIf=\"'default'\">\n @if (hasHelp) {\n <button\n class=\"sky-btn sky-btn-icon-borderless sky-tile-tools-control sky-tile-help\"\n type=\"button\"\n [attr.aria-label]=\"\n tileName\n ? ('skyux_tile_help' | skyLibResources: tileName)\n : ('skyux_tile_help_default' | skyLibResources)\n \"\n (click)=\"helpButtonClicked()\"\n >\n <sky-icon iconName=\"question-circle\" />\n </button>\n }\n </ng-container>\n <sky-chevron\n class=\"sky-tile-tools-control\"\n [ariaControls]=\"tileContent.id\"\n [ariaLabel]=\"\n tileName\n ? ('skyux_tile_expand' | skyLibResources: tileName)\n : ('skyux_tile_expand_default' | skyLibResources)\n \"\n [direction]=\"isCollapsed ? 'down' : 'up'\"\n (directionChange)=\"chevronDirectionChange($event)\"\n />\n @if (hasSettings) {\n <button\n class=\"sky-btn sky-tile-settings sky-btn-icon-borderless sky-tile-tools-control\"\n type=\"button\"\n [attr.aria-label]=\"\n tileName\n ? ('skyux_tile_settings' | skyLibResources: tileName)\n : ('skyux_tile_settings_default' | skyLibResources)\n \"\n (click)=\"settingsButtonClicked()\"\n >\n <sky-icon iconName=\"settings\" />\n </button>\n }\n @if (isInDashboardColumn) {\n <button\n #grabHandle\n class=\"sky-btn sky-btn-icon-borderless sky-tile-tools-control sky-tile-grab-handle\"\n type=\"button\"\n [attr.aria-label]=\"\n tileName\n ? ('skyux_tile_move' | skyLibResources: tileName)\n : ('skyux_tile_move_default' | skyLibResources)\n \"\n [attr.aria-describedby]=\"ariaDescribedBy\"\n (click)=\"$event.stopPropagation()\"\n (keydown)=\"moveTile($event)\"\n >\n <sky-icon iconName=\"re-order-dots-vertical\" iconSize=\"s\" />\n </button>\n }\n </div>\n </div>\n </header>\n <div\n #tileContent=\"skyId\"\n class=\"sky-tile-content\"\n role=\"region\"\n skyId\n [attr.aria-label]=\"tileName\"\n [attr.aria-labelledby]=\"!tileName && titleRef ? tileTitleId : undefined\"\n >\n <sky-animation-slide [opened]=\"!isCollapsed\">\n <ng-content select=\"sky-tile-content\" />\n </sky-animation-slide>\n </div>\n</section>\n","import { NgModule } from '@angular/core';\n\nimport { SkyTileSummaryComponent } from './tile-summary.component';\nimport { SkyTileTitleComponent } from './tile-title.component';\nimport { SkyTileComponent } from './tile.component';\n\n@NgModule({\n imports: [SkyTileComponent, SkyTileSummaryComponent, SkyTileTitleComponent],\n exports: [SkyTileComponent, SkyTileSummaryComponent, SkyTileTitleComponent],\n})\nexport class SkyTileModule {}\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { SkyThemeModule } from '@skyux/theme';\n\n/**\n * Specifies content to display inside a padded section of a SkyTileContentComponent.\n */\n@Component({\n selector: 'sky-tile-content-section',\n styleUrls: ['./tile-content-section.component.scss'],\n templateUrl: './tile-content-section.component.html',\n changeDetection: ChangeDetectionStrategy.Eager,\n imports: [SkyThemeModule],\n})\nexport class SkyTileContentSectionComponent {}\n","<div class=\"sky-tile-content-section sky-border-bottom-row\">\n <ng-content />\n</div>\n","import { ChangeDetectionStrategy, Component } from '@angular/core';\n\n/**\n * Specifies content to display in the tile's body.\n */\n@Component({\n selector: 'sky-tile-content',\n styleUrl: './tile-content.component.scss',\n changeDetection: ChangeDetectionStrategy.Eager,\n templateUrl: './tile-content.component.html',\n})\nexport class SkyTileContentComponent {}\n","<ng-content />\n","import { NgModule } from '@angular/core';\n\nimport { SkyTileContentSectionComponent } from './tile-content-section.component';\nimport { SkyTileContentComponent } from './tile-content.component';\n\n@NgModule({\n imports: [SkyTileContentComponent, SkyTileContentSectionComponent],\n exports: [SkyTileContentComponent, SkyTileContentSectionComponent],\n})\nexport class SkyTileContentModule {}\n","/**\n * The type of message to send to the tile dashboard component.\n */\nexport enum SkyTileDashboardMessageType {\n /**\n * Expands all tiles within the tile dashboard.\n */\n ExpandAll = 0,\n\n /**\n * Collapses all tiles within the tile dashboard.\n */\n CollapseAll = 1,\n}\n","import {\n ChangeDetectionStrategy,\n Component,\n EnvironmentInjector,\n ViewChild,\n ViewContainerRef,\n inject,\n} from '@angular/core';\nimport { SkyThemeComponentClassDirective } from '@skyux/theme';\n\nlet columnIdIndex = 0;\n\n/**\n * @internal\n */\n@Component({\n selector: 'sky-tile-dashboard-column',\n styleUrls: ['./tile-dashboard-column.component.scss'],\n templateUrl: './tile-dashboard-column.component.html',\n changeDetection: ChangeDetectionStrategy.Eager,\n hostDirectives: [SkyThemeComponentClassDirective],\n})\nexport class SkyTileDashboardColumnComponent {\n public readonly injector = inject(EnvironmentInjector);\n\n public columnId = `tile-dashboard-column-${++columnIdIndex}`;\n\n @ViewChild('content', {\n read: ViewContainerRef,\n static: false,\n })\n public content: ViewContainerRef | undefined;\n}\n","<div class=\"sky-tile-dashboard-column\">\n <div #content></div>\n</div>\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n Component,\n EventEmitter,\n Input,\n OnDestroy,\n Optional,\n Output,\n QueryList,\n ViewChild,\n ViewChildren,\n computed,\n inject,\n} from '@angular/core';\nimport { toSignal } from '@angular/core/rxjs-interop';\nimport { SkyMediaQueryService } from '@skyux/core';\nimport { SkyLibResourcesService } from '@skyux/i18n';\nimport { SkyThemeComponentClassDirective } from '@skyux/theme';\n\nimport { Observable, Subject } from 'rxjs';\nimport { take, takeUntil } from 'rxjs/operators';\n\nimport { SkyTileDashboardColumnComponent } from '../tile-dashboard-column/tile-dashboard-column.component';\nimport { SkyTileDashboardConfig } from '../tile-dashboard-config/tile-dashboard-config';\n\nimport { SkyTileDashboardMessage } from './tile-dashboard-message';\nimport { SkyTileDashboardMessageType } from './tile-dashboard-message-type';\nimport { SkyTileDashboardService } from './tile-dashboard.service';\n\n/**\n * Specifies a container to group multiple tiles.\n */\n@Component({\n selector: 'sky-tile-dashboard',\n styleUrls: ['./tile-dashboard.component.scss'],\n templateUrl: './tile-dashboard.component.html',\n providers: [SkyTileDashboardService],\n host: {\n '[class]': 'layoutClassName()',\n },\n standalone: false,\n changeDetection: ChangeDetectionStrategy.Eager,\n hostDirectives: [SkyThemeComponentClassDirective],\n})\nexport class SkyTileDashboardComponent implements AfterViewInit, OnDestroy {\n readonly #breakpoint = toSignal(\n inject(SkyMediaQueryService).breakpointChange,\n );\n\n /**\n * Populates the tile dashboard based on the `SkyTileDashboardConfig` object.\n * @required\n */\n @Input()\n public set config(value: SkyTileDashboardConfig | undefined) {\n if (value && !this.#configSet) {\n this.#_config = value;\n this.#configSet = true;\n this.#checkReady();\n }\n }\n\n public get config(): SkyTileDashboardConfig | undefined {\n return this.#_config;\n }\n\n /**\n * The observable to send commands to the tile dashboard. The commands must respect the\n * `SkyTileDashboardMessage` type.\n */\n @Input()\n public messageStream = new Subject<SkyTileDashboardMessage>();\n\n /**\n * The unique key for the UI Config Service to retrieve stored settings\n * from a database. The UI Config Service saves configuration settings for users\n * to preserve the layout and collapsed state of tile dashboards. The UI Config Service relies on `id` values from the `config` property to maintain user settings. For more information\n * about the UI Config Service, see the\n * [sticky settings documentation](https://developer.blackbaud.com/skyux/learn/develop/sticky-settings).\n */\n @Input()\n public settingsKey: string | undefined;\n\n /**\n * Fires when the tile dashboard changes state and emits a SkyTileDashboardConfig\n * object. This occurs when tiles collapse or expand and when users drag and drop\n * tiles to rearrange them.\n */\n @Output()\n public configChange = new EventEmitter<SkyTileDashboardConfig>();\n\n @ViewChildren(SkyTileDashboardColumnComponent)\n public columns: QueryList<SkyTileDashboardColumnComponent> | undefined;\n\n @ViewChild('singleColumn', {\n read: SkyTileDashboardColumnComponent,\n static: false,\n })\n public singleColumn: SkyTileDashboardColumnComponent | undefined;\n\n public tileMovedReport = '';\n\n public moveInstructionsId: string;\n\n protected layoutClassName = computed(() => {\n const breakpoint = this.#breakpoint();\n\n let layoutClassName = '';\n\n if (breakpoint === 'xs' || breakpoint === 'sm') {\n layoutClassName = 'sky-tile-dashboard-single-column';\n } else {\n layoutClassName = 'sky-tile-dashboard-multi-column';\n }\n\n if (breakpoint === 'xs') {\n layoutClassName += ' sky-tile-dashboard-xs';\n } else {\n layoutClassName += ' sky-tile-dashboard-gt-xs';\n }\n\n return layoutClassName;\n });\n\n #configSet = false;\n #dashboardService: SkyTileDashboardService;\n #ngUnsubscribe = new Subject<void>();\n #resourcesService: SkyLibResourcesService | undefined;\n #viewReady = false;\n #viewReadyTimer: ReturnType<typeof setTimeout> | undefined;\n #_config: SkyTileDashboardConfig | undefined;\n\n constructor(\n dashboardService: SkyTileDashboardService,\n @Optional() resourcesService?: SkyLibResourcesService,\n ) {\n this.#dashboardService = dashboardService;\n this.#resourcesService = resourcesService;\n this.moveInstructionsId =\n this.#dashboardService.bagId + '-move-instructions';\n\n this.#dashboardService.configChange.subscribe(\n (config: SkyTileDashboardConfig) => {\n this.configChange.emit(config);\n\n // Update aria live region with tile drag info\n if (config.movedTile && this.#resourcesService) {\n let messageObservable: Observable<string>;\n\n if (this.#breakpoint() === 'xs' || this.#breakpoint() === 'sm') {\n messageObservable = this.#resourcesService.getString(\n 'skyux_tile_moved_assistive_text',\n config.movedTile.tileDescription,\n '1',\n '1',\n config.movedTile.position.toString(),\n config.layout.singleColumn.tiles.length.toString(),\n );\n } else {\n messageObservable = this.#resourcesService.getString(\n 'skyux_tile_moved_assistive_text',\n config.movedTile.tileDescription,\n config.movedTile.column.toString(),\n config.layout.multiColumn.length.toString(),\n config.movedTile.position.toString(),\n config.layout.multiColumn[\n config.movedTile.column - 1\n ].tiles.length.toString(),\n );\n }\n messageObservable.pipe(take(1)).subscribe((message: string) => {\n this.tileMovedReport = message;\n });\n }\n },\n );\n }\n\n public ngAfterViewInit(): void {\n this.messageStream\n .pipe(takeUntil(this.#ngUnsubscribe))\n .subscribe((message: SkyTileDashboardMessage) => {\n this.#handleIncomingMessages(message);\n });\n\n this.#viewReady = true;\n this.#checkReady();\n }\n\n public ngOnDestroy(): void {\n this.#ngUnsubscribe.next();\n this.#ngUnsubscribe.complete();\n }\n\n #checkReady(): void {\n if (this.#viewReady && this.config && !this.#viewReadyTimer) {\n this.#viewReadyTimer = setTimeout(() => {\n this.#viewReadyTimer = undefined;\n if (this.config && this.columns && this.singleColumn) {\n this.#dashboardService.init(\n this.config,\n this.columns,\n this.singleColumn,\n this.settingsKey,\n );\n }\n }, 0);\n }\n }\n\n #handleIncomingMessages(message: SkyTileDashboardMessage): void {\n switch (message.type) {\n case SkyTileDashboardMessageType.ExpandAll:\n this.#dashboardService.setAllTilesCollapsed(false);\n break;\n\n case SkyTileDashboardMessageType.CollapseAll:\n this.#dashboardService.setAllTilesCollapsed(true);\n break;\n }\n }\n}\n","@if (config) {\n <span aria-live=\"assertive\" class=\"sky-assistive-text\">\n {{ tileMovedReport }}\n </span>\n @for (\n column of config.layout.multiColumn;\n track column;\n let first = $first, last = $last\n ) {\n <sky-tile-dashboard-column\n class=\"sky-tile-dashboard-layout-multi\"\n [ngClass]=\"{\n 'sky-tile-dashboard-layout-multi-first': first,\n 'sky-tile-dashboard-layout-multi-last': last\n }\"\n [ngStyle]=\"{\n 'flex-basis': 100 / config.layout.multiColumn.length + '%'\n }\"\n />\n }\n <sky-tile-dashboard-column\n #singleColumn\n class=\"sky-tile-dashboard-layout-single\"\n />\n <span class=\"sky-screen-reader-only\" [id]=\"moveInstructionsId\">{{\n 'skyux_tile_move_instructions' | skyLibResources\n }}</span>\n <ng-content />\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { SkyTilesResourcesModule } from '../../shared/sky-tiles-resources.module';\nimport { SkyTileDashboardColumnComponent } from '../tile-dashboard-column/tile-dashboard-column.component';\n\nimport { SkyTileDashboardComponent } from './tile-dashboard.component';\n\n@NgModule({\n declarations: [SkyTileDashboardComponent],\n imports: [\n CommonModule,\n SkyTileDashboardColumnComponent,\n SkyTilesResourcesModule,\n ],\n exports: [SkyTileDashboardComponent],\n})\nexport class SkyTileDashboardModule {}\n","import { NgModule } from '@angular/core';\n\nimport { SkyTileDashboardColumnComponent } from './tile-dashboard-column.component';\n\n@NgModule({\n imports: [SkyTileDashboardColumnComponent],\n exports: [SkyTileDashboardColumnComponent],\n})\nexport class SkyTileDashboardColumnModule {}\n","import { NgModule } from '@angular/core';\n\nimport { SkyTileContentModule } from './tile-content/tile-content.module';\nimport { SkyTileDashboardColumnModule } from './tile-dashboard-column/tile-dashboard-column.module';\nimport { SkyTileDashboardModule } from './tile-dashboard/tile-dashboard.module';\nimport { SkyTileModule } from './tile/tile.module';\n\n@NgModule({\n exports: [\n SkyTileContentModule,\n SkyTileModule,\n SkyTileDashboardColumnModule,\n SkyTileDashboardModule,\n ],\n})\nexport class SkyTilesModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.SkyTileDashboardService","i2","i4","i8","i1","i3","i5.SkyTileDashboardColumnComponent"],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skyux/tiles",
3
- "version": "14.4.0",
3
+ "version": "15.0.0-alpha.0",
4
4
  "author": "Blackbaud, Inc.",
5
5
  "keywords": [
6
6
  "blackbaud",
@@ -16,15 +16,15 @@
16
16
  },
17
17
  "homepage": "https://github.com/blackbaud/skyux#readme",
18
18
  "peerDependencies": {
19
- "@angular/cdk": "^21.2.0",
20
- "@angular/common": "^21.2.0",
21
- "@angular/core": "^21.2.0",
22
- "@skyux/core": "14.4.0",
23
- "@skyux/help-inline": "14.4.0",
24
- "@skyux/i18n": "14.4.0",
25
- "@skyux/icon": "14.4.0",
26
- "@skyux/indicators": "14.4.0",
27
- "@skyux/theme": "14.4.0"
19
+ "@angular/cdk": "^22.0.1",
20
+ "@angular/common": "^22.0.1",
21
+ "@angular/core": "^22.0.1",
22
+ "@skyux/core": "15.0.0-alpha.0",
23
+ "@skyux/help-inline": "15.0.0-alpha.0",
24
+ "@skyux/i18n": "15.0.0-alpha.0",
25
+ "@skyux/icon": "15.0.0-alpha.0",
26
+ "@skyux/indicators": "15.0.0-alpha.0",
27
+ "@skyux/theme": "15.0.0-alpha.0"
28
28
  },
29
29
  "dependencies": {
30
30
  "tslib": "^2.8.1"