UNPKG

4.35 kBJavaScriptView Raw
1import { CssProperty, InheritedCssProperty, Property } from '../ui/core/properties';
2import { booleanConverter } from '../ui/core/view-base';
3import { Style } from '../ui/styling/style';
4import { AccessibilityLiveRegion, AccessibilityRole, AccessibilityState } from './accessibility-types';
5function makePropertyEnumConverter(enumValues) {
6 return (value) => {
7 if (!value || typeof value !== 'string') {
8 return null;
9 }
10 for (const [enumKey, enumValue] of Object.entries(enumValues)) {
11 if (typeof enumKey !== 'string') {
12 continue;
13 }
14 if (enumKey === value || `${enumValue}`.toLowerCase() === `${value}`.toLowerCase()) {
15 return enumValue;
16 }
17 }
18 return null;
19 };
20}
21export const accessibilityEnabledProperty = new CssProperty({
22 name: 'accessible',
23 cssName: 'a11y-enabled',
24 valueConverter: booleanConverter,
25});
26accessibilityEnabledProperty.register(Style);
27export const iosAccessibilityAdjustsFontSizeProperty = new InheritedCssProperty({
28 defaultValue: false,
29 name: 'iosAccessibilityAdjustsFontSize',
30 cssName: 'ios-a11y-adjusts-font-size',
31 valueConverter: booleanConverter,
32});
33iosAccessibilityAdjustsFontSizeProperty.register(Style);
34export const iosAccessibilityMinFontScaleProperty = new InheritedCssProperty({
35 defaultValue: 0,
36 name: 'iosAccessibilityMinFontScale',
37 cssName: 'ios-a11y-min-font-scale',
38 valueConverter: parseFloat,
39});
40iosAccessibilityMinFontScaleProperty.register(Style);
41export const iosAccessibilityMaxFontScaleProperty = new InheritedCssProperty({
42 defaultValue: 0,
43 name: 'iosAccessibilityMaxFontScale',
44 cssName: 'ios-a11y-max-font-scale',
45 valueConverter: parseFloat,
46});
47iosAccessibilityMaxFontScaleProperty.register(Style);
48export const accessibilityHiddenProperty = new (__APPLE__ ? InheritedCssProperty : CssProperty)({
49 name: 'accessibilityHidden',
50 cssName: 'a11y-hidden',
51 valueConverter: booleanConverter,
52});
53accessibilityHiddenProperty.register(Style);
54export const accessibilityIdentifierProperty = new Property({
55 name: 'accessibilityIdentifier',
56});
57export const accessibilityRoleProperty = new CssProperty({
58 name: 'accessibilityRole',
59 cssName: 'a11y-role',
60 valueConverter: makePropertyEnumConverter(AccessibilityRole),
61});
62accessibilityRoleProperty.register(Style);
63export const accessibilityStateProperty = new CssProperty({
64 name: 'accessibilityState',
65 cssName: 'a11y-state',
66 valueConverter: makePropertyEnumConverter(AccessibilityState),
67});
68accessibilityStateProperty.register(Style);
69export const accessibilityLabelProperty = new Property({
70 name: 'accessibilityLabel',
71});
72export const accessibilityValueProperty = new Property({
73 name: 'accessibilityValue',
74});
75export const accessibilityHintProperty = new Property({
76 name: 'accessibilityHint',
77});
78export const accessibilityIgnoresInvertColorsProperty = new Property({
79 name: 'accessibilityIgnoresInvertColors',
80 valueConverter: booleanConverter,
81});
82export const accessibilityLiveRegionProperty = new CssProperty({
83 name: 'accessibilityLiveRegion',
84 cssName: 'a11y-live-region',
85 defaultValue: AccessibilityLiveRegion.None,
86 valueConverter: makePropertyEnumConverter(AccessibilityLiveRegion),
87});
88accessibilityLiveRegionProperty.register(Style);
89export const accessibilityTraitsProperty = new Property({
90 name: 'accessibilityTraits',
91});
92export const accessibilityLanguageProperty = new CssProperty({
93 name: 'accessibilityLanguage',
94 cssName: 'a11y-lang',
95});
96accessibilityLanguageProperty.register(Style);
97export const accessibilityMediaSessionProperty = new CssProperty({
98 name: 'accessibilityMediaSession',
99 cssName: 'a11y-media-session',
100});
101accessibilityMediaSessionProperty.register(Style);
102/**
103 * Represents the observable property backing the accessibilityStep property.
104 */
105export const accessibilityStepProperty = new CssProperty({
106 name: 'accessibilityStep',
107 cssName: 'a11y-step',
108 defaultValue: 10,
109 valueConverter: (v) => {
110 const step = parseFloat(v);
111 if (isNaN(step) || step <= 0) {
112 return 10;
113 }
114 return step;
115 },
116});
117accessibilityStepProperty.register(Style);
118//# sourceMappingURL=accessibility-properties.js.map
\No newline at end of file