@angular/aria 21.0.3 → 21.1.0-next.1

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 (56) hide show
  1. package/_adev_assets/aria-accordion.json +743 -0
  2. package/_adev_assets/aria-combobox.json +603 -0
  3. package/_adev_assets/aria-grid.json +893 -0
  4. package/_adev_assets/aria-listbox.json +540 -0
  5. package/_adev_assets/aria-menu.json +1049 -0
  6. package/_adev_assets/aria-tabs.json +880 -0
  7. package/_adev_assets/aria-toolbar.json +545 -0
  8. package/_adev_assets/aria-tree.json +853 -0
  9. package/fesm2022/_widget-chunk.mjs +246 -4
  10. package/fesm2022/_widget-chunk.mjs.map +1 -1
  11. package/fesm2022/accordion.mjs +4 -17
  12. package/fesm2022/accordion.mjs.map +1 -1
  13. package/fesm2022/aria.mjs +1 -1
  14. package/fesm2022/aria.mjs.map +1 -1
  15. package/fesm2022/combobox.mjs +120 -96
  16. package/fesm2022/combobox.mjs.map +1 -1
  17. package/fesm2022/grid.mjs +201 -225
  18. package/fesm2022/grid.mjs.map +1 -1
  19. package/fesm2022/listbox.mjs +161 -173
  20. package/fesm2022/listbox.mjs.map +1 -1
  21. package/fesm2022/menu.mjs +238 -256
  22. package/fesm2022/menu.mjs.map +1 -1
  23. package/fesm2022/private.mjs +932 -7
  24. package/fesm2022/private.mjs.map +1 -1
  25. package/fesm2022/tabs.mjs +168 -182
  26. package/fesm2022/tabs.mjs.map +1 -1
  27. package/fesm2022/toolbar.mjs +3 -15
  28. package/fesm2022/toolbar.mjs.map +1 -1
  29. package/fesm2022/tree.mjs +2 -4
  30. package/fesm2022/tree.mjs.map +1 -1
  31. package/package.json +3 -3
  32. package/types/_grid-chunk.d.ts +210 -3
  33. package/types/accordion.d.ts +49 -52
  34. package/types/combobox.d.ts +111 -25
  35. package/types/grid.d.ts +32 -37
  36. package/types/listbox.d.ts +5 -8
  37. package/types/menu.d.ts +113 -113
  38. package/types/private.d.ts +498 -10
  39. package/types/tabs.d.ts +84 -89
  40. package/types/toolbar.d.ts +66 -69
  41. package/types/tree.d.ts +103 -106
  42. package/fesm2022/_combobox-chunk.mjs +0 -425
  43. package/fesm2022/_combobox-chunk.mjs.map +0 -1
  44. package/fesm2022/_combobox-listbox-chunk.mjs +0 -522
  45. package/fesm2022/_combobox-listbox-chunk.mjs.map +0 -1
  46. package/fesm2022/_combobox-popup-chunk.mjs +0 -46
  47. package/fesm2022/_combobox-popup-chunk.mjs.map +0 -1
  48. package/fesm2022/_list-navigation-chunk.mjs +0 -116
  49. package/fesm2022/_list-navigation-chunk.mjs.map +0 -1
  50. package/fesm2022/_pointer-event-manager-chunk.mjs +0 -134
  51. package/fesm2022/_pointer-event-manager-chunk.mjs.map +0 -1
  52. package/types/_combobox-chunk.d.ts +0 -98
  53. package/types/_combobox-chunk.d2.ts +0 -193
  54. package/types/_list-chunk.d.ts +0 -212
  55. package/types/_list-navigation-chunk.d.ts +0 -212
  56. package/types/_listbox-chunk.d.ts +0 -106
package/fesm2022/tabs.mjs CHANGED
@@ -1,19 +1,81 @@
1
- import * as i0 from '@angular/core';
2
- import { InjectionToken, inject, ElementRef, signal, computed, input, booleanAttribute, model, afterRenderEffect, Directive } from '@angular/core';
1
+ import { _IdGenerator } from '@angular/cdk/a11y';
3
2
  import { Directionality } from '@angular/cdk/bidi';
3
+ import * as i0 from '@angular/core';
4
+ import { inject, ElementRef, signal, computed, Directive, input, booleanAttribute, model, afterRenderEffect } from '@angular/core';
4
5
  import * as i1 from '@angular/aria/private';
5
- import { TabListPattern, DeferredContentAware, TabPanelPattern, TabPattern, DeferredContent } from '@angular/aria/private';
6
- import { _IdGenerator } from '@angular/cdk/a11y';
6
+ import { TabListPattern, TabPattern, DeferredContentAware, TabPanelPattern, DeferredContent } from '@angular/aria/private';
7
7
 
8
- const TABS = new InjectionToken('TABS');
9
8
  function sortDirectives(a, b) {
10
9
  return (a.element.compareDocumentPosition(b.element) & Node.DOCUMENT_POSITION_PRECEDING) > 0 ? 1 : -1;
11
10
  }
12
-
11
+ class Tabs {
12
+ _elementRef = inject(ElementRef);
13
+ element = this._elementRef.nativeElement;
14
+ _tablist = signal(undefined, ...(ngDevMode ? [{
15
+ debugName: "_tablist"
16
+ }] : []));
17
+ _unorderedPanels = signal(new Set(), ...(ngDevMode ? [{
18
+ debugName: "_unorderedPanels"
19
+ }] : []));
20
+ _tabPatterns = computed(() => this._tablist()?._tabPatterns(), ...(ngDevMode ? [{
21
+ debugName: "_tabPatterns"
22
+ }] : []));
23
+ _unorderedTabpanelPatterns = computed(() => [...this._unorderedPanels()].map(tabpanel => tabpanel._pattern), ...(ngDevMode ? [{
24
+ debugName: "_unorderedTabpanelPatterns"
25
+ }] : []));
26
+ _register(child) {
27
+ if (child instanceof TabList) {
28
+ this._tablist.set(child);
29
+ }
30
+ if (child instanceof TabPanel) {
31
+ this._unorderedPanels().add(child);
32
+ this._unorderedPanels.set(new Set(this._unorderedPanels()));
33
+ }
34
+ }
35
+ _unregister(child) {
36
+ if (child instanceof TabList) {
37
+ this._tablist.set(undefined);
38
+ }
39
+ if (child instanceof TabPanel) {
40
+ this._unorderedPanels().delete(child);
41
+ this._unorderedPanels.set(new Set(this._unorderedPanels()));
42
+ }
43
+ }
44
+ static ɵfac = i0.ɵɵngDeclareFactory({
45
+ minVersion: "12.0.0",
46
+ version: "21.0.0",
47
+ ngImport: i0,
48
+ type: Tabs,
49
+ deps: [],
50
+ target: i0.ɵɵFactoryTarget.Directive
51
+ });
52
+ static ɵdir = i0.ɵɵngDeclareDirective({
53
+ minVersion: "14.0.0",
54
+ version: "21.0.0",
55
+ type: Tabs,
56
+ isStandalone: true,
57
+ selector: "[ngTabs]",
58
+ exportAs: ["ngTabs"],
59
+ ngImport: i0
60
+ });
61
+ }
62
+ i0.ɵɵngDeclareClassMetadata({
63
+ minVersion: "12.0.0",
64
+ version: "21.0.0",
65
+ ngImport: i0,
66
+ type: Tabs,
67
+ decorators: [{
68
+ type: Directive,
69
+ args: [{
70
+ selector: '[ngTabs]',
71
+ exportAs: 'ngTabs'
72
+ }]
73
+ }]
74
+ });
13
75
  class TabList {
14
76
  _elementRef = inject(ElementRef);
15
77
  element = this._elementRef.nativeElement;
16
- _tabs = inject(TABS);
78
+ _tabs = inject(Tabs);
17
79
  _unorderedTabs = signal(new Set(), ...(ngDevMode ? [{
18
80
  debugName: "_unorderedTabs"
19
81
  }] : []));
@@ -272,51 +334,65 @@ i0.ɵɵngDeclareClassMetadata({
272
334
  }]
273
335
  }
