UNPKG

@nativescript/core

Version:

A JavaScript library providing an easy to use api for interacting with iOS and Android platform APIs.

118 lines 4.35 kB
import { CssProperty, InheritedCssProperty, Property } from '../ui/core/properties'; import { booleanConverter } from '../ui/core/view-base'; import { Style } from '../ui/styling/style'; import { AccessibilityLiveRegion, AccessibilityRole, AccessibilityState } from './accessibility-types'; function makePropertyEnumConverter(enumValues) { return (value) => { if (!value || typeof value !== 'string') { return null; } for (const [enumKey, enumValue] of Object.entries(enumValues)) { if (typeof enumKey !== 'string') { continue; } if (enumKey === value || `${enumValue}`.toLowerCase() === `${value}`.toLowerCase()) { return enumValue; } } return null; }; } export const accessibilityEnabledProperty = new CssProperty({ name: 'accessible', cssName: 'a11y-enabled', valueConverter: booleanConverter, }); accessibilityEnabledProperty.register(Style); export const iosAccessibilityAdjustsFontSizeProperty = new InheritedCssProperty({ defaultValue: false, name: 'iosAccessibilityAdjustsFontSize', cssName: 'ios-a11y-adjusts-font-size', valueConverter: booleanConverter, }); iosAccessibilityAdjustsFontSizeProperty.register(Style); export const iosAccessibilityMinFontScaleProperty = new InheritedCssProperty({ defaultValue: 0, name: 'iosAccessibilityMinFontScale', cssName: 'ios-a11y-min-font-scale', valueConverter: parseFloat, }); iosAccessibilityMinFontScaleProperty.register(Style); export const iosAccessibilityMaxFontScaleProperty = new InheritedCssProperty({ defaultValue: 0, name: 'iosAccessibilityMaxFontScale', cssName: 'ios-a11y-max-font-scale', valueConverter: parseFloat, }); iosAccessibilityMaxFontScaleProperty.register(Style); export const accessibilityHiddenProperty = new (__APPLE__ ? InheritedCssProperty : CssProperty)({ name: 'accessibilityHidden', cssName: 'a11y-hidden', valueConverter: booleanConverter, }); accessibilityHiddenProperty.register(Style); export const accessibilityIdentifierProperty = new Property({ name: 'accessibilityIdentifier', }); export const accessibilityRoleProperty = new CssProperty({ name: 'accessibilityRole', cssName: 'a11y-role', valueConverter: makePropertyEnumConverter(AccessibilityRole), }); accessibilityRoleProperty.register(Style); export const accessibilityStateProperty = new CssProperty({ name: 'accessibilityState', cssName: 'a11y-state', valueConverter: makePropertyEnumConverter(AccessibilityState), }); accessibilityStateProperty.register(Style); export const accessibilityLabelProperty = new Property({ name: 'accessibilityLabel', }); export const accessibilityValueProperty = new Property({ name: 'accessibilityValue', }); export const accessibilityHintProperty = new Property({ name: 'accessibilityHint', }); export const accessibilityIgnoresInvertColorsProperty = new Property({ name: 'accessibilityIgnoresInvertColors', valueConverter: booleanConverter, }); export const accessibilityLiveRegionProperty = new CssProperty({ name: 'accessibilityLiveRegion', cssName: 'a11y-live-region', defaultValue: AccessibilityLiveRegion.None, valueConverter: makePropertyEnumConverter(AccessibilityLiveRegion), }); accessibilityLiveRegionProperty.register(Style); export const accessibilityTraitsProperty = new Property({ name: 'accessibilityTraits', }); export const accessibilityLanguageProperty = new CssProperty({ name: 'accessibilityLanguage', cssName: 'a11y-lang', }); accessibilityLanguageProperty.register(Style); export const accessibilityMediaSessionProperty = new CssProperty({ name: 'accessibilityMediaSession', cssName: 'a11y-media-session', }); accessibilityMediaSessionProperty.register(Style); /** * Represents the observable property backing the accessibilityStep property. */ export const accessibilityStepProperty = new CssProperty({ name: 'accessibilityStep', cssName: 'a11y-step', defaultValue: 10, valueConverter: (v) => { const step = parseFloat(v); if (isNaN(step) || step <= 0) { return 10; } return step; }, }); accessibilityStepProperty.register(Style); //# sourceMappingURL=accessibility-properties.js.map