@skyux/a11y 9.0.0-alpha.3 → 9.0.0-alpha.5

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.
@@ -32,7 +32,7 @@
32
32
  "name": "NgModule"
33
33
  },
34
34
  "arguments": {
35
- "obj": "{\n declarations: [SkySkipLinkHostComponent],\n imports: [CommonModule, SkyI18nModule, SkyA11yResourcesModule],\n}"
35
+ "obj": "{\n declarations: [SkySkipLinkHostComponent],\n imports: [CommonModule, SkyA11yResourcesModule],\n providers: [SkySkipLinkService],\n}"
36
36
  }
37
37
  }
38
38
  ],
@@ -49,7 +49,7 @@
49
49
  "sources": [
50
50
  {
51
51
  "fileName": "projects/a11y/src/modules/skip-link/skip-link.module.ts",
52
- "line": 16,
52
+ "line": 17,
53
53
  "character": 13
54
54
  }
55
55
  ]
@@ -61,13 +61,7 @@
61
61
  "kindString": "Class",
62
62
  "flags": {},
63
63
  "comment": {
64
- "shortText": "An Angular service that adds \"skip links\" to the page. Skip links will only be displayed\nwhen the page initially loads and the user presses the Tab key, in which case the first link will\nbe displayed and focused. Clicking the button will skip to the specified element. Pressing\nthe Tab key again will move to the next skip link if more than one skip link is specified;\notherwise, focus will move to the first focusable element on the page.",
65
- "tags": [
66
- {
67
- "tag": "dynamic",
68
- "text": "\n"
69
- }
70
- ]
64
+ "shortText": "An Angular service that adds \"skip links\" to the page. Skip links will only be displayed\nwhen the page initially loads and the user presses the Tab key, in which case the first link will\nbe displayed and focused. Clicking the button will skip to the specified element. Pressing\nthe Tab key again will move to the next skip link if more than one skip link is specified;\notherwise, focus will move to the first focusable element on the page."
71
65
  },
72
66
  "decorators": [
73
67
  {
@@ -78,9 +72,7 @@
78
72
  "package": "@angular/core",
79
73
  "name": "Injectable"
80
74
  },
81
- "arguments": {
82
- "options": "{\n // Must be 'any' so that the skip link component is created in the context of its module's injector.\n // If set to 'root', the component's dependency injections would only be derived from the root\n // injector and may loose context if the skip link was created from within a lazy-loaded module.\n providedIn: 'any',\n}"
83
- }
75
+ "arguments": {}
84
76
  }
85
77
  ],
86
78
  "children": [
@@ -126,7 +118,7 @@
126
118
  ]
127
119
  },
128
120
  {
129
- "id": 17,
121
+ "id": 18,
130
122
  "name": "removeHostComponent",
131
123
  "kind": 2048,
132
124
  "kindString": "Method",
@@ -142,7 +134,7 @@
142
134
  ],
143
135
  "signatures": [
144
136
  {
145
- "id": 18,
137
+ "id": 19,
146
138
  "name": "removeHostComponent",
147
139
  "kind": 4096,
148
140
  "kindString": "Call signature",
@@ -155,7 +147,7 @@
155
147
  ]
156
148
  },
157
149
  {
158
- "id": 14,
150
+ "id": 15,
159
151
  "name": "setSkipLinks",
160
152
  "kind": 2048,
161
153
  "kindString": "Method",
@@ -171,14 +163,14 @@
171
163
  ],
172
164
  "signatures": [
173
165
  {
174
- "id": 15,
166
+ "id": 16,
175
167
  "name": "setSkipLinks",
176
168
  "kind": 4096,
177
169
  "kindString": "Call signature",
178
170
  "flags": {},
179
171
  "parameters": [
180
172
  {
181
- "id": 16,
173
+ "id": 17,
182
174
  "name": "args",
183
175
  "kind": 32768,
184
176
  "kindString": "Parameter",
@@ -210,21 +202,21 @@
210
202
  "title": "Methods",
211
203
  "kind": 2048,
212
204
  "children": [
213
- 17,
214
- 14
205
+ 18,
206
+ 15
215
207
  ]
216
208
  }
217
209
  ],
218
210
  "sources": [
219
211
  {
220
212
  "fileName": "projects/a11y/src/modules/skip-link/skip-link.service.ts",
221
- "line": 25,
213
+ "line": 24,
222
214
  "character": 13
223
215
  }
224
216
  ]
225
217
  },
226
218
  {
227
- "id": 21,
219
+ "id": 22,
228
220
  "name": "SkySkipLink",
229
221
  "kind": 256,
230
222
  "kindString": "Interface",
@@ -234,7 +226,7 @@
234
226
  },
235
227
  "children": [
236
228
  {
237
- "id": 23,
229
+ "id": 24,
238
230
  "name": "elementRef",
239
231
  "kind": 1024,
240
232
  "kindString": "Property",
@@ -263,7 +255,7 @@
263
255
  }
264
256
  },
265
257
  {
266
- "id": 22,
258
+ "id": 23,
267
259
  "name": "title",
268
260
  "kind": 1024,
269
261
  "kindString": "Property",
@@ -289,8 +281,8 @@
289
281
  "title": "Properties",
290
282
  "kind": 1024,
291
283
  "children": [
292
- 23,
293
- 22
284
+ 24,
285
+ 23
294
286
  ]
295
287
  }
296
288
  ],
@@ -332,7 +324,7 @@
332
324
  "type": "array",
333
325
  "elementType": {
334
326
  "type": "reference",
335
- "id": 21,
327
+ "id": 22,
336
328
  "name": "SkySkipLink"
337
329
  }
338
330
  }
@@ -356,7 +348,7 @@
356
348
  ]
357
349
  },
358
350
  {
359
- "id": 24,
351
+ "id": 25,
360
352
  "name": "SkySkipLinksHarness",
361
353
  "kind": 128,
362
354
  "kindString": "Class",
@@ -366,7 +358,7 @@
366
358
  },
