@progress/kendo-vue-data-tools
Version:
107 lines (106 loc) • 3.72 kB
JavaScript
/**
* @license
*-------------------------------------------------------------------------------------------
* Copyright © 2025 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the package root for more information
*-------------------------------------------------------------------------------------------
*/
import { KEYBOARD_NAV_FILTER_COL_SUFFIX as E, KEYBOARD_NAV_DATA_ID as a, FOCUSABLE_ELEMENTS as i, KEYBOARD_NAV_DATA_LEVEL as u, TABBABLE_ELEMENTS as f, KEYBOARD_NAV_DATA_BODY as g, KEYBOARD_NAV_DATA_HEADER as d, KEYBOARD_NAV_DATA_SCOPE as _ } from "./constants.mjs";
const b = (e, t, r = "cell") => `${t}_${e}_${r}`, N = (e) => {
if (e)
return parseInt(e.getAttribute(u) || "", 10);
}, A = (e) => {
if (!e)
return;
const t = e.getAttribute(a);
return t || void 0;
}, c = (e) => e ? !!e.getAttribute(a) : !1, I = (e, t = { level: 0 }) => e.querySelector(`[${u}='${t.level}']`), v = (e) => e.parentElement && e.parentElement.closest(`[${u}]`), $ = (e, t) => e.querySelector(`[${a}='${t}']`), m = (e) => e.parentElement && e.parentElement.closest(`[${_}]`), B = (e) => e.querySelector(`[${d}]`), D = (e) => e.querySelector(`[${g}]`), y = (e, t = { focusable: !1 }) => {
let r = t.focusable ? i : f;
return Array.from(e.querySelectorAll(r.join(",")));
}, S = (e, t = { level: 0 }) => {
if (!e)
return [];
let r = i.map((n) => n + `[${u}='${t.level}']`).join(",");
return Array.from(e.querySelectorAll(r));
}, p = (e = { level: 0 }) => {
let t = i.map(
(r) => r + `[${u}='${e.level}']`
).join(",");
return (r) => r.matches(t);
}, x = (e) => {
const { elementForFocus: t, event: r, kbContext: n, prevElement: o } = e;
n && t && t.focus && (r.preventDefault(), t.focus(), c(t) && (t.setAttribute("tabIndex", "0"), n.activeId = A(t)), o && c(o) && o.setAttribute("tabIndex", "-1"));
}, O = (e) => e ? e.idPrefix : "", T = (e, t, r, n, o) => {
if (!r)
return [];
let l = e + (o ? -1 : 1);
for (; l >= 0 && l < n.length; ) {
const s = n[l][t];
if (s !== r)
return [s, [l, t]];
l = l + (o ? -1 : 1);
}
return [];
}, C = (e, t, r, n, o) => {
if (!r)
return [];
let l = t + (o ? -1 : 1);
for (; l >= 0 && l < n[e].length; ) {
const s = n[e][l];
if (s !== r)
return [s, [e, l]];
l = l + (o ? -1 : 1);
}
return [];
}, L = (e, t) => {
if (t) {
for (let r = 0; r < e.length; r++)
for (let n = 0; n < e[r].length; n++)
if (e[r][n] === t)
return [r, n];
}
}, h = (e) => e ? e.navigationMatrix.length : 0, F = (e) => e ? `${e}${E}` : "", K = {
generateNavigatableId: b,
getNavigatableId: A,
getNavigatableLevel: N,
getNavigatableElement: I,
getClosestNavigatableElement: v,
getActiveElement: $,
getClosestScope: m,
getHeaderElement: B,
getBodyElement: D,
getFocusableElements: y,
getNavigatableElements: S,
filterNavigatableElements: p,
focusElement: x,
getIdPrefix: O,
isNavigatable: c,
findNextIdByRowIndex: T,
findNextIdByCellIndex: C,
findId: L,
getNextNavigationIndex: h,
getFilterColumnId: F
};
export {
p as filterNavigatableElements,
L as findId,
C as findNextIdByCellIndex,
T as findNextIdByRowIndex,
x as focusElement,
b as generateNavigatableId,
$ as getActiveElement,
D as getBodyElement,
v as getClosestNavigatableElement,
m as getClosestScope,
F as getFilterColumnId,
y as getFocusableElements,
B as getHeaderElement,
O as getIdPrefix,
I as getNavigatableElement,
S as getNavigatableElements,
A as getNavigatableId,
N as getNavigatableLevel,
h as getNextNavigationIndex,
c as isNavigatable,
K as tableKeyboardNavigationTools
};