@televet/kibble-ui 2.1.7 → 2.1.8
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/components/DatePicker/datepicker.argTypes.d.ts +1 -1
- package/build/components/DatePicker/datepicker.stories.d.ts +1 -1
- package/build/components/DatePicker/examples/withCalendarPlacement.stories.d.ts +1 -1
- package/build/components/DatePicker/examples/withEmptyState.stories.d.ts +1 -1
- package/build/components/DatePicker/examples/withFormControls.stories.d.ts +1 -1
- package/build/components/DatePicker/index.js +1 -1
- package/build/components/Menu/components/MenuList/index.js +1 -1
- package/build/components/Menu/components/MenuList/menuList.component.d.ts +2 -1
- package/build/components/Menu/components/MenuList/menuList.stories.d.ts +1 -1
- package/build/components/Menu/examples/withPortal.stories.d.ts +18 -0
- package/build/components/Menu/index.js +1 -1
- package/build/components/Modal/components/ModalFooterButtons/modalFooterButtons.component.d.ts +1 -1
- package/build/components/NotificationCounter/index.js +1 -1
- package/build/components/Popover/examples/withHeader.stories.d.ts +1 -1
- package/build/components/Select/index.js +1 -1
- package/build/components/Tabs/components/Tab/index.js +1 -1
- package/build/components/Tabs/index.js +1 -1
- package/build/components/TabsLayout/index.js +1 -1
- package/build/components/TextInput/examples/withCharCounter.stories.d.ts +19 -0
- package/build/components/TextInput/examples/withClearableInput.stories.d.ts +20 -0
- package/build/components/TextInput/examples/withCustomLabel.stories.d.ts +19 -0
- package/build/components/TextInput/examples/withFormControl.stories.d.ts +35 -0
- package/build/components/TextInput/examples/withIcons.stories.d.ts +23 -0
- package/build/components/TextInput/examples/withStyledLabel.stories.d.ts +26 -0
- package/build/components/TextInput/index.js +1 -1
- package/build/components/TextInput/textInput.argTypes.d.ts +3 -0
- package/build/components/TextInput/textInput.component.d.ts +6 -4
- package/build/components/TextInput/textInput.stories.d.ts +2 -107
- package/build/components/TextInput/textInput.types.d.ts +3 -0
- package/build/components/Textarea/textarea.stories.d.ts +1 -1
- package/build/components/TimePicker/examples/withCustomPickerPlacement.stories.d.ts +1 -1
- package/build/components/TimePicker/examples/withFormControls.stories.d.ts +1 -1
- package/build/components/TimePicker/examples/withMidnightUTCInitialTime.stories.d.ts +1 -1
- package/build/components/TimePicker/examples/withScrollableParentContainer.stories.d.ts +1 -1
- package/build/components/TimePicker/examples/withTenMinuteInterval.stories.d.ts +1 -1
- package/build/components/TimePicker/examples/withoutInputIcon.stories.d.ts +1 -1
- package/build/components/TimePicker/index.js +1 -1
- package/build/components/TimePicker/timePicker.argTypes.d.ts +1 -1
- package/build/components/TimePicker/timePicker.stories.d.ts +1 -1
- package/build/components/TimeRange/index.js +1 -1
- package/build/components/Toast/toast.stories.d.ts +2 -2
- package/build/components/index.js +1 -1
- package/build/{datepicker.types-a5898858.js → datepicker.types-2abe1bc9.js} +2 -2
- package/build/{datepicker.types-a5898858.js.map → datepicker.types-2abe1bc9.js.map} +1 -1
- package/build/index.js +1 -1
- package/build/menu.component-261acdde.js +2 -0
- package/build/menu.component-261acdde.js.map +1 -0
- package/build/menuList.component-2644c3c6.js +2 -0
- package/build/menuList.component-2644c3c6.js.map +1 -0
- package/build/modalFooterButtons.component-1e38e003.js.map +1 -1
- package/build/{notificationCounter.component-748d56ad.js → notificationCounter.component-24f3f4ab.js} +2 -2
- package/build/{notificationCounter.component-748d56ad.js.map → notificationCounter.component-24f3f4ab.js.map} +1 -1
- package/build/{select.component-7141bf80.js → select.component-502f4a07.js} +2 -2
- package/build/{select.component-7141bf80.js.map → select.component-502f4a07.js.map} +1 -1
- package/build/{tab.component-d98b2375.js → tab.component-43d30a25.js} +2 -2
- package/build/{tab.component-d98b2375.js.map → tab.component-43d30a25.js.map} +1 -1
- package/build/{tabs.component-7b766bac.js → tabs.component-62ac057c.js} +2 -2
- package/build/{tabs.component-7b766bac.js.map → tabs.component-62ac057c.js.map} +1 -1
- package/build/{tabsLayout.component-955f61df.js → tabsLayout.component-5df74a9c.js} +2 -2
- package/build/{tabsLayout.component-955f61df.js.map → tabsLayout.component-5df74a9c.js.map} +1 -1
- package/build/textInput.component-8ff848fa.js +2 -0
- package/build/textInput.component-8ff848fa.js.map +1 -0
- package/build/{timePicker.component-bb27b9f0.js → timePicker.component-c3cb72ec.js} +2 -2
- package/build/{timePicker.component-bb27b9f0.js.map → timePicker.component-c3cb72ec.js.map} +1 -1
- package/build/{timeRange.component-e8a0f2a6.js → timeRange.component-e0338c4a.js} +2 -2
- package/build/{timeRange.component-e8a0f2a6.js.map → timeRange.component-e0338c4a.js.map} +1 -1
- package/package.json +1 -1
- package/build/components/TextInput/components/ClearButton/clearButton.component.d.ts +0 -6
- package/build/components/TextInput/components/ClearButton/clearButton.records.d.ts +0 -2
- package/build/menu.component-a4fab3cb.js +0 -2
- package/build/menu.component-a4fab3cb.js.map +0 -1
- package/build/menuList.component-790babbe.js +0 -2
- package/build/menuList.component-790babbe.js.map +0 -1
- package/build/textInput.component-a0b43a66.js +0 -2
- package/build/textInput.component-a0b43a66.js.map +0 -1
package/build/index.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./alert.component-03133a84.js"),r=require("./avatar.component-1a81b73b.js"),o=require("./avatar.types-a87ebfb5.js"),t=require("./avatarGroup.component-a50f3af5.js"),s=require("./button.component-c2b75fd2.js"),a=require("./button.types-f42b599b.js"),p=require("./card.component-de5d4b2a.js"),i=require("./checkbox.component-7576daac.js"),n=require("./checkboxGroup.component-e9ddb8ad.js"),u=require("./datepicker.types-a5898858.js"),x=require("./heading.component-e55f8364.js"),c=require("./heading.types-b6ca7d59.js"),d=require("./icon.component-3355868e.js"),l=require("./link.component-91c81c4c.js"),m=require("./logo.component-cea68030.js"),b=require("./menuButton.component-52602de9.js"),q=require("./menuContainer.component-3e1e324b.js"),j=require("./menuItem.component-431a91d3.js"),C=require("./menuList.component-790babbe.js"),f=require("./menu.component-a4fab3cb.js"),h=require("./modalBody.component-345aaa1b.js"),v=require("./modalCloseButton.component-3f731476.js"),k=require("./modalFooter.component-1c9fcc61.js"),M=require("./modalFooterButtons.component-1e38e003.js"),T=require("./modalHeader.component-204451e0.js"),g=require("./modal.component-0d68beaa.js"),I=require("./notificationCounter.component-748d56ad.js"),S=require("./picture.component-19489bee.js"),P=require("./popoverFooter.component-c9ffa095.js"),y=require("./popoverHeader.component-f94a14f6.js"),B=require("./popover.component-c3c4f47c.js"),D=require("./popover.types-bc105ea7.js"),L=require("./radio.component-1ebba5e1.js"),F=require("./radioGroup.component-af8bcc57.js"),A=require("./ratingDot.component-bd47c659.js"),G=require("./ratingDots.component-eccf4bf3.js"),H=require("./select.component-7141bf80.js"),w=require("./dragHandle.component-bf8d6a0b.js"),O=require("./sortableItem.component-3bdead95.js"),z=require("./sortableOverlay.component-39d84330.js"),R=require("./sortableList.component-2c36f685.js"),N=require("./spinner.component-39040867.js"),W=require("./switch.component-006dc69c.js"),V=require("./tab.component-d98b2375.js"),E=require("./tabs.component-7b766bac.js"),K=require("./tabsLayout.component-955f61df.js"),Q=require("./tag.types-f979ec63.js"),U=require("./text.component-057889c3.js"),_=require("./text.types-fef8ead3.js"),$=require("./textarea.component-c02b3c1b.js"),J=require("./textInput.component-a0b43a66.js"),X=require("./timePicker.component-bb27b9f0.js"),Y=require("./timeRange.component-e8a0f2a6.js"),Z=require("./useToast-3ba21206.js"),ee=require("./tooltip.component-197bff7c.js"),re=require("./withTheme-e33ed8bc.js"),oe=require("./useTheme-8873c39f.js"),te=require("./theme.provider-9fab8467.js"),se=require("./chakra-ui-skeleton.esm-739cf3ea.js"),ae=require("./chakra-ui-modal.esm-a00f2bce.js"),pe=require("./chakra-ui-layout.esm-6ee578f7.js"),ie=require("./chakra-ui-button.esm-bd065780.js"),ne=require("./chakra-ui-alert.esm-17eebb99.js"),ue=require("./chakra-ui-avatar.esm-eee70d3a.js"),xe=require("./chakra-ui-checkbox.esm-4cded6a7.js"),ce=require("./chakra-ui-input.esm-5fd07056.js"),de=require("./chakra-ui-menu.esm-1ed98193.js"),le=require("./chakra-ui-popover.esm-1e836c11.js"),me=require("./chakra-ui-radio.esm-f310d451.js"),be=require("./chakra-ui-select.esm-793cf4de.js"),qe=require("./chakra-ui-tabs.esm-e6372403.js"),je=require("./chakra-ui-textarea.esm-23fad4cd.js"),Ce=require("./chakra-ui-form-control.esm-6d25b1a4.js"),fe=require("./chakra-ui-media-query.esm-6217de7e.js"),he=require("./chakra-ui-image.esm-66324087.js"),ve=require("./chakra-ui-system.esm-c70df670.js"),ke=require("./chakra-ui-portal.esm-bbcb5d1d.js"),Me=require("./chakra-ui-hooks.esm-21b313f3.js");require("./tslib.es6-d6f17add.js"),require("react"),require("./avatar.config-e43cfce7.js"),require("./withFormControl-6d7abf11.js"),require("./index-fee8538e.js"),require("./withTruncation-60a6b552.js"),require("./icons/index.js"),require("./useIconTextSizeMap-301c4f35.js"),require("./menu.context-22d23674.js"),require("./menu.config-14739188.js"),require("./sortableItem.context-5bba7c97.js"),require("./core.esm-3a85aed4.js"),require("react-dom"),require("./chakra-ui-icon.esm-9c49b31b.js"),require("./chakra-ui-theme.esm-d6d72df5.js"),require("./index-8fecff45.js"),require("./index-5a9be08d.js"),require("./motion-7de675ca.js"),require("./chakra-ui-popper.esm-c15ff4a5.js"),require("./chakra-ui-visually-hidden.esm-b758df74.js"),require("./use-animation-state-5054a9f7.esm-c89cafc4.js"),require("./chakra-ui-react.esm-f4206977.js"),require("./zIndeces-9141d4bd.js"),require("./color.record-134d7650.js"),require("./shadows.config-9e24e611.js"),require("./inheritsLoose-490721fe.js"),require("./chakra-ui-clickable.esm-4394877f.js"),exports.Alert=e.Alert,exports.Avatar=r.Avatar,exports.avatarBadePositions=o.avatarBadePositions,exports.avatarSizes=o.avatarSizes,exports.avatarTypes=o.avatarTypes,exports.avatarVariants=o.avatarVariants,exports.AvatarGroup=t.AvatarGroup,exports.Button=s.Button,exports.buttonSizes=a.buttonSizes,exports.buttonVariants=a.buttonVariants,exports.Card=p.Card,exports.CardPaddingMap=p.CardPaddingMap,exports.cardSizes=p.cardSizes,exports.Checkbox=i.WrappedCheckbox,exports.CheckboxGroup=n.WrappedCheckboxGroup,Object.defineProperty(exports,"DateFormats",{enumerable:!0,get:function(){return u.DateFormats}}),exports.DatePicker=u.DatePicker,exports.Heading=x.WrappedHeading,exports.headingSizes=c.headingSizes,exports.Icon=d.Icon,exports.IconSizeMap=d.IconSizeMap,exports.iconSizes=d.iconSizes,exports.Link=l.Link,exports.Logo=m.Logo,exports.MenuButton=b.MenuButton,exports.MenuContainer=q.MenuContainer,exports.MenuItem=j.MenuItem,exports.MenuList=C.MenuList,exports.Menu=f.Menu,exports.ModalBody=h.ModalBody,exports.ModalCloseButton=v.ModalCloseButton,exports.ModalFooter=k.ModalFooter,exports.ModalFooterButtons=M.ModalFooterButtons,exports.ModalHeader=T.ModalHeader,exports.Modal=g.Modal,exports.NotificationCounter=I.NotificationCounter,Object.defineProperty(exports,"NotificationCounterVariant",{enumerable:!0,get:function(){return I.NotificationCounterVariant}}),exports.Picture=S.Picture,exports.PopoverFooter=P.PopoverFooter,exports.PopoverHeader=y.PopoverHeader,exports.Popover=B.Popover,exports.popoverPlacements=D.popoverPlacements,exports.popoverSizes=D.popoverSizes,exports.popoverTriggerTypes=D.popoverTriggerTypes,exports.popoverVariants=D.popoverVariants,exports.Radio=L.Radio,exports.RadioGroup=F.WrappedRadioGroup,exports.RatingDot=A.RatingDot,exports.RatingDots=G.RatingDots,exports.Select=H.WrappedSelect,exports.DragHandle=w.DragHandle,exports.SortableItem=O.SortableItem,exports.SortableOverlay=z.SortableOverlay,exports.SortableList=R.SortableList,exports.Spinner=N.Spinner,exports.Switch=W.WrappedSwitch,exports.Tab=V.Tab,exports.Tabs=E.Tabs,exports.TabsLayout=K.TabsLayout,exports.Tag=Q.Tag,exports.closeButtonDisplays=Q.closeButtonDisplays,exports.tagSizes=Q.tagSizes,exports.Text=U.WrappedText,exports.textSizes=_.textSizes,exports.Textarea=$.WrappedTextArea,exports.TextInput=J.WrappedTextInput,Object.defineProperty(exports,"Meridiem",{enumerable:!0,get:function(){return X.Meridiem}}),exports.TimePicker=X.TimePicker,exports.TimeRange=Y.TimeRange,exports.useToast=Z.useToast,exports.Tooltip=ee.Tooltip,exports.withDarkMode=re.withDarkMode,exports.withTheme=re.withTheme,exports.useTheme=oe.useTheme,exports.KibbleThemeProvider=te.KibbleThemeProvider,exports.theme=te.theme,exports.Accordion=se.Accordion,exports.AccordionButton=se.AccordionButton,exports.AccordionIcon=se.AccordionIcon,exports.AccordionItem=se.AccordionItem,exports.AccordionPanel=se.AccordionPanel,exports.NumberDecrementStepper=se.NumberDecrementStepper,exports.NumberIncrementStepper=se.NumberIncrementStepper,exports.NumberInput=se.NumberInput,exports.NumberInputField=se.NumberInputField,exports.NumberInputStepper=se.NumberInputStepper,exports.PinInput=se.PinInput,exports.PinInputField=se.PinInputField,exports.Progress=se.Progress,exports.Skeleton=se.Skeleton,exports.SkeletonText=se.SkeletonText,exports.Table=se.Table,exports.TableCaption=se.TableCaption,exports.TableContainer=se.TableContainer,exports.Tbody=se.Tbody,exports.Td=se.Td,exports.Tfoot=se.Tfoot,exports.Th=se.Th,exports.Thead=se.Thead,exports.Tr=se.Tr,exports.AlertDialog=ae.AlertDialog,exports.AlertDialogBody=ae.ModalBody,exports.AlertDialogContent=ae.AlertDialogContent,exports.AlertDialogFooter=ae.ModalFooter,exports.AlertDialogHeader=ae.ModalHeader,exports.AlertDialogOverlay=ae.ModalOverlay,exports.CModal=ae.Modal,exports.CModalBody=ae.ModalBody,exports.CModalCloseButton=ae.ModalCloseButton,exports.CModalFooter=ae.ModalFooter,exports.CModalHeader=ae.ModalHeader,exports.Collapse=ae.Collapse,exports.Drawer=ae.Drawer,exports.DrawerBody=ae.ModalBody,exports.DrawerCloseButton=ae.ModalCloseButton,exports.DrawerContent=ae.DrawerContent,exports.DrawerFooter=ae.ModalFooter,exports.DrawerHeader=ae.ModalHeader,exports.DrawerOverlay=ae.ModalOverlay,exports.ModalContent=ae.ModalContent,exports.ModalOverlay=ae.ModalOverlay,exports.Badge=pe.Badge,exports.Box=pe.Box,exports.Center=pe.Center,exports.Circle=pe.Circle,exports.Code=pe.Code,exports.Container=pe.Container,exports.Divider=pe.Divider,exports.Flex=pe.Flex,exports.Grid=pe.Grid,exports.GridItem=pe.GridItem,exports.HStack=pe.HStack,exports.LinkBox=pe.LinkBox,exports.LinkOverlay=pe.LinkOverlay,exports.List=pe.List,exports.ListItem=pe.ListItem,exports.OrderedList=pe.OrderedList,exports.SimpleGrid=pe.SimpleGrid,exports.Spacer=pe.Spacer,exports.Square=pe.Square,exports.Stack=pe.Stack,exports.UnorderedList=pe.UnorderedList,exports.VStack=pe.VStack,exports.Wrap=pe.Wrap,exports.WrapItem=pe.WrapItem,exports.ButtonGroup=ie.ButtonGroup,exports.CButton=ie.Button,exports.IconButton=ie.IconButton,exports.CAlert=ne.Alert,exports.CAvatar=ue.Avatar,exports.CCheckboxGroup=xe.CheckboxGroup,exports.useCheckbox=xe.useCheckbox,exports.useCheckboxGroup=xe.useCheckboxGroup,exports.CInput=ce.Input,exports.InputGroup=ce.InputGroup,exports.InputLeftAddon=ce.InputLeftAddon,exports.InputLeftElement=ce.InputLeftElement,exports.InputRightElement=ce.InputRightElement,exports.CMenu=de.Menu,exports.CMenuButton=de.MenuButton,exports.CMenuItem=de.MenuItem,exports.CMenuList=de.MenuList,exports.MenuDivider=de.MenuDivider,exports.MenuGroup=de.MenuGroup,exports.MenuItemOption=de.MenuItemOption,exports.CPopover=le.Popover,exports.CPopoverBody=le.PopoverBody,exports.CPopoverFooter=le.PopoverFooter,exports.CPopoverHeader=le.PopoverHeader,exports.PopoverArrow=le.PopoverArrow,exports.PopoverContent=le.PopoverContent,exports.PopoverTrigger=le.PopoverTrigger,exports.usePopoverContext=le.usePopoverContext,exports.CRadioGroup=me.RadioGroup,exports.useRadio=me.useRadio,exports.useRadioGroup=me.useRadioGroup,exports.CSelect=be.Select,exports.CTab=qe.Tab,exports.CTabs=qe.Tabs,exports.TabList=qe.TabList,exports.TabPanel=qe.TabPanel,exports.TabPanels=qe.TabPanels,exports.CTextarea=je.Textarea,exports.FormControl=Ce.FormControl,exports.FormErrorMessage=Ce.FormErrorMessage,exports.FormHelperText=Ce.FormHelperText,exports.FormLabel=Ce.FormLabel,exports.Hide=fe.Hide,exports.Show=fe.Show,exports.useBreakpoint=fe.useBreakpoint,exports.useBreakpointValue=fe.useBreakpointValue,exports.useMediaQuery=fe.useMediaQuery,exports.Image=he.Image$1,exports.keyframes=ve.keyframes,exports.useColorMode=ve.useColorMode,exports.Portal=ke.Portal,exports.useConst=Me.useConst,exports.useDisclosure=Me.useDisclosure,exports.useInterval=Me.useInterval,exports.useOutsideClick=Me.useOutsideClick;
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./alert.component-03133a84.js"),r=require("./avatar.component-1a81b73b.js"),o=require("./avatar.types-a87ebfb5.js"),t=require("./avatarGroup.component-a50f3af5.js"),s=require("./button.component-c2b75fd2.js"),a=require("./button.types-f42b599b.js"),p=require("./card.component-de5d4b2a.js"),i=require("./checkbox.component-7576daac.js"),n=require("./checkboxGroup.component-e9ddb8ad.js"),u=require("./datepicker.types-2abe1bc9.js"),c=require("./heading.component-e55f8364.js"),x=require("./heading.types-b6ca7d59.js"),d=require("./icon.component-3355868e.js"),l=require("./link.component-91c81c4c.js"),m=require("./logo.component-cea68030.js"),b=require("./menuButton.component-52602de9.js"),q=require("./menuContainer.component-3e1e324b.js"),j=require("./menuItem.component-431a91d3.js"),C=require("./menuList.component-2644c3c6.js"),f=require("./menu.component-261acdde.js"),h=require("./modalBody.component-345aaa1b.js"),v=require("./modalCloseButton.component-3f731476.js"),k=require("./modalFooter.component-1c9fcc61.js"),M=require("./modalFooterButtons.component-1e38e003.js"),T=require("./modalHeader.component-204451e0.js"),g=require("./modal.component-0d68beaa.js"),I=require("./notificationCounter.component-24f3f4ab.js"),S=require("./picture.component-19489bee.js"),P=require("./popoverFooter.component-c9ffa095.js"),y=require("./popoverHeader.component-f94a14f6.js"),B=require("./popover.component-c3c4f47c.js"),D=require("./popover.types-bc105ea7.js"),L=require("./radio.component-1ebba5e1.js"),F=require("./radioGroup.component-af8bcc57.js"),A=require("./ratingDot.component-bd47c659.js"),G=require("./ratingDots.component-eccf4bf3.js"),H=require("./select.component-502f4a07.js"),w=require("./dragHandle.component-bf8d6a0b.js"),O=require("./sortableItem.component-3bdead95.js"),z=require("./sortableOverlay.component-39d84330.js"),R=require("./sortableList.component-2c36f685.js"),N=require("./spinner.component-39040867.js"),W=require("./switch.component-006dc69c.js"),V=require("./tab.component-43d30a25.js"),E=require("./tabs.component-62ac057c.js"),K=require("./tabsLayout.component-5df74a9c.js"),Q=require("./tag.types-f979ec63.js"),U=require("./text.component-057889c3.js"),_=require("./text.types-fef8ead3.js"),$=require("./textarea.component-c02b3c1b.js"),J=require("./textInput.component-8ff848fa.js"),X=require("./timePicker.component-c3cb72ec.js"),Y=require("./timeRange.component-e0338c4a.js"),Z=require("./useToast-3ba21206.js"),ee=require("./tooltip.component-197bff7c.js"),re=require("./withTheme-e33ed8bc.js"),oe=require("./useTheme-8873c39f.js"),te=require("./theme.provider-9fab8467.js"),se=require("./chakra-ui-skeleton.esm-739cf3ea.js"),ae=require("./chakra-ui-modal.esm-a00f2bce.js"),pe=require("./chakra-ui-layout.esm-6ee578f7.js"),ie=require("./chakra-ui-button.esm-bd065780.js"),ne=require("./chakra-ui-alert.esm-17eebb99.js"),ue=require("./chakra-ui-avatar.esm-eee70d3a.js"),ce=require("./chakra-ui-checkbox.esm-4cded6a7.js"),xe=require("./chakra-ui-input.esm-5fd07056.js"),de=require("./chakra-ui-menu.esm-1ed98193.js"),le=require("./chakra-ui-popover.esm-1e836c11.js"),me=require("./chakra-ui-radio.esm-f310d451.js"),be=require("./chakra-ui-select.esm-793cf4de.js"),qe=require("./chakra-ui-tabs.esm-e6372403.js"),je=require("./chakra-ui-textarea.esm-23fad4cd.js"),Ce=require("./chakra-ui-form-control.esm-6d25b1a4.js"),fe=require("./chakra-ui-media-query.esm-6217de7e.js"),he=require("./chakra-ui-image.esm-66324087.js"),ve=require("./chakra-ui-system.esm-c70df670.js"),ke=require("./chakra-ui-portal.esm-bbcb5d1d.js"),Me=require("./chakra-ui-hooks.esm-21b313f3.js");require("./tslib.es6-d6f17add.js"),require("react"),require("./avatar.config-e43cfce7.js"),require("./withFormControl-6d7abf11.js"),require("./index-fee8538e.js"),require("./withTruncation-60a6b552.js"),require("./icons/index.js"),require("./useIconTextSizeMap-301c4f35.js"),require("./menu.context-22d23674.js"),require("./menu.config-14739188.js"),require("./sortableItem.context-5bba7c97.js"),require("./core.esm-3a85aed4.js"),require("react-dom"),require("./chakra-ui-icon.esm-9c49b31b.js"),require("./chakra-ui-theme.esm-d6d72df5.js"),require("./index-8fecff45.js"),require("./index-5a9be08d.js"),require("./motion-7de675ca.js"),require("./chakra-ui-popper.esm-c15ff4a5.js"),require("./chakra-ui-visually-hidden.esm-b758df74.js"),require("./use-animation-state-5054a9f7.esm-c89cafc4.js"),require("./chakra-ui-react.esm-f4206977.js"),require("./zIndeces-9141d4bd.js"),require("./color.record-134d7650.js"),require("./shadows.config-9e24e611.js"),require("./inheritsLoose-490721fe.js"),require("./chakra-ui-clickable.esm-4394877f.js"),exports.Alert=e.Alert,exports.Avatar=r.Avatar,exports.avatarBadePositions=o.avatarBadePositions,exports.avatarSizes=o.avatarSizes,exports.avatarTypes=o.avatarTypes,exports.avatarVariants=o.avatarVariants,exports.AvatarGroup=t.AvatarGroup,exports.Button=s.Button,exports.buttonSizes=a.buttonSizes,exports.buttonVariants=a.buttonVariants,exports.Card=p.Card,exports.CardPaddingMap=p.CardPaddingMap,exports.cardSizes=p.cardSizes,exports.Checkbox=i.WrappedCheckbox,exports.CheckboxGroup=n.WrappedCheckboxGroup,Object.defineProperty(exports,"DateFormats",{enumerable:!0,get:function(){return u.DateFormats}}),exports.DatePicker=u.DatePicker,exports.Heading=c.WrappedHeading,exports.headingSizes=x.headingSizes,exports.Icon=d.Icon,exports.IconSizeMap=d.IconSizeMap,exports.iconSizes=d.iconSizes,exports.Link=l.Link,exports.Logo=m.Logo,exports.MenuButton=b.MenuButton,exports.MenuContainer=q.MenuContainer,exports.MenuItem=j.MenuItem,exports.MenuList=C.MenuList,exports.Menu=f.Menu,exports.ModalBody=h.ModalBody,exports.ModalCloseButton=v.ModalCloseButton,exports.ModalFooter=k.ModalFooter,exports.ModalFooterButtons=M.ModalFooterButtons,exports.ModalHeader=T.ModalHeader,exports.Modal=g.Modal,exports.NotificationCounter=I.NotificationCounter,Object.defineProperty(exports,"NotificationCounterVariant",{enumerable:!0,get:function(){return I.NotificationCounterVariant}}),exports.Picture=S.Picture,exports.PopoverFooter=P.PopoverFooter,exports.PopoverHeader=y.PopoverHeader,exports.Popover=B.Popover,exports.popoverPlacements=D.popoverPlacements,exports.popoverSizes=D.popoverSizes,exports.popoverTriggerTypes=D.popoverTriggerTypes,exports.popoverVariants=D.popoverVariants,exports.Radio=L.Radio,exports.RadioGroup=F.WrappedRadioGroup,exports.RatingDot=A.RatingDot,exports.RatingDots=G.RatingDots,exports.Select=H.WrappedSelect,exports.DragHandle=w.DragHandle,exports.SortableItem=O.SortableItem,exports.SortableOverlay=z.SortableOverlay,exports.SortableList=R.SortableList,exports.Spinner=N.Spinner,exports.Switch=W.WrappedSwitch,exports.Tab=V.Tab,exports.Tabs=E.Tabs,exports.TabsLayout=K.TabsLayout,exports.Tag=Q.Tag,exports.closeButtonDisplays=Q.closeButtonDisplays,exports.tagSizes=Q.tagSizes,exports.Text=U.WrappedText,exports.textSizes=_.textSizes,exports.Textarea=$.WrappedTextArea,exports.TextInput=J.WrappedTextInput,Object.defineProperty(exports,"Meridiem",{enumerable:!0,get:function(){return X.Meridiem}}),exports.TimePicker=X.TimePicker,exports.TimeRange=Y.TimeRange,exports.useToast=Z.useToast,exports.Tooltip=ee.Tooltip,exports.withDarkMode=re.withDarkMode,exports.withTheme=re.withTheme,exports.useTheme=oe.useTheme,exports.KibbleThemeProvider=te.KibbleThemeProvider,exports.theme=te.theme,exports.Accordion=se.Accordion,exports.AccordionButton=se.AccordionButton,exports.AccordionIcon=se.AccordionIcon,exports.AccordionItem=se.AccordionItem,exports.AccordionPanel=se.AccordionPanel,exports.NumberDecrementStepper=se.NumberDecrementStepper,exports.NumberIncrementStepper=se.NumberIncrementStepper,exports.NumberInput=se.NumberInput,exports.NumberInputField=se.NumberInputField,exports.NumberInputStepper=se.NumberInputStepper,exports.PinInput=se.PinInput,exports.PinInputField=se.PinInputField,exports.Progress=se.Progress,exports.Skeleton=se.Skeleton,exports.SkeletonText=se.SkeletonText,exports.Table=se.Table,exports.TableCaption=se.TableCaption,exports.TableContainer=se.TableContainer,exports.Tbody=se.Tbody,exports.Td=se.Td,exports.Tfoot=se.Tfoot,exports.Th=se.Th,exports.Thead=se.Thead,exports.Tr=se.Tr,exports.AlertDialog=ae.AlertDialog,exports.AlertDialogBody=ae.ModalBody,exports.AlertDialogContent=ae.AlertDialogContent,exports.AlertDialogFooter=ae.ModalFooter,exports.AlertDialogHeader=ae.ModalHeader,exports.AlertDialogOverlay=ae.ModalOverlay,exports.CModal=ae.Modal,exports.CModalBody=ae.ModalBody,exports.CModalCloseButton=ae.ModalCloseButton,exports.CModalFooter=ae.ModalFooter,exports.CModalHeader=ae.ModalHeader,exports.Collapse=ae.Collapse,exports.Drawer=ae.Drawer,exports.DrawerBody=ae.ModalBody,exports.DrawerCloseButton=ae.ModalCloseButton,exports.DrawerContent=ae.DrawerContent,exports.DrawerFooter=ae.ModalFooter,exports.DrawerHeader=ae.ModalHeader,exports.DrawerOverlay=ae.ModalOverlay,exports.ModalContent=ae.ModalContent,exports.ModalOverlay=ae.ModalOverlay,exports.Badge=pe.Badge,exports.Box=pe.Box,exports.Center=pe.Center,exports.Circle=pe.Circle,exports.Code=pe.Code,exports.Container=pe.Container,exports.Divider=pe.Divider,exports.Flex=pe.Flex,exports.Grid=pe.Grid,exports.GridItem=pe.GridItem,exports.HStack=pe.HStack,exports.LinkBox=pe.LinkBox,exports.LinkOverlay=pe.LinkOverlay,exports.List=pe.List,exports.ListItem=pe.ListItem,exports.OrderedList=pe.OrderedList,exports.SimpleGrid=pe.SimpleGrid,exports.Spacer=pe.Spacer,exports.Square=pe.Square,exports.Stack=pe.Stack,exports.UnorderedList=pe.UnorderedList,exports.VStack=pe.VStack,exports.Wrap=pe.Wrap,exports.WrapItem=pe.WrapItem,exports.ButtonGroup=ie.ButtonGroup,exports.CButton=ie.Button,exports.IconButton=ie.IconButton,exports.CAlert=ne.Alert,exports.CAvatar=ue.Avatar,exports.CCheckboxGroup=ce.CheckboxGroup,exports.useCheckbox=ce.useCheckbox,exports.useCheckboxGroup=ce.useCheckboxGroup,exports.CInput=xe.Input,exports.InputGroup=xe.InputGroup,exports.InputLeftAddon=xe.InputLeftAddon,exports.InputLeftElement=xe.InputLeftElement,exports.InputRightElement=xe.InputRightElement,exports.CMenu=de.Menu,exports.CMenuButton=de.MenuButton,exports.CMenuItem=de.MenuItem,exports.CMenuList=de.MenuList,exports.MenuDivider=de.MenuDivider,exports.MenuGroup=de.MenuGroup,exports.MenuItemOption=de.MenuItemOption,exports.CPopover=le.Popover,exports.CPopoverBody=le.PopoverBody,exports.CPopoverFooter=le.PopoverFooter,exports.CPopoverHeader=le.PopoverHeader,exports.PopoverArrow=le.PopoverArrow,exports.PopoverContent=le.PopoverContent,exports.PopoverTrigger=le.PopoverTrigger,exports.usePopoverContext=le.usePopoverContext,exports.CRadioGroup=me.RadioGroup,exports.useRadio=me.useRadio,exports.useRadioGroup=me.useRadioGroup,exports.CSelect=be.Select,exports.CTab=qe.Tab,exports.CTabs=qe.Tabs,exports.TabList=qe.TabList,exports.TabPanel=qe.TabPanel,exports.TabPanels=qe.TabPanels,exports.CTextarea=je.Textarea,exports.FormControl=Ce.FormControl,exports.FormErrorMessage=Ce.FormErrorMessage,exports.FormHelperText=Ce.FormHelperText,exports.FormLabel=Ce.FormLabel,exports.Hide=fe.Hide,exports.Show=fe.Show,exports.useBreakpoint=fe.useBreakpoint,exports.useBreakpointValue=fe.useBreakpointValue,exports.useMediaQuery=fe.useMediaQuery,exports.Image=he.Image$1,exports.keyframes=ve.keyframes,exports.useColorMode=ve.useColorMode,exports.Portal=ke.Portal,exports.useConst=Me.useConst,exports.useDisclosure=Me.useDisclosure,exports.useInterval=Me.useInterval,exports.useOutsideClick=Me.useOutsideClick;
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var e=require("./tslib.es6-d6f17add.js"),t=require("react"),n=require("./menuContainer.component-3e1e324b.js"),r=require("./menuButton.component-52602de9.js"),u=require("./menuList.component-2644c3c6.js"),l=require("./menu.context-22d23674.js"),s=require("./chakra-ui-portal.esm-bbcb5d1d.js"),i=require("./chakra-ui-menu.esm-1ed98193.js");function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var o=a(t);exports.Menu=t=>{var{buttonProps:a,customTriggerElement:c,listProps:m,containerProps:d}=t,f=e.__rest(t,["buttonProps","customTriggerElement","listProps","containerProps"]);return o.default.createElement(l.MenuProvider,{menuItems:null==m?void 0:m.menuItems,isMultiSelect:null==m?void 0:m.isMultiSelect,onClose:null==d?void 0:d.onClose},o.default.createElement(n.MenuContainer,Object.assign({isLazy:(null==d?void 0:d.isLazy)||!0},d,f),c?o.default.createElement("customTriggerElement",{as:i.MenuButton}):o.default.createElement(r.MenuButton,Object.assign({},a)),o.default.createElement((({children:e})=>(null==m?void 0:m.shouldUsePortal)?o.default.createElement(s.Portal,null,e):o.default.createElement(o.default.Fragment,null,e)),null,o.default.createElement(u.MenuList,Object.assign({},m,{isMatchWidthSet:f.matchWidth,menuItems:null==m?void 0:m.menuItems})))))};
|
|
2
|
+
//# sourceMappingURL=menu.component-261acdde.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"menu.component-261acdde.js","sources":["../src/components/Menu/menu.component.tsx"],"sourcesContent":["import React, { FunctionComponent, ReactNode } from 'react';\nimport { MenuProps as CMenuProps, MenuButton as CMenuButton, Portal as CPortal } from '@chakra-ui/react';\nimport { MenuContainer, MenuContainerProps } from './components/MenuContainer/menuContainer.component';\nimport { MenuButton, MenuButtonProps } from './components/MenuButton/menuButton.component';\nimport { MenuList, MenuListProps } from './components/MenuList/menuList.component';\nimport { MenuProvider } from './context/menu.context';\n\nexport interface KMenuProps {\n buttonProps?: MenuButtonProps;\n customTriggerElement?: FunctionComponent;\n listProps?: MenuListProps;\n containerProps?: MenuContainerProps;\n}\n\nexport type MenuProps = KMenuProps & Omit<CMenuProps, 'onClose' | 'children'>;\n\nexport const Menu = ({\n buttonProps,\n customTriggerElement,\n listProps,\n containerProps,\n ...props\n}: MenuProps): JSX.Element => {\n const MenuListContainer = ({ children }: { children: ReactNode }): JSX.Element => {\n return listProps?.shouldUsePortal ? <CPortal>{children}</CPortal> : <>{children}</>;\n };\n\n return (\n <MenuProvider\n menuItems={listProps?.menuItems}\n isMultiSelect={listProps?.isMultiSelect}\n onClose={containerProps?.onClose}\n >\n <MenuContainer isLazy={containerProps?.isLazy || true} {...containerProps} {...props}>\n {customTriggerElement ? (\n // @ts-ignore\n <customTriggerElement as={CMenuButton} />\n ) : (\n <MenuButton {...buttonProps} />\n )}\n <MenuListContainer>\n <MenuList {...listProps} isMatchWidthSet={props.matchWidth} menuItems={listProps?.menuItems} />\n </MenuListContainer>\n </MenuContainer>\n </MenuProvider>\n );\n};\n"],"names":["_a","buttonProps","customTriggerElement","listProps","containerProps","props","__rest","React","createElement","MenuProvider","menuItems","isMultiSelect","onClose","MenuContainer","Object","assign","isLazy","as","CMenuButton","MenuButton","children","shouldUsePortal","CPortal","Fragment","MenuList","isMatchWidthSet","matchWidth"],"mappings":"gcAgBqBA,IAAA,IAAAC,YACnBA,EAAWC,qBACXA,EAAoBC,UACpBA,EAASC,eACTA,GAAcJ,EACXK,EALgBC,EAAAA,OAAAN,EAAA,CAAA,cAAA,uBAAA,YAAA,mBAWnB,OACEO,EAAAA,QAAAC,cAACC,EAAAA,aAAY,CACXC,UAAWP,MAAAA,OAAA,EAAAA,EAAWO,UACtBC,cAAeR,MAAAA,OAAS,EAATA,EAAWQ,cAC1BC,QAASR,MAAAA,OAAA,EAAAA,EAAgBQ,SAEzBL,UAAAC,cAACK,EAAAA,cAAcC,OAAAC,OAAA,CAAAC,QAAQZ,MAAAA,OAAA,EAAAA,EAAgBY,UAAU,GAAUZ,EAAoBC,GAC5EH,EAECK,EAAA,QAAAC,cAAA,uBAAA,CAAsBS,GAAIC,EAAAA,aAE1BX,EAAAA,QAACC,cAAAW,EAAAA,WAAeL,OAAAC,OAAA,GAAAd,IAElBM,UAAAC,eAjBoB,EAAGY,SAAAA,MACpBjB,MAAAA,SAAAA,EAAWkB,iBAAkBd,wBAACe,SAAO,KAAEF,GAAsBb,EAAA,QAAAC,cAAAD,EAAAA,QAAAgB,SAAA,KAAGH,IAgBjD,KAChBb,EAAAA,QAACC,cAAAgB,WAAaV,OAAAC,OAAA,GAAAZ,EAAW,CAAAsB,gBAAiBpB,EAAMqB,WAAYhB,UAAWP,MAAAA,OAAA,EAAAA,EAAWO"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var e=require("./tslib.es6-d6f17add.js"),t=require("react"),l=require("./heading.component-e55f8364.js"),a=require("./text.component-057889c3.js"),n=require("./menuItem.component-431a91d3.js"),r=require("./textInput.component-8ff848fa.js"),s=require("./chakra-ui-menu.esm-1ed98193.js"),u=require("./button.component-c2b75fd2.js"),o=require("./chakra-ui-layout.esm-6ee578f7.js"),i=require("./menu.context-22d23674.js"),c=require("./spinner.component-39040867.js");function d(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var m=d(t);const f=({handleKeyboardNavigation:e,menuItems:l,onSearchCallback:a,searchInputRef:n,setFilteredMenuItems:u,placeholder:o="Search..."})=>{const{isOpen:i}=s.useMenuState(),c=t.useCallback((e=>{const t=e.target.value;if(""!==t&&t){const e=l.filter((e=>{var l;const a="string"==typeof e.label?e.label:null===(l=e.label)||void 0===l?void 0:l.key;return null==a?void 0:a.toLowerCase().includes(t.toLowerCase())}));u(e)}else u(l);a&&a(e)}),[l,a,u]);return t.useEffect((()=>{let e;return i&&(e=setTimeout((()=>{var e;null===(e=null==n?void 0:n.current)||void 0===e||e.focus()}),200)),()=>clearTimeout(e)}),[n,i]),m.default.createElement(r.WrappedTextInput,{className:"MenuList__SearchBar",placeholder:o,onChange:c,mt:1,onKeyDown:t=>e(t,!0),size:"sm",ref:n})},p=({groupName:e,handleToggleAllItems:t,hasSelectedItems:l,isGrouped:a})=>a?m.default.createElement(o.Box,{textAlign:"right",w:"50%",className:"MenuListItem__SelectAllButton"},l?m.default.createElement(u.Button,{variant:"ghostNeutral",iconName:"arrowCircle",size:"xs",onClick:()=>t({groupName:e,clear:!0}),isDisabled:!l},"Clear all"):m.default.createElement(u.Button,{variant:"ghost",size:"xs",onClick:()=>t({groupName:e,clear:!1})},"Select all")):m.default.createElement(o.Box,{mt:"8px",className:"MenuList__SelectAllButtons"},m.default.createElement(o.Flex,{justifyContent:"space-between"},m.default.createElement(u.Button,{variant:"ghost",size:"xs",onClick:()=>t({clear:!1})},"Select all"),m.default.createElement(u.Button,{variant:"ghostNeutral",iconName:"arrowCircle",size:"xs",onClick:()=>t({clear:!0}),isDisabled:!l},"Clear all")));exports.MenuList=r=>{var{canSelectAll:u=!1,canSelectGroups:d=!1,children:h,isGrouped:v=!1,isMatchWidthSet:g,isMultiSelect:S=!1,isSearchable:x=!1,isLoading:b=!1,menuItems:E,onSelect:I,onSelectAll:k,searchPlaceholder:M,shouldRetainSelection:C=!1,shouldTruncateText:N=!0,minW:w="240px",maxW:y,maxH:A="480px",shouldUsePortal:B=!1}=r,L=e.__rest(r,["canSelectAll","canSelectGroups","children","isGrouped","isMatchWidthSet","isMultiSelect","isSearchable","isLoading","menuItems","onSelect","onSelectAll","searchPlaceholder","shouldRetainSelection","shouldTruncateText","minW","maxW","maxH","shouldUsePortal"]);const{filteredMenuItems:j,setFilteredMenuItems:_,allMenuItems:T,groups:q,setGroups:G,focusedItemIndex:W,setFocusedItemIndex:F,searchInputRef:R,menuItemRefs:z}=i.useMenuContext(),D=t.useCallback((e=>{var t,l;if(!(null==z?void 0:z.current))return;const a=0===W,n=W===(null==z?void 0:z.current.length)-1;let r=-1;if("ArrowDown"===e)if(n){if(x)return null===(t=null==R?void 0:R.current)||void 0===t||t.focus(),void F(-1);r=0}else r=W+1;else if("ArrowUp"===e)if(a){if(x)return null===(l=null==R?void 0:R.current)||void 0===l||l.focus(),void F(-1);r=z.current.length-1}else r=W-1;const s=null==z?void 0:z.current[r];s?(null==s||s.focus(),F(r)):F(-1)}),[W,x,z,R,F]),H=t.useCallback(((e,t)=>{e.persist(),(null==z?void 0:z.current)&&("ArrowDown"!==e.key&&"Tab"!==e.key||D("ArrowDown"),"ArrowUp"===e.key&&D("ArrowUp"),"Enter"===e.key&&(e.preventDefault(),e.target.click()))}),[D,z]),P=t.useCallback(((e,t)=>{if(j&&T){const l=[...j],a=l.find((t=>t.value===e.value));S&&a&&(a.isSelected=!a.isSelected),_(l);const n=T.filter((e=>e.isSelected));I&&a&&I(a,n),t&&a&&t(a,n)}}),[T,j,S,I,_]),U=t.useCallback((({groupName:e,clear:t=!1})=>{if(j&&T){const l=[...j],a=[];l.forEach((l=>{e?e===l.groupLabel&&(l.isSelected=!t,l.value&&l.isSelected&&a.push(l.value)):(l.isSelected=!t,l.value&&l.isSelected&&a.push(l.value))})),_(l),k&&k(T.filter((e=>e.isSelected)))}}),[j,T,k,_]);t.useEffect((()=>{if(v){const e=[...new Set(null==j?void 0:j.map((e=>e.groupLabel)))];e.length&&G(e)}}),[j,v,G]);const K=t.useCallback(((e,t)=>e.isPlaceholder?m.default.createElement(m.default.Fragment,{key:e.value}):m.default.createElement(n.MenuItem,Object.assign({},e,{key:`${e.value}${t}`,canSelectAll:u,handleKeyboardNavigation:H,isMultiSelect:S,itemIndex:t.toString(),menuItemRefs:z,onSelect:t=>P(t,e.onSelect),shouldRetainSelection:C,shouldTruncateText:N}))),[H,P,S,z,C,N,u]);return g||(y="320px"),h?m.default.createElement(s.MenuList,Object.assign({},L),h):m.default.createElement(s.MenuList,Object.assign({className:"MeuList"},L,{maxW:y||"unset",maxH:A,minW:w,overflow:"hidden auto"}),(x||u&&S)&&m.default.createElement(o.Box,{className:"MenuList__Header",m:"0 12px 8px"},x&&m.default.createElement(f,{handleKeyboardNavigation:H,menuItems:E||[],searchInputRef:R,setFilteredMenuItems:_,placeholder:M}),u&&S&&m.default.createElement(p,{handleToggleAllItems:U,hasSelectedItems:Boolean(null==j?void 0:j.find((e=>e.isSelected))),isGrouped:!1})),m.default.createElement(o.Box,{className:"MenuList__Body",position:"relative"},(null==j?void 0:j.length)?v?null==q?void 0:q.map(((e,t)=>{const a=null==j?void 0:j.filter((t=>t.groupLabel===e));return m.default.createElement(o.Box,{className:"MenuList__Group",key:`${e||"noGroup"}-${t}`},e&&m.default.createElement(o.Flex,{minH:8,pt:2,pr:3,pb:1,pl:5,justify:"space-between",align:"center"},m.default.createElement(o.Box,{textAlign:"left",className:"MenuList__GroupTitle"},m.default.createElement(l.WrappedHeading,{size:"xs"},e)),S&&d&&m.default.createElement(p,{handleToggleAllItems:U,hasSelectedItems:Boolean(null==a?void 0:a.find((e=>e.isSelected))),isGrouped:!0,groupName:e})),null==a?void 0:a.map(((e,t)=>K(e,t))))})):null==j?void 0:j.map(((e,t)=>K(e,t))):m.default.createElement(o.Box,{textAlign:"center",display:"block",p:3},m.default.createElement(a.WrappedText,{size:"sm",variant:"subtle"},"No results found")),b&&m.default.createElement(o.Box,{position:"absolute",w:"100%",h:"100%",top:"0",left:"0",bg:"background.alphaContrast.pressed"},m.default.createElement(o.Flex,{h:"100%",align:"center",justify:"center"},m.default.createElement(c.Spinner,null)))))};
|
|
2
|
+
//# sourceMappingURL=menuList.component-2644c3c6.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"menuList.component-2644c3c6.js","sources":["../src/components/Menu/components/MenuSearchBar/menuSearchBar.component.tsx","../src/components/Menu/components/MenuSelectAllButtons/menuSelectAllButtons.component.tsx","../src/components/Menu/components/MenuList/menuList.component.tsx"],"sourcesContent":["import React, {\n ChangeEventHandler,\n Dispatch,\n SetStateAction,\n useCallback,\n KeyboardEvent,\n MutableRefObject,\n useEffect,\n} from 'react';\nimport { TextInput } from '../../../TextInput/textInput.component';\nimport { MenuItemProps } from '../MenuItem/menuItem.component';\nimport { useMenuState } from '@chakra-ui/react';\n\nexport interface MenuSearchBarProps {\n handleKeyboardNavigation: (e: KeyboardEvent<HTMLInputElement>, elementIsInputField: boolean) => void;\n menuItems: MenuItemProps[];\n onSearchCallback?: (e: ChangeEventHandler) => void;\n searchInputRef?: MutableRefObject<HTMLInputElement | null>;\n setFilteredMenuItems: Dispatch<SetStateAction<MenuItemProps[]>>;\n placeholder?: string;\n}\n\nexport const MenuSearchBar = ({\n handleKeyboardNavigation,\n menuItems,\n onSearchCallback,\n searchInputRef,\n setFilteredMenuItems,\n placeholder = 'Search...',\n}: MenuSearchBarProps): JSX.Element => {\n const { isOpen } = useMenuState();\n\n const handleSearch = useCallback(\n (e) => {\n const searchInput = e.target.value;\n\n if (searchInput === '' || !searchInput) {\n setFilteredMenuItems(menuItems);\n } else {\n const filterdItems = menuItems.filter((item) => {\n const labelText = typeof item.label === 'string' ? item.label : (item.label?.key as string);\n\n return labelText?.toLowerCase().includes(searchInput.toLowerCase());\n });\n setFilteredMenuItems(filterdItems);\n }\n\n if (onSearchCallback) {\n onSearchCallback(e);\n }\n },\n [menuItems, onSearchCallback, setFilteredMenuItems],\n );\n\n useEffect(() => {\n let focusTimeout: NodeJS.Timeout;\n\n if (isOpen) {\n focusTimeout = setTimeout(() => {\n searchInputRef?.current?.focus();\n }, 200);\n }\n\n return (): void => clearTimeout(focusTimeout);\n }, [searchInputRef, isOpen]);\n\n return (\n <TextInput\n className=\"MenuList__SearchBar\"\n placeholder={placeholder}\n onChange={handleSearch}\n mt={1}\n onKeyDown={(e: KeyboardEvent<HTMLInputElement>): void => handleKeyboardNavigation(e, true)}\n size=\"sm\"\n ref={searchInputRef}\n />\n );\n};\n","import React from 'react';\nimport { Box, Flex } from '@chakra-ui/react';\nimport { Button } from '../../../Button/button.component';\n\nexport interface MenuSelectAllButtonsProps {\n groupName?: string;\n handleToggleAllItems: ({ groupName, clear }: { groupName?: string; clear?: boolean }) => void;\n hasSelectedItems: boolean;\n isGrouped: boolean;\n}\n\nexport const MenuSelectAllButtons = ({\n groupName,\n handleToggleAllItems,\n hasSelectedItems,\n isGrouped,\n}: MenuSelectAllButtonsProps): JSX.Element => {\n if (isGrouped) {\n return (\n <Box textAlign=\"right\" w=\"50%\" className=\"MenuListItem__SelectAllButton\">\n {hasSelectedItems ? (\n <Button\n variant=\"ghostNeutral\"\n iconName=\"arrowCircle\"\n size=\"xs\"\n onClick={(): void => handleToggleAllItems({ groupName, clear: true })}\n isDisabled={!hasSelectedItems}\n >\n Clear all\n </Button>\n ) : (\n <Button variant=\"ghost\" size=\"xs\" onClick={(): void => handleToggleAllItems({ groupName, clear: false })}>\n Select all\n </Button>\n )}\n </Box>\n );\n }\n\n return (\n <Box mt=\"8px\" className=\"MenuList__SelectAllButtons\">\n <Flex justifyContent=\"space-between\">\n <Button variant=\"ghost\" size=\"xs\" onClick={(): void => handleToggleAllItems({ clear: false })}>\n Select all\n </Button>\n <Button\n variant=\"ghostNeutral\"\n iconName=\"arrowCircle\"\n size=\"xs\"\n onClick={(): void => handleToggleAllItems({ clear: true })}\n isDisabled={!hasSelectedItems}\n >\n Clear all\n </Button>\n </Flex>\n </Box>\n );\n};\n","import React, { useCallback, KeyboardEvent, useEffect } from 'react';\nimport { MenuList as CMenuList, MenuListProps as CMenuListProps, Box, Flex } from '@chakra-ui/react';\nimport { Heading } from '../../../Heading/heading.component';\nimport { Text } from '../../../Text/text.component';\nimport { MenuItem, MenuItemProps } from '../MenuItem/menuItem.component';\nimport { MenuSearchBar } from '../MenuSearchBar/menuSearchBar.component';\nimport { MenuSelectAllButtons } from '../MenuSelectAllButtons/menuSelectAllButtons.component';\nimport { useMenuContext } from '../../context/menu.context';\nimport { Spinner } from 'components/Spinner';\n\nexport interface KMenuListProps {\n canSelectAll?: boolean;\n canSelectGroups?: boolean;\n isGrouped?: boolean;\n isLoading?: boolean;\n isMatchWidthSet?: boolean;\n isMultiSelect?: boolean;\n isSearchable?: boolean;\n menuItems?: MenuItemProps[];\n onSelect?:\n | ((selectedItem: MenuItemProps, allSelectedItems?: MenuItemProps[]) => void)\n | ((selectedItem: MenuItemProps, allSelectedItems?: MenuItemProps[]) => Promise<void>);\n onSelectAll?: ((selectedItems: MenuItemProps[]) => void) | ((selectedItems: MenuItemProps[]) => Promise<void>);\n searchPlaceholder?: string;\n shouldRetainSelection?: boolean;\n shouldTruncateText?: boolean;\n shouldUsePortal?: boolean;\n}\n\nexport type MenuListProps = KMenuListProps & Omit<CMenuListProps, 'onSelect'>;\n\nexport const MenuList = ({\n canSelectAll = false,\n canSelectGroups = false,\n children,\n isGrouped = false,\n isMatchWidthSet,\n isMultiSelect = false,\n isSearchable = false,\n isLoading = false,\n menuItems,\n onSelect,\n onSelectAll,\n searchPlaceholder,\n shouldRetainSelection = false,\n shouldTruncateText = true,\n minW = '240px',\n maxW,\n maxH = '480px',\n shouldUsePortal = false,\n ...rest\n}: MenuListProps): JSX.Element => {\n const {\n filteredMenuItems,\n setFilteredMenuItems,\n allMenuItems,\n groups,\n setGroups,\n focusedItemIndex,\n setFocusedItemIndex,\n searchInputRef,\n menuItemRefs,\n } = useMenuContext();\n\n const focusNextListItem = useCallback(\n (direction) => {\n if (!menuItemRefs?.current) return;\n\n const isFirstOption = focusedItemIndex === 0;\n const isLastOption = focusedItemIndex === menuItemRefs?.current.length - 1;\n let newIndex = -1;\n\n if (direction === 'ArrowDown') {\n if (isLastOption) {\n if (isSearchable) {\n searchInputRef?.current?.focus();\n setFocusedItemIndex(-1);\n return;\n }\n\n newIndex = 0;\n } else {\n newIndex = focusedItemIndex + 1;\n }\n } else if (direction === 'ArrowUp') {\n if (isFirstOption) {\n if (isSearchable) {\n searchInputRef?.current?.focus();\n setFocusedItemIndex(-1);\n return;\n }\n\n newIndex = menuItemRefs.current.length - 1;\n } else {\n newIndex = focusedItemIndex - 1;\n }\n }\n\n const nextListItem = menuItemRefs?.current[newIndex];\n\n if (nextListItem) {\n nextListItem?.focus();\n setFocusedItemIndex(newIndex);\n } else {\n setFocusedItemIndex(-1);\n }\n },\n [focusedItemIndex, isSearchable, menuItemRefs, searchInputRef, setFocusedItemIndex],\n );\n\n const handleKeyboardNavigation = useCallback(\n (e: KeyboardEvent<HTMLInputElement | HTMLDivElement>, elementIsInputField): void => {\n e.persist();\n\n if (!menuItemRefs?.current) return;\n\n if (e.key === 'ArrowDown' || e.key === 'Tab') {\n focusNextListItem('ArrowDown');\n }\n\n if (e.key === 'ArrowUp') {\n focusNextListItem('ArrowUp');\n }\n\n if (e.key === 'Enter') {\n e.preventDefault();\n (e.target as HTMLElement).click();\n }\n },\n [focusNextListItem, menuItemRefs],\n );\n\n const handleToggleSingleItem = useCallback(\n (selectedValue: MenuItemProps, itemOnSelect) => {\n if (filteredMenuItems && allMenuItems) {\n const _filteredMenuItemsCopy = [...filteredMenuItems];\n const selectedItem = _filteredMenuItemsCopy.find((item) => item.value === selectedValue.value);\n\n if (isMultiSelect && selectedItem) {\n selectedItem.isSelected = !selectedItem.isSelected;\n }\n\n setFilteredMenuItems(_filteredMenuItemsCopy);\n\n const allSelectedItems = allMenuItems.filter((item) => item.isSelected);\n\n if (onSelect && selectedItem) {\n onSelect(selectedItem, allSelectedItems);\n }\n\n if (itemOnSelect && selectedItem) {\n itemOnSelect(selectedItem, allSelectedItems);\n }\n }\n },\n [allMenuItems, filteredMenuItems, isMultiSelect, onSelect, setFilteredMenuItems],\n );\n\n const handleToggleAllItems = useCallback(\n ({ groupName, clear = false }: { groupName?: string; clear?: boolean }) => {\n if (filteredMenuItems && allMenuItems) {\n const _filteredMenuItemsCopy = [...filteredMenuItems];\n const value: string[] = [];\n\n _filteredMenuItemsCopy.forEach((item) => {\n if (groupName) {\n if (groupName === item.groupLabel) {\n item.isSelected = !clear;\n\n if (item.value && item.isSelected) {\n value.push(item.value);\n }\n }\n } else {\n item.isSelected = !clear;\n\n if (item.value && item.isSelected) {\n value.push(item.value);\n }\n }\n });\n\n setFilteredMenuItems(_filteredMenuItemsCopy);\n\n if (onSelectAll) {\n onSelectAll(allMenuItems.filter((item) => item.isSelected));\n }\n }\n },\n [filteredMenuItems, allMenuItems, onSelectAll, setFilteredMenuItems],\n );\n\n useEffect(() => {\n if (isGrouped) {\n const groupNames = [...new Set(filteredMenuItems?.map((item) => item.groupLabel))];\n if (groupNames.length) {\n setGroups(groupNames);\n }\n }\n }, [filteredMenuItems, isGrouped, setGroups]);\n\n const getMenuItem = useCallback(\n (item: MenuItemProps, index: number) => {\n if (item.isPlaceholder) return <React.Fragment key={item.value}></React.Fragment>;\n\n return (\n <MenuItem\n {...item}\n key={`${item.value}${index}`}\n canSelectAll={canSelectAll}\n handleKeyboardNavigation={handleKeyboardNavigation}\n isMultiSelect={isMultiSelect}\n itemIndex={index.toString()}\n menuItemRefs={menuItemRefs}\n onSelect={(selectedItem: MenuItemProps): void => handleToggleSingleItem(selectedItem, item.onSelect)}\n shouldRetainSelection={shouldRetainSelection}\n shouldTruncateText={shouldTruncateText}\n />\n );\n },\n [\n handleKeyboardNavigation,\n handleToggleSingleItem,\n isMultiSelect,\n menuItemRefs,\n shouldRetainSelection,\n shouldTruncateText,\n canSelectAll,\n ],\n );\n\n if (!isMatchWidthSet) {\n maxW = '320px';\n }\n\n // Return default Chakra menu if user passes in custom child elements\n if (children) {\n return <CMenuList {...rest}>{children}</CMenuList>;\n }\n\n return (\n <CMenuList className=\"MeuList\" {...rest} maxW={maxW || 'unset'} maxH={maxH} minW={minW} overflow=\"hidden auto\">\n {(isSearchable || (canSelectAll && isMultiSelect)) && (\n <Box className=\"MenuList__Header\" m=\"0 12px 8px\">\n {isSearchable && (\n <MenuSearchBar\n handleKeyboardNavigation={handleKeyboardNavigation}\n menuItems={menuItems || []}\n searchInputRef={searchInputRef}\n setFilteredMenuItems={setFilteredMenuItems}\n placeholder={searchPlaceholder}\n />\n )}\n {canSelectAll && isMultiSelect && (\n <MenuSelectAllButtons\n handleToggleAllItems={handleToggleAllItems}\n hasSelectedItems={Boolean(filteredMenuItems?.find((item) => item.isSelected))}\n isGrouped={false}\n />\n )}\n </Box>\n )}\n <Box className=\"MenuList__Body\" position=\"relative\">\n {!filteredMenuItems?.length ? (\n <Box textAlign=\"center\" display=\"block\" p={3}>\n <Text size=\"sm\" variant=\"subtle\">\n No results found\n </Text>\n </Box>\n ) : isGrouped ? (\n groups?.map((groupName, index) => {\n const menuItems = filteredMenuItems?.filter((item) => item.groupLabel === groupName);\n return (\n <Box className=\"MenuList__Group\" key={`${groupName || 'noGroup'}-${index}`}>\n {groupName && (\n <Flex minH={8} pt={2} pr={3} pb={1} pl={5} justify=\"space-between\" align=\"center\">\n <Box textAlign=\"left\" className=\"MenuList__GroupTitle\">\n <Heading size=\"xs\">{groupName}</Heading>\n </Box>\n {isMultiSelect && canSelectGroups && (\n <MenuSelectAllButtons\n handleToggleAllItems={handleToggleAllItems}\n hasSelectedItems={Boolean(menuItems?.find((item) => item.isSelected))}\n isGrouped={true}\n groupName={groupName}\n />\n )}\n </Flex>\n )}\n {menuItems?.map((item: MenuItemProps, index: number) => {\n return getMenuItem(item, index);\n })}\n </Box>\n );\n })\n ) : (\n filteredMenuItems?.map((item: MenuItemProps, index: number) => {\n return getMenuItem(item, index);\n })\n )}\n {isLoading && (\n <Box position=\"absolute\" w=\"100%\" h=\"100%\" top=\"0\" left=\"0\" bg=\"background.alphaContrast.pressed\">\n <Flex h=\"100%\" align=\"center\" justify=\"center\">\n <Spinner />\n </Flex>\n </Box>\n )}\n </Box>\n </CMenuList>\n );\n};\n"],"names":["MenuSearchBar","handleKeyboardNavigation","menuItems","onSearchCallback","searchInputRef","setFilteredMenuItems","placeholder","isOpen","useMenuState","handleSearch","useCallback","e","searchInput","target","value","filterdItems","filter","item","labelText","label","_a","key","toLowerCase","includes","useEffect","focusTimeout","setTimeout","current","focus","clearTimeout","React","createElement","TextInput","WrappedTextInput","className","onChange","mt","onKeyDown","size","ref","MenuSelectAllButtons","groupName","handleToggleAllItems","hasSelectedItems","isGrouped","Box","textAlign","w","Button","variant","iconName","onClick","clear","isDisabled","Flex","justifyContent","canSelectAll","canSelectGroups","children","isMatchWidthSet","isMultiSelect","isSearchable","isLoading","onSelect","onSelectAll","searchPlaceholder","shouldRetainSelection","shouldTruncateText","minW","maxW","maxH","shouldUsePortal","rest","__rest","filteredMenuItems","allMenuItems","groups","setGroups","focusedItemIndex","setFocusedItemIndex","menuItemRefs","useMenuContext","focusNextListItem","direction","isFirstOption","isLastOption","length","newIndex","_b","nextListItem","elementIsInputField","persist","preventDefault","click","handleToggleSingleItem","selectedValue","itemOnSelect","_filteredMenuItemsCopy","selectedItem","find","isSelected","allSelectedItems","forEach","groupLabel","push","groupNames","Set","map","getMenuItem","index","isPlaceholder","Fragment","MenuItem","Object","assign","itemIndex","toString","CMenuList","overflow","m","Boolean","position","minH","pt","pr","pb","pl","justify","align","Heading","display","p","Text","WrappedText","h","top","left","bg","Spinner"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modalFooterButtons.component-1e38e003.js","sources":["../src/components/Modal/components/ModalFooterButtons/modalFooterButtons.component.tsx"],"sourcesContent":["import React from 'react';\nimport {\n ModalFooter as CModalFooter,\n ModalFooterProps as CModalFooterProps,\n useModalContext,\n Flex,\n Spacer,\n} from '@chakra-ui/react';\nimport { Button } from '../../../Button/button.component';\n\nexport interface ModalFooterButtonProps extends CModalFooterProps {\n mixpanelName?: string;\n submitText?: string;\n isLoading?: boolean;\n loadingText?: string;\n isDisabled?: boolean;\n isDestructive?: boolean;\n onSubmit?: () => void
|
|
1
|
+
{"version":3,"file":"modalFooterButtons.component-1e38e003.js","sources":["../src/components/Modal/components/ModalFooterButtons/modalFooterButtons.component.tsx"],"sourcesContent":["import React from 'react';\nimport {\n ModalFooter as CModalFooter,\n ModalFooterProps as CModalFooterProps,\n useModalContext,\n Flex,\n Spacer,\n} from '@chakra-ui/react';\nimport { Button } from '../../../Button/button.component';\n\nexport interface ModalFooterButtonProps extends CModalFooterProps {\n mixpanelName?: string;\n submitText?: string;\n isLoading?: boolean;\n loadingText?: string;\n isDisabled?: boolean;\n isDestructive?: boolean;\n onSubmit?: () => void | Promise<void>;\n allowCancel?: boolean;\n onCancel?: () => void;\n}\n\nexport const ModalFooterButtons = ({\n submitText = 'Submit',\n isLoading,\n loadingText,\n isDisabled,\n isDestructive,\n mixpanelName,\n children,\n onSubmit,\n allowCancel = true,\n onCancel,\n ...rest\n}: ModalFooterButtonProps): JSX.Element => {\n const { onClose } = useModalContext();\n\n const handleCancel = (): void => {\n if (onCancel) {\n onCancel();\n }\n onClose();\n };\n\n return (\n <CModalFooter {...rest} pb={6}>\n <Flex w=\"100%\">\n {allowCancel && (\n <Button variant=\"tertiary\" onClick={handleCancel}>\n Cancel\n </Button>\n )}\n <Spacer />\n <Button\n data-mixpanel-name={mixpanelName}\n onClick={onSubmit}\n isLoading={isLoading}\n loadingText={loadingText}\n isDisabled={isDisabled}\n variant={isDestructive ? 'primaryDestructive' : 'primary'}\n >\n {submitText}\n </Button>\n </Flex>\n </CModalFooter>\n );\n};\n"],"names":["_a","submitText","isLoading","loadingText","isDisabled","isDestructive","mixpanelName","children","onSubmit","allowCancel","onCancel","rest","__rest","onClose","useModalContext","React","CModalFooter","ModalFooter","Object","assign","pb","createElement","Flex","w","Button","variant","onClick","Spacer"],"mappings":"kUAsBmCA,IAAA,IAAAC,WACjCA,EAAa,SAAQC,UACrBA,EAASC,YACTA,EAAWC,WACXA,EAAUC,cACVA,EAAaC,aACbA,EAAYC,SACZA,EAAQC,SACRA,EAAQC,YACRA,GAAc,EAAIC,SAClBA,GAAQV,EACLW,EAX8BC,EAAAA,OAAAZ,EAAA,CAAA,aAAA,YAAA,cAAA,aAAA,gBAAA,eAAA,WAAA,WAAA,cAAA,aAajC,MAAMa,QAAEA,GAAYC,EAAAA,kBASpB,OACEC,wBAACC,EAAYC,YAAAC,OAAAC,OAAA,GAAKR,EAAM,CAAAS,GAAI,IAC1BL,EAAAA,QAAAM,cAACC,EAAAA,KAAI,CAACC,EAAE,QACLd,GACCM,EAAC,QAAAM,cAAAG,EAAAA,OAAO,CAAAC,QAAQ,WAAWC,QAXd,KACfhB,GACFA,IAEFG,gBAWIE,UAAAM,cAACM,EAAMA,OAAG,MACVZ,UAAAM,cAACG,EAAMA,OACe,CAAA,qBAAAlB,EACpBoB,QAASlB,EACTN,UAAWA,EACXC,YAAaA,EACbC,WAAYA,EACZqB,QAASpB,EAAgB,qBAAuB,WAE/CJ"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var t=require("./tslib.es6-d6f17add.js"),e=require("react"),o=require("./chakra-ui-layout.esm-6ee578f7.js");function r(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var a,n=r(e);exports.NotificationCounterVariant=void 0,(a=exports.NotificationCounterVariant||(exports.NotificationCounterVariant={})).Red="red",a.Neutral="neutral";const i={xs:
|
|
2
|
-
//# sourceMappingURL=notificationCounter.component-
|
|
1
|
+
"use strict";var t=require("./tslib.es6-d6f17add.js"),e=require("react"),o=require("./chakra-ui-layout.esm-6ee578f7.js");function r(t){return t&&"object"==typeof t&&"default"in t?t:{default:t}}var a,n=r(e);exports.NotificationCounterVariant=void 0,(a=exports.NotificationCounterVariant||(exports.NotificationCounterVariant={})).Red="red",a.Neutral="neutral";const i={xs:3,sm:4,md:5,lg:6},u={xs:"8px",sm:"10px",md:"12px",lg:"14px"},s={xs:"1px",sm:"2px",md:"3px",lg:"4px"};exports.NotificationCounter=e=>{var{count:r=0,size:a="md",showCount:d=!0,variant:l=exports.NotificationCounterVariant.Red}=e,c=t.__rest(e,["count","size","showCount","variant"]);const x="xs"!==a&&d,f={[exports.NotificationCounterVariant.Red]:{backgroundColor:"background.danger",color:"text.onContrast"},[exports.NotificationCounterVariant.Neutral]:{backgroundColor:"background.lessSubtle",color:"text.default"}},p=r>99?n.default.createElement(o.Box,{backgroundColor:f[l].color,borderRadius:"full",height:s[a],width:s[a]}):r>0&&r;return n.default.createElement(o.Flex,Object.assign({},c,{className:"NotifcationCounter",alignItems:"center",border:"1px",borderColor:"background.default",borderRadius:"full",fontSize:u[a],fontWeight:"bold",height:i[a],justifyContent:"center",width:i[a]},f[l]),x&&p)};
|
|
2
|
+
//# sourceMappingURL=notificationCounter.component-24f3f4ab.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"notificationCounter.component-
|
|
1
|
+
{"version":3,"file":"notificationCounter.component-24f3f4ab.js","sources":["../src/components/NotificationCounter/notificationCounter.types.ts","../src/components/NotificationCounter/notificationCounter.records.ts","../src/components/NotificationCounter/notificationCounter.component.tsx"],"sourcesContent":["export type NotificationCounterSize = 'lg' | 'md' | 'sm' | 'xs';\n\nexport enum NotificationCounterVariant {\n Red = 'red',\n Neutral = 'neutral',\n}\n","import { NotificationCounterSize } from './notificationCounter.types';\n\nexport const MAX_COUNT = 99;\n\nexport const notificationCounterSizes: Record<NotificationCounterSize, number> = {\n xs: 3,\n sm: 4,\n md: 5,\n lg: 6,\n};\n\nexport const notificationCounterFontSizes: Record<NotificationCounterSize, string> = {\n xs: '8px', // Not used since the xs size doesn't show a label\n sm: '10px',\n md: '12px',\n lg: '14px',\n};\n\nexport const maxNotificationCounterSizes: Record<NotificationCounterSize, string> = {\n xs: '1px', // Not used since the xs size doesn't show a label\n sm: '2px',\n md: '3px',\n lg: '4px',\n};\n","import React from 'react';\nimport { NotificationCounterSize, NotificationCounterVariant } from './notificationCounter.types';\nimport { Box, Flex, FlexProps } from '@chakra-ui/react';\nimport {\n MAX_COUNT,\n maxNotificationCounterSizes,\n notificationCounterFontSizes,\n notificationCounterSizes,\n} from './notificationCounter.records';\n\nexport interface NotificationCounterProps extends FlexProps {\n count?: number;\n size?: NotificationCounterSize;\n showCount?: boolean;\n variant?: NotificationCounterVariant;\n}\n\nexport const NotificationCounter = ({\n count = 0,\n size = 'md',\n showCount = true,\n variant = NotificationCounterVariant.Red,\n ...rest\n}: NotificationCounterProps): JSX.Element => {\n const _showCount = size === 'xs' ? false : showCount; // By default the xs size doesn't show a label\n\n const notificationVariantStyles = {\n [NotificationCounterVariant.Red]: {\n backgroundColor: 'background.danger',\n color: 'text.onContrast',\n },\n [NotificationCounterVariant.Neutral]: {\n backgroundColor: 'background.lessSubtle',\n color: 'text.default',\n },\n };\n\n const counterContent =\n count > MAX_COUNT ? (\n <Box\n backgroundColor={notificationVariantStyles[variant].color}\n borderRadius=\"full\"\n height={maxNotificationCounterSizes[size]}\n width={maxNotificationCounterSizes[size]}\n />\n ) : (\n count > 0 && count\n );\n\n return (\n <Flex\n {...rest}\n className=\"NotifcationCounter\"\n alignItems=\"center\"\n border=\"1px\"\n borderColor=\"background.default\"\n borderRadius=\"full\"\n fontSize={notificationCounterFontSizes[size]}\n fontWeight=\"bold\"\n height={notificationCounterSizes[size]}\n justifyContent=\"center\"\n width={notificationCounterSizes[size]}\n {...notificationVariantStyles[variant]}\n >\n {_showCount && counterContent}\n </Flex>\n );\n};\n"],"names":["NotificationCounterVariant","notificationCounterSizes","xs","sm","md","lg","notificationCounterFontSizes","maxNotificationCounterSizes","_a","count","size","showCount","variant","Red","rest","__rest","_showCount","notificationVariantStyles","backgroundColor","color","Neutral","counterContent","React","createElement","Box","borderRadius","height","width","Flex","Object","assign","className","alignItems","border","borderColor","fontSize","fontWeight","justifyContent"],"mappings":"qMAEYA,SAAAA,QAGXA,gCAAA,GAHWA,EAAAA,QAA0BA,6BAA1BA,mCAGX,KAFC,IAAA,MACAA,EAAA,QAAA,UCFK,MAEMC,EAAoE,CAC/EC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,GAGOC,EAAwE,CACnFJ,GAAI,MACJC,GAAI,OACJC,GAAI,OACJC,GAAI,QAGOE,EAAuE,CAClFL,GAAI,MACJC,GAAI,MACJC,GAAI,MACJC,GAAI,mCCL8BG,QAAAC,MAClCA,EAAQ,EAACC,KACTA,EAAO,KAAIC,UACXA,GAAY,EAAIC,QAChBA,EAAUZ,mCAA2Ba,OAClCC,EAL+BC,EAAAA,OAAAP,EAAA,CAAA,QAAA,OAAA,YAAA,YAOlC,MAAMQ,EAAsB,OAATN,GAAwBC,EAErCM,EAA4B,CAChC,CAACjB,QAAAA,2BAA2Ba,KAAM,CAChCK,gBAAiB,oBACjBC,MAAO,mBAET,CAACnB,QAAAA,2BAA2BoB,SAAU,CACpCF,gBAAiB,wBACjBC,MAAO,iBAILE,EACJZ,EDpCqB,GCqCnBa,EAAC,QAAAC,cAAAC,OACCN,gBAAiBD,EAA0BL,GAASO,MACpDM,aAAa,OACbC,OAAQnB,EAA4BG,GACpCiB,MAAOpB,EAA4BG,KAGrCD,EAAQ,GAAKA,EAGjB,OACEa,EAAA,QAAAC,cAACK,OAAIC,OAAAC,OAAA,GACChB,EAAI,CACRiB,UAAU,qBACVC,WAAW,SACXC,OAAO,MACPC,YAAY,qBACZT,aAAa,OACbU,SAAU7B,EAA6BI,GACvC0B,WAAW,OACXV,OAAQzB,EAAyBS,GACjC2B,eAAe,SACfV,MAAO1B,EAAyBS,IAC5BO,EAA0BL,IAE7BI,GAAcK"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e=require("./tslib.es6-d6f17add.js"),t=require("react"),n=require("./menuContainer.component-3e1e324b.js"),l=require("./withFormControl-6d7abf11.js"),a=require("./menu.context-22d23674.js"),r=require("./menuList.component-
|
|
2
|
-
//# sourceMappingURL=select.component-
|
|
1
|
+
"use strict";var e=require("./tslib.es6-d6f17add.js"),t=require("react"),n=require("./menuContainer.component-3e1e324b.js"),l=require("./withFormControl-6d7abf11.js"),a=require("./menu.context-22d23674.js"),r=require("./menuList.component-2644c3c6.js"),s=require("./text.component-057889c3.js"),i=require("./chakra-ui-layout.esm-6ee578f7.js"),u=require("./icon.component-3355868e.js"),c=require("./chakra-ui-select.esm-793cf4de.js"),o=require("./chakra-ui-menu.esm-1ed98193.js");function d(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var m=d(t);const f=t=>{const{options:n}=t,l=e.__rest(t,["options"]);return m.default.createElement(r.MenuList,Object.assign({shouldRetainSelection:!0,menuItems:n,isMatchWidthSet:!0},l))},p=({selectedOption:e,defaultLeftElement:t,shouldTruncateText:n=!0})=>m.default.createElement(i.Flex,{className:"Select__Container",justify:"flex-start",align:"center",textAlign:"left",color:e.variant?`text.${e.variant}`:"text.default"},(null==e?void 0:e.leftElement)?m.default.createElement(i.Flex,{align:"center",className:"Select__LeftElement",pr:2},e.leftElement):t?m.default.createElement(i.Flex,{align:"center",className:"Select__LeftElement",pr:2},t):null,"string"==typeof e.label?m.default.createElement(s.WrappedText,{className:"Select__Text",isTruncated:n,variant:e.variant||"default"},e.label):e.label),v=l=>{var{defaultLeftElement:r,isFieldInline:s,listProps:i,options:d,placeholder:v,size:h="md",value:x,maxW:E="100%",isOnContrast:j}=l,S=e.__rest(l,["defaultLeftElement","isFieldInline","listProps","options","placeholder","size","value","maxW","isOnContrast"]);const b=j?"onContrast":"default",g=t.useRef(null),_=t.useMemo((()=>({label:v,value:"",variant:j?"placeholderOnContrast":"placeholder",leftElement:null,isSelected:!1,isPlaceholder:!0})),[v,j]),[O,q]=t.useState([]),C=t.useMemo((()=>{const e=O.find((e=>e.isSelected));return e||_}),[O,_]),T=t.useCallback((e=>{if(!O)return;const t=O.map((t=>Object.assign(Object.assign({},t),{isSelected:t.value===e.value})));q(t),(null==i?void 0:i.onSelect)&&i.onSelect(e)}),[O,i]),L=(null==i?void 0:i.shouldTruncateText)?{}:{height:"max-content",minH:10},M=t.useMemo((()=>{var e;return g.current?`${null===(e=null==g?void 0:g.current)||void 0===e?void 0:e.clientWidth}px`:"320px"}),[null==g?void 0:g.current]);return t.useEffect((()=>{const e=d.map((e=>Object.assign(Object.assign({},e),{isSelected:e.value===x})));q([...e,_])}),[d,_,x]),m.default.createElement(a.MenuProvider,{menuItems:O},m.default.createElement(n.MenuContainer,{matchWidth:!0,isLazy:!0},m.default.createElement(c.Select,Object.assign({icon:m.default.createElement(u.Icon,{name:"chevronDown",size:h}),as:o.MenuButton,ref:g,onClick:e=>e.stopPropagation(),type:"button",className:"Select__MenuButton",variant:b,maxW:E},L,S),m.default.createElement(p,{selectedOption:C,defaultLeftElement:r,shouldTruncateText:null==i?void 0:i.shouldTruncateText})),m.default.createElement(f,Object.assign({},i,{onSelect:T,options:O,maxW:M||E}))))};v.displayName="Select";const h=l.withFormControl(v);exports.WrappedSelect=h;
|
|
2
|
+
//# sourceMappingURL=select.component-502f4a07.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"select.component-7141bf80.js","sources":["../src/components/Select/components/SelectList/selectList.component.tsx","../src/components/Select/components/SelectContainer/selectContainer.component.tsx","../src/components/Select/select.component.tsx"],"sourcesContent":["import React from 'react';\nimport { MenuList, KMenuListProps, MenuListProps } from '../../../Menu/components/MenuList/menuList.component';\nimport { SelectOptionProps } from '../SelectOption/selectOption.types';\n\nexport interface KSelectListProps\n extends Omit<\n KMenuListProps,\n | 'canSelectAll'\n | 'canSelectGroups'\n | 'isMultiSelect'\n | 'onSelectAll'\n | 'menuItems'\n | 'shouldRetainSelection'\n | 'isMatchWidthSet'\n | 'isLoading'\n > {\n options?: SelectOptionProps[];\n}\n\nexport type SelectListProps = KSelectListProps & MenuListProps;\n\nexport const SelectList = (props: SelectListProps): JSX.Element => {\n const { options, ...rest } = props;\n\n return <MenuList shouldRetainSelection={true} menuItems={options} isMatchWidthSet={true} {...rest} />;\n};\n","import React, { ReactNode } from 'react';\nimport { Flex } from '@chakra-ui/react';\nimport { Text } from '../../../Text/text.component';\nimport { SelectOptionProps } from '../SelectOption/selectOption.types';\n\nexport interface SelectContainerProps {\n selectedOption: SelectOptionProps;\n defaultLeftElement: ReactNode;\n shouldTruncateText?: boolean;\n}\n\nexport const SelectContainer = ({\n selectedOption,\n defaultLeftElement,\n shouldTruncateText = true,\n}: SelectContainerProps): JSX.Element => {\n return (\n <Flex\n className=\"Select__Container\"\n justify=\"flex-start\"\n align=\"center\"\n textAlign=\"left\"\n color={selectedOption.variant ? `text.${selectedOption.variant}` : 'text.default'}\n >\n {selectedOption?.leftElement ? (\n <Flex align=\"center\" className=\"Select__LeftElement\" pr={2}>\n {selectedOption.leftElement}\n </Flex>\n ) : defaultLeftElement ? (\n <Flex align=\"center\" className=\"Select__LeftElement\" pr={2}>\n {defaultLeftElement}\n </Flex>\n ) : null}\n {typeof selectedOption.label === 'string' ? (\n <Text className=\"Select__Text\" isTruncated={shouldTruncateText} variant={selectedOption.variant || 'default'}>\n {selectedOption.label}\n </Text>\n ) : (\n selectedOption.label\n )}\n </Flex>\n );\n};\n","import React, { useMemo, ReactNode, useRef, useState, useCallback, useEffect } from 'react';\nimport { Select as CSelect, SelectProps as CSelectProps, MenuButton } from '@chakra-ui/react';\nimport { MenuContainer } from '../Menu/components/MenuContainer/menuContainer.component';\nimport { WithFormControlProps, withFormControl } from 'shared/hocs/FormControl/withFormControl';\nimport { MenuProvider } from '../Menu/context/menu.context';\nimport { SelectList, SelectListProps } from './components/SelectList/selectList.component';\nimport { SelectContainer } from './components/SelectContainer/selectContainer.component';\nimport { Icon } from '../Icon/icon.component';\nimport { IconSize } from '../Icon/icon.types';\nimport { FormControlSize } from 'shared/types/formControl';\nimport { SelectOptionProps } from './components/SelectOption/selectOption.types';\n\nexport interface KSelectProps extends WithFormControlProps {\n defaultLeftElement?: ReactNode;\n listProps?: SelectListProps;\n options: SelectOptionProps[];\n size?: FormControlSize;\n isOnContrast?: boolean;\n placeholder?: string;\n}\n\nexport type SelectProps = KSelectProps & Omit<CSelectProps, 'onSelect'>;\n\nconst Select = ({\n defaultLeftElement,\n isFieldInline,\n listProps,\n options,\n placeholder,\n size = 'md',\n value,\n maxW = '100%',\n isOnContrast,\n ...rest\n}: SelectProps): JSX.Element => {\n // TODO: Need to add full support for isOnContrast, currently menu list still renders white\n const _computedVariant = isOnContrast ? 'onContrast' : 'default';\n const selectRef = useRef<HTMLSelectElement>(null);\n const placeholderOption: SelectOptionProps = useMemo(\n () => ({\n label: placeholder,\n value: '',\n variant: isOnContrast ? 'placeholderOnContrast' : 'placeholder',\n leftElement: null,\n isSelected: false,\n isPlaceholder: true,\n }),\n [placeholder, isOnContrast],\n );\n\n const [allOptions, setAllOptions] = useState<SelectOptionProps[]>([]);\n\n const selectedOption: SelectOptionProps = useMemo(() => {\n const selectedItem = allOptions.find((option) => option.isSelected);\n\n return selectedItem ? selectedItem : placeholderOption;\n }, [allOptions, placeholderOption]);\n\n const handleSelect = useCallback(\n (selectedItem: SelectOptionProps) => {\n if (!allOptions) return;\n\n const updatedOptions = allOptions.map((option) => {\n return {\n ...option,\n isSelected: option.value === selectedItem.value,\n };\n });\n setAllOptions(updatedOptions);\n\n if (listProps?.onSelect) {\n listProps.onSelect(selectedItem);\n }\n },\n [allOptions, listProps],\n );\n\n // If the text is not being truncated it should grow to fit the content\n const flexibleHeightProps = !listProps?.shouldTruncateText ? { height: 'max-content', minH: 10 } : {};\n\n const selectWidth = useMemo(() => {\n if (!selectRef.current) {\n return '320px';\n }\n\n return `${selectRef?.current?.clientWidth}px`;\n\n // Disables the warning for not including unused dependency in the hook array. This dependency is needed to rerender the menu list with the correct width\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectRef?.current]);\n\n // Set default selected state\n useEffect(() => {\n const mappedOptions = options.map((option) => ({\n ...option,\n isSelected: option.value === value,\n }));\n\n setAllOptions([...mappedOptions, placeholderOption]);\n }, [options, placeholderOption, value]);\n\n return (\n <MenuProvider menuItems={allOptions}>\n <MenuContainer matchWidth={true} isLazy={true}>\n <CSelect\n icon={<Icon name=\"chevronDown\" size={size as IconSize} />}\n as={MenuButton}\n ref={selectRef}\n onClick={(event: React.MouseEvent): void => event.stopPropagation()}\n type=\"button\"\n className=\"Select__MenuButton\"\n variant={_computedVariant}\n maxW={maxW}\n {...flexibleHeightProps}\n {...rest}\n >\n <SelectContainer\n selectedOption={selectedOption}\n defaultLeftElement={defaultLeftElement}\n shouldTruncateText={listProps?.shouldTruncateText}\n />\n </CSelect>\n <SelectList {...listProps} onSelect={handleSelect} options={allOptions} maxW={selectWidth || maxW} />\n </MenuContainer>\n </MenuProvider>\n );\n};\n\nSelect.displayName = 'Select';\n\nconst WrappedSelect = withFormControl(Select);\n\nexport { WrappedSelect as Select };\n"],"names":["SelectList","props","options","rest","__rest","React","MenuList","Object","assign","shouldRetainSelection","menuItems","isMatchWidthSet","SelectContainer","selectedOption","defaultLeftElement","shouldTruncateText","createElement","Flex","className","justify","align","textAlign","color","variant","leftElement","pr","label","Text","isTruncated","Select","_a","isFieldInline","listProps","placeholder","size","value","maxW","isOnContrast","_computedVariant","selectRef","useRef","placeholderOption","useMemo","isSelected","isPlaceholder","allOptions","setAllOptions","useState","selectedItem","find","option","handleSelect","useCallback","updatedOptions","map","onSelect","flexibleHeightProps","height","minH","selectWidth","current","clientWidth","useEffect","mappedOptions","MenuProvider","MenuContainer","matchWidth","isLazy","CSelect","icon","Icon","name","as","MenuButton","ref","onClick","event","stopPropagation","type","displayName","WrappedSelect","withFormControl"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"select.component-502f4a07.js","sources":["../src/components/Select/components/SelectList/selectList.component.tsx","../src/components/Select/components/SelectContainer/selectContainer.component.tsx","../src/components/Select/select.component.tsx"],"sourcesContent":["import React from 'react';\nimport { MenuList, KMenuListProps, MenuListProps } from '../../../Menu/components/MenuList/menuList.component';\nimport { SelectOptionProps } from '../SelectOption/selectOption.types';\n\nexport interface KSelectListProps\n extends Omit<\n KMenuListProps,\n | 'canSelectAll'\n | 'canSelectGroups'\n | 'isMultiSelect'\n | 'onSelectAll'\n | 'menuItems'\n | 'shouldRetainSelection'\n | 'isMatchWidthSet'\n | 'isLoading'\n > {\n options?: SelectOptionProps[];\n}\n\nexport type SelectListProps = KSelectListProps & MenuListProps;\n\nexport const SelectList = (props: SelectListProps): JSX.Element => {\n const { options, ...rest } = props;\n\n return <MenuList shouldRetainSelection={true} menuItems={options} isMatchWidthSet={true} {...rest} />;\n};\n","import React, { ReactNode } from 'react';\nimport { Flex } from '@chakra-ui/react';\nimport { Text } from '../../../Text/text.component';\nimport { SelectOptionProps } from '../SelectOption/selectOption.types';\n\nexport interface SelectContainerProps {\n selectedOption: SelectOptionProps;\n defaultLeftElement: ReactNode;\n shouldTruncateText?: boolean;\n}\n\nexport const SelectContainer = ({\n selectedOption,\n defaultLeftElement,\n shouldTruncateText = true,\n}: SelectContainerProps): JSX.Element => {\n return (\n <Flex\n className=\"Select__Container\"\n justify=\"flex-start\"\n align=\"center\"\n textAlign=\"left\"\n color={selectedOption.variant ? `text.${selectedOption.variant}` : 'text.default'}\n >\n {selectedOption?.leftElement ? (\n <Flex align=\"center\" className=\"Select__LeftElement\" pr={2}>\n {selectedOption.leftElement}\n </Flex>\n ) : defaultLeftElement ? (\n <Flex align=\"center\" className=\"Select__LeftElement\" pr={2}>\n {defaultLeftElement}\n </Flex>\n ) : null}\n {typeof selectedOption.label === 'string' ? (\n <Text className=\"Select__Text\" isTruncated={shouldTruncateText} variant={selectedOption.variant || 'default'}>\n {selectedOption.label}\n </Text>\n ) : (\n selectedOption.label\n )}\n </Flex>\n );\n};\n","import React, { useMemo, ReactNode, useRef, useState, useCallback, useEffect } from 'react';\nimport { Select as CSelect, SelectProps as CSelectProps, MenuButton } from '@chakra-ui/react';\nimport { MenuContainer } from '../Menu/components/MenuContainer/menuContainer.component';\nimport { WithFormControlProps, withFormControl } from 'shared/hocs/FormControl/withFormControl';\nimport { MenuProvider } from '../Menu/context/menu.context';\nimport { SelectList, SelectListProps } from './components/SelectList/selectList.component';\nimport { SelectContainer } from './components/SelectContainer/selectContainer.component';\nimport { Icon } from '../Icon/icon.component';\nimport { IconSize } from '../Icon/icon.types';\nimport { FormControlSize } from 'shared/types/formControl';\nimport { SelectOptionProps } from './components/SelectOption/selectOption.types';\n\nexport interface KSelectProps extends WithFormControlProps {\n defaultLeftElement?: ReactNode;\n listProps?: SelectListProps;\n options: SelectOptionProps[];\n size?: FormControlSize;\n isOnContrast?: boolean;\n placeholder?: string;\n}\n\nexport type SelectProps = KSelectProps & Omit<CSelectProps, 'onSelect'>;\n\nconst Select = ({\n defaultLeftElement,\n isFieldInline,\n listProps,\n options,\n placeholder,\n size = 'md',\n value,\n maxW = '100%',\n isOnContrast,\n ...rest\n}: SelectProps): JSX.Element => {\n // TODO: Need to add full support for isOnContrast, currently menu list still renders white\n const _computedVariant = isOnContrast ? 'onContrast' : 'default';\n const selectRef = useRef<HTMLSelectElement>(null);\n const placeholderOption: SelectOptionProps = useMemo(\n () => ({\n label: placeholder,\n value: '',\n variant: isOnContrast ? 'placeholderOnContrast' : 'placeholder',\n leftElement: null,\n isSelected: false,\n isPlaceholder: true,\n }),\n [placeholder, isOnContrast],\n );\n\n const [allOptions, setAllOptions] = useState<SelectOptionProps[]>([]);\n\n const selectedOption: SelectOptionProps = useMemo(() => {\n const selectedItem = allOptions.find((option) => option.isSelected);\n\n return selectedItem ? selectedItem : placeholderOption;\n }, [allOptions, placeholderOption]);\n\n const handleSelect = useCallback(\n (selectedItem: SelectOptionProps) => {\n if (!allOptions) return;\n\n const updatedOptions = allOptions.map((option) => {\n return {\n ...option,\n isSelected: option.value === selectedItem.value,\n };\n });\n setAllOptions(updatedOptions);\n\n if (listProps?.onSelect) {\n listProps.onSelect(selectedItem);\n }\n },\n [allOptions, listProps],\n );\n\n // If the text is not being truncated it should grow to fit the content\n const flexibleHeightProps = !listProps?.shouldTruncateText ? { height: 'max-content', minH: 10 } : {};\n\n const selectWidth = useMemo(() => {\n if (!selectRef.current) {\n return '320px';\n }\n\n return `${selectRef?.current?.clientWidth}px`;\n\n // Disables the warning for not including unused dependency in the hook array. This dependency is needed to rerender the menu list with the correct width\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [selectRef?.current]);\n\n // Set default selected state\n useEffect(() => {\n const mappedOptions = options.map((option) => ({\n ...option,\n isSelected: option.value === value,\n }));\n\n setAllOptions([...mappedOptions, placeholderOption]);\n }, [options, placeholderOption, value]);\n\n return (\n <MenuProvider menuItems={allOptions}>\n <MenuContainer matchWidth={true} isLazy={true}>\n <CSelect\n icon={<Icon name=\"chevronDown\" size={size as IconSize} />}\n as={MenuButton}\n ref={selectRef}\n onClick={(event: React.MouseEvent): void => event.stopPropagation()}\n type=\"button\"\n className=\"Select__MenuButton\"\n variant={_computedVariant}\n maxW={maxW}\n {...flexibleHeightProps}\n {...rest}\n >\n <SelectContainer\n selectedOption={selectedOption}\n defaultLeftElement={defaultLeftElement}\n shouldTruncateText={listProps?.shouldTruncateText}\n />\n </CSelect>\n <SelectList {...listProps} onSelect={handleSelect} options={allOptions} maxW={selectWidth || maxW} />\n </MenuContainer>\n </MenuProvider>\n );\n};\n\nSelect.displayName = 'Select';\n\nconst WrappedSelect = withFormControl(Select);\n\nexport { WrappedSelect as Select };\n"],"names":["SelectList","props","options","rest","__rest","React","MenuList","Object","assign","shouldRetainSelection","menuItems","isMatchWidthSet","SelectContainer","selectedOption","defaultLeftElement","shouldTruncateText","createElement","Flex","className","justify","align","textAlign","color","variant","leftElement","pr","label","Text","isTruncated","Select","_a","isFieldInline","listProps","placeholder","size","value","maxW","isOnContrast","_computedVariant","selectRef","useRef","placeholderOption","useMemo","isSelected","isPlaceholder","allOptions","setAllOptions","useState","selectedItem","find","option","handleSelect","useCallback","updatedOptions","map","onSelect","flexibleHeightProps","height","minH","selectWidth","current","clientWidth","useEffect","mappedOptions","MenuProvider","MenuContainer","matchWidth","isLazy","CSelect","icon","Icon","name","as","MenuButton","ref","onClick","event","stopPropagation","type","displayName","WrappedSelect","withFormControl"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e=require("./tslib.es6-d6f17add.js"),t=require("./notificationCounter.component-
|
|
2
|
-
//# sourceMappingURL=tab.component-
|
|
1
|
+
"use strict";var e=require("./tslib.es6-d6f17add.js"),t=require("./notificationCounter.component-24f3f4ab.js"),i=require("./icon.component-3355868e.js"),n=require("react"),a=require("./heading.component-e55f8364.js"),o=require("./chakra-ui-tabs.esm-e6372403.js"),r=require("./chakra-ui-layout.esm-6ee578f7.js");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var u=s(n);const c={xs:"sm",sm:"md",md:"md",lg:"lg"},m={xs:"xs",sm:"xs",md:"sm",lg:"md"};exports.Tab=n=>{var{iconName:s,label:f,showNotificationCounter:l=!1,notificationCount:d=0,notificationCounterVariant:b=t.NotificationCounterVariant.Red,size:C="md"}=n,j=e.__rest(n,["iconName","label","showNotificationCounter","notificationCount","notificationCounterVariant","size"]);return u.default.createElement(o.Tab,Object.assign({},j),!!s&&u.default.createElement(r.Box,{pr:2},u.default.createElement(i.Icon,{name:s,size:C})),u.default.createElement(a.WrappedHeading,{size:m[C]},f),l&&u.default.createElement(t.NotificationCounter,{count:d,variant:b,size:c[C],ml:2}))};
|
|
2
|
+
//# sourceMappingURL=tab.component-43d30a25.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tab.component-
|
|
1
|
+
{"version":3,"file":"tab.component-43d30a25.js","sources":["../src/components/Tabs/components/Tab/tab.records.ts","../src/components/Tabs/components/Tab/tab.component.tsx"],"sourcesContent":["import { HeadingSize } from 'components/Heading';\nimport { NotificationCounterSize } from '../../../NotificationCounter/notificationCounter.types';\nimport { TabSize } from './tab.types';\n\nexport const notificationCounterSize: Record<TabSize, NotificationCounterSize> = {\n xs: 'sm',\n sm: 'md',\n md: 'md',\n lg: 'lg',\n};\n\nexport const tabHeadingSize: Record<TabSize, HeadingSize> = {\n xs: 'xs',\n sm: 'xs',\n md: 'sm',\n lg: 'md',\n};\n","import { Tab as CTab, TabProps as CTabProps, Box } from '@chakra-ui/react';\nimport { NotificationCounter } from '../../../NotificationCounter/notificationCounter.component';\nimport { Icon } from '../../../Icon/icon.component';\nimport React from 'react';\nimport { NotificationCounterVariant } from '../../../NotificationCounter/notificationCounter.types';\nimport { TabSize } from './tab.types';\nimport { notificationCounterSize, tabHeadingSize } from './tab.records';\nimport { IconName } from '../../../../icons';\nimport { Heading } from 'components/Heading';\n\nexport interface TabProps extends CTabProps {\n iconName?: IconName;\n label: string;\n showNotificationCounter?: boolean;\n notificationCount?: number;\n notificationCounterVariant?: NotificationCounterVariant;\n size?: TabSize;\n}\n\nexport const Tab = ({\n iconName,\n label,\n showNotificationCounter = false,\n notificationCount = 0,\n notificationCounterVariant = NotificationCounterVariant.Red,\n size = 'md',\n ...rest\n}: TabProps): JSX.Element => {\n return (\n <CTab {...rest}>\n {!!iconName && (\n <Box pr={2}>\n <Icon name={iconName} size={size} />\n </Box>\n )}\n <Heading size={tabHeadingSize[size]}>{label}</Heading>\n {showNotificationCounter && (\n <NotificationCounter\n count={notificationCount}\n variant={notificationCounterVariant}\n size={notificationCounterSize[size]}\n ml={2}\n />\n )}\n </CTab>\n );\n};\n"],"names":["notificationCounterSize","xs","sm","md","lg","tabHeadingSize","_a","iconName","label","showNotificationCounter","notificationCount","notificationCounterVariant","NotificationCounterVariant","Red","size","rest","__rest","React","createElement","CTab","Tab","Object","assign","Box","pr","Icon","name","Heading","NotificationCounter","count","variant","ml"],"mappings":"0YAIO,MAAMA,EAAoE,CAC/EC,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,MAGOC,EAA+C,CAC1DJ,GAAI,KACJC,GAAI,KACJC,GAAI,KACJC,GAAI,kBCIcE,QAAAC,SAClBA,EAAQC,MACRA,EAAKC,wBACLA,GAA0B,EAAKC,kBAC/BA,EAAoB,EAACC,2BACrBA,EAA6BC,6BAA2BC,IAAGC,KAC3DA,EAAO,MAAIR,EACRS,EAPeC,SAAAV,EAAA,CAAA,WAAA,QAAA,0BAAA,oBAAA,6BAAA,SASlB,OACEW,EAAAA,QAAAC,cAACC,EAAIC,IAAAC,OAAAC,OAAA,GAAKP,KACLR,GACDU,wBAACM,EAAAA,IAAG,CAACC,GAAI,GACPP,UAACC,cAAAO,EAAAA,KAAK,CAAAC,KAAMnB,EAAUO,KAAMA,KAGhCG,UAACC,cAAAS,EAAAA,eAAQ,CAAAb,KAAMT,EAAeS,IAAQN,GACrCC,GACCQ,EAAA,QAAAC,cAACU,EAAmBA,oBAAA,CAClBC,MAAOnB,EACPoB,QAASnB,EACTG,KAAMd,EAAwBc,GAC9BiB,GAAI"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e=require("./tslib.es6-d6f17add.js"),t=require("react"),a=require("./tab.component-
|
|
2
|
-
//# sourceMappingURL=tabs.component-
|
|
1
|
+
"use strict";var e=require("./tslib.es6-d6f17add.js"),t=require("react"),a=require("./tab.component-43d30a25.js"),s=require("./chakra-ui-tabs.esm-e6372403.js");function r(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var l=r(t);exports.Tabs=t=>{var{size:r="md",tabList:n,tabPanels:i,tabPanelsStyle:b}=t,u=e.__rest(t,["size","tabList","tabPanels","tabPanelsStyle"]);return l.default.createElement(s.Tabs,Object.assign({},u,{size:r}),l.default.createElement(s.TabList,null,n.map(((e,t)=>l.default.createElement(a.Tab,Object.assign({key:t,size:r},e))))),!!i&&l.default.createElement(s.TabPanels,Object.assign({},b),i.map((e=>e))))};
|
|
2
|
+
//# sourceMappingURL=tabs.component-62ac057c.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabs.component-
|
|
1
|
+
{"version":3,"file":"tabs.component-62ac057c.js","sources":["../src/components/Tabs/tabs.component.tsx"],"sourcesContent":["import { TabList, TabPanels, TabPanelProps, Tabs as CTabs, StyleProps } from '@chakra-ui/react';\nimport React from 'react';\nimport { Alignment } from 'shared/types/alignment';\nimport { Tab, TabProps } from './components/Tab/tab.component';\nimport { TabSize } from './components/Tab/tab.types';\n\nexport interface TabsProps extends StyleProps {\n size?: TabSize;\n tabList: TabProps[];\n tabPanels?: JSX.Element[];\n tabPanelsStyle?: TabPanelProps;\n isFitted?: boolean;\n align?: Alignment;\n defaultIndex?: number;\n isLazy?: boolean;\n isManual?: boolean;\n index?: number;\n onChange?: (index: number) => void;\n}\n\nexport const Tabs = ({ size = 'md', tabList, tabPanels, tabPanelsStyle, ...rest }: TabsProps): JSX.Element => {\n return (\n <CTabs {...rest} size={size}>\n <TabList>\n {tabList.map((tab, index) => (\n <Tab key={index} size={size} {...tab} />\n ))}\n </TabList>\n {!!tabPanels && <TabPanels {...tabPanelsStyle}>{tabPanels.map((panel) => panel)}</TabPanels>}\n </CTabs>\n );\n};\n"],"names":["_a","size","tabList","tabPanels","tabPanelsStyle","rest","__rest","React","CTabs","Tabs","Object","assign","createElement","TabList","map","tab","index","Tab","key","TabPanels","panel"],"mappings":"gQAoBqBA,IAAA,IAAAC,KAAEA,EAAO,KAAIC,QAAEA,EAAOC,UAAEA,EAASC,eAAEA,GAAoCJ,EAAjBK,EAAIC,EAAAA,OAAAN,EAA1D,iDACnB,OACEO,wBAACC,EAAKC,KAAAC,OAAAC,OAAA,GAAKN,EAAM,CAAAJ,KAAMA,IACrBM,UAAAK,cAACC,EAAOA,QAAA,KACLX,EAAQY,KAAI,CAACC,EAAKC,IACjBT,EAAAA,QAACK,cAAAK,EAAGA,IAACP,OAAAC,OAAA,CAAAO,IAAKF,EAAOf,KAAMA,GAAUc,SAGlCZ,GAAaI,EAAA,QAAAK,cAACO,EAASA,UAAKT,OAAAC,OAAA,GAAAP,GAAiBD,EAAUW,KAAKM,GAAUA"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e=require("react"),t=require("./tabs.component-
|
|
2
|
-
//# sourceMappingURL=tabsLayout.component-
|
|
1
|
+
"use strict";var e=require("react"),t=require("./tabs.component-62ac057c.js");function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var r=a(e);exports.TabsLayout=e=>r.default.createElement(t.Tabs,Object.assign({},e));
|
|
2
|
+
//# sourceMappingURL=tabsLayout.component-5df74a9c.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabsLayout.component-
|
|
1
|
+
{"version":3,"file":"tabsLayout.component-5df74a9c.js","sources":["../src/components/TabsLayout/tabsLayout.component.tsx"],"sourcesContent":["import React from 'react';\nimport { Tabs, TabsProps } from '../Tabs/tabs.component';\n\nexport interface TabsLayoutProps extends TabsProps {\n tabPanels: JSX.Element[];\n}\n\nexport const TabsLayout = (props: TabsLayoutProps): JSX.Element => {\n return <Tabs {...props} />;\n};\n"],"names":["props","React","createElement","Tabs","Object","assign"],"mappings":"oLAO2BA,GAClBC,EAAC,QAAAC,cAAAC,OAASC,OAAAC,OAAA,GAAAL"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";var e=require("./tslib.es6-d6f17add.js"),t=require("react"),a=require("./withFormControl-6d7abf11.js"),n=require("./text.component-057889c3.js"),r=require("./button.component-c2b75fd2.js"),l=require("./chakra-ui-input.esm-5fd07056.js"),i=require("./chakra-ui-layout.esm-6ee578f7.js");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var u=s(t);const o={sm:"xs",md:"sm",lg:"md"},c=a.withFormControl((a=>{var{isClearable:s=!1,size:c="md",leftElement:m,rightElement:d,inputRef:p,isFieldInline:f,onClear:E,value:h,isOnContrast:x,charLimit:b}=a,g=e.__rest(a,["isClearable","size","leftElement","rightElement","inputRef","isFieldInline","onClear","value","isOnContrast","charLimit"]);let v=x?"onContrast":"default";const I=()=>{E&&E(h||"")};s&&(d=u.default.createElement(r.Button,{size:o[c],variant:"ghostNeutral",onClick:I,iconName:"close"}));const C=t.useMemo((()=>{var e;return(null===(e=null==h?void 0:h.toString())||void 0===e?void 0:e.length)||0}),[h]);return u.default.createElement(i.Box,{className:"TextInput__Container",pos:"relative",w:"100%"},u.default.createElement(l.InputGroup,null,m&&u.default.createElement(l.InputLeftElement,{className:"TextInput__LeftElement",children:m,h:"100%"}),u.default.createElement(l.Input,Object.assign({className:"TextInput__Input",variant:v},g,{ref:p,size:c,value:h})),d&&u.default.createElement(l.InputRightElement,{className:"TextInput__RightElement",children:d})),!!b&&u.default.createElement(i.HStack,{className:"TextInput__CharCount",spacing:1,bg:"background.default",pos:"absolute",right:"0",bottom:"-20px"},u.default.createElement(n.WrappedText,{size:"xs",variant:C>b?"danger":"subtle"},C),u.default.createElement(n.WrappedText,{size:"xs",variant:"subtle"},"/ ",b)))})),m=t.forwardRef(((e,t)=>u.default.createElement(c,Object.assign({inputRef:t},e))));m.displayName="TextInput",exports.WrappedTextInput=m;
|
|
2
|
+
//# sourceMappingURL=textInput.component-8ff848fa.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"textInput.component-8ff848fa.js","sources":["../src/components/TextInput/textInput.types.ts","../src/components/TextInput/textInput.component.tsx"],"sourcesContent":["import { ButtonSize } from 'components/Button';\nimport { FormControlSize } from 'shared/types/formControl';\n\nexport const closeButtonSizeMap: Record<FormControlSize, ButtonSize> = {\n sm: 'xs',\n md: 'sm',\n lg: 'md',\n};\n","import React, { forwardRef, ForwardedRef, ReactElement, useMemo } from 'react';\nimport {\n Input as CInput,\n InputProps as CInputProps,\n InputGroup,\n InputLeftElement,\n InputRightElement,\n Box,\n HStack,\n} from '@chakra-ui/react';\nimport { withFormControl, WithFormControlProps } from 'shared/hocs/FormControl/withFormControl';\nimport { FormControlSize } from 'shared/types/formControl';\nimport { Text } from 'components/Text';\nimport { Button } from 'components/Button';\nimport { closeButtonSizeMap } from './textInput.types';\n\nexport interface TextInputBaseProps extends WithFormControlProps {\n charLimit?: number;\n inputRef?: ForwardedRef<HTMLInputElement>;\n isOnContrast?: boolean;\n leftElement?: ReactElement;\n rightElement?: ReactElement;\n size?: FormControlSize;\n}\n\nexport interface DefaultTextInputProps extends TextInputBaseProps {\n isClearable?: never;\n onClear?: never;\n}\n\nexport interface ClearableTextInputProps extends TextInputBaseProps {\n isClearable: boolean;\n onClear: (val: string | number | readonly string[]) => void;\n}\n\nexport type KTextInputProps = DefaultTextInputProps | ClearableTextInputProps;\n\nexport type TextInputProps = KTextInputProps & CInputProps;\n\nconst TextInput = withFormControl(\n ({\n isClearable = false,\n size = 'md',\n leftElement,\n rightElement,\n inputRef,\n isFieldInline,\n onClear,\n value,\n isOnContrast,\n charLimit = undefined,\n ...rest\n }: TextInputProps): JSX.Element => {\n let _computedVariant = isOnContrast ? 'onContrast' : 'default';\n\n const handleClear = (): void => {\n if (onClear) {\n onClear(value || '');\n }\n };\n\n if (isClearable) {\n rightElement = (\n <Button size={closeButtonSizeMap[size]} variant=\"ghostNeutral\" onClick={handleClear} iconName=\"close\" />\n );\n }\n\n const currentCharCount = useMemo(() => value?.toString()?.length || 0, [value]);\n\n return (\n <Box className=\"TextInput__Container\" pos=\"relative\" w=\"100%\">\n <InputGroup>\n {leftElement && <InputLeftElement className=\"TextInput__LeftElement\" children={leftElement} h=\"100%\" />}\n <CInput\n className=\"TextInput__Input\"\n variant={_computedVariant}\n {...rest}\n ref={inputRef}\n size={size}\n value={value}\n />\n {rightElement && <InputRightElement className=\"TextInput__RightElement\" children={rightElement} />}\n </InputGroup>\n {!!charLimit && (\n <HStack\n className=\"TextInput__CharCount\"\n spacing={1}\n bg=\"background.default\"\n pos=\"absolute\"\n right=\"0\"\n bottom=\"-20px\"\n >\n <Text size=\"xs\" variant={currentCharCount > charLimit ? 'danger' : 'subtle'}>\n {currentCharCount}\n </Text>\n <Text size=\"xs\" variant=\"subtle\">\n / {charLimit}\n </Text>\n </HStack>\n )}\n </Box>\n );\n },\n);\n\nconst WrappedTextInput = forwardRef((props: TextInputProps, ref: ForwardedRef<HTMLInputElement>) => (\n <TextInput inputRef={ref} {...props} />\n));\n\nWrappedTextInput.displayName = 'TextInput';\n\nexport { WrappedTextInput as TextInput };\n"],"names":["closeButtonSizeMap","sm","md","lg","TextInput","withFormControl","_a","isClearable","size","leftElement","rightElement","inputRef","isFieldInline","onClear","value","isOnContrast","charLimit","rest","__rest","_computedVariant","handleClear","React","createElement","Button","variant","onClick","iconName","currentCharCount","useMemo","toString","length","Box","className","pos","w","InputGroup","InputLeftElement","children","h","CInput","ref","InputRightElement","HStack","spacing","bg","right","bottom","Text","WrappedTextInput","forwardRef","props","Object","assign","displayName"],"mappings":"4XAGO,MAAMA,EAA0D,CACrEC,GAAI,KACJC,GAAI,KACJC,GAAI,MCiCAC,EAAYC,EAAAA,iBACfC,IAAA,IAAAC,YACCA,GAAc,EAAKC,KACnBA,EAAO,KAAIC,YACXA,EAAWC,aACXA,EAAYC,SACZA,EAAQC,cACRA,EAAaC,QACbA,EAAOC,MACPA,EAAKC,aACLA,EAAYC,UACZA,GAEeV,EADZW,EAAIC,EAAAA,OAAAZ,EAXR,6HAaC,IAAIa,EAAmBJ,EAAe,aAAe,UAErD,MAAMK,EAAc,KACdP,GACFA,EAAQC,GAAS,KAIjBP,IACFG,EACEW,EAAA,QAAAC,cAACC,EAAMA,OAAA,CAACf,KAAMR,EAAmBQ,GAAOgB,QAAQ,eAAeC,QAASL,EAAaM,SAAS,WAIlG,MAAMC,EAAmBC,EAAOA,SAAC,KAAM,IAAAtB,EAAA,OAAmB,QAAnBA,EAAAQ,MAAAA,OAAK,EAALA,EAAOe,kBAAY,IAAAvB,OAAA,EAAAA,EAAAwB,SAAU,IAAG,CAAChB,IAExE,OACEO,EAAA,QAAAC,cAACS,EAAAA,IAAG,CAACC,UAAU,uBAAuBC,IAAI,WAAWC,EAAE,QACrDb,UAAAC,cAACa,EAAAA,WAAU,KACR1B,GAAeY,EAAA,QAAAC,cAACc,EAAAA,iBAAgB,CAACJ,UAAU,yBAAyBK,SAAU5B,EAAa6B,EAAE,SAC9FjB,UAACC,cAAAiB,EAAAA,qBACCP,UAAU,mBACVR,QAASL,GACLF,GACJuB,IAAK7B,EACLH,KAAMA,EACNM,MAAOA,KAERJ,GAAgBW,EAAAA,QAAAC,cAACmB,oBAAiB,CAACT,UAAU,0BAA0BK,SAAU3B,OAEjFM,GACDK,UAACC,cAAAoB,EAAAA,OACC,CAAAV,UAAU,uBACVW,QAAS,EACTC,GAAG,qBACHX,IAAI,WACJY,MAAM,IACNC,OAAO,SAEPzB,EAAAA,QAACC,cAAAyB,eAAKvC,KAAK,KAAKgB,QAASG,EAAmBX,EAAY,SAAW,UAChEW,GAEHN,EAAC,QAAAC,cAAAyB,eAAKvC,KAAK,KAAKgB,QAAQ,eACnBR,QASXgC,EAAmBC,EAAUA,YAAC,CAACC,EAAuBV,IAC1DnB,EAAAA,QAACC,cAAAlB,EAAU+C,OAAAC,OAAA,CAAAzC,SAAU6B,GAASU,MAGhCF,EAAiBK,YAAc"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e=require("react"),t=require("./icon.component-3355868e.js"),r=require("./popover.component-c3c4f47c.js"),n=require("./index-fee8538e.js"),o=require("./textInput.component-
|
|
2
|
-
//# sourceMappingURL=timePicker.component-
|
|
1
|
+
"use strict";var e=require("react"),t=require("./icon.component-3355868e.js"),r=require("./popover.component-c3c4f47c.js"),n=require("./index-fee8538e.js"),o=require("./textInput.component-8ff848fa.js"),i=require("./chakra-ui-layout.esm-6ee578f7.js"),l=require("./useIconTextSizeMap-301c4f35.js"),u=require("./chakra-ui-hooks.esm-21b313f3.js");function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var s=a(e);const c=({value:t,innerRef:r,isSelected:n,handleClick:o})=>{const l=e.useCallback((e=>{const t=e.currentTarget.textContent||"";o(t)}),[o]);return s.default.createElement(i.Box,{ref:r,onClick:l,background:n?"background.primary":"background.default",color:n?"text.onContrast":"text.subtle",fontSize:"sm",textAlign:"center",px:3,py:1,borderRadius:"md",cursor:"pointer",_hover:{background:n?"background.primary.hover":"background.primaryAlpha.hover"}},t)},p=({options:t,optionType:r,selectedValue:n,handleClick:o,isOpen:l=!1})=>{const u=e.useRef(null),a=e.useRef(null);return e.useEffect((()=>{var e,t;l&&a.current&&u.current&&(a.current.scrollTop=(null===(e=u.current)||void 0===e?void 0:e.offsetTop)-(null===(t=a.current)||void 0===t?void 0:t.offsetTop))}),[l]),s.default.createElement(i.Flex,{direction:"column",gap:1,ref:a,overflowY:"auto",sx:{"&::-webkit-scrollbar":{display:"none"}}},t.map((e=>s.default.createElement(c,{key:`${r}-option-${e}`,innerRef:e===n?u:null,value:e,isSelected:e===n,handleClick:o}))))};var d;exports.Meridiem=void 0,(d=exports.Meridiem||(exports.Meridiem={})).AM="AM",d.PM="PM";exports.TimePicker=({initialTime:a,minuteInterval:c=5,inputProps:d,placement:m,onTimeChange:f})=>{const{isOpen:M,onOpen:h,onClose:x}=u.useDisclosure(),[v,k]=e.useState(a),b=e.useMemo((()=>{if(!a)return;const e=new Date(a),t=e.getHours();let r=t;return t>12&&(r=t-12),0===t&&(r=12),{hours:r.toString(),minutes:e.getMinutes().toString(),meridiem:e.getHours()>11?exports.Meridiem.PM:exports.Meridiem.AM}}),[a]),[g,C]=e.useState(null==b?void 0:b.hours),[T,y]=e.useState(null==b?void 0:b.minutes),[E,S]=e.useState(null==b?void 0:b.meridiem),A=e.useMemo((()=>v?n.format(v,"h:mm aa"):""),[v]),O=e=>{const t=e.toString();return 1===t.length?`0${t}`:t},j=e.useMemo((()=>[12,1,2,3,4,5,6,7,8,9,10,11].map((e=>e.toString()))),[]),P=e.useMemo((()=>{const e=[];for(let t=0;t<60;t+=c)e.push(t);return e.map(O)}),[c]),q=[exports.Meridiem.AM,exports.Meridiem.PM],w=e.useCallback(((e,t,r)=>{const n=e||"12",o=t||"00",i=r||"AM";let l=0;e||C("12"),t||y("00"),r||S("AM"),i===exports.Meridiem.PM&&Number(n)<12&&(l=12),i===exports.Meridiem.AM&&12===Number(n)&&(l=-12);const u=Number(n)+l,a=(new Date).setHours(u,Number(o),0,0),s=new Date(a);k(s),f&&f(s)}),[f]),z=e.useCallback((e=>{C(e),w(e,T,E)}),[w,E,T]),I=e.useCallback((e=>{y(e),w(g,e,E)}),[w,g,E]),R=e.useCallback((e=>{S(e),w(g,T,e)}),[w,g,T]);return s.default.createElement(r.Popover,{isOpen:M,onOpen:h,onClose:x,placement:m,contentProps:{width:"max-content"},variant:"default",size:"sm",anchor:s.default.createElement(i.Box,null,s.default.createElement(o.WrappedTextInput,Object.assign({placeholder:"12:00 AM",rightElement:s.default.createElement(t.Icon,{size:l.useIconTextSizeMap((null==d?void 0:d.size)||"md"),name:"clock"}),value:A,isReadOnly:!0,cursor:"pointer"},d)))},s.default.createElement(i.Flex,{height:"186px",gap:1.5,overflow:"hidden"},s.default.createElement(p,{options:j,optionType:"hour",selectedValue:g,handleClick:z,isOpen:M}),s.default.createElement(p,{options:P,optionType:"minute",selectedValue:T?O(T):void 0,handleClick:I,isOpen:M}),s.default.createElement(p,{options:q,optionType:"meridiem",selectedValue:E,handleClick:R,isOpen:M})))};
|
|
2
|
+
//# sourceMappingURL=timePicker.component-c3cb72ec.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timePicker.component-bb27b9f0.js","sources":["../src/components/TimePicker/components/timeOption.component.tsx","../src/components/TimePicker/components/scrollContainer.component.tsx","../src/components/TimePicker/timePicker.types.ts","../src/components/TimePicker/timePicker.component.tsx"],"sourcesContent":["import React, { MutableRefObject, useCallback } from 'react';\nimport { Box } from '@chakra-ui/react';\n\ninterface TimeOptionProps {\n value: string;\n innerRef?: MutableRefObject<HTMLDivElement | null> | null;\n isSelected: boolean;\n handleClick: (selectedValue: string) => void;\n}\n\nexport const TimeOption = ({ value, innerRef, isSelected, handleClick }: TimeOptionProps): JSX.Element => {\n const onClick = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n const selectedValue = event.currentTarget.textContent || '';\n handleClick(selectedValue);\n },\n [handleClick],\n );\n\n return (\n <Box\n ref={innerRef}\n onClick={onClick}\n background={isSelected ? 'background.primary' : 'background.default'}\n color={isSelected ? 'text.onContrast' : 'text.subtle'}\n fontSize=\"sm\"\n textAlign=\"center\"\n px={3}\n py={1}\n borderRadius=\"md\"\n cursor=\"pointer\"\n _hover={{\n background: isSelected ? 'background.primary.hover' : 'background.primaryAlpha.hover',\n }}\n >\n {value}\n </Box>\n );\n};\n","import React, { useEffect, useRef } from 'react';\nimport { Flex } from '@chakra-ui/react';\nimport { TimeOption } from './timeOption.component';\n\ninterface ScrollContainerProps {\n options: string[];\n optionType: 'hour' | 'minute' | 'meridiem';\n selectedValue?: string;\n handleClick: (value: string) => void;\n isOpen: boolean;\n}\n\nexport const ScrollContainer = ({\n options,\n optionType,\n selectedValue,\n handleClick,\n isOpen = false,\n}: ScrollContainerProps): JSX.Element => {\n const itemRef = useRef<HTMLDivElement>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (isOpen && containerRef.current && itemRef.current) {\n containerRef.current.scrollTop = itemRef.current?.offsetTop - containerRef.current?.offsetTop;\n }\n }, [isOpen]);\n\n return (\n <Flex\n direction=\"column\"\n gap={1}\n ref={containerRef}\n overflowY=\"auto\"\n sx={{\n '&::-webkit-scrollbar': {\n display: 'none',\n },\n }}\n >\n {options.map((option) => {\n return (\n <TimeOption\n key={`${optionType}-option-${option}`}\n innerRef={option === selectedValue ? itemRef : null}\n value={option}\n isSelected={option === selectedValue}\n handleClick={handleClick}\n />\n );\n })}\n </Flex>\n );\n};\n","export enum Meridiem {\n AM = 'AM',\n PM = 'PM',\n}\n","import React, { useCallback, useMemo, useState } from 'react';\nimport { PlacementWithLogical, Box, Flex, useDisclosure } from '@chakra-ui/react';\nimport { Icon } from '../Icon/icon.component';\nimport { Popover } from '../Popover/popover.component';\nimport format from 'date-fns/format';\nimport { TextInput, TextInputProps } from '../TextInput/textInput.component';\nimport { ScrollContainer } from './components/scrollContainer.component';\nimport { Meridiem } from './timePicker.types';\nimport { useIconTextSizeMap } from 'shared/hooks/useIconTextSizeMap';\n\nexport interface TimePickerProps {\n initialTime?: Date;\n minuteInterval?: number;\n inputProps?: Omit<TextInputProps, 'onChange' | 'value' | 'isClearable' | 'onClear'>;\n placement?: PlacementWithLogical;\n onTimeChange?: (time: Date) => void;\n}\n\nexport const TimePicker = ({\n initialTime,\n minuteInterval = 5,\n inputProps,\n placement,\n onTimeChange,\n}: TimePickerProps): JSX.Element => {\n const { isOpen, onOpen, onClose } = useDisclosure();\n\n // selectedTime should always be UTC\n const [selectedTime, setSelectedTime] = useState(initialTime);\n\n const initialFormattedTime = useMemo(() => {\n if (!initialTime) return;\n\n const localTime = new Date(initialTime);\n\n // calculate hours\n const hours = localTime.getHours();\n let adjustedHours = hours;\n\n if (hours > 12) {\n adjustedHours = hours - 12;\n }\n if (hours === 0) {\n adjustedHours = 12;\n }\n\n return {\n hours: adjustedHours.toString(),\n minutes: localTime.getMinutes().toString(),\n meridiem: localTime.getHours() > 11 ? Meridiem.PM : Meridiem.AM,\n };\n }, [initialTime]);\n\n // convert to local time for display\n const [selectedHour, setSelectedHour] = useState(initialFormattedTime?.hours);\n const [selectedMinute, setSelectedMinute] = useState(initialFormattedTime?.minutes);\n const [selectedMeridiem, setSelectedMeridiem] = useState<string | undefined>(initialFormattedTime?.meridiem);\n\n const formattedTime = useMemo(() => {\n if (!selectedTime) return '';\n return format(selectedTime, 'h:mm aa');\n }, [selectedTime]);\n\n const formatNumber = (number: number | string): string => {\n const formattedValue = number.toString();\n if (formattedValue.length === 1) {\n return `0${formattedValue}`;\n }\n\n return formattedValue;\n };\n\n const hourOptions = useMemo(() => {\n return [12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11].map((hour) => hour.toString());\n }, []);\n\n const minuteOptions = useMemo(() => {\n const minutes = [];\n for (let i = 0; i < 60; i += minuteInterval) {\n minutes.push(i);\n }\n\n return minutes.map(formatNumber);\n }, [minuteInterval]);\n\n const meridiemOptions = [Meridiem.AM, Meridiem.PM];\n\n const handleTimeChange = useCallback(\n (hour?: string, minute?: string, meridiem?: string) => {\n const _hour = hour || '12';\n const _minute = minute || '00';\n const _meridiem = meridiem || 'AM';\n let meridiemAdjustment = 0;\n\n if (!hour) {\n setSelectedHour('12');\n }\n if (!minute) {\n setSelectedMinute('00');\n }\n if (!meridiem) {\n setSelectedMeridiem('AM');\n }\n\n // set 1-11pm to 13-23. Don't set 12pm to 24\n if (_meridiem === Meridiem.PM && Number(_hour) < 12) {\n meridiemAdjustment = 12;\n }\n\n // set 12am to 00\n if (_meridiem === Meridiem.AM && Number(_hour) === 12) {\n meridiemAdjustment = -12;\n }\n\n const hours = Number(_hour) + meridiemAdjustment;\n const time = new Date().setHours(hours, Number(_minute), 0, 0);\n const date = new Date(time);\n setSelectedTime(date);\n\n if (onTimeChange) {\n onTimeChange(date);\n }\n },\n [onTimeChange],\n );\n\n const handleHourClick = useCallback(\n (value: string) => {\n setSelectedHour(value);\n handleTimeChange(value, selectedMinute, selectedMeridiem);\n },\n [handleTimeChange, selectedMeridiem, selectedMinute],\n );\n\n const handleMinuteClick = useCallback(\n (value: string) => {\n setSelectedMinute(value);\n handleTimeChange(selectedHour, value, selectedMeridiem);\n },\n [handleTimeChange, selectedHour, selectedMeridiem],\n );\n\n const handleMeridiemClick = useCallback(\n (value: string) => {\n setSelectedMeridiem(value);\n handleTimeChange(selectedHour, selectedMinute, value);\n },\n [handleTimeChange, selectedHour, selectedMinute],\n );\n\n return (\n <Popover\n isOpen={isOpen}\n onOpen={onOpen}\n onClose={onClose}\n placement={placement}\n contentProps={{ width: 'max-content' }}\n variant=\"default\"\n size=\"sm\"\n anchor={\n <Box>\n <TextInput\n placeholder=\"12:00 AM\"\n rightElement={<Icon size={useIconTextSizeMap(inputProps?.size || 'md')} name=\"clock\" />}\n value={formattedTime}\n isReadOnly\n cursor={'pointer'}\n {...inputProps}\n />\n </Box>\n }\n >\n <Flex height=\"186px\" gap={1.5} overflow=\"hidden\">\n <ScrollContainer\n options={hourOptions}\n optionType=\"hour\"\n selectedValue={selectedHour}\n handleClick={handleHourClick}\n isOpen={isOpen}\n />\n <ScrollContainer\n options={minuteOptions}\n optionType=\"minute\"\n selectedValue={selectedMinute ? formatNumber(selectedMinute) : undefined}\n handleClick={handleMinuteClick}\n isOpen={isOpen}\n />\n <ScrollContainer\n options={meridiemOptions}\n optionType=\"meridiem\"\n selectedValue={selectedMeridiem}\n handleClick={handleMeridiemClick}\n isOpen={isOpen}\n />\n </Flex>\n </Popover>\n );\n};\n"],"names":["TimeOption","value","innerRef","isSelected","handleClick","onClick","useCallback","event","selectedValue","currentTarget","textContent","React","createElement","Box","ref","background","color","fontSize","textAlign","px","py","borderRadius","cursor","_hover","ScrollContainer","options","optionType","isOpen","itemRef","useRef","containerRef","useEffect","current","scrollTop","_a","offsetTop","_b","Flex","direction","gap","overflowY","sx","display","map","option","key","Meridiem","initialTime","minuteInterval","inputProps","placement","onTimeChange","onOpen","onClose","useDisclosure","selectedTime","setSelectedTime","useState","initialFormattedTime","useMemo","localTime","Date","hours","getHours","adjustedHours","toString","minutes","getMinutes","meridiem","PM","AM","selectedHour","setSelectedHour","selectedMinute","setSelectedMinute","selectedMeridiem","setSelectedMeridiem","formattedTime","format","formatNumber","number","formattedValue","length","hourOptions","hour","minuteOptions","i","push","meridiemOptions","handleTimeChange","minute","_hour","_minute","_meridiem","meridiemAdjustment","Number","time","setHours","date","handleHourClick","handleMinuteClick","handleMeridiemClick","Popover","contentProps","width","variant","size","anchor","TextInput","placeholder","rightElement","Icon","useIconTextSizeMap","name","isReadOnly","height","overflow","undefined"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"timePicker.component-c3cb72ec.js","sources":["../src/components/TimePicker/components/timeOption.component.tsx","../src/components/TimePicker/components/scrollContainer.component.tsx","../src/components/TimePicker/timePicker.types.ts","../src/components/TimePicker/timePicker.component.tsx"],"sourcesContent":["import React, { MutableRefObject, useCallback } from 'react';\nimport { Box } from '@chakra-ui/react';\n\ninterface TimeOptionProps {\n value: string;\n innerRef?: MutableRefObject<HTMLDivElement | null> | null;\n isSelected: boolean;\n handleClick: (selectedValue: string) => void;\n}\n\nexport const TimeOption = ({ value, innerRef, isSelected, handleClick }: TimeOptionProps): JSX.Element => {\n const onClick = useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n const selectedValue = event.currentTarget.textContent || '';\n handleClick(selectedValue);\n },\n [handleClick],\n );\n\n return (\n <Box\n ref={innerRef}\n onClick={onClick}\n background={isSelected ? 'background.primary' : 'background.default'}\n color={isSelected ? 'text.onContrast' : 'text.subtle'}\n fontSize=\"sm\"\n textAlign=\"center\"\n px={3}\n py={1}\n borderRadius=\"md\"\n cursor=\"pointer\"\n _hover={{\n background: isSelected ? 'background.primary.hover' : 'background.primaryAlpha.hover',\n }}\n >\n {value}\n </Box>\n );\n};\n","import React, { useEffect, useRef } from 'react';\nimport { Flex } from '@chakra-ui/react';\nimport { TimeOption } from './timeOption.component';\n\ninterface ScrollContainerProps {\n options: string[];\n optionType: 'hour' | 'minute' | 'meridiem';\n selectedValue?: string;\n handleClick: (value: string) => void;\n isOpen: boolean;\n}\n\nexport const ScrollContainer = ({\n options,\n optionType,\n selectedValue,\n handleClick,\n isOpen = false,\n}: ScrollContainerProps): JSX.Element => {\n const itemRef = useRef<HTMLDivElement>(null);\n const containerRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n if (isOpen && containerRef.current && itemRef.current) {\n containerRef.current.scrollTop = itemRef.current?.offsetTop - containerRef.current?.offsetTop;\n }\n }, [isOpen]);\n\n return (\n <Flex\n direction=\"column\"\n gap={1}\n ref={containerRef}\n overflowY=\"auto\"\n sx={{\n '&::-webkit-scrollbar': {\n display: 'none',\n },\n }}\n >\n {options.map((option) => {\n return (\n <TimeOption\n key={`${optionType}-option-${option}`}\n innerRef={option === selectedValue ? itemRef : null}\n value={option}\n isSelected={option === selectedValue}\n handleClick={handleClick}\n />\n );\n })}\n </Flex>\n );\n};\n","export enum Meridiem {\n AM = 'AM',\n PM = 'PM',\n}\n","import React, { useCallback, useMemo, useState } from 'react';\nimport { PlacementWithLogical, Box, Flex, useDisclosure } from '@chakra-ui/react';\nimport { Icon } from '../Icon/icon.component';\nimport { Popover } from '../Popover/popover.component';\nimport format from 'date-fns/format';\nimport { TextInput, TextInputProps } from '../TextInput/textInput.component';\nimport { ScrollContainer } from './components/scrollContainer.component';\nimport { Meridiem } from './timePicker.types';\nimport { useIconTextSizeMap } from 'shared/hooks/useIconTextSizeMap';\n\nexport interface TimePickerProps {\n initialTime?: Date;\n minuteInterval?: number;\n inputProps?: Omit<TextInputProps, 'onChange' | 'value' | 'isClearable' | 'onClear'>;\n placement?: PlacementWithLogical;\n onTimeChange?: (time: Date) => void;\n}\n\nexport const TimePicker = ({\n initialTime,\n minuteInterval = 5,\n inputProps,\n placement,\n onTimeChange,\n}: TimePickerProps): JSX.Element => {\n const { isOpen, onOpen, onClose } = useDisclosure();\n\n // selectedTime should always be UTC\n const [selectedTime, setSelectedTime] = useState(initialTime);\n\n const initialFormattedTime = useMemo(() => {\n if (!initialTime) return;\n\n const localTime = new Date(initialTime);\n\n // calculate hours\n const hours = localTime.getHours();\n let adjustedHours = hours;\n\n if (hours > 12) {\n adjustedHours = hours - 12;\n }\n if (hours === 0) {\n adjustedHours = 12;\n }\n\n return {\n hours: adjustedHours.toString(),\n minutes: localTime.getMinutes().toString(),\n meridiem: localTime.getHours() > 11 ? Meridiem.PM : Meridiem.AM,\n };\n }, [initialTime]);\n\n // convert to local time for display\n const [selectedHour, setSelectedHour] = useState(initialFormattedTime?.hours);\n const [selectedMinute, setSelectedMinute] = useState(initialFormattedTime?.minutes);\n const [selectedMeridiem, setSelectedMeridiem] = useState<string | undefined>(initialFormattedTime?.meridiem);\n\n const formattedTime = useMemo(() => {\n if (!selectedTime) return '';\n return format(selectedTime, 'h:mm aa');\n }, [selectedTime]);\n\n const formatNumber = (number: number | string): string => {\n const formattedValue = number.toString();\n if (formattedValue.length === 1) {\n return `0${formattedValue}`;\n }\n\n return formattedValue;\n };\n\n const hourOptions = useMemo(() => {\n return [12, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11].map((hour) => hour.toString());\n }, []);\n\n const minuteOptions = useMemo(() => {\n const minutes = [];\n for (let i = 0; i < 60; i += minuteInterval) {\n minutes.push(i);\n }\n\n return minutes.map(formatNumber);\n }, [minuteInterval]);\n\n const meridiemOptions = [Meridiem.AM, Meridiem.PM];\n\n const handleTimeChange = useCallback(\n (hour?: string, minute?: string, meridiem?: string) => {\n const _hour = hour || '12';\n const _minute = minute || '00';\n const _meridiem = meridiem || 'AM';\n let meridiemAdjustment = 0;\n\n if (!hour) {\n setSelectedHour('12');\n }\n if (!minute) {\n setSelectedMinute('00');\n }\n if (!meridiem) {\n setSelectedMeridiem('AM');\n }\n\n // set 1-11pm to 13-23. Don't set 12pm to 24\n if (_meridiem === Meridiem.PM && Number(_hour) < 12) {\n meridiemAdjustment = 12;\n }\n\n // set 12am to 00\n if (_meridiem === Meridiem.AM && Number(_hour) === 12) {\n meridiemAdjustment = -12;\n }\n\n const hours = Number(_hour) + meridiemAdjustment;\n const time = new Date().setHours(hours, Number(_minute), 0, 0);\n const date = new Date(time);\n setSelectedTime(date);\n\n if (onTimeChange) {\n onTimeChange(date);\n }\n },\n [onTimeChange],\n );\n\n const handleHourClick = useCallback(\n (value: string) => {\n setSelectedHour(value);\n handleTimeChange(value, selectedMinute, selectedMeridiem);\n },\n [handleTimeChange, selectedMeridiem, selectedMinute],\n );\n\n const handleMinuteClick = useCallback(\n (value: string) => {\n setSelectedMinute(value);\n handleTimeChange(selectedHour, value, selectedMeridiem);\n },\n [handleTimeChange, selectedHour, selectedMeridiem],\n );\n\n const handleMeridiemClick = useCallback(\n (value: string) => {\n setSelectedMeridiem(value);\n handleTimeChange(selectedHour, selectedMinute, value);\n },\n [handleTimeChange, selectedHour, selectedMinute],\n );\n\n return (\n <Popover\n isOpen={isOpen}\n onOpen={onOpen}\n onClose={onClose}\n placement={placement}\n contentProps={{ width: 'max-content' }}\n variant=\"default\"\n size=\"sm\"\n anchor={\n <Box>\n <TextInput\n placeholder=\"12:00 AM\"\n rightElement={<Icon size={useIconTextSizeMap(inputProps?.size || 'md')} name=\"clock\" />}\n value={formattedTime}\n isReadOnly\n cursor={'pointer'}\n {...inputProps}\n />\n </Box>\n }\n >\n <Flex height=\"186px\" gap={1.5} overflow=\"hidden\">\n <ScrollContainer\n options={hourOptions}\n optionType=\"hour\"\n selectedValue={selectedHour}\n handleClick={handleHourClick}\n isOpen={isOpen}\n />\n <ScrollContainer\n options={minuteOptions}\n optionType=\"minute\"\n selectedValue={selectedMinute ? formatNumber(selectedMinute) : undefined}\n handleClick={handleMinuteClick}\n isOpen={isOpen}\n />\n <ScrollContainer\n options={meridiemOptions}\n optionType=\"meridiem\"\n selectedValue={selectedMeridiem}\n handleClick={handleMeridiemClick}\n isOpen={isOpen}\n />\n </Flex>\n </Popover>\n );\n};\n"],"names":["TimeOption","value","innerRef","isSelected","handleClick","onClick","useCallback","event","selectedValue","currentTarget","textContent","React","createElement","Box","ref","background","color","fontSize","textAlign","px","py","borderRadius","cursor","_hover","ScrollContainer","options","optionType","isOpen","itemRef","useRef","containerRef","useEffect","current","scrollTop","_a","offsetTop","_b","Flex","direction","gap","overflowY","sx","display","map","option","key","Meridiem","initialTime","minuteInterval","inputProps","placement","onTimeChange","onOpen","onClose","useDisclosure","selectedTime","setSelectedTime","useState","initialFormattedTime","useMemo","localTime","Date","hours","getHours","adjustedHours","toString","minutes","getMinutes","meridiem","PM","AM","selectedHour","setSelectedHour","selectedMinute","setSelectedMinute","selectedMeridiem","setSelectedMeridiem","formattedTime","format","formatNumber","number","formattedValue","length","hourOptions","hour","minuteOptions","i","push","meridiemOptions","handleTimeChange","minute","_hour","_minute","_meridiem","meridiemAdjustment","Number","time","setHours","date","handleHourClick","handleMinuteClick","handleMeridiemClick","Popover","contentProps","width","variant","size","anchor","TextInput","placeholder","rightElement","Icon","useIconTextSizeMap","name","isReadOnly","height","overflow","undefined"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";var e=require("react"),t=require("./timePicker.component-
|
|
2
|
-
//# sourceMappingURL=timeRange.component-
|
|
1
|
+
"use strict";var e=require("react"),t=require("./timePicker.component-c3cb72ec.js"),r=require("./chakra-ui-layout.esm-6ee578f7.js");function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var i=a(e);exports.TimeRange=({startTimePickerProps:e,endTimePickerProps:a,dashContainerProps:c})=>i.default.createElement(r.Flex,null,i.default.createElement(t.TimePicker,Object.assign({},e)),i.default.createElement(r.Box,Object.assign({alignSelf:"center",mx:1},c),"-"),i.default.createElement(t.TimePicker,Object.assign({},a)));
|
|
2
|
+
//# sourceMappingURL=timeRange.component-e0338c4a.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"timeRange.component-
|
|
1
|
+
{"version":3,"file":"timeRange.component-e0338c4a.js","sources":["../src/components/TimeRange/timeRange.component.tsx"],"sourcesContent":["import React from 'react';\nimport { Box, BoxProps, Flex } from '@chakra-ui/react';\nimport { TimePicker, TimePickerProps } from '../TimePicker/timePicker.component';\n\nexport interface TimeRangeProps {\n startTimePickerProps: TimePickerProps;\n endTimePickerProps: TimePickerProps;\n dashContainerProps?: BoxProps;\n}\n\nexport const TimeRange = ({\n startTimePickerProps,\n endTimePickerProps,\n dashContainerProps,\n}: TimeRangeProps): JSX.Element => {\n return (\n <Flex>\n <TimePicker {...startTimePickerProps} />\n <Box alignSelf=\"center\" mx={1} {...dashContainerProps}>\n -\n </Box>\n <TimePicker {...endTimePickerProps} />\n </Flex>\n );\n};\n"],"names":["startTimePickerProps","endTimePickerProps","dashContainerProps","React","Flex","createElement","TimePicker","Object","assign","Box","alignSelf","mx"],"mappings":"yOAUyB,EACvBA,qBAAAA,EACAC,mBAAAA,EACAC,mBAAAA,KAGEC,wBAACC,EAAAA,KAAI,KACHD,EAAC,QAAAE,cAAAC,aAAeC,OAAAC,OAAA,GAAAR,IAChBG,EAAAA,QAACE,cAAAI,EAAAA,IAAIF,OAAAC,OAAA,CAAAE,UAAU,SAASC,GAAI,GAAOT,GAE7B,KACNC,UAAAE,cAACC,EAAAA,WAAeC,OAAAC,OAAA,GAAAP"}
|
package/package.json
CHANGED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";var e=require("./tslib.es6-d6f17add.js"),t=require("react"),n=require("./menuContainer.component-3e1e324b.js"),r=require("./menuButton.component-52602de9.js"),u=require("./menuList.component-790babbe.js"),s=require("./menu.context-22d23674.js"),i=require("./chakra-ui-menu.esm-1ed98193.js");function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var l=o(t);exports.Menu=t=>{var{buttonProps:o,customTriggerElement:a,listProps:m,containerProps:c}=t,d=e.__rest(t,["buttonProps","customTriggerElement","listProps","containerProps"]);return l.default.createElement(s.MenuProvider,{menuItems:null==m?void 0:m.menuItems,isMultiSelect:null==m?void 0:m.isMultiSelect,onClose:null==c?void 0:c.onClose},l.default.createElement(n.MenuContainer,Object.assign({isLazy:(null==c?void 0:c.isLazy)||!0},c,d),a?l.default.createElement("customTriggerElement",{as:i.MenuButton}):l.default.createElement(r.MenuButton,Object.assign({},o)),l.default.createElement(u.MenuList,Object.assign({},m,{isMatchWidthSet:d.matchWidth,menuItems:null==m?void 0:m.menuItems}))))};
|
|
2
|
-
//# sourceMappingURL=menu.component-a4fab3cb.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"menu.component-a4fab3cb.js","sources":["../src/components/Menu/menu.component.tsx"],"sourcesContent":["import React, { FunctionComponent } from 'react';\nimport { MenuProps as CMenuProps, MenuButton as CMenuButton } from '@chakra-ui/react';\nimport { MenuContainer, MenuContainerProps } from './components/MenuContainer/menuContainer.component';\nimport { MenuButton, MenuButtonProps } from './components/MenuButton/menuButton.component';\nimport { MenuList, MenuListProps } from './components/MenuList/menuList.component';\nimport { MenuProvider } from './context/menu.context';\n\nexport interface KMenuProps {\n buttonProps?: MenuButtonProps;\n customTriggerElement?: FunctionComponent;\n listProps?: MenuListProps;\n containerProps?: MenuContainerProps;\n}\n\nexport type MenuProps = KMenuProps & Omit<CMenuProps, 'onClose' | 'children'>;\n\nexport const Menu = ({\n buttonProps,\n customTriggerElement,\n listProps,\n containerProps,\n ...props\n}: MenuProps): JSX.Element => {\n return (\n <MenuProvider\n menuItems={listProps?.menuItems}\n isMultiSelect={listProps?.isMultiSelect}\n onClose={containerProps?.onClose}\n >\n <MenuContainer isLazy={containerProps?.isLazy || true} {...containerProps} {...props}>\n {customTriggerElement ? (\n // @ts-ignore\n <customTriggerElement as={CMenuButton} />\n ) : (\n <MenuButton {...buttonProps} />\n )}\n <MenuList {...listProps} isMatchWidthSet={props.matchWidth} menuItems={listProps?.menuItems} />\n </MenuContainer>\n </MenuProvider>\n );\n};\n"],"names":["_a","buttonProps","customTriggerElement","listProps","containerProps","props","__rest","React","createElement","MenuProvider","menuItems","isMultiSelect","onClose","MenuContainer","Object","assign","isLazy","as","CMenuButton","MenuButton","MenuList","isMatchWidthSet","matchWidth"],"mappings":"gZAgBqBA,IAAA,IAAAC,YACnBA,EAAWC,qBACXA,EAAoBC,UACpBA,EAASC,eACTA,GAAcJ,EACXK,EALgBC,EAAAA,OAAAN,EAAA,CAAA,cAAA,uBAAA,YAAA,mBAOnB,OACEO,EAAAA,QAAAC,cAACC,EAAAA,aAAY,CACXC,UAAWP,MAAAA,OAAA,EAAAA,EAAWO,UACtBC,cAAeR,MAAAA,OAAS,EAATA,EAAWQ,cAC1BC,QAASR,MAAAA,OAAA,EAAAA,EAAgBQ,SAEzBL,UAAAC,cAACK,EAAAA,cAAcC,OAAAC,OAAA,CAAAC,QAAQZ,MAAAA,OAAA,EAAAA,EAAgBY,UAAU,GAAUZ,EAAoBC,GAC5EH,EAECK,EAAA,QAAAC,cAAA,uBAAA,CAAsBS,GAAIC,EAAAA,aAE1BX,EAAAA,QAACC,cAAAW,EAAAA,WAAeL,OAAAC,OAAA,GAAAd,IAElBM,UAACC,cAAAY,EAAQA,0BAAKjB,EAAS,CAAEkB,gBAAiBhB,EAAMiB,WAAYZ,UAAWP,MAAAA,OAAS,EAATA,EAAWO"}
|