@radix-ng/primitives 0.8.2 → 0.9.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 (175) hide show
  1. package/accordion/index.d.ts +3 -3
  2. package/accordion/src/accordion-content.directive.d.ts +1 -1
  3. package/accordion/src/accordion-header.directive.d.ts +1 -1
  4. package/accordion/src/accordion-item.directive.d.ts +1 -1
  5. package/accordion/src/accordion-root.directive.d.ts +1 -1
  6. package/accordion/src/accordion-trigger.directive.d.ts +1 -1
  7. package/alert-dialog/index.d.ts +2 -2
  8. package/avatar/index.d.ts +2 -2
  9. package/avatar/src/avatar-fallback.directive.d.ts +3 -3
  10. package/avatar/src/avatar-image.directive.d.ts +6 -6
  11. package/avatar/src/avatar-root.directive.d.ts +4 -4
  12. package/checkbox/index.d.ts +1 -1
  13. package/collapsible/index.d.ts +1 -1
  14. package/collapsible/src/collapsible-content.directive.d.ts +1 -1
  15. package/collapsible/src/collapsible-root.directive.d.ts +1 -1
  16. package/collapsible/src/collapsible-trigger.directive.d.ts +1 -1
  17. package/dropdown-menu/index.d.ts +8 -3
  18. package/dropdown-menu/src/dropdown-menu-content.directive.d.ts +12 -2
  19. package/dropdown-menu/src/dropdown-menu-item-checkbox.directive.d.ts +9 -0
  20. package/dropdown-menu/src/dropdown-menu-item-indicator.directive.d.ts +7 -0
  21. package/dropdown-menu/src/dropdown-menu-item-radio-group.directive.d.ts +12 -0
  22. package/dropdown-menu/src/dropdown-menu-item-radio.directive.d.ts +19 -0
  23. package/dropdown-menu/src/dropdown-menu-item-selectable.d.ts +12 -0
  24. package/dropdown-menu/src/dropdown-menu-item.directive.d.ts +14 -5
  25. package/dropdown-menu/src/dropdown-menu-label.directive.d.ts +1 -1
  26. package/dropdown-menu/src/dropdown-menu-separator.directive.d.ts +2 -2
  27. package/dropdown-menu/src/dropdown-menu-trigger.directive.d.ts +31 -1
  28. package/esm2022/accordion/index.mjs +4 -4
  29. package/esm2022/accordion/src/accordion-content.directive.mjs +7 -9
  30. package/esm2022/accordion/src/accordion-header.directive.mjs +5 -5
  31. package/esm2022/accordion/src/accordion-item.directive.mjs +17 -9
  32. package/esm2022/accordion/src/accordion-root.directive.mjs +5 -5
  33. package/esm2022/accordion/src/accordion-trigger.directive.mjs +5 -5
  34. package/esm2022/alert-dialog/index.mjs +3 -3
  35. package/esm2022/alert-dialog/src/alert-dialog-cancel.directive.mjs +4 -4
  36. package/esm2022/alert-dialog/src/alert-dialog-content.directive.mjs +3 -3
  37. package/esm2022/alert-dialog/src/alert-dialog-root.directive.mjs +5 -4
  38. package/esm2022/alert-dialog/src/alert-dialog-title.directive.mjs +3 -3
  39. package/esm2022/alert-dialog/src/alert-dialog-trigger.directive.mjs +4 -4
  40. package/esm2022/alert-dialog/src/alert-dialog.service.mjs +6 -9
  41. package/esm2022/avatar/index.mjs +1 -1
  42. package/esm2022/avatar/src/avatar-fallback.directive.mjs +6 -6
  43. package/esm2022/avatar/src/avatar-image.directive.mjs +6 -6
  44. package/esm2022/avatar/src/avatar-root.directive.mjs +6 -6
  45. package/esm2022/checkbox/index.mjs +2 -2
  46. package/esm2022/checkbox/src/checkbox-button.directive.mjs +5 -5
  47. package/esm2022/checkbox/src/checkbox-indicator.directive.mjs +4 -4
  48. package/esm2022/checkbox/src/checkbox-input.directive.mjs +5 -5
  49. package/esm2022/checkbox/src/checkbox.directive.mjs +4 -4
  50. package/esm2022/checkbox/src/checkbox.token.mjs +1 -1
  51. package/esm2022/collapsible/index.mjs +2 -2
  52. package/esm2022/collapsible/src/collapsible-content.directive.mjs +13 -7
  53. package/esm2022/collapsible/src/collapsible-root.directive.mjs +5 -5
  54. package/esm2022/collapsible/src/collapsible-trigger.directive.mjs +5 -5
  55. package/esm2022/dropdown-menu/index.mjs +9 -4
  56. package/esm2022/dropdown-menu/src/dropdown-menu-content.directive.mjs +35 -10
  57. package/esm2022/dropdown-menu/src/dropdown-menu-item-checkbox.directive.mjs +36 -0
  58. package/esm2022/dropdown-menu/src/dropdown-menu-item-indicator.directive.mjs +22 -0
  59. package/esm2022/dropdown-menu/src/dropdown-menu-item-radio-group.directive.mjs +37 -0
  60. package/esm2022/dropdown-menu/src/dropdown-menu-item-radio.directive.mjs +64 -0
  61. package/esm2022/dropdown-menu/src/dropdown-menu-item-selectable.mjs +31 -0
  62. package/esm2022/dropdown-menu/src/dropdown-menu-item.directive.mjs +58 -17
  63. package/esm2022/dropdown-menu/src/dropdown-menu-label.directive.mjs +5 -5
  64. package/esm2022/dropdown-menu/src/dropdown-menu-separator.directive.mjs +8 -8
  65. package/esm2022/dropdown-menu/src/dropdown-menu-trigger.directive.mjs +128 -12
  66. package/esm2022/label/index.mjs +2 -2
  67. package/esm2022/label/src/label.directive.mjs +54 -0
  68. package/esm2022/menu/index.mjs +7 -7
  69. package/esm2022/menu/src/menu-content.directive.mjs +3 -3
  70. package/esm2022/menu/src/menu-directive.mjs +3 -3
  71. package/esm2022/menu/src/menu-group.directive.mjs +3 -3
  72. package/esm2022/menu/src/menu-item.directive.mjs +8 -4
  73. package/esm2022/menu/src/menu-label.directive.mjs +3 -3
  74. package/esm2022/menu/src/menu-separator.directive.mjs +4 -4
  75. package/esm2022/menubar/index.mjs +7 -7
  76. package/esm2022/menubar/src/menubar-content.directive.mjs +3 -3
  77. package/esm2022/menubar/src/menubar-item-checkbox.directive.mjs +4 -4
  78. package/esm2022/menubar/src/menubar-item-indicator.directive.mjs +3 -3
  79. package/esm2022/menubar/src/menubar-item-radio.directive.mjs +4 -4
  80. package/esm2022/menubar/src/menubar-item.directive.mjs +4 -4
  81. package/esm2022/menubar/src/menubar-radio-group.directive.mjs +3 -3
  82. package/esm2022/menubar/src/menubar-root.directive.mjs +3 -3
  83. package/esm2022/menubar/src/menubar-separator.directive.mjs +4 -4
  84. package/esm2022/menubar/src/menubar-trigger.directive.mjs +4 -4
  85. package/esm2022/progress/src/progress-indicator.directive.mjs +19 -9
  86. package/esm2022/progress/src/progress-root.directive.mjs +63 -7
  87. package/esm2022/radio/src/radio-indicator.directive.mjs +4 -4
  88. package/esm2022/radio/src/radio-item.directive.mjs +4 -8
  89. package/esm2022/radio/src/radio-root.directive.mjs +5 -9
  90. package/esm2022/separator/src/separator.directive.mjs +3 -3
  91. package/esm2022/switch/index.mjs +29 -4
  92. package/esm2022/switch/src/switch-input.directive.mjs +6 -6
  93. package/esm2022/switch/src/switch-root.directive.mjs +7 -7
  94. package/esm2022/switch/src/switch-thumb.directive.mjs +6 -6
  95. package/esm2022/tabs/index.mjs +7 -7
  96. package/esm2022/tabs/src/tabs-content.directive.mjs +5 -5
  97. package/esm2022/tabs/src/tabs-context.service.mjs +3 -3
  98. package/esm2022/tabs/src/tabs-list.directive.mjs +5 -5
  99. package/esm2022/tabs/src/tabs-root.directive.mjs +5 -5
  100. package/esm2022/tabs/src/tabs-trigger.directive.mjs +5 -5
  101. package/esm2022/toggle/index.mjs +2 -2
  102. package/esm2022/toggle/src/toggle.directive.mjs +39 -0
  103. package/esm2022/toggle-group/src/toggle-group-button.directive.mjs +6 -14
  104. package/esm2022/toggle-group/src/toggle-group-button.token.mjs +1 -1
  105. package/esm2022/toggle-group/src/toggle-group-multi.directive.mjs +6 -32
  106. package/esm2022/toggle-group/src/toggle-group.directive.mjs +5 -25
  107. package/esm2022/toggle-group/src/toggle-group.token.mjs +1 -1
  108. package/fesm2022/radix-ng-primitives-accordion.mjs +73 -67
  109. package/fesm2022/radix-ng-primitives-accordion.mjs.map +1 -1
  110. package/fesm2022/radix-ng-primitives-alert-dialog.mjs +49 -51
  111. package/fesm2022/radix-ng-primitives-alert-dialog.mjs.map +1 -1
  112. package/fesm2022/radix-ng-primitives-avatar.mjs +15 -15
  113. package/fesm2022/radix-ng-primitives-avatar.mjs.map +1 -1
  114. package/fesm2022/radix-ng-primitives-checkbox.mjs +43 -43
  115. package/fesm2022/radix-ng-primitives-checkbox.mjs.map +1 -1
  116. package/fesm2022/radix-ng-primitives-collapsible.mjs +20 -14
  117. package/fesm2022/radix-ng-primitives-collapsible.mjs.map +1 -1
  118. package/fesm2022/radix-ng-primitives-dropdown-menu.mjs +397 -47
  119. package/fesm2022/radix-ng-primitives-dropdown-menu.mjs.map +1 -1
  120. package/fesm2022/radix-ng-primitives-label.mjs +17 -10
  121. package/fesm2022/radix-ng-primitives-label.mjs.map +1 -1
  122. package/fesm2022/radix-ng-primitives-menu.mjs +26 -22
  123. package/fesm2022/radix-ng-primitives-menu.mjs.map +1 -1
  124. package/fesm2022/radix-ng-primitives-menubar.mjs +31 -31
  125. package/fesm2022/radix-ng-primitives-menubar.mjs.map +1 -1
  126. package/fesm2022/radix-ng-primitives-progress.mjs +80 -14
  127. package/fesm2022/radix-ng-primitives-progress.mjs.map +1 -1
  128. package/fesm2022/radix-ng-primitives-radio.mjs +10 -14
  129. package/fesm2022/radix-ng-primitives-radio.mjs.map +1 -1
  130. package/fesm2022/radix-ng-primitives-separator.mjs +3 -3
  131. package/fesm2022/radix-ng-primitives-switch.mjs +53 -31
  132. package/fesm2022/radix-ng-primitives-switch.mjs.map +1 -1
  133. package/fesm2022/radix-ng-primitives-tabs.mjs +23 -23
  134. package/fesm2022/radix-ng-primitives-tabs.mjs.map +1 -1
  135. package/fesm2022/radix-ng-primitives-toggle-group.mjs +14 -64
  136. package/fesm2022/radix-ng-primitives-toggle-group.mjs.map +1 -1
  137. package/fesm2022/radix-ng-primitives-toggle.mjs +18 -28
  138. package/fesm2022/radix-ng-primitives-toggle.mjs.map +1 -1
  139. package/label/index.d.ts +1 -1
  140. package/label/src/label.directive.d.ts +23 -0
  141. package/menu/index.d.ts +2 -2
  142. package/menubar/index.d.ts +2 -2
  143. package/package.json +1 -7
  144. package/progress/src/progress-indicator.directive.d.ts +12 -2
  145. package/progress/src/progress-root.directive.d.ts +38 -4
  146. package/radio/src/radio-item.directive.d.ts +1 -2
  147. package/radio/src/radio-root.directive.d.ts +1 -2
  148. package/switch/index.d.ts +11 -3
  149. package/switch/src/switch-input.directive.d.ts +1 -1
  150. package/switch/src/switch-root.directive.d.ts +1 -1
  151. package/switch/src/switch-thumb.directive.d.ts +1 -1
  152. package/tabs/index.d.ts +2 -2
  153. package/tabs/src/tabs-content.directive.d.ts +1 -1
  154. package/tabs/src/tabs-list.directive.d.ts +1 -1
  155. package/tabs/src/tabs-root.directive.d.ts +1 -1
  156. package/tabs/src/tabs-trigger.directive.d.ts +1 -1
  157. package/toggle/index.d.ts +2 -2
  158. package/toggle/src/toggle.directive.d.ts +30 -0
  159. package/toggle-group/src/toggle-group-button.directive.d.ts +1 -7
  160. package/toggle-group/src/toggle-group-multi.directive.d.ts +3 -13
  161. package/toggle-group/src/toggle-group.directive.d.ts +3 -9
  162. package/esm2022/label/src/label-root.directive.mjs +0 -47
  163. package/esm2022/roving-focus/index.mjs +0 -3
  164. package/esm2022/roving-focus/radix-ng-primitives-roving-focus.mjs +0 -5
  165. package/esm2022/roving-focus/src/roving-focus-group.directive.mjs +0 -109
  166. package/esm2022/roving-focus/src/roving-focus-item.directive.mjs +0 -86
  167. package/esm2022/toggle/src/toggle-root.directive.mjs +0 -49
  168. package/fesm2022/radix-ng-primitives-roving-focus.mjs +0 -198
  169. package/fesm2022/radix-ng-primitives-roving-focus.mjs.map +0 -1
  170. package/label/src/label-root.directive.d.ts +0 -14
  171. package/roving-focus/README.md +0 -1
  172. package/roving-focus/index.d.ts +0 -2
  173. package/roving-focus/src/roving-focus-group.directive.d.ts +0 -53
  174. package/roving-focus/src/roving-focus-item.directive.d.ts +0 -50
  175. package/toggle/src/toggle-root.directive.d.ts +0 -32
