@skyux/pages 11.7.0 → 11.9.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.
Files changed (31) hide show
  1. package/documentation.json +2694 -888
  2. package/esm2022/index.mjs +5 -1
  3. package/esm2022/lib/modules/action-hub/action-hub-recent-links-resolve.pipe.mjs +3 -2
  4. package/esm2022/lib/modules/action-hub/action-hub.component.mjs +9 -9
  5. package/esm2022/lib/modules/action-hub/action-hub.module.mjs +4 -4
  6. package/esm2022/lib/modules/link-list/link-list-item.component.mjs +16 -0
  7. package/esm2022/lib/modules/link-list/link-list.component.mjs +44 -20
  8. package/esm2022/lib/modules/link-list/link-list.module.mjs +18 -26
  9. package/esm2022/lib/modules/link-list-recently-accessed/link-list-recently-accessed.component.mjs +45 -0
  10. package/esm2022/lib/modules/page/page-links.component.mjs +3 -3
  11. package/esm2022/lib/modules/page/page.module.mjs +22 -5
  12. package/esm2022/testing/link-list/link-list-harness-filters.mjs +2 -0
  13. package/esm2022/testing/link-list/link-list-harness.mjs +40 -0
  14. package/esm2022/testing/public-api.mjs +3 -1
  15. package/fesm2022/skyux-pages-testing.mjs +40 -1
  16. package/fesm2022/skyux-pages-testing.mjs.map +1 -1
  17. package/fesm2022/skyux-pages.mjs +287 -203
  18. package/fesm2022/skyux-pages.mjs.map +1 -1
  19. package/index.d.ts +4 -0
  20. package/lib/modules/action-hub/action-hub-recent-links-resolve.pipe.d.ts +1 -1
  21. package/lib/modules/action-hub/action-hub.module.d.ts +3 -3
  22. package/lib/modules/link-list/link-list-item.component.d.ts +8 -0
  23. package/lib/modules/link-list/link-list.component.d.ts +16 -6
  24. package/lib/modules/link-list/link-list.module.d.ts +3 -6
  25. package/lib/modules/link-list-recently-accessed/link-list-recently-accessed.component.d.ts +15 -0
  26. package/lib/modules/page/page-links.component.d.ts +2 -2
  27. package/lib/modules/page/page.module.d.ts +6 -4
  28. package/package.json +9 -9
  29. package/testing/link-list/link-list-harness-filters.d.ts +6 -0
  30. package/testing/link-list/link-list-harness.d.ts +30 -0
  31. package/testing/public-api.d.ts +4 -0
@@ -1,24 +1,120 @@
1
1
  import * as i0 from '@angular/core';
2
- import { Pipe, NgModule, Component, Input, inject, isStandalone, ViewEncapsulation, ElementRef, Optional, ChangeDetectionStrategy, CSP_NONCE, Injectable, Inject, HostBinding } from '@angular/core';
2
+ import { Pipe, Optional, NgModule, Component, input, contentChildren, computed, inject, isStandalone, Input, ViewEncapsulation, ElementRef, ChangeDetectionStrategy, CSP_NONCE, Injectable, Inject, HostBinding } from '@angular/core';
3
3
  import * as i3 from '@skyux/indicators';
4
4
  import { SkyWaitModule } from '@skyux/indicators';
5
5
  import * as i3$1 from '@skyux/layout';
6
6
  import { SkyBoxModule, SkyFluidGridModule } from '@skyux/layout';
7
7
  import * as i5 from '@skyux/theme';
8
8
  import { SkyThemeModule } from '@skyux/theme';
9
- import * as i1 from '@angular/common';
10
- import { CommonModule, DOCUMENT } from '@angular/common';
9
+ import { Subject } from 'rxjs';
10
+ import { takeUntil } from 'rxjs/operators';
11
11
  import * as i2 from '@skyux/router';
12
12
  import { SkyAppLinkModule, SkyHrefModule } from '@skyux/router';
13
+ import * as i1$1 from '@angular/common';
14
+ import { NgTemplateOutlet, CommonModule, DOCUMENT } from '@angular/common';
15
+ import * as i1 from '@skyux/i18n';
16
+ import { SkyLibResourcesService, getLibStringForLocale, SkyI18nModule, SKY_LIB_RESOURCES_PROVIDERS } from '@skyux/i18n';
13
17
  import { SkyLogService, SkyTrimModule, SkyDefaultInputProvider, SkyMediaQueryService, SkyMediaBreakpoints, SkyResizeObserverMediaQueryService, SkyLayoutHostService, SkyHelpService } from '@skyux/core';
14
18
  import { SkyModalService, SkyModalLegacyService } from '@skyux/modals';
15
19
  import * as i4 from '@skyux/icon';
16
20
  import { SkyIconModule } from '@skyux/icon';
17
- import * as i6 from '@skyux/i18n';
18
- import { SkyLibResourcesService, getLibStringForLocale, SkyI18nModule, SKY_LIB_RESOURCES_PROVIDERS } from '@skyux/i18n';
19
21
  import { RouterModule } from '@angular/router';
20
- import { Subject } from 'rxjs';
21
- import { takeUntil } from 'rxjs/operators';
22
+
23
+ const RECENTLY_ACCESSED_LIMIT = 5;
24
+ function getRecentLinksSorted(recentLinks) {
25
+ if (recentLinks === 'loading') {
26
+ return 'loading';
27
+ }
28
+ if (!recentLinks || recentLinks.length === 0) {
29
+ return [];
30
+ }
31
+ return recentLinks
32
+ .slice(0)
33
+ .sort((a, b) => {
34
+ const aTime = a.lastAccessed instanceof Date
35
+ ? a.lastAccessed.toISOString()
36
+ : a.lastAccessed;
37
+ const bTime = b.lastAccessed instanceof Date
38
+ ? b.lastAccessed.toISOString()
39
+ : b.lastAccessed;
40
+ if (aTime === bTime) {
41
+ return 0;
42
+ }
43
+ return aTime > bTime ? -1 : 1;
44
+ })
45
+ .slice(0, RECENTLY_ACCESSED_LIMIT);
46
+ }
47
+ class SkyActionHubRecentLinksResolvePipe {
48
+ #currentRecentLinks;
49
+ #currentRecentLinksResolved = [];
50
+ #recentlyAccessedSub;
51
+ #ngUnsubscribe = new Subject();
52
+ #changeDetector;
53
+ #recentlyAccessedSvc;
54
+ constructor(changeDetector, recentlyAccessedSvc) {
55
+ this.#changeDetector = changeDetector;
56
+ this.#recentlyAccessedSvc = recentlyAccessedSvc;
57
+ }
58
+ transform(recentLinks) {
59
+ if (recentLinks !== this.#currentRecentLinks) {
60
+ if (this.#recentlyAccessedSub) {
61
+ this.#recentlyAccessedSub.unsubscribe();
62
+ }
63
+ this.#currentRecentLinks = recentLinks;
64
+ const getLinksArgs = recentLinks;
65
+ if (getLinksArgs?.requestedRoutes) {
66
+ this.#resolveRequestedRoutes(getLinksArgs);
67
+ }
68
+ else {
69
+ this.#updateRecentLinksResolved(recentLinks);
70
+ }
71
+ }
72
+ return this.#currentRecentLinksResolved;
73
+ }
74
+ ngOnDestroy() {
75
+ this.#ngUnsubscribe.next();
76
+ this.#ngUnsubscribe.complete();
77
+ }
78
+ #resolveRequestedRoutes(args) {
79
+ if (this.#recentlyAccessedSvc) {
80
+ this.#updateRecentLinksResolved('loading');
81
+ this.#recentlyAccessedSub = this.#recentlyAccessedSvc
82
+ .getLinks(args)
83
+ .pipe(takeUntil(this.#ngUnsubscribe))
84
+ .subscribe((result) => {
85
+ this.#recentlyAccessedSub = undefined;
86
+ const recentLinks = result.links.map((item) => ({
87
+ label: item.label,
88
+ lastAccessed: item.lastAccessed,
89
+ permalink: {
90
+ url: item.url,
91
+ },
92
+ }));
93
+ this.#updateRecentLinksResolved(recentLinks);
94
+ });
95
+ }
96
+ else {
97
+ this.#updateRecentLinksResolved([]);
98
+ }
99
+ }
100
+ #updateRecentLinksResolved(recentLinksResolved) {
101
+ this.#currentRecentLinksResolved =
102
+ getRecentLinksSorted(recentLinksResolved);
103
+ this.#changeDetector.markForCheck();
104
+ }
105
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SkyActionHubRecentLinksResolvePipe, deps: [{ token: i0.ChangeDetectorRef }, { token: i2.SkyRecentlyAccessedService, optional: true }], target: i0.ɵɵFactoryTarget.Pipe }); }
106
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.5", ngImport: i0, type: SkyActionHubRecentLinksResolvePipe, isStandalone: true, name: "skyActionHubRecentLinksResolve", pure: false }); }
107
+ }
108
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SkyActionHubRecentLinksResolvePipe, decorators: [{
109
+ type: Pipe,
110
+ args: [{
111
+ name: 'skyActionHubRecentLinksResolve',
112
+ pure: false,
113
+ standalone: true,
114
+ }]
115
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i2.SkyRecentlyAccessedService, decorators: [{
116
+ type: Optional
117
+ }] }] });
22
118
 
