@lumx/react 3.10.1-alpha.2 → 3.10.1-alpha.4
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/_internal/{8d67e1e3.d.ts → index.d.ts} +1 -1
- package/_internal/index.js +99 -0
- package/_internal/index.js.map +1 -0
- package/index.d.ts +3000 -66
- package/index.js +14561 -64
- package/index.js.map +1 -1
- package/package.json +3 -3
- package/src/components/button/Button.tsx +4 -5
- package/src/components/button/ButtonRoot.tsx +1 -3
- package/src/components/chip/Chip.tsx +7 -11
- package/src/components/date-picker/DatePickerControlled.tsx +1 -1
- package/src/components/dialog/Dialog.tsx +1 -1
- package/src/components/expansion-panel/ExpansionPanel.test.tsx +2 -2
- package/src/components/expansion-panel/ExpansionPanel.tsx +14 -18
- package/src/components/flex-box/FlexBox.tsx +1 -1
- package/src/components/generic-block/GenericBlock.tsx +6 -7
- package/src/components/generic-block/constants.ts +9 -4
- package/src/components/grid-column/GridColumn.tsx +1 -2
- package/src/components/image-lightbox/internal/ImageSlide.tsx +2 -2
- package/src/components/image-lightbox/internal/ImageSlideshow.tsx +4 -8
- package/src/components/image-lightbox/useImageLightbox.tsx +3 -4
- package/src/components/link/Link.tsx +3 -5
- package/src/components/list/ListItem.tsx +2 -3
- package/src/components/list/useInteractiveList.tsx +1 -2
- package/src/components/mosaic/Mosaic.test.tsx +3 -3
- package/src/components/mosaic/Mosaic.tsx +2 -3
- package/src/components/navigation/Navigation.tsx +42 -37
- package/src/components/navigation/NavigationSection.tsx +76 -79
- package/src/components/notification/Notification.tsx +1 -5
- package/src/components/popover/usePopoverStyle.tsx +3 -1
- package/src/components/popover/useRestoreFocusOnClose.tsx +1 -1
- package/src/components/popover-dialog/PopoverDialog.test.tsx +1 -1
- package/src/components/post-block/PostBlock.tsx +4 -8
- package/src/components/progress-tracker/ProgressTracker.stories.tsx +11 -11
- package/src/components/select/Select.stories.tsx +14 -5
- package/src/components/select/Select.test.tsx +2 -2
- package/src/components/select/Select.tsx +1 -2
- package/src/components/select/SelectMultiple.stories.tsx +12 -10
- package/src/components/side-navigation/SideNavigationItem.tsx +1 -1
- package/src/components/slideshow/Slides.tsx +1 -1
- package/src/components/slideshow/SlideshowControls.tsx +1 -1
- package/src/components/slideshow/useSlideFocusManagement.tsx +1 -1
- package/src/components/switch/Switch.tsx +1 -2
- package/src/components/tabs/Tabs.stories.tsx +3 -4
- package/src/components/text-field/TextField.test.tsx +4 -4
- package/src/components/text-field/TextField.tsx +2 -3
- package/src/components/tooltip/Tooltip.test.tsx +2 -2
- package/src/components/tooltip/useTooltipOpen.tsx +3 -3
- package/src/components/user-block/UserBlock.tsx +7 -9
- package/src/hooks/useCallbackOnEscape.ts +1 -1
- package/src/hooks/useClickAway.tsx +1 -2
- package/src/hooks/useFocusTrap.ts +1 -1
- package/src/hooks/useInterval.tsx +1 -4
- package/src/hooks/useKeyboardListNavigation.tsx +2 -4
- package/src/hooks/useSizeOnWindowResize.ts +14 -10
- package/src/hooks/useStopPropagation.ts +1 -2
- package/src/hooks/useTransitionVisibility.ts +2 -2
- package/src/stories/decorators/withCombinations.tsx +1 -1
- package/src/testing/utils/commonTestsSuiteRTL.tsx +2 -2
- package/src/utils/{DOM → browser/DOM}/startViewTransition.ts +3 -3
- package/src/utils/{focus → browser/focus}/getFirstAndLastFocusable.test.ts +1 -1
- package/src/utils/{focus → browser/focus}/getFocusableElements.test.ts +1 -1
- package/src/utils/{browserDoesNotSupportHover.test.js → browser/isHoverNotSupported.test.js} +5 -5
- package/src/utils/browser/isHoverNotSupported.ts +2 -0
- package/src/utils/browser/{getPrefersReducedMotion.ts → isReducedMotion.ts} +1 -1
- package/src/utils/className/getFontColorClassName.ts +9 -0
- package/src/utils/{className.ts → className/getRootClassName.ts} +1 -21
- package/src/utils/className/getTypographyClassName.ts +9 -0
- package/src/utils/className/index.ts +4 -0
- package/src/utils/collection/castArray.test.ts +15 -0
- package/src/utils/collection/castArray.ts +3 -0
- package/src/utils/collection/chunk.test.ts +15 -0
- package/src/utils/collection/chunk.ts +6 -0
- package/src/utils/collection/isEmpty.test.js +20 -0
- package/src/utils/collection/isEmpty.ts +4 -0
- package/src/utils/collection/last.ts +2 -0
- package/src/utils/collection/partitionMulti.test.ts +35 -0
- package/src/utils/{partitionMulti.ts → collection/partitionMulti.ts} +13 -12
- package/src/utils/collection/pull.test.ts +17 -0
- package/src/utils/collection/pull.ts +7 -0
- package/src/utils/collection/range.test.js +9 -0
- package/src/utils/collection/range.ts +2 -0
- package/src/utils/date/getMonthCalendar.ts +3 -4
- package/src/utils/flattenChildren.ts +2 -3
- package/src/utils/function/memoize.test.ts +36 -0
- package/src/utils/function/memoize.ts +13 -0
- package/src/utils/makeListenerTowerContext.ts +2 -2
- package/src/utils/partitionMulti.test.ts +27 -0
- package/src/utils/react/forwardRef.ts +3 -2
- package/src/utils/react/forwardRefPolymorphic.ts +1 -2
- package/utils/index.d.ts +1 -1
- package/utils/index.js +1 -96
- package/utils/index.js.map +1 -1
- package/_internal/17c3ea1d.js +0 -137
- package/_internal/17c3ea1d.js.map +0 -1
- package/_internal/1da25128.js +0 -411
- package/_internal/1da25128.js.map +0 -1
- package/_internal/230173a8.js +0 -13
- package/_internal/230173a8.js.map +0 -1
- package/_internal/23bdba2d.js +0 -71
- package/_internal/23bdba2d.js.map +0 -1
- package/_internal/26926e5c.d.ts +0 -36
- package/_internal/2a3d237c.js +0 -12
- package/_internal/2a3d237c.js.map +0 -1
- package/_internal/2c5dbb03.js +0 -26
- package/_internal/2c5dbb03.js.map +0 -1
- package/_internal/2e2abe51.js +0 -2154
- package/_internal/2e2abe51.js.map +0 -1
- package/_internal/31490c59.d.ts +0 -167
- package/_internal/3181f000.js +0 -14
- package/_internal/3181f000.js.map +0 -1
- package/_internal/35f100be.d.ts +0 -104
- package/_internal/36bd7352.js +0 -219
- package/_internal/36bd7352.js.map +0 -1
- package/_internal/3a1facc0.js +0 -18
- package/_internal/3a1facc0.js.map +0 -1
- package/_internal/4c20d932.js +0 -89
- package/_internal/4c20d932.js.map +0 -1
- package/_internal/4c28d012.js +0 -305
- package/_internal/4c28d012.js.map +0 -1
- package/_internal/4cd0bf32.js +0 -160
- package/_internal/4cd0bf32.js.map +0 -1
- package/_internal/4daccdd5.js +0 -25
- package/_internal/4daccdd5.js.map +0 -1
- package/_internal/524b1d04.js +0 -64
- package/_internal/524b1d04.js.map +0 -1
- package/_internal/53c94227.js +0 -123
- package/_internal/53c94227.js.map +0 -1
- package/_internal/54d9ded5.js +0 -418
- package/_internal/54d9ded5.js.map +0 -1
- package/_internal/56aec41b.js +0 -652
- package/_internal/56aec41b.js.map +0 -1
- package/_internal/5720caf5.js +0 -124
- package/_internal/5720caf5.js.map +0 -1
- package/_internal/646f0db6.js +0 -113
- package/_internal/646f0db6.js.map +0 -1
- package/_internal/6cc8dca8.d.ts +0 -22
- package/_internal/7f022f8c.d.ts +0 -34
- package/_internal/b8f2948d.js +0 -691
- package/_internal/b8f2948d.js.map +0 -1
- package/_internal/bc28d510.js +0 -784
- package/_internal/bc28d510.js.map +0 -1
- package/_internal/c68d24e4.js +0 -145
- package/_internal/c68d24e4.js.map +0 -1
- package/_internal/c6c99f76.js +0 -105
- package/_internal/c6c99f76.js.map +0 -1
- package/_internal/cae46566.js +0 -65
- package/_internal/cae46566.js.map +0 -1
- package/_internal/components/alert-dialog/index.ts-623b1ed3.d.ts +0 -37
- package/_internal/components/alert-dialog/index.ts-f83bd6ef.js +0 -148
- package/_internal/components/alert-dialog/index.ts-f83bd6ef.js.map +0 -1
- package/_internal/components/autocomplete/index.ts-3f8f125c.js +0 -264
- package/_internal/components/autocomplete/index.ts-3f8f125c.js.map +0 -1
- package/_internal/components/autocomplete/index.ts-8d6b123f.d.ts +0 -201
- package/_internal/components/avatar/index.ts-93ee0ea9.js +0 -89
- package/_internal/components/avatar/index.ts-93ee0ea9.js.map +0 -1
- package/_internal/components/avatar/index.ts-f92852b4.d.ts +0 -43
- package/_internal/components/badge/index.ts-2d7700ef.d.ts +0 -30
- package/_internal/components/badge/index.ts-6753d67f.js +0 -88
- package/_internal/components/badge/index.ts-6753d67f.js.map +0 -1
- package/_internal/components/button/index.ts-031307ce.js +0 -51
- package/_internal/components/button/index.ts-031307ce.js.map +0 -1
- package/_internal/components/button/index.ts-b29e26a4.d.ts +0 -22
- package/_internal/components/checkbox/index.ts-a33166d7.js +0 -127
- package/_internal/components/checkbox/index.ts-a33166d7.js.map +0 -1
- package/_internal/components/checkbox/index.ts-f82358ff.d.ts +0 -38
- package/_internal/components/chip/index.ts-4a91f1a7.d.ts +0 -68
- package/_internal/components/chip/index.ts-a2b5b771.js +0 -110
- package/_internal/components/chip/index.ts-a2b5b771.js.map +0 -1
- package/_internal/components/comment-block/index.ts-58fa051a.js +0 -121
- package/_internal/components/comment-block/index.ts-58fa051a.js.map +0 -1
- package/_internal/components/comment-block/index.ts-8cfa5af0.d.ts +0 -67
- package/_internal/components/date-picker/index.ts-145262d5.js +0 -2
- package/_internal/components/date-picker/index.ts-145262d5.js.map +0 -1
- package/_internal/components/date-picker/index.ts-70a34fa7.d.ts +0 -95
- package/_internal/components/dialog/index.ts-ea044db2.js +0 -224
- package/_internal/components/dialog/index.ts-ea044db2.js.map +0 -1
- package/_internal/components/dialog/index.ts-eca28654.d.ts +0 -55
- package/_internal/components/divider/index.ts-4a56db75.js +0 -55
- package/_internal/components/divider/index.ts-4a56db75.js.map +0 -1
- package/_internal/components/divider/index.ts-b011d8ca.d.ts +0 -18
- package/_internal/components/drag-handle/index.ts-0aebf92f.js +0 -54
- package/_internal/components/drag-handle/index.ts-0aebf92f.js.map +0 -1
- package/_internal/components/drag-handle/index.ts-3ab31dd1.d.ts +0 -18
- package/_internal/components/dropdown/index.ts-2a17db51.js +0 -154
- package/_internal/components/dropdown/index.ts-2a17db51.js.map +0 -1
- package/_internal/components/dropdown/index.ts-b648a15c.d.ts +0 -87
- package/_internal/components/expansion-panel/index.ts-69f09f5b.d.ts +0 -38
- package/_internal/components/expansion-panel/index.ts-fae3762e.js +0 -143
- package/_internal/components/expansion-panel/index.ts-fae3762e.js.map +0 -1
- package/_internal/components/flag/index.ts-8dcd685b.js +0 -56
- package/_internal/components/flag/index.ts-8dcd685b.js.map +0 -1
- package/_internal/components/flag/index.ts-fda89adb.d.ts +0 -23
- package/_internal/components/flex-box/index.ts-87f2b58d.d.ts +0 -43
- package/_internal/components/flex-box/index.ts-c216e957.js +0 -60
- package/_internal/components/flex-box/index.ts-c216e957.js.map +0 -1
- package/_internal/components/generic-block/index.ts-999a62a4.js +0 -115
- package/_internal/components/generic-block/index.ts-999a62a4.js.map +0 -1
- package/_internal/components/generic-block/index.ts-cd3b0e21.d.ts +0 -106
- package/_internal/components/grid/index.ts-67e0694f.d.ts +0 -50
- package/_internal/components/grid/index.ts-fdf1b306.js +0 -113
- package/_internal/components/grid/index.ts-fdf1b306.js.map +0 -1
- package/_internal/components/grid-column/index.ts-97c61cbe.js +0 -64
- package/_internal/components/grid-column/index.ts-97c61cbe.js.map +0 -1
- package/_internal/components/grid-column/index.ts-c89e1c18.d.ts +0 -31
- package/_internal/components/heading/index.ts-0179e9a9.js +0 -112
- package/_internal/components/heading/index.ts-0179e9a9.js.map +0 -1
- package/_internal/components/heading/index.ts-587579e8.d.ts +0 -37
- package/_internal/components/icon/index.ts-740ca1de.js +0 -2
- package/_internal/components/icon/index.ts-740ca1de.js.map +0 -1
- package/_internal/components/icon/index.ts-b3fa5e15.d.ts +0 -34
- package/_internal/components/image-block/index.ts-36b3828f.d.ts +0 -49
- package/_internal/components/image-block/index.ts-ef5e2e7d.js +0 -111
- package/_internal/components/image-block/index.ts-ef5e2e7d.js.map +0 -1
- package/_internal/components/image-lightbox/index.ts-137f85a8.js +0 -765
- package/_internal/components/image-lightbox/index.ts-137f85a8.js.map +0 -1
- package/_internal/components/image-lightbox/index.ts-2cb92d18.d.ts +0 -75
- package/_internal/components/inline-list/index.ts-033dd358.js +0 -76
- package/_internal/components/inline-list/index.ts-033dd358.js.map +0 -1
- package/_internal/components/inline-list/index.ts-e1c8a3ff.d.ts +0 -34
- package/_internal/components/input-helper/index.ts-32a9ca90.d.ts +0 -22
- package/_internal/components/input-helper/index.ts-ab3a1ef5.js +0 -75
- package/_internal/components/input-helper/index.ts-ab3a1ef5.js.map +0 -1
- package/_internal/components/input-label/index.ts-86f2ea41.d.ts +0 -24
- package/_internal/components/input-label/index.ts-d6ca5569.js +0 -60
- package/_internal/components/input-label/index.ts-d6ca5569.js.map +0 -1
- package/_internal/components/lightbox/index.ts-5370e8e6.d.ts +0 -36
- package/_internal/components/lightbox/index.ts-7a16cdc7.js +0 -149
- package/_internal/components/lightbox/index.ts-7a16cdc7.js.map +0 -1
- package/_internal/components/link/index.ts-26435006.d.ts +0 -37
- package/_internal/components/link/index.ts-d04f4e53.js +0 -120
- package/_internal/components/link/index.ts-d04f4e53.js.map +0 -1
- package/_internal/components/link-preview/index.ts-e560a274.d.ts +0 -36
- package/_internal/components/link-preview/index.ts-fee89f66.js +0 -109
- package/_internal/components/link-preview/index.ts-fee89f66.js.map +0 -1
- package/_internal/components/list/index.ts-ab57902e.d.ts +0 -118
- package/_internal/components/list/index.ts-f3101625.js +0 -86
- package/_internal/components/list/index.ts-f3101625.js.map +0 -1
- package/_internal/components/message/index.ts-041cf0cb.js +0 -97
- package/_internal/components/message/index.ts-041cf0cb.js.map +0 -1
- package/_internal/components/message/index.ts-2d38e0ea.d.ts +0 -37
- package/_internal/components/mosaic/index.ts-232d5aed.d.ts +0 -23
- package/_internal/components/mosaic/index.ts-d2128cd3.js +0 -94
- package/_internal/components/mosaic/index.ts-d2128cd3.js.map +0 -1
- package/_internal/components/navigation/index.ts-6d8bea53.d.ts +0 -58
- package/_internal/components/navigation/index.ts-e8dc0a7f.js +0 -222
- package/_internal/components/navigation/index.ts-e8dc0a7f.js.map +0 -1
- package/_internal/components/notification/index.ts-235fd340.js +0 -140
- package/_internal/components/notification/index.ts-235fd340.js.map +0 -1
- package/_internal/components/notification/index.ts-bb3f03f6.d.ts +0 -34
- package/_internal/components/popover/index.ts-2f17a9b6.js +0 -3
- package/_internal/components/popover/index.ts-2f17a9b6.js.map +0 -1
- package/_internal/components/popover/index.ts-e3b4ff19.d.ts +0 -66
- package/_internal/components/post-block/index.ts-0acb9bb4.js +0 -101
- package/_internal/components/post-block/index.ts-0acb9bb4.js.map +0 -1
- package/_internal/components/post-block/index.ts-9b8ff90b.d.ts +0 -41
- package/_internal/components/progress/index.ts-2a713859.js +0 -189
- package/_internal/components/progress/index.ts-2a713859.js.map +0 -1
- package/_internal/components/progress/index.ts-dfdfa5fb.d.ts +0 -60
- package/_internal/components/progress-tracker/index.ts-2649f756.js +0 -312
- package/_internal/components/progress-tracker/index.ts-2649f756.js.map +0 -1
- package/_internal/components/progress-tracker/index.ts-95320f32.d.ts +0 -101
- package/_internal/components/radio-button/index.ts-5eaab4cf.d.ts +0 -54
- package/_internal/components/radio-button/index.ts-b4dfb2a0.js +0 -150
- package/_internal/components/radio-button/index.ts-b4dfb2a0.js.map +0 -1
- package/_internal/components/select/index.ts-a65e3507.d.ts +0 -91
- package/_internal/components/select/index.ts-e8fad28b.js +0 -257
- package/_internal/components/select/index.ts-e8fad28b.js.map +0 -1
- package/_internal/components/side-navigation/index.ts-3f5f3785.d.ts +0 -60
- package/_internal/components/side-navigation/index.ts-c9a5fc3e.js +0 -184
- package/_internal/components/side-navigation/index.ts-c9a5fc3e.js.map +0 -1
- package/_internal/components/skeleton/index.ts-a7daefac.d.ts +0 -75
- package/_internal/components/skeleton/index.ts-ffc995af.js +0 -179
- package/_internal/components/skeleton/index.ts-ffc995af.js.map +0 -1
- package/_internal/components/slider/index.ts-24a0d598.d.ts +0 -52
- package/_internal/components/slider/index.ts-72aadf4c.js +0 -308
- package/_internal/components/slider/index.ts-72aadf4c.js.map +0 -1
- package/_internal/components/slideshow/index.ts-c99f2892.js +0 -151
- package/_internal/components/slideshow/index.ts-c99f2892.js.map +0 -1
- package/_internal/components/slideshow/index.ts-e49462c6.d.ts +0 -25
- package/_internal/components/switch/index.ts-207ba52b.d.ts +0 -34
- package/_internal/components/switch/index.ts-542e6eaf.js +0 -115
- package/_internal/components/switch/index.ts-542e6eaf.js.map +0 -1
- package/_internal/components/table/index.ts-905ce390.js +0 -310
- package/_internal/components/table/index.ts-905ce390.js.map +0 -1
- package/_internal/components/table/index.ts-c4f39b2d.d.ts +0 -108
- package/_internal/components/tabs/index.ts-713119f4.js +0 -289
- package/_internal/components/tabs/index.ts-713119f4.js.map +0 -1
- package/_internal/components/tabs/index.ts-dbfc48d9.d.ts +0 -106
- package/_internal/components/text/index.ts-6afbe8cd.js +0 -2
- package/_internal/components/text/index.ts-6afbe8cd.js.map +0 -1
- package/_internal/components/text/index.ts-8a812048.d.ts +0 -53
- package/_internal/components/text-field/index.ts-92e6b3b3.d.ts +0 -77
- package/_internal/components/text-field/index.ts-c3be8563.js +0 -341
- package/_internal/components/text-field/index.ts-c3be8563.js.map +0 -1
- package/_internal/components/thumbnail/index.ts-16d7b403.js +0 -40
- package/_internal/components/thumbnail/index.ts-16d7b403.js.map +0 -1
- package/_internal/components/thumbnail/index.ts-1b6c0b48.d.ts +0 -8
- package/_internal/components/toolbar/index.ts-813b902e.js +0 -63
- package/_internal/components/toolbar/index.ts-813b902e.js.map +0 -1
- package/_internal/components/toolbar/index.ts-9f5129d1.d.ts +0 -24
- package/_internal/components/tooltip/index.ts-905c847c.js +0 -322
- package/_internal/components/tooltip/index.ts-905c847c.js.map +0 -1
- package/_internal/components/tooltip/index.ts-c6931e9e.d.ts +0 -35
- package/_internal/components/uploader/index.ts-31f21c2a.js +0 -132
- package/_internal/components/uploader/index.ts-31f21c2a.js.map +0 -1
- package/_internal/components/uploader/index.ts-c3ccba98.d.ts +0 -51
- package/_internal/components/user-block/index.ts-18c58e19.d.ts +0 -50
- package/_internal/components/user-block/index.ts-d43e5f3c.js +0 -136
- package/_internal/components/user-block/index.ts-d43e5f3c.js.map +0 -1
- package/_internal/dc3e28c8.d.ts +0 -38
- package/_internal/f39a1ba4.js +0 -73
- package/_internal/f39a1ba4.js.map +0 -1
- package/_internal/f3e77e3e.js +0 -22
- package/_internal/f3e77e3e.js.map +0 -1
- package/_internal/f502ab30.js +0 -78
- package/_internal/f502ab30.js.map +0 -1
- package/_internal/f52adbae.js +0 -36
- package/_internal/f52adbae.js.map +0 -1
- package/_internal/f57e1239.js +0 -205
- package/_internal/f57e1239.js.map +0 -1
- package/_internal/f5ff1aa4.d.ts +0 -47
- package/_internal/fb975afe.js +0 -52
- package/_internal/fb975afe.js.map +0 -1
- package/src/utils/browserDoesNotSupportHover.ts +0 -2
- package/src/utils/isInternetExplorer.ts +0 -15
- package/src/utils/userHasReducedMotion.ts +0 -7
- package/src/utils/utils.test.ts +0 -48
- /package/src/utils/{DOM → browser/DOM}/findImage.tsx +0 -0
- /package/src/utils/{event.ts → browser/event.ts} +0 -0
- /package/src/utils/{focus → browser/focus}/constants.ts +0 -0
- /package/src/utils/{focus → browser/focus}/getFirstAndLastFocusable.ts +0 -0
- /package/src/utils/{focus → browser/focus}/getFocusableElements.ts +0 -0
- /package/src/utils/{isFocusVisible.ts → browser/isFocusVisible.ts} +0 -0
package/_internal/f57e1239.js
DELETED
|
@@ -1,205 +0,0 @@
|
|
|
1
|
-
import { j as _objectWithoutProperties, g as classNames } from './1da25128.js';
|
|
2
|
-
import isBoolean from 'lodash/isBoolean';
|
|
3
|
-
import isEmpty from 'lodash/isEmpty';
|
|
4
|
-
import kebabCase from 'lodash/kebabCase';
|
|
5
|
-
import noop from 'lodash/noop';
|
|
6
|
-
|
|
7
|
-
const _excluded = ["prefix"];
|
|
8
|
-
|
|
9
|
-
/**
|
|
10
|
-
* Enhance isEmpty method to also works with numbers.
|
|
11
|
-
*
|
|
12
|
-
* @param value The value to check.
|
|
13
|
-
* @return Whether the input value is empty or != 0.
|
|
14
|
-
*/
|
|
15
|
-
const _isEmpty = value => {
|
|
16
|
-
if (typeof value === 'number') {
|
|
17
|
-
return value === 0;
|
|
18
|
-
}
|
|
19
|
-
return isEmpty(value);
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
/**
|
|
23
|
-
* Get the basic CSS class for the given type.
|
|
24
|
-
*
|
|
25
|
-
* @param prefix The class name prefix for the generated CSS class.
|
|
26
|
-
* @param type The type of CSS class we want to generate (e.g.: 'color', 'variant', ...).
|
|
27
|
-
* @param value The value of the type of the CSS class (e.g.: 'primary', 'button', ...).
|
|
28
|
-
* @return The basic CSS class.
|
|
29
|
-
*/
|
|
30
|
-
function getBasicClass(_ref) {
|
|
31
|
-
let {
|
|
32
|
-
prefix,
|
|
33
|
-
type,
|
|
34
|
-
value
|
|
35
|
-
} = _ref;
|
|
36
|
-
if (isBoolean(value)) {
|
|
37
|
-
if (!value) {
|
|
38
|
-
// False value should not return a class.
|
|
39
|
-
return '';
|
|
40
|
-
}
|
|
41
|
-
const booleanPrefixes = ['has', 'is'];
|
|
42
|
-
if (booleanPrefixes.some(booleanPrefix => type.toString().startsWith(booleanPrefix))) {
|
|
43
|
-
return `${prefix}--${kebabCase(type)}`;
|
|
44
|
-
}
|
|
45
|
-
return `${prefix}--is-${kebabCase(type)}`;
|
|
46
|
-
}
|
|
47
|
-
return `${prefix}--${kebabCase(type)}-${value}`;
|
|
48
|
-
}
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* Return all basic LumX CSS classes which are available for every components.
|
|
52
|
-
*
|
|
53
|
-
* @see {@link /src/components/index.d.ts} for the possible values of each parameter.
|
|
54
|
-
*
|
|
55
|
-
* @param prefix The class name prefix for the generated CSS class.
|
|
56
|
-
* @param props All the other props you want to generate a class.
|
|
57
|
-
* The rule of thumb: the key is the name of the prop in the class, the value a string that will
|
|
58
|
-
* be used in the classname to represent the value of the given prop.
|
|
59
|
-
* @return All LumX basic CSS classes.
|
|
60
|
-
*/
|
|
61
|
-
function handleBasicClasses(_ref2) {
|
|
62
|
-
let {
|
|
63
|
-
prefix
|
|
64
|
-
} = _ref2,
|
|
65
|
-
props = _objectWithoutProperties(_ref2, _excluded);
|
|
66
|
-
const otherClasses = {};
|
|
67
|
-
if (!isEmpty(props)) {
|
|
68
|
-
Object.keys(props).forEach(prop => {
|
|
69
|
-
otherClasses[getBasicClass({
|
|
70
|
-
prefix,
|
|
71
|
-
type: prop,
|
|
72
|
-
value: props[prop]
|
|
73
|
-
})] = isBoolean(props[prop]) ? props[prop] : !_isEmpty(props[prop]);
|
|
74
|
-
});
|
|
75
|
-
}
|
|
76
|
-
return classNames(prefix, otherClasses);
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
/**
|
|
80
|
-
* Checks whether or not the browser support passive events.
|
|
81
|
-
* @see https://github.com/Modernizr/Modernizr/blob/6d56d814b9682843313b16060adb25a58d83a317/feature-detects/dom/passiveeventlisteners.js
|
|
82
|
-
*/
|
|
83
|
-
function isPassiveEventAvailable() {
|
|
84
|
-
let supportsPassiveOption = false;
|
|
85
|
-
try {
|
|
86
|
-
const opts = Object.defineProperty({}, 'passive', {
|
|
87
|
-
get() {
|
|
88
|
-
supportsPassiveOption = true;
|
|
89
|
-
}
|
|
90
|
-
});
|
|
91
|
-
window.addEventListener('testPassiveEventSupport', noop, opts);
|
|
92
|
-
window.removeEventListener('testPassiveEventSupport', noop, opts);
|
|
93
|
-
} catch (e) {
|
|
94
|
-
// ignored
|
|
95
|
-
}
|
|
96
|
-
return supportsPassiveOption;
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
/**
|
|
100
|
-
* Detects horizontal swipe direction without blocking the browser scroll using passive event.
|
|
101
|
-
* @see http://javascriptkit.com/javatutors/touchevents2.shtml
|
|
102
|
-
* @see https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md
|
|
103
|
-
*/
|
|
104
|
-
function detectHorizontalSwipe(touchSurface, handleSwipe) {
|
|
105
|
-
let startX;
|
|
106
|
-
let startY;
|
|
107
|
-
// Required min distance traveled to be considered swipe.
|
|
108
|
-
const threshold = 150;
|
|
109
|
-
// Maximum distance allowed at the same time in perpendicular direction.
|
|
110
|
-
const restraint = 150;
|
|
111
|
-
// Maximum time allowed to travel that distance.
|
|
112
|
-
const allowedTime = 300;
|
|
113
|
-
let elapsedTime;
|
|
114
|
-
let startTime;
|
|
115
|
-
let finished;
|
|
116
|
-
const onTouchStart = evt => {
|
|
117
|
-
const [touch] = Array.from(evt.changedTouches);
|
|
118
|
-
startX = touch.pageX;
|
|
119
|
-
startY = touch.pageY;
|
|
120
|
-
// Record time when finger first makes contact with surface.
|
|
121
|
-
startTime = new Date().getTime();
|
|
122
|
-
finished = false;
|
|
123
|
-
};
|
|
124
|
-
const onTouchMove = evt => {
|
|
125
|
-
if (finished) {
|
|
126
|
-
return;
|
|
127
|
-
}
|
|
128
|
-
elapsedTime = new Date().getTime() - startTime;
|
|
129
|
-
if (elapsedTime > allowedTime) {
|
|
130
|
-
// Touch swipe too long to be considered.
|
|
131
|
-
return;
|
|
132
|
-
}
|
|
133
|
-
const [touch] = Array.from(evt.changedTouches);
|
|
134
|
-
// Get horizontal dist traveled by finger while in contact with surface.
|
|
135
|
-
const distX = touch.pageX - startX;
|
|
136
|
-
// Get vertical dist traveled by finger while in contact with surface.
|
|
137
|
-
const distY = touch.pageY - startY;
|
|
138
|
-
if (!(Math.abs(distX) >= threshold && Math.abs(distY) <= restraint)) {
|
|
139
|
-
// Swipe is not horizontal.
|
|
140
|
-
return;
|
|
141
|
-
}
|
|
142
|
-
// Swipe direction.
|
|
143
|
-
const direction = distX < 0 ? 'left' : 'right';
|
|
144
|
-
handleSwipe(direction);
|
|
145
|
-
finished = true;
|
|
146
|
-
};
|
|
147
|
-
|
|
148
|
-
// Activate passive event if possible for better scrolling performance.
|
|
149
|
-
const eventOptions = isPassiveEventAvailable() ? {
|
|
150
|
-
passive: true
|
|
151
|
-
} : false;
|
|
152
|
-
touchSurface.addEventListener('touchstart', onTouchStart, eventOptions);
|
|
153
|
-
touchSurface.addEventListener('touchmove', onTouchMove, eventOptions);
|
|
154
|
-
return () => {
|
|
155
|
-
touchSurface.removeEventListener('touchstart', onTouchStart, eventOptions);
|
|
156
|
-
touchSurface.removeEventListener('touchmove', onTouchMove, eventOptions);
|
|
157
|
-
};
|
|
158
|
-
}
|
|
159
|
-
/**
|
|
160
|
-
* Make sure the pressed key is the enter key before calling the callback.
|
|
161
|
-
*
|
|
162
|
-
* @param handler The handler to call on enter/return press.
|
|
163
|
-
* @return The decorated function.
|
|
164
|
-
*/
|
|
165
|
-
function onEnterPressed(handler) {
|
|
166
|
-
return evt => {
|
|
167
|
-
if (evt.key !== 'Enter') {
|
|
168
|
-
return;
|
|
169
|
-
}
|
|
170
|
-
handler(evt);
|
|
171
|
-
};
|
|
172
|
-
}
|
|
173
|
-
|
|
174
|
-
/**
|
|
175
|
-
* Make sure the pressed key is the escape key before calling the callback.
|
|
176
|
-
*
|
|
177
|
-
* @param handler The handler to call on enter/return press.
|
|
178
|
-
* @return The decorated function.
|
|
179
|
-
*/
|
|
180
|
-
function onEscapePressed(handler) {
|
|
181
|
-
return evt => {
|
|
182
|
-
if (evt.key !== 'Escape') {
|
|
183
|
-
return;
|
|
184
|
-
}
|
|
185
|
-
handler(evt);
|
|
186
|
-
};
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
/**
|
|
190
|
-
* Handle button key pressed (Enter + Space).
|
|
191
|
-
*
|
|
192
|
-
* @param handler The handler to call.
|
|
193
|
-
* @return The decorated function.
|
|
194
|
-
*/
|
|
195
|
-
function onButtonPressed(handler) {
|
|
196
|
-
return evt => {
|
|
197
|
-
if (evt.key !== 'Enter' && evt.key !== ' ') {
|
|
198
|
-
return;
|
|
199
|
-
}
|
|
200
|
-
handler(evt);
|
|
201
|
-
};
|
|
202
|
-
}
|
|
203
|
-
|
|
204
|
-
export { onEscapePressed as a, onButtonPressed as b, detectHorizontalSwipe as d, getBasicClass as g, handleBasicClasses as h, onEnterPressed as o };
|
|
205
|
-
//# sourceMappingURL=f57e1239.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"f57e1239.js","sources":["../../../lumx-core/src/js/utils.ts"],"sourcesContent":["import classNames from 'classnames';\n// eslint-disable-next-line import/no-extraneous-dependencies\nimport React from 'react';\n\nimport isBoolean from 'lodash/isBoolean';\nimport isEmpty from 'lodash/isEmpty';\nimport kebabCase from 'lodash/kebabCase';\nimport noop from 'lodash/noop';\n\n/**\n * Enhance isEmpty method to also works with numbers.\n *\n * @param value The value to check.\n * @return Whether the input value is empty or != 0.\n */\nconst _isEmpty = (value: any) => {\n if (typeof value === 'number') {\n return value === 0;\n }\n\n return isEmpty(value);\n};\n\n/**\n * Get the basic CSS class for the given type.\n *\n * @param prefix The class name prefix for the generated CSS class.\n * @param type The type of CSS class we want to generate (e.g.: 'color', 'variant', ...).\n * @param value The value of the type of the CSS class (e.g.: 'primary', 'button', ...).\n * @return The basic CSS class.\n */\nexport function getBasicClass({\n prefix,\n type,\n value,\n}: {\n prefix: string;\n type: string;\n value: string | number | boolean | undefined;\n}): string {\n if (isBoolean(value)) {\n if (!value) {\n // False value should not return a class.\n return '';\n }\n const booleanPrefixes = ['has', 'is'];\n\n if (booleanPrefixes.some((booleanPrefix) => type.toString().startsWith(booleanPrefix))) {\n return `${prefix}--${kebabCase(type)}`;\n }\n\n return `${prefix}--is-${kebabCase(type)}`;\n }\n\n return `${prefix}--${kebabCase(type)}-${value}`;\n}\n\n/**\n * Return all basic LumX CSS classes which are available for every components.\n *\n * @see {@link /src/components/index.d.ts} for the possible values of each parameter.\n *\n * @param prefix The class name prefix for the generated CSS class.\n * @param props All the other props you want to generate a class.\n * The rule of thumb: the key is the name of the prop in the class, the value a string that will\n * be used in the classname to represent the value of the given prop.\n * @return All LumX basic CSS classes.\n */\nexport function handleBasicClasses({ prefix, ...props }: { prefix: string; [prop: string]: any }): string {\n const otherClasses: any = {};\n if (!isEmpty(props)) {\n Object.keys(props).forEach((prop) => {\n otherClasses[getBasicClass({ prefix, type: prop, value: props[prop] })] = isBoolean(props[prop])\n ? props[prop]\n : !_isEmpty(props[prop]);\n });\n }\n\n return classNames(prefix, otherClasses);\n}\n\ndeclare type SwipeDirection = 'none' | 'up' | 'down' | 'left' | 'right';\n\n/**\n * Detects swipe direction.\n * Credits: http://javascriptkit.com/javatutors/touchevents2.shtml.\n *\n * @deprecated use `detectHorizontalSwipe` instead if possible (better performance and does not block scroll)\n * @param touchSurface Element that will hold touch events.\n * @param handleSwipe Callback function.\n * @return Function to remove listeners.\n */\nexport function detectSwipe(touchSurface: Element, handleSwipe: (direction: SwipeDirection) => void = noop) {\n let distX: number;\n let distY: number;\n let startX: number;\n let startY: number;\n let direction: SwipeDirection;\n // Required min distance traveled to be considered swipe.\n const threshold = 150;\n // Maximum distance allowed at the same time in perpendicular direction.\n const restraint = 100;\n // Maximum time allowed to travel that distance.\n const allowedTime = 300;\n let elapsedTime: number;\n let startTime: number;\n\n const onTouchStart = (evt: Event) => {\n const [touch] = Array.from((evt as TouchEvent).changedTouches);\n direction = 'none';\n // Const dist = 0;\n startX = touch.pageX;\n startY = touch.pageY;\n // Record time when finger first makes contact with surface.\n startTime = new Date().getTime();\n evt.preventDefault();\n };\n\n const onTouchMove = (evt: Event) => {\n // Prevent scrolling when inside DIV.\n evt.preventDefault();\n };\n\n const onTouchEnd = (evt: Event) => {\n const [touch] = Array.from((evt as TouchEvent).changedTouches);\n // Get horizontal dist traveled by finger while in contact with surface.\n distX = touch.pageX - startX;\n // Get vertical dist traveled by finger while in contact with surface.\n distY = touch.pageY - startY;\n // Get time elapsed.\n elapsedTime = new Date().getTime() - startTime;\n if (elapsedTime <= allowedTime) {\n // First condition for awipe met.\n if (Math.abs(distX) >= threshold && Math.abs(distY) <= restraint) {\n // 2nd condition for horizontal swipe met.\n // If dist traveled is negative, it indicates left swipe.\n direction = distX < 0 ? 'left' : 'right';\n } else if (Math.abs(distY) >= threshold && Math.abs(distX) <= restraint) {\n // 2nd condition for vertical swipe met.\n // If dist traveled is negative, it indicates up swipe.\n direction = distY < 0 ? 'up' : 'down';\n }\n }\n handleSwipe(direction);\n evt.preventDefault();\n };\n\n touchSurface.addEventListener('touchstart', onTouchStart, false);\n touchSurface.addEventListener('touchmove', onTouchMove, false);\n touchSurface.addEventListener('touchend', onTouchEnd, false);\n\n return () => {\n touchSurface.removeEventListener('touchstart', onTouchStart, false);\n touchSurface.removeEventListener('touchmove', onTouchMove, false);\n touchSurface.removeEventListener('touchend', onTouchEnd, false);\n };\n}\n\n/**\n * Checks whether or not the browser support passive events.\n * @see https://github.com/Modernizr/Modernizr/blob/6d56d814b9682843313b16060adb25a58d83a317/feature-detects/dom/passiveeventlisteners.js\n */\nfunction isPassiveEventAvailable() {\n let supportsPassiveOption = false;\n try {\n const opts = Object.defineProperty({}, 'passive', {\n get() {\n supportsPassiveOption = true;\n },\n });\n window.addEventListener('testPassiveEventSupport', noop, opts);\n window.removeEventListener('testPassiveEventSupport', noop, opts);\n } catch (e) {\n // ignored\n }\n return supportsPassiveOption;\n}\n\n/**\n * Detects horizontal swipe direction without blocking the browser scroll using passive event.\n * @see http://javascriptkit.com/javatutors/touchevents2.shtml\n * @see https://github.com/WICG/EventListenerOptions/blob/gh-pages/explainer.md\n */\nexport function detectHorizontalSwipe(touchSurface: Element, handleSwipe: (direction: 'right' | 'left') => void) {\n let startX: number;\n let startY: number;\n // Required min distance traveled to be considered swipe.\n const threshold = 150;\n // Maximum distance allowed at the same time in perpendicular direction.\n const restraint = 150;\n // Maximum time allowed to travel that distance.\n const allowedTime = 300;\n let elapsedTime: number;\n let startTime: number;\n let finished: boolean;\n\n const onTouchStart = (evt: Event) => {\n const [touch] = Array.from((evt as TouchEvent).changedTouches);\n startX = touch.pageX;\n startY = touch.pageY;\n // Record time when finger first makes contact with surface.\n startTime = new Date().getTime();\n finished = false;\n };\n\n const onTouchMove = (evt: Event) => {\n if (finished) {\n return;\n }\n\n elapsedTime = new Date().getTime() - startTime;\n if (elapsedTime > allowedTime) {\n // Touch swipe too long to be considered.\n return;\n }\n\n const [touch] = Array.from((evt as TouchEvent).changedTouches);\n // Get horizontal dist traveled by finger while in contact with surface.\n const distX = touch.pageX - startX;\n // Get vertical dist traveled by finger while in contact with surface.\n const distY = touch.pageY - startY;\n\n if (!(Math.abs(distX) >= threshold && Math.abs(distY) <= restraint)) {\n // Swipe is not horizontal.\n return;\n }\n // Swipe direction.\n const direction = distX < 0 ? 'left' : 'right';\n\n handleSwipe(direction);\n finished = true;\n };\n\n // Activate passive event if possible for better scrolling performance.\n const eventOptions: any = isPassiveEventAvailable() ? { passive: true } : false;\n touchSurface.addEventListener('touchstart', onTouchStart, eventOptions);\n touchSurface.addEventListener('touchmove', onTouchMove, eventOptions);\n\n return () => {\n touchSurface.removeEventListener('touchstart', onTouchStart, eventOptions);\n touchSurface.removeEventListener('touchmove', onTouchMove, eventOptions);\n };\n}\n\ntype KeyboardEventHandler<E extends KeyboardEvent | React.KeyboardEvent> = (event: E) => void;\n\n/**\n * Make sure the pressed key is the enter key before calling the callback.\n *\n * @param handler The handler to call on enter/return press.\n * @return The decorated function.\n */\nexport function onEnterPressed<E extends KeyboardEvent | React.KeyboardEvent>(\n handler: KeyboardEventHandler<E>,\n): KeyboardEventHandler<E> {\n return (evt) => {\n if (evt.key !== 'Enter') {\n return;\n }\n handler(evt);\n };\n}\n\n/**\n * Make sure the pressed key is the escape key before calling the callback.\n *\n * @param handler The handler to call on enter/return press.\n * @return The decorated function.\n */\nexport function onEscapePressed<E extends KeyboardEvent | React.KeyboardEvent>(\n handler: KeyboardEventHandler<E>,\n): KeyboardEventHandler<E> {\n return (evt) => {\n if (evt.key !== 'Escape') {\n return;\n }\n handler(evt);\n };\n}\n\n/**\n * Handle button key pressed (Enter + Space).\n *\n * @param handler The handler to call.\n * @return The decorated function.\n */\nexport function onButtonPressed<E extends KeyboardEvent | React.KeyboardEvent>(\n handler: KeyboardEventHandler<E>,\n): KeyboardEventHandler<E> {\n return (evt) => {\n if (evt.key !== 'Enter' && evt.key !== ' ') {\n return;\n }\n handler(evt);\n };\n}\n"],"names":["_isEmpty","value","isEmpty","getBasicClass","_ref","prefix","type","isBoolean","booleanPrefixes","some","booleanPrefix","toString","startsWith","kebabCase","handleBasicClasses","_ref2","props","_objectWithoutProperties","_excluded","otherClasses","Object","keys","forEach","prop","classNames","isPassiveEventAvailable","supportsPassiveOption","opts","defineProperty","get","window","addEventListener","noop","removeEventListener","e","detectHorizontalSwipe","touchSurface","handleSwipe","startX","startY","threshold","restraint","allowedTime","elapsedTime","startTime","finished","onTouchStart","evt","touch","Array","from","changedTouches","pageX","pageY","Date","getTime","onTouchMove","distX","distY","Math","abs","direction","eventOptions","passive","onEnterPressed","handler","key","onEscapePressed","onButtonPressed"],"mappings":"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"}
|
package/_internal/f5ff1aa4.d.ts
DELETED
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { V as ValueOf } from './8d67e1e3.js';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Different possible placements for the popover.
|
|
5
|
-
*/
|
|
6
|
-
declare const Placement: {
|
|
7
|
-
readonly AUTO: "auto";
|
|
8
|
-
readonly AUTO_END: "auto-end";
|
|
9
|
-
readonly AUTO_START: "auto-start";
|
|
10
|
-
readonly TOP: "top";
|
|
11
|
-
readonly TOP_END: "top-end";
|
|
12
|
-
readonly TOP_START: "top-start";
|
|
13
|
-
readonly RIGHT: "right";
|
|
14
|
-
readonly RIGHT_END: "right-end";
|
|
15
|
-
readonly RIGHT_START: "right-start";
|
|
16
|
-
readonly BOTTOM: "bottom";
|
|
17
|
-
readonly BOTTOM_END: "bottom-end";
|
|
18
|
-
readonly BOTTOM_START: "bottom-start";
|
|
19
|
-
readonly LEFT: "left";
|
|
20
|
-
readonly LEFT_END: "left-end";
|
|
21
|
-
readonly LEFT_START: "left-start";
|
|
22
|
-
};
|
|
23
|
-
type Placement = ValueOf<typeof Placement>;
|
|
24
|
-
/**
|
|
25
|
-
* Offset of the popover.
|
|
26
|
-
*/
|
|
27
|
-
interface Offset {
|
|
28
|
-
/** Offset size along the reference. */
|
|
29
|
-
along?: number;
|
|
30
|
-
/** Offset size away from the reference. */
|
|
31
|
-
away?: number;
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* Popover elevation index.
|
|
35
|
-
*/
|
|
36
|
-
type Elevation = 1 | 2 | 3 | 4 | 5;
|
|
37
|
-
/**
|
|
38
|
-
* Popover fit anchor width options.
|
|
39
|
-
*/
|
|
40
|
-
declare const FitAnchorWidth: {
|
|
41
|
-
readonly MAX_WIDTH: "maxWidth";
|
|
42
|
-
readonly MIN_WIDTH: "minWidth";
|
|
43
|
-
readonly WIDTH: "width";
|
|
44
|
-
};
|
|
45
|
-
type FitAnchorWidth = ValueOf<typeof FitAnchorWidth>;
|
|
46
|
-
|
|
47
|
-
export { type Elevation as E, FitAnchorWidth as F, type Offset as O, Placement as P };
|
package/_internal/fb975afe.js
DELETED
|
@@ -1,52 +0,0 @@
|
|
|
1
|
-
import { useState, useRef, useEffect } from 'react';
|
|
2
|
-
|
|
3
|
-
const userHasReducedMotion = () => {
|
|
4
|
-
try {
|
|
5
|
-
return window.matchMedia('(prefers-reduced-motion: reduce)').matches;
|
|
6
|
-
} catch (e) {
|
|
7
|
-
return false;
|
|
8
|
-
}
|
|
9
|
-
};
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Returns true if the component is visible tracking the opacity transition.
|
|
13
|
-
*
|
|
14
|
-
* @param ref Element on which to listen the transition event.
|
|
15
|
-
* @param isComponentVisible Whether the component intends to be visible or not.
|
|
16
|
-
* @param onVisibilityChange Callback called when the visibility changes.
|
|
17
|
-
* @return true if the component should be rendered
|
|
18
|
-
*/
|
|
19
|
-
const useTransitionVisibility = (ref, isComponentVisible, timeout, onVisibilityChange) => {
|
|
20
|
-
const [isVisible, setVisible] = useState(isComponentVisible);
|
|
21
|
-
const previousVisibility = useRef(isVisible);
|
|
22
|
-
|
|
23
|
-
// On component visibility change.
|
|
24
|
-
useEffect(() => {
|
|
25
|
-
if (isComponentVisible) {
|
|
26
|
-
setVisible(true);
|
|
27
|
-
return undefined;
|
|
28
|
-
}
|
|
29
|
-
const {
|
|
30
|
-
current: element
|
|
31
|
-
} = ref;
|
|
32
|
-
|
|
33
|
-
// Transition event is not supported or the user prefers reduced motion.
|
|
34
|
-
// => Skip and set visibility to false directly.
|
|
35
|
-
if (!element || !window.TransitionEvent || userHasReducedMotion()) {
|
|
36
|
-
setVisible(false);
|
|
37
|
-
return undefined;
|
|
38
|
-
}
|
|
39
|
-
const timer = setTimeout(() => setVisible(false), timeout);
|
|
40
|
-
return () => clearTimeout(timer);
|
|
41
|
-
}, [isComponentVisible, ref, timeout]);
|
|
42
|
-
useEffect(() => {
|
|
43
|
-
if (onVisibilityChange && previousVisibility.current !== isVisible) {
|
|
44
|
-
onVisibilityChange(isVisible);
|
|
45
|
-
previousVisibility.current = isVisible;
|
|
46
|
-
}
|
|
47
|
-
}, [isVisible, onVisibilityChange]);
|
|
48
|
-
return isVisible || isComponentVisible;
|
|
49
|
-
};
|
|
50
|
-
|
|
51
|
-
export { useTransitionVisibility as u };
|
|
52
|
-
//# sourceMappingURL=fb975afe.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"fb975afe.js","sources":["../../src/utils/userHasReducedMotion.ts","../../src/hooks/useTransitionVisibility.ts"],"sourcesContent":["export const userHasReducedMotion = () => {\n try {\n return window.matchMedia('(prefers-reduced-motion: reduce)').matches;\n } catch (e) {\n return false;\n }\n};\n","import { RefObject, useEffect, useRef, useState } from 'react';\nimport { userHasReducedMotion } from '@lumx/react/utils/userHasReducedMotion';\n\n/**\n * Returns true if the component is visible tracking the opacity transition.\n *\n * @param ref Element on which to listen the transition event.\n * @param isComponentVisible Whether the component intends to be visible or not.\n * @param onVisibilityChange Callback called when the visibility changes.\n * @return true if the component should be rendered\n */\nexport const useTransitionVisibility = (\n ref: RefObject<HTMLElement>,\n isComponentVisible: boolean,\n timeout: number,\n onVisibilityChange?: (isVisible: boolean) => void,\n) => {\n const [isVisible, setVisible] = useState(isComponentVisible);\n const previousVisibility = useRef(isVisible);\n\n // On component visibility change.\n useEffect(() => {\n if (isComponentVisible) {\n setVisible(true);\n return undefined;\n }\n const { current: element } = ref;\n\n // Transition event is not supported or the user prefers reduced motion.\n // => Skip and set visibility to false directly.\n if (!element || !window.TransitionEvent || userHasReducedMotion()) {\n setVisible(false);\n return undefined;\n }\n\n const timer = setTimeout(() => setVisible(false), timeout);\n return () => clearTimeout(timer);\n }, [isComponentVisible, ref, timeout]);\n\n useEffect(() => {\n if (onVisibilityChange && previousVisibility.current !== isVisible) {\n onVisibilityChange(isVisible);\n previousVisibility.current = isVisible;\n }\n }, [isVisible, onVisibilityChange]);\n\n return isVisible || isComponentVisible;\n};\n"],"names":["userHasReducedMotion","window","matchMedia","matches","e","useTransitionVisibility","ref","isComponentVisible","timeout","onVisibilityChange","isVisible","setVisible","useState","previousVisibility","useRef","useEffect","undefined","current","element","TransitionEvent","timer","setTimeout","clearTimeout"],"mappings":";;AAAO,MAAMA,oBAAoB,GAAGA,MAAM;EACtC,IAAI;AACA,IAAA,OAAOC,MAAM,CAACC,UAAU,CAAC,kCAAkC,CAAC,CAACC,OAAO,CAAA;GACvE,CAAC,OAAOC,CAAC,EAAE;AACR,IAAA,OAAO,KAAK,CAAA;AAChB,GAAA;AACJ,CAAC;;ACHD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMC,uBAAuB,GAAGA,CACnCC,GAA2B,EAC3BC,kBAA2B,EAC3BC,OAAe,EACfC,kBAAiD,KAChD;EACD,MAAM,CAACC,SAAS,EAAEC,UAAU,CAAC,GAAGC,QAAQ,CAACL,kBAAkB,CAAC,CAAA;AAC5D,EAAA,MAAMM,kBAAkB,GAAGC,MAAM,CAACJ,SAAS,CAAC,CAAA;;AAE5C;AACAK,EAAAA,SAAS,CAAC,MAAM;AACZ,IAAA,IAAIR,kBAAkB,EAAE;MACpBI,UAAU,CAAC,IAAI,CAAC,CAAA;AAChB,MAAA,OAAOK,SAAS,CAAA;AACpB,KAAA;IACA,MAAM;AAAEC,MAAAA,OAAO,EAAEC,OAAAA;AAAQ,KAAC,GAAGZ,GAAG,CAAA;;AAEhC;AACA;IACA,IAAI,CAACY,OAAO,IAAI,CAACjB,MAAM,CAACkB,eAAe,IAAInB,oBAAoB,EAAE,EAAE;MAC/DW,UAAU,CAAC,KAAK,CAAC,CAAA;AACjB,MAAA,OAAOK,SAAS,CAAA;AACpB,KAAA;IAEA,MAAMI,KAAK,GAAGC,UAAU,CAAC,MAAMV,UAAU,CAAC,KAAK,CAAC,EAAEH,OAAO,CAAC,CAAA;AAC1D,IAAA,OAAO,MAAMc,YAAY,CAACF,KAAK,CAAC,CAAA;GACnC,EAAE,CAACb,kBAAkB,EAAED,GAAG,EAAEE,OAAO,CAAC,CAAC,CAAA;AAEtCO,EAAAA,SAAS,CAAC,MAAM;AACZ,IAAA,IAAIN,kBAAkB,IAAII,kBAAkB,CAACI,OAAO,KAAKP,SAAS,EAAE;MAChED,kBAAkB,CAACC,SAAS,CAAC,CAAA;MAC7BG,kBAAkB,CAACI,OAAO,GAAGP,SAAS,CAAA;AAC1C,KAAA;AACJ,GAAC,EAAE,CAACA,SAAS,EAAED,kBAAkB,CAAC,CAAC,CAAA;EAEnC,OAAOC,SAAS,IAAIH,kBAAkB,CAAA;AAC1C;;;;"}
|
|
@@ -1,15 +0,0 @@
|
|
|
1
|
-
import { WINDOW } from '@lumx/react/constants';
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Check if browser is IE
|
|
5
|
-
* @return Browser is IE or not
|
|
6
|
-
*/
|
|
7
|
-
export const isInternetExplorer = () => {
|
|
8
|
-
const userAgent = WINDOW?.navigator?.userAgent;
|
|
9
|
-
if (!userAgent) {
|
|
10
|
-
return false;
|
|
11
|
-
}
|
|
12
|
-
const msie = userAgent.indexOf('MSIE ');
|
|
13
|
-
const isIEVersion = !!userAgent.match(/Trident.*rv:11\./);
|
|
14
|
-
return msie > 0 || isIEVersion;
|
|
15
|
-
};
|
package/src/utils/utils.test.ts
DELETED
|
@@ -1,48 +0,0 @@
|
|
|
1
|
-
import partition from 'lodash/partition';
|
|
2
|
-
import { partitionMulti } from './partitionMulti';
|
|
3
|
-
import { isInternetExplorer } from './isInternetExplorer';
|
|
4
|
-
|
|
5
|
-
describe('partitionMulti', () => {
|
|
6
|
-
it('should act like partition for single predicate', () => {
|
|
7
|
-
const data = [0, 1, 2, 3, 4, 5];
|
|
8
|
-
const isEven = (n: number): boolean => n % 2 === 0;
|
|
9
|
-
|
|
10
|
-
const expected = partition(data, isEven);
|
|
11
|
-
const actual = partitionMulti(data, [isEven]);
|
|
12
|
-
|
|
13
|
-
expect(actual).toEqual(expected);
|
|
14
|
-
});
|
|
15
|
-
|
|
16
|
-
it('should partition on multiple predicates', () => {
|
|
17
|
-
type T = string | number | boolean;
|
|
18
|
-
const data: T[] = ['a', 1, 'b', false, true];
|
|
19
|
-
const isString = (s: T): boolean => typeof s === 'string';
|
|
20
|
-
const isNumber = (s: T): boolean => typeof s === 'number';
|
|
21
|
-
|
|
22
|
-
const [strings, numbers, others] = partitionMulti(data, [isString, isNumber]);
|
|
23
|
-
|
|
24
|
-
expect(strings).toEqual(['a', 'b']);
|
|
25
|
-
expect(numbers).toEqual([1]);
|
|
26
|
-
expect(others).toEqual([false, true]);
|
|
27
|
-
});
|
|
28
|
-
});
|
|
29
|
-
|
|
30
|
-
describe('isInternetExplorer', () => {
|
|
31
|
-
it('should detect IE 10', () => {
|
|
32
|
-
const userAgentIE10 = 'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0)';
|
|
33
|
-
Object.defineProperty(window.navigator, 'userAgent', { value: userAgentIE10, configurable: true });
|
|
34
|
-
expect(isInternetExplorer()).toEqual(true);
|
|
35
|
-
});
|
|
36
|
-
|
|
37
|
-
it('should detect IE 11', () => {
|
|
38
|
-
const userAgentIE11 = 'Mozilla/5.0 (Windows NT 10.0; Trident/7.0; rv:11.0) like Gecko';
|
|
39
|
-
Object.defineProperty(window.navigator, 'userAgent', { value: userAgentIE11, configurable: true });
|
|
40
|
-
expect(isInternetExplorer()).toEqual(true);
|
|
41
|
-
});
|
|
42
|
-
|
|
43
|
-
it('should not detect IE', () => {
|
|
44
|
-
const userAgentFirefox = 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:74.0) Gecko/20100101 Firefox/74.0';
|
|
45
|
-
Object.defineProperty(window.navigator, 'userAgent', { value: userAgentFirefox, configurable: true });
|
|
46
|
-
expect(isInternetExplorer()).toEqual(false);
|
|
47
|
-
});
|
|
48
|
-
});
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|