119 lines
4.5 KiB
TypeScript
119 lines
4.5 KiB
TypeScript
// Module ID: 5361
|
|
// Function ID: 5362
|
|
// Name: AccessibilityFocusLockManager
|
|
// Dependencies: [3, 2002, 5362, 5303, 2]
|
|
|
|
// Module 5361 (AccessibilityFocusLockManager)
|
|
import LoggerDefault from "Logger" /* 3 */;
|
|
import react_nativeDefault from "react-native" /* 5303 */;
|
|
import useIsScreenReaderEnabled from "useIsScreenReaderEnabled" /* 5362 */;
|
|
import LifecycleManager from "LifecycleManager" /* 2002 */;
|
|
import size from "module_2" /* 2 */;
|
|
|
|
const _false = new LoggerDefault("AccessibilityFocusLockManager");
|
|
new LoggerDefault("AccessibilityFocusLockManager");
|
|
class AccessibilityFocusLockManager extends LifecycleManager {
|
|
constructor() {
|
|
const applyArgumentsResult = HermesBuiltin.applyArguments(this, new.target);
|
|
const obj = useIsScreenReaderEnabled;
|
|
applyArgumentsResult._screenReaderEnabled = obj.getIsScreenReaderEnabled();
|
|
applyArgumentsResult._focusLockedNativeIDGroups = new Map();
|
|
applyArgumentsResult._focusLockEnabled = false;
|
|
applyArgumentsResult._focusLockEnabledDelayTimeoutId = -1;
|
|
applyArgumentsResult._focusLockEnabledDelayTimeout = 250;
|
|
new Map();
|
|
return applyArgumentsResult;
|
|
}
|
|
_updateAccessibilityFocusLock(arg0) {
|
|
let flag = arg0;
|
|
if (arg0 === undefined) {
|
|
flag = false;
|
|
}
|
|
const self = this;
|
|
let tmp;
|
|
clearTimeout(this._focusLockEnabledDelayTimeoutId);
|
|
let item10014;
|
|
const _focusLockedNativeIDGroups = this._focusLockedNativeIDGroups;
|
|
const values = _focusLockedNativeIDGroups.values();
|
|
for (const item10014 of values) {
|
|
tmp = item10014;
|
|
continue;
|
|
}
|
|
if (null != tmp) {
|
|
if (self._screenReaderEnabled) {
|
|
const _setTimeout = setTimeout;
|
|
self._focusLockEnabledDelayTimeoutId = setTimeout(() => {
|
|
const obj = react_nativeDefault;
|
|
obj.enableFocusLock(item10014, flag);
|
|
}, self._focusLockEnabledDelayTimeout);
|
|
self._focusLockEnabled = true;
|
|
}
|
|
}
|
|
if (self._focusLockEnabled) {
|
|
let obj = item10014(5303);
|
|
obj.disableFocusLock();
|
|
self._focusLockEnabled = false;
|
|
}
|
|
}
|
|
_initialize() {
|
|
const self = this;
|
|
const obj = useIsScreenReaderEnabled;
|
|
this._screenReaderEnabledListener = obj.addScreenReaderEnabledListener((_screenReaderEnabled) => {
|
|
self._screenReaderEnabled = _screenReaderEnabled;
|
|
const result = self._updateAccessibilityFocusLock();
|
|
});
|
|
}
|
|
_terminate() {
|
|
const self = this;
|
|
const _screenReaderEnabledListener = this._screenReaderEnabledListener;
|
|
if (_screenReaderEnabledListener != null) {
|
|
const result = _screenReaderEnabledListener();
|
|
}
|
|
const _focusLockedNativeIDGroups = self._focusLockedNativeIDGroups;
|
|
_focusLockedNativeIDGroups.clear();
|
|
const result1 = self._updateAccessibilityFocusLock();
|
|
}
|
|
enableAccessibilityFocusLock(items) {
|
|
if (0 === items.length) {
|
|
logger.error("No target view nativeIDs to add.");
|
|
}
|
|
const self = this;
|
|
const _focusLockedNativeIDGroups = this._focusLockedNativeIDGroups;
|
|
const values = _focusLockedNativeIDGroups.values();
|
|
const iter = values[Symbol.iterator]();
|
|
const nextResult = iter.next();
|
|
while (iter !== undefined) {
|
|
for (const item10024 of nextResult) {
|
|
let tmp7 = item10024;
|
|
if (items.includes(item10024)) {
|
|
let _HermesInternal = HermesInternal;
|
|
let errorResult1 = logger.error("Duplicate target view nativeID " + tmp7 + " already accessibility focus locked.");
|
|
}
|
|
continue;
|
|
}
|
|
continue;
|
|
}
|
|
const _focusLockedNativeIDGroups2 = self._focusLockedNativeIDGroups;
|
|
const result = _focusLockedNativeIDGroups2.set(items[0], items);
|
|
const result1 = self._updateAccessibilityFocusLock(true);
|
|
}
|
|
disableAccessibilityFocusLock(items1) {
|
|
if (0 === items1.length) {
|
|
logger.error("No target view nativeIDs to remove.");
|
|
}
|
|
const self = this;
|
|
const _focusLockedNativeIDGroups = this._focusLockedNativeIDGroups;
|
|
if (!_focusLockedNativeIDGroups.has(items1[0])) {
|
|
const _HermesInternal = HermesInternal;
|
|
logger.error("No target view nativeID " + items1[0] + " accessibility focus locked.");
|
|
}
|
|
const _focusLockedNativeIDGroups2 = self._focusLockedNativeIDGroups;
|
|
_focusLockedNativeIDGroups2.delete(items1[0]);
|
|
const result = self._updateAccessibilityFocusLock();
|
|
}
|
|
}
|
|
const prototype = AccessibilityFocusLockManager.prototype;
|
|
const accessibilityFocusLockManager = new AccessibilityFocusLockManager();
|
|
let result = size.fileFinishedImporting("modules/a11y/native/AccessibilityFocusLockManager.tsx");
|
|
|
|
export default accessibilityFocusLockManager;
|