367
359
  "children": [
368
360
  {
369
- "id": 38,
361
+ "id": 39,
370
362
  "name": "clickSkipLink",
371
363
  "kind": 2048,
372
364
  "kindString": "Method",
@@ -382,7 +374,7 @@
382
374
  ],
383
375
  "signatures": [
384
376
  {
385
- "id": 39,
377
+ "id": 40,
386
378
  "name": "clickSkipLink",
387
379
  "kind": 4096,
388
380
  "kindString": "Call signature",
@@ -392,7 +384,7 @@
392
384
  },
393
385
  "parameters": [
394
386
  {
395
- "id": 40,
387
+ "id": 41,
396
388
  "name": "index",
397
389
  "kind": 32768,
398
390
  "kindString": "Parameter",
@@ -419,7 +411,7 @@
419
411
  ]
420
412
  },
421
413
  {
422
- "id": 35,
414
+ "id": 36,
423
415
  "name": "getSkipLinkText",
424
416
  "kind": 2048,
425
417
  "kindString": "Method",
@@ -435,7 +427,7 @@
435
427
  ],
436
428
  "signatures": [
437
429
  {
438
- "id": 36,
430
+ "id": 37,
439
431
  "name": "getSkipLinkText",
440
432
  "kind": 4096,
441
433
  "kindString": "Call signature",
@@ -445,7 +437,7 @@
445
437
  },
446
438
  "parameters": [
447
439
  {
448
- "id": 37,
440
+ "id": 38,
449
441
  "name": "index",
450
442
  "kind": 32768,
451
443
  "kindString": "Parameter",
@@ -472,7 +464,7 @@
472
464
  ]
473
465
  },
474
466
  {
475
- "id": 44,
467
+ "id": 45,
476
468
  "name": "host",
477
469
  "kind": 2048,
478
470
  "kindString": "Method",
@@ -486,7 +478,7 @@
486
478
  ],
487
479
  "signatures": [
488
480
  {
489
- "id": 45,
481
+ "id": 46,
490
482
  "name": "host",
491
483
  "kind": 4096,
492
484
  "kindString": "Call signature",
@@ -525,16 +517,16 @@
525
517
  "title": "Constructors",
526
518
  "kind": 512,
527
519
  "children": [
528
- 31
520
+ 32
529
521
  ]
530
522
  },
531
523
  {
532
524
  "title": "Methods",
533
525
  "kind": 2048,
534
526
  "children": [
535
- 38,
536
- 35,
537
- 44
527
+ 39,
528
+ 36,
529
+ 45
538
530
  ]
539
531
  }
540
532
  ],
@@ -1,22 +1,23 @@
1
1
  import { CommonModule } from '@angular/common';
2
2
  import { NgModule } from '@angular/core';
3
- import { SkyI18nModule } from '@skyux/i18n';
4
3
  import { SkyA11yResourcesModule } from '../shared/sky-a11y-resources.module';
5
4
  import { SkySkipLinkHostComponent } from './skip-link-host.component';
5
+ import { SkySkipLinkService } from './skip-link.service';
6
6
  import * as i0 from "@angular/core";
7
7
  /**
8
8
  * The Angular module that enables "skip links" to be added to the page.
9
9
  */
10
10
  export class SkySkipLinkModule {
11
11
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkySkipLinkModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
12
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: SkySkipLinkModule, declarations: [SkySkipLinkHostComponent], imports: [CommonModule, SkyI18nModule, SkyA11yResourcesModule] }); }
13
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkySkipLinkModule, imports: [CommonModule, SkyI18nModule, SkyA11yResourcesModule] }); }
12
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: SkySkipLinkModule, declarations: [SkySkipLinkHostComponent], imports: [CommonModule, SkyA11yResourcesModule] }); }
13
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkySkipLinkModule, providers: [SkySkipLinkService], imports: [CommonModule, SkyA11yResourcesModule] }); }
14
14
  }
15
15
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkySkipLinkModule, decorators: [{
16
16
  type: NgModule,
17
17
  args: [{
18
18
  declarations: [SkySkipLinkHostComponent],
19
- imports: [CommonModule, SkyI18nModule, SkyA11yResourcesModule],
19
+ imports: [CommonModule, SkyA11yResourcesModule],
20
+ providers: [SkySkipLinkService],
20
21
  }]
21
22
  }] });
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2tpcC1saW5rLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hMTF5L3NyYy9saWIvbW9kdWxlcy9za2lwLWxpbmsvc2tpcC1saW5rLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBRTVDLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBRTdFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOztBQUV0RTs7R0FFRztBQUtILE1BQU0sT0FBTyxpQkFBaUI7OEdBQWpCLGlCQUFpQjsrR0FBakIsaUJBQWlCLGlCQUhiLHdCQUF3QixhQUM3QixZQUFZLEVBQUUsYUFBYSxFQUFFLHNCQUFzQjsrR0FFbEQsaUJBQWlCLFlBRmxCLFlBQVksRUFBRSxhQUFhLEVBQUUsc0JBQXNCOzsyRkFFbEQsaUJBQWlCO2tCQUo3QixRQUFRO21CQUFDO29CQUNSLFlBQVksRUFBRSxDQUFDLHdCQUF3QixDQUFDO29CQUN4QyxPQUFPLEVBQUUsQ0FBQyxZQUFZLEVBQUUsYUFBYSxFQUFFLHNCQUFzQixDQUFDO2lCQUMvRCIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgU2t5STE4bk1vZHVsZSB9IGZyb20gJ0Bza3l1eC9pMThuJztcblxuaW1wb3J0IHsgU2t5QTExeVJlc291cmNlc01vZHVsZSB9IGZyb20gJy4uL3NoYXJlZC9za3ktYTExeS1yZXNvdXJjZXMubW9kdWxlJztcblxuaW1wb3J0IHsgU2t5U2tpcExpbmtIb3N0Q29tcG9uZW50IH0gZnJvbSAnLi9za2lwLWxpbmstaG9zdC5jb21wb25lbnQnO1xuXG4vKipcbiAqIFRoZSBBbmd1bGFyIG1vZHVsZSB0aGF0IGVuYWJsZXMgXCJza2lwIGxpbmtzXCIgdG8gYmUgYWRkZWQgdG8gdGhlIHBhZ2UuXG4gKi9cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1NreVNraXBMaW5rSG9zdENvbXBvbmVudF0sXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFNreUkxOG5Nb2R1bGUsIFNreUExMXlSZXNvdXJjZXNNb2R1bGVdLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lTa2lwTGlua01vZHVsZSB7fVxuIl19
23
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2tpcC1saW5rLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9hMTF5L3NyYy9saWIvbW9kdWxlcy9za2lwLWxpbmsvc2tpcC1saW5rLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV6QyxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxxQ0FBcUMsQ0FBQztBQUU3RSxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUN0RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQzs7QUFFekQ7O0dBRUc7QUFNSCxNQUFNLE9BQU8saUJBQWlCOzhHQUFqQixpQkFBaUI7K0dBQWpCLGlCQUFpQixpQkFKYix3QkFBd0IsYUFDN0IsWUFBWSxFQUFFLHNCQUFzQjsrR0FHbkMsaUJBQWlCLGFBRmpCLENBQUMsa0JBQWtCLENBQUMsWUFEckIsWUFBWSxFQUFFLHNCQUFzQjs7MkZBR25DLGlCQUFpQjtrQkFMN0IsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUUsQ0FBQyx3QkFBd0IsQ0FBQztvQkFDeEMsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLHNCQUFzQixDQUFDO29CQUMvQyxTQUFTLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztpQkFDaEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTmdNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU2t5QTExeVJlc291cmNlc01vZHVsZSB9IGZyb20gJy4uL3NoYXJlZC9za3ktYTExeS1yZXNvdXJjZXMubW9kdWxlJztcblxuaW1wb3J0IHsgU2t5U2tpcExpbmtIb3N0Q29tcG9uZW50IH0gZnJvbSAnLi9za2lwLWxpbmstaG9zdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgU2t5U2tpcExpbmtTZXJ2aWNlIH0gZnJvbSAnLi9za2lwLWxpbmsuc2VydmljZSc7XG5cbi8qKlxuICogVGhlIEFuZ3VsYXIgbW9kdWxlIHRoYXQgZW5hYmxlcyBcInNraXAgbGlua3NcIiB0byBiZSBhZGRlZCB0byB0aGUgcGFnZS5cbiAqL1xuQE5nTW9kdWxlKHtcbiAgZGVjbGFyYXRpb25zOiBbU2t5U2tpcExpbmtIb3N0Q29tcG9uZW50XSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgU2t5QTExeVJlc291cmNlc01vZHVsZV0sXG4gIHByb3ZpZGVyczogW1NreVNraXBMaW5rU2VydmljZV0sXG59KVxuZXhwb3J0IGNsYXNzIFNreVNraXBMaW5rTW9kdWxlIHt9XG4iXX0=
@@ -1,4 +1,4 @@
1
- import { Injectable } from '@angular/core';
1
+ import { EnvironmentInjector, Injectable, inject, } from '@angular/core';
2
2
  import { SkyDynamicComponentLocation, } from '@skyux/core';
