@taiga-ui/cdk
Version:
Base library for creating Angular components and applications using Taiga UI principles regarding of actual visual appearance
19 lines • 2.26 kB
JavaScript
import { tuiIsNativeFocused } from './is-native-focused';
/**
* Utility method for moving focus in a list of elements
*
* @param currentIndex currently focused index
* @param elements array of focusable elements
* @param step a step to move focus by, typically -1 or 1
*/
export function tuiMoveFocus(currentIndex, elements, step) {
currentIndex += step;
while (currentIndex >= 0 && currentIndex < elements.length) {
elements[currentIndex]?.focus();
if (tuiIsNativeFocused(elements[currentIndex])) {
return;
}
currentIndex += step;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW92ZS1mb2N1cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Nkay91dGlscy9mb2N1cy9tb3ZlLWZvY3VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxrQkFBa0IsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBRXZEOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxZQUFZLENBQ3hCLFlBQW9CLEVBQ3BCLFFBQWdDLEVBQ2hDLElBQVk7SUFFWixZQUFZLElBQUksSUFBSSxDQUFDO0lBRXJCLE9BQU8sWUFBWSxJQUFJLENBQUMsSUFBSSxZQUFZLEdBQUcsUUFBUSxDQUFDLE1BQU0sRUFBRTtRQUN4RCxRQUFRLENBQUMsWUFBWSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFFaEMsSUFBSSxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUMsRUFBRTtZQUM1QyxPQUFPO1NBQ1Y7UUFFRCxZQUFZLElBQUksSUFBSSxDQUFDO0tBQ3hCO0FBQ0wsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7dHVpSXNOYXRpdmVGb2N1c2VkfSBmcm9tICcuL2lzLW5hdGl2ZS1mb2N1c2VkJztcblxuLyoqXG4gKiBVdGlsaXR5IG1ldGhvZCBmb3IgbW92aW5nIGZvY3VzIGluIGEgbGlzdCBvZiBlbGVtZW50c1xuICpcbiAqIEBwYXJhbSBjdXJyZW50SW5kZXggY3VycmVudGx5IGZvY3VzZWQgaW5kZXhcbiAqIEBwYXJhbSBlbGVtZW50cyBhcnJheSBvZiBmb2N1c2FibGUgZWxlbWVudHNcbiAqIEBwYXJhbSBzdGVwIGEgc3RlcCB0byBtb3ZlIGZvY3VzIGJ5LCB0eXBpY2FsbHkgLTEgb3IgMVxuICovXG5leHBvcnQgZnVuY3Rpb24gdHVpTW92ZUZvY3VzKFxuICAgIGN1cnJlbnRJbmRleDogbnVtYmVyLFxuICAgIGVsZW1lbnRzOiByZWFkb25seSBIVE1MRWxlbWVudFtdLFxuICAgIHN0ZXA6IG51bWJlcixcbik6IHZvaWQge1xuICAgIGN1cnJlbnRJbmRleCArPSBzdGVwO1xuXG4gICAgd2hpbGUgKGN1cnJlbnRJbmRleCA+PSAwICYmIGN1cnJlbnRJbmRleCA8IGVsZW1lbnRzLmxlbmd0aCkge1xuICAgICAgICBlbGVtZW50c1tjdXJyZW50SW5kZXhdPy5mb2N1cygpO1xuXG4gICAgICAgIGlmICh0dWlJc05hdGl2ZUZvY3VzZWQoZWxlbWVudHNbY3VycmVudEluZGV4XSkpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGN1cnJlbnRJbmRleCArPSBzdGVwO1xuICAgIH1cbn1cbiJdfQ==