274
336
  });
275
-
276
- class TabPanel {
337
+ class Tab {
277
338
  _elementRef = inject(ElementRef);
278
339
  element = this._elementRef.nativeElement;
279
- _deferredContentAware = inject(DeferredContentAware);
280
- _tabs = inject(TABS);
281
- id = input(inject(_IdGenerator).getId('ng-tabpanel-', true), ...(ngDevMode ? [{
340
+ _tabs = inject(Tabs);
341
+ _tabList = inject(TabList);
342
+ id = input(inject(_IdGenerator).getId('ng-tab-', true), ...(ngDevMode ? [{
282
343
  debugName: "id"
283
344
  }] : []));
284
- _tabPattern = computed(() => this._tabs._tabPatterns()?.find(tab => tab.value() === this.value()), ...(ngDevMode ? [{
285
- debugName: "_tabPattern"
345
+ _tablistPattern = computed(() => this._tabList._pattern, ...(ngDevMode ? [{
346
+ debugName: "_tablistPattern"
286
347
  }] : []));
348
+ _tabpanelPattern = computed(() => this._tabs._unorderedTabpanelPatterns().find(tabpanel => tabpanel.value() === this.value()), ...(ngDevMode ? [{
349
+ debugName: "_tabpanelPattern"
350
+ }] : []));
351
+ disabled = input(false, ...(ngDevMode ? [{
352
+ debugName: "disabled",
353
+ transform: booleanAttribute
354
+ }] : [{
355
+ transform: booleanAttribute
356
+ }]));
287
357
  value = input.required(...(ngDevMode ? [{
288
358
  debugName: "value"
289
359
  }] : []));
290
- visible = computed(() => !this._pattern.hidden(), ...(ngDevMode ? [{
291
- debugName: "visible"
360
+ active = computed(() => this._pattern.active(), ...(ngDevMode ? [{
361
+ debugName: "active"
292
362
  }] : []));
293
- _pattern = new TabPanelPattern({
363
+ selected = computed(() => this._pattern.selected(), ...(ngDevMode ? [{
364
+ debugName: "selected"
365
+ }] : []));
366
+ _pattern = new TabPattern({
294
367
  ...this,
295
- tab: this._tabPattern
368
+ tablist: this._tablistPattern,
369
+ tabpanel: this._tabpanelPattern,
370
+ expanded: signal(false),
371
+ element: () => this.element
296
372
  });
297
- constructor() {
298
- afterRenderEffect(() => this._deferredContentAware.contentVisible.set(this.visible()));
373
+ open() {
374
+ this._pattern.open();
299
375
  }
300
376
  ngOnInit() {
301
- this._tabs._register(this);
377
+ this._tabList._register(this);
302
378
  }
303
379
  ngOnDestroy() {
304
- this._tabs._unregister(this);
380
+ this._tabList._unregister(this);
305
381
  }
306
382
  static ɵfac = i0.ɵɵngDeclareFactory({
307
383
  minVersion: "12.0.0",
308
384
  version: "21.0.0",
309
385
  ngImport: i0,
310
- type: TabPanel,
386
+ type: Tab,
311
387
  deps: [],
312
388
  target: i0.ɵɵFactoryTarget.Directive
313
389
  });
314
390
  static ɵdir = i0.ɵɵngDeclareDirective({
315
391
  minVersion: "17.1.0",
316
392
  version: "21.0.0",
317
- type: TabPanel,
393
+ type: Tab,
318
394
  isStandalone: true,
319
- selector: "[ngTabPanel]",
395
+ selector: "[ngTab]",
320
396
  inputs: {
321
397
  id: {
322
398
  classPropertyName: "id",
@@ -325,6 +401,13 @@ class TabPanel {
325
401
  isRequired: false,
326
402
  transformFunction: null
327
403
  },
404
+ disabled: {
405
+ classPropertyName: "disabled",
406
+ publicName: "disabled",
407
+ isSignal: true,
408
+ isRequired: false,
409
+ transformFunction: null
410
+ },
328
411
  value: {
329
412
  classPropertyName: "value",
330
413
  publicName: "value",
@@ -335,20 +418,18 @@ class TabPanel {
335
418
  },
336
419
  host: {
337
420
  attributes: {
338
- "role": "tabpanel"
421
+ "role": "tab"
339
422
  },
340
423
  properties: {
424
+ "attr.data-active": "active()",
341
425
  "attr.id": "_pattern.id()",
342
426
  "attr.tabindex": "_pattern.tabIndex()",
343
- "attr.inert": "!visible() ? true : null",
344
- "attr.aria-labelledby": "_pattern.labelledBy()"
427
+ "attr.aria-selected": "selected()",
428
+ "attr.aria-disabled": "_pattern.disabled()",
429
+ "attr.aria-controls": "_pattern.controls()"
345
430
  }
346
431
  },
347
- exportAs: ["ngTabPanel"],
348
- hostDirectives: [{
349
- directive: i1.DeferredContentAware,
350
- inputs: ["preserveContent", "preserveContent"]
351
- }],
432
+ exportAs: ["ngTab"],
352
433
  ngImport: i0
353
434
  });
354
435
  }
@@ -356,26 +437,23 @@ i0.ɵɵngDeclareClassMetadata({
356
437
  minVersion: "12.0.0",
357
438
  version: "21.0.0",
358
439
  ngImport: i0,
359
- type: TabPanel,
440
+ type: Tab,
360
441
  decorators: [{
361
442
  type: Directive,
362
443
  args: [{
363
- selector: '[ngTabPanel]',
364
- exportAs: 'ngTabPanel',
444
+ selector: '[ngTab]',
445
+ exportAs: 'ngTab',
365
446
  host: {
366
- 'role': 'tabpanel',
447
+ 'role': 'tab',
448
+ '[attr.data-active]': 'active()',
367
449
  '[attr.id]': '_pattern.id()',
368
450
  '[attr.tabindex]': '_pattern.tabIndex()',
369
- '[attr.inert]': '!visible() ? true : null',
370
- '[attr.aria-labelledby]': '_pattern.labelledBy()'
371
- },
372
- hostDirectives: [{
373
- directive: DeferredContentAware,
374
- inputs: ['preserveContent']
375
- }]
451
+ '[attr.aria-selected]': 'selected()',
452
+ '[attr.aria-disabled]': '_pattern.disabled()',
453
+ '[attr.aria-controls]': '_pattern.controls()'
454
+ }
376
455
  }]
377
456
  }],
378
- ctorParameters: () => [],
379
457
  propDecorators: {
380
458
  id: [{
381
459
  type: i0.Input,
@@ -385,6 +463,14 @@ i0.ɵɵngDeclareClassMetadata({
385
463
  required: false
386
464
  }]
387
465
  }],
466
+ disabled: [{
467
+ type: i0.Input,
468
+ args: [{
469
+ isSignal: true,
470
+ alias: "disabled",
471
+ required: false
472
+ }]
473
+ }],
388
474
  value: [{
389
475
  type: i0.Input,
390
476
  args: [{
@@ -395,139 +481,50 @@ i0.ɵɵngDeclareClassMetadata({
395
481
  }]
396
482
  }
397
483
  });
398
-
399
- class Tabs {
400
- _elementRef = inject(ElementRef);
401
- element = this._elementRef.nativeElement;
402
- _tablist = signal(undefined, ...(ngDevMode ? [{
403
- debugName: "_tablist"
404
- }] : []));
405
- _unorderedPanels = signal(new Set(), ...(ngDevMode ? [{
406
- debugName: "_unorderedPanels"
407
- }] : []));
408
- _tabPatterns = computed(() => this._tablist()?._tabPatterns(), ...(ngDevMode ? [{
409
- debugName: "_tabPatterns"
410
- }] : []));
411
- _unorderedTabpanelPatterns = computed(() => [...this._unorderedPanels()].map(tabpanel => tabpanel._pattern), ...(ngDevMode ? [{
412
- debugName: "_unorderedTabpanelPatterns"
413
- }] : []));
414
- _register(child) {
415
- if (child instanceof TabList) {
416
- this._tablist.set(child);
417
- }
418
- if (child instanceof TabPanel) {
419
- this._unorderedPanels().add(child);
420
- this._unorderedPanels.set(new Set(this._unorderedPanels()));
421
- }
422
- }
423
- _unregister(child) {
424
- if (child instanceof TabList) {
425
- this._tablist.set(undefined);
426
- }
427
- if (child instanceof TabPanel) {
428
- this._unorderedPanels().delete(child);
429
- this._unorderedPanels.set(new Set(this._unorderedPanels()));
430
- }
431
- }
432
- static ɵfac = i0.ɵɵngDeclareFactory({
433
- minVersion: "12.0.0",
434
- version: "21.0.0",
435
- ngImport: i0,
436
- type: Tabs,
437
- deps: [],
438
- target: i0.ɵɵFactoryTarget.Directive
439
- });
440
- static ɵdir = i0.ɵɵngDeclareDirective({
441
- minVersion: "14.0.0",
442
- version: "21.0.0",
443
- type: Tabs,
444
- isStandalone: true,
445
- selector: "[ngTabs]",
446
- providers: [{
447
- provide: TABS,
448
- useExisting: Tabs
449
- }],
450
- exportAs: ["ngTabs"],
451
- ngImport: i0
452
- });
453
- }
454
- i0.ɵɵngDeclareClassMetadata({
455
- minVersion: "12.0.0",
456
- version: "21.0.0",
457
- ngImport: i0,
458
- type: Tabs,
459
- decorators: [{
460
- type: Directive,
461
- args: [{
462
- selector: '[ngTabs]',
463
- exportAs: 'ngTabs',
464
- providers: [{
465
- provide: TABS,
466
- useExisting: Tabs
467
- }]
468
- }]
469
- }]
470
- });
471
-
472
- class Tab {
484
+ class TabPanel {
473
485
  _elementRef = inject(ElementRef);
474
486
  element = this._elementRef.nativeElement;
475
- _tabs = inject(TABS);
476
- _tabList = inject(TabList);
477
- id = input(inject(_IdGenerator).getId('ng-tab-', true), ...(ngDevMode ? [{
487
+ _deferredContentAware = inject(DeferredContentAware);
488
+ _Tabs = inject(Tabs);
489
+ id = input(inject(_IdGenerator).getId('ng-tabpanel-', true), ...(ngDevMode ? [{
478
490
  debugName: "id"
479
491
  }] : []));
480
- _tablistPattern = computed(() => this._tabList._pattern, ...(ngDevMode ? [{
481
- debugName: "_tablistPattern"
482
- }] : []));
483
- _tabpanelPattern = computed(() => this._tabs._unorderedTabpanelPatterns().find(tabpanel => tabpanel.value() === this.value()), ...(ngDevMode ? [{
484
- debugName: "_tabpanelPattern"
492
+ _tabPattern = computed(() => this._Tabs._tabPatterns()?.find(tab => tab.value() === this.value()), ...(ngDevMode ? [{
493
+ debugName: "_tabPattern"
485
494
  }] : []));
486
- disabled = input(false, ...(ngDevMode ? [{
487
- debugName: "disabled",
488
- transform: booleanAttribute
489
- }] : [{
490
- transform: booleanAttribute
491
- }]));
492
495
  value = input.required(...(ngDevMode ? [{
493
496
  debugName: "value"
494
497
  }] : []));
495
- active = computed(() => this._pattern.active(), ...(ngDevMode ? [{
496
- debugName: "active"
497
- }] : []));
498
- selected = computed(() => this._pattern.selected(), ...(ngDevMode ? [{
499
- debugName: "selected"
498
+ visible = computed(() => !this._pattern.hidden(), ...(ngDevMode ? [{
499
+ debugName: "visible"
500
500
  }] : []));
501
- _pattern = new TabPattern({
501
+ _pattern = new TabPanelPattern({
502
502
  ...this,
503
- tablist: this._tablistPattern,
504
- tabpanel: this._tabpanelPattern,
505
- expanded: signal(false),
506
- element: () => this.element
503
+ tab: this._tabPattern
507
504
  });
508
- open() {
509
- this._pattern.open();
505
+ constructor() {
506
+ afterRenderEffect(() => this._deferredContentAware.contentVisible.set(this.visible()));
510
507
  }
511
508
  ngOnInit() {
512
- this._tabList._register(this);
509
+ this._Tabs._register(this);
513
510
  }
514
511
  ngOnDestroy() {
515
- this._tabList._unregister(this);
512
+ this._Tabs._unregister(this);
516
513
  }
517
514
  static ɵfac = i0.ɵɵngDeclareFactory({
518
515
  minVersion: "12.0.0",
519
516
  version: "21.0.0",
520
517
  ngImport: i0,
521
- type: Tab,
518
+ type: TabPanel,
522
519
  deps: [],
523
520
  target: i0.ɵɵFactoryTarget.Directive
524
521
  });
525
522
  static ɵdir = i0.ɵɵngDeclareDirective({
526
523
  minVersion: "17.1.0",
527
524
  version: "21.0.0",
528
- type: Tab,
525
+ type: TabPanel,
529
526
  isStandalone: true,
530
- selector: "[ngTab]",
527
+ selector: "[ngTabPanel]",
531
528
  inputs: {
532
529
  id: {
533
530
  classPropertyName: "id",
@@ -536,13 +533,6 @@ class Tab {
536
533
  isRequired: false,
537
534
  transformFunction: null
538
535
  },
539
- disabled: {
540
- classPropertyName: "disabled",
541
- publicName: "disabled",
542
- isSignal: true,
543
- isRequired: false,
544
- transformFunction: null
545
- },
546
536
  value: {
547
537
  classPropertyName: "value",
548
538
  publicName: "value",
@@ -553,18 +543,20 @@ class Tab {
553
543
  },
554
544
  host: {
555
545
  attributes: {
556
- "role": "tab"
546
+ "role": "tabpanel"
557
547
  },
558
548
  properties: {
559
- "attr.data-active": "active()",
560
549
  "attr.id": "_pattern.id()",
561
550
  "attr.tabindex": "_pattern.tabIndex()",
562
- "attr.aria-selected": "selected()",
563
- "attr.aria-disabled": "_pattern.disabled()",
564
- "attr.aria-controls": "_pattern.controls()"
551
+ "attr.inert": "!visible() ? true : null",
552
+ "attr.aria-labelledby": "_pattern.labelledBy()"
565
553
  }
566
554
  },
567
- exportAs: ["ngTab"],
555
+ exportAs: ["ngTabPanel"],
556
+ hostDirectives: [{
557
+ directive: i1.DeferredContentAware,
558
+ inputs: ["preserveContent", "preserveContent"]
559
+ }],
568
560
  ngImport: i0
569
561
  });
570
562
  }
@@ -572,23 +564,26 @@ i0.ɵɵngDeclareClassMetadata({
572
564
  minVersion: "12.0.0",
573
565
  version: "21.0.0",
574
566
  ngImport: i0,
575
- type: Tab,
567
+ type: TabPanel,
576
568
  decorators: [{
577
569
  type: Directive,
578
570
  args: [{
579
- selector: '[ngTab]',
580
- exportAs: 'ngTab',
571
+ selector: '[ngTabPanel]',
572
+ exportAs: 'ngTabPanel',
581
573
  host: {
582
- 'role': 'tab',
583
- '[attr.data-active]': 'active()',
574
+ 'role': 'tabpanel',
584
575
  '[attr.id]': '_pattern.id()',
585
576
  '[attr.tabindex]': '_pattern.tabIndex()',
586
- '[attr.aria-selected]': 'selected()',
587
- '[attr.aria-disabled]': '_pattern.disabled()',
588
- '[attr.aria-controls]': '_pattern.controls()'
589
- }
577
+ '[attr.inert]': '!visible() ? true : null',
578
+ '[attr.aria-labelledby]': '_pattern.labelledBy()'
579
+ },
580
+ hostDirectives: [{
581
+ directive: DeferredContentAware,
582
+ inputs: ['preserveContent']
583
+ }]
590
584
  }]
591
585
  }],
586
+ ctorParameters: () => [],
592
587
  propDecorators: {
593
588
  id: [{
594
589
  type: i0.Input,
@@ -598,14 +593,6 @@ i0.ɵɵngDeclareClassMetadata({
598
593
  required: false
599
594
  }]
600
595
  }],
601
- disabled: [{
602
- type: i0.Input,
603
- args: [{
604
- isSignal: true,
605
- alias: "disabled",
606
- required: false
607
- }]
608
- }],
609
596
  value: [{
610
597
  type: i0.Input,
611
598
  args: [{
@@ -616,7 +603,6 @@ i0.ɵɵngDeclareClassMetadata({
616
603
  }]
617
604
  }
618
605
  });
619
-
620
606
  class TabContent {
621
607
  static ɵfac = i0.ɵɵngDeclareFactory({
622
608
  minVersion: "12.0.0",
@@ -1 +1 @@
1
- {"version":3,"file":"tabs.mjs","sources":["../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/tabs/utils.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/tabs/tab-list.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/tabs/tab-panel.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/tabs/tabs.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/tabs/tab.ts","../../../../../darwin_arm64-fastbuild-ST-fdfa778d11ba/bin/src/aria/tabs/tab-content.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {InjectionToken} from '@angular/core';\nimport type {Tabs} from './tabs';\n\n/** Token used to expose the `Tabs` directive to child directives. */\nexport const TABS = new InjectionToken<Tabs>('TABS');\n\nexport interface HasElement {\n element: HTMLElement;\n}\n\n/**\n * Sort directives by their document order.\n */\nexport function sortDirectives(a: HasElement, b: HasElement) {\n return (a.element.compareDocumentPosition(b.element) & Node.DOCUMENT_POSITION_PRECEDING) > 0\n ? 1\n : -1;\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {Directionality} from '@angular/cdk/bidi';\nimport {\n booleanAttribute,\n computed,\n Directive,\n ElementRef,\n inject,\n input,\n model,\n signal,\n afterRenderEffect,\n OnInit,\n OnDestroy,\n} from '@angular/core';\nimport {TabListPattern} from '@angular/aria/private';\nimport {sortDirectives, TABS} from './utils';\nimport type {Tab} from './tab';\n\n/**\n * A TabList container.\n *\n * The `ngTabList` directive controls a list of `ngTab` elements. It manages keyboard\n * navigation, selection, and the overall orientation of the tabs. It should be placed\n * within an `ngTabs` container.\n *\n * ```html\n * <ul ngTabList [(selectedTab)]=\"mySelectedTab\" orientation=\"horizontal\" selectionMode=\"explicit\">\n * <li ngTab value=\"first\">First Tab</li>\n * <li ngTab value=\"second\">Second Tab</li>\n * </ul>\n * ```\n *\n * @developerPreview 21.0\n */\n@Directive({\n selector: '[ngTabList]',\n exportAs: 'ngTabList',\n host: {\n 'role': 'tablist',\n '[attr.tabindex]': '_pattern.tabIndex()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.aria-orientation]': '_pattern.orientation()',\n '[attr.aria-activedescendant]': '_pattern.activeDescendant()',\n '(keydown)': '_pattern.onKeydown($event)',\n '(pointerdown)': '_pattern.onPointerdown($event)',\n '(focusin)': '_onFocus()',\n },\n})\nexport class TabList implements OnInit, OnDestroy {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The parent Tabs. */\n private readonly _tabs = inject(TABS);\n\n /** The Tabs nested inside of the TabList. */\n private readonly _unorderedTabs = signal(new Set<Tab>());\n\n /** Text direction. */\n readonly textDirection = inject(Directionality).valueSignal;\n\n /** The Tab UIPatterns of the child Tabs. */\n readonly _tabPatterns = computed(() =>\n [...this._unorderedTabs()].sort(sortDirectives).map(tab => tab._pattern),\n );\n\n /** Whether the tablist is vertically or horizontally oriented. */\n readonly orientation = input<'vertical' | 'horizontal'>('horizontal');\n\n /** Whether focus should wrap when navigating. */\n readonly wrap = input(true, {transform: booleanAttribute});\n\n /**\n * Whether to allow disabled items to receive focus. When `true`, disabled items are\n * focusable but not interactive. When `false`, disabled items are skipped during navigation.\n */\n readonly softDisabled = input(true, {transform: booleanAttribute});\n\n /**\n * The focus strategy used by the tablist.\n * - `roving`: Focus is moved to the active tab using `tabindex`.\n * - `activedescendant`: Focus remains on the tablist container, and `aria-activedescendant` is used to indicate the active tab.\n */\n readonly focusMode = input<'roving' | 'activedescendant'>('roving');\n\n /**\n * The selection strategy used by the tablist.\n * - `follow`: The focused tab is automatically selected.\n * - `explicit`: Tabs are selected explicitly by the user (e.g., via click or spacebar).\n */\n readonly selectionMode = input<'follow' | 'explicit'>('follow');\n\n /** The current selected tab. */\n readonly selectedTab = model<string | undefined>();\n\n /** Whether the tablist is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** The TabList UIPattern. */\n readonly _pattern: TabListPattern = new TabListPattern({\n ...this,\n items: this._tabPatterns,\n activeItem: signal(undefined),\n element: () => this._elementRef.nativeElement,\n });\n\n /** Whether the tree has received focus yet. */\n private _hasFocused = signal(false);\n\n constructor() {\n afterRenderEffect(() => {\n if (!this._hasFocused()) {\n this._pattern.setDefaultState();\n }\n });\n\n afterRenderEffect(() => {\n const tab = this._pattern.selectedTab();\n if (tab) {\n this.selectedTab.set(tab.value());\n }\n });\n\n afterRenderEffect(() => {\n const value = this.selectedTab();\n if (value) {\n this._pattern.open(value);\n }\n });\n }\n\n _onFocus() {\n this._hasFocused.set(true);\n }\n\n ngOnInit() {\n this._tabs._register(this);\n }\n\n ngOnDestroy() {\n this._tabs._unregister(this);\n }\n\n _register(child: Tab) {\n this._unorderedTabs().add(child);\n this._unorderedTabs.set(new Set(this._unorderedTabs()));\n }\n\n _unregister(child: Tab) {\n this._unorderedTabs().delete(child);\n this._unorderedTabs.set(new Set(this._unorderedTabs()));\n }\n\n /** Opens the tab panel with the specified value. */\n open(value: string): boolean {\n return this._pattern.open(value);\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {\n computed,\n Directive,\n ElementRef,\n inject,\n input,\n afterRenderEffect,\n OnInit,\n OnDestroy,\n} from '@angular/core';\nimport {TabPanelPattern, DeferredContentAware} from '@angular/aria/private';\nimport {TABS} from './utils';\n\n/**\n * A TabPanel container for the resources of layered content associated with a tab.\n *\n * The `ngTabPanel` directive holds the content for a specific tab. It is linked to an\n * `ngTab` by a matching `value`. If a tab panel is hidden, the `inert` attribute will be\n * applied to remove it from the accessibility tree. Proper styling is required for visual hiding.\n *\n * ```html\n * <div ngTabPanel value=\"myTabId\">\n * <ng-template ngTabContent>\n * <!-- Content for the tab panel -->\n * </ng-template>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n */\n@Directive({\n selector: '[ngTabPanel]',\n exportAs: 'ngTabPanel',\n host: {\n 'role': 'tabpanel',\n '[attr.id]': '_pattern.id()',\n '[attr.tabindex]': '_pattern.tabIndex()',\n '[attr.inert]': '!visible() ? true : null',\n '[attr.aria-labelledby]': '_pattern.labelledBy()',\n },\n hostDirectives: [\n {\n directive: DeferredContentAware,\n inputs: ['preserveContent'],\n },\n ],\n})\nexport class TabPanel implements OnInit, OnDestroy {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The DeferredContentAware host directive. */\n private readonly _deferredContentAware = inject(DeferredContentAware);\n\n /** The parent Tabs. */\n private readonly _tabs = inject(TABS);\n\n /** A global unique identifier for the tab. */\n readonly id = input(inject(_IdGenerator).getId('ng-tabpanel-', true));\n\n /** The Tab UIPattern associated with the tabpanel */\n private readonly _tabPattern = computed(() =>\n this._tabs._tabPatterns()?.find(tab => tab.value() === this.value()),\n );\n\n /** A local unique identifier for the tabpanel. */\n readonly value = input.required<string>();\n\n /** Whether the tab panel is visible. */\n readonly visible = computed(() => !this._pattern.hidden());\n\n /** The TabPanel UIPattern. */\n readonly _pattern: TabPanelPattern = new TabPanelPattern({\n ...this,\n tab: this._tabPattern,\n });\n\n constructor() {\n afterRenderEffect(() => this._deferredContentAware.contentVisible.set(this.visible()));\n }\n\n ngOnInit() {\n this._tabs._register(this);\n }\n\n ngOnDestroy() {\n this._tabs._unregister(this);\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {computed, Directive, ElementRef, inject, signal} from '@angular/core';\nimport {TabList} from './tab-list';\nimport {TabPanel} from './tab-panel';\nimport {TABS} from './utils';\n\n/**\n * A Tabs container.\n *\n * The `ngTabs` directive represents a set of layered sections of content. It acts as the\n * overarching container for a tabbed interface, coordinating the behavior of `ngTabList`,\n * `ngTab`, and `ngTabPanel` directives.\n *\n * ```html\n * <div ngTabs>\n * <ul ngTabList [(selectedTab)]=\"selectedTabValue\">\n * <li ngTab value=\"tab1\">Tab 1</li>\n * <li ngTab value=\"tab2\">Tab 2</li>\n * <li ngTab value=\"tab3\">Tab 3</li>\n * </ul>\n *\n * <div ngTabPanel value=\"tab1\">\n * <ng-template ngTabContent>Content for Tab 1</ng-template>\n * </div>\n * <div ngTabPanel value=\"tab2\">\n * <ng-template ngTabContent>Content for Tab 2</ng-template>\n * </div>\n * <div ngTabPanel value=\"tab3\">\n * <ng-template ngTabContent>Content for Tab 3</ng-template>\n * </div>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n */\n@Directive({\n selector: '[ngTabs]',\n exportAs: 'ngTabs',\n providers: [{provide: TABS, useExisting: Tabs}],\n})\nexport class Tabs {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The TabList nested inside of the container. */\n private readonly _tablist = signal<TabList | undefined>(undefined);\n\n /** The TabPanels nested inside of the container. */\n private readonly _unorderedPanels = signal(new Set<TabPanel>());\n\n /** The Tab UIPattern of the child Tabs. */\n readonly _tabPatterns = computed(() => this._tablist()?._tabPatterns());\n\n /** The TabPanel UIPattern of the child TabPanels. */\n readonly _unorderedTabpanelPatterns = computed(() =>\n [...this._unorderedPanels()].map(tabpanel => tabpanel._pattern),\n );\n\n _register(child: TabList | TabPanel) {\n if (child instanceof TabList) {\n this._tablist.set(child);\n }\n\n if (child instanceof TabPanel) {\n this._unorderedPanels().add(child);\n this._unorderedPanels.set(new Set(this._unorderedPanels()));\n }\n }\n\n _unregister(child: TabList | TabPanel) {\n if (child instanceof TabList) {\n this._tablist.set(undefined);\n }\n\n if (child instanceof TabPanel) {\n this._unorderedPanels().delete(child);\n this._unorderedPanels.set(new Set(this._unorderedPanels()));\n }\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {\n booleanAttribute,\n computed,\n Directive,\n ElementRef,\n inject,\n input,\n signal,\n OnInit,\n OnDestroy,\n} from '@angular/core';\nimport {TabPattern} from '@angular/aria/private';\nimport {TabList} from './tab-list';\nimport {HasElement, TABS} from './utils';\n\n/**\n * A selectable tab in a TabList.\n *\n * The `ngTab` directive represents an individual tab control within an `ngTabList`. It\n * requires a `value` that uniquely identifies it and links it to a corresponding `ngTabPanel`.\n *\n * ```html\n * <li ngTab value=\"myTabId\" [disabled]=\"isTabDisabled\">\n * My Tab Label\n * </li>\n * ```\n *\n * @developerPreview 21.0\n */\n@Directive({\n selector: '[ngTab]',\n exportAs: 'ngTab',\n host: {\n 'role': 'tab',\n '[attr.data-active]': 'active()',\n '[attr.id]': '_pattern.id()',\n '[attr.tabindex]': '_pattern.tabIndex()',\n '[attr.aria-selected]': 'selected()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.aria-controls]': '_pattern.controls()',\n },\n})\nexport class Tab implements HasElement, OnInit, OnDestroy {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The parent Tabs. */\n private readonly _tabs = inject(TABS);\n\n /** The parent TabList. */\n private readonly _tabList = inject(TabList);\n\n /** A unique identifier for the widget. */\n readonly id = input(inject(_IdGenerator).getId('ng-tab-', true));\n\n /** The parent TabList UIPattern. */\n private readonly _tablistPattern = computed(() => this._tabList._pattern);\n\n /** The TabPanel UIPattern associated with the tab */\n private readonly _tabpanelPattern = computed(() =>\n this._tabs._unorderedTabpanelPatterns().find(tabpanel => tabpanel.value() === this.value()),\n );\n\n /** Whether a tab is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** The remote tabpanel unique identifier. */\n readonly value = input.required<string>();\n\n /** Whether the tab is active. */\n readonly active = computed(() => this._pattern.active());\n\n /** Whether the tab is selected. */\n readonly selected = computed(() => this._pattern.selected());\n\n /** The Tab UIPattern. */\n readonly _pattern: TabPattern = new TabPattern({\n ...this,\n tablist: this._tablistPattern,\n tabpanel: this._tabpanelPattern,\n expanded: signal(false),\n element: () => this.element,\n });\n\n /** Opens this tab panel. */\n open() {\n this._pattern.open();\n }\n\n ngOnInit() {\n this._tabList._register(this);\n }\n\n ngOnDestroy() {\n this._tabList._unregister(this);\n }\n}\n","/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {Directive} from '@angular/core';\nimport {DeferredContent} from '@angular/aria/private';\n\n/**\n * A TabContent container for the lazy-loaded content.\n *\n * This structural directive should be applied to an `ng-template` within an `ngTabPanel`.\n * It enables lazy loading of the tab's content, meaning the content is only rendered\n * when the tab is activated for the first time.\n *\n * ```html\n * <div ngTabPanel value=\"myTabId\">\n * <ng-template ngTabContent>\n * <p>This content will be loaded when 'myTabId' is selected.</p>\n * </ng-template>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n */\n@Directive({\n selector: 'ng-template[ngTabContent]',\n exportAs: 'ngTabContent',\n hostDirectives: [DeferredContent],\n})\nexport class TabContent {}\n"],"names":["TABS","InjectionToken","sortDirectives","a","b","element","compareDocumentPosition","Node","DOCUMENT_POSITION_PRECEDING","TabList","_elementRef","inject","ElementRef","nativeElement","_tabs","_unorderedTabs","signal","Set","textDirection","Directionality","valueSignal","_tabPatterns","computed","sort","map","tab","_pattern","orientation","input","wrap","transform","booleanAttribute","softDisabled","focusMode","selectionMode","selectedTab","model","ngDevMode","undefined","debugName","disabled","TabListPattern","items","activeItem","_hasFocused","constructor","afterRenderEffect","setDefaultState","set","value","open","_onFocus","ngOnInit","_register","ngOnDestroy","_unregister","child","add","delete","deps","target","i0","ɵɵFactoryTarget","Directive","isStandalone","selector","inputs","classPropertyName","publicName","isSignal","isRequired","transformFunction","outputs","host","attributes","listeners","properties","exportAs","ngImport","decorators","args","TabPanel","_deferredContentAware","DeferredContentAware","id","_IdGenerator","getId","_tabPattern","find","required","visible","hidden","TabPanelPattern","contentVisible","hostDirectives","directive","i1","Tabs","_tablist","_unorderedPanels","_unorderedTabpanelPatterns","tabpanel","providers","provide","useExisting","Tab","_tabList","_tablistPattern","_tabpanelPattern","active","selected","TabPattern","tablist","expanded","TabContent","DeferredContent"],"mappings":"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"}
1
+ {"version":3,"file":"tabs.mjs","sources":["../../../../../k8-fastbuild-ST-199a4f3c4e20/bin/src/aria/tabs/tabs.ts"],"sourcesContent":["/**\n * @license\n * Copyright Google LLC All Rights Reserved.\n *\n * Use of this source code is governed by an MIT-style license that can be\n * found in the LICENSE file at https://angular.dev/license\n */\n\nimport {_IdGenerator} from '@angular/cdk/a11y';\nimport {Directionality} from '@angular/cdk/bidi';\nimport {\n booleanAttribute,\n computed,\n Directive,\n ElementRef,\n inject,\n input,\n model,\n signal,\n afterRenderEffect,\n OnInit,\n OnDestroy,\n} from '@angular/core';\nimport {\n TabListPattern,\n TabPanelPattern,\n TabPattern,\n DeferredContent,\n DeferredContentAware,\n} from '@angular/aria/private';\n\ninterface HasElement {\n element: HTMLElement;\n}\n\n/**\n * Sort directives by their document order.\n */\nfunction sortDirectives(a: HasElement, b: HasElement) {\n return (a.element.compareDocumentPosition(b.element) & Node.DOCUMENT_POSITION_PRECEDING) > 0\n ? 1\n : -1;\n}\n\n/**\n * A Tabs container.\n *\n * The `ngTabs` directive represents a set of layered sections of content. It acts as the\n * overarching container for a tabbed interface, coordinating the behavior of `ngTabList`,\n * `ngTab`, and `ngTabPanel` directives.\n *\n * ```html\n * <div ngTabs>\n * <ul ngTabList [(selectedTab)]=\"selectedTabValue\">\n * <li ngTab value=\"tab1\">Tab 1</li>\n * <li ngTab value=\"tab2\">Tab 2</li>\n * <li ngTab value=\"tab3\">Tab 3</li>\n * </ul>\n *\n * <div ngTabPanel value=\"tab1\">\n * <ng-template ngTabContent>Content for Tab 1</ng-template>\n * </div>\n * <div ngTabPanel value=\"tab2\">\n * <ng-template ngTabContent>Content for Tab 2</ng-template>\n * </div>\n * <div ngTabPanel value=\"tab3\">\n * <ng-template ngTabContent>Content for Tab 3</ng-template>\n * </div>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n */\n@Directive({\n selector: '[ngTabs]',\n exportAs: 'ngTabs',\n})\nexport class Tabs {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The TabList nested inside of the container. */\n private readonly _tablist = signal<TabList | undefined>(undefined);\n\n /** The TabPanels nested inside of the container. */\n private readonly _unorderedPanels = signal(new Set<TabPanel>());\n\n /** The Tab UIPattern of the child Tabs. */\n readonly _tabPatterns = computed(() => this._tablist()?._tabPatterns());\n\n /** The TabPanel UIPattern of the child TabPanels. */\n readonly _unorderedTabpanelPatterns = computed(() =>\n [...this._unorderedPanels()].map(tabpanel => tabpanel._pattern),\n );\n\n _register(child: TabList | TabPanel) {\n if (child instanceof TabList) {\n this._tablist.set(child);\n }\n\n if (child instanceof TabPanel) {\n this._unorderedPanels().add(child);\n this._unorderedPanels.set(new Set(this._unorderedPanels()));\n }\n }\n\n _unregister(child: TabList | TabPanel) {\n if (child instanceof TabList) {\n this._tablist.set(undefined);\n }\n\n if (child instanceof TabPanel) {\n this._unorderedPanels().delete(child);\n this._unorderedPanels.set(new Set(this._unorderedPanels()));\n }\n }\n}\n\n/**\n * A TabList container.\n *\n * The `ngTabList` directive controls a list of `ngTab` elements. It manages keyboard\n * navigation, selection, and the overall orientation of the tabs. It should be placed\n * within an `ngTabs` container.\n *\n * ```html\n * <ul ngTabList [(selectedTab)]=\"mySelectedTab\" orientation=\"horizontal\" selectionMode=\"explicit\">\n * <li ngTab value=\"first\">First Tab</li>\n * <li ngTab value=\"second\">Second Tab</li>\n * </ul>\n * ```\n *\n * @developerPreview 21.0\n */\n@Directive({\n selector: '[ngTabList]',\n exportAs: 'ngTabList',\n host: {\n 'role': 'tablist',\n '[attr.tabindex]': '_pattern.tabIndex()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.aria-orientation]': '_pattern.orientation()',\n '[attr.aria-activedescendant]': '_pattern.activeDescendant()',\n '(keydown)': '_pattern.onKeydown($event)',\n '(pointerdown)': '_pattern.onPointerdown($event)',\n '(focusin)': '_onFocus()',\n },\n})\nexport class TabList implements OnInit, OnDestroy {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The parent Tabs. */\n private readonly _tabs = inject(Tabs);\n\n /** The Tabs nested inside of the TabList. */\n private readonly _unorderedTabs = signal(new Set<Tab>());\n\n /** Text direction. */\n readonly textDirection = inject(Directionality).valueSignal;\n\n /** The Tab UIPatterns of the child Tabs. */\n readonly _tabPatterns = computed(() =>\n [...this._unorderedTabs()].sort(sortDirectives).map(tab => tab._pattern),\n );\n\n /** Whether the tablist is vertically or horizontally oriented. */\n readonly orientation = input<'vertical' | 'horizontal'>('horizontal');\n\n /** Whether focus should wrap when navigating. */\n readonly wrap = input(true, {transform: booleanAttribute});\n\n /**\n * Whether to allow disabled items to receive focus. When `true`, disabled items are\n * focusable but not interactive. When `false`, disabled items are skipped during navigation.\n */\n readonly softDisabled = input(true, {transform: booleanAttribute});\n\n /**\n * The focus strategy used by the tablist.\n * - `roving`: Focus is moved to the active tab using `tabindex`.\n * - `activedescendant`: Focus remains on the tablist container, and `aria-activedescendant` is used to indicate the active tab.\n */\n readonly focusMode = input<'roving' | 'activedescendant'>('roving');\n\n /**\n * The selection strategy used by the tablist.\n * - `follow`: The focused tab is automatically selected.\n * - `explicit`: Tabs are selected explicitly by the user (e.g., via click or spacebar).\n */\n readonly selectionMode = input<'follow' | 'explicit'>('follow');\n\n /** The current selected tab. */\n readonly selectedTab = model<string | undefined>();\n\n /** Whether the tablist is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** The TabList UIPattern. */\n readonly _pattern: TabListPattern = new TabListPattern({\n ...this,\n items: this._tabPatterns,\n activeItem: signal(undefined),\n element: () => this._elementRef.nativeElement,\n });\n\n /** Whether the tree has received focus yet. */\n private _hasFocused = signal(false);\n\n constructor() {\n afterRenderEffect(() => {\n if (!this._hasFocused()) {\n this._pattern.setDefaultState();\n }\n });\n\n afterRenderEffect(() => {\n const tab = this._pattern.selectedTab();\n if (tab) {\n this.selectedTab.set(tab.value());\n }\n });\n\n afterRenderEffect(() => {\n const value = this.selectedTab();\n if (value) {\n this._pattern.open(value);\n }\n });\n }\n\n _onFocus() {\n this._hasFocused.set(true);\n }\n\n ngOnInit() {\n this._tabs._register(this);\n }\n\n ngOnDestroy() {\n this._tabs._unregister(this);\n }\n\n _register(child: Tab) {\n this._unorderedTabs().add(child);\n this._unorderedTabs.set(new Set(this._unorderedTabs()));\n }\n\n _unregister(child: Tab) {\n this._unorderedTabs().delete(child);\n this._unorderedTabs.set(new Set(this._unorderedTabs()));\n }\n\n /** Opens the tab panel with the specified value. */\n open(value: string): boolean {\n return this._pattern.open(value);\n }\n}\n\n/**\n * A selectable tab in a TabList.\n *\n * The `ngTab` directive represents an individual tab control within an `ngTabList`. It\n * requires a `value` that uniquely identifies it and links it to a corresponding `ngTabPanel`.\n *\n * ```html\n * <li ngTab value=\"myTabId\" [disabled]=\"isTabDisabled\">\n * My Tab Label\n * </li>\n * ```\n *\n * @developerPreview 21.0\n */\n@Directive({\n selector: '[ngTab]',\n exportAs: 'ngTab',\n host: {\n 'role': 'tab',\n '[attr.data-active]': 'active()',\n '[attr.id]': '_pattern.id()',\n '[attr.tabindex]': '_pattern.tabIndex()',\n '[attr.aria-selected]': 'selected()',\n '[attr.aria-disabled]': '_pattern.disabled()',\n '[attr.aria-controls]': '_pattern.controls()',\n },\n})\nexport class Tab implements HasElement, OnInit, OnDestroy {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The parent Tabs. */\n private readonly _tabs = inject(Tabs);\n\n /** The parent TabList. */\n private readonly _tabList = inject(TabList);\n\n /** A unique identifier for the widget. */\n readonly id = input(inject(_IdGenerator).getId('ng-tab-', true));\n\n /** The parent TabList UIPattern. */\n private readonly _tablistPattern = computed(() => this._tabList._pattern);\n\n /** The TabPanel UIPattern associated with the tab */\n private readonly _tabpanelPattern = computed(() =>\n this._tabs._unorderedTabpanelPatterns().find(tabpanel => tabpanel.value() === this.value()),\n );\n\n /** Whether a tab is disabled. */\n readonly disabled = input(false, {transform: booleanAttribute});\n\n /** The remote tabpanel unique identifier. */\n readonly value = input.required<string>();\n\n /** Whether the tab is active. */\n readonly active = computed(() => this._pattern.active());\n\n /** Whether the tab is selected. */\n readonly selected = computed(() => this._pattern.selected());\n\n /** The Tab UIPattern. */\n readonly _pattern: TabPattern = new TabPattern({\n ...this,\n tablist: this._tablistPattern,\n tabpanel: this._tabpanelPattern,\n expanded: signal(false),\n element: () => this.element,\n });\n\n /** Opens this tab panel. */\n open() {\n this._pattern.open();\n }\n\n ngOnInit() {\n this._tabList._register(this);\n }\n\n ngOnDestroy() {\n this._tabList._unregister(this);\n }\n}\n\n/**\n * A TabPanel container for the resources of layered content associated with a tab.\n *\n * The `ngTabPanel` directive holds the content for a specific tab. It is linked to an\n * `ngTab` by a matching `value`. If a tab panel is hidden, the `inert` attribute will be\n * applied to remove it from the accessibility tree. Proper styling is required for visual hiding.\n *\n * ```html\n * <div ngTabPanel value=\"myTabId\">\n * <ng-template ngTabContent>\n * <!-- Content for the tab panel -->\n * </ng-template>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n */\n@Directive({\n selector: '[ngTabPanel]',\n exportAs: 'ngTabPanel',\n host: {\n 'role': 'tabpanel',\n '[attr.id]': '_pattern.id()',\n '[attr.tabindex]': '_pattern.tabIndex()',\n '[attr.inert]': '!visible() ? true : null',\n '[attr.aria-labelledby]': '_pattern.labelledBy()',\n },\n hostDirectives: [\n {\n directive: DeferredContentAware,\n inputs: ['preserveContent'],\n },\n ],\n})\nexport class TabPanel implements OnInit, OnDestroy {\n /** A reference to the host element. */\n private readonly _elementRef = inject(ElementRef);\n\n /** A reference to the host element. */\n readonly element = this._elementRef.nativeElement as HTMLElement;\n\n /** The DeferredContentAware host directive. */\n private readonly _deferredContentAware = inject(DeferredContentAware);\n\n /** The parent Tabs. */\n private readonly _Tabs = inject(Tabs);\n\n /** A global unique identifier for the tab. */\n readonly id = input(inject(_IdGenerator).getId('ng-tabpanel-', true));\n\n /** The Tab UIPattern associated with the tabpanel */\n private readonly _tabPattern = computed(() =>\n this._Tabs._tabPatterns()?.find(tab => tab.value() === this.value()),\n );\n\n /** A local unique identifier for the tabpanel. */\n readonly value = input.required<string>();\n\n /** Whether the tab panel is visible. */\n readonly visible = computed(() => !this._pattern.hidden());\n\n /** The TabPanel UIPattern. */\n readonly _pattern: TabPanelPattern = new TabPanelPattern({\n ...this,\n tab: this._tabPattern,\n });\n\n constructor() {\n afterRenderEffect(() => this._deferredContentAware.contentVisible.set(this.visible()));\n }\n\n ngOnInit() {\n this._Tabs._register(this);\n }\n\n ngOnDestroy() {\n this._Tabs._unregister(this);\n }\n}\n\n/**\n * A TabContent container for the lazy-loaded content.\n *\n * This structural directive should be applied to an `ng-template` within an `ngTabPanel`.\n * It enables lazy loading of the tab's content, meaning the content is only rendered\n * when the tab is activated for the first time.\n *\n * ```html\n * <div ngTabPanel value=\"myTabId\">\n * <ng-template ngTabContent>\n * <p>This content will be loaded when 'myTabId' is selected.</p>\n * </ng-template>\n * </div>\n * ```\n *\n * @developerPreview 21.0\n */\n@Directive({\n selector: 'ng-template[ngTabContent]',\n exportAs: 'ngTabContent',\n hostDirectives: [DeferredContent],\n})\nexport class TabContent {}\n"],"names":["sortDirectives","a","b","element","compareDocumentPosition","Node","DOCUMENT_POSITION_PRECEDING","Tabs","_elementRef","inject","ElementRef","nativeElement","_tablist","signal","undefined","_unorderedPanels","Set","_tabPatterns","computed","_unorderedTabpanelPatterns","map","tabpanel","_pattern","ngDevMode","debugName","_register","child","TabList","set","TabPanel","add","_unregister","delete","deps","target","i0","ɵɵFactoryTarget","Directive","isStandalone","selector","exportAs","ngImport","decorators","args","_tabs","_unorderedTabs","textDirection","Directionality","valueSignal","sort","tab","orientation","input","wrap","transform","booleanAttribute","softDisabled","focusMode","selectionMode","selectedTab","model","disabled","TabListPattern","items","activeItem","_hasFocused","constructor","afterRenderEffect","setDefaultState","value","open","_onFocus","ngOnInit","ngOnDestroy","inputs","classPropertyName","publicName","isSignal","isRequired","transformFunction","outputs","host","attributes","listeners","properties","Tab","_tabList","id","_IdGenerator","getId","_tablistPattern","_tabpanelPattern","find","required","active","selected","TabPattern","tablist","expanded","_deferredContentAware","DeferredContentAware","_Tabs","_tabPattern","visible","hidden","TabPanelPattern","contentVisible","hostDirectives","directive","i1","TabContent","DeferredContent"],"mappings":"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"}