3
3
  import { SkySkipLinkHostComponent } from './skip-link-host.component';
4
4
  import * as i0 from "@angular/core";
@@ -9,10 +9,10 @@ import * as i1 from "@skyux/core";
9
9
  * be displayed and focused. Clicking the button will skip to the specified element. Pressing
10
10
  * the Tab key again will move to the next skip link if more than one skip link is specified;
11
11
  * otherwise, focus will move to the first focusable element on the page.
12
- * @dynamic
13
12
  */
14
13
  export class SkySkipLinkService {
15
14
  #dynamicComponentService;
15
+ #environmentInjector = inject(EnvironmentInjector);
16
16
  constructor(dynamicComponentService) {
17
17
  this.#dynamicComponentService = dynamicComponentService;
18
18
  }
@@ -36,6 +36,7 @@ export class SkySkipLinkService {
36
36
  #createHostComponent() {
37
37
  if (!SkySkipLinkService.host) {
38
38
  const componentRef = this.#dynamicComponentService.createComponent(SkySkipLinkHostComponent, {
39
+ environmentInjector: this.#environmentInjector,
39
40
  location: SkyDynamicComponentLocation.BodyTop,
40
41
  });
41
42
  SkySkipLinkService.host = componentRef;
@@ -43,15 +44,9 @@ export class SkySkipLinkService {
43
44
  return SkySkipLinkService.host;
44
45
  }
45
46
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkySkipLinkService, deps: [{ token: i1.SkyDynamicComponentService }], target: i0.ɵɵFactoryTarget.Injectable }); }
46
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkySkipLinkService, providedIn: 'any' }); }
47
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkySkipLinkService }); }
47
48
  }
