1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[1139],{71139:(e,t,n)=>{n.d(t,{r:()=>i});var r=n(12115);function u(e){return Array.from(e.querySelectorAll('a[href],button:not([disabled]),input:not([disabled]):not([type="hidden"]),select:not([disabled]),textarea:not([disabled]),[tabindex]:not([tabindex="-1"]),[contenteditable="true"]')).filter(e=>e.offsetWidth>0||e.offsetHeight>0||e===document.activeElement)}function i(e,t,n={}){let{onEscape:o,restoreFocus:a=!0}=n,c=(0,r.useRef)(o);(0,r.useEffect)(()=>{c.current=o}),(0,r.useEffect)(()=>{if(!t)return;let n=e.current;if(!n)return;let r=document.activeElement,i=requestAnimationFrame(()=>{let e=u(n);e.length>0?e[0].focus():(n.hasAttribute("tabindex")||n.setAttribute("tabindex","-1"),n.focus())}),o=e=>{if("Escape"===e.key)return void c.current?.();if("Tab"!==e.key)return;let t=u(n);if(0===t.length){e.preventDefault(),n.focus();return}let r=t[0],i=t[t.length-1],o=document.activeElement;e.shiftKey&&(o===r||!n.contains(o))?(e.preventDefault(),i.focus()):e.shiftKey||o!==i&&n.contains(o)||(e.preventDefault(),r.focus())};return document.addEventListener("keydown",o,!0),()=>{cancelAnimationFrame(i),document.removeEventListener("keydown",o,!0),a&&r&&document.contains(r)&&r.focus()}},[t,e,a])}}}]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.