UNPKG

monday-ui-react-core

Version:

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

3 lines (2 loc) 2.37 kB
import e from"classnames";import s,{forwardRef as t,useRef as n,useMemo as o}from"react";import i from"../../hooks/useMergeRef.js";import r from"../../hooks/useElementsOverflowingIndex.js";import{getTestId as a,ComponentDefaultTestId as m}from"../../tests/testIds.js";import l from"./ResponsiveList.module.scss.js";import{withStaticProps as u}from"../../types/withStaticProps.js";import d from"../MenuButton/MenuButton.js";import{EMPTY_ARRAY as p,DEFAULT_MINIMAL_MARGIN as c}from"./ResponsiveList.types.js";import{useWarnDeprecated as v}from"../../utils/warn-deprecated.js";var f=u(t((function(t,u){var f=t.id,g=t.className,N=t.rootClassName,L=t.children,h=t.menuButtonSize,z=void 0===h?d.sizes.SMALL:h,j=t.paddingSize,B=void 0===j?c:j,C=t.dialogZIndex,E=void 0===C?9999:C,S=t.dialogClassName,b=t.menuButtonClassName,x=t.menuWrapperClassName,I=t.resizeDebounceTime,M=void 0===I?0:I,y=t.menuButtonAriaLabel,A=void 0===y?"More Actions":y,D=t.menuButtonProps,R=void 0===D?{}:D,P=t["data-testid"];v({component:"ResponsiveList",message:"The component is deprecated and will be removed in the next major version. Please consider using alternative solutions"});var w=n(null),O=i(u,w),T=r({ref:w,children:L,paddingSize:B,resizeDebounceTime:M,ignoreLast:!0}),W=o((function(){return-1===T?L:s.Children.toArray(L).slice(0,T)}),[L,T]),k=o((function(){if(-1===T)return p;var e=s.Children.toArray(L);return e.slice(T,e.length)}),[L,T]),F=o((function(){return s.Children.toArray(L).map((function(e){var s;return(null===(s=null==e?void 0:e.props)||void 0===s?void 0:s.responsiveListPlaceholder)||e}))}),[L]);return s.createElement("div",{className:e(l.responsiveListRoot,N),id:f,"data-testid":P||a(m.RESPONSIVE_LIST,f)},null!==T&&s.createElement("div",{className:e(l.responsiveList,g)},W,!!k.length&&s.createElement(d,Object.assign({className:e(l.listMenuButton,b),size:z,openDialogComponentClassName:e(l.menuButtonDialog,S),zIndex:E,ariaLabel:A},R),s.createElement("div",{className:e(l.menuWrapperFlex,x)},k))),s.createElement("div",{ref:O,className:e(l.responsiveList,l.dummy,g)},F,s.createElement(d,Object.assign({className:e(l.listMenuButton,b),size:z,openDialogComponentClassName:e(l.menuButtonDialog,S),zIndex:E,ariaLabel:A},R),s.createElement("div",{className:e(l.menuWrapperFlex,x)}))))})),{menuButtonSizes:d.sizes});export{f as default}; //# sourceMappingURL=ResponsiveList.js.map