48
49
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkySkipLinkService, decorators: [{
49
- type: Injectable,
50
- args: [{
51
- // Must be 'any' so that the skip link component is created in the context of its module's injector.
52
- // If set to 'root', the component's dependency injections would only be derived from the root
53
- // injector and may loose context if the skip link was created from within a lazy-loaded module.
54
- providedIn: 'any',
55
- }]
50
+ type: Injectable
56
51
  }], ctorParameters: function () { return [{ type: i1.SkyDynamicComponentService }]; } });
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2tpcC1saW5rLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYTExeS9zcmMvbGliL21vZHVsZXMvc2tpcC1saW5rL3NraXAtbGluay5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBZ0IsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pELE9BQU8sRUFDTCwyQkFBMkIsR0FFNUIsTUFBTSxhQUFhLENBQUM7QUFJckIsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sNEJBQTRCLENBQUM7OztBQUV0RTs7Ozs7OztHQU9HO0FBT0gsTUFBTSxPQUFPLGtCQUFrQjtJQUc3Qix3QkFBd0IsQ0FBNkI7SUFFckQsWUFBWSx1QkFBbUQ7UUFDN0QsSUFBSSxDQUFDLHdCQUF3QixHQUFHLHVCQUF1QixDQUFDO0lBQzFELENBQUM7SUFFTSxZQUFZLENBQUMsSUFBcUI7UUFDdkMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQWlCLEVBQUUsRUFBRTtZQUNuRCxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7WUFDekMsT0FBTyxnQkFBZ0IsQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQztRQUVILDRGQUE0RjtRQUM1RixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFDekMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxtQkFBbUI7UUFDeEIsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLEVBQUU7WUFDM0IsSUFBSSxDQUFDLHdCQUF3QixDQUFDLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN2RSxrQkFBa0IsQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDO1NBQ3JDO0lBQ0gsQ0FBQztJQUVELG9CQUFvQjtRQUNsQixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFO1lBQzVCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxlQUFlLENBQ2hFLHdCQUF3QixFQUN4QjtnQkFDRSxRQUFRLEVBQUUsMkJBQTJCLENBQUMsT0FBTzthQUM5QyxDQUNGLENBQUM7WUFFRixrQkFBa0IsQ0FBQyxJQUFJLEdBQUcsWUFBWSxDQUFDO1NBQ3hDO1FBRUQsT0FBTyxrQkFBa0IsQ0FBQyxJQUFJLENBQUM7SUFDakMsQ0FBQzs4R0ExQ1Usa0JBQWtCO2tIQUFsQixrQkFBa0IsY0FGakIsS0FBSzs7MkZBRU4sa0JBQWtCO2tCQU45QixVQUFVO21CQUFDO29CQUNWLG9HQUFvRztvQkFDcEcsOEZBQThGO29CQUM5RixnR0FBZ0c7b0JBQ2hHLFVBQVUsRUFBRSxLQUFLO2lCQUNsQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudFJlZiwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgU2t5RHluYW1pY0NvbXBvbmVudExvY2F0aW9uLFxuICBTa3lEeW5hbWljQ29tcG9uZW50U2VydmljZSxcbn0gZnJvbSAnQHNreXV4L2NvcmUnO1xuXG5pbXBvcnQgeyBTa3lTa2lwTGluayB9IGZyb20gJy4vc2tpcC1saW5rJztcbmltcG9ydCB7IFNreVNraXBMaW5rQXJncyB9IGZyb20gJy4vc2tpcC1saW5rLWFyZ3MnO1xuaW1wb3J0IHsgU2t5U2tpcExpbmtIb3N0Q29tcG9uZW50IH0gZnJvbSAnLi9za2lwLWxpbmstaG9zdC5jb21wb25lbnQnO1xuXG4vKipcbiAqIEFuIEFuZ3VsYXIgc2VydmljZSB0aGF0IGFkZHMgXCJza2lwIGxpbmtzXCIgdG8gdGhlIHBhZ2UuICBTa2lwIGxpbmtzIHdpbGwgb25seSBiZSBkaXNwbGF5ZWRcbiAqIHdoZW4gdGhlIHBhZ2UgaW5pdGlhbGx5IGxvYWRzIGFuZCB0aGUgdXNlciBwcmVzc2VzIHRoZSBUYWIga2V5LCBpbiB3aGljaCBjYXNlIHRoZSBmaXJzdCBsaW5rIHdpbGxcbiAqIGJlIGRpc3BsYXllZCBhbmQgZm9jdXNlZC4gIENsaWNraW5nIHRoZSBidXR0b24gd2lsbCBza2lwIHRvIHRoZSBzcGVjaWZpZWQgZWxlbWVudC4gIFByZXNzaW5nXG4gKiB0aGUgVGFiIGtleSBhZ2FpbiB3aWxsIG1vdmUgdG8gdGhlIG5leHQgc2tpcCBsaW5rIGlmIG1vcmUgdGhhbiBvbmUgc2tpcCBsaW5rIGlzIHNwZWNpZmllZDtcbiAqIG90aGVyd2lzZSwgZm9jdXMgd2lsbCBtb3ZlIHRvIHRoZSBmaXJzdCBmb2N1c2FibGUgZWxlbWVudCBvbiB0aGUgcGFnZS5cbiAqIEBkeW5hbWljXG4gKi9cbkBJbmplY3RhYmxlKHtcbiAgLy8gTXVzdCBiZSAnYW55JyBzbyB0aGF0IHRoZSBza2lwIGxpbmsgY29tcG9uZW50IGlzIGNyZWF0ZWQgaW4gdGhlIGNvbnRleHQgb2YgaXRzIG1vZHVsZSdzIGluamVjdG9yLlxuICAvLyBJZiBzZXQgdG8gJ3Jvb3QnLCB0aGUgY29tcG9uZW50J3MgZGVwZW5kZW5jeSBpbmplY3Rpb25zIHdvdWxkIG9ubHkgYmUgZGVyaXZlZCBmcm9tIHRoZSByb290XG4gIC8vIGluamVjdG9yIGFuZCBtYXkgbG9vc2UgY29udGV4dCBpZiB0aGUgc2tpcCBsaW5rIHdhcyBjcmVhdGVkIGZyb20gd2l0aGluIGEgbGF6eS1sb2FkZWQgbW9kdWxlLlxuICBwcm92aWRlZEluOiAnYW55Jyxcbn0pXG5leHBvcnQgY2xhc3MgU2t5U2tpcExpbmtTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBzdGF0aWMgaG9zdDogQ29tcG9uZW50UmVmPFNreVNraXBMaW5rSG9zdENvbXBvbmVudD4gfCB1bmRlZmluZWQ7XG5cbiAgI2R5bmFtaWNDb21wb25lbnRTZXJ2aWNlOiBTa3lEeW5hbWljQ29tcG9uZW50U2VydmljZTtcblxuICBjb25zdHJ1Y3RvcihkeW5hbWljQ29tcG9uZW50U2VydmljZTogU2t5RHluYW1pY0NvbXBvbmVudFNlcnZpY2UpIHtcbiAgICB0aGlzLiNkeW5hbWljQ29tcG9uZW50U2VydmljZSA9IGR5bmFtaWNDb21wb25lbnRTZXJ2aWNlO1xuICB9XG5cbiAgcHVibGljIHNldFNraXBMaW5rcyhhcmdzOiBTa3lTa2lwTGlua0FyZ3MpIHtcbiAgICBhcmdzLmxpbmtzID0gYXJncy5saW5rcy5maWx0ZXIoKGxpbms6IFNreVNraXBMaW5rKSA9PiB7XG4gICAgICBjb25zdCBlbGVtZW50UmVmRXhpc3RzID0gbGluay5lbGVtZW50UmVmO1xuICAgICAgcmV0dXJuIGVsZW1lbnRSZWZFeGlzdHM7XG4gICAgfSk7XG5cbiAgICAvLyBUaW1lb3V0IG5lZWRlZCBpbiBjYXNlIHRoZSBjb25zdW1lciBzZXRzIHRoZSBza2lwIGxpbmtzIHdpdGhpbiBhbiBBbmd1bGFyIGxpZmVjeWNsZSBob29rLlxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgY29uc3QgaG9zdCA9IHRoaXMuI2NyZWF0ZUhvc3RDb21wb25lbnQoKTtcbiAgICAgIGhvc3QuaW5zdGFuY2UubGlua3MgPSBhcmdzLmxpbmtzO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHJlbW92ZUhvc3RDb21wb25lbnQoKTogdm9pZCB7XG4gICAgaWYgKFNreVNraXBMaW5rU2VydmljZS5ob3N0KSB7XG4gICAgICB0aGlzLiNkeW5hbWljQ29tcG9uZW50U2VydmljZS5yZW1vdmVDb21wb25lbnQoU2t5U2tpcExpbmtTZXJ2aWNlLmhvc3QpO1xuICAgICAgU2t5U2tpcExpbmtTZXJ2aWNlLmhvc3QgPSB1bmRlZmluZWQ7XG4gICAgfVxuICB9XG5cbiAgI2NyZWF0ZUhvc3RDb21wb25lbnQoKTogQ29tcG9uZW50UmVmPFNreVNraXBMaW5rSG9zdENvbXBvbmVudD4ge1xuICAgIGlmICghU2t5U2tpcExpbmtTZXJ2aWNlLmhvc3QpIHtcbiAgICAgIGNvbnN0IGNvbXBvbmVudFJlZiA9IHRoaXMuI2R5bmFtaWNDb21wb25lbnRTZXJ2aWNlLmNyZWF0ZUNvbXBvbmVudChcbiAgICAgICAgU2t5U2tpcExpbmtIb3N0Q29tcG9uZW50LFxuICAgICAgICB7XG4gICAgICAgICAgbG9jYXRpb246IFNreUR5bmFtaWNDb21wb25lbnRMb2NhdGlvbi5Cb2R5VG9wLFxuICAgICAgICB9XG4gICAgICApO1xuXG4gICAgICBTa3lTa2lwTGlua1NlcnZpY2UuaG9zdCA9IGNvbXBvbmVudFJlZjtcbiAgICB9XG5cbiAgICByZXR1cm4gU2t5U2tpcExpbmtTZXJ2aWNlLmhvc3Q7XG4gIH1cbn1cbiJdfQ==
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2tpcC1saW5rLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbXBvbmVudHMvYTExeS9zcmMvbGliL21vZHVsZXMvc2tpcC1saW5rL3NraXAtbGluay5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFTCxtQkFBbUIsRUFDbkIsVUFBVSxFQUNWLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQ0wsMkJBQTJCLEdBRTVCLE1BQU0sYUFBYSxDQUFDO0FBSXJCLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7QUFFdEU7Ozs7OztHQU1HO0FBRUgsTUFBTSxPQUFPLGtCQUFrQjtJQUc3Qix3QkFBd0IsQ0FBNkI7SUFDckQsb0JBQW9CLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFFbkQsWUFBWSx1QkFBbUQ7UUFDN0QsSUFBSSxDQUFDLHdCQUF3QixHQUFHLHVCQUF1QixDQUFDO0lBQzFELENBQUM7SUFFTSxZQUFZLENBQUMsSUFBcUI7UUFDdkMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQWlCLEVBQUUsRUFBRTtZQUNuRCxNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxVQUFVLENBQUM7WUFDekMsT0FBTyxnQkFBZ0IsQ0FBQztRQUMxQixDQUFDLENBQUMsQ0FBQztRQUVILDRGQUE0RjtRQUM1RixVQUFVLENBQUMsR0FBRyxFQUFFO1lBQ2QsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFDekMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUNuQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxtQkFBbUI7UUFDeEIsSUFBSSxrQkFBa0IsQ0FBQyxJQUFJLEVBQUU7WUFDM0IsSUFBSSxDQUFDLHdCQUF3QixDQUFDLGVBQWUsQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN2RSxrQkFBa0IsQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDO1NBQ3JDO0lBQ0gsQ0FBQztJQUVELG9CQUFvQjtRQUNsQixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFO1lBQzVCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxlQUFlLENBQ2hFLHdCQUF3QixFQUN4QjtnQkFDRSxtQkFBbUIsRUFBRSxJQUFJLENBQUMsb0JBQW9CO2dCQUM5QyxRQUFRLEVBQUUsMkJBQTJCLENBQUMsT0FBTzthQUM5QyxDQUNGLENBQUM7WUFFRixrQkFBa0IsQ0FBQyxJQUFJLEdBQUcsWUFBWSxDQUFDO1NBQ3hDO1FBRUQsT0FBTyxrQkFBa0IsQ0FBQyxJQUFJLENBQUM7SUFDakMsQ0FBQzs4R0E1Q1Usa0JBQWtCO2tIQUFsQixrQkFBa0I7OzJGQUFsQixrQkFBa0I7a0JBRDlCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnRSZWYsXG4gIEVudmlyb25tZW50SW5qZWN0b3IsXG4gIEluamVjdGFibGUsXG4gIGluamVjdCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICBTa3lEeW5hbWljQ29tcG9uZW50TG9jYXRpb24sXG4gIFNreUR5bmFtaWNDb21wb25lbnRTZXJ2aWNlLFxufSBmcm9tICdAc2t5dXgvY29yZSc7XG5cbmltcG9ydCB7IFNreVNraXBMaW5rIH0gZnJvbSAnLi9za2lwLWxpbmsnO1xuaW1wb3J0IHsgU2t5U2tpcExpbmtBcmdzIH0gZnJvbSAnLi9za2lwLWxpbmstYXJncyc7XG5pbXBvcnQgeyBTa3lTa2lwTGlua0hvc3RDb21wb25lbnQgfSBmcm9tICcuL3NraXAtbGluay1ob3N0LmNvbXBvbmVudCc7XG5cbi8qKlxuICogQW4gQW5ndWxhciBzZXJ2aWNlIHRoYXQgYWRkcyBcInNraXAgbGlua3NcIiB0byB0aGUgcGFnZS4gIFNraXAgbGlua3Mgd2lsbCBvbmx5IGJlIGRpc3BsYXllZFxuICogd2hlbiB0aGUgcGFnZSBpbml0aWFsbHkgbG9hZHMgYW5kIHRoZSB1c2VyIHByZXNzZXMgdGhlIFRhYiBrZXksIGluIHdoaWNoIGNhc2UgdGhlIGZpcnN0IGxpbmsgd2lsbFxuICogYmUgZGlzcGxheWVkIGFuZCBmb2N1c2VkLiAgQ2xpY2tpbmcgdGhlIGJ1dHRvbiB3aWxsIHNraXAgdG8gdGhlIHNwZWNpZmllZCBlbGVtZW50LiAgUHJlc3NpbmdcbiAqIHRoZSBUYWIga2V5IGFnYWluIHdpbGwgbW92ZSB0byB0aGUgbmV4dCBza2lwIGxpbmsgaWYgbW9yZSB0aGFuIG9uZSBza2lwIGxpbmsgaXMgc3BlY2lmaWVkO1xuICogb3RoZXJ3aXNlLCBmb2N1cyB3aWxsIG1vdmUgdG8gdGhlIGZpcnN0IGZvY3VzYWJsZSBlbGVtZW50IG9uIHRoZSBwYWdlLlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgU2t5U2tpcExpbmtTZXJ2aWNlIHtcbiAgcHJpdmF0ZSBzdGF0aWMgaG9zdDogQ29tcG9uZW50UmVmPFNreVNraXBMaW5rSG9zdENvbXBvbmVudD4gfCB1bmRlZmluZWQ7XG5cbiAgI2R5bmFtaWNDb21wb25lbnRTZXJ2aWNlOiBTa3lEeW5hbWljQ29tcG9uZW50U2VydmljZTtcbiAgI2Vudmlyb25tZW50SW5qZWN0b3IgPSBpbmplY3QoRW52aXJvbm1lbnRJbmplY3Rvcik7XG5cbiAgY29uc3RydWN0b3IoZHluYW1pY0NvbXBvbmVudFNlcnZpY2U6IFNreUR5bmFtaWNDb21wb25lbnRTZXJ2aWNlKSB7XG4gICAgdGhpcy4jZHluYW1pY0NvbXBvbmVudFNlcnZpY2UgPSBkeW5hbWljQ29tcG9uZW50U2VydmljZTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRTa2lwTGlua3MoYXJnczogU2t5U2tpcExpbmtBcmdzKTogdm9pZCB7XG4gICAgYXJncy5saW5rcyA9IGFyZ3MubGlua3MuZmlsdGVyKChsaW5rOiBTa3lTa2lwTGluaykgPT4ge1xuICAgICAgY29uc3QgZWxlbWVudFJlZkV4aXN0cyA9IGxpbmsuZWxlbWVudFJlZjtcbiAgICAgIHJldHVybiBlbGVtZW50UmVmRXhpc3RzO1xuICAgIH0pO1xuXG4gICAgLy8gVGltZW91dCBuZWVkZWQgaW4gY2FzZSB0aGUgY29uc3VtZXIgc2V0cyB0aGUgc2tpcCBsaW5rcyB3aXRoaW4gYW4gQW5ndWxhciBsaWZlY3ljbGUgaG9vay5cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIGNvbnN0IGhvc3QgPSB0aGlzLiNjcmVhdGVIb3N0Q29tcG9uZW50KCk7XG4gICAgICBob3N0Lmluc3RhbmNlLmxpbmtzID0gYXJncy5saW5rcztcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyByZW1vdmVIb3N0Q29tcG9uZW50KCk6IHZvaWQge1xuICAgIGlmIChTa3lTa2lwTGlua1NlcnZpY2UuaG9zdCkge1xuICAgICAgdGhpcy4jZHluYW1pY0NvbXBvbmVudFNlcnZpY2UucmVtb3ZlQ29tcG9uZW50KFNreVNraXBMaW5rU2VydmljZS5ob3N0KTtcbiAgICAgIFNreVNraXBMaW5rU2VydmljZS5ob3N0ID0gdW5kZWZpbmVkO1xuICAgIH1cbiAgfVxuXG4gICNjcmVhdGVIb3N0Q29tcG9uZW50KCk6IENvbXBvbmVudFJlZjxTa3lTa2lwTGlua0hvc3RDb21wb25lbnQ+IHtcbiAgICBpZiAoIVNreVNraXBMaW5rU2VydmljZS5ob3N0KSB7XG4gICAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLiNkeW5hbWljQ29tcG9uZW50U2VydmljZS5jcmVhdGVDb21wb25lbnQoXG4gICAgICAgIFNreVNraXBMaW5rSG9zdENvbXBvbmVudCxcbiAgICAgICAge1xuICAgICAgICAgIGVudmlyb25tZW50SW5qZWN0b3I6IHRoaXMuI2Vudmlyb25tZW50SW5qZWN0b3IsXG4gICAgICAgICAgbG9jYXRpb246IFNreUR5bmFtaWNDb21wb25lbnRMb2NhdGlvbi5Cb2R5VG9wLFxuICAgICAgICB9XG4gICAgICApO1xuXG4gICAgICBTa3lTa2lwTGlua1NlcnZpY2UuaG9zdCA9IGNvbXBvbmVudFJlZjtcbiAgICB9XG5cbiAgICByZXR1cm4gU2t5U2tpcExpbmtTZXJ2aWNlLmhvc3Q7XG4gIH1cbn1cbiJdfQ==
@@ -1,7 +1,7 @@
1
1
  import * as i2 from '@angular/common';
