UNPKG

monday-ui-react-core

Version:

Official monday.com UI resources for application development in React.js

3 lines (2 loc) 2.15 kB
import{slicedToArray as e}from"../../../_virtual/_rollupPluginBabelHelpers.js";import{useState as t,useMemo as o,useCallback as s}from"react";import{useSetDefaultItemOnFocusEvent as i,useSupportArrowsKeyboardNavigation as n,useSupportPressItemKeyboardNavigation as u,useKeepFocusOnItemWhenListChanged as l,useCleanVisualFocusOnBlur as c}from"./useActiveDescendantListFocusHooks.js";var a;function r(r){var m=r.focusedElementRef,I=r.itemsIds,d=r.isItemSelectable,f=r.onItemClick,v=r.defaultVisualFocusFirstIndex,F=r.focusedElementRole,p=void 0===F?a.GROUP:F,x=r.isHorizontalList,b=void 0!==x&&x,O=r.isIgnoreSpaceAsItemSelection,g=void 0!==O&&O,C=r.useDocumentEventListeners,E=void 0!==C&&C,S=r.ignoreDocumentFallback,k=void 0!==S&&S,P=void 0!==v&&v?0:-1,R=I.length,V=t(-1),A=e(V,2),B=A[0],y=A[1],D=I[B],L=o((function(){return E?k?{ignoreDocumentFallback:k}:void 0:{ref:m,preventDefault:!0,stopPropagation:!0}}),[E,m,k]),T=i({focusedElementRef:m,isItemSelectable:d,visualFocusItemIndex:B,setVisualFocusItemIndex:y,itemsCount:R,defaultVisualFocusItemIndex:P}).triggeredByKeyboard,H=s((function(e,t){T.current=t;var o=I.indexOf(e);o>-1&&o!==B&&y(o)}),[I,T,B]);n({itemsCount:R,focusedElementRef:m,visualFocusItemIndex:B,setVisualFocusItemIndex:y,triggeredByKeyboard:T,isHorizontalList:b,isItemSelectable:d,listenerOptions:L}),u({visualFocusItemIndex:B,itemsCount:R,focusedElementRef:m,setVisualFocusItemIndex:y,onItemClick:f,isItemSelectable:d,listenerOptions:L,isIgnoreSpaceAsItemSelection:g}),l({visualFocusItemIndex:B,itemsIds:I,isItemSelectable:d,setVisualFocusItemIndex:y}),c({focusedElementRef:m,visualFocusItemIndex:B,setVisualFocusItemIndex:y});var M=s((function(e){return function(t){return f(t,e)}}),[f]);return{visualFocusItemIndex:T.current?B:void 0,visualFocusItemId:T.current?D:void 0,focusedElementProps:{"aria-activedescendant":T.current?D:void 0,role:p},onItemClickCallback:f,createOnItemClickCallback:M,setVisualFocusItemId:H}}!function(e){e.APPLICATION="application",e.COMBOBOX="combobox",e.COMPOSITE="composite",e.GROUP="group",e.TEXTBOX="textbox",e.MENU="menu"}(a||(a={})),r.roles=a;export{r as default}; //# sourceMappingURL=index.js.map