23
119
  class LinkAsPipe {
24
120
  transform(value, linkAs) {
@@ -60,57 +156,177 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
60
156
  }]
61
157
  }] });
62
158
 
159
+ /**
160
+ * A wrapper for each link in a link list.
161
+ */
162
+ class SkyLinkListItemComponent {
163
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SkyLinkListItemComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
164
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.5", type: SkyLinkListItemComponent, isStandalone: true, selector: "sky-link-list-item", host: { properties: { "attr.role": "\"listitem\"" } }, ngImport: i0, template: `<ng-content />`, isInline: true, styles: [":host{display:block;margin:0 0 var(--sky-margin-stacked-sm) 0}\n"] }); }
165
+ }
166
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SkyLinkListItemComponent, decorators: [{
167
+ type: Component,
168
+ args: [{ standalone: true, selector: 'sky-link-list-item', template: `<ng-content />`, host: {
169
+ '[attr.role]': '"listitem"',
170
+ }, styles: [":host{display:block;margin:0 0 var(--sky-margin-stacked-sm) 0}\n"] }]
171
+ }] });
172
+
173
+ /**
174
+ * A component that displays a list of links, such as within a `<sky-page-links>` component.
175
+ */
63
176
  class SkyLinkListComponent {
64
177
  constructor() {
65
- this.linksArray = [];
66
- }
67
- set links(value) {
68
- this.#_links = value;
69
- this.linksArray = Array.isArray(value) ? value : [];
70
- }
71
- get links() {
72
- return this.#_links;
178
+ /**
179
+ * The text to display as the list's heading.
180
+ */
181
+ this.headingText = input();
182
+ /**
183
+ * Option to pass links as an array of `SkyPageLink` objects or `'loading'` to display a loading indicator.
184
+ */
185
+ this.links = input();
186
+ this.linkItems = contentChildren(SkyLinkListItemComponent);
187
+ this.hasLinks = computed(() => {
188
+ const linkItems = this.linkItems();
189
+ const links = this.links();
190
+ if (linkItems.length > 0) {
191
+ return true;
192
+ }
193
+ return Array.isArray(links) && links.length > 0;
194
+ });
195
+ this.linksArray = computed(() => {
196
+ const links = this.links();
197
+ if (Array.isArray(links)) {
198
+ return links;
199
+ }
200
+ return [];
201
+ });
73
202
  }
74
- #_links;
75
203
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SkyLinkListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
76
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", type: SkyLinkListComponent, selector: "sky-link-list", inputs: { links: "links", title: "title" }, ngImport: i0, template: "<sky-wait [isWaiting]=\"links === 'loading'\" />\n@if (links === 'loading') {\n <ng-container [ngTemplateOutlet]=\"headingTemplateRef\" />\n} @else {\n @if (linksArray.length > 0) {\n <ng-container [ngTemplateOutlet]=\"headingTemplateRef\" />\n <ul class=\"sky-link-list\">\n @for (link of linksArray; track link) {\n <li>\n @if (link | linkAs: 'skyHref') {\n <a [skyHref]=\"link.permalink.url\">\n {{ link.label }}\n </a>\n } @else if (link | linkAs: 'href') {\n <a [href]=\"link.permalink.url\">\n {{ link.label }}\n </a>\n } @else if (link.permalink.route) {\n <a\n [skyAppLink]=\"link.permalink.route.commands\"\n [queryParams]=\"link.permalink.route.extras?.queryParams\"\n [queryParamsHandling]=\"\n link.permalink.route.extras?.queryParamsHandling\n \"\n [fragment]=\"link.permalink.route.extras?.fragment\"\n [preserveFragment]=\"link.permalink.route.extras?.preserveFragment\"\n [skipLocationChange]=\"\n link.permalink.route.extras?.skipLocationChange\n \"\n [replaceUrl]=\"link.permalink.route.extras?.replaceUrl\"\n [state]=\"link.permalink.route.extras?.state\"\n >\n {{ link.label }}\n </a>\n }\n </li>\n }\n </ul>\n }\n}\n\n<ng-template #headingTemplateRef>\n <h2 class=\"sky-font-heading-4\">\n {{ title }}\n </h2>\n</ng-template>\n", styles: ["ul.sky-link-list{list-style:none;margin:0 0 var(--sky-margin-stacked-xl) 0;padding-left:0}h2,li{margin:0 0 var(--sky-margin-stacked-sm) 0}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.λ3, selector: "[skyAppLink]", inputs: ["skyAppLink"] }, { kind: "directive", type: i2.λ1, selector: "[skyHref]", inputs: ["skyHref", "queryParams", "skyHrefElse"], outputs: ["skyHrefChange"] }, { kind: "component", type: i3.λ14, selector: "sky-wait", inputs: ["ariaLabel", "isWaiting", "isFullPage", "isNonBlocking", "screenReaderCompletedText"] }, { kind: "pipe", type: LinkAsPipe, name: "linkAs" }] }); }
204
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", type: SkyLinkListComponent, isStandalone: true, selector: "sky-link-list", inputs: { headingText: { classPropertyName: "headingText", publicName: "headingText", isSignal: true, isRequired: false, transformFunction: null }, links: { classPropertyName: "links", publicName: "links", isSignal: true, isRequired: false, transformFunction: null } }, queries: [{ propertyName: "linkItems", predicate: SkyLinkListItemComponent, isSignal: true }], ngImport: i0, template: "<sky-wait [isWaiting]=\"links() === 'loading'\" />\n@if (links() === 'loading') {\n <ng-container [ngTemplateOutlet]=\"headingTemplateRef\" />\n} @else {\n @if (hasLinks()) {\n <ng-container [ngTemplateOutlet]=\"headingTemplateRef\" />\n <ul class=\"sky-link-list\">\n @for (link of linksArray(); track link) {\n <li>\n @if (link | linkAs: 'skyHref') {\n <a [skyHref]=\"link.permalink.url\">\n {{ link.label }}\n </a>\n } @else if (link | linkAs: 'href') {\n <a [href]=\"link.permalink.url\">\n {{ link.label }}\n </a>\n } @else if (link.permalink.route) {\n <a\n [skyAppLink]=\"link.permalink.route.commands\"\n [queryParams]=\"link.permalink.route.extras?.queryParams\"\n [queryParamsHandling]=\"\n link.permalink.route.extras?.queryParamsHandling\n \"\n [fragment]=\"link.permalink.route.extras?.fragment\"\n [preserveFragment]=\"link.permalink.route.extras?.preserveFragment\"\n [skipLocationChange]=\"\n link.permalink.route.extras?.skipLocationChange\n \"\n [replaceUrl]=\"link.permalink.route.extras?.replaceUrl\"\n [state]=\"link.permalink.route.extras?.state\"\n >\n {{ link.label }}\n </a>\n }\n </li>\n }\n <ng-content select=\"sky-link-list-item\" />\n </ul>\n }\n}\n\n<ng-template #headingTemplateRef>\n <h2 class=\"sky-font-heading-4\">{{ headingText() }}</h2>\n</ng-template>\n", styles: ["ul.sky-link-list{list-style:none;margin:0 0 var(--sky-margin-stacked-xl) 0;padding-left:0}h2,li{margin:0 0 var(--sky-margin-stacked-sm) 0}\n"], dependencies: [{ kind: "ngmodule", type: LinkAsModule }, { kind: "pipe", type: LinkAsPipe, name: "linkAs" }, { kind: "directive", type: NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "ngmodule", type: SkyAppLinkModule }, { kind: "directive", type: i2.λ3, selector: "[skyAppLink]", inputs: ["skyAppLink"] }, { kind: "ngmodule", type: SkyHrefModule }, { kind: "directive", type: i2.λ1, selector: "[skyHref]", inputs: ["skyHref", "queryParams", "skyHrefElse"], outputs: ["skyHrefChange"] }, { kind: "ngmodule", type: SkyWaitModule }, { kind: "component", type: i3.λ14, selector: "sky-wait", inputs: ["ariaLabel", "isWaiting", "isFullPage", "isNonBlocking", "screenReaderCompletedText"] }] }); }
77
205
  }