2
2
  import { CommonModule } from '@angular/common';
3
3
  import * as i0 from '@angular/core';
4
- import { NgModule, Injectable, Component, ChangeDetectionStrategy } from '@angular/core';
4
+ import { NgModule, Injectable, Component, ChangeDetectionStrategy, inject, EnvironmentInjector } from '@angular/core';
5
5
  import * as i3 from '@skyux/i18n';
6
6
  import { getLibStringForLocale, SkyI18nModule, SKY_LIB_RESOURCES_PROVIDERS } from '@skyux/i18n';
7
7
  import * as i1 from '@skyux/core';
@@ -97,32 +97,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImpor
97
97
  args: [{ selector: 'sky-skip-link-host', changeDetection: ChangeDetectionStrategy.OnPush, providers: [SkySkipLinkAdapterService], template: "<button\n *ngFor=\"let link of links\"\n class=\"sky-btn sky-btn-primary sky-skip-link\"\n type=\"button\"\n (click)=\"skipTo(link)\"\n>\n {{ 'skyux_list_skip_to_link' | skyLibResources : link.title }}\n</button>\n", styles: [".sky-skip-link{position:absolute;left:-999px;width:1px;height:1px;top:auto}.sky-skip-link:focus,.sky-skip-link:active{display:inline-block;height:auto;width:auto;position:absolute;top:10px;left:10px;margin:auto;z-index:10000}\n"] }]
