@progress/kendo-vue-common
Version:
Kendo UI for Vue Common Utilities package
9 lines (8 loc) • 1.41 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
*-------------------------------------------------------------------------------------------
*/
;Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./keys.js"),o='input, [tabindex]:not([tabindex="-1"])',c=s=>{if(s){const t=s.querySelectorAll(o);if(t.length&&t[0].focus)return t[0]}},i=s=>{if(s){const t=s.querySelectorAll(o);if(t.length&&t[t.length-1].focus)return t[t.length-1]}},r=s=>{if(s){const t=s.querySelectorAll(o);t.length&&t[0].focus&&t[0].focus()}},n=s=>{if(s){const t=s.querySelectorAll(o);t.length&&t[t.length-1].focus&&t[t.length-1].focus()}},a=(s,t)=>{let l=!0;if(s.keyCode!==e.Keys.enter&&s.target===t)return!1;if(s.keyCode===e.Keys.enter&&s.target===t)l=!0,setTimeout(()=>{r(t)},1);else if(s.keyCode===e.Keys.esc)l=!1,t.focus();else if(s.keyCode===e.Keys.tab){const u=c(t),f=i(t);f&&!s.shiftKey&&s.target===f&&(s.preventDefault(),u.focus()),u&&s.shiftKey&&s.target===u&&(s.preventDefault(),f.focus())}return l};exports.firstFocusableChild=c;exports.focusContainer=a;exports.focusFirstFocusableChild=r;exports.focusLastFocusableChild=n;exports.lastFocusableChild=i;