@radix-ng/primitives 0.1.0 → 0.1.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.
- package/README.md +2 -4
- package/checkbox/src/checkbox-indicator.directive.d.ts +6 -0
- package/checkbox/src/checkbox.directive.d.ts +71 -0
- package/checkbox/src/checkbox.token.d.ts +4 -0
- package/esm2022/checkbox/index.mjs +4 -0
- package/esm2022/checkbox/radix-ng-primitives-checkbox.mjs +5 -0
- package/esm2022/checkbox/src/checkbox-indicator.directive.mjs +23 -0
- package/esm2022/checkbox/src/checkbox.directive.mjs +135 -0
- package/esm2022/checkbox/src/checkbox.token.mjs +6 -0
- package/esm2022/index.mjs +2 -0
- package/esm2022/label/index.mjs +2 -0
- package/esm2022/label/radix-ng-primitives-label.mjs +5 -0
- package/esm2022/label/src/label.directive.mjs +46 -0
- package/esm2022/progress/index.mjs +3 -0
- package/esm2022/progress/radix-ng-primitives-progress.mjs +5 -0
- package/esm2022/progress/src/progress-indicator.directive.mjs +23 -0
- package/esm2022/progress/src/progress.directive.mjs +62 -0
- package/esm2022/progress/src/progress.token.mjs +6 -0
- package/esm2022/radix-ng-primitives.mjs +5 -0
- package/esm2022/roving-focus/index.mjs +5 -0
- package/esm2022/roving-focus/radix-ng-primitives-roving-focus.mjs +5 -0
- package/esm2022/roving-focus/src/roving-focus-group.directive.mjs +115 -0
- package/esm2022/roving-focus/src/roving-focus-group.token.mjs +9 -0
- package/esm2022/roving-focus/src/roving-focus-item.directive.mjs +91 -0
- package/esm2022/roving-focus/src/roving-focus-item.token.mjs +6 -0
- package/esm2022/separator/index.mjs +2 -0
- package/esm2022/separator/radix-ng-primitives-separator.mjs +5 -0
- package/esm2022/separator/src/separator.directive.mjs +37 -0
- package/esm2022/switch/index.mjs +4 -0
- package/esm2022/switch/radix-ng-primitives-switch.mjs +5 -0
- package/esm2022/switch/src/switch-thumb.directive.mjs +25 -0
- package/esm2022/switch/src/switch.directive.mjs +125 -0
- package/esm2022/switch/src/switch.token.mjs +6 -0
- package/esm2022/visually-hidden/index.mjs +2 -0
- package/esm2022/visually-hidden/radix-ng-primitives-visually-hidden.mjs +5 -0
- package/esm2022/visually-hidden/src/visually-hidden.directive.mjs +42 -0
- package/fesm2022/radix-ng-primitives-checkbox.mjs +166 -0
- package/fesm2022/radix-ng-primitives-checkbox.mjs.map +1 -0
- package/fesm2022/radix-ng-primitives-label.mjs +53 -0
- package/fesm2022/radix-ng-primitives-label.mjs.map +1 -0
- package/fesm2022/radix-ng-primitives-progress.mjs +93 -0
- package/fesm2022/radix-ng-primitives-progress.mjs.map +1 -0
- package/fesm2022/radix-ng-primitives-roving-focus.mjs +220 -0
- package/fesm2022/radix-ng-primitives-roving-focus.mjs.map +1 -0
- package/fesm2022/radix-ng-primitives-separator.mjs +44 -0
- package/fesm2022/radix-ng-primitives-separator.mjs.map +1 -0
- package/fesm2022/radix-ng-primitives-switch.mjs +158 -0
- package/fesm2022/radix-ng-primitives-switch.mjs.map +1 -0
- package/fesm2022/radix-ng-primitives-visually-hidden.mjs +49 -0
- package/fesm2022/radix-ng-primitives-visually-hidden.mjs.map +1 -0
- package/fesm2022/radix-ng-primitives.mjs +4 -0
- package/fesm2022/radix-ng-primitives.mjs.map +1 -0
- package/label/src/label.directive.d.ts +14 -0
- package/package.json +82 -24
- package/progress/src/progress-indicator.directive.d.ts +6 -0
- package/progress/src/progress.directive.d.ts +26 -0
- package/progress/src/progress.token.d.ts +4 -0
- package/roving-focus/src/roving-focus-group.directive.d.ts +55 -0
- package/roving-focus/src/roving-focus-group.token.d.ts +7 -0
- package/roving-focus/src/roving-focus-item.directive.d.ts +52 -0
- package/roving-focus/src/roving-focus-item.token.d.ts +4 -0
- package/separator/src/separator.directive.d.ts +16 -0
- package/switch/src/switch-thumb.directive.d.ts +9 -0
- package/switch/src/switch.directive.d.ts +73 -0
- package/switch/src/switch.token.d.ts +4 -0
- package/visually-hidden/src/visually-hidden.directive.d.ts +11 -0
- package/.docs/overview/accessibility.docs.mdx +0 -45
- package/.docs/overview/installation.docs.mdx +0 -15
- package/.docs/overview/introduction.docs.mdx +0 -59
- package/.docs/utils/storybook.ts +0 -30
- package/.eslintrc.json +0 -56
- package/.storybook/helpers/bages-config.ts +0 -43
- package/.storybook/main.ts +0 -24
- package/.storybook/manager-head.html +0 -76
- package/.storybook/manager.ts +0 -6
- package/.storybook/preview.ts +0 -58
- package/.storybook/rdxTheme.ts +0 -8
- package/.storybook/tsconfig.json +0 -20
- package/CHANGELOG.md +0 -6
- package/checkbox/ng-package.json +0 -5
- package/checkbox/src/checkbox-indicator.directive.ts +0 -15
- package/checkbox/src/checkbox.directive.ts +0 -138
- package/checkbox/src/checkbox.token.ts +0 -8
- package/checkbox/stories/checkbox.component.ts +0 -50
- package/checkbox/stories/checkbox.stories.ts +0 -29
- package/checkbox/stories/style.css +0 -265
- package/jest.config.ts +0 -22
- package/label/ng-package.json +0 -5
- package/label/src/label.directive.ts +0 -36
- package/label/stories/label.docs.mdx +0 -40
- package/label/stories/label.stories.ts +0 -63
- package/ng-package.json +0 -7
- package/progress/ng-package.json +0 -5
- package/progress/src/progress-indicator.directive.ts +0 -15
- package/progress/src/progress.directive.ts +0 -51
- package/progress/src/progress.token.ts +0 -8
- package/progress/stories/progress.docs.mdx +0 -66
- package/progress/stories/progress.stories.ts +0 -61
- package/project.json +0 -90
- package/roving-focus/ng-package.json +0 -5
- package/roving-focus/src/roving-focus-group.directive.ts +0 -135
- package/roving-focus/src/roving-focus-group.token.ts +0 -13
- package/roving-focus/src/roving-focus-item.directive.ts +0 -98
- package/roving-focus/src/roving-focus-item.token.ts +0 -10
- package/separator/ng-package.json +0 -5
- package/separator/src/separator.directive.spec.ts +0 -59
- package/separator/src/separator.directive.ts +0 -24
- package/separator/stories/separator.docs.mdx +0 -38
- package/separator/stories/separator.stories.ts +0 -91
- package/switch/ng-package.json +0 -5
- package/switch/src/switch-thumb.directive.ts +0 -17
- package/switch/src/switch.directive.ts +0 -132
- package/switch/src/switch.token.ts +0 -8
- package/switch/stories/switch.docs.mdx +0 -74
- package/switch/stories/switch.stories.ts +0 -76
- package/test-setup.ts +0 -8
- package/tsconfig.json +0 -32
- package/tsconfig.lib.json +0 -19
- package/tsconfig.lib.prod.json +0 -9
- package/tsconfig.spec.json +0 -21
- package/visually-hidden/ng-package.json +0 -5
- package/visually-hidden/src/visually-hidden.directive.spec.ts +0 -48
- package/visually-hidden/src/visually-hidden.directive.ts +0 -35
- package/visually-hidden/stories/visually-hidden.docs.mdx +0 -35
- /package/checkbox/{index.ts → index.d.ts} +0 -0
- /package/{index.ts → index.d.ts} +0 -0
- /package/label/{index.ts → index.d.ts} +0 -0
- /package/progress/{index.ts → index.d.ts} +0 -0
- /package/roving-focus/{index.ts → index.d.ts} +0 -0
- /package/separator/{index.ts → index.d.ts} +0 -0
- /package/switch/{index.ts → index.d.ts} +0 -0
- /package/visually-hidden/{index.ts → index.d.ts} +0 -0
@@ -0,0 +1,115 @@
|
|
1
|
+
import { FocusKeyManager } from '@angular/cdk/a11y';
|
2
|
+
import { Directionality } from '@angular/cdk/bidi';
|
3
|
+
import { DestroyRef, Directive, Input, QueryList, booleanAttribute, inject } from '@angular/core';
|
4
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
5
|
+
import { filter } from 'rxjs';
|
6
|
+
import { RovingFocusGroupToken } from './roving-focus-group.token';
|
7
|
+
import * as i0 from "@angular/core";
|
8
|
+
export class RovingFocusGroupDirective {
|
9
|
+
constructor() {
|
10
|
+
this.directionality = inject(Directionality);
|
11
|
+
this.destroyRef = inject(DestroyRef);
|
12
|
+
/**
|
13
|
+
* Create a query list of all the roving focus items.
|
14
|
+
* We don't use ContentChildren as dynamically added items may not be in the correct order.
|
15
|
+
*/
|
16
|
+
this.items = new QueryList();
|
17
|
+
/**
|
18
|
+
* Create the focus key manager instance.
|
19
|
+
* @internal
|
20
|
+
*/
|
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
|
+
// update the key manager orientation if the document direction changes
|
37
|
+
this.directionality.change
|
38
|
+
.pipe(filter(() => this.orientation === 'horizontal'), takeUntilDestroyed(this.destroyRef))
|
39
|
+
.subscribe((direction) => this.keyManager.withHorizontalOrientation(direction));
|
40
|
+
}
|
41
|
+
ngOnChanges(changes) {
|
42
|
+
if ('orientation' in changes) {
|
43
|
+
this.setOrientation(this.orientation);
|
44
|
+
}
|
45
|
+
if ('wrap' in changes) {
|
46
|
+
this.keyManager.withWrap(this.wrap);
|
47
|
+
}
|
48
|
+
}
|
49
|
+
ngOnDestroy() {
|
50
|
+
this.keyManager.destroy();
|
51
|
+
}
|
52
|
+
/**
|
53
|
+
* Register a roving focus item.
|
54
|
+
* @param item The roving focus item to register.
|
55
|
+
*/
|
56
|
+
register(item) {
|
57
|
+
// add the item to the query list by sort the items based on their order
|
58
|
+
this.items.reset([...this.items.toArray(), item].sort((a, b) => a.order - b.order));
|
59
|
+
// if this is the first item, make it the active item
|
60
|
+
if (this.items.length === 1) {
|
61
|
+
this.keyManager.updateActiveItem(item);
|
62
|
+
}
|
63
|
+
}
|
64
|
+
/**
|
65
|
+
* Unregister a roving focus item.
|
66
|
+
* @param item The roving focus item to unregister.
|
67
|
+
*/
|
68
|
+
unregister(item) {
|
69
|
+
// determine if the item being removed is the active item
|
70
|
+
const isActive = this.keyManager.activeItem === item;
|
71
|
+
// remove the item from the query list
|
72
|
+
this.items.reset(this.items.toArray().filter((i) => i !== item));
|
73
|
+
// if the item being removed is the active item, make the first item the active item
|
74
|
+
if (isActive) {
|
75
|
+
this.keyManager.updateActiveItem(0);
|
76
|
+
}
|
77
|
+
}
|
78
|
+
/**
|
79
|
+
* Handle key events on the roving focus items.
|
80
|
+
* @param event The key event.
|
81
|
+
* @internal
|
82
|
+
*/
|
83
|
+
onKeydown(event) {
|
84
|
+
this.keyManager.onKeydown(event);
|
85
|
+
}
|
86
|
+
/**
|
87
|
+
* Set the orientation of the roving focus group.
|
88
|
+
* @param orientation The orientation of the roving focus group.
|
89
|
+
*/
|
90
|
+
setOrientation(orientation) {
|
91
|
+
this.orientation = orientation;
|
92
|
+
if (orientation === 'horizontal') {
|
93
|
+
this.keyManager.withHorizontalOrientation(this.directionality.value);
|
94
|
+
}
|
95
|
+
else {
|
96
|
+
this.keyManager.withVerticalOrientation();
|
97
|
+
}
|
98
|
+
}
|
99
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: RovingFocusGroupDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
100
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.3.3", type: RovingFocusGroupDirective, isStandalone: true, selector: "[rdxRovingFocusGroup]", inputs: { orientation: "orientation", wrap: ["wrap", "wrap", booleanAttribute] }, providers: [{ provide: RovingFocusGroupToken, useExisting: RovingFocusGroupDirective }], usesOnChanges: true, ngImport: i0 }); }
|
101
|
+
}
|
102
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: RovingFocusGroupDirective, decorators: [{
|
103
|
+
type: Directive,
|
104
|
+
args: [{
|
105
|
+
selector: '[rdxRovingFocusGroup]',
|
106
|
+
standalone: true,
|
107
|
+
providers: [{ provide: RovingFocusGroupToken, useExisting: RovingFocusGroupDirective }]
|
108
|
+
}]
|
109
|
+
}], propDecorators: { orientation: [{
|
110
|
+
type: Input
|
111
|
+
}], wrap: [{
|
112
|
+
type: Input,
|
113
|
+
args: [{ transform: booleanAttribute }]
|
114
|
+
}] } });
|
115
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm92aW5nLWZvY3VzLWdyb3VwLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvcm92aW5nLWZvY3VzL3NyYy9yb3ZpbmctZm9jdXMtZ3JvdXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFDbkQsT0FBTyxFQUNILFVBQVUsRUFDVixTQUFTLEVBQ1QsS0FBSyxFQUlMLFNBQVMsRUFFVCxnQkFBZ0IsRUFDaEIsTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDRCQUE0QixDQUFDO0FBQ2hFLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFOUIsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBT25FLE1BQU0sT0FBTyx5QkFBeUI7SUFMdEM7UUFNcUIsbUJBQWMsR0FBRyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7UUFFeEMsZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUVqRDs7O1dBR0c7UUFDYyxVQUFLLEdBQUcsSUFBSSxTQUFTLEVBQTRCLENBQUM7UUFFbkU7OztXQUdHO1FBQ00sZUFBVSxHQUFHLElBQUksZUFBZSxDQUEyQixJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7UUFFaEY7OztXQUdHO1FBQ00sZ0JBQVcsR0FBOEIsVUFBVSxDQUFDO1FBRTdEOzs7V0FHRztRQUNxQyxTQUFJLEdBQUcsSUFBSSxDQUFDO0tBbUZ2RDtJQWpGRyxRQUFRO1FBQ0osSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRXBDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFDO1FBRXRDLHVFQUF1RTtRQUN2RSxJQUFJLENBQUMsY0FBYyxDQUFDLE1BQU07YUFDckIsSUFBSSxDQUNELE1BQU0sQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxLQUFLLFlBQVksQ0FBQyxFQUMvQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQ3RDO2FBQ0EsU0FBUyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLHlCQUF5QixDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7SUFDeEYsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUM5QixJQUFJLGFBQWEsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUMzQixJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMxQyxDQUFDO1FBRUQsSUFBSSxNQUFNLElBQUksT0FBTyxFQUFFLENBQUM7WUFDcEIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hDLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUVEOzs7T0FHRztJQUNILFFBQVEsQ0FBQyxJQUE4QjtRQUNuQyx3RUFBd0U7UUFDeEUsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztRQUVwRixxREFBcUQ7UUFDckQsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNDLENBQUM7SUFDTCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsVUFBVSxDQUFDLElBQThCO1FBQ3JDLHlEQUF5RDtRQUN6RCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsS0FBSyxJQUFJLENBQUM7UUFFckQsc0NBQXNDO1FBQ3RDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQztRQUVqRSxvRkFBb0Y7UUFDcEYsSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNYLElBQUksQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEMsQ0FBQztJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsU0FBUyxDQUFDLEtBQW9CO1FBQzFCLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxjQUFjLENBQUMsV0FBc0M7UUFDakQsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUM7UUFFL0IsSUFBSSxXQUFXLEtBQUssWUFBWSxFQUFFLENBQUM7WUFDL0IsSUFBSSxDQUFDLFVBQVUsQ0FBQyx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3pFLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLFVBQVUsQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1FBQzlDLENBQUM7SUFDTCxDQUFDOzhHQTdHUSx5QkFBeUI7a0dBQXpCLHlCQUF5QixzSEEyQmQsZ0JBQWdCLGdCQTdCekIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxXQUFXLEVBQUUseUJBQXlCLEVBQUUsQ0FBQzs7MkZBRTlFLHlCQUF5QjtrQkFMckMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsdUJBQXVCO29CQUNqQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUscUJBQXFCLEVBQUUsV0FBVywyQkFBMkIsRUFBRSxDQUFDO2lCQUMxRjs4QkFzQlksV0FBVztzQkFBbkIsS0FBSztnQkFNa0MsSUFBSTtzQkFBM0MsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvY3VzS2V5TWFuYWdlciB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7IERpcmVjdGlvbmFsaXR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2JpZGknO1xuaW1wb3J0IHtcbiAgICBEZXN0cm95UmVmLFxuICAgIERpcmVjdGl2ZSxcbiAgICBJbnB1dCxcbiAgICBPbkNoYW5nZXMsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBRdWVyeUxpc3QsXG4gICAgU2ltcGxlQ2hhbmdlcyxcbiAgICBib29sZWFuQXR0cmlidXRlLFxuICAgIGluamVjdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHRha2VVbnRpbERlc3Ryb3llZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUvcnhqcy1pbnRlcm9wJztcbmltcG9ydCB7IGZpbHRlciB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHR5cGUgeyBSb3ZpbmdGb2N1c0l0ZW1EaXJlY3RpdmUgfSBmcm9tICcuL3JvdmluZy1mb2N1cy1pdGVtLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBSb3ZpbmdGb2N1c0dyb3VwVG9rZW4gfSBmcm9tICcuL3JvdmluZy1mb2N1cy1ncm91cC50b2tlbic7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3JkeFJvdmluZ0ZvY3VzR3JvdXBdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogUm92aW5nRm9jdXNHcm91cFRva2VuLCB1c2VFeGlzdGluZzogUm92aW5nRm9jdXNHcm91cERpcmVjdGl2ZSB9XVxufSlcbmV4cG9ydCBjbGFzcyBSb3ZpbmdGb2N1c0dyb3VwRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBkaXJlY3Rpb25hbGl0eSA9IGluamVjdChEaXJlY3Rpb25hbGl0eSk7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGUgYSBxdWVyeSBsaXN0IG9mIGFsbCB0aGUgcm92aW5nIGZvY3VzIGl0ZW1zLlxuICAgICAqIFdlIGRvbid0IHVzZSBDb250ZW50Q2hpbGRyZW4gYXMgZHluYW1pY2FsbHkgYWRkZWQgaXRlbXMgbWF5IG5vdCBiZSBpbiB0aGUgY29ycmVjdCBvcmRlci5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGl0ZW1zID0gbmV3IFF1ZXJ5TGlzdDxSb3ZpbmdGb2N1c0l0ZW1EaXJlY3RpdmU+KCk7XG5cbiAgICAvKipcbiAgICAgKiBDcmVhdGUgdGhlIGZvY3VzIGtleSBtYW5hZ2VyIGluc3RhbmNlLlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHJlYWRvbmx5IGtleU1hbmFnZXIgPSBuZXcgRm9jdXNLZXlNYW5hZ2VyPFJvdmluZ0ZvY3VzSXRlbURpcmVjdGl2ZT4odGhpcy5pdGVtcyk7XG5cbiAgICAvKipcbiAgICAgKiBEZXRlcm1pbmUgdGhlIG9yaWVudGF0aW9uIG9mIHRoZSByb3ZpbmcgZm9jdXMgZ3JvdXAuXG4gICAgICogQGRlZmF1bHQgdmVydGljYWxcbiAgICAgKi9cbiAgICBASW5wdXQoKSBvcmllbnRhdGlvbjogJ2hvcml6b250YWwnIHwgJ3ZlcnRpY2FsJyA9ICd2ZXJ0aWNhbCc7XG5cbiAgICAvKipcbiAgICAgKiBEZXRlcm1pbmUgaWYgZm9jdXMgc2hvdWxkIHdyYXAgd2hlbiB0aGUgZW5kIG9yIGJlZ2lubmluZyBpcyByZWFjaGVkLlxuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgd3JhcCA9IHRydWU7XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5rZXlNYW5hZ2VyLndpdGhXcmFwKHRoaXMud3JhcCk7XG5cbiAgICAgICAgdGhpcy5zZXRPcmllbnRhdGlvbih0aGlzLm9yaWVudGF0aW9uKTtcblxuICAgICAgICAvLyB1cGRhdGUgdGhlIGtleSBtYW5hZ2VyIG9yaWVudGF0aW9uIGlmIHRoZSBkb2N1bWVudCBkaXJlY3Rpb24gY2hhbmdlc1xuICAgICAgICB0aGlzLmRpcmVjdGlvbmFsaXR5LmNoYW5nZVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKCgpID0+IHRoaXMub3JpZW50YXRpb24gPT09ICdob3Jpem9udGFsJyksXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsRGVzdHJveWVkKHRoaXMuZGVzdHJveVJlZilcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGRpcmVjdGlvbikgPT4gdGhpcy5rZXlNYW5hZ2VyLndpdGhIb3Jpem9udGFsT3JpZW50YXRpb24oZGlyZWN0aW9uKSk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoJ29yaWVudGF0aW9uJyBpbiBjaGFuZ2VzKSB7XG4gICAgICAgICAgICB0aGlzLnNldE9yaWVudGF0aW9uKHRoaXMub3JpZW50YXRpb24pO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCd3cmFwJyBpbiBjaGFuZ2VzKSB7XG4gICAgICAgICAgICB0aGlzLmtleU1hbmFnZXIud2l0aFdyYXAodGhpcy53cmFwKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICB0aGlzLmtleU1hbmFnZXIuZGVzdHJveSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlZ2lzdGVyIGEgcm92aW5nIGZvY3VzIGl0ZW0uXG4gICAgICogQHBhcmFtIGl0ZW0gVGhlIHJvdmluZyBmb2N1cyBpdGVtIHRvIHJlZ2lzdGVyLlxuICAgICAqL1xuICAgIHJlZ2lzdGVyKGl0ZW06IFJvdmluZ0ZvY3VzSXRlbURpcmVjdGl2ZSk6IHZvaWQge1xuICAgICAgICAvLyBhZGQgdGhlIGl0ZW0gdG8gdGhlIHF1ZXJ5IGxpc3QgYnkgc29ydCB0aGUgaXRlbXMgYmFzZWQgb24gdGhlaXIgb3JkZXJcbiAgICAgICAgdGhpcy5pdGVtcy5yZXNldChbLi4udGhpcy5pdGVtcy50b0FycmF5KCksIGl0ZW1dLnNvcnQoKGEsIGIpID0+IGEub3JkZXIgLSBiLm9yZGVyKSk7XG5cbiAgICAgICAgLy8gaWYgdGhpcyBpcyB0aGUgZmlyc3QgaXRlbSwgbWFrZSBpdCB0aGUgYWN0aXZlIGl0ZW1cbiAgICAgICAgaWYgKHRoaXMuaXRlbXMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICB0aGlzLmtleU1hbmFnZXIudXBkYXRlQWN0aXZlSXRlbShpdGVtKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVucmVnaXN0ZXIgYSByb3ZpbmcgZm9jdXMgaXRlbS5cbiAgICAgKiBAcGFyYW0gaXRlbSBUaGUgcm92aW5nIGZvY3VzIGl0ZW0gdG8gdW5yZWdpc3Rlci5cbiAgICAgKi9cbiAgICB1bnJlZ2lzdGVyKGl0ZW06IFJvdmluZ0ZvY3VzSXRlbURpcmVjdGl2ZSk6IHZvaWQge1xuICAgICAgICAvLyBkZXRlcm1pbmUgaWYgdGhlIGl0ZW0gYmVpbmcgcmVtb3ZlZCBpcyB0aGUgYWN0aXZlIGl0ZW1cbiAgICAgICAgY29uc3QgaXNBY3RpdmUgPSB0aGlzLmtleU1hbmFnZXIuYWN0aXZlSXRlbSA9PT0gaXRlbTtcblxuICAgICAgICAvLyByZW1vdmUgdGhlIGl0ZW0gZnJvbSB0aGUgcXVlcnkgbGlzdFxuICAgICAgICB0aGlzLml0ZW1zLnJlc2V0KHRoaXMuaXRlbXMudG9BcnJheSgpLmZpbHRlcigoaSkgPT4gaSAhPT0gaXRlbSkpO1xuXG4gICAgICAgIC8vIGlmIHRoZSBpdGVtIGJlaW5nIHJlbW92ZWQgaXMgdGhlIGFjdGl2ZSBpdGVtLCBtYWtlIHRoZSBmaXJzdCBpdGVtIHRoZSBhY3RpdmUgaXRlbVxuICAgICAgICBpZiAoaXNBY3RpdmUpIHtcbiAgICAgICAgICAgIHRoaXMua2V5TWFuYWdlci51cGRhdGVBY3RpdmVJdGVtKDApO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSGFuZGxlIGtleSBldmVudHMgb24gdGhlIHJvdmluZyBmb2N1cyBpdGVtcy5cbiAgICAgKiBAcGFyYW0gZXZlbnQgVGhlIGtleSBldmVudC5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBvbktleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5rZXlNYW5hZ2VyLm9uS2V5ZG93bihldmVudCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0IHRoZSBvcmllbnRhdGlvbiBvZiB0aGUgcm92aW5nIGZvY3VzIGdyb3VwLlxuICAgICAqIEBwYXJhbSBvcmllbnRhdGlvbiBUaGUgb3JpZW50YXRpb24gb2YgdGhlIHJvdmluZyBmb2N1cyBncm91cC5cbiAgICAgKi9cbiAgICBzZXRPcmllbnRhdGlvbihvcmllbnRhdGlvbjogJ2hvcml6b250YWwnIHwgJ3ZlcnRpY2FsJyk6IHZvaWQge1xuICAgICAgICB0aGlzLm9yaWVudGF0aW9uID0gb3JpZW50YXRpb247XG5cbiAgICAgICAgaWYgKG9yaWVudGF0aW9uID09PSAnaG9yaXpvbnRhbCcpIHtcbiAgICAgICAgICAgIHRoaXMua2V5TWFuYWdlci53aXRoSG9yaXpvbnRhbE9yaWVudGF0aW9uKHRoaXMuZGlyZWN0aW9uYWxpdHkudmFsdWUpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5rZXlNYW5hZ2VyLndpdGhWZXJ0aWNhbE9yaWVudGF0aW9uKCk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iXX0=
|
@@ -0,0 +1,9 @@
|
|
1
|
+
import { InjectionToken, inject } from '@angular/core';
|
2
|
+
export const RovingFocusGroupToken = new InjectionToken('RovingFocusToken');
|
3
|
+
/**
|
4
|
+
* Inject the roving focus directive instance.
|
5
|
+
*/
|
6
|
+
export function injectRovingFocusGroup() {
|
7
|
+
return inject(RovingFocusGroupToken);
|
8
|
+
}
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm92aW5nLWZvY3VzLWdyb3VwLnRva2VuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcHJpbWl0aXZlcy9yb3ZpbmctZm9jdXMvc3JjL3JvdmluZy1mb2N1cy1ncm91cC50b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd2RCxNQUFNLENBQUMsTUFBTSxxQkFBcUIsR0FBRyxJQUFJLGNBQWMsQ0FDbkQsa0JBQWtCLENBQ3JCLENBQUM7QUFFRjs7R0FFRztBQUNILE1BQU0sVUFBVSxzQkFBc0I7SUFDbEMsT0FBTyxNQUFNLENBQUMscUJBQXFCLENBQUMsQ0FBQztBQUN6QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4sIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHR5cGUgeyBSb3ZpbmdGb2N1c0dyb3VwRGlyZWN0aXZlIH0gZnJvbSAnLi9yb3ZpbmctZm9jdXMtZ3JvdXAuZGlyZWN0aXZlJztcblxuZXhwb3J0IGNvbnN0IFJvdmluZ0ZvY3VzR3JvdXBUb2tlbiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxSb3ZpbmdGb2N1c0dyb3VwRGlyZWN0aXZlPihcbiAgICAnUm92aW5nRm9jdXNUb2tlbidcbik7XG5cbi8qKlxuICogSW5qZWN0IHRoZSByb3ZpbmcgZm9jdXMgZGlyZWN0aXZlIGluc3RhbmNlLlxuICovXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0Um92aW5nRm9jdXNHcm91cCgpOiBSb3ZpbmdGb2N1c0dyb3VwRGlyZWN0aXZlIHtcbiAgICByZXR1cm4gaW5qZWN0KFJvdmluZ0ZvY3VzR3JvdXBUb2tlbik7XG59XG4iXX0=
|
@@ -0,0 +1,91 @@
|
|
1
|
+
import { ChangeDetectorRef, DestroyRef, Directive, ElementRef, HostBinding, HostListener, Input, booleanAttribute, inject, numberAttribute } from '@angular/core';
|
2
|
+
import { takeUntilDestroyed } from '@angular/core/rxjs-interop';
|
3
|
+
import { injectRovingFocusGroup } from './roving-focus-group.token';
|
4
|
+
import { RovingFocusItemToken } from './roving-focus-item.token';
|
5
|
+
import * as i0 from "@angular/core";
|
6
|
+
export class RovingFocusItemDirective {
|
7
|
+
constructor() {
|
8
|
+
/**
|
9
|
+
* Access the group the roving focus item belongs to.
|
10
|
+
*/
|
11
|
+
this.group = injectRovingFocusGroup();
|
12
|
+
/**
|
13
|
+
* Access the element reference of the roving focus item.
|
14
|
+
*/
|
15
|
+
this.elementRef = inject((ElementRef));
|
16
|
+
/**
|
17
|
+
* Access the destroyRef
|
18
|
+
*/
|
19
|
+
this.destroyRef = inject(DestroyRef);
|
20
|
+
/**
|
21
|
+
* Access the change detector ref
|
22
|
+
*/
|
23
|
+
this.changeDetectorRef = inject(ChangeDetectorRef);
|
24
|
+
/**
|
25
|
+
* Define the order of the roving focus item in the group.
|
26
|
+
*/
|
27
|
+
this.order = 0;
|
28
|
+
/**
|
29
|
+
* Define if the item is disabled.
|
30
|
+
*/
|
31
|
+
this.disabled = false;
|
32
|
+
}
|
33
|
+
/**
|
34
|
+
* Derive the tabindex of the roving focus item.
|
35
|
+
* @internal
|
36
|
+
*/
|
37
|
+
get tabindex() {
|
38
|
+
return this.group.keyManager.activeItem === this ? 0 : -1;
|
39
|
+
}
|
40
|
+
ngOnInit() {
|
41
|
+
// register the roving focus item with the group
|
42
|
+
this.group.register(this);
|
43
|
+
// listen for changes to the active item and run change detection
|
44
|
+
this.group.keyManager.change
|
45
|
+
.pipe(takeUntilDestroyed(this.destroyRef))
|
46
|
+
.subscribe(() => this.changeDetectorRef.markForCheck());
|
47
|
+
}
|
48
|
+
ngOnDestroy() {
|
49
|
+
// unregister the roving focus item with the group
|
50
|
+
this.group.unregister(this);
|
51
|
+
}
|
52
|
+
/**
|
53
|
+
* Handle key events on the roving focus item.
|
54
|
+
* @param event The key event.
|
55
|
+
* @internal
|
56
|
+
*/
|
57
|
+
onKeydown(event) {
|
58
|
+
this.group.onKeydown(event);
|
59
|
+
}
|
60
|
+
/**
|
61
|
+
* Focus the roving focus item.
|
62
|
+
* @param origin The origin of the focus request.
|
63
|
+
* @internal
|
64
|
+
*/
|
65
|
+
focus() {
|
66
|
+
this.elementRef?.nativeElement.focus();
|
67
|
+
}
|
68
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: RovingFocusItemDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
69
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.3.3", type: RovingFocusItemDirective, isStandalone: true, selector: "[rdxRovingFocusItem]", inputs: { order: ["order", "order", numberAttribute], disabled: ["disabled", "disabled", booleanAttribute] }, host: { listeners: { "keydown": "onKeydown($event)" }, properties: { "attr.tabindex": "this.tabindex" } }, providers: [{ provide: RovingFocusItemToken, useExisting: RovingFocusItemDirective }], ngImport: i0 }); }
|
70
|
+
}
|
71
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: RovingFocusItemDirective, decorators: [{
|
72
|
+
type: Directive,
|
73
|
+
args: [{
|
74
|
+
selector: '[rdxRovingFocusItem]',
|
75
|
+
standalone: true,
|
76
|
+
providers: [{ provide: RovingFocusItemToken, useExisting: RovingFocusItemDirective }]
|
77
|
+
}]
|
78
|
+
}], propDecorators: { order: [{
|
79
|
+
type: Input,
|
80
|
+
args: [{ transform: numberAttribute }]
|
81
|
+
}], disabled: [{
|
82
|
+
type: Input,
|
83
|
+
args: [{ transform: booleanAttribute }]
|
84
|
+
}], tabindex: [{
|
85
|
+
type: HostBinding,
|
86
|
+
args: ['attr.tabindex']
|
87
|
+
}], onKeydown: [{
|
88
|
+
type: HostListener,
|
89
|
+
args: ['keydown', ['$event']]
|
90
|
+
}] } });
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm92aW5nLWZvY3VzLWl0ZW0uZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcHJpbWl0aXZlcy9yb3ZpbmctZm9jdXMvc3JjL3JvdmluZy1mb2N1cy1pdGVtLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0gsaUJBQWlCLEVBQ2pCLFVBQVUsRUFDVixTQUFTLEVBQ1QsVUFBVSxFQUNWLFdBQVcsRUFDWCxZQUFZLEVBQ1osS0FBSyxFQUdMLGdCQUFnQixFQUNoQixNQUFNLEVBQ04sZUFBZSxFQUNsQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNoRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0QkFBNEIsQ0FBQztBQUNwRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7QUFPakUsTUFBTSxPQUFPLHdCQUF3QjtJQUxyQztRQU1JOztXQUVHO1FBQ2MsVUFBSyxHQUFHLHNCQUFzQixFQUFFLENBQUM7UUFFbEQ7O1dBRUc7UUFDYyxlQUFVLEdBQUcsTUFBTSxDQUFDLENBQUEsVUFBdUIsQ0FBQSxDQUFDLENBQUM7UUFFOUQ7O1dBRUc7UUFDYyxlQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBRWpEOztXQUVHO1FBQ2Msc0JBQWlCLEdBQUcsTUFBTSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFFL0Q7O1dBRUc7UUFDb0MsVUFBSyxHQUFHLENBQUMsQ0FBQztRQUVqRDs7V0FFRztRQUNxQyxhQUFRLEdBQUcsS0FBSyxDQUFDO0tBNEM1RDtJQTFDRzs7O09BR0c7SUFDSCxJQUNJLFFBQVE7UUFDUixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLFVBQVUsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUQsQ0FBQztJQUVELFFBQVE7UUFDSixnREFBZ0Q7UUFDaEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFMUIsaUVBQWlFO1FBQ2pFLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLE1BQU07YUFDdkIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUN6QyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFlBQVksRUFBRSxDQUFDLENBQUM7SUFDaEUsQ0FBQztJQUVELFdBQVc7UUFDUCxrREFBa0Q7UUFDbEQsSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVEOzs7O09BSUc7SUFFSCxTQUFTLENBQUMsS0FBb0I7UUFDMUIsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxLQUFLO1FBQ0QsSUFBSSxDQUFDLFVBQVUsRUFBRSxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDM0MsQ0FBQzs4R0F4RVEsd0JBQXdCO2tHQUF4Qix3QkFBd0IsNEZBd0JiLGVBQWUsc0NBS2YsZ0JBQWdCLDJIQS9CekIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxXQUFXLEVBQUUsd0JBQXdCLEVBQUUsQ0FBQzs7MkZBRTVFLHdCQUF3QjtrQkFMcEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsc0JBQXNCO29CQUNoQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsV0FBVywwQkFBMEIsRUFBRSxDQUFDO2lCQUN4Rjs4QkF5QjBDLEtBQUs7c0JBQTNDLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO2dCQUtHLFFBQVE7c0JBQS9DLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBT2xDLFFBQVE7c0JBRFgsV0FBVzt1QkFBQyxlQUFlO2dCQTBCNUIsU0FBUztzQkFEUixZQUFZO3VCQUFDLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEZvY3VzYWJsZU9wdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9hMTF5JztcbmltcG9ydCB7XG4gICAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gICAgRGVzdHJveVJlZixcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBIb3N0QmluZGluZyxcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5wdXQsXG4gICAgT25EZXN0cm95LFxuICAgIE9uSW5pdCxcbiAgICBib29sZWFuQXR0cmlidXRlLFxuICAgIGluamVjdCxcbiAgICBudW1iZXJBdHRyaWJ1dGVcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyB0YWtlVW50aWxEZXN0cm95ZWQgfSBmcm9tICdAYW5ndWxhci9jb3JlL3J4anMtaW50ZXJvcCc7XG5pbXBvcnQgeyBpbmplY3RSb3ZpbmdGb2N1c0dyb3VwIH0gZnJvbSAnLi9yb3ZpbmctZm9jdXMtZ3JvdXAudG9rZW4nO1xuaW1wb3J0IHsgUm92aW5nRm9jdXNJdGVtVG9rZW4gfSBmcm9tICcuL3JvdmluZy1mb2N1cy1pdGVtLnRva2VuJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbcmR4Um92aW5nRm9jdXNJdGVtXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6IFJvdmluZ0ZvY3VzSXRlbVRva2VuLCB1c2VFeGlzdGluZzogUm92aW5nRm9jdXNJdGVtRGlyZWN0aXZlIH1dXG59KVxuZXhwb3J0IGNsYXNzIFJvdmluZ0ZvY3VzSXRlbURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95LCBGb2N1c2FibGVPcHRpb24ge1xuICAgIC8qKlxuICAgICAqIEFjY2VzcyB0aGUgZ3JvdXAgdGhlIHJvdmluZyBmb2N1cyBpdGVtIGJlbG9uZ3MgdG8uXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBncm91cCA9IGluamVjdFJvdmluZ0ZvY3VzR3JvdXAoKTtcblxuICAgIC8qKlxuICAgICAqIEFjY2VzcyB0aGUgZWxlbWVudCByZWZlcmVuY2Ugb2YgdGhlIHJvdmluZyBmb2N1cyBpdGVtLlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmPEhUTUxFbGVtZW50Pik7XG5cbiAgICAvKipcbiAgICAgKiBBY2Nlc3MgdGhlIGRlc3Ryb3lSZWZcbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgICAvKipcbiAgICAgKiBBY2Nlc3MgdGhlIGNoYW5nZSBkZXRlY3RvciByZWZcbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGNoYW5nZURldGVjdG9yUmVmID0gaW5qZWN0KENoYW5nZURldGVjdG9yUmVmKTtcblxuICAgIC8qKlxuICAgICAqIERlZmluZSB0aGUgb3JkZXIgb2YgdGhlIHJvdmluZyBmb2N1cyBpdGVtIGluIHRoZSBncm91cC5cbiAgICAgKi9cbiAgICBASW5wdXQoeyB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KSBvcmRlciA9IDA7XG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmUgaWYgdGhlIGl0ZW0gaXMgZGlzYWJsZWQuXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBEZXJpdmUgdGhlIHRhYmluZGV4IG9mIHRoZSByb3ZpbmcgZm9jdXMgaXRlbS5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBASG9zdEJpbmRpbmcoJ2F0dHIudGFiaW5kZXgnKVxuICAgIGdldCB0YWJpbmRleCgpOiBudW1iZXIge1xuICAgICAgICByZXR1cm4gdGhpcy5ncm91cC5rZXlNYW5hZ2VyLmFjdGl2ZUl0ZW0gPT09IHRoaXMgPyAwIDogLTE7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIC8vIHJlZ2lzdGVyIHRoZSByb3ZpbmcgZm9jdXMgaXRlbSB3aXRoIHRoZSBncm91cFxuICAgICAgICB0aGlzLmdyb3VwLnJlZ2lzdGVyKHRoaXMpO1xuXG4gICAgICAgIC8vIGxpc3RlbiBmb3IgY2hhbmdlcyB0byB0aGUgYWN0aXZlIGl0ZW0gYW5kIHJ1biBjaGFuZ2UgZGV0ZWN0aW9uXG4gICAgICAgIHRoaXMuZ3JvdXAua2V5TWFuYWdlci5jaGFuZ2VcbiAgICAgICAgICAgIC5waXBlKHRha2VVbnRpbERlc3Ryb3llZCh0aGlzLmRlc3Ryb3lSZWYpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmNoYW5nZURldGVjdG9yUmVmLm1hcmtGb3JDaGVjaygpKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgLy8gdW5yZWdpc3RlciB0aGUgcm92aW5nIGZvY3VzIGl0ZW0gd2l0aCB0aGUgZ3JvdXBcbiAgICAgICAgdGhpcy5ncm91cC51bnJlZ2lzdGVyKHRoaXMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEhhbmRsZSBrZXkgZXZlbnRzIG9uIHRoZSByb3ZpbmcgZm9jdXMgaXRlbS5cbiAgICAgKiBAcGFyYW0gZXZlbnQgVGhlIGtleSBldmVudC5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBASG9zdExpc3RlbmVyKCdrZXlkb3duJywgWyckZXZlbnQnXSlcbiAgICBvbktleWRvd24oZXZlbnQ6IEtleWJvYXJkRXZlbnQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ncm91cC5vbktleWRvd24oZXZlbnQpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEZvY3VzIHRoZSByb3ZpbmcgZm9jdXMgaXRlbS5cbiAgICAgKiBAcGFyYW0gb3JpZ2luIFRoZSBvcmlnaW4gb2YgdGhlIGZvY3VzIHJlcXVlc3QuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgZm9jdXMoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZWxlbWVudFJlZj8ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cbn1cbiJdfQ==
|
@@ -0,0 +1,6 @@
|
|
1
|
+
import { InjectionToken, inject } from '@angular/core';
|
2
|
+
export const RovingFocusItemToken = new InjectionToken('RovingFocusItemToken');
|
3
|
+
export function injectRovingFocusItem() {
|
4
|
+
return inject(RovingFocusItemToken);
|
5
|
+
}
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm92aW5nLWZvY3VzLWl0ZW0udG9rZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wcmltaXRpdmVzL3JvdmluZy1mb2N1cy9zcmMvcm92aW5nLWZvY3VzLWl0ZW0udG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHdkQsTUFBTSxDQUFDLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxjQUFjLENBQ2xELHNCQUFzQixDQUN6QixDQUFDO0FBRUYsTUFBTSxVQUFVLHFCQUFxQjtJQUNqQyxPQUFPLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0FBQ3hDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgdHlwZSB7IFJvdmluZ0ZvY3VzSXRlbURpcmVjdGl2ZSB9IGZyb20gJy4vcm92aW5nLWZvY3VzLWl0ZW0uZGlyZWN0aXZlJztcblxuZXhwb3J0IGNvbnN0IFJvdmluZ0ZvY3VzSXRlbVRva2VuID0gbmV3IEluamVjdGlvblRva2VuPFJvdmluZ0ZvY3VzSXRlbURpcmVjdGl2ZT4oXG4gICAgJ1JvdmluZ0ZvY3VzSXRlbVRva2VuJ1xuKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdFJvdmluZ0ZvY3VzSXRlbSgpOiBSb3ZpbmdGb2N1c0l0ZW1EaXJlY3RpdmUge1xuICAgIHJldHVybiBpbmplY3QoUm92aW5nRm9jdXNJdGVtVG9rZW4pO1xufVxuIl19
|
@@ -0,0 +1,2 @@
|
|
1
|
+
export * from './src/separator.directive';
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9wcmltaXRpdmVzL3NlcGFyYXRvci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLDJCQUEyQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zcmMvc2VwYXJhdG9yLmRpcmVjdGl2ZSc7XG4iXX0=
|
@@ -0,0 +1,5 @@
|
|
1
|
+
/**
|
2
|
+
* Generated bundle index. Do not edit.
|
3
|
+
*/
|
4
|
+
export * from './index';
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaXgtbmctcHJpbWl0aXZlcy1zZXBhcmF0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9wcmltaXRpdmVzL3NlcGFyYXRvci9yYWRpeC1uZy1wcmltaXRpdmVzLXNlcGFyYXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
|
@@ -0,0 +1,37 @@
|
|
1
|
+
import { Directive, Input, booleanAttribute } from '@angular/core';
|
2
|
+
import * as i0 from "@angular/core";
|
3
|
+
export class SeparatorDirective {
|
4
|
+
constructor() {
|
5
|
+
/**
|
6
|
+
* The orientation of the separator.
|
7
|
+
* @default 'horizontal'
|
8
|
+
*/
|
9
|
+
this.orientation = 'horizontal';
|
10
|
+
/**
|
11
|
+
* Whether the separator is for decoration purposes. If true, the separator will not be included in the accessibility tree.
|
12
|
+
* @default false
|
13
|
+
*/
|
14
|
+
this.decorative = false;
|
15
|
+
}
|
16
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: SeparatorDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
17
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.3.3", type: SeparatorDirective, isStandalone: true, selector: "[rdxSeparator]", inputs: { orientation: ["rdxSeparatorOrientation", "orientation"], decorative: ["rdxSeparatorDecorative", "decorative", booleanAttribute] }, host: { properties: { "attr.role": "decorative ? \"none\" : \"separator\"", "attr.aria-orientation": "!decorative && orientation === \"vertical\" ? \"vertical\" : null", "attr.data-orientation": "orientation" } }, ngImport: i0 }); }
|
18
|
+
}
|
19
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: SeparatorDirective, decorators: [{
|
20
|
+
type: Directive,
|
21
|
+
args: [{
|
22
|
+
selector: '[rdxSeparator]',
|
23
|
+
standalone: true,
|
24
|
+
host: {
|
25
|
+
'[attr.role]': 'decorative ? "none" : "separator"',
|
26
|
+
'[attr.aria-orientation]': '!decorative && orientation === "vertical" ? "vertical" : null',
|
27
|
+
'[attr.data-orientation]': 'orientation'
|
28
|
+
}
|
29
|
+
}]
|
30
|
+
}], propDecorators: { orientation: [{
|
31
|
+
type: Input,
|
32
|
+
args: ['rdxSeparatorOrientation']
|
33
|
+
}], decorative: [{
|
34
|
+
type: Input,
|
35
|
+
args: [{ alias: 'rdxSeparatorDecorative', transform: booleanAttribute }]
|
36
|
+
}] } });
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VwYXJhdG9yLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvc2VwYXJhdG9yL3NyYy9zZXBhcmF0b3IuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVduRSxNQUFNLE9BQU8sa0JBQWtCO0lBVC9CO1FBVUk7OztXQUdHO1FBQytCLGdCQUFXLEdBQThCLFlBQVksQ0FBQztRQUV4Rjs7O1dBR0c7UUFDc0UsZUFBVSxHQUFHLEtBQUssQ0FBQztLQUMvRjs4R0FaWSxrQkFBa0I7a0dBQWxCLGtCQUFrQiwwS0FXMEIsZ0JBQWdCOzsyRkFYNUQsa0JBQWtCO2tCQVQ5QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixJQUFJLEVBQUU7d0JBQ0YsYUFBYSxFQUFFLG1DQUFtQzt3QkFDbEQseUJBQXlCLEVBQUUsK0RBQStEO3dCQUMxRix5QkFBeUIsRUFBRSxhQUFhO3FCQUMzQztpQkFDSjs4QkFNcUMsV0FBVztzQkFBNUMsS0FBSzt1QkFBQyx5QkFBeUI7Z0JBTXlDLFVBQVU7c0JBQWxGLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsd0JBQXdCLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbnB1dCwgYm9vbGVhbkF0dHJpYnV0ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tyZHhTZXBhcmF0b3JdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1thdHRyLnJvbGVdJzogJ2RlY29yYXRpdmUgPyBcIm5vbmVcIiA6IFwic2VwYXJhdG9yXCInLFxuICAgICAgICAnW2F0dHIuYXJpYS1vcmllbnRhdGlvbl0nOiAnIWRlY29yYXRpdmUgJiYgb3JpZW50YXRpb24gPT09IFwidmVydGljYWxcIiA/IFwidmVydGljYWxcIiA6IG51bGwnLFxuICAgICAgICAnW2F0dHIuZGF0YS1vcmllbnRhdGlvbl0nOiAnb3JpZW50YXRpb24nXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBTZXBhcmF0b3JEaXJlY3RpdmUge1xuICAgIC8qKlxuICAgICAqIFRoZSBvcmllbnRhdGlvbiBvZiB0aGUgc2VwYXJhdG9yLlxuICAgICAqIEBkZWZhdWx0ICdob3Jpem9udGFsJ1xuICAgICAqL1xuICAgIEBJbnB1dCgncmR4U2VwYXJhdG9yT3JpZW50YXRpb24nKSBvcmllbnRhdGlvbjogJ2hvcml6b250YWwnIHwgJ3ZlcnRpY2FsJyA9ICdob3Jpem9udGFsJztcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIHNlcGFyYXRvciBpcyBmb3IgZGVjb3JhdGlvbiBwdXJwb3Nlcy4gSWYgdHJ1ZSwgdGhlIHNlcGFyYXRvciB3aWxsIG5vdCBiZSBpbmNsdWRlZCBpbiB0aGUgYWNjZXNzaWJpbGl0eSB0cmVlLlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgYWxpYXM6ICdyZHhTZXBhcmF0b3JEZWNvcmF0aXZlJywgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGRlY29yYXRpdmUgPSBmYWxzZTtcbn1cbiJdfQ==
|
@@ -0,0 +1,4 @@
|
|
1
|
+
export * from './src/switch.directive';
|
2
|
+
export * from './src/switch-thumb.directive';
|
3
|
+
export * from './src/switch.token';
|
4
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9wcmltaXRpdmVzL3N3aXRjaC9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHdCQUF3QixDQUFDO0FBQ3ZDLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxvQkFBb0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc3JjL3N3aXRjaC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvc3dpdGNoLXRodW1iLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9zd2l0Y2gudG9rZW4nO1xuIl19
|
@@ -0,0 +1,5 @@
|
|
1
|
+
/**
|
2
|
+
* Generated bundle index. Do not edit.
|
3
|
+
*/
|
4
|
+
export * from './index';
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaXgtbmctcHJpbWl0aXZlcy1zd2l0Y2guanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9wcmltaXRpdmVzL3N3aXRjaC9yYWRpeC1uZy1wcmltaXRpdmVzLXN3aXRjaC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
|
@@ -0,0 +1,25 @@
|
|
1
|
+
import { Directive } from '@angular/core';
|
2
|
+
import { injectSwitch } from './switch.token';
|
3
|
+
import * as i0 from "@angular/core";
|
4
|
+
export class SwitchThumbDirective {
|
5
|
+
constructor() {
|
6
|
+
/**
|
7
|
+
* Access the switch directive.
|
8
|
+
*/
|
9
|
+
this.switch = injectSwitch();
|
10
|
+
}
|
11
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: SwitchThumbDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
12
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.3", type: SwitchThumbDirective, isStandalone: true, selector: "[rdxSwitchThumb]", host: { properties: { "attr.data-state": "switch.checked ? \"checked\" : \"unchecked\"", "attr.data-disabled": "switch.disabled ? \"true\" : null" } }, ngImport: i0 }); }
|
13
|
+
}
|
14
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: SwitchThumbDirective, decorators: [{
|
15
|
+
type: Directive,
|
16
|
+
args: [{
|
17
|
+
selector: '[rdxSwitchThumb]',
|
18
|
+
standalone: true,
|
19
|
+
host: {
|
20
|
+
'[attr.data-state]': 'switch.checked ? "checked" : "unchecked"',
|
21
|
+
'[attr.data-disabled]': 'switch.disabled ? "true" : null'
|
22
|
+
}
|
23
|
+
}]
|
24
|
+
}] });
|
25
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLXRodW1iLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvc3dpdGNoL3NyYy9zd2l0Y2gtdGh1bWIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQVU5QyxNQUFNLE9BQU8sb0JBQW9CO0lBUmpDO1FBU0k7O1dBRUc7UUFDZ0IsV0FBTSxHQUFHLFlBQVksRUFBRSxDQUFDO0tBQzlDOzhHQUxZLG9CQUFvQjtrR0FBcEIsb0JBQW9COzsyRkFBcEIsb0JBQW9CO2tCQVJoQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxrQkFBa0I7b0JBQzVCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixJQUFJLEVBQUU7d0JBQ0YsbUJBQW1CLEVBQUUsMENBQTBDO3dCQUMvRCxzQkFBc0IsRUFBRSxpQ0FBaUM7cUJBQzVEO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpbmplY3RTd2l0Y2ggfSBmcm9tICcuL3N3aXRjaC50b2tlbic7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3JkeFN3aXRjaFRodW1iXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBob3N0OiB7XG4gICAgICAgICdbYXR0ci5kYXRhLXN0YXRlXSc6ICdzd2l0Y2guY2hlY2tlZCA/IFwiY2hlY2tlZFwiIDogXCJ1bmNoZWNrZWRcIicsXG4gICAgICAgICdbYXR0ci5kYXRhLWRpc2FibGVkXSc6ICdzd2l0Y2guZGlzYWJsZWQgPyBcInRydWVcIiA6IG51bGwnXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBTd2l0Y2hUaHVtYkRpcmVjdGl2ZSB7XG4gICAgLyoqXG4gICAgICogQWNjZXNzIHRoZSBzd2l0Y2ggZGlyZWN0aXZlLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCByZWFkb25seSBzd2l0Y2ggPSBpbmplY3RTd2l0Y2goKTtcbn1cbiJdfQ==
|
@@ -0,0 +1,125 @@
|
|
1
|
+
import { Directive, ElementRef, EventEmitter, HostListener, Input, Output, booleanAttribute, inject } from '@angular/core';
|
2
|
+
import { NG_VALUE_ACCESSOR } from '@angular/forms';
|
3
|
+
import { SwitchToken } from './switch.token';
|
4
|
+
import * as i0 from "@angular/core";
|
5
|
+
export class SwitchDirective {
|
6
|
+
constructor() {
|
7
|
+
/**
|
8
|
+
* Access the element ref.
|
9
|
+
*/
|
10
|
+
this.elementRef = inject(ElementRef);
|
11
|
+
/**
|
12
|
+
* Determine if the switch is a button
|
13
|
+
*/
|
14
|
+
this.isButton = this.elementRef.nativeElement.tagName === 'BUTTON';
|
15
|
+
/**
|
16
|
+
* Determine if the switch is checked.
|
17
|
+
* The controlled state of the switch.
|
18
|
+
* @default false
|
19
|
+
*/
|
20
|
+
this.checked = false;
|
21
|
+
/**
|
22
|
+
* Determine if the switch is disabled.
|
23
|
+
* When true, prevents the user from interacting with the switch.
|
24
|
+
* @default false
|
25
|
+
*/
|
26
|
+
this.disabled = false;
|
27
|
+
/**
|
28
|
+
* Event emitted when the checked state changes.
|
29
|
+
*/
|
30
|
+
this.checkedChange = new EventEmitter();
|
31
|
+
}
|
32
|
+
/**
|
33
|
+
* Register the onChange callback.
|
34
|
+
* @param fn The onChange callback.
|
35
|
+
* @internal
|
36
|
+
*/
|
37
|
+
registerOnChange(fn) {
|
38
|
+
this.onChange = fn;
|
39
|
+
}
|
40
|
+
/**
|
41
|
+
* Register the onTouched callback.
|
42
|
+
* @param fn The onTouched callback.
|
43
|
+
* @internal
|
44
|
+
*/
|
45
|
+
registerOnTouched(fn) {
|
46
|
+
this.onTouched = fn;
|
47
|
+
}
|
48
|
+
/**
|
49
|
+
* Write the value to the checked state.
|
50
|
+
* @param checked The checked state.
|
51
|
+
* @internal
|
52
|
+
*/
|
53
|
+
writeValue(checked) {
|
54
|
+
this.checked = checked;
|
55
|
+
}
|
56
|
+
/**
|
57
|
+
* Set the disabled state.
|
58
|
+
* @param isDisabled The disabled state.
|
59
|
+
* @internal
|
60
|
+
*/
|
61
|
+
setDisabledState(isDisabled) {
|
62
|
+
this.disabled = isDisabled;
|
63
|
+
}
|
64
|
+
/**
|
65
|
+
* Toggle the checked state.
|
66
|
+
*/
|
67
|
+
toggle() {
|
68
|
+
if (this.disabled) {
|
69
|
+
return;
|
70
|
+
}
|
71
|
+
this.checked = !this.checked;
|
72
|
+
this.checkedChange.emit(this.checked);
|
73
|
+
this.onChange?.(this.checked);
|
74
|
+
}
|
75
|
+
/**
|
76
|
+
* Handle the keydown event.
|
77
|
+
*/
|
78
|
+
onKeyDown() {
|
79
|
+
// If the switch is not a button then the space key will not toggle the checked state automatically,
|
80
|
+
// so we need to do it manually.
|
81
|
+
if (!this.isButton) {
|
82
|
+
this.toggle();
|
83
|
+
}
|
84
|
+
}
|
85
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: SwitchDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
86
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.3.3", type: SwitchDirective, isStandalone: true, selector: "[rdxSwitch]", inputs: { checked: ["checked", "checked", booleanAttribute], disabled: ["disabled", "disabled", booleanAttribute] }, outputs: { checkedChange: "checkedChange" }, host: { attributes: { "role": "switch" }, listeners: { "focus": "onTouched?.()", "click": "toggle()", "keydown.space": "onKeyDown()" }, properties: { "attr.type": "isButton ? \"button\" : null", "attr.aria-checked": "checked", "attr.data-state": "checked ? \"checked\" : \"unchecked\"", "attr.data-disabled": "disabled ? \"true\" : null", "attr.disabled": "isButton && disabled ? disabled : null" } }, providers: [
|
87
|
+
{ provide: SwitchToken, useExisting: SwitchDirective },
|
88
|
+
{ provide: NG_VALUE_ACCESSOR, useExisting: SwitchDirective, multi: true }
|
89
|
+
], ngImport: i0 }); }
|
90
|
+
}
|
91
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: SwitchDirective, decorators: [{
|
92
|
+
type: Directive,
|
93
|
+
args: [{
|
94
|
+
selector: '[rdxSwitch]',
|
95
|
+
standalone: true,
|
96
|
+
providers: [
|
97
|
+
{ provide: SwitchToken, useExisting: SwitchDirective },
|
98
|
+
{ provide: NG_VALUE_ACCESSOR, useExisting: SwitchDirective, multi: true }
|
99
|
+
],
|
100
|
+
host: {
|
101
|
+
role: 'switch',
|
102
|
+
'[attr.type]': 'isButton ? "button" : null',
|
103
|
+
'[attr.aria-checked]': 'checked',
|
104
|
+
'[attr.data-state]': 'checked ? "checked" : "unchecked"',
|
105
|
+
'[attr.data-disabled]': 'disabled ? "true" : null',
|
106
|
+
'[attr.disabled]': 'isButton && disabled ? disabled : null',
|
107
|
+
'(focus)': 'onTouched?.()'
|
108
|
+
}
|
109
|
+
}]
|
110
|
+
}], propDecorators: { checked: [{
|
111
|
+
type: Input,
|
112
|
+
args: [{ transform: booleanAttribute }]
|
113
|
+
}], disabled: [{
|
114
|
+
type: Input,
|
115
|
+
args: [{ transform: booleanAttribute }]
|
116
|
+
}], checkedChange: [{
|
117
|
+
type: Output
|
118
|
+
}], toggle: [{
|
119
|
+
type: HostListener,
|
120
|
+
args: ['click']
|
121
|
+
}], onKeyDown: [{
|
122
|
+
type: HostListener,
|
123
|
+
args: ['keydown.space']
|
124
|
+
}] } });
|
125
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvc3dpdGNoL3NyYy9zd2l0Y2guZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixnQkFBZ0IsRUFDaEIsTUFBTSxFQUNULE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN6RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7O0FBbUI3QyxNQUFNLE9BQU8sZUFBZTtJQWpCNUI7UUFrQkk7O1dBRUc7UUFDYyxlQUFVLEdBQUcsTUFBTSxDQUEwQixVQUFVLENBQUMsQ0FBQztRQUUxRTs7V0FFRztRQUNPLGFBQVEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxPQUFPLEtBQUssUUFBUSxDQUFDO1FBRXhFOzs7O1dBSUc7UUFDcUMsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUV4RDs7OztXQUlHO1FBQ3FDLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFekQ7O1dBRUc7UUFDZ0Isa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO0tBeUVsRTtJQTdERzs7OztPQUlHO0lBQ0gsZ0JBQWdCLENBQUMsRUFBOEI7UUFDM0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVEOzs7O09BSUc7SUFDSCxpQkFBaUIsQ0FBQyxFQUFjO1FBQzVCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3hCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsVUFBVSxDQUFDLE9BQWdCO1FBQ3ZCLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO0lBQzNCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0gsZ0JBQWdCLENBQUMsVUFBbUI7UUFDaEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7SUFDL0IsQ0FBQztJQUVEOztPQUVHO0lBRUgsTUFBTTtRQUNGLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2hCLE9BQU87UUFDWCxDQUFDO1FBRUQsSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7UUFDN0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVEOztPQUVHO0lBRU8sU0FBUztRQUNmLG9HQUFvRztRQUNwRyxnQ0FBZ0M7UUFDaEMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUNqQixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDbEIsQ0FBQztJQUNMLENBQUM7OEdBcEdRLGVBQWU7a0dBQWYsZUFBZSx5RkFnQkosZ0JBQWdCLHNDQU9oQixnQkFBZ0IsK2NBckN6QjtZQUNQLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxXQUFXLEVBQUUsZUFBZSxFQUFFO1lBQ3RELEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFdBQVcsRUFBRSxlQUFlLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtTQUM1RTs7MkZBV1EsZUFBZTtrQkFqQjNCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLGFBQWE7b0JBQ3ZCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixTQUFTLEVBQUU7d0JBQ1AsRUFBRSxPQUFPLEVBQUUsV0FBVyxFQUFFLFdBQVcsaUJBQWlCLEVBQUU7d0JBQ3RELEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFdBQVcsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRTtxQkFDNUU7b0JBQ0QsSUFBSSxFQUFFO3dCQUNGLElBQUksRUFBRSxRQUFRO3dCQUNkLGFBQWEsRUFBRSw0QkFBNEI7d0JBQzNDLHFCQUFxQixFQUFFLFNBQVM7d0JBQ2hDLG1CQUFtQixFQUFFLG1DQUFtQzt3QkFDeEQsc0JBQXNCLEVBQUUsMEJBQTBCO3dCQUNsRCxpQkFBaUIsRUFBRSx3Q0FBd0M7d0JBQzNELFNBQVMsRUFBRSxlQUFlO3FCQUM3QjtpQkFDSjs4QkFpQjJDLE9BQU87c0JBQTlDLEtBQUs7dUJBQUMsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBT0UsUUFBUTtzQkFBL0MsS0FBSzt1QkFBQyxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFLbkIsYUFBYTtzQkFBL0IsTUFBTTtnQkFvRFAsTUFBTTtzQkFETCxZQUFZO3VCQUFDLE9BQU87Z0JBZVgsU0FBUztzQkFEbEIsWUFBWTt1QkFBQyxlQUFlIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBFdmVudEVtaXR0ZXIsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBib29sZWFuQXR0cmlidXRlLFxuICAgIGluamVjdFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IFN3aXRjaFRva2VuIH0gZnJvbSAnLi9zd2l0Y2gudG9rZW4nO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tyZHhTd2l0Y2hdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7IHByb3ZpZGU6IFN3aXRjaFRva2VuLCB1c2VFeGlzdGluZzogU3dpdGNoRGlyZWN0aXZlIH0sXG4gICAgICAgIHsgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsIHVzZUV4aXN0aW5nOiBTd2l0Y2hEaXJlY3RpdmUsIG11bHRpOiB0cnVlIH1cbiAgICBdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgcm9sZTogJ3N3aXRjaCcsXG4gICAgICAgICdbYXR0ci50eXBlXSc6ICdpc0J1dHRvbiA/IFwiYnV0dG9uXCIgOiBudWxsJyxcbiAgICAgICAgJ1thdHRyLmFyaWEtY2hlY2tlZF0nOiAnY2hlY2tlZCcsXG4gICAgICAgICdbYXR0ci5kYXRhLXN0YXRlXSc6ICdjaGVja2VkID8gXCJjaGVja2VkXCIgOiBcInVuY2hlY2tlZFwiJyxcbiAgICAgICAgJ1thdHRyLmRhdGEtZGlzYWJsZWRdJzogJ2Rpc2FibGVkID8gXCJ0cnVlXCIgOiBudWxsJyxcbiAgICAgICAgJ1thdHRyLmRpc2FibGVkXSc6ICdpc0J1dHRvbiAmJiBkaXNhYmxlZCA/IGRpc2FibGVkIDogbnVsbCcsXG4gICAgICAgICcoZm9jdXMpJzogJ29uVG91Y2hlZD8uKCknXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBTd2l0Y2hEaXJlY3RpdmUgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG4gICAgLyoqXG4gICAgICogQWNjZXNzIHRoZSBlbGVtZW50IHJlZi5cbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWYgPSBpbmplY3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KEVsZW1lbnRSZWYpO1xuXG4gICAgLyoqXG4gICAgICogRGV0ZXJtaW5lIGlmIHRoZSBzd2l0Y2ggaXMgYSBidXR0b25cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgaXNCdXR0b24gPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC50YWdOYW1lID09PSAnQlVUVE9OJztcblxuICAgIC8qKlxuICAgICAqIERldGVybWluZSBpZiB0aGUgc3dpdGNoIGlzIGNoZWNrZWQuXG4gICAgICogVGhlIGNvbnRyb2xsZWQgc3RhdGUgb2YgdGhlIHN3aXRjaC5cbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCh7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBjaGVja2VkID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBEZXRlcm1pbmUgaWYgdGhlIHN3aXRjaCBpcyBkaXNhYmxlZC5cbiAgICAgKiBXaGVuIHRydWUsIHByZXZlbnRzIHRoZSB1c2VyIGZyb20gaW50ZXJhY3Rpbmcgd2l0aCB0aGUgc3dpdGNoLlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGRpc2FibGVkID0gZmFsc2U7XG5cbiAgICAvKipcbiAgICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIGNoZWNrZWQgc3RhdGUgY2hhbmdlcy5cbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgY2hlY2tlZENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICAgIC8qKlxuICAgICAqIFN0b3JlIHRoZSBvbkNoYW5nZSBjYWxsYmFjay5cbiAgICAgKi9cbiAgICBwcml2YXRlIG9uQ2hhbmdlPzogKGNoZWNrZWQ6IGJvb2xlYW4pID0+IHZvaWQ7XG5cbiAgICAvKipcbiAgICAgKiBTdG9yZSB0aGUgb25Ub3VjaGVkIGNhbGxiYWNrLlxuICAgICAqL1xuICAgIHByb3RlY3RlZCBvblRvdWNoZWQ/OiAoKSA9PiB2b2lkO1xuXG4gICAgLyoqXG4gICAgICogUmVnaXN0ZXIgdGhlIG9uQ2hhbmdlIGNhbGxiYWNrLlxuICAgICAqIEBwYXJhbSBmbiBUaGUgb25DaGFuZ2UgY2FsbGJhY2suXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKGNoZWNrZWQ6IGJvb2xlYW4pID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vbkNoYW5nZSA9IGZuO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlZ2lzdGVyIHRoZSBvblRvdWNoZWQgY2FsbGJhY2suXG4gICAgICogQHBhcmFtIGZuIFRoZSBvblRvdWNoZWQgY2FsbGJhY2suXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcmVnaXN0ZXJPblRvdWNoZWQoZm46ICgpID0+IHZvaWQpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBXcml0ZSB0aGUgdmFsdWUgdG8gdGhlIGNoZWNrZWQgc3RhdGUuXG4gICAgICogQHBhcmFtIGNoZWNrZWQgVGhlIGNoZWNrZWQgc3RhdGUuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgd3JpdGVWYWx1ZShjaGVja2VkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY2hlY2tlZCA9IGNoZWNrZWQ7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2V0IHRoZSBkaXNhYmxlZCBzdGF0ZS5cbiAgICAgKiBAcGFyYW0gaXNEaXNhYmxlZCBUaGUgZGlzYWJsZWQgc3RhdGUuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQgPSBpc0Rpc2FibGVkO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRvZ2dsZSB0aGUgY2hlY2tlZCBzdGF0ZS5cbiAgICAgKi9cbiAgICBASG9zdExpc3RlbmVyKCdjbGljaycpXG4gICAgdG9nZ2xlKCk6IHZvaWQge1xuICAgICAgICBpZiAodGhpcy5kaXNhYmxlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5jaGVja2VkID0gIXRoaXMuY2hlY2tlZDtcbiAgICAgICAgdGhpcy5jaGVja2VkQ2hhbmdlLmVtaXQodGhpcy5jaGVja2VkKTtcbiAgICAgICAgdGhpcy5vbkNoYW5nZT8uKHRoaXMuY2hlY2tlZCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSGFuZGxlIHRoZSBrZXlkb3duIGV2ZW50LlxuICAgICAqL1xuICAgIEBIb3N0TGlzdGVuZXIoJ2tleWRvd24uc3BhY2UnKVxuICAgIHByb3RlY3RlZCBvbktleURvd24oKTogdm9pZCB7XG4gICAgICAgIC8vIElmIHRoZSBzd2l0Y2ggaXMgbm90IGEgYnV0dG9uIHRoZW4gdGhlIHNwYWNlIGtleSB3aWxsIG5vdCB0b2dnbGUgdGhlIGNoZWNrZWQgc3RhdGUgYXV0b21hdGljYWxseSxcbiAgICAgICAgLy8gc28gd2UgbmVlZCB0byBkbyBpdCBtYW51YWxseS5cbiAgICAgICAgaWYgKCF0aGlzLmlzQnV0dG9uKSB7XG4gICAgICAgICAgICB0aGlzLnRvZ2dsZSgpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
@@ -0,0 +1,6 @@
|
|
1
|
+
import { InjectionToken, inject } from '@angular/core';
|
2
|
+
export const SwitchToken = new InjectionToken('SwitchToken');
|
3
|
+
export function injectSwitch() {
|
4
|
+
return inject(SwitchToken);
|
5
|
+
}
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLnRva2VuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcHJpbWl0aXZlcy9zd2l0Y2gvc3JjL3N3aXRjaC50b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd2RCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsSUFBSSxjQUFjLENBQWtCLGFBQWEsQ0FBQyxDQUFDO0FBRTlFLE1BQU0sVUFBVSxZQUFZO0lBQ3hCLE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQy9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgdHlwZSB7IFN3aXRjaERpcmVjdGl2ZSB9IGZyb20gJy4vc3dpdGNoLmRpcmVjdGl2ZSc7XG5cbmV4cG9ydCBjb25zdCBTd2l0Y2hUb2tlbiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxTd2l0Y2hEaXJlY3RpdmU+KCdTd2l0Y2hUb2tlbicpO1xuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0U3dpdGNoKCk6IFN3aXRjaERpcmVjdGl2ZSB7XG4gICAgcmV0dXJuIGluamVjdChTd2l0Y2hUb2tlbik7XG59XG4iXX0=
|
@@ -0,0 +1,2 @@
|
|
1
|
+
export * from './src/visually-hidden.directive';
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9wcmltaXRpdmVzL3Zpc3VhbGx5LWhpZGRlbi9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGlDQUFpQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zcmMvdmlzdWFsbHktaGlkZGVuLmRpcmVjdGl2ZSc7XG4iXX0=
|
@@ -0,0 +1,5 @@
|
|
1
|
+
/**
|
2
|
+
* Generated bundle index. Do not edit.
|
3
|
+
*/
|
4
|
+
export * from './index';
|
5
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaXgtbmctcHJpbWl0aXZlcy12aXN1YWxseS1oaWRkZW4uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9wcmltaXRpdmVzL3Zpc3VhbGx5LWhpZGRlbi9yYWRpeC1uZy1wcmltaXRpdmVzLXZpc3VhbGx5LWhpZGRlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
|
@@ -0,0 +1,42 @@
|
|
1
|
+
import { Directive, ElementRef, inject } from '@angular/core';
|
2
|
+
import * as i0 from "@angular/core";
|
3
|
+
export class VisuallyHiddenDirective {
|
4
|
+
constructor() {
|
5
|
+
/**
|
6
|
+
* Access the element.
|
7
|
+
*/
|
8
|
+
this.element = inject(ElementRef);
|
9
|
+
}
|
10
|
+
ngOnInit() {
|
11
|
+
// hide the element
|
12
|
+
Object.assign(this.element.nativeElement.style, {
|
13
|
+
position: 'absolute',
|
14
|
+
border: 0,
|
15
|
+
width: '1px',
|
16
|
+
height: '1px',
|
17
|
+
padding: 0,
|
18
|
+
margin: '-1px',
|
19
|
+
overflow: 'hidden',
|
20
|
+
clip: 'rect(0, 0, 0, 0)',
|
21
|
+
whiteSpace: 'nowrap',
|
22
|
+
wordWrap: 'normal',
|
23
|
+
// Avoid browsers rendering the focus ring in some cases.
|
24
|
+
outline: 'none',
|
25
|
+
appearance: 'none',
|
26
|
+
// Avoid some cases where the browser will still render the native controls
|
27
|
+
'-webkit-appearance': 'none',
|
28
|
+
'-moz-appearance': 'none',
|
29
|
+
left: 0
|
30
|
+
});
|
31
|
+
}
|
32
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: VisuallyHiddenDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
33
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.3", type: VisuallyHiddenDirective, isStandalone: true, selector: "[rdxVisuallyHidden]", ngImport: i0 }); }
|
34
|
+
}
|
35
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: VisuallyHiddenDirective, decorators: [{
|
36
|
+
type: Directive,
|
37
|
+
args: [{
|
38
|
+
selector: '[rdxVisuallyHidden]',
|
39
|
+
standalone: true
|
40
|
+
}]
|
41
|
+
}] });
|
42
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzdWFsbHktaGlkZGVuLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvdmlzdWFsbHktaGlkZGVuL3NyYy92aXN1YWxseS1oaWRkZW4uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNdEUsTUFBTSxPQUFPLHVCQUF1QjtJQUpwQztRQUtJOztXQUVHO1FBQ2MsWUFBTyxHQUFHLE1BQU0sQ0FBMEIsVUFBVSxDQUFDLENBQUM7S0F3QjFFO0lBdEJHLFFBQVE7UUFDSixtQkFBbUI7UUFDbkIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUU7WUFDNUMsUUFBUSxFQUFFLFVBQVU7WUFDcEIsTUFBTSxFQUFFLENBQUM7WUFDVCxLQUFLLEVBQUUsS0FBSztZQUNaLE1BQU0sRUFBRSxLQUFLO1lBQ2IsT0FBTyxFQUFFLENBQUM7WUFDVixNQUFNLEVBQUUsTUFBTTtZQUNkLFFBQVEsRUFBRSxRQUFRO1lBQ2xCLElBQUksRUFBRSxrQkFBa0I7WUFDeEIsVUFBVSxFQUFFLFFBQVE7WUFDcEIsUUFBUSxFQUFFLFFBQVE7WUFDbEIseURBQXlEO1lBQ3pELE9BQU8sRUFBRSxNQUFNO1lBQ2YsVUFBVSxFQUFFLE1BQU07WUFDbEIsMkVBQTJFO1lBQzNFLG9CQUFvQixFQUFFLE1BQU07WUFDNUIsaUJBQWlCLEVBQUUsTUFBTTtZQUN6QixJQUFJLEVBQUUsQ0FBQztTQUNWLENBQUMsQ0FBQztJQUNQLENBQUM7OEdBM0JRLHVCQUF1QjtrR0FBdkIsdUJBQXVCOzsyRkFBdkIsdUJBQXVCO2tCQUpuQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFVBQVUsRUFBRSxJQUFJO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgT25Jbml0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbcmR4VmlzdWFsbHlIaWRkZW5dJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIFZpc3VhbGx5SGlkZGVuRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICAvKipcbiAgICAgKiBBY2Nlc3MgdGhlIGVsZW1lbnQuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50ID0gaW5qZWN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PihFbGVtZW50UmVmKTtcblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICAvLyBoaWRlIHRoZSBlbGVtZW50XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuc3R5bGUsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgICAgICAgYm9yZGVyOiAwLFxuICAgICAgICAgICAgd2lkdGg6ICcxcHgnLFxuICAgICAgICAgICAgaGVpZ2h0OiAnMXB4JyxcbiAgICAgICAgICAgIHBhZGRpbmc6IDAsXG4gICAgICAgICAgICBtYXJnaW46ICctMXB4JyxcbiAgICAgICAgICAgIG92ZXJmbG93OiAnaGlkZGVuJyxcbiAgICAgICAgICAgIGNsaXA6ICdyZWN0KDAsIDAsIDAsIDApJyxcbiAgICAgICAgICAgIHdoaXRlU3BhY2U6ICdub3dyYXAnLFxuICAgICAgICAgICAgd29yZFdyYXA6ICdub3JtYWwnLFxuICAgICAgICAgICAgLy8gQXZvaWQgYnJvd3NlcnMgcmVuZGVyaW5nIHRoZSBmb2N1cyByaW5nIGluIHNvbWUgY2FzZXMuXG4gICAgICAgICAgICBvdXRsaW5lOiAnbm9uZScsXG4gICAgICAgICAgICBhcHBlYXJhbmNlOiAnbm9uZScsXG4gICAgICAgICAgICAvLyBBdm9pZCBzb21lIGNhc2VzIHdoZXJlIHRoZSBicm93c2VyIHdpbGwgc3RpbGwgcmVuZGVyIHRoZSBuYXRpdmUgY29udHJvbHNcbiAgICAgICAgICAgICctd2Via2l0LWFwcGVhcmFuY2UnOiAnbm9uZScsXG4gICAgICAgICAgICAnLW1vei1hcHBlYXJhbmNlJzogJ25vbmUnLFxuICAgICAgICAgICAgbGVmdDogMFxuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
|