98
98
  }], ctorParameters: function () { return [{ type: i0.ChangeDetectorRef }, { type: SkySkipLinkAdapterService }]; } });
99
99
 
100
- /**
101
- * The Angular module that enables "skip links" to be added to the page.
102
- */
103
- class SkySkipLinkModule {
104
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkySkipLinkModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
105
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: SkySkipLinkModule, declarations: [SkySkipLinkHostComponent], imports: [CommonModule, SkyI18nModule, SkyA11yResourcesModule] }); }
106
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkySkipLinkModule, imports: [CommonModule, SkyI18nModule, SkyA11yResourcesModule] }); }
107
- }
108
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkySkipLinkModule, decorators: [{
109
- type: NgModule,
110
- args: [{
111
- declarations: [SkySkipLinkHostComponent],
112
- imports: [CommonModule, SkyI18nModule, SkyA11yResourcesModule],
113
- }]
114
- }] });
115
-
116
100
  /**
117
101
  * An Angular service that adds "skip links" to the page. Skip links will only be displayed
118
102
  * when the page initially loads and the user presses the Tab key, in which case the first link will
119
103
  * be displayed and focused. Clicking the button will skip to the specified element. Pressing
120
104
  * the Tab key again will move to the next skip link if more than one skip link is specified;
121
105
  * otherwise, focus will move to the first focusable element on the page.
122
- * @dynamic
123
106
  */
124
107
  class SkySkipLinkService {
125
108
  #dynamicComponentService;
109
+ #environmentInjector = inject(EnvironmentInjector);
126
110
  constructor(dynamicComponentService) {
127
111
  this.#dynamicComponentService = dynamicComponentService;
128
112
  }
@@ -146,6 +130,7 @@ class SkySkipLinkService {
146
130
  #createHostComponent() {
147
131
  if (!SkySkipLinkService.host) {
148
132
  const componentRef = this.#dynamicComponentService.createComponent(SkySkipLinkHostComponent, {
133
+ environmentInjector: this.#environmentInjector,
149
134
  location: SkyDynamicComponentLocation.BodyTop,
150
135
  });
151
136
  SkySkipLinkService.host = componentRef;
@@ -153,17 +138,28 @@ class SkySkipLinkService {
153
138
  return SkySkipLinkService.host;
154
139
  }
155
140
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkySkipLinkService, deps: [{ token: i1.SkyDynamicComponentService }], target: i0.ɵɵFactoryTarget.Injectable }); }
156
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkySkipLinkService, providedIn: 'any' }); }
141
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkySkipLinkService }); }
157
142
  }
158
143
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkySkipLinkService, decorators: [{
159
- type: Injectable,
144
+ type: Injectable
145
+ }], ctorParameters: function () { return [{ type: i1.SkyDynamicComponentService }]; } });
146
+
147
+ /**
148
+ * The Angular module that enables "skip links" to be added to the page.
149
+ */
150
+ class SkySkipLinkModule {
151
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkySkipLinkModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
152
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "16.1.7", ngImport: i0, type: SkySkipLinkModule, declarations: [SkySkipLinkHostComponent], imports: [CommonModule, SkyA11yResourcesModule] }); }
153
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkySkipLinkModule, providers: [SkySkipLinkService], imports: [CommonModule, SkyA11yResourcesModule] }); }
154
+ }
155
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.1.7", ngImport: i0, type: SkySkipLinkModule, decorators: [{
156
+ type: NgModule,
160
157
  args: [{
161
- // Must be 'any' so that the skip link component is created in the context of its module's injector.
162
- // If set to 'root', the component's dependency injections would only be derived from the root
163
- // injector and may loose context if the skip link was created from within a lazy-loaded module.
164
- providedIn: 'any',
158
+ declarations: [SkySkipLinkHostComponent],
159
+ imports: [CommonModule, SkyA11yResourcesModule],
160
+ providers: [SkySkipLinkService],
165
161
  }]
166
- }], ctorParameters: function () { return [{ type: i1.SkyDynamicComponentService }]; } });
162
+ }] });
167
163
 