78
206
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SkyLinkListComponent, decorators: [{
79
207
  type: Component,
80
- args: [{ selector: 'sky-link-list', template: "<sky-wait [isWaiting]=\"links === 'loading'\" />\n@if (links === 'loading') {\n <ng-container [ngTemplateOutlet]=\"headingTemplateRef\" />\n} @else {\n @if (linksArray.length > 0) {\n <ng-container [ngTemplateOutlet]=\"headingTemplateRef\" />\n <ul class=\"sky-link-list\">\n @for (link of linksArray; track link) {\n <li>\n @if (link | linkAs: 'skyHref') {\n <a [skyHref]=\"link.permalink.url\">\n {{ link.label }}\n </a>\n } @else if (link | linkAs: 'href') {\n <a [href]=\"link.permalink.url\">\n {{ link.label }}\n </a>\n } @else if (link.permalink.route) {\n <a\n [skyAppLink]=\"link.permalink.route.commands\"\n [queryParams]=\"link.permalink.route.extras?.queryParams\"\n [queryParamsHandling]=\"\n link.permalink.route.extras?.queryParamsHandling\n \"\n [fragment]=\"link.permalink.route.extras?.fragment\"\n [preserveFragment]=\"link.permalink.route.extras?.preserveFragment\"\n [skipLocationChange]=\"\n link.permalink.route.extras?.skipLocationChange\n \"\n [replaceUrl]=\"link.permalink.route.extras?.replaceUrl\"\n [state]=\"link.permalink.route.extras?.state\"\n >\n {{ link.label }}\n </a>\n }\n </li>\n }\n </ul>\n }\n}\n\n<ng-template #headingTemplateRef>\n <h2 class=\"sky-font-heading-4\">\n {{ title }}\n </h2>\n</ng-template>\n", styles: ["ul.sky-link-list{list-style:none;margin:0 0 var(--sky-margin-stacked-xl) 0;padding-left:0}h2,li{margin:0 0 var(--sky-margin-stacked-sm) 0}\n"] }]
81
- }], propDecorators: { links: [{
82
- type: Input
83
- }], title: [{
84
- type: Input
85
- }] } });
208
+ args: [{ standalone: true, selector: 'sky-link-list', imports: [
209
+ LinkAsModule,
210
+ NgTemplateOutlet,
211
+ SkyAppLinkModule,
212
+ SkyHrefModule,
213
+ SkyWaitModule,
214
+ ], template: "<sky-wait [isWaiting]=\"links() === 'loading'\" />\n@if (links() === 'loading') {\n <ng-container [ngTemplateOutlet]=\"headingTemplateRef\" />\n} @else {\n @if (hasLinks()) {\n <ng-container [ngTemplateOutlet]=\"headingTemplateRef\" />\n <ul class=\"sky-link-list\">\n @for (link of linksArray(); track link) {\n <li>\n @if (link | linkAs: 'skyHref') {\n <a [skyHref]=\"link.permalink.url\">\n {{ link.label }}\n </a>\n } @else if (link | linkAs: 'href') {\n <a [href]=\"link.permalink.url\">\n {{ link.label }}\n </a>\n } @else if (link.permalink.route) {\n <a\n [skyAppLink]=\"link.permalink.route.commands\"\n [queryParams]=\"link.permalink.route.extras?.queryParams\"\n [queryParamsHandling]=\"\n link.permalink.route.extras?.queryParamsHandling\n \"\n [fragment]=\"link.permalink.route.extras?.fragment\"\n [preserveFragment]=\"link.permalink.route.extras?.preserveFragment\"\n [skipLocationChange]=\"\n link.permalink.route.extras?.skipLocationChange\n \"\n [replaceUrl]=\"link.permalink.route.extras?.replaceUrl\"\n [state]=\"link.permalink.route.extras?.state\"\n >\n {{ link.label }}\n </a>\n }\n </li>\n }\n <ng-content select=\"sky-link-list-item\" />\n </ul>\n }\n}\n\n<ng-template #headingTemplateRef>\n <h2 class=\"sky-font-heading-4\">{{ headingText() }}</h2>\n</ng-template>\n", styles: ["ul.sky-link-list{list-style:none;margin:0 0 var(--sky-margin-stacked-xl) 0;padding-left:0}h2,li{margin:0 0 var(--sky-margin-stacked-sm) 0}\n"] }]
215
+ }] });
216
+
217
+ /* istanbul ignore file */
218
+ /**
219
+ * NOTICE: DO NOT MODIFY THIS FILE!
220
+ * The contents of this file were automatically generated by
221
+ * the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-pages' schematic.
222
+ * To update this file, simply rerun the command.
223
+ */
224
+ const RESOURCES = {
225
+ 'EN-US': {
226
+ sky_action_hub_related_links: { message: 'Related links' },
227
+ sky_action_hub_recent_links: { message: 'Recently accessed' },
228
+ sky_action_hub_settings_links: { message: 'Settings' },
229
+ sky_action_hub_needs_attention: { message: 'Needs attention' },
230
+ sky_action_hub_needs_attention_empty: {
231
+ message: 'No issues currently need attention',
232
+ },
233
+ },
234
+ };
235
+ SkyLibResourcesService.addResources(RESOURCES);
236
+ class SkyPagesResourcesProvider {
237
+ getString(localeInfo, name) {
238
+ return getLibStringForLocale(RESOURCES, localeInfo.locale, name);
239
+ }
240
+ }
241
+ /**
242
+ * Import into any component library module that needs to use resource strings.
243
+ */
244
+ class SkyPagesResourcesModule {
245
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SkyPagesResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
246
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.5", ngImport: i0, type: SkyPagesResourcesModule, exports: [SkyI18nModule] }); }
247
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SkyPagesResourcesModule, providers: [
248
+ {
249
+ provide: SKY_LIB_RESOURCES_PROVIDERS,
250
+ useClass: SkyPagesResourcesProvider,
251
+ multi: true,
252
+ },
253
+ ], imports: [SkyI18nModule] }); }
254
+ }
255
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SkyPagesResourcesModule, decorators: [{
256
+ type: NgModule,
257
+ args: [{
258
+ exports: [SkyI18nModule],
259
+ providers: [
260
+ {
261
+ provide: SKY_LIB_RESOURCES_PROVIDERS,
262
+ useClass: SkyPagesResourcesProvider,
263
+ multi: true,
264
+ },
265
+ ],
266
+ }]
267
+ }] });
268
+
269
+ /**
270
+ * A component that displays a list of recently accessed links, such as within a `<sky-page-links>` component.
271
+ */
272
+ class SkyLinkListRecentlyAccessedComponent {
273
+ constructor() {
274
+ /**
275
+ * Option to pass links as an array of `SkyRecentLink` objects,
276
+ * a `SkyRecentlyAccessedGetLinksArgs` object for `SkyRecentlyAccessedService`,
277
+ * or `'loading'` to display a loading indicator.
278
+ */
279
+ this.recentLinks = input();
280
+ }
281
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SkyLinkListRecentlyAccessedComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
282
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.5", type: SkyLinkListRecentlyAccessedComponent, isStandalone: true, selector: "sky-link-list-recently-accessed", inputs: { recentLinks: { classPropertyName: "recentLinks", publicName: "recentLinks", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: `
283
+ <sky-link-list
284
+ [links]="recentLinks() | skyActionHubRecentLinksResolve"
285
+ [headingText]="'sky_action_hub_recent_links' | skyLibResources"
286
+ />
287
+ `, isInline: true, dependencies: [{ kind: "pipe", type: SkyActionHubRecentLinksResolvePipe, name: "skyActionHubRecentLinksResolve" }, { kind: "component", type: SkyLinkListComponent, selector: "sky-link-list", inputs: ["headingText", "links"] }, { kind: "ngmodule", type: SkyPagesResourcesModule }, { kind: "pipe", type: i1.SkyLibResourcesPipe, name: "skyLibResources" }] }); }
288
+ }
289
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SkyLinkListRecentlyAccessedComponent, decorators: [{
290
+ type: Component,
291
+ args: [{
292
+ selector: 'sky-link-list-recently-accessed',
293
+ standalone: true,
294
+ imports: [
295
+ SkyActionHubRecentLinksResolvePipe,
296
+ SkyLinkListComponent,
297
+ SkyPagesResourcesModule,
298
+ ],
299
+ template: `
300
+ <sky-link-list
301
+ [links]="recentLinks() | skyActionHubRecentLinksResolve"
302
+ [headingText]="'sky_action_hub_recent_links' | skyLibResources"
303
+ />
304
+ `,
305
+ }]
306
+ }] });
86
307
 
87
308
  class SkyLinkListModule {
88
309
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SkyLinkListModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
89
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.5", ngImport: i0, type: SkyLinkListModule, declarations: [SkyLinkListComponent], imports: [CommonModule,
90
- SkyAppLinkModule,
91
- SkyHrefModule,
92
- SkyThemeModule,
93
- SkyWaitModule,
94
- LinkAsModule], exports: [SkyLinkListComponent] }); }
95
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SkyLinkListModule, imports: [CommonModule,
96
- SkyAppLinkModule,
97
- SkyHrefModule,
98
- SkyThemeModule,
99
- SkyWaitModule,
100
- LinkAsModule] }); }
310
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.5", ngImport: i0, type: SkyLinkListModule, imports: [SkyLinkListComponent,
311
+ SkyLinkListItemComponent,
312
+ SkyLinkListRecentlyAccessedComponent], exports: [SkyLinkListComponent,
313
+ SkyLinkListItemComponent,
314
+ SkyLinkListRecentlyAccessedComponent] }); }
315
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SkyLinkListModule, imports: [SkyLinkListComponent,
316
+ SkyLinkListRecentlyAccessedComponent] }); }
101
317
  }
102
318
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SkyLinkListModule, decorators: [{
103
319
  type: NgModule,
104
320
  args: [{
105
- declarations: [SkyLinkListComponent],
106
- exports: [SkyLinkListComponent],
321
+ exports: [
322
+ SkyLinkListComponent,
323
+ SkyLinkListItemComponent,
324
+ SkyLinkListRecentlyAccessedComponent,
325
+ ],
107
326
  imports: [
108
- CommonModule,
109
- SkyAppLinkModule,
110
- SkyHrefModule,
111
- SkyThemeModule,
112
- SkyWaitModule,
113
- LinkAsModule,
327
+ SkyLinkListComponent,
328
+ SkyLinkListItemComponent,
329
+ SkyLinkListRecentlyAccessedComponent,
114
330
  ],
115
331
  }]
116
332
  }] });
@@ -147,7 +363,7 @@ class SkyModalLinkListComponent {
147
363
  }
148
364
  }
149
365
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SkyModalLinkListComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
150
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", type: SkyModalLinkListComponent, selector: "sky-modal-link-list", inputs: { links: "links", title: "title" }, ngImport: i0, template: "<sky-wait [isWaiting]=\"links === 'loading'\" />\n@if (links === 'loading') {\n <ng-container [ngTemplateOutlet]=\"headingTemplateRef\" />\n} @else {\n @if (linksArray.length > 0) {\n <ng-container [ngTemplateOutlet]=\"headingTemplateRef\" />\n <ul class=\"sky-link-list\">\n @for (link of linksArray; track link) {\n <li>\n @if (link | linkAs: 'skyHref') {\n <a [skyHref]=\"link.permalink?.url\">\n {{ link.label }}\n </a>\n } @else if (link | linkAs: 'href') {\n <a [href]=\"link.permalink?.url\">\n {{ link.label }}\n </a>\n } @else if (link.permalink && link.permalink.route) {\n <a\n [skyAppLink]=\"link.permalink.route.commands\"\n [queryParams]=\"link.permalink.route.extras?.queryParams\"\n [queryParamsHandling]=\"\n link.permalink.route.extras?.queryParamsHandling\n \"\n [fragment]=\"link.permalink.route.extras?.fragment\"\n [preserveFragment]=\"link.permalink.route.extras?.preserveFragment\"\n [skipLocationChange]=\"\n link.permalink.route.extras?.skipLocationChange\n \"\n [replaceUrl]=\"link.permalink.route.extras?.replaceUrl\"\n [state]=\"link.permalink.route.extras?.state\"\n >\n {{ link.label }}\n </a>\n } @else if (link.modal) {\n <button\n class=\"sky-btn sky-btn-link-inline\"\n type=\"button\"\n (click)=\"openModal(link)\"\n >\n {{ link.label }}\n </button>\n }\n </li>\n }\n </ul>\n }\n}\n\n<ng-template #headingTemplateRef>\n <h2 class=\"sky-font-heading-4\">\n {{ title }}\n </h2>\n</ng-template>\n", styles: ["ul.sky-link-list{list-style:none;margin:0 0 var(--sky-margin-stacked-xl) 0;padding-left:0}h2,li{margin:0 0 var(--sky-margin-stacked-sm) 0}\n"], dependencies: [{ kind: "directive", type: i1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.λ3, selector: "[skyAppLink]", inputs: ["skyAppLink"] }, { kind: "directive", type: i2.λ1, selector: "[skyHref]", inputs: ["skyHref", "queryParams", "skyHrefElse"], outputs: ["skyHrefChange"] }, { kind: "component", type: i3.λ14, selector: "sky-wait", inputs: ["ariaLabel", "isWaiting", "isFullPage", "isNonBlocking", "screenReaderCompletedText"] }, { kind: "pipe", type: LinkAsPipe, name: "linkAs" }] }); }
366
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", type: SkyModalLinkListComponent, selector: "sky-modal-link-list", inputs: { links: "links", title: "title" }, ngImport: i0, template: "<sky-wait [isWaiting]=\"links === 'loading'\" />\n@if (links === 'loading') {\n <ng-container [ngTemplateOutlet]=\"headingTemplateRef\" />\n} @else {\n @if (linksArray.length > 0) {\n <ng-container [ngTemplateOutlet]=\"headingTemplateRef\" />\n <ul class=\"sky-link-list\">\n @for (link of linksArray; track link) {\n <li>\n @if (link | linkAs: 'skyHref') {\n <a [skyHref]=\"link.permalink?.url\">\n {{ link.label }}\n </a>\n } @else if (link | linkAs: 'href') {\n <a [href]=\"link.permalink?.url\">\n {{ link.label }}\n </a>\n } @else if (link.permalink && link.permalink.route) {\n <a\n [skyAppLink]=\"link.permalink.route.commands\"\n [queryParams]=\"link.permalink.route.extras?.queryParams\"\n [queryParamsHandling]=\"\n link.permalink.route.extras?.queryParamsHandling\n \"\n [fragment]=\"link.permalink.route.extras?.fragment\"\n [preserveFragment]=\"link.permalink.route.extras?.preserveFragment\"\n [skipLocationChange]=\"\n link.permalink.route.extras?.skipLocationChange\n \"\n [replaceUrl]=\"link.permalink.route.extras?.replaceUrl\"\n [state]=\"link.permalink.route.extras?.state\"\n >\n {{ link.label }}\n </a>\n } @else if (link.modal) {\n <button\n class=\"sky-btn sky-btn-link-inline\"\n type=\"button\"\n (click)=\"openModal(link)\"\n >\n {{ link.label }}\n </button>\n }\n </li>\n }\n </ul>\n }\n}\n\n<ng-template #headingTemplateRef>\n <h2 class=\"sky-font-heading-4\">\n {{ title }}\n </h2>\n</ng-template>\n", styles: ["ul.sky-link-list{list-style:none;margin:0 0 var(--sky-margin-stacked-xl) 0;padding-left:0}h2,li{margin:0 0 var(--sky-margin-stacked-sm) 0}\n"], dependencies: [{ kind: "directive", type: i1$1.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.λ3, selector: "[skyAppLink]", inputs: ["skyAppLink"] }, { kind: "directive", type: i2.λ1, selector: "[skyHref]", inputs: ["skyHref", "queryParams", "skyHrefElse"], outputs: ["skyHrefChange"] }, { kind: "component", type: i3.λ14, selector: "sky-wait", inputs: ["ariaLabel", "isWaiting", "isFullPage", "isNonBlocking", "screenReaderCompletedText"] }, { kind: "pipe", type: LinkAsPipe, name: "linkAs" }] }); }
151
367
  }
152
368
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SkyModalLinkListComponent, decorators: [{
153
369
  type: Component,
@@ -186,58 +402,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
186
402
  }]
187
403
  }] });
188
404
 
189
- /* istanbul ignore file */
190
- /**
191
- * NOTICE: DO NOT MODIFY THIS FILE!
192
- * The contents of this file were automatically generated by
193
- * the 'ng generate @skyux/i18n:lib-resources-module lib/modules/shared/sky-pages' schematic.
194
- * To update this file, simply rerun the command.
195
- */
196
- const RESOURCES = {
197
- 'EN-US': {
198
- sky_action_hub_related_links: { message: 'Related links' },
199
- sky_action_hub_recent_links: { message: 'Recently accessed' },
200
- sky_action_hub_settings_links: { message: 'Settings' },
201
- sky_action_hub_needs_attention: { message: 'Needs attention' },
202
- sky_action_hub_needs_attention_empty: {
203
- message: 'No issues currently need attention',
204
- },
205
- },
206
- };
207
- SkyLibResourcesService.addResources(RESOURCES);
208
- class SkyPagesResourcesProvider {
209
- getString(localeInfo, name) {
210
- return getLibStringForLocale(RESOURCES, localeInfo.locale, name);
211
- }
212
- }
213
- /**
214
- * Import into any component library module that needs to use resource strings.
215
- */
216
- class SkyPagesResourcesModule {
217
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SkyPagesResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
218
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.5", ngImport: i0, type: SkyPagesResourcesModule, exports: [SkyI18nModule] }); }
219
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SkyPagesResourcesModule, providers: [
220
- {
221
- provide: SKY_LIB_RESOURCES_PROVIDERS,
222
- useClass: SkyPagesResourcesProvider,
223
- multi: true,
224
- },
225
- ], imports: [SkyI18nModule] }); }
226
- }
227
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SkyPagesResourcesModule, decorators: [{
228
- type: NgModule,
229
- args: [{
230
- exports: [SkyI18nModule],
231
- providers: [
232
- {
233
- provide: SKY_LIB_RESOURCES_PROVIDERS,
234
- useClass: SkyPagesResourcesProvider,
235
- multi: true,
236
- },
237
- ],
238
- }]
239
- }] });
240
-
241
405
  class SkyNeedsAttentionComponent {
242
406
  set items(value) {
243
407
  this.#items = value;
@@ -255,7 +419,7 @@ class SkyNeedsAttentionComponent {
255
419
  #items;
256
420
  #logService = inject(SkyLogService);
257
421
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SkyNeedsAttentionComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
258
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", type: SkyNeedsAttentionComponent, selector: "sky-needs-attention", inputs: { items: "items" }, ngImport: i0, template: "<sky-box>\n <sky-box-header>\n <h2 class=\"sky-font-heading-2\">\n {{ 'sky_action_hub_needs_attention' | skyLibResources }}\n </h2>\n </sky-box-header>\n <sky-box-content>\n @if (items?.length === 0) {\n {{ 'sky_action_hub_needs_attention_empty' | skyLibResources }}\n } @else {\n <ul>\n @for (item of items; track item; let isLast = $last) {\n <li\n class=\"sky-needs-attention-item-wrapper sky-font-emphasized\"\n [ngClass]=\"{\n 'sky-border-bottom-row': !isLast\n }\"\n >\n @if (\n (item | linkAs: 'skyAppLink') && item.permalink?.route;\n as permalinkRoute\n ) {\n <a\n class=\"sky-needs-attention-item\"\n [skyAppLink]=\"permalinkRoute.commands\"\n [queryParams]=\"permalinkRoute.extras?.queryParams\"\n [queryParamsHandling]=\"\n permalinkRoute.extras?.queryParamsHandling\n \"\n [fragment]=\"permalinkRoute.extras?.fragment\"\n [preserveFragment]=\"permalinkRoute.extras?.preserveFragment\"\n [skipLocationChange]=\"permalinkRoute.extras?.skipLocationChange\"\n [replaceUrl]=\"permalinkRoute.extras?.replaceUrl\"\n [state]=\"permalinkRoute.extras?.state\"\n >{{ item.title }} {{ item.message }}</a\n >\n } @else if (item.permalink) {\n @if (item | linkAs: 'skyHref') {\n <a\n class=\"sky-needs-attention-item\"\n [skyHref]=\"item.permalink.url\"\n >{{ item.title }} {{ item.message }}</a\n >\n } @else if (item | linkAs: 'href') {\n <a class=\"sky-needs-attention-item\" [href]=\"item.permalink.url\"\n >{{ item.title }} {{ item.message }}</a\n >\n }\n } @else if (item | linkAs: 'button') {\n <button\n class=\"sky-needs-attention-item sky-btn sky-btn-link-inline\"\n type=\"button\"\n (click)=\"item?.click({ item })\"\n >\n {{ item.title }} {{ item.message }}\n </button>\n }\n <sky-icon\n *skyThemeIf=\"'default'\"\n class=\"sky-needs-attention-item-icon\"\n icon=\"caret-right\"\n />\n <sky-icon\n *skyThemeIf=\"'modern'\"\n class=\"sky-needs-attention-item-icon\"\n icon=\"chevron-right\"\n />\n </li>\n }\n </ul>\n }\n </sky-box-content>\n</sky-box>\n", styles: [":host{display:block;margin-bottom:var(--sky-margin-stacked-xl)}h2{margin:0}ul{list-style:none;padding:0;margin:0}ul li{margin:0}.sky-needs-attention-item-wrapper{position:relative;display:grid;grid-template-columns:5fr 1fr;grid-template-areas:\"action icon\"}.sky-needs-attention-item-wrapper:not(:first-child){padding-top:var(--sky-margin-stacked-lg)}.sky-needs-attention-item-wrapper:not(:last-child){padding-bottom:var(--sky-margin-stacked-lg)}.sky-needs-attention-item{grid-area:action;text-align:left;width:100%;white-space:normal}.sky-needs-attention-item-icon{grid-area:icon;text-align:right;color:#686c73}.sky-needs-attention-item:focus-visible{outline:none}.sky-needs-attention-item:focus-visible:not(:active){border:none;box-shadow:inset 0 0 0 2px #1870b8,0 1px 8px #0000004d}.sky-needs-attention-item:before{content:\" \";position:absolute;inset:0;cursor:pointer}button.sky-needs-attention-item.sky-border-bottom-row{border-bottom:1px dotted #cdcfd2}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.λ3, selector: "[skyAppLink]", inputs: ["skyAppLink"] }, { kind: "component", type: i3$1.λ41, selector: "sky-box", inputs: ["headingText", "headingHidden", "headingLevel", "headingStyle", "helpPopoverContent", "helpPopoverTitle", "helpKey", "ariaLabel", "ariaLabelledBy", "ariaRole"] }, { kind: "component", type: i3$1.λ42, selector: "sky-box-header" }, { kind: "component", type: i3$1.λ43, selector: "sky-box-content" }, { kind: "directive", type: i2.λ1, selector: "[skyHref]", inputs: ["skyHref", "queryParams", "skyHrefElse"], outputs: ["skyHrefChange"] }, { kind: "component", type: i4.λ1, selector: "sky-icon", inputs: ["icon", "iconName", "iconType", "size", "fixedWidth", "variant"] }, { kind: "directive", type: i5.λ3, selector: "[skyThemeIf]", inputs: ["skyThemeIf"] }, { kind: "pipe", type: i6.SkyLibResourcesPipe, name: "skyLibResources" }, { kind: "pipe", type: LinkAsPipe, name: "linkAs" }] }); }
422
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", type: SkyNeedsAttentionComponent, selector: "sky-needs-attention", inputs: { items: "items" }, ngImport: i0, template: "<sky-box>\n <sky-box-header>\n <h2 class=\"sky-font-heading-2\">\n {{ 'sky_action_hub_needs_attention' | skyLibResources }}\n </h2>\n </sky-box-header>\n <sky-box-content>\n @if (items?.length === 0) {\n {{ 'sky_action_hub_needs_attention_empty' | skyLibResources }}\n } @else {\n <ul>\n @for (item of items; track item; let isLast = $last) {\n <li\n class=\"sky-needs-attention-item-wrapper sky-font-emphasized\"\n [ngClass]=\"{\n 'sky-border-bottom-row': !isLast\n }\"\n >\n @if (\n (item | linkAs: 'skyAppLink') && item.permalink?.route;\n as permalinkRoute\n ) {\n <a\n class=\"sky-needs-attention-item\"\n [skyAppLink]=\"permalinkRoute.commands\"\n [queryParams]=\"permalinkRoute.extras?.queryParams\"\n [queryParamsHandling]=\"\n permalinkRoute.extras?.queryParamsHandling\n \"\n [fragment]=\"permalinkRoute.extras?.fragment\"\n [preserveFragment]=\"permalinkRoute.extras?.preserveFragment\"\n [skipLocationChange]=\"permalinkRoute.extras?.skipLocationChange\"\n [replaceUrl]=\"permalinkRoute.extras?.replaceUrl\"\n [state]=\"permalinkRoute.extras?.state\"\n >{{ item.title }} {{ item.message }}</a\n >\n } @else if (item.permalink) {\n @if (item | linkAs: 'skyHref') {\n <a\n class=\"sky-needs-attention-item\"\n [skyHref]=\"item.permalink.url\"\n >{{ item.title }} {{ item.message }}</a\n >\n } @else if (item | linkAs: 'href') {\n <a class=\"sky-needs-attention-item\" [href]=\"item.permalink.url\"\n >{{ item.title }} {{ item.message }}</a\n >\n }\n } @else if (item | linkAs: 'button') {\n <button\n class=\"sky-needs-attention-item sky-btn sky-btn-link-inline\"\n type=\"button\"\n (click)=\"item?.click({ item })\"\n >\n {{ item.title }} {{ item.message }}\n </button>\n }\n <sky-icon\n *skyThemeIf=\"'default'\"\n class=\"sky-needs-attention-item-icon\"\n icon=\"caret-right\"\n />\n <sky-icon\n *skyThemeIf=\"'modern'\"\n class=\"sky-needs-attention-item-icon\"\n icon=\"chevron-right\"\n />\n </li>\n }\n </ul>\n }\n </sky-box-content>\n</sky-box>\n", styles: [":host{display:block;margin-bottom:var(--sky-margin-stacked-xl)}h2{margin:0}ul{list-style:none;padding:0;margin:0}ul li{margin:0}.sky-needs-attention-item-wrapper{position:relative;display:grid;grid-template-columns:5fr 1fr;grid-template-areas:\"action icon\"}.sky-needs-attention-item-wrapper:not(:first-child){padding-top:var(--sky-margin-stacked-lg)}.sky-needs-attention-item-wrapper:not(:last-child){padding-bottom:var(--sky-margin-stacked-lg)}.sky-needs-attention-item{grid-area:action;text-align:left;width:100%;white-space:normal}.sky-needs-attention-item-icon{grid-area:icon;text-align:right;color:#686c73}.sky-needs-attention-item:focus-visible{outline:none}.sky-needs-attention-item:focus-visible:not(:active){border:none;box-shadow:inset 0 0 0 2px #1870b8,0 1px 8px #0000004d}.sky-needs-attention-item:before{content:\" \";position:absolute;inset:0;cursor:pointer}button.sky-needs-attention-item.sky-border-bottom-row{border-bottom:1px dotted #cdcfd2}\n"], dependencies: [{ kind: "directive", type: i1$1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.λ3, selector: "[skyAppLink]", inputs: ["skyAppLink"] }, { kind: "component", type: i3$1.λ41, selector: "sky-box", inputs: ["headingText", "headingHidden", "headingLevel", "headingStyle", "helpPopoverContent", "helpPopoverTitle", "helpKey", "ariaLabel", "ariaLabelledBy", "ariaRole"] }, { kind: "component", type: i3$1.λ42, selector: "sky-box-header" }, { kind: "component", type: i3$1.λ43, selector: "sky-box-content" }, { kind: "directive", type: i2.λ1, selector: "[skyHref]", inputs: ["skyHref", "queryParams", "skyHrefElse"], outputs: ["skyHrefChange"] }, { kind: "component", type: i4.λ1, selector: "sky-icon", inputs: ["icon", "iconName", "iconType", "size", "fixedWidth", "variant"] }, { kind: "directive", type: i5.λ3, selector: "[skyThemeIf]", inputs: ["skyThemeIf"] }, { kind: "pipe", type: i1.SkyLibResourcesPipe, name: "skyLibResources" }, { kind: "pipe", type: LinkAsPipe, name: "linkAs" }] }); }
259
423
  }
260
424
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SkyNeedsAttentionComponent, decorators: [{
261
425
  type: Component,
@@ -492,101 +656,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
492
656
  args: [{ selector: 'sky-action-hub-content', template: "<ng-content />\n" }]
493
657
  }] });
494
658
 
495
- const RECENTLY_ACCESSED_LIMIT = 5;
496
- function getRecentLinksSorted(recentLinks) {
497
- if (recentLinks === 'loading') {
498
- return 'loading';
499
- }
500
- if (!recentLinks || recentLinks.length === 0) {
501
- return [];
502
- }
503
- return recentLinks
504
- .slice(0)
505
- .sort((a, b) => {
506
- const aTime = a.lastAccessed instanceof Date
507
- ? a.lastAccessed.toISOString()
508
- : a.lastAccessed;
509
- const bTime = b.lastAccessed instanceof Date
510
- ? b.lastAccessed.toISOString()
511
- : b.lastAccessed;
512
- if (aTime === bTime) {
513
- return 0;
514
- }
515
- return aTime > bTime ? -1 : 1;
516
- })
517
- .slice(0, RECENTLY_ACCESSED_LIMIT);
518
- }
519
- class SkyActionHubRecentLinksResolvePipe {
520
- #currentRecentLinks;
521
- #currentRecentLinksResolved = [];
522
- #recentlyAccessedSub;
523
- #ngUnsubscribe = new Subject();
524
- #changeDetector;
525
- #recentlyAccessedSvc;
526
- constructor(changeDetector, recentlyAccessedSvc) {
527
- this.#changeDetector = changeDetector;
528
- this.#recentlyAccessedSvc = recentlyAccessedSvc;
529
- }
530
- transform(recentLinks) {
531
- if (recentLinks !== this.#currentRecentLinks) {
532
- if (this.#recentlyAccessedSub) {
533
- this.#recentlyAccessedSub.unsubscribe();
534
- }
535
- this.#currentRecentLinks = recentLinks;
536
- const getLinksArgs = recentLinks;
537
- if (getLinksArgs?.requestedRoutes) {
538
- this.#resolveRequestedRoutes(getLinksArgs);
539
- }
540
- else {
541
- this.#updateRecentLinksResolved(recentLinks);
542
- }
543
- }
544
- return this.#currentRecentLinksResolved;
545
- }
546
- ngOnDestroy() {
547
- this.#ngUnsubscribe.next();
548
- this.#ngUnsubscribe.complete();
549
- }
550
- #resolveRequestedRoutes(args) {
551
- if (this.#recentlyAccessedSvc) {
552
- this.#updateRecentLinksResolved('loading');
553
- this.#recentlyAccessedSub = this.#recentlyAccessedSvc
554
- .getLinks(args)
555
- .pipe(takeUntil(this.#ngUnsubscribe))
556
- .subscribe((result) => {
557
- this.#recentlyAccessedSub = undefined;
558
- const recentLinks = result.links.map((item) => ({
559
- label: item.label,
560
- lastAccessed: item.lastAccessed,
561
- permalink: {
562
- url: item.url,
563
- },
564
- }));
565
- this.#updateRecentLinksResolved(recentLinks);
566
- });
567
- }
568
- else {
569
- this.#updateRecentLinksResolved([]);
570
- }
571
- }
572
- #updateRecentLinksResolved(recentLinksResolved) {
573
- this.#currentRecentLinksResolved =
574
- getRecentLinksSorted(recentLinksResolved);
575
- this.#changeDetector.markForCheck();
576
- }
577
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SkyActionHubRecentLinksResolvePipe, deps: [{ token: i0.ChangeDetectorRef }, { token: i2.SkyRecentlyAccessedService, optional: true }], target: i0.ɵɵFactoryTarget.Pipe }); }
578
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.5", ngImport: i0, type: SkyActionHubRecentLinksResolvePipe, name: "skyActionHubRecentLinksResolve", pure: false }); }
579
- }
580
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SkyActionHubRecentLinksResolvePipe, decorators: [{
581
- type: Pipe,
582
- args: [{
583
- name: 'skyActionHubRecentLinksResolve',
584
- pure: false,
585
- }]
586
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i2.SkyRecentlyAccessedService, decorators: [{
587
- type: Optional
588
- }] }] });
589
-
590
659
  class SkyActionHubRelatedLinksSortPipe {
591
660
  transform(relatedLinks) {
592
661
  if (relatedLinks === 'loading') {
@@ -651,11 +720,11 @@ class SkyActionHubComponent {
651
720
  }
652
721
  #_needsAttention;
653
722
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SkyActionHubComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
654
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", type: SkyActionHubComponent, selector: "sky-action-hub", inputs: { needsAttention: "needsAttention", parentLink: "parentLink", recentLinks: "recentLinks", relatedLinks: "relatedLinks", settingsLinks: "settingsLinks", title: "title" }, ngImport: i0, template: "<sky-fluid-grid [disableMargin]=\"true\">\n <sky-row>\n <sky-column>\n <sky-page-header [pageTitle]=\"title\" [parentLink]=\"parentLink\" />\n </sky-column>\n </sky-row>\n <sky-row>\n <sky-column [screenLarge]=\"9\" [screenXSmall]=\"12\">\n <div class=\"sky-margin-stacked-xl\">\n <ng-content select=\"sky-action-hub-buttons\" />\n </div>\n\n <div class=\"sky-margin-stacked-xl\">\n <sky-wait [isWaiting]=\"needsAttention === 'loading'\" />\n @if (needsAttention !== 'loading') {\n <sky-needs-attention [items]=\"needsAttentionArray\" />\n }\n </div>\n\n <div class=\"sky-margin-stacked-xl\">\n <ng-content select=\"sky-action-hub-content\" />\n </div>\n </sky-column>\n <sky-column [screenLarge]=\"3\" [screenXSmall]=\"12\">\n <sky-link-list\n [links]=\"relatedLinks | skyActionHubRelatedLinksSort\"\n [title]=\"'sky_action_hub_related_links' | skyLibResources\"\n />\n <sky-link-list\n [links]=\"recentLinks | skyActionHubRecentLinksResolve\"\n [title]=\"'sky_action_hub_recent_links' | skyLibResources\"\n />\n <sky-modal-link-list\n [links]=\"settingsLinks\"\n [title]=\"'sky_action_hub_settings_links' | skyLibResources\"\n />\n </sky-column>\n </sky-row>\n</sky-fluid-grid>\n", styles: [":host{display:block;margin:var(--sky-padding-even-xl)}[aria-busy=true]{display:block;min-height:60px;margin-bottom:var(--sky-margin-stacked-xl)}sky-page-header{margin:0 0 var(--sky-margin-stacked-lg) 0}.sky-margin-stacked-xl:empty{margin-bottom:0}\n"], dependencies: [{ kind: "component", type: i3$1.λ23, selector: "sky-row", inputs: ["reverseColumnOrder"] }, { kind: "component", type: i3$1.λ24, selector: "sky-column", inputs: ["screenXSmall", "screenSmall", "screenMedium", "screenLarge"] }, { kind: "component", type: i3$1.λ22, selector: "sky-fluid-grid", inputs: ["disableMargin", "gutterSize"] }, { kind: "component", type: SkyLinkListComponent, selector: "sky-link-list", inputs: ["links", "title"] }, { kind: "component", type: SkyModalLinkListComponent, selector: "sky-modal-link-list", inputs: ["links", "title"] }, { kind: "component", type: SkyNeedsAttentionComponent, selector: "sky-needs-attention", inputs: ["items"] }, { kind: "component", type: SkyPageHeaderComponent, selector: "sky-page-header", inputs: ["parentLink", "pageTitle"] }, { kind: "component", type: i3.λ14, selector: "sky-wait", inputs: ["ariaLabel", "isWaiting", "isFullPage", "isNonBlocking", "screenReaderCompletedText"] }, { kind: "pipe", type: i6.SkyLibResourcesPipe, name: "skyLibResources" }, { kind: "pipe", type: SkyActionHubRecentLinksResolvePipe, name: "skyActionHubRecentLinksResolve" }, { kind: "pipe", type: SkyActionHubRelatedLinksSortPipe, name: "skyActionHubRelatedLinksSort" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
723
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.5", type: SkyActionHubComponent, selector: "sky-action-hub", inputs: { needsAttention: "needsAttention", parentLink: "parentLink", recentLinks: "recentLinks", relatedLinks: "relatedLinks", settingsLinks: "settingsLinks", title: "title" }, ngImport: i0, template: "<sky-fluid-grid [disableMargin]=\"true\">\n <sky-row>\n <sky-column>\n <sky-page-header [pageTitle]=\"title\" [parentLink]=\"parentLink\" />\n </sky-column>\n </sky-row>\n <sky-row>\n <sky-column [screenLarge]=\"9\" [screenXSmall]=\"12\">\n <div class=\"sky-margin-stacked-xl\">\n <ng-content select=\"sky-action-hub-buttons\" />\n </div>\n\n <div class=\"sky-margin-stacked-xl\">\n <sky-wait [isWaiting]=\"needsAttention === 'loading'\" />\n @if (needsAttention !== 'loading') {\n <sky-needs-attention [items]=\"needsAttentionArray\" />\n }\n </div>\n\n <div class=\"sky-margin-stacked-xl\">\n <ng-content select=\"sky-action-hub-content\" />\n </div>\n </sky-column>\n <sky-column [screenLarge]=\"3\" [screenXSmall]=\"12\">\n <sky-link-list\n [links]=\"relatedLinks | skyActionHubRelatedLinksSort\"\n [headingText]=\"'sky_action_hub_related_links' | skyLibResources\"\n />\n <sky-link-list-recently-accessed [recentLinks]=\"recentLinks\" />\n <sky-modal-link-list\n [links]=\"settingsLinks\"\n [title]=\"'sky_action_hub_settings_links' | skyLibResources\"\n />\n </sky-column>\n </sky-row>\n</sky-fluid-grid>\n", styles: [":host{display:block;margin:var(--sky-padding-even-xl)}[aria-busy=true]{display:block;min-height:60px;margin-bottom:var(--sky-margin-stacked-xl)}sky-page-header{margin:0 0 var(--sky-margin-stacked-lg) 0}.sky-margin-stacked-xl:empty{margin-bottom:0}\n"], dependencies: [{ kind: "component", type: i3$1.λ23, selector: "sky-row", inputs: ["reverseColumnOrder"] }, { kind: "component", type: i3$1.λ24, selector: "sky-column", inputs: ["screenXSmall", "screenSmall", "screenMedium", "screenLarge"] }, { kind: "component", type: i3$1.λ22, selector: "sky-fluid-grid", inputs: ["disableMargin", "gutterSize"] }, { kind: "component", type: SkyLinkListComponent, selector: "sky-link-list", inputs: ["headingText", "links"] }, { kind: "component", type: SkyLinkListRecentlyAccessedComponent, selector: "sky-link-list-recently-accessed", inputs: ["recentLinks"] }, { kind: "component", type: SkyModalLinkListComponent, selector: "sky-modal-link-list", inputs: ["links", "title"] }, { kind: "component", type: SkyNeedsAttentionComponent, selector: "sky-needs-attention", inputs: ["items"] }, { kind: "component", type: SkyPageHeaderComponent, selector: "sky-page-header", inputs: ["parentLink", "pageTitle"] }, { kind: "component", type: i3.λ14, selector: "sky-wait", inputs: ["ariaLabel", "isWaiting", "isFullPage", "isNonBlocking", "screenReaderCompletedText"] }, { kind: "pipe", type: i1.SkyLibResourcesPipe, name: "skyLibResources" }, { kind: "pipe", type: SkyActionHubRelatedLinksSortPipe, name: "skyActionHubRelatedLinksSort" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
655
724
  }
656
725
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SkyActionHubComponent, decorators: [{
657
726
  type: Component,
658
- args: [{ selector: 'sky-action-hub', changeDetection: ChangeDetectionStrategy.OnPush, template: "<sky-fluid-grid [disableMargin]=\"true\">\n <sky-row>\n <sky-column>\n <sky-page-header [pageTitle]=\"title\" [parentLink]=\"parentLink\" />\n </sky-column>\n </sky-row>\n <sky-row>\n <sky-column [screenLarge]=\"9\" [screenXSmall]=\"12\">\n <div class=\"sky-margin-stacked-xl\">\n <ng-content select=\"sky-action-hub-buttons\" />\n </div>\n\n <div class=\"sky-margin-stacked-xl\">\n <sky-wait [isWaiting]=\"needsAttention === 'loading'\" />\n @if (needsAttention !== 'loading') {\n <sky-needs-attention [items]=\"needsAttentionArray\" />\n }\n </div>\n\n <div class=\"sky-margin-stacked-xl\">\n <ng-content select=\"sky-action-hub-content\" />\n </div>\n </sky-column>\n <sky-column [screenLarge]=\"3\" [screenXSmall]=\"12\">\n <sky-link-list\n [links]=\"relatedLinks | skyActionHubRelatedLinksSort\"\n [title]=\"'sky_action_hub_related_links' | skyLibResources\"\n />\n <sky-link-list\n [links]=\"recentLinks | skyActionHubRecentLinksResolve\"\n [title]=\"'sky_action_hub_recent_links' | skyLibResources\"\n />\n <sky-modal-link-list\n [links]=\"settingsLinks\"\n [title]=\"'sky_action_hub_settings_links' | skyLibResources\"\n />\n </sky-column>\n </sky-row>\n</sky-fluid-grid>\n", styles: [":host{display:block;margin:var(--sky-padding-even-xl)}[aria-busy=true]{display:block;min-height:60px;margin-bottom:var(--sky-margin-stacked-xl)}sky-page-header{margin:0 0 var(--sky-margin-stacked-lg) 0}.sky-margin-stacked-xl:empty{margin-bottom:0}\n"] }]
727
+ args: [{ selector: 'sky-action-hub', changeDetection: ChangeDetectionStrategy.OnPush, template: "<sky-fluid-grid [disableMargin]=\"true\">\n <sky-row>\n <sky-column>\n <sky-page-header [pageTitle]=\"title\" [parentLink]=\"parentLink\" />\n </sky-column>\n </sky-row>\n <sky-row>\n <sky-column [screenLarge]=\"9\" [screenXSmall]=\"12\">\n <div class=\"sky-margin-stacked-xl\">\n <ng-content select=\"sky-action-hub-buttons\" />\n </div>\n\n <div class=\"sky-margin-stacked-xl\">\n <sky-wait [isWaiting]=\"needsAttention === 'loading'\" />\n @if (needsAttention !== 'loading') {\n <sky-needs-attention [items]=\"needsAttentionArray\" />\n }\n </div>\n\n <div class=\"sky-margin-stacked-xl\">\n <ng-content select=\"sky-action-hub-content\" />\n </div>\n </sky-column>\n <sky-column [screenLarge]=\"3\" [screenXSmall]=\"12\">\n <sky-link-list\n [links]=\"relatedLinks | skyActionHubRelatedLinksSort\"\n [headingText]=\"'sky_action_hub_related_links' | skyLibResources\"\n />\n <sky-link-list-recently-accessed [recentLinks]=\"recentLinks\" />\n <sky-modal-link-list\n [links]=\"settingsLinks\"\n [title]=\"'sky_action_hub_settings_links' | skyLibResources\"\n />\n </sky-column>\n </sky-row>\n</sky-fluid-grid>\n", styles: [":host{display:block;margin:var(--sky-padding-even-xl)}[aria-busy=true]{display:block;min-height:60px;margin-bottom:var(--sky-margin-stacked-xl)}sky-page-header{margin:0 0 var(--sky-margin-stacked-lg) 0}.sky-margin-stacked-xl:empty{margin-bottom:0}\n"] }]
659
728
  }], propDecorators: { needsAttention: [{
660
729
  type: Input
661
730
  }], parentLink: [{
@@ -675,8 +744,8 @@ class SkyActionHubModule {
675
744
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.5", ngImport: i0, type: SkyActionHubModule, declarations: [SkyActionHubButtonsComponent,
676
745
  SkyActionHubComponent,
677
746
  SkyActionHubContentComponent,
678
- SkyActionHubRecentLinksResolvePipe,
679
- SkyActionHubRelatedLinksSortPipe], imports: [SkyBoxModule,
747
+ SkyActionHubRelatedLinksSortPipe], imports: [SkyActionHubRecentLinksResolvePipe,
748
+ SkyBoxModule,
680
749
  SkyFluidGridModule,
681
750
  SkyLinkListModule,
682
751
  SkyModalLinkListModule,
@@ -701,6 +770,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
701
770
  type: NgModule,
702
771
  args: [{
703
772
  imports: [
773
+ SkyActionHubRecentLinksResolvePipe,
704
774
  SkyBoxModule,
705
775
  SkyFluidGridModule,
706
776
  SkyLinkListModule,
@@ -715,7 +785,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
715
785
  SkyActionHubButtonsComponent,
716
786
  SkyActionHubComponent,
717
787
  SkyActionHubContentComponent,
718
- SkyActionHubRecentLinksResolvePipe,
719
788
  SkyActionHubRelatedLinksSortPipe,
720
789
  ],
721
790
  exports: [
@@ -762,8 +831,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
762
831
  }] });
763
832
 
764
833
  /**
765
- * Displays page links within a block page layout.
766
- * @internal
834
+ * Displays page links on the right side of the page, or below the page content
835
+ * on mobile devices.
767
836
  */
768
837
  class SkyPageLinksComponent {
769
838
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SkyPageLinksComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
@@ -900,18 +969,33 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
900
969
 
901
970
  class SkyPageModule {
902
971
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SkyPageModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
903
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.5", ngImport: i0, type: SkyPageModule, declarations: [SkyPageComponent, SkyPageContentComponent], imports: [CommonModule, SkyPageLinksComponent], exports: [SkyPageComponent,
972
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.5", ngImport: i0, type: SkyPageModule, declarations: [SkyPageComponent, SkyPageContentComponent], imports: [SkyPageLinksComponent,
973
+ SkyLinkListComponent,
974
+ SkyLinkListItemComponent,
975
+ SkyLinkListRecentlyAccessedComponent], exports: [SkyLinkListComponent,
976
+ SkyLinkListItemComponent,
977
+ SkyLinkListRecentlyAccessedComponent,
978
+ SkyPageComponent,
904
979
  SkyPageHeaderModule,
905
980
  SkyPageContentComponent,
906
981
  SkyPageLinksComponent] }); }
907
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SkyPageModule, imports: [CommonModule, SkyPageHeaderModule] }); }
982
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SkyPageModule, imports: [SkyLinkListComponent,
983
+ SkyLinkListRecentlyAccessedComponent, SkyPageHeaderModule] }); }
908
984
  }
909
985
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImport: i0, type: SkyPageModule, decorators: [{
910
986
  type: NgModule,
911
987
  args: [{
912
988
  declarations: [SkyPageComponent, SkyPageContentComponent],
913
- imports: [CommonModule, SkyPageLinksComponent],
989
+ imports: [
990
+ SkyPageLinksComponent,
991
+ SkyLinkListComponent,
992
+ SkyLinkListItemComponent,
993
+ SkyLinkListRecentlyAccessedComponent,
994
+ ],
914
995
  exports: [
996
+ SkyLinkListComponent,
997
+ SkyLinkListItemComponent,
998
+ SkyLinkListRecentlyAccessedComponent,
915
999
  SkyPageComponent,
916
1000
  SkyPageHeaderModule,
917
1001
  SkyPageContentComponent,
@@ -924,5 +1008,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.5", ngImpor
924
1008
  * Generated bundle index. Do not edit.
925
1009
  */
926
1010
 
927
- export { SkyActionHubModule, SkyPageHeaderModule, SkyPageModule, SkyActionHubComponent as λ1, SkyPageHeaderAvatarComponent as λ10, SkyPageHeaderAlertsComponent as λ11, SkyPageLinksComponent as λ12, SkyActionHubButtonsComponent as λ2, SkyActionHubContentComponent as λ3, SkyPageHeaderComponent as λ4, SkyModalLinkListComponent as λ5, SkyPageComponent as λ6, SkyPageContentComponent as λ7, SkyPageHeaderDetailsComponent as λ8, SkyPageHeaderActionsComponent as λ9 };
1011
+ export { SkyActionHubModule, SkyLinkListModule, SkyPageHeaderModule, SkyPageModule, SkyActionHubComponent as λ1, SkyPageHeaderAvatarComponent as λ10, SkyPageHeaderAlertsComponent as λ11, SkyPageLinksComponent as λ12, SkyLinkListComponent as λ13, SkyLinkListItemComponent as λ14, SkyLinkListRecentlyAccessedComponent as λ15, SkyActionHubButtonsComponent as λ2, SkyActionHubContentComponent as λ3, SkyPageHeaderComponent as λ4, SkyModalLinkListComponent as λ5, SkyPageComponent as λ6, SkyPageContentComponent as λ7, SkyPageHeaderDetailsComponent as λ8, SkyPageHeaderActionsComponent as λ9 };
928
1012
  //# sourceMappingURL=skyux-pages.mjs.map