@progress/kendo-vue-common
Version:
Kendo UI for Vue Common Utilities package
9 lines (8 loc) • 1.63 kB
JavaScript
/**
* @license
*-------------------------------------------------------------------------------------------
* Copyright © 2026 Progress Software Corporation. All rights reserved.
* Licensed under commercial license. See LICENSE.md in the package root for more information
*-------------------------------------------------------------------------------------------
*/
;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("./keys.js"),f=require("./constants/main.js"),e=(s,i=f.FOCUSABLE_ELEMENTS)=>s.querySelectorAll(i.join(",")),l=(s,i=f.FOCUSABLE_ELEMENTS)=>{if(s){const t=e(s,i);if(t.length&&t[0].focus)return t[0]}},n=(s,i=f.FOCUSABLE_ELEMENTS)=>{if(s){const t=e(s,i);if(t.length&&t[t.length-1].focus)return t[t.length-1]}},u=(s,i)=>{if(s){const t=l(s,i);t&&t.focus()}},c=(s,i,t)=>{if(!(!i||s.keyCode!==a.Keys.tab)&&i){const o=l(i,t),r=n(i,t);o&&r&&!s.shiftKey&&s.target===r&&(s.preventDefault(),o.focus()),o&&r&&s.shiftKey&&s.target===o&&(s.preventDefault(),r.focus()),o||s.preventDefault()}},C=(s,i,t,o)=>{let r=!0;if(s.keyCode!==a.Keys.enter&&s.target===i){t&&t(!1);return}s.keyCode===a.Keys.enter&&s.target===i?setTimeout(()=>{u(i,o)},1):s.keyCode===a.Keys.esc?i.focus():c(s,i,o),t&&t(r)},b=(s,i)=>{const t=e(s,i);t==null||t.forEach(o=>{o.tabIndex=0})},d=(s,i)=>{const t=e(s,i);t==null||t.forEach(o=>{o.tabIndex=-1})};exports.applyTrappedFocus=C;exports.disableNavigatableContainer=d;exports.enableNavigatableContainer=b;exports.firstFocusableChild=l;exports.focusFirstFocusableChild=u;exports.focusableChildren=e;exports.keepFocusInContainer=c;exports.lastFocusableChild=n;