168
164
  /**
169
165
  * Generated bundle index. Do not edit.
@@ -1 +1 @@
1
- {"version":3,"file":"skyux-a11y.mjs","sources":["../../../../../libs/components/a11y/src/lib/modules/shared/sky-a11y-resources.module.ts","../../../../../libs/components/a11y/src/lib/modules/skip-link/skip-link-adapter.service.ts","../../../../../libs/components/a11y/src/lib/modules/skip-link/skip-link-host.component.ts","../../../../../libs/components/a11y/src/lib/modules/skip-link/skip-link-host.component.html","../../../../../libs/components/a11y/src/lib/modules/skip-link/skip-link.module.ts","../../../../../libs/components/a11y/src/lib/modules/skip-link/skip-link.service.ts","../../../../../libs/components/a11y/src/skyux-a11y.ts"],"sourcesContent":["/**\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-a11y' schematic.\n * To update this file, simply rerun the command.\n */\nimport { NgModule } from '@angular/core';\nimport {\n SKY_LIB_RESOURCES_PROVIDERS,\n SkyAppLocaleInfo,\n SkyI18nModule,\n SkyLibResources,\n SkyLibResourcesProvider,\n getLibStringForLocale,\n} from '@skyux/i18n';\n\nconst RESOURCES: { [locale: string]: SkyLibResources } = {\n 'EN-US': { skyux_list_skip_to_link: { message: 'Skip to {0}' } },\n};\n\nexport class SkyA11yResourcesProvider implements SkyLibResourcesProvider {\n public getString(\n localeInfo: SkyAppLocaleInfo,\n name: string\n ): string | undefined {\n return getLibStringForLocale(RESOURCES, localeInfo.locale, name);\n }\n}\n\n/**\n * Import into any component library module that needs to use resource strings.\n */\n@NgModule({\n exports: [SkyI18nModule],\n providers: [\n {\n provide: SKY_LIB_RESOURCES_PROVIDERS,\n useClass: SkyA11yResourcesProvider,\n multi: true,\n },\n ],\n})\nexport class SkyA11yResourcesModule {}\n","import { Injectable } from '@angular/core';\nimport { SkyAppWindowRef } from '@skyux/core';\n\nimport { SkySkipLink } from './skip-link';\n\n@Injectable()\nexport class SkySkipLinkAdapterService {\n #windowRef: SkyAppWindowRef;\n\n constructor(windowRef: SkyAppWindowRef) {\n this.#windowRef = windowRef;\n }\n\n public skipTo(link: SkySkipLink): void {\n const targetElement = link.elementRef.nativeElement;\n const win = this.#windowRef.nativeWindow;\n const bodyElement = win.document.body;\n\n const bodyMarginTop = parseInt(\n win.getComputedStyle(bodyElement).marginTop,\n 10\n );\n const bodyDefaultPadding = 10;\n const scrollTop =\n targetElement.offsetTop - bodyMarginTop - bodyDefaultPadding;\n\n win.scroll(0, scrollTop);\n\n targetElement.focus();\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n} from '@angular/core';\n\nimport { SkySkipLink } from './skip-link';\nimport { SkySkipLinkAdapterService } from './skip-link-adapter.service';\n\n@Component({\n selector: 'sky-skip-link-host',\n templateUrl: './skip-link-host.component.html',\n styleUrls: ['./skip-link-host.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [SkySkipLinkAdapterService],\n})\nexport class SkySkipLinkHostComponent {\n public get links(): SkySkipLink[] {\n return this.#_links;\n }\n\n public set links(value: SkySkipLink[]) {\n this.#_links = value;\n this.#changeDetector.markForCheck();\n }\n\n #_links: SkySkipLink[] = [];\n\n #changeDetector: ChangeDetectorRef;\n #adapter: SkySkipLinkAdapterService;\n\n constructor(\n changeDetector: ChangeDetectorRef,\n adapter: SkySkipLinkAdapterService\n ) {\n this.#changeDetector = changeDetector;\n this.#adapter = adapter;\n }\n\n public skipTo(link: SkySkipLink): void {\n this.#adapter.skipTo(link);\n }\n}\n","<button\n *ngFor=\"let link of links\"\n class=\"sky-btn sky-btn-primary sky-skip-link\"\n type=\"button\"\n (click)=\"skipTo(link)\"\n>\n {{ 'skyux_list_skip_to_link' | skyLibResources : link.title }}\n</button>\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { SkyI18nModule } from '@skyux/i18n';\n\nimport { SkyA11yResourcesModule } from '../shared/sky-a11y-resources.module';\n\nimport { SkySkipLinkHostComponent } from './skip-link-host.component';\n\n/**\n * The Angular module that enables \"skip links\" to be added to the page.\n */\n@NgModule({\n declarations: [SkySkipLinkHostComponent],\n imports: [CommonModule, SkyI18nModule, SkyA11yResourcesModule],\n})\nexport class SkySkipLinkModule {}\n","import { ComponentRef, Injectable } from '@angular/core';\nimport {\n SkyDynamicComponentLocation,\n SkyDynamicComponentService,\n} from '@skyux/core';\n\nimport { SkySkipLink } from './skip-link';\nimport { SkySkipLinkArgs } from './skip-link-args';\nimport { SkySkipLinkHostComponent } from './skip-link-host.component';\n\n/**\n * An Angular service that adds \"skip links\" to the page. Skip links will only be displayed\n * when the page initially loads and the user presses the Tab key, in which case the first link will\n * be displayed and focused. Clicking the button will skip to the specified element. Pressing\n * the Tab key again will move to the next skip link if more than one skip link is specified;\n * otherwise, focus will move to the first focusable element on the page.\n * @dynamic\n */\n@Injectable({\n // Must be 'any' so that the skip link component is created in the context of its module's injector.\n // If set to 'root', the component's dependency injections would only be derived from the root\n // injector and may loose context if the skip link was created from within a lazy-loaded module.\n providedIn: 'any',\n})\nexport class SkySkipLinkService {\n private static host: ComponentRef<SkySkipLinkHostComponent> | undefined;\n\n #dynamicComponentService: SkyDynamicComponentService;\n\n constructor(dynamicComponentService: SkyDynamicComponentService) {\n this.#dynamicComponentService = dynamicComponentService;\n }\n\n public setSkipLinks(args: SkySkipLinkArgs) {\n args.links = args.links.filter((link: SkySkipLink) => {\n const elementRefExists = link.elementRef;\n return elementRefExists;\n });\n\n // Timeout needed in case the consumer sets the skip links within an Angular lifecycle hook.\n setTimeout(() => {\n const host = this.#createHostComponent();\n host.instance.links = args.links;\n });\n }\n\n public removeHostComponent(): void {\n if (SkySkipLinkService.host) {\n this.#dynamicComponentService.removeComponent(SkySkipLinkService.host);\n SkySkipLinkService.host = undefined;\n }\n }\n\n #createHostComponent(): ComponentRef<SkySkipLinkHostComponent> {\n if (!SkySkipLinkService.host) {\n const componentRef = this.#dynamicComponentService.createComponent(\n SkySkipLinkHostComponent,\n {\n location: SkyDynamicComponentLocation.BodyTop,\n }\n );\n\n SkySkipLinkService.host = componentRef;\n }\n\n return SkySkipLinkService.host;\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.SkySkipLinkAdapterService"],"mappings":"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"}
1
+ {"version":3,"file":"skyux-a11y.mjs","sources":["../../../../../libs/components/a11y/src/lib/modules/shared/sky-a11y-resources.module.ts","../../../../../libs/components/a11y/src/lib/modules/skip-link/skip-link-adapter.service.ts","../../../../../libs/components/a11y/src/lib/modules/skip-link/skip-link-host.component.ts","../../../../../libs/components/a11y/src/lib/modules/skip-link/skip-link-host.component.html","../../../../../libs/components/a11y/src/lib/modules/skip-link/skip-link.service.ts","../../../../../libs/components/a11y/src/lib/modules/skip-link/skip-link.module.ts","../../../../../libs/components/a11y/src/skyux-a11y.ts"],"sourcesContent":["/**\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-a11y' schematic.\n * To update this file, simply rerun the command.\n */\nimport { NgModule } from '@angular/core';\nimport {\n SKY_LIB_RESOURCES_PROVIDERS,\n SkyAppLocaleInfo,\n SkyI18nModule,\n SkyLibResources,\n SkyLibResourcesProvider,\n getLibStringForLocale,\n} from '@skyux/i18n';\n\nconst RESOURCES: { [locale: string]: SkyLibResources } = {\n 'EN-US': { skyux_list_skip_to_link: { message: 'Skip to {0}' } },\n};\n\nexport class SkyA11yResourcesProvider implements SkyLibResourcesProvider {\n public getString(\n localeInfo: SkyAppLocaleInfo,\n name: string\n ): string | undefined {\n return getLibStringForLocale(RESOURCES, localeInfo.locale, name);\n }\n}\n\n/**\n * Import into any component library module that needs to use resource strings.\n */\n@NgModule({\n exports: [SkyI18nModule],\n providers: [\n {\n provide: SKY_LIB_RESOURCES_PROVIDERS,\n useClass: SkyA11yResourcesProvider,\n multi: true,\n },\n ],\n})\nexport class SkyA11yResourcesModule {}\n","import { Injectable } from '@angular/core';\nimport { SkyAppWindowRef } from '@skyux/core';\n\nimport { SkySkipLink } from './skip-link';\n\n@Injectable()\nexport class SkySkipLinkAdapterService {\n #windowRef: SkyAppWindowRef;\n\n constructor(windowRef: SkyAppWindowRef) {\n this.#windowRef = windowRef;\n }\n\n public skipTo(link: SkySkipLink): void {\n const targetElement = link.elementRef.nativeElement;\n const win = this.#windowRef.nativeWindow;\n const bodyElement = win.document.body;\n\n const bodyMarginTop = parseInt(\n win.getComputedStyle(bodyElement).marginTop,\n 10\n );\n const bodyDefaultPadding = 10;\n const scrollTop =\n targetElement.offsetTop - bodyMarginTop - bodyDefaultPadding;\n\n win.scroll(0, scrollTop);\n\n targetElement.focus();\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n} from '@angular/core';\n\nimport { SkySkipLink } from './skip-link';\nimport { SkySkipLinkAdapterService } from './skip-link-adapter.service';\n\n@Component({\n selector: 'sky-skip-link-host',\n templateUrl: './skip-link-host.component.html',\n styleUrls: ['./skip-link-host.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [SkySkipLinkAdapterService],\n})\nexport class SkySkipLinkHostComponent {\n public get links(): SkySkipLink[] {\n return this.#_links;\n }\n\n public set links(value: SkySkipLink[]) {\n this.#_links = value;\n this.#changeDetector.markForCheck();\n }\n\n #_links: SkySkipLink[] = [];\n\n #changeDetector: ChangeDetectorRef;\n #adapter: SkySkipLinkAdapterService;\n\n constructor(\n changeDetector: ChangeDetectorRef,\n adapter: SkySkipLinkAdapterService\n ) {\n this.#changeDetector = changeDetector;\n this.#adapter = adapter;\n }\n\n public skipTo(link: SkySkipLink): void {\n this.#adapter.skipTo(link);\n }\n}\n","<button\n *ngFor=\"let link of links\"\n class=\"sky-btn sky-btn-primary sky-skip-link\"\n type=\"button\"\n (click)=\"skipTo(link)\"\n>\n {{ 'skyux_list_skip_to_link' | skyLibResources : link.title }}\n</button>\n","import {\n ComponentRef,\n EnvironmentInjector,\n Injectable,\n inject,\n} from '@angular/core';\nimport {\n SkyDynamicComponentLocation,\n SkyDynamicComponentService,\n} from '@skyux/core';\n\nimport { SkySkipLink } from './skip-link';\nimport { SkySkipLinkArgs } from './skip-link-args';\nimport { SkySkipLinkHostComponent } from './skip-link-host.component';\n\n/**\n * An Angular service that adds \"skip links\" to the page. Skip links will only be displayed\n * when the page initially loads and the user presses the Tab key, in which case the first link will\n * be displayed and focused. Clicking the button will skip to the specified element. Pressing\n * the Tab key again will move to the next skip link if more than one skip link is specified;\n * otherwise, focus will move to the first focusable element on the page.\n */\n@Injectable()\nexport class SkySkipLinkService {\n private static host: ComponentRef<SkySkipLinkHostComponent> | undefined;\n\n #dynamicComponentService: SkyDynamicComponentService;\n #environmentInjector = inject(EnvironmentInjector);\n\n constructor(dynamicComponentService: SkyDynamicComponentService) {\n this.#dynamicComponentService = dynamicComponentService;\n }\n\n public setSkipLinks(args: SkySkipLinkArgs): void {\n args.links = args.links.filter((link: SkySkipLink) => {\n const elementRefExists = link.elementRef;\n return elementRefExists;\n });\n\n // Timeout needed in case the consumer sets the skip links within an Angular lifecycle hook.\n setTimeout(() => {\n const host = this.#createHostComponent();\n host.instance.links = args.links;\n });\n }\n\n public removeHostComponent(): void {\n if (SkySkipLinkService.host) {\n this.#dynamicComponentService.removeComponent(SkySkipLinkService.host);\n SkySkipLinkService.host = undefined;\n }\n }\n\n #createHostComponent(): ComponentRef<SkySkipLinkHostComponent> {\n if (!SkySkipLinkService.host) {\n const componentRef = this.#dynamicComponentService.createComponent(\n SkySkipLinkHostComponent,\n {\n environmentInjector: this.#environmentInjector,\n location: SkyDynamicComponentLocation.BodyTop,\n }\n );\n\n SkySkipLinkService.host = componentRef;\n }\n\n return SkySkipLinkService.host;\n }\n}\n","import { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { SkyA11yResourcesModule } from '../shared/sky-a11y-resources.module';\n\nimport { SkySkipLinkHostComponent } from './skip-link-host.component';\nimport { SkySkipLinkService } from './skip-link.service';\n\n/**\n * The Angular module that enables \"skip links\" to be added to the page.\n */\n@NgModule({\n declarations: [SkySkipLinkHostComponent],\n imports: [CommonModule, SkyA11yResourcesModule],\n providers: [SkySkipLinkService],\n})\nexport class SkySkipLinkModule {}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.SkySkipLinkAdapterService"],"mappings":"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"}
@@ -1,13 +1,12 @@
1
1
  import * as i0 from "@angular/core";
2
2
  import * as i1 from "./skip-link-host.component";
3
3
  import * as i2 from "@angular/common";
4
- import * as i3 from "@skyux/i18n";
5
- import * as i4 from "../shared/sky-a11y-resources.module";
4
+ import * as i3 from "../shared/sky-a11y-resources.module";
6
5
  /**
7
6
  * The Angular module that enables "skip links" to be added to the page.
8
7
  */
9
8
  export declare class SkySkipLinkModule {
10
9
  static ɵfac: i0.ɵɵFactoryDeclaration<SkySkipLinkModule, never>;
11
- static ɵmod: i0.ɵɵNgModuleDeclaration<SkySkipLinkModule, [typeof i1.SkySkipLinkHostComponent], [typeof i2.CommonModule, typeof i3.SkyI18nModule, typeof i4.SkyA11yResourcesModule], never>;
10
+ static ɵmod: i0.ɵɵNgModuleDeclaration<SkySkipLinkModule, [typeof i1.SkySkipLinkHostComponent], [typeof i2.CommonModule, typeof i3.SkyA11yResourcesModule], never>;
12
11
  static ɵinj: i0.ɵɵInjectorDeclaration<SkySkipLinkModule>;
13
12
  }
@@ -7,7 +7,6 @@ import * as i0 from "@angular/core";
7
7
  * be displayed and focused. Clicking the button will skip to the specified element. Pressing
8
8
  * the Tab key again will move to the next skip link if more than one skip link is specified;
9
9
  * otherwise, focus will move to the first focusable element on the page.
10
- * @dynamic
11
10
  */
12
11
  export declare class SkySkipLinkService {
13
12
  #private;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@skyux/a11y",
3
- "version": "9.0.0-alpha.3",
3
+ "version": "9.0.0-alpha.5",
4
4
  "author": "Blackbaud, Inc.",
5
5
  "keywords": [
6
6
  "blackbaud",
@@ -38,8 +38,8 @@
38
38
  "peerDependencies": {
39
39
  "@angular/common": "^16.1.7",
40
40
  "@angular/core": "^16.1.7",
41
- "@skyux/core": "9.0.0-alpha.3",
42
- "@skyux/i18n": "9.0.0-alpha.3"
41
+ "@skyux/core": "9.0.0-alpha.5",
42
+ "@skyux/i18n": "9.0.0-alpha.5"
43
43
  },
44
44
  "dependencies": {
45
45
  "tslib": "^2.5.0"