@skyux/tiles 12.41.1 → 12.44.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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"skyux-tiles-testing.mjs","sources":["../../../../../libs/components/tiles/testing/src/modules/tiles/tile-content-section-harness.ts","../../../../../libs/components/tiles/testing/src/modules/tiles/tile-content-harness.ts","../../../../../libs/components/tiles/testing/src/modules/tiles/tile-harness.ts","../../../../../libs/components/tiles/testing/src/modules/tiles/tile-dashboard-harness.ts","../../../../../libs/components/tiles/testing/src/skyux-tiles-testing.ts"],"sourcesContent":["import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyQueryableComponentHarness } from '@skyux/core/testing';\n\nimport { SkyTileContentSectionHarnessFilters } from './tile-content-section-harness-filters';\n\n/**\n * Harness to interact with a tile content section component in tests.\n */\nexport class SkyTileContentSectionHarness extends SkyQueryableComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-tile-content-section';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyTileContentSectionHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyTileContentSectionHarnessFilters,\n ): HarnessPredicate<SkyTileContentSectionHarness> {\n return SkyTileContentSectionHarness.getDataSkyIdPredicate(filters);\n }\n}\n","import { SkyQueryableComponentHarness } from '@skyux/core/testing';\n\nimport { SkyTileContentSectionHarness } from './tile-content-section-harness';\nimport { SkyTileContentSectionHarnessFilters } from './tile-content-section-harness-filters';\n\n/**\n * Harness to interact with a tile content component in tests.\n */\nexport class SkyTileContentHarness extends SkyQueryableComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-tile-content';\n\n /**\n * Gets a harness for a specific tile content section that meets certain criteria.\n */\n public async getSection(\n filter: SkyTileContentSectionHarnessFilters,\n ): Promise<SkyTileContentSectionHarness> {\n return await this.locatorFor(SkyTileContentSectionHarness.with(filter))();\n }\n\n /**\n * Gets an array of tile content sections.\n */\n public async getSections(\n filters?: SkyTileContentSectionHarnessFilters,\n ): Promise<SkyTileContentSectionHarness[]> {\n const sections = await this.locatorForAll(\n SkyTileContentSectionHarness.with(filters || {}),\n )();\n\n if (sections.length === 0) {\n if (filters) {\n throw new Error(\n `Unable to find any tile content sections with filter(s): ${JSON.stringify(filters)}`,\n );\n }\n throw new Error('Unable to find any tile content sections.');\n }\n return sections;\n }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\nimport { SkyHelpInlineHarness } from '@skyux/help-inline/testing';\nimport { SkyChevronHarness } from '@skyux/indicators/testing';\n\nimport { SkyTileContentHarness } from './tile-content-harness';\nimport { SkyTileHarnessFilters } from './tile-harness-filters';\n\n/**\n * Harness to interact with a tile component in tests.\n */\nexport class SkyTileHarness extends SkyComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-tile';\n\n #getChevron = this.locatorFor(SkyChevronHarness);\n #getContent = this.locatorFor(SkyTileContentHarness);\n #getTitle = this.locatorFor('sky-tile-title');\n #getSummary = this.locatorFor('sky-tile-summary');\n #getSettings = this.locatorForOptional('button.sky-tile-settings');\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyTileHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyTileHarnessFilters,\n ): HarnessPredicate<SkyTileHarness> {\n return SkyTileHarness.getDataSkyIdPredicate(filters).addOption(\n 'titleText',\n filters.titleText,\n async (harness, text) => {\n const title = await harness.getTitleText();\n return await HarnessPredicate.stringMatches(title, text);\n },\n );\n }\n\n /**\n * Clicks the help inline button.\n */\n public async clickHelpInline(): Promise<void> {\n await (await this.#getHelpInline()).click();\n }\n\n /**\n * Clicks the settings button.\n */\n public async clickSettingsButton(): Promise<void> {\n const settings = await this.#getSettings();\n\n if (!settings) {\n throw Error('No settings button found.');\n }\n\n await settings.click();\n }\n\n /**\n * Collapses the tile, or does nothing if already collapsed.\n */\n public async collapse(): Promise<void> {\n const chevron = await this.#getChevron();\n if ((await chevron.getDirection()) === 'up') {\n await chevron.toggle();\n }\n }\n\n /**\n * Expands the tile, or does nothing if already expanded.\n */\n public async expand(): Promise<void> {\n const chevron = await this.#getChevron();\n if ((await chevron.getDirection()) === 'down') {\n await chevron.toggle();\n }\n }\n\n /**\n * Gets the help popover content.\n */\n public async getHelpPopoverContent(): Promise<string | undefined> {\n return await (await this.#getHelpInline()).getPopoverContent();\n }\n\n /**\n * Gets the help popover title.\n */\n public async getHelpPopoverTitle(): Promise<string | undefined> {\n return await (await this.#getHelpInline()).getPopoverTitle();\n }\n\n /**\n * Gets a harness for the tile content.\n */\n public async getContent(): Promise<SkyTileContentHarness> {\n return await this.#getContent();\n }\n\n /**\n * Gets the tile summary text.\n */\n public async getSummaryText(): Promise<string> {\n return await (await this.#getSummary()).text();\n }\n\n /**\n * Gets the tile title text.\n */\n public async getTitleText(): Promise<string> {\n return await (await this.#getTitle()).text();\n }\n\n /**\n * Whether the tile is expanded.\n */\n public async isExpanded(): Promise<boolean> {\n const chevron = await this.#getChevron();\n\n return (await chevron.getDirection()) === 'up';\n }\n\n async #getHelpInline(): Promise<SkyHelpInlineHarness> {\n const harness = await this.locatorForOptional(SkyHelpInlineHarness)();\n\n if (harness) {\n return harness;\n }\n\n throw Error('No help inline found.');\n }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyQueryableComponentHarness } from '@skyux/core/testing';\n\nimport { SkyTileDashboardHarnessFilters } from './tile-dashboard-harness-filters';\nimport { SkyTileHarness } from './tile-harness';\nimport { SkyTileHarnessFilters } from './tile-harness-filters';\n\n/**\n * Harness to interact with a tile dashboard component in tests.\n */\nexport class SkyTileDashboardHarness extends SkyQueryableComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-tile-dashboard';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyTileDashboardHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyTileDashboardHarnessFilters,\n ): HarnessPredicate<SkyTileDashboardHarness> {\n return SkyTileDashboardHarness.getDataSkyIdPredicate(filters);\n }\n\n /**\n * Gets a harness for a specific tile that meets certain criteria.\n */\n public async getTile(filter: SkyTileHarnessFilters): Promise<SkyTileHarness> {\n return await this.locatorFor(SkyTileHarness.with(filter))();\n }\n\n /**\n * Gets an array of tiles.\n */\n public async getTiles(\n filters?: SkyTileHarnessFilters,\n ): Promise<SkyTileHarness[]> {\n const tiles = await this.locatorForAll(\n SkyTileHarness.with(filters || {}),\n )();\n\n if (tiles.length === 0) {\n if (filters) {\n throw new Error(\n `Unable to find any tiles with filter(s): ${JSON.stringify(filters)}`,\n );\n }\n throw new Error('Unable to find any tiles.');\n }\n return tiles;\n }\n\n /**\n * Whether or not the dashboard is in multi-column mode.\n */\n public async isMultiColumn(): Promise<boolean> {\n const host = await this.host();\n\n return await host.hasClass('sky-tile-dashboard-multi-column');\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"skyux-tiles-testing.mjs","sources":["../../../../../libs/components/tiles/testing/src/modules/tiles/tile-content-section-harness.ts","../../../../../libs/components/tiles/testing/src/modules/tiles/tile-content-harness.ts","../../../../../libs/components/tiles/testing/src/modules/tiles/tile-harness.ts","../../../../../libs/components/tiles/testing/src/modules/tiles/tile-dashboard-harness.ts","../../../../../libs/components/tiles/testing/src/skyux-tiles-testing.ts"],"sourcesContent":["import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyQueryableComponentHarness } from '@skyux/core/testing';\n\nimport { SkyTileContentSectionHarnessFilters } from './tile-content-section-harness-filters';\n\n/**\n * Harness to interact with a tile content section component in tests.\n */\nexport class SkyTileContentSectionHarness extends SkyQueryableComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-tile-content-section';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyTileContentSectionHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyTileContentSectionHarnessFilters,\n ): HarnessPredicate<SkyTileContentSectionHarness> {\n return SkyTileContentSectionHarness.getDataSkyIdPredicate(filters);\n }\n}\n","import { SkyQueryableComponentHarness } from '@skyux/core/testing';\n\nimport { SkyTileContentSectionHarness } from './tile-content-section-harness';\nimport { SkyTileContentSectionHarnessFilters } from './tile-content-section-harness-filters';\n\n/**\n * Harness to interact with a tile content component in tests.\n */\nexport class SkyTileContentHarness extends SkyQueryableComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-tile-content';\n\n /**\n * Gets a harness for a specific tile content section that meets certain criteria.\n */\n public async getSection(\n filter: SkyTileContentSectionHarnessFilters,\n ): Promise<SkyTileContentSectionHarness> {\n return await this.locatorFor(SkyTileContentSectionHarness.with(filter))();\n }\n\n /**\n * Gets an array of tile content sections.\n */\n public async getSections(\n filters?: SkyTileContentSectionHarnessFilters,\n ): Promise<SkyTileContentSectionHarness[]> {\n const sections = await this.locatorForAll(\n SkyTileContentSectionHarness.with(filters || {}),\n )();\n\n if (sections.length === 0) {\n if (filters) {\n throw new Error(\n `Unable to find any tile content sections with filter(s): ${JSON.stringify(filters)}`,\n );\n }\n throw new Error('Unable to find any tile content sections.');\n }\n return sections;\n }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyComponentHarness } from '@skyux/core/testing';\nimport { SkyHelpInlineHarness } from '@skyux/help-inline/testing';\nimport { SkyChevronHarness } from '@skyux/indicators/testing';\n\nimport { SkyTileContentHarness } from './tile-content-harness';\nimport { SkyTileHarnessFilters } from './tile-harness-filters';\n\n/**\n * Harness to interact with a tile component in tests.\n */\nexport class SkyTileHarness extends SkyComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-tile';\n\n #getChevron = this.locatorFor(SkyChevronHarness);\n #getContent = this.locatorFor(SkyTileContentHarness);\n #getTitle = this.locatorFor('sky-tile-title');\n #getSummary = this.locatorFor('sky-tile-summary');\n #getSettings = this.locatorForOptional('button.sky-tile-settings');\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyTileHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyTileHarnessFilters,\n ): HarnessPredicate<SkyTileHarness> {\n return SkyTileHarness.getDataSkyIdPredicate(filters).addOption(\n 'titleText',\n filters.titleText,\n async (harness, text) => {\n const title = await harness.getTitleText();\n return await HarnessPredicate.stringMatches(title, text);\n },\n );\n }\n\n /**\n * Clicks the help inline button.\n */\n public async clickHelpInline(): Promise<void> {\n await (await this.#getHelpInline()).click();\n }\n\n /**\n * Clicks the settings button.\n */\n public async clickSettingsButton(): Promise<void> {\n const settings = await this.#getSettings();\n\n if (!settings) {\n throw Error('No settings button found.');\n }\n\n await settings.click();\n }\n\n /**\n * Collapses the tile, or does nothing if already collapsed.\n */\n public async collapse(): Promise<void> {\n const chevron = await this.#getChevron();\n if ((await chevron.getDirection()) === 'up') {\n await chevron.toggle();\n }\n }\n\n /**\n * Expands the tile, or does nothing if already expanded.\n */\n public async expand(): Promise<void> {\n const chevron = await this.#getChevron();\n if ((await chevron.getDirection()) === 'down') {\n await chevron.toggle();\n }\n }\n\n /**\n * Gets the help popover content.\n */\n public async getHelpPopoverContent(): Promise<string | undefined> {\n return await (await this.#getHelpInline()).getPopoverContent();\n }\n\n /**\n * Gets the help popover title.\n */\n public async getHelpPopoverTitle(): Promise<string | undefined> {\n return await (await this.#getHelpInline()).getPopoverTitle();\n }\n\n /**\n * Gets a harness for the tile content.\n */\n public async getContent(): Promise<SkyTileContentHarness> {\n return await this.#getContent();\n }\n\n /**\n * Gets the tile summary text.\n */\n public async getSummaryText(): Promise<string> {\n return await (await this.#getSummary()).text();\n }\n\n /**\n * Gets the tile title text.\n */\n public async getTitleText(): Promise<string> {\n return await (await this.#getTitle()).text();\n }\n\n /**\n * Whether the tile is expanded.\n */\n public async isExpanded(): Promise<boolean> {\n const chevron = await this.#getChevron();\n\n return (await chevron.getDirection()) === 'up';\n }\n\n async #getHelpInline(): Promise<SkyHelpInlineHarness> {\n const harness = await this.locatorForOptional(SkyHelpInlineHarness)();\n\n if (harness) {\n return harness;\n }\n\n throw Error('No help inline found.');\n }\n}\n","import { HarnessPredicate } from '@angular/cdk/testing';\nimport { SkyQueryableComponentHarness } from '@skyux/core/testing';\n\nimport { SkyTileDashboardHarnessFilters } from './tile-dashboard-harness-filters';\nimport { SkyTileHarness } from './tile-harness';\nimport { SkyTileHarnessFilters } from './tile-harness-filters';\n\n/**\n * Harness to interact with a tile dashboard component in tests.\n */\nexport class SkyTileDashboardHarness extends SkyQueryableComponentHarness {\n /**\n * @internal\n */\n public static hostSelector = 'sky-tile-dashboard';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a\n * `SkyTileDashboardHarness` that meets certain criteria.\n */\n public static with(\n filters: SkyTileDashboardHarnessFilters,\n ): HarnessPredicate<SkyTileDashboardHarness> {\n return SkyTileDashboardHarness.getDataSkyIdPredicate(filters);\n }\n\n /**\n * Gets a harness for a specific tile that meets certain criteria.\n */\n public async getTile(filter: SkyTileHarnessFilters): Promise<SkyTileHarness> {\n return await this.locatorFor(SkyTileHarness.with(filter))();\n }\n\n /**\n * Gets an array of tiles.\n */\n public async getTiles(\n filters?: SkyTileHarnessFilters,\n ): Promise<SkyTileHarness[]> {\n const tiles = await this.locatorForAll(\n SkyTileHarness.with(filters || {}),\n )();\n\n if (tiles.length === 0) {\n if (filters) {\n throw new Error(\n `Unable to find any tiles with filter(s): ${JSON.stringify(filters)}`,\n );\n }\n throw new Error('Unable to find any tiles.');\n }\n return tiles;\n }\n\n /**\n * Whether or not the dashboard is in multi-column mode.\n */\n public async isMultiColumn(): Promise<boolean> {\n const host = await this.host();\n\n return await host.hasClass('sky-tile-dashboard-multi-column');\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
package/fesm2022/skyux-tiles.mjs
CHANGED
|
@@ -25,10 +25,10 @@ import { DragulaService, DragulaModule } from 'ng2-dragula';
|
|
|
25
25
|
* Specifies content to display in the tile's summary.
|
|
26
26
|
*/
|
|
27
27
|
class SkyTileSummaryComponent {
|
|
28
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
29
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
28
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkyTileSummaryComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
29
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: SkyTileSummaryComponent, isStandalone: true, selector: "sky-tile-summary", ngImport: i0, template: "<ng-content />\n" }); }
|
|
30
30
|
}
|
|
31
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
31
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkyTileSummaryComponent, decorators: [{
|
|
32
32
|
type: Component,
|
|
33
33
|
args: [{ standalone: true, selector: 'sky-tile-summary', template: "<ng-content />\n" }]
|
|
34
34
|
}] });
|
|
@@ -42,10 +42,10 @@ class SkyTileTitleComponent {
|
|
|
42
42
|
constructor() {
|
|
43
43
|
this.tileTitleId = inject(SKY_TILE_TITLE_ID);
|
|
44
44
|
}
|
|
45
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
46
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
45
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkyTileTitleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
46
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", 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]" }] }); }
|
|
47
47
|
}
|
|
48
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
48
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkyTileTitleComponent, decorators: [{
|
|
49
49
|
type: Component,
|
|
50
50
|
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"] }]
|
|
51
51
|
}] });
|
|
@@ -96,11 +96,11 @@ SkyLibResourcesService.addResources(RESOURCES);
|
|
|
96
96
|
* Import into any component library module that needs to use resource strings.
|
|
97
97
|
*/
|
|
98
98
|
class SkyTilesResourcesModule {
|
|
99
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
100
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.
|
|
101
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.
|
|
99
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkyTilesResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
100
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.17", ngImport: i0, type: SkyTilesResourcesModule, exports: [SkyI18nModule] }); }
|
|
101
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkyTilesResourcesModule, imports: [SkyI18nModule] }); }
|
|
102
102
|
}
|
|
103
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
103
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkyTilesResourcesModule, decorators: [{
|
|
104
104
|
type: NgModule,
|
|
105
105
|
args: [{
|
|
106
106
|
exports: [SkyI18nModule],
|
|
@@ -621,10 +621,10 @@ class SkyTileDashboardService {
|
|
|
621
621
|
});
|
|
622
622
|
return hasChange;
|
|
623
623
|
}
|
|
624
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
625
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.
|
|
624
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkyTileDashboardService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
625
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkyTileDashboardService }); }
|
|
626
626
|
}
|
|
627
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
627
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkyTileDashboardService, decorators: [{
|
|
628
628
|
type: Injectable
|
|
629
629
|
}], ctorParameters: () => [], propDecorators: { dashboardInitialized: [{
|
|
630
630
|
type: Output
|
|
@@ -761,8 +761,8 @@ class SkyTileComponent {
|
|
|
761
761
|
#focusHandle() {
|
|
762
762
|
this.grabHandle?.nativeElement.focus();
|
|
763
763
|
}
|
|
764
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
765
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
764
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkyTileComponent, deps: [{ token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: SkyTileDashboardService, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
765
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.17", 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: [
|
|
766
766
|
{
|
|
767
767
|
provide: SKY_TILE_TITLE_ID,
|
|
768
768
|
useFactory() {
|
|
@@ -772,7 +772,7 @@ class SkyTileComponent {
|
|
|
772
772
|
},
|
|
773
773
|
], 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-display-3\">\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 [@skyAnimationSlide]=\"isCollapsed ? 'up' : 'down'\"\n >\n <ng-content select=\"sky-tile-content\" />\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-height: 24px;--sky-override-tile-tools-control-margin-right: 9px;--sky-override-tile-tools-control-size: 24px;--sky-override-tile-tools-control-width: 24px;--sky-override-tile-tools-padding-right: 15px}:host-context(.sky-theme-modern:not(.sky-theme-brand-base)) .sky-tile{--sky-override-tile-border-radius-xs-first: 0;--sky-override-tile-border-radius-xs-last: 0;--sky-override-tile-margin-bottom-base: 20px;--sky-override-tile-summary-color: #0974a1;--sky-override-tile-tools-control-margin-right: 10px;--sky-override-tile-tools-control-size: 26px}.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}.sky-tile-content{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}: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: ["icon", "iconName", "iconType", "size", "fixedWidth", "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: "pipe", type: i2.SkyLibResourcesPipe, name: "skyLibResources" }], animations: [skyAnimationSlide] }); }
|
|
774
774
|
}
|
|
775
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
775
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkyTileComponent, decorators: [{
|
|
776
776
|
type: Component,
|
|
777
777
|
args: [{ selector: 'sky-tile', animations: [skyAnimationSlide], imports: [
|
|
778
778
|
CommonModule,
|
|
@@ -831,11 +831,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
|
|
|
831
831
|
}] } });
|
|
832
832
|
|
|
833
833
|
class SkyTileModule {
|
|
834
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
835
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.
|
|
836
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.
|
|
834
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkyTileModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
835
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.17", ngImport: i0, type: SkyTileModule, imports: [SkyTileComponent, SkyTileSummaryComponent, SkyTileTitleComponent], exports: [SkyTileComponent, SkyTileSummaryComponent, SkyTileTitleComponent] }); }
|
|
836
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkyTileModule, imports: [SkyTileComponent, SkyTileTitleComponent] }); }
|
|
837
837
|
}
|
|
838
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
838
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkyTileModule, decorators: [{
|
|
839
839
|
type: NgModule,
|
|
840
840
|
args: [{
|
|
841
841
|
imports: [SkyTileComponent, SkyTileSummaryComponent, SkyTileTitleComponent],
|
|
@@ -847,10 +847,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
|
|
|
847
847
|
* Specifies content to display inside a padded section of a SkyTileContentComponent.
|
|
848
848
|
*/
|
|
849
849
|
class SkyTileContentSectionComponent {
|
|
850
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
851
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
850
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkyTileContentSectionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
851
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", 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 }] }); }
|
|
852
852
|
}
|
|
853
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
853
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkyTileContentSectionComponent, decorators: [{
|
|
854
854
|
type: Component,
|
|
855
855
|
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"] }]
|
|
856
856
|
}] });
|
|
@@ -859,20 +859,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
|
|
|
859
859
|
* Specifies content to display in the tile's body.
|
|
860
860
|
*/
|
|
861
861
|
class SkyTileContentComponent {
|
|
862
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
863
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
862
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkyTileContentComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
863
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", type: SkyTileContentComponent, isStandalone: true, selector: "sky-tile-content", ngImport: i0, template: "<ng-content />\n" }); }
|
|
864
864
|
}
|
|
865
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
865
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkyTileContentComponent, decorators: [{
|
|
866
866
|
type: Component,
|
|
867
867
|
args: [{ standalone: true, selector: 'sky-tile-content', template: "<ng-content />\n" }]
|
|
868
868
|
}] });
|
|
869
869
|
|
|
870
870
|
class SkyTileContentModule {
|
|
871
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
872
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.
|
|
873
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.
|
|
871
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkyTileContentModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
872
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.17", ngImport: i0, type: SkyTileContentModule, imports: [SkyTileContentComponent, SkyTileContentSectionComponent], exports: [SkyTileContentComponent, SkyTileContentSectionComponent] }); }
|
|
873
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkyTileContentModule, imports: [SkyTileContentSectionComponent] }); }
|
|
874
874
|
}
|
|
875
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
875
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkyTileContentModule, decorators: [{
|
|
876
876
|
type: NgModule,
|
|
877
877
|
args: [{
|
|
878
878
|
imports: [SkyTileContentComponent, SkyTileContentSectionComponent],
|
|
@@ -907,10 +907,10 @@ class SkyTileDashboardColumnComponent {
|
|
|
907
907
|
this.columnId = `tile-dashboard-column-${++columnIdIndex}`;
|
|
908
908
|
this.bagId = this.#dashboardService.bagId;
|
|
909
909
|
}
|
|
910
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
911
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.
|
|
910
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkyTileDashboardColumnComponent, deps: [{ token: i0.EnvironmentInjector }, { token: SkyTileDashboardService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
911
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.17", 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\" [dragula]=\"bagId\">\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"], dependencies: [{ kind: "ngmodule", type: DragulaModule }, { kind: "directive", type: i3$1.DragulaDirective, selector: "[dragula]", inputs: ["dragula", "dragulaModel"], outputs: ["dragulaModelChange"] }] }); }
|
|
912
912
|
}
|
|
913
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
913
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkyTileDashboardColumnComponent, decorators: [{
|
|
914
914
|
type: Component,
|
|
915
915
|
args: [{ selector: 'sky-tile-dashboard-column', imports: [DragulaModule], hostDirectives: [SkyThemeComponentClassDirective], template: "<div class=\"sky-tile-dashboard-column\" [dragula]=\"bagId\">\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"] }]
|
|
916
916
|
}], ctorParameters: () => [{ type: i0.EnvironmentInjector }, { type: SkyTileDashboardService }], propDecorators: { content: [{
|
|
@@ -1035,10 +1035,10 @@ class SkyTileDashboardComponent {
|
|
|
1035
1035
|
break;
|
|
1036
1036
|
}
|
|
1037
1037
|
}
|
|
1038
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
1039
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.
|
|
1038
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkyTileDashboardComponent, deps: [{ token: SkyTileDashboardService }, { token: i2.SkyLibResourcesService, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
1039
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.17", 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:0;height:0;padding:0;opacity:0;position:absolute;margin:-1px;border:0;overflow:hidden;clip:rect(0,0,0,0);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" }] }); }
|
|
1040
1040
|
}
|
|
1041
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
1041
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkyTileDashboardComponent, decorators: [{
|
|
1042
1042
|
type: Component,
|
|
1043
1043
|
args: [{ selector: 'sky-tile-dashboard', providers: [SkyTileDashboardService], host: {
|
|
1044
1044
|
'[class]': 'layoutClassName()',
|
|
@@ -1065,15 +1065,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
|
|
|
1065
1065
|
}] } });
|
|
1066
1066
|
|
|
1067
1067
|
class SkyTileDashboardModule {
|
|
1068
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
1069
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.
|
|
1068
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkyTileDashboardModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
1069
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.17", ngImport: i0, type: SkyTileDashboardModule, declarations: [SkyTileDashboardComponent], imports: [CommonModule,
|
|
1070
1070
|
SkyTileDashboardColumnComponent,
|
|
1071
1071
|
SkyTilesResourcesModule], exports: [SkyTileDashboardComponent] }); }
|
|
1072
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.
|
|
1072
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkyTileDashboardModule, providers: [DragulaService], imports: [CommonModule,
|
|
1073
1073
|
SkyTileDashboardColumnComponent,
|
|
1074
1074
|
SkyTilesResourcesModule] }); }
|
|
1075
1075
|
}
|
|
1076
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
1076
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkyTileDashboardModule, decorators: [{
|
|
1077
1077
|
type: NgModule,
|
|
1078
1078
|
args: [{
|
|
1079
1079
|
declarations: [SkyTileDashboardComponent],
|
|
@@ -1088,11 +1088,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
|
|
|
1088
1088
|
}] });
|
|
1089
1089
|
|
|
1090
1090
|
class SkyTileDashboardColumnModule {
|
|
1091
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
1092
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.
|
|
1093
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.
|
|
1091
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkyTileDashboardColumnModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
1092
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.17", ngImport: i0, type: SkyTileDashboardColumnModule, imports: [SkyTileDashboardColumnComponent], exports: [SkyTileDashboardColumnComponent] }); }
|
|
1093
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkyTileDashboardColumnModule, imports: [SkyTileDashboardColumnComponent] }); }
|
|
1094
1094
|
}
|
|
1095
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
1095
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkyTileDashboardColumnModule, decorators: [{
|
|
1096
1096
|
type: NgModule,
|
|
1097
1097
|
args: [{
|
|
1098
1098
|
imports: [SkyTileDashboardColumnComponent],
|
|
@@ -1101,17 +1101,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImpo
|
|
|
1101
1101
|
}] });
|
|
1102
1102
|
|
|
1103
1103
|
class SkyTilesModule {
|
|
1104
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.
|
|
1105
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.
|
|
1104
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkyTilesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
1105
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.17", ngImport: i0, type: SkyTilesModule, exports: [SkyTileContentModule,
|
|
1106
1106
|
SkyTileModule,
|
|
1107
1107
|
SkyTileDashboardColumnModule,
|
|
1108
1108
|
SkyTileDashboardModule] }); }
|
|
1109
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.
|
|
1109
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkyTilesModule, imports: [SkyTileContentModule,
|
|
1110
1110
|
SkyTileModule,
|
|
1111
1111
|
SkyTileDashboardColumnModule,
|
|
1112
1112
|
SkyTileDashboardModule] }); }
|
|
1113
1113
|
}
|
|
1114
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.
|
|
1114
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.17", ngImport: i0, type: SkyTilesModule, decorators: [{
|
|
1115
1115
|
type: NgModule,
|
|
1116
1116
|
args: [{
|
|
1117
1117
|
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 standalone: true,\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 * 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 ComponentRef,\n DestroyRef,\n EventEmitter,\n Injectable,\n Output,\n QueryList,\n RendererFactory2,\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 { DragulaService } from 'ng2-dragula';\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 #dragulaService = inject(DragulaService);\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.#initDragula();\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 * 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 }\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 // 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 // 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.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 #initDragula(): void {\n this.#dragulaService.createGroup(this.bagId, {\n moves: (el, container, handle) => {\n const target = el?.querySelector('.sky-tile-grab-handle');\n return !!target && target.contains(handle!);\n },\n });\n\n this.#dragulaService\n .drop(this.bagId)\n .pipe(takeUntilDestroyed(this.#destroyRef))\n .subscribe(() => {\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\n #getColumnEl(\n column: SkyTileDashboardColumnComponent | undefined,\n ): Element | undefined {\n return column?.content?.element.nativeElement.parentNode;\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 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 { skyAnimationSlide } from '@skyux/animations';\nimport { SkyIdModule, SkyIdService, SkyLogService } 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 animations: [skyAnimationSlide],\n imports: [\n CommonModule,\n SkyChevronModule,\n SkyHelpInlineModule,\n SkyIconModule,\n SkyIdModule,\n SkyThemeModule,\n SkyTilesResourcesModule,\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 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 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 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-display-3\">\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 [@skyAnimationSlide]=\"isCollapsed ? 'up' : 'down'\"\n >\n <ng-content select=\"sky-tile-content\" />\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 standalone: true,\n selector: 'sky-tile-content',\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} from '@angular/core';\nimport { SkyThemeComponentClassDirective } from '@skyux/theme';\n\nimport { DragulaModule } from 'ng2-dragula';\n\nimport { SkyTileDashboardService } from '../tile-dashboard/tile-dashboard.service';\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 imports: [DragulaModule],\n hostDirectives: [SkyThemeComponentClassDirective],\n})\nexport class SkyTileDashboardColumnComponent {\n public bagId: string;\n\n public columnId: string;\n\n @ViewChild('content', {\n read: ViewContainerRef,\n static: false,\n })\n public content: ViewContainerRef | undefined;\n\n #dashboardService: SkyTileDashboardService;\n\n constructor(\n public injector: EnvironmentInjector,\n dashboardService: SkyTileDashboardService,\n ) {\n this.#dashboardService = dashboardService;\n\n this.columnId = `tile-dashboard-column-${++columnIdIndex}`;\n\n this.bagId = this.#dashboardService.bagId;\n }\n}\n","<div class=\"sky-tile-dashboard-column\" [dragula]=\"bagId\">\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 { DragulaService } from 'ng2-dragula';\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 providers: [DragulaService],\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","i6","i8","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 { Component } from '@angular/core';\n\n/**\n * Specifies content to display in the tile's summary.\n */\n@Component({\n standalone: true,\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 * 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 ComponentRef,\n DestroyRef,\n EventEmitter,\n Injectable,\n Output,\n QueryList,\n RendererFactory2,\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 { DragulaService } from 'ng2-dragula';\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 #dragulaService = inject(DragulaService);\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.#initDragula();\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 * 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 }\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 // 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 // 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.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 #initDragula(): void {\n this.#dragulaService.createGroup(this.bagId, {\n moves: (el, container, handle) => {\n const target = el?.querySelector('.sky-tile-grab-handle');\n return !!target && target.contains(handle!);\n },\n });\n\n this.#dragulaService\n .drop(this.bagId)\n .pipe(takeUntilDestroyed(this.#destroyRef))\n .subscribe(() => {\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\n #getColumnEl(\n column: SkyTileDashboardColumnComponent | undefined,\n ): Element | undefined {\n return column?.content?.element.nativeElement.parentNode;\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 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 { skyAnimationSlide } from '@skyux/animations';\nimport { SkyIdModule, SkyIdService, SkyLogService } 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 animations: [skyAnimationSlide],\n imports: [\n CommonModule,\n SkyChevronModule,\n SkyHelpInlineModule,\n SkyIconModule,\n SkyIdModule,\n SkyThemeModule,\n SkyTilesResourcesModule,\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 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 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 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-display-3\">\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 [@skyAnimationSlide]=\"isCollapsed ? 'up' : 'down'\"\n >\n <ng-content select=\"sky-tile-content\" />\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 standalone: true,\n selector: 'sky-tile-content',\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} from '@angular/core';\nimport { SkyThemeComponentClassDirective } from '@skyux/theme';\n\nimport { DragulaModule } from 'ng2-dragula';\n\nimport { SkyTileDashboardService } from '../tile-dashboard/tile-dashboard.service';\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 imports: [DragulaModule],\n hostDirectives: [SkyThemeComponentClassDirective],\n})\nexport class SkyTileDashboardColumnComponent {\n public bagId: string;\n\n public columnId: string;\n\n @ViewChild('content', {\n read: ViewContainerRef,\n static: false,\n })\n public content: ViewContainerRef | undefined;\n\n #dashboardService: SkyTileDashboardService;\n\n constructor(\n public injector: EnvironmentInjector,\n dashboardService: SkyTileDashboardService,\n ) {\n this.#dashboardService = dashboardService;\n\n this.columnId = `tile-dashboard-column-${++columnIdIndex}`;\n\n this.bagId = this.#dashboardService.bagId;\n }\n}\n","<div class=\"sky-tile-dashboard-column\" [dragula]=\"bagId\">\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 { DragulaService } from 'ng2-dragula';\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 providers: [DragulaService],\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","i6","i8","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": "12.
|
|
3
|
+
"version": "12.44.0",
|
|
4
4
|
"author": "Blackbaud, Inc.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"blackbaud",
|
|
@@ -17,15 +17,15 @@
|
|
|
17
17
|
"homepage": "https://github.com/blackbaud/skyux#readme",
|
|
18
18
|
"peerDependencies": {
|
|
19
19
|
"@angular/cdk": "^19.2.19",
|
|
20
|
-
"@angular/common": "^19.2.
|
|
21
|
-
"@angular/core": "^19.2.
|
|
22
|
-
"@skyux/animations": "12.
|
|
23
|
-
"@skyux/core": "12.
|
|
24
|
-
"@skyux/help-inline": "12.
|
|
25
|
-
"@skyux/i18n": "12.
|
|
26
|
-
"@skyux/icon": "12.
|
|
27
|
-
"@skyux/indicators": "12.
|
|
28
|
-
"@skyux/theme": "12.
|
|
20
|
+
"@angular/common": "^19.2.17",
|
|
21
|
+
"@angular/core": "^19.2.17",
|
|
22
|
+
"@skyux/animations": "12.44.0",
|
|
23
|
+
"@skyux/core": "12.44.0",
|
|
24
|
+
"@skyux/help-inline": "12.44.0",
|
|
25
|
+
"@skyux/i18n": "12.44.0",
|
|
26
|
+
"@skyux/icon": "12.44.0",
|
|
27
|
+
"@skyux/indicators": "12.44.0",
|
|
28
|
+
"@skyux/theme": "12.44.0"
|
|
29
29
|
},
|
|
30
30
|
"dependencies": {
|
|
31
31
|
"@types/dragula": "2.1.36",
|