@@ -1,109 +0,0 @@
1
- import { FocusKeyManager } from '@angular/cdk/a11y';
2
- import { Directionality } from '@angular/cdk/bidi';
3
- import { booleanAttribute, DestroyRef, Directive, inject, InjectionToken, Input, QueryList } from '@angular/core';
4
- import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
5
- import { filter } from 'rxjs';
6
- import * as i0 from "@angular/core";
7
- const RdxRovingFocusGroupToken = new InjectionToken('RdxRovingFocusToken');
8
- export function injectRovingFocusGroup() {
9
- return inject(RdxRovingFocusGroupToken);
10
- }
11
- export class RdxRovingFocusGroupDirective {
12
- constructor() {
13
- this.directionality = inject(Directionality);
14
- this.destroyRef = inject(DestroyRef);
15
- /**
16
- * Create a query list of all the roving focus items.
17
- * We don't use ContentChildren as dynamically added items may not be in the correct order.
18
- */
19
- this.items = new QueryList();
20
- this.keyManager = new FocusKeyManager(this.items);
21
- /**
22
- * Determine the orientation of the roving focus group.
23
- * @default vertical
24
- */
25
- this.orientation = 'vertical';
26
- /**
27
- * Determine if focus should wrap when the end or beginning is reached.
28
- * @default true
29
- */
30
- this.wrap = true;
31
- }
32
- ngOnInit() {
33
- this.keyManager.withWrap(this.wrap);
34
- this.setOrientation(this.orientation);
35
- this.directionality.change
36
- .pipe(filter(() => this.orientation === 'horizontal'), takeUntilDestroyed(this.destroyRef))
37
- .subscribe((direction) => this.keyManager.withHorizontalOrientation(direction));
38
- }
39
- ngOnChanges(changes) {
40
- if ('orientation' in changes) {
41
- this.setOrientation(this.orientation);
42
- }
43
- if ('wrap' in changes) {
44
- this.keyManager.withWrap(this.wrap);
45
- }
46
- }
47
- ngOnDestroy() {
48
- this.keyManager.destroy();
49
- }
50
- /**
51
- * Register a roving focus item.
52
- * @param item The roving focus item to register.
53
- */
54
- register(item) {
55
- this.items.reset([...this.items.toArray(), item].sort((a, b) => a.order - b.order));
56
- if (this.items.length === 1) {
57
- this.keyManager.updateActiveItem(item);
58
- }
59
- }
60
- /**
61
- * Unregister a roving focus item.
62
- * @param item The roving focus item to unregister.
63
- */
64
- unregister(item) {
65
- const isActive = this.keyManager.activeItem === item;
66
- this.items.reset(this.items.toArray().filter((i) => i !== item));
67
- if (isActive) {
68
- this.keyManager.updateActiveItem(0);
69
- }
70
- }
71
- /**
72
- * Handle key events on the roving focus items.
73
- * @param event The key event.
74
- * @internal
75
- */
76
- onKeydown(event) {
77
- this.keyManager.onKeydown(event);
78
- }
79
- /**
80
- * Set the orientation of the roving focus group.
81
- * @param orientation The orientation of the roving focus group.
82
- */
83
- setOrientation(orientation) {
84
- this.orientation = orientation;
85
- if (orientation === 'horizontal') {
86
- this.keyManager.withHorizontalOrientation(this.directionality.value);
87
- }
88
- else {
89
- this.keyManager.withVerticalOrientation();
90
- }
91
- }
92
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: RdxRovingFocusGroupDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
93
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.0.4", type: RdxRovingFocusGroupDirective, isStandalone: true, selector: "[rdxRovingFocusGroup]", inputs: { orientation: ["rdxRovingFocusGroupOrientation", "orientation"], wrap: ["rdxRovingFocusGroupWrap", "wrap", booleanAttribute] }, providers: [{ provide: RdxRovingFocusGroupToken, useExisting: RdxRovingFocusGroupDirective }], usesOnChanges: true, ngImport: i0 }); }
94
- }
95
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: RdxRovingFocusGroupDirective, decorators: [{
96
- type: Directive,
97
- args: [{
98
- selector: '[rdxRovingFocusGroup]',
99
- standalone: true,
100
- providers: [{ provide: RdxRovingFocusGroupToken, useExisting: RdxRovingFocusGroupDirective }]
101
- }]
102
- }], propDecorators: { orientation: [{
103
- type: Input,
104
- args: [{ alias: 'rdxRovingFocusGroupOrientation' }]
105
- }], wrap: [{
106
- type: Input,
107
- args: [{ alias: 'rdxRovingFocusGroupWrap', transform: booleanAttribute }]
108
- }] } });
109
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm92aW5nLWZvY3VzLWdyb3VwLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvcm92aW5nLWZvY3VzL3NyYy9yb3ZpbmctZm9jdXMtZ3JvdXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUNILGdCQUFnQixFQUNoQixVQUFVLEVBQ1YsU0FBUyxFQUNULE1BQU0sRUFDTixjQUFjLEVBQ2QsS0FBSyxFQUlMLFNBQVMsRUFFWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQU05QixNQUFNLHdCQUF3QixHQUFHLElBQUksY0FBYyxDQUMvQyxxQkFBcUIsQ0FDeEIsQ0FBQztBQUVGLE1BQU0sVUFBVSxzQkFBc0I7SUFDbEMsT0FBTyxNQUFNLENBQUMsd0JBQXdCLENBQUMsQ0FBQztBQUM1QyxDQUFDO0FBT0QsTUFBTSxPQUFPLDRCQUE0QjtJQUx6QztRQU1xQixtQkFBYyxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUV4QyxlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRWpEOzs7V0FHRztRQUNjLFVBQUssR0FBRyxJQUFJLFNBQVMsRUFBK0IsQ0FBQztRQUU3RCxlQUFVLEdBQUcsSUFBSSxlQUFlLENBQThCLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVuRjs7O1dBR0c7UUFDaUQsZ0JBQVcsR0FBZ0IsVUFBVSxDQUFDO1FBRTFGOzs7V0FHRztRQUN1RSxTQUFJLEdBQUcsSUFBSSxDQUFDO0tBNkV6RjtJ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LDRCQUE0QixFQUFFLENBQUM7OzJGQUVwRiw0QkFBNEI7a0JBTHhDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHVCQUF1QjtvQkFDakMsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLFdBQVcsOEJBQThCLEVBQUUsQ0FBQztpQkFDaEc7OEJBa0J1RCxXQUFXO3NCQUE5RCxLQUFLO3VCQUFDLEVBQUUsS0FBSyxFQUFFLGdDQUFnQyxFQUFFO2dCQU13QixJQUFJO3NCQUE3RSxLQUFLO3VCQUFDLEVBQUUsS0FBSyxFQUFFLHlCQUF5QixFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvY3VzS2V5TWFuYWdlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IERpcmVjdGlvbmFsaXR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2JpZGknO1xuaW1wb3J0IHtcbiAgICBib29sZWFuQXR0cmlidXRlLFxuICAgIERlc3Ryb3lSZWYsXG4gICAgRGlyZWN0aXZlLFxuICAgIGluamVjdCxcbiAgICBJbmplY3Rpb25Ub2tlbixcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBRdWVyeUxpc3QsXG4gICAgU2ltcGxlQ2hhbmdlc1xufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgdHlwZSB7IFJkeFJvdmluZ0ZvY3VzSXRlbURpcmVjdGl2ZSB9IGZyb20gJy4vcm92aW5nLWZvY3VzLWl0ZW0uZGlyZWN0aXZlJztcblxuZXhwb3J0IHR5cGUgT3JpZW50YXRpb24gPSAnaG9yaXpvbnRhbCcgfCAndmVydGljYWwnO1xuXG5jb25zdCBSZHhSb3ZpbmdGb2N1c0dyb3VwVG9rZW4gPSBuZXcgSW5qZWN0aW9uVG9rZW48UmR4Um92aW5nRm9jdXNHcm91cERpcmVjdGl2ZT4oXG4gICAgJ1JkeFJvdmluZ0ZvY3VzVG9rZW4nXG4pO1xuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0Um92aW5nRm9jdXNHcm91cCgpOiBSZHhSb3ZpbmdGb2N1c0dyb3VwRGlyZWN0aXZlIHtcbiAgICByZXR1cm4gaW5qZWN0KFJkeFJvdmluZ0ZvY3VzR3JvdXBUb2tlbik7XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3JkeFJvdmluZ0ZvY3VzR3JvdXBdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogUmR4Um92aW5nRm9jdXNHcm91cFRva2VuLCB1c2VFeGlzdGluZzogUmR4Um92aW5nRm9jdXNHcm91cERpcmVjdGl2ZSB9XVxufSlcbmV4cG9ydCBjbGFzcyBSZHhSb3ZpbmdGb2N1c0dyb3VwRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBkaXJlY3Rpb25hbGl0eSA9IGluamVjdChEaXJlY3Rpb25hbGl0eSk7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGUgYSBxdWVyeSBsaXN0IG9mIGFsbCB0aGUgcm92aW5nIGZvY3VzIGl0ZW1zLlxuICAgICAqIFdlIGRvbid0IHVzZSBDb250ZW50Q2hpbGRyZW4gYXMgZHluYW1pY2FsbHkgYWRkZWQgaXRlbXMgbWF5IG5vdCBiZSBpbiB0aGUgY29ycmVjdCBvcmRlci5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGl0ZW1zID0gbmV3IFF1ZXJ5TGlzdDxSZHhSb3ZpbmdGb2N1c0l0ZW1EaXJlY3RpdmU+KCk7XG5cbiAgICByZWFkb25seSBrZXlNYW5hZ2VyID0gbmV3IEZvY3VzS2V5TWFuYWdlcjxSZHhSb3ZpbmdGb2N1c0l0ZW1EaXJlY3RpdmU+KHRoaXMuaXRlbXMpO1xuXG4gICAgLyoqXG4gICAgICogRGV0ZXJtaW5lIHRoZSBvcmllbnRhdGlvbiBvZiB0aGUgcm92aW5nIGZvY3VzIGdyb3VwLlxuICAgICAqIEBkZWZhdWx0IHZlcnRpY2FsXG4gICAgICovXG4gICAgQElucHV0KHsgYWxpYXM6ICdyZHhSb3ZpbmdGb2N1c0dyb3VwT3JpZW50YXRpb24nIH0pIG9yaWVudGF0aW9uOiBPcmllbnRhdGlvbiA9ICd2ZXJ0aWNhbCc7XG5cbiAgICAvKipcbiAgICAgKiBEZXRlcm1pbmUgaWYgZm9jdXMgc2hvdWxkIHdyYXAgd2hlbiB0aGUgZW5kIG9yIGJlZ2lubmluZyBpcyByZWFjaGVkLlxuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKi9cbiAgICBASW5wdXQoeyBhbGlhczogJ3JkeFJvdmluZ0ZvY3VzR3JvdXBXcmFwJywgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHdyYXAgPSB0cnVlO1xuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMua2V5TWFuYWdlci53aXRoV3JhcCh0aGlzLndyYXApO1xuXG4gICAgICAgIHRoaXMuc2V0T3JpZW50YXRpb24odGhpcy5vcmllbnRhdGlvbik7XG5cbiAgICAgICAgdGhpcy5kaXJlY3Rpb25hbGl0eS5jaGFuZ2VcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIGZpbHRlcigoKSA9PiB0aGlzLm9yaWVudGF0aW9uID09PSAnaG9yaXpvbnRhbCcpLFxuICAgICAgICAgICAgICAgIHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChkaXJlY3Rpb24pID0+IHRoaXMua2V5TWFuYWdlci53aXRoSG9yaXpvbnRhbE9yaWVudGF0aW9uKGRpcmVjdGlvbikpO1xuICAgIH1cblxuICAgIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICAgICAgaWYgKCdvcmllbnRhdGlvbicgaW4gY2hhbmdlcykge1xuICAgICAgICAgICAgdGhpcy5zZXRPcmllbnRhdGlvbih0aGlzLm9yaWVudGF0aW9uKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICgnd3JhcCcgaW4gY2hhbmdlcykge1xuICAgICAgICAgICAgdGhpcy5rZXlNYW5hZ2VyLndpdGhXcmFwKHRoaXMud3JhcCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5rZXlNYW5hZ2VyLmRlc3Ryb3koKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZWdpc3RlciBhIHJvdmluZyBmb2N1cyBpdGVtLlxuICAgICAqIEBwYXJhbSBpdGVtIFRoZSByb3ZpbmcgZm9jdXMgaXRlbSB0byByZWdpc3Rlci5cbiAgICAgKi9cbiAgICByZWdpc3RlcihpdGVtOiBSZHhSb3ZpbmdGb2N1c0l0ZW1EaXJlY3RpdmUpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5pdGVtcy5yZXNldChbLi4udGhpcy5pdGVtcy50b0FycmF5KCksIGl0ZW1dLnNvcnQoKGEsIGIpID0+IGEub3JkZXIgLSBiLm9yZGVyKSk7XG5cbiAgICAgICAgaWYgKHRoaXMuaXRlbXMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICB0aGlzLmtleU1hbmFnZXIudXBkYXRlQWN0aXZlSXRlbShpdGVtKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVucmVnaXN0ZXIgYSByb3ZpbmcgZm9jdXMgaXRlbS5cbiAgICAgKiBAcGFyYW0gaXRlbSBUaGUgcm92aW5nIGZvY3VzIGl0ZW0gdG8gdW5yZWdpc3Rlci5cbiAgICAgKi9cbiAgICB1bnJlZ2lzdGVyKGl0ZW06IFJkeFJvdmluZ0ZvY3VzSXRlbURpcmVjdGl2ZSk6IHZvaWQge1xuICAgICAgICBjb25zdCBpc0FjdGl2ZSA9IHRoaXMua2V5TWFuYWdlci5hY3RpdmVJdGVtID09PSBpdGVtO1xuXG4gICAgICAgIHRoaXMuaXRlbXMucmVzZXQodGhpcy5pdGVtcy50b0FycmF5KCkuZmlsdGVyKChpKSA9PiBpICE9PSBpdGVtKSk7XG5cbiAgICAgICAgaWYgKGlzQWN0aXZlKSB7XG4gICAgICAgICAgICB0aGlzLmtleU1hbmFnZXIudXBkYXRlQWN0aXZlSXRlbSgwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEhhbmRsZSBrZXkgZXZlbnRzIG9uIHRoZSByb3ZpbmcgZm9jdXMgaXRlbXMuXG4gICAgICogQHBhcmFtIGV2ZW50IFRoZSBrZXkgZXZlbnQuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgb25LZXlkb3duKGV2ZW50OiBLZXlib2FyZEV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMua2V5TWFuYWdlci5vbktleWRvd24oZXZlbnQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNldCB0aGUgb3JpZW50YXRpb24gb2YgdGhlIHJvdmluZyBmb2N1cyBncm91cC5cbiAgICAgKiBAcGFyYW0gb3JpZW50YXRpb24gVGhlIG9yaWVudGF0aW9uIG9mIHRoZSByb3ZpbmcgZm9jdXMgZ3JvdXAuXG4gICAgICovXG4gICAgc2V0T3JpZW50YXRpb24ob3JpZW50YXRpb246IE9yaWVudGF0aW9uKTogdm9pZCB7XG4gICAgICAgIHRoaXMub3JpZW50YXRpb24gPSBvcmllbnRhdGlvbjtcblxuICAgICAgICBpZiAob3JpZW50YXRpb24gPT09ICdob3Jpem9udGFsJykge1xuICAgICAgICAgICAgdGhpcy5rZXlNYW5hZ2VyLndpdGhIb3Jpem9udGFsT3JpZW50YXRpb24odGhpcy5kaXJlY3Rpb25hbGl0eS52YWx1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmtleU1hbmFnZXIud2l0aFZlcnRpY2FsT3JpZW50YXRpb24oKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -1,86 +0,0 @@
1
- import { booleanAttribute, ChangeDetectorRef, DestroyRef, Directive, ElementRef, inject, InjectionToken, Input, numberAttribute } from '@angular/core';
2
- import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
3
- import { injectRovingFocusGroup } from './roving-focus-group.directive';
4
- import * as i0 from "@angular/core";
5
- const RdxRovingFocusItemToken = new InjectionToken('RdxRovingFocusItemToken');
6
- export function injectRovingFocusItem() {
7
- return inject(RdxRovingFocusItemToken);
8
- }
9
- export class RdxRovingFocusItemDirective {
10
- constructor() {
11
- /**
12
- * Access the group the roving focus item belongs to.
13
- */
14
- this.group = injectRovingFocusGroup();
15
- /**
16
- * Access the element reference of the roving focus item.
17
- */
18
- this.elementRef = inject((ElementRef));
19
- /**
20
- * Access the destroyRef
21
- */
22
- this.destroyRef = inject(DestroyRef);
23
- /**
24
- * Access the change detector ref
25
- */
26
- this.changeDetectorRef = inject(ChangeDetectorRef);
27
- /**
28
- * Define the order of the roving focus item in the group.
29
- */
30
- this.order = 0;
31
- /**
32
- * Define if the item is disabled.
33
- */
34
- this.disabled = false;
35
- }
36
- ngOnInit() {
37
- this.group.register(this);
38
- this.group.keyManager.change
39
- .pipe(takeUntilDestroyed(this.destroyRef))
40
- .subscribe(() => this.changeDetectorRef.markForCheck());
41
- }
42
- ngOnDestroy() {
43
- this.group.unregister(this);
44
- }
45
- /**
46
- * Handle key events on the roving focus item.
47
- * @param event The key event.
48
- */
49
- _onKeydown(event) {
50
- this.group.onKeydown(event);
51
- }
52
- /**
53
- * Derive the tabindex of the roving focus item.
54
- */
55
- _tabindex() {
56
- return this.group.keyManager.activeItem === this ? 0 : -1;
57
- }
58
- /**
59
- * Focus the roving focus item.
60
- * @internal
61
- */
62
- focus() {
63
- this.elementRef?.nativeElement.focus();
64
- }
65
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: RdxRovingFocusItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
66
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.0.4", type: RdxRovingFocusItemDirective, isStandalone: true, selector: "[rdxRovingFocusItem]", inputs: { order: ["order", "order", numberAttribute], disabled: ["disabled", "disabled", booleanAttribute] }, host: { listeners: { "onKeydown": "_onKeydown($event)" }, properties: { "attr.tabindex": "_tabindex()" } }, providers: [{ provide: RdxRovingFocusItemToken, useExisting: RdxRovingFocusItemDirective }], ngImport: i0 }); }
67
- }
68
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: RdxRovingFocusItemDirective, decorators: [{
69
- type: Directive,
70
- args: [{
71
- selector: '[rdxRovingFocusItem]',
72
- standalone: true,
73
- host: {
74
- '(onKeydown)': '_onKeydown($event)',
75
- '[attr.tabindex]': '_tabindex()'
76
- },
77
- providers: [{ provide: RdxRovingFocusItemToken, useExisting: RdxRovingFocusItemDirective }]
78
- }]
79
- }], propDecorators: { order: [{
80
- type: Input,
81
- args: [{ transform: numberAttribute }]
82
- }], disabled: [{
83
- type: Input,
84
- args: [{ transform: booleanAttribute }]
85
- }] } });
86
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm92aW5nLWZvY3VzLWl0ZW0uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcHJpbWl0aXZlcy9yb3ZpbmctZm9jdXMvc3JjL3JvdmluZy1mb2N1cy1pdGVtLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0gsZ0JBQWdCLEVBQ2hCLGlCQUFpQixFQUNqQixVQUFVLEVBQ1YsU0FBUyxFQUNULFVBQVUsRUFDVixNQUFNLEVBQ04sY0FBYyxFQUNkLEtBQUssRUFDTCxlQUFlLEVBR2xCLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBRWhFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLGdDQUFnQyxDQUFDOztBQUV4RSxNQUFNLHVCQUF1QixHQUFHLElBQUksY0FBYyxDQUM5Qyx5QkFBeUIsQ0FDNUIsQ0FBQztBQUVGLE1BQU0sVUFBVSxxQkFBcUI7SUFDakMsT0FBTyxNQUFNLENBQUMsdUJBQXVCLENBQUMsQ0FBQztBQUMzQyxDQUFDO0FBV0QsTUFBTSxPQUFPLDJCQUEyQjtJQVR4QztRQVVJOztXQUVHO1FBQ2MsVUFBSyxHQUFHLHNCQUFzQixFQUFFLENBQUM7UUFFbEQ7O1dBRUc7UUFDYyxlQUFVLEdBQUcsTUFBTSxDQUFDLENBQUEsVUFBdUIsQ0FBQSxDQUFDLENBQUM7UUFFOUQ7O1dBRUc7UUFDYyxlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRWpEOztXQUVHO1FBQ2Msc0JBQWlCLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFL0Q7O1dBRUc7UUFDb0MsVUFBSyxHQUFHLENBQUMsQ0FBQztRQUVqRDs7V0FFRztRQUNxQyxhQUFRLEdBQUcsS0FBSyxDQUFDO0tBb0M1RDtJQWxDRyxRQUFRO1FBQ0osSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFMUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsTUFBTTthQUN2QixJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQ3pDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsWUFBWSxFQUFFLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxVQUFVLENBQUMsS0FBb0I7UUFDM0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsU0FBUztRQUNMLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsVUFBVSxLQUFLLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsS0FBSztRQUNELElBQUksQ0FBQyxVQUFVLEVBQUUsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzNDLENBQUM7OEdBaEVRLDJCQUEyQjtrR0FBM0IsMkJBQTJCLDRGQXdCaEIsZUFBZSxzQ0FLZixnQkFBZ0IsNEhBL0J6QixDQUFDLEVBQUUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLFdBQVcsRUFBRSwyQkFBMkIsRUFBRSxDQUFDOzsyRkFFbEYsMkJBQTJCO2tCQVR2QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxzQkFBc0I7b0JBQ2hDLFVBQVUsRUFBRSxJQUFJO29CQUNoQixJQUFJLEVBQUU7d0JBQ0YsYUFBYSxFQUFFLG9CQUFvQjt3QkFDbkMsaUJBQWlCLEVBQUUsYUFBYTtxQkFDbkM7b0JBQ0QsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsV0FBVyw2QkFBNkIsRUFBRSxDQUFDO2lCQUM5Rjs4QkF5QjBDLEtBQUs7c0JBQTNDLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO2dCQUtHLFFBQVE7c0JBQS9DLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBGb2N1c2FibGVPcHRpb24gfSBmcm9tICdAYW5ndWxhci9jZGsvYTExeSc7XG5pbXBvcnQge1xuICAgIGJvb2xlYW5BdHRyaWJ1dGUsXG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgRGVzdHJveVJlZixcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBpbmplY3QsXG4gICAgSW5qZWN0aW9uVG9rZW4sXG4gICAgSW5wdXQsXG4gICAgbnVtYmVyQXR0cmlidXRlLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5cbmltcG9ydCB7IGluamVjdFJvdmluZ0ZvY3VzR3JvdXAgfSBmcm9tICcuL3JvdmluZy1mb2N1cy1ncm91cC5kaXJlY3RpdmUnO1xuXG5jb25zdCBSZHhSb3ZpbmdGb2N1c0l0ZW1Ub2tlbiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxSZHhSb3ZpbmdGb2N1c0l0ZW1EaXJlY3RpdmU+KFxuICAgICdSZHhSb3ZpbmdGb2N1c0l0ZW1Ub2tlbidcbik7XG5cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RSb3ZpbmdGb2N1c0l0ZW0oKTogUmR4Um92aW5nRm9jdXNJdGVtRGlyZWN0aXZlIHtcbiAgICByZXR1cm4gaW5qZWN0KFJkeFJvdmluZ0ZvY3VzSXRlbVRva2VuKTtcbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbcmR4Um92aW5nRm9jdXNJdGVtXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBob3N0OiB7XG4gICAgICAgICcob25LZXlkb3duKSc6ICdfb25LZXlkb3duKCRldmVudCknLFxuICAgICAgICAnW2F0dHIudGFiaW5kZXhdJzogJ190YWJpbmRleCgpJ1xuICAgIH0sXG4gICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBSZHhSb3ZpbmdGb2N1c0l0ZW1Ub2tlbiwgdXNlRXhpc3Rpbmc6IFJkeFJvdmluZ0ZvY3VzSXRlbURpcmVjdGl2ZSB9XVxufSlcbmV4cG9ydCBjbGFzcyBSZHhSb3ZpbmdGb2N1c0l0ZW1EaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSwgRm9jdXNhYmxlT3B0aW9uIHtcbiAgICAvKipcbiAgICAgKiBBY2Nlc3MgdGhlIGdyb3VwIHRoZSByb3ZpbmcgZm9jdXMgaXRlbSBiZWxvbmdzIHRvLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZ3JvdXAgPSBpbmplY3RSb3ZpbmdGb2N1c0dyb3VwKCk7XG5cbiAgICAvKipcbiAgICAgKiBBY2Nlc3MgdGhlIGVsZW1lbnQgcmVmZXJlbmNlIG9mIHRoZSByb3ZpbmcgZm9jdXMgaXRlbS5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWYgPSBpbmplY3QoRWxlbWVudFJlZjxIVE1MRWxlbWVudD4pO1xuXG4gICAgLyoqXG4gICAgICogQWNjZXNzIHRoZSBkZXN0cm95UmVmXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95UmVmID0gaW5qZWN0KERlc3Ryb3lSZWYpO1xuXG4gICAgLyoqXG4gICAgICogQWNjZXNzIHRoZSBjaGFuZ2UgZGV0ZWN0b3IgcmVmXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBjaGFuZ2VEZXRlY3RvclJlZiA9IGluamVjdChDaGFuZ2VEZXRlY3RvclJlZik7XG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmUgdGhlIG9yZGVyIG9mIHRoZSByb3ZpbmcgZm9jdXMgaXRlbSBpbiB0aGUgZ3JvdXAuXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSkgb3JkZXIgPSAwO1xuXG4gICAgLyoqXG4gICAgICogRGVmaW5lIGlmIHRoZSBpdGVtIGlzIGRpc2FibGVkLlxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZ3JvdXAucmVnaXN0ZXIodGhpcyk7XG5cbiAgICAgICAgdGhpcy5ncm91cC5rZXlNYW5hZ2VyLmNoYW5nZVxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZikpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHRoaXMuY2hhbmdlRGV0ZWN0b3JSZWYubWFya0ZvckNoZWNrKCkpO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmdyb3VwLnVucmVnaXN0ZXIodGhpcyk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSGFuZGxlIGtleSBldmVudHMgb24gdGhlIHJvdmluZyBmb2N1cyBpdGVtLlxuICAgICAqIEBwYXJhbSBldmVudCBUaGUga2V5IGV2ZW50LlxuICAgICAqL1xuICAgIF9vbktleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ncm91cC5vbktleWRvd24oZXZlbnQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlcml2ZSB0aGUgdGFiaW5kZXggb2YgdGhlIHJvdmluZyBmb2N1cyBpdGVtLlxuICAgICAqL1xuICAgIF90YWJpbmRleCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5ncm91cC5rZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0gPT09IHRoaXMgPyAwIDogLTE7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRm9jdXMgdGhlIHJvdmluZyBmb2N1cyBpdGVtLlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIGZvY3VzKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmVsZW1lbnRSZWY/Lm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG59XG4iXX0=
@@ -1,49 +0,0 @@
1
- import { booleanAttribute, Directive, EventEmitter, Input, Output } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- let uniqueId = 0;
4
- export class RdxToggleRootDirective {
5
- constructor() {
6
- this.pressed = false;
7
- this.disabled = false;
8
- this.id = 'rdx-toggle-' + uniqueId++;
9
- /**
10
- * Event emitted when the toggle is pressed.
11
- */
12
- this.onPressedChange = new EventEmitter();
13
- }
14
- toggle() {
15
- if (this.disabled) {
16
- return;
17
- }
18
- this.pressed = !this.pressed;
19
- this.onPressedChange.emit(this.pressed);
20
- }
21
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: RdxToggleRootDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
22
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.0.4", type: RdxToggleRootDirective, isStandalone: true, selector: "button[ToggleRoot]", inputs: { pressed: ["pressed", "pressed", booleanAttribute], disabled: ["disabled", "disabled", booleanAttribute], id: "id" }, outputs: { onPressedChange: "onPressedChange" }, host: { attributes: { "type": "button" }, listeners: { "click": "toggle()" }, properties: { "attr.aria-pressed": "pressed", "attr.data-state": "pressed ? \"on\" : \"off\"", "attr.data-disabled": "disabled" } }, exportAs: ["ToggleRoot"], ngImport: i0 }); }
23
- }
24
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: RdxToggleRootDirective, decorators: [{
25
- type: Directive,
26
- args: [{
27
- selector: 'button[ToggleRoot]',
28
- exportAs: 'ToggleRoot',
29
- standalone: true,
30
- host: {
31
- type: 'button',
32
- '[attr.aria-pressed]': 'pressed',
33
- '[attr.data-state]': 'pressed ? "on" : "off"',
34
- '[attr.data-disabled]': 'disabled',
35
- '(click)': 'toggle()'
36
- }
37
- }]
38
- }], propDecorators: { pressed: [{
39
- type: Input,
40
- args: [{ transform: booleanAttribute }]
41
- }], disabled: [{
42
- type: Input,
43
- args: [{ transform: booleanAttribute }]
44
- }], id: [{
45
- type: Input
46
- }], onPressedChange: [{
47
- type: Output
48
- }] } });
49
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLXJvb3QuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcHJpbWl0aXZlcy90b2dnbGUvc3JjL3RvZ2dsZS1yb290LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUV6RixJQUFJLFFBQVEsR0FBRyxDQUFDLENBQUM7QUFnQ2pCLE1BQU0sT0FBTyxzQkFBc0I7SUFibkM7UUFjNEMsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUVoQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBRWhELE9BQUUsR0FBRyxhQUFhLEdBQUcsUUFBUSxFQUFFLENBQUM7UUFDekM7O1dBRUc7UUFDZ0Isb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO0tBU3BFO0lBUGEsTUFBTTtRQUNaLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2hCLE9BQU87UUFDWCxDQUFDO1FBQ0QsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDN0IsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzVDLENBQUM7OEdBakJRLHNCQUFzQjtrR0FBdEIsc0JBQXNCLGdHQUNYLGdCQUFnQixzQ0FFaEIsZ0JBQWdCOzsyRkFIM0Isc0JBQXNCO2tCQWJsQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxvQkFBb0I7b0JBQzlCLFFBQVEsRUFBRSxZQUFZO29CQUN0QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsSUFBSSxFQUFFO3dCQUNGLElBQUksRUFBRSxRQUFRO3dCQUNkLHFCQUFxQixFQUFFLFNBQVM7d0JBQ2hDLG1CQUFtQixFQUFFLHdCQUF3Qjt3QkFDN0Msc0JBQXNCLEVBQUUsVUFBVTt3QkFFbEMsU0FBUyxFQUFFLFVBQVU7cUJBQ3hCO2lCQUNKOzhCQUUyQyxPQUFPO3NCQUE5QyxLQUFLO3VCQUFDLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFO2dCQUVFLFFBQVE7c0JBQS9DLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBRTdCLEVBQUU7c0JBQVYsS0FBSztnQkFJYSxlQUFlO3NCQUFqQyxNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYm9vbGVhbkF0dHJpYnV0ZSwgRGlyZWN0aXZlLCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxubGV0IHVuaXF1ZUlkID0gMDtcblxuZXhwb3J0IGludGVyZmFjZSBUb2dnbGVQcm9wcyB7XG4gICAgLyoqXG4gICAgICogVGhlIGNvbnRyb2xsZWQgc3RhdGUgb2YgdGhlIHRvZ2dsZS5cbiAgICAgKi9cbiAgICBwcmVzc2VkPzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBUaGUgc3RhdGUgb2YgdGhlIHRvZ2dsZSB3aGVuIGluaXRpYWxseSByZW5kZXJlZC4gVXNlIGBkZWZhdWx0UHJlc3NlZGBcbiAgICAgKiBpZiB5b3UgZG8gbm90IG5lZWQgdG8gY29udHJvbCB0aGUgc3RhdGUgb2YgdGhlIHRvZ2dsZS5cbiAgICAgKiBAZGVmYXVsdFZhbHVlIGZhbHNlXG4gICAgICovXG4gICAgZGVmYXVsdFByZXNzZWQ/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIFRoZSBjYWxsYmFjayB0aGF0IGZpcmVzIHdoZW4gdGhlIHN0YXRlIG9mIHRoZSB0b2dnbGUgY2hhbmdlcy5cbiAgICAgKi9cbiAgICBvblByZXNzZWRDaGFuZ2U/OiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj47XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnYnV0dG9uW1RvZ2dsZVJvb3RdJyxcbiAgICBleHBvcnRBczogJ1RvZ2dsZVJvb3QnLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgaG9zdDoge1xuICAgICAgICB0eXBlOiAnYnV0dG9uJyxcbiAgICAgICAgJ1thdHRyLmFyaWEtcHJlc3NlZF0nOiAncHJlc3NlZCcsXG4gICAgICAgICdbYXR0ci5kYXRhLXN0YXRlXSc6ICdwcmVzc2VkID8gXCJvblwiIDogXCJvZmZcIicsXG4gICAgICAgICdbYXR0ci5kYXRhLWRpc2FibGVkXSc6ICdkaXNhYmxlZCcsXG5cbiAgICAgICAgJyhjbGljayknOiAndG9nZ2xlKCknXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBSZHhUb2dnbGVSb290RGlyZWN0aXZlIGltcGxlbWVudHMgVG9nZ2xlUHJvcHMge1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBwcmVzc2VkID0gZmFsc2U7XG5cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIEBJbnB1dCgpIGlkID0gJ3JkeC10b2dnbGUtJyArIHVuaXF1ZUlkKys7XG4gICAgLyoqXG4gICAgICogRXZlbnQgZW1pdHRlZCB3aGVuIHRoZSB0b2dnbGUgaXMgcHJlc3NlZC5cbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgb25QcmVzc2VkQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxib29sZWFuPigpO1xuXG4gICAgcHJvdGVjdGVkIHRvZ2dsZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnByZXNzZWQgPSAhdGhpcy5wcmVzc2VkO1xuICAgICAgICB0aGlzLm9uUHJlc3NlZENoYW5nZS5lbWl0KHRoaXMucHJlc3NlZCk7XG4gICAgfVxufVxuIl19
@@ -1,198 +0,0 @@
1
- import { FocusKeyManager } from '@angular/cdk/a11y';
2
- import { Directionality } from '@angular/cdk/bidi';
3
- import * as i0 from '@angular/core';
4
- import { InjectionToken, inject, DestroyRef, QueryList, booleanAttribute, Directive, Input, ElementRef, ChangeDetectorRef, numberAttribute } from '@angular/core';
5
- import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
6
- import { filter } from 'rxjs';
7
-
8
- const RdxRovingFocusGroupToken = new InjectionToken('RdxRovingFocusToken');
9
- function injectRovingFocusGroup() {
10
- return inject(RdxRovingFocusGroupToken);
11
- }
12
- class RdxRovingFocusGroupDirective {
13
- constructor() {
14
- this.directionality = inject(Directionality);
15
- this.destroyRef = inject(DestroyRef);
16
- /**
17
- * Create a query list of all the roving focus items.
18
- * We don't use ContentChildren as dynamically added items may not be in the correct order.
19
- */
20
- this.items = new QueryList();
21
- this.keyManager = new FocusKeyManager(this.items);
22
- /**
23
- * Determine the orientation of the roving focus group.
24
- * @default vertical
25
- */
26
- this.orientation = 'vertical';
27
- /**
28
- * Determine if focus should wrap when the end or beginning is reached.
29
- * @default true
30
- */
31
- this.wrap = true;
32
- }
33
- ngOnInit() {
34
- this.keyManager.withWrap(this.wrap);
35
- this.setOrientation(this.orientation);
36
- this.directionality.change
37
- .pipe(filter(() => this.orientation === 'horizontal'), takeUntilDestroyed(this.destroyRef))
38
- .subscribe((direction) => this.keyManager.withHorizontalOrientation(direction));
39
- }
40
- ngOnChanges(changes) {
41
- if ('orientation' in changes) {
42
- this.setOrientation(this.orientation);
43
- }
44
- if ('wrap' in changes) {
45
- this.keyManager.withWrap(this.wrap);
46
- }
47
- }
48
- ngOnDestroy() {
49
- this.keyManager.destroy();
50
- }
51
- /**
52
- * Register a roving focus item.
53
- * @param item The roving focus item to register.
54
- */
55
- register(item) {
56
- this.items.reset([...this.items.toArray(), item].sort((a, b) => a.order - b.order));
57
- if (this.items.length === 1) {
58
- this.keyManager.updateActiveItem(item);
59
- }
60
- }
61
- /**
62
- * Unregister a roving focus item.
63
- * @param item The roving focus item to unregister.
64
- */
65
- unregister(item) {
66
- const isActive = this.keyManager.activeItem === item;
67
- this.items.reset(this.items.toArray().filter((i) => i !== item));
68
- if (isActive) {
69
- this.keyManager.updateActiveItem(0);
70
- }
71
- }
72
- /**
73
- * Handle key events on the roving focus items.
74
- * @param event The key event.
75
- * @internal
76
- */
77
- onKeydown(event) {
78
- this.keyManager.onKeydown(event);
79
- }
80
- /**
81
- * Set the orientation of the roving focus group.
82
- * @param orientation The orientation of the roving focus group.
83
- */
84
- setOrientation(orientation) {
85
- this.orientation = orientation;
86
- if (orientation === 'horizontal') {
87
- this.keyManager.withHorizontalOrientation(this.directionality.value);
88
- }
89
- else {
90
- this.keyManager.withVerticalOrientation();
91
- }
92
- }
93
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: RdxRovingFocusGroupDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
94
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.0.4", type: RdxRovingFocusGroupDirective, isStandalone: true, selector: "[rdxRovingFocusGroup]", inputs: { orientation: ["rdxRovingFocusGroupOrientation", "orientation"], wrap: ["rdxRovingFocusGroupWrap", "wrap", booleanAttribute] }, providers: [{ provide: RdxRovingFocusGroupToken, useExisting: RdxRovingFocusGroupDirective }], usesOnChanges: true, ngImport: i0 }); }
95
- }
96
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: RdxRovingFocusGroupDirective, decorators: [{
97
- type: Directive,
98
- args: [{
99
- selector: '[rdxRovingFocusGroup]',
100
- standalone: true,
101
- providers: [{ provide: RdxRovingFocusGroupToken, useExisting: RdxRovingFocusGroupDirective }]
102
- }]
103
- }], propDecorators: { orientation: [{
104
- type: Input,
105
- args: [{ alias: 'rdxRovingFocusGroupOrientation' }]
106
- }], wrap: [{
107
- type: Input,
108
- args: [{ alias: 'rdxRovingFocusGroupWrap', transform: booleanAttribute }]
109
- }] } });
110
-
111
- const RdxRovingFocusItemToken = new InjectionToken('RdxRovingFocusItemToken');
112
- function injectRovingFocusItem() {
113
- return inject(RdxRovingFocusItemToken);
114
- }
115
- class RdxRovingFocusItemDirective {
116
- constructor() {
117
- /**
118
- * Access the group the roving focus item belongs to.
119
- */
120
- this.group = injectRovingFocusGroup();
121
- /**
122
- * Access the element reference of the roving focus item.
123
- */
124
- this.elementRef = inject((ElementRef));
125
- /**
126
- * Access the destroyRef
127
- */
128
- this.destroyRef = inject(DestroyRef);
129
- /**
130
- * Access the change detector ref
131
- */
132
- this.changeDetectorRef = inject(ChangeDetectorRef);
133
- /**
134
- * Define the order of the roving focus item in the group.
135
- */
136
- this.order = 0;
137
- /**
138
- * Define if the item is disabled.
139
- */
140
- this.disabled = false;
141
- }
142
- ngOnInit() {
143
- this.group.register(this);
144
- this.group.keyManager.change
145
- .pipe(takeUntilDestroyed(this.destroyRef))
146
- .subscribe(() => this.changeDetectorRef.markForCheck());
147
- }
148
- ngOnDestroy() {
149
- this.group.unregister(this);
150
- }
151
- /**
152
- * Handle key events on the roving focus item.
153
- * @param event The key event.
154
- */
155
- _onKeydown(event) {
156
- this.group.onKeydown(event);
157
- }
158
- /**
159
- * Derive the tabindex of the roving focus item.
160
- */
161
- _tabindex() {
162
- return this.group.keyManager.activeItem === this ? 0 : -1;
163
- }
164
- /**
165
- * Focus the roving focus item.
166
- * @internal
167
- */
168
- focus() {
169
- this.elementRef?.nativeElement.focus();
170
- }
171
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: RdxRovingFocusItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
172
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.0.4", type: RdxRovingFocusItemDirective, isStandalone: true, selector: "[rdxRovingFocusItem]", inputs: { order: ["order", "order", numberAttribute], disabled: ["disabled", "disabled", booleanAttribute] }, host: { listeners: { "onKeydown": "_onKeydown($event)" }, properties: { "attr.tabindex": "_tabindex()" } }, providers: [{ provide: RdxRovingFocusItemToken, useExisting: RdxRovingFocusItemDirective }], ngImport: i0 }); }
173
- }
174
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.4", ngImport: i0, type: RdxRovingFocusItemDirective, decorators: [{
175
- type: Directive,
176
- args: [{
177
- selector: '[rdxRovingFocusItem]',
178
- standalone: true,
179
- host: {
180
- '(onKeydown)': '_onKeydown($event)',
181
- '[attr.tabindex]': '_tabindex()'
182
- },
183
- providers: [{ provide: RdxRovingFocusItemToken, useExisting: RdxRovingFocusItemDirective }]
184
- }]
185
- }], propDecorators: { order: [{
186
- type: Input,
187
- args: [{ transform: numberAttribute }]
188
- }], disabled: [{
189
- type: Input,
190
- args: [{ transform: booleanAttribute }]
191
- }] } });
192
-
193
- /**
194
- * Generated bundle index. Do not edit.
195
- */
196
-
197
- export { RdxRovingFocusGroupDirective, RdxRovingFocusItemDirective, injectRovingFocusGroup, injectRovingFocusItem };
198
- //# sourceMappingURL=radix-ng-primitives-roving-focus.mjs.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"radix-ng-primitives-roving-focus.mjs","sources":["../../../packages/primitives/roving-focus/src/roving-focus-group.directive.ts","../../../packages/primitives/roving-focus/src/roving-focus-item.directive.ts","../../../packages/primitives/roving-focus/radix-ng-primitives-roving-focus.ts"],"sourcesContent":["import { FocusKeyManager } from '@angular/cdk/a11y';\nimport { Directionality } from '@angular/cdk/bidi';\nimport {\n booleanAttribute,\n DestroyRef,\n Directive,\n inject,\n InjectionToken,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n QueryList,\n SimpleChanges\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\nimport { filter } from 'rxjs';\n\nimport type { RdxRovingFocusItemDirective } from './roving-focus-item.directive';\n\nexport type Orientation = 'horizontal' | 'vertical';\n\nconst RdxRovingFocusGroupToken = new InjectionToken<RdxRovingFocusGroupDirective>(\n 'RdxRovingFocusToken'\n);\n\nexport function injectRovingFocusGroup(): RdxRovingFocusGroupDirective {\n return inject(RdxRovingFocusGroupToken);\n}\n\n@Directive({\n selector: '[rdxRovingFocusGroup]',\n standalone: true,\n providers: [{ provide: RdxRovingFocusGroupToken, useExisting: RdxRovingFocusGroupDirective }]\n})\nexport class RdxRovingFocusGroupDirective implements OnInit, OnChanges, OnDestroy {\n private readonly directionality = inject(Directionality);\n\n private readonly destroyRef = inject(DestroyRef);\n\n /**\n * Create a query list of all the roving focus items.\n * We don't use ContentChildren as dynamically added items may not be in the correct order.\n */\n private readonly items = new QueryList<RdxRovingFocusItemDirective>();\n\n readonly keyManager = new FocusKeyManager<RdxRovingFocusItemDirective>(this.items);\n\n /**\n * Determine the orientation of the roving focus group.\n * @default vertical\n */\n @Input({ alias: 'rdxRovingFocusGroupOrientation' }) orientation: Orientation = 'vertical';\n\n /**\n * Determine if focus should wrap when the end or beginning is reached.\n * @default true\n */\n @Input({ alias: 'rdxRovingFocusGroupWrap', transform: booleanAttribute }) wrap = true;\n\n ngOnInit(): void {\n this.keyManager.withWrap(this.wrap);\n\n this.setOrientation(this.orientation);\n\n this.directionality.change\n .pipe(\n filter(() => this.orientation === 'horizontal'),\n takeUntilDestroyed(this.destroyRef)\n )\n .subscribe((direction) => this.keyManager.withHorizontalOrientation(direction));\n }\n\n ngOnChanges(changes: SimpleChanges): void {\n if ('orientation' in changes) {\n this.setOrientation(this.orientation);\n }\n\n if ('wrap' in changes) {\n this.keyManager.withWrap(this.wrap);\n }\n }\n\n ngOnDestroy(): void {\n this.keyManager.destroy();\n }\n\n /**\n * Register a roving focus item.\n * @param item The roving focus item to register.\n */\n register(item: RdxRovingFocusItemDirective): void {\n this.items.reset([...this.items.toArray(), item].sort((a, b) => a.order - b.order));\n\n if (this.items.length === 1) {\n this.keyManager.updateActiveItem(item);\n }\n }\n\n /**\n * Unregister a roving focus item.\n * @param item The roving focus item to unregister.\n */\n unregister(item: RdxRovingFocusItemDirective): void {\n const isActive = this.keyManager.activeItem === item;\n\n this.items.reset(this.items.toArray().filter((i) => i !== item));\n\n if (isActive) {\n this.keyManager.updateActiveItem(0);\n }\n }\n\n /**\n * Handle key events on the roving focus items.\n * @param event The key event.\n * @internal\n */\n onKeydown(event: KeyboardEvent): void {\n this.keyManager.onKeydown(event);\n }\n\n /**\n * Set the orientation of the roving focus group.\n * @param orientation The orientation of the roving focus group.\n */\n setOrientation(orientation: Orientation): void {\n this.orientation = orientation;\n\n if (orientation === 'horizontal') {\n this.keyManager.withHorizontalOrientation(this.directionality.value);\n } else {\n this.keyManager.withVerticalOrientation();\n }\n }\n}\n","import { FocusableOption } from '@angular/cdk/a11y';\nimport {\n booleanAttribute,\n ChangeDetectorRef,\n DestroyRef,\n Directive,\n ElementRef,\n inject,\n InjectionToken,\n Input,\n numberAttribute,\n OnDestroy,\n OnInit\n} from '@angular/core';\nimport { takeUntilDestroyed } from '@angular/core/rxjs-interop';\n\nimport { injectRovingFocusGroup } from './roving-focus-group.directive';\n\nconst RdxRovingFocusItemToken = new InjectionToken<RdxRovingFocusItemDirective>(\n 'RdxRovingFocusItemToken'\n);\n\nexport function injectRovingFocusItem(): RdxRovingFocusItemDirective {\n return inject(RdxRovingFocusItemToken);\n}\n\n@Directive({\n selector: '[rdxRovingFocusItem]',\n standalone: true,\n host: {\n '(onKeydown)': '_onKeydown($event)',\n '[attr.tabindex]': '_tabindex()'\n },\n providers: [{ provide: RdxRovingFocusItemToken, useExisting: RdxRovingFocusItemDirective }]\n})\nexport class RdxRovingFocusItemDirective implements OnInit, OnDestroy, FocusableOption {\n /**\n * Access the group the roving focus item belongs to.\n */\n private readonly group = injectRovingFocusGroup();\n\n /**\n * Access the element reference of the roving focus item.\n */\n private readonly elementRef = inject(ElementRef<HTMLElement>);\n\n /**\n * Access the destroyRef\n */\n private readonly destroyRef = inject(DestroyRef);\n\n /**\n * Access the change detector ref\n */\n private readonly changeDetectorRef = inject(ChangeDetectorRef);\n\n /**\n * Define the order of the roving focus item in the group.\n */\n @Input({ transform: numberAttribute }) order = 0;\n\n /**\n * Define if the item is disabled.\n */\n @Input({ transform: booleanAttribute }) disabled = false;\n\n ngOnInit(): void {\n this.group.register(this);\n\n this.group.keyManager.change\n .pipe(takeUntilDestroyed(this.destroyRef))\n .subscribe(() => this.changeDetectorRef.markForCheck());\n }\n\n ngOnDestroy(): void {\n this.group.unregister(this);\n }\n\n /**\n * Handle key events on the roving focus item.\n * @param event The key event.\n */\n _onKeydown(event: KeyboardEvent): void {\n this.group.onKeydown(event);\n }\n\n /**\n * Derive the tabindex of the roving focus item.\n */\n _tabindex(): number {\n return this.group.keyManager.activeItem === this ? 0 : -1;\n }\n\n /**\n * Focus the roving focus item.\n * @internal\n */\n focus(): void {\n this.elementRef?.nativeElement.focus();\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- import * as i0 from "@angular/core";
2
- export declare class RdxLabelRootDirective {
3
- readonly id: import("@angular/core").InputSignal<string>;
4
- protected readonly elementId: import("@angular/core").Signal<string | null>;
5
- /**
6
- * The id of the element the label is associated with.
7
- * @default '-'
8
- */
9
- readonly htmlFor: import("@angular/core").InputSignal<string>;
10
- private readonly elementRef;
11
- onMouseDown(event: MouseEvent): void;
12
- static ɵfac: i0.ɵɵFactoryDeclaration<RdxLabelRootDirective, never>;
13
- static ɵdir: i0.ɵɵDirectiveDeclaration<RdxLabelRootDirective, "label[LabelRoot]", ["LabelRoot"], { "id": { "alias": "id"; "required": false; "isSignal": true; }; "htmlFor": { "alias": "htmlFor"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
14
- }
@@ -1 +0,0 @@
1
- # @radix-ng/primitives/roving-focus
@@ -1,2 +0,0 @@
1
- export * from './src/roving-focus-group.directive';
2
- export * from './src/roving-focus-item.directive';
@@ -1,53 +0,0 @@
1
- import { FocusKeyManager } from '@angular/cdk/a11y';
2
- import { OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';
3
- import type { RdxRovingFocusItemDirective } from './roving-focus-item.directive';
4
- import * as i0 from "@angular/core";
5
- export type Orientation = 'horizontal' | 'vertical';
6
- export declare function injectRovingFocusGroup(): RdxRovingFocusGroupDirective;
7
- export declare class RdxRovingFocusGroupDirective implements OnInit, OnChanges, OnDestroy {
8
- private readonly directionality;
9
- private readonly destroyRef;
10
- /**
11
- * Create a query list of all the roving focus items.
12
- * We don't use ContentChildren as dynamically added items may not be in the correct order.
13
- */
14
- private readonly items;
15
- readonly keyManager: FocusKeyManager<RdxRovingFocusItemDirective>;
16
- /**
17
- * Determine the orientation of the roving focus group.
18
- * @default vertical
19
- */
20
- orientation: Orientation;
21
- /**
22
- * Determine if focus should wrap when the end or beginning is reached.
23
- * @default true
24
- */
25
- wrap: boolean;
26
- ngOnInit(): void;
27
- ngOnChanges(changes: SimpleChanges): void;
28
- ngOnDestroy(): void;
29
- /**
30
- * Register a roving focus item.
31
- * @param item The roving focus item to register.
32
- */
33
- register(item: RdxRovingFocusItemDirective): void;
34
- /**
35
- * Unregister a roving focus item.
36
- * @param item The roving focus item to unregister.
37
- */
38
- unregister(item: RdxRovingFocusItemDirective): void;
39
- /**
40
- * Handle key events on the roving focus items.
41
- * @param event The key event.
42
- * @internal
43
- */
44
- onKeydown(event: KeyboardEvent): void;
45
- /**
46
- * Set the orientation of the roving focus group.
47
- * @param orientation The orientation of the roving focus group.
48
- */
49
- setOrientation(orientation: Orientation): void;
50
- static ɵfac: i0.ɵɵFactoryDeclaration<RdxRovingFocusGroupDirective, never>;
51
- static ɵdir: i0.ɵɵDirectiveDeclaration<RdxRovingFocusGroupDirective, "[rdxRovingFocusGroup]", never, { "orientation": { "alias": "rdxRovingFocusGroupOrientation"; "required": false; }; "wrap": { "alias": "rdxRovingFocusGroupWrap"; "required": false; }; }, {}, never, never, true, never>;
52
- static ngAcceptInputType_wrap: unknown;
53
- }
@@ -1,50 +0,0 @@
1
- import { FocusableOption } from '@angular/cdk/a11y';
2
- import { OnDestroy, OnInit } from '@angular/core';
3
- import * as i0 from "@angular/core";
4
- export declare function injectRovingFocusItem(): RdxRovingFocusItemDirective;
5
- export declare class RdxRovingFocusItemDirective implements OnInit, OnDestroy, FocusableOption {
6
- /**
7
- * Access the group the roving focus item belongs to.
8
- */
9
- private readonly group;
10
- /**
11
- * Access the element reference of the roving focus item.
12
- */
13
- private readonly elementRef;
14
- /**
15
- * Access the destroyRef
16
- */
17
- private readonly destroyRef;
18
- /**
19
- * Access the change detector ref
20
- */
21
- private readonly changeDetectorRef;
22
- /**
23
- * Define the order of the roving focus item in the group.
24
- */
25
- order: number;
26
- /**
27
- * Define if the item is disabled.
28
- */
29
- disabled: boolean;
30
- ngOnInit(): void;
31
- ngOnDestroy(): void;
32
- /**
33
- * Handle key events on the roving focus item.
34
- * @param event The key event.
35
- */
36
- _onKeydown(event: KeyboardEvent): void;
37
- /**
38
- * Derive the tabindex of the roving focus item.
39
- */
40
- _tabindex(): number;
41
- /**
42
- * Focus the roving focus item.
43
- * @internal
44
- */
45
- focus(): void;
46
- static ɵfac: i0.ɵɵFactoryDeclaration<RdxRovingFocusItemDirective, never>;
47
- static ɵdir: i0.ɵɵDirectiveDeclaration<RdxRovingFocusItemDirective, "[rdxRovingFocusItem]", never, { "order": { "alias": "order"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; }, {}, never, never, true, never>;
48
- static ngAcceptInputType_order: unknown;
49
- static ngAcceptInputType_disabled: unknown;
50
- }