Build 533169stable
Module 118057
4,175 characters · in no known chunkDependencies
Source Raw
function(e,t,n){"use strict";n.d(t,{A:()=>f});var r=n(64700),i=n(788413),s=n(741918),a=n(602034);let o=[s.D$.TAB];function l(e){switch(e.key){case s.D$.ENTER:return s.X2.SELECT_FOCUSED_ITEM;case s.D$.UP:return s.X2.NAVIGATE_UP;case s.D$.DOWN:return s.X2.NAVIGATE_DOWN;case s.D$.RIGHT:return s.X2.NAVIGATE_RIGHT;case s.D$.LEFT:return s.X2.NAVIGATE_LEFT;case s.D$.HOME:if(e.ctrlKey)return s.X2.NAVIGATE_START;return s.X2.NAVIGATE_INLINE_START;case s.D$.END:if(e.ctrlKey)return s.X2.NAVIGATE_END;return s.X2.NAVIGATE_INLINE_END}}function u(e,t,n){return null!=t&&null!=n?`#${(0,a.Aq)(e,t,n)}`:`[data-ref-id=${e}]`}function c(e){return document.querySelector(e)}function d(e){return e?.ownerDocument.activeElement===e}function _(e){let{navId:t,columnCounts:n,focusedX:_,focusedY:f,onSelect:p,prepareFocus:h,getNewFocusPosition:m,dispatch:E,maintainFocusPosition:g,enabled:A,autoFocusElement:I,useVirtualFocus:T}=e,S=r.useRef(A),y=c(u(t,_,f)),[v,N]=r.useState(!1),[C,R]=r.useState(!1),[O,b]=r.useState(!1),[D]=r.useState(()=>new a.Lp(e=>{let[t,n]=e.split(",").map(Number);return()=>{N(!0),E({type:i.n.SET_FOCUSED_POSITION,x:t,y:n})}}));r.useEffect(()=>()=>D.clean(),[D]);let L=r.useCallback(e=>{if(!S.current||!I)return!1;e.focus()},[I]),w=r.useCallback((e,n)=>{let r=u(t,e,n);(null!=h?h(e,n,r):Promise.resolve()).then(()=>{let e=c(r);null!=e?(L(e),R(!1)):requestAnimationFrame(()=>R(!0))})},[t,h,L]),M=r.useCallback(function(){let e=!(arguments.length>0)||void 0===arguments[0]||arguments[0],[n,r]=null!=m?m(_,f):[_,f];if((n!==_||r!==f)&&(E({type:i.n.SET_FOCUSED_POSITION,x:n,y:r}),!e))return void b(!0);let s=c(u(t,n,r));null!=s&&(b(!0),L(s))},[E,_,f,m,t,L]),[P,x]=r.useState(!1);r.useEffect(()=>{if(!P||!v)return;x(!1);let e=c(u(t,_,f));if(null!=e)return void L(e);N(!1);let n=c(u(t));null!=n&&L(n)},[t,P,v,L,_,f]);let k=r.useCallback(e=>{S.current&&null==e&&x(!0)},[]);r.useEffect(()=>{v&&C&&null!=y&&(L(y),R(!1))},[C,y]),r.useEffect(()=>{v&&(O||w(_,f),b(!1))},[_,f]);let U=r.useCallback(e=>{if(!S.current)return;if(!T&&o.includes(e.key)&&!(e.shiftKey||e.altKey||e.metaKey||e.ctrlKey)&&e.currentTarget===e.target){e.preventDefault(),e.stopPropagation(),M();return}let t=l(e);switch(t){case s.X2.NAVIGATE_UP:case s.X2.NAVIGATE_DOWN:case s.X2.NAVIGATE_RIGHT:case s.X2.NAVIGATE_LEFT:case s.X2.NAVIGATE_INLINE_START:case s.X2.NAVIGATE_INLINE_END:case s.X2.NAVIGATE_START:case s.X2.NAVIGATE_END:0!==n.length&&(0!==_||0!==f||t!==s.X2.NAVIGATE_LEFT)&&(e.preventDefault(),e.stopPropagation()),E({type:t});return;case s.X2.SELECT_FOCUSED_ITEM:if(I&&!d(y)||e.repeat)return;e.preventDefault(),e.stopPropagation(),E({type:t}),null!=p?p(_,f,e):null!=y&&y.click()}},[M,E,I,y,p,_,f]),G=r.useCallback(e=>e.currentTarget!==e.target?(v||(N(!0),b(!0)),!1):v?(M(!1),!1):void(g&&null!=y?w(_,f):M(!0)),[v,g,y,M,w,_,f]),F=r.useCallback(e=>{if(e.target!==e.currentTarget){if(e.currentTarget.contains(e.relatedTarget))return!1;N(!1)}},[]),V=r.useMemo(()=>Math.max(...n),[n]),B=r.useCallback(()=>({role:"grid","aria-rowcount":n.length,"aria-colcount":V,tabIndex:v&&g?-1:0,"data-ref-id":t,onKeyDown:U,onFocus:G,onBlur:F}),[n.length,V,v,g,t,U,G,F]),H=r.useCallback((e,n)=>{let r={role:"gridcell","aria-rowindex":n+1,"aria-colindex":e+1,id:(0,a.Aq)(t,e,n),tabIndex:g&&e===_&&n===f?0:-1,onFocus:D.get(`${e},${n}`)};return e===_&&n===f&&(r.ref=k),r},[t,g,_,f,D,k]),j=r.useCallback(e=>({role:"row","aria-rowindex":e+1}),[]);return r.useMemo(()=>({dispatch:E,getContainerProps:B,getItemProps:H,getRowProps:j}),[E,B,H,j])}function f(e){let{navId:t,columnCounts:n,focusedX:s=0,focusedY:o=0,onSelect:l,prepareFocus:u,getNewFocusPosition:c,maintainFocusPosition:d=!0,enabled:f=!0,onDispatch:p,autoFocusElement:h=!0,useVirtualFocus:m=!1}=e,E=r.useCallback((e,t)=>{let n=(0,i.A)(e,t);return null!=p&&p(e,n,t),n},[p]),[g,A]=r.useReducer(E,{focusedX:s,focusedY:o,columnCounts:n}),{columnCounts:I,focusedX:T,focusedY:S}=g,[y]=r.useState(()=>(0,a.nF)(A,16));return r.useEffect(()=>{A({type:i.n.UPDATE_COLUMN_COUNTS,columnCounts:n})},[n]),_({navId:t,columnCounts:I,focusedX:T,focusedY:S,dispatch:y,onSelect:l,prepareFocus:u,getNewFocusPosition:c,maintainFocusPosition:d,enabled:f,autoFocusElement:h,useVirtualFocus:m})}}