@koine/react 2.0.0-beta.2 → 2.0.0-beta.5
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/Alert/Alert.js +27 -12
- package/Alert/Alert.mjs +16 -8
- package/Alert/Alert.stories.js +36 -0
- package/Alert/Alert.stories.mjs +15 -0
- package/Alert/index.js +5 -3
- package/Animations/Reveal.js +48 -18
- package/Animations/Reveal.mjs +38 -14
- package/Animations/Underline.js +25 -7
- package/Animations/Underline.mjs +14 -4
- package/Animations/index.js +7 -5
- package/Animations/useReveal.js +51 -43
- package/Animations/useReveal.mjs +42 -40
- package/Autocomplete/AutocompleteDownshift.js +166 -160
- package/Autocomplete/AutocompleteDownshift.mjs +156 -157
- package/Autocomplete/AutocompleteDownshiftMultiselect.js +361 -355
- package/Autocomplete/AutocompleteDownshiftMultiselect.mjs +351 -352
- package/Autocomplete/AutocompleteMui.d.ts +1 -1
- package/Autocomplete/AutocompleteMui.js +111 -137
- package/Autocomplete/AutocompleteMui.mjs +98 -90
- package/Autocomplete/AutocompleteReach.js +120 -114
- package/Autocomplete/AutocompleteReach.mjs +110 -111
- package/Autocomplete/components.js +129 -34
- package/Autocomplete/components.mjs +76 -23
- package/Autocomplete/helpers.js +25 -25
- package/Autocomplete/helpers.mjs +11 -5
- package/Autocomplete/index.js +14 -6
- package/Autocomplete/index.mjs +4 -3
- package/Bg/BgColor.js +55 -21
- package/Bg/BgColor.mjs +32 -16
- package/Bg/BgPhoto.js +78 -18
- package/Bg/BgPhoto.mjs +65 -12
- package/Bg/BgSvg.js +27 -14
- package/Bg/BgSvg.mjs +16 -8
- package/Bg/index.js +7 -5
- package/Breadcrumbs/Breadcrumbs.d.ts +1 -1
- package/Breadcrumbs/Breadcrumbs.js +85 -26
- package/Breadcrumbs/Breadcrumbs.mjs +70 -19
- package/Breadcrumbs/index.js +5 -3
- package/Buttons/Button.js +105 -16
- package/Buttons/Button.mjs +73 -9
- package/Buttons/ButtonComposite.d.ts +1 -1
- package/Buttons/ButtonComposite.js +76 -25
- package/Buttons/ButtonComposite.mjs +66 -22
- package/Buttons/ButtonFab.js +26 -8
- package/Buttons/ButtonFab.mjs +6 -4
- package/Buttons/ButtonLink.d.ts +1 -1
- package/Buttons/ButtonLink.js +26 -13
- package/Buttons/ButtonLink.mjs +14 -8
- package/Buttons/IconButton.js +40 -9
- package/Buttons/IconButton.mjs +18 -6
- package/Buttons/index.js +9 -7
- package/Calendar/CalendarDaygridCell.d.ts +2 -2
- package/Calendar/CalendarDaygridCell.js +70 -49
- package/Calendar/CalendarDaygridCell.mjs +58 -43
- package/Calendar/CalendarDaygridNav.d.ts +1 -1
- package/Calendar/CalendarDaygridNav.js +41 -20
- package/Calendar/CalendarDaygridNav.mjs +28 -13
- package/Calendar/CalendarDaygridTable.d.ts +3 -3
- package/Calendar/CalendarDaygridTable.js +88 -39
- package/Calendar/CalendarDaygridTable.mjs +73 -31
- package/Calendar/CalendarLegend.d.ts +1 -1
- package/Calendar/CalendarLegend.js +17 -10
- package/Calendar/CalendarLegend.mjs +8 -7
- package/Calendar/calendar-api-google.d.ts +1 -1
- package/Calendar/calendar-api-google.js +90 -113
- package/Calendar/calendar-api-google.mjs +75 -105
- package/Calendar/index.js +10 -8
- package/Calendar/types.js +3 -1
- package/Calendar/types.mjs +1 -1
- package/Calendar/useCalendar.d.ts +2 -2
- package/Calendar/useCalendar.js +196 -148
- package/Calendar/useCalendar.mjs +184 -142
- package/Calendar/utils.js +152 -115
- package/Calendar/utils.mjs +101 -94
- package/Carousel/Carousel.js +386 -380
- package/Carousel/Carousel.mjs +377 -378
- package/Carousel/CarouselCss.d.ts +1 -1
- package/Carousel/CarouselCss.js +59 -23
- package/Carousel/CarouselCss.mjs +37 -17
- package/Carousel/index.js +5 -3
- package/Collapsable/Collapsable.js +10 -3
- package/Collapsable/Collapsable.mjs +1 -1
- package/Collapsable/CollapsableReach.js +2 -3
- package/Collapsable/CollapsableReach.mjs +1 -3
- package/Collapsable/index.js +6 -4
- package/Collapsable/index.mjs +1 -2
- package/Debug/Debug.js +29 -11
- package/Debug/Debug.mjs +18 -7
- package/Debug/index.js +5 -3
- package/Details/Details.d.ts +5 -5
- package/Details/Details.js +87 -44
- package/Details/Details.mjs +60 -41
- package/Details/Details.stories.js +38 -0
- package/Details/Details.stories.mjs +20 -0
- package/Details/index.js +5 -3
- package/Dialog/DialogMui.d.ts +7 -7
- package/Dialog/DialogMui.js +78 -31
- package/Dialog/DialogMui.mjs +38 -26
- package/Dialog/DialogMui.stories.js +37 -0
- package/Dialog/DialogMui.stories.mjs +19 -0
- package/Dialog/css/bare.d.ts +6 -6
- package/Dialog/css/bare.js +53 -22
- package/Dialog/css/bare.mjs +15 -17
- package/Dialog/css/index.stories.js +85 -0
- package/Dialog/css/index.stories.mjs +67 -0
- package/Dialog/index.js +10 -4
- package/Dialog/m/bare.d.ts +6 -6
- package/Dialog/m/bare.js +55 -30
- package/Dialog/m/bare.mjs +40 -22
- package/Dialog/m/basic.js +29 -14
- package/Dialog/m/basic.mjs +10 -10
- package/Dialog/m/index.js +13 -7
- package/Dialog/m/index.mjs +4 -4
- package/Dialog/sc/bare.d.ts +6 -6
- package/Dialog/sc/bare.js +79 -42
- package/Dialog/sc/bare.mjs +40 -29
- package/Dialog/sc/framer.d.ts +6 -6
- package/Dialog/sc/framer.js +24 -17
- package/Dialog/sc/framer.mjs +9 -9
- package/Dialog/sc/framerMaterial.d.ts +6 -6
- package/Dialog/sc/framerMaterial.js +24 -17
- package/Dialog/sc/framerMaterial.mjs +9 -9
- package/Dialog/sc/index.stories.js +74 -0
- package/Dialog/sc/index.stories.mjs +47 -0
- package/Dialog/sc/material.d.ts +6 -6
- package/Dialog/sc/material.js +76 -22
- package/Dialog/sc/material.mjs +37 -17
- package/Dialog/tw/bare.d.ts +6 -6
- package/Dialog/tw/bare.js +51 -41
- package/Dialog/tw/bare.mjs +15 -28
- package/Dialog/tw/elegant.d.ts +6 -6
- package/Dialog/tw/elegant.js +52 -21
- package/Dialog/tw/elegant.mjs +15 -17
- package/Dialog/tw/framer.d.ts +6 -6
- package/Dialog/tw/framer.js +24 -17
- package/Dialog/tw/framer.mjs +9 -9
- package/Dialog/tw/framerMaterial.d.ts +6 -6
- package/Dialog/tw/framerMaterial.js +24 -17
- package/Dialog/tw/framerMaterial.mjs +9 -9
- package/Dialog/tw/index.stories.js +112 -0
- package/Dialog/tw/index.stories.mjs +82 -0
- package/Dialog/tw/material.d.ts +6 -6
- package/Dialog/tw/material.js +52 -21
- package/Dialog/tw/material.mjs +15 -17
- package/Editor/Editor--tiptap.d.ts +1 -1
- package/Editor/Editor--tiptap.js +50 -24
- package/Editor/Editor--tiptap.mjs +31 -19
- package/Editor/components.js +58 -14
- package/Editor/components.mjs +26 -8
- package/Editor/index.js +5 -3
- package/FaviconTags.js +59 -0
- package/FaviconTags.mjs +50 -0
- package/Form/Form.js +100 -52
- package/Form/Form.mjs +64 -47
- package/Form/index.js +5 -3
- package/Form/sc/bare.js +53 -21
- package/Form/sc/bare.mjs +21 -12
- package/Forms/Checkbox/Checkbox.js +46 -19
- package/Forms/Checkbox/Checkbox.mjs +16 -12
- package/Forms/Checkbox/index.js +5 -3
- package/Forms/Feedback/Feedback.js +21 -11
- package/Forms/Feedback/Feedback.mjs +10 -7
- package/Forms/Feedback/index.js +5 -3
- package/Forms/Field/Field.js +55 -21
- package/Forms/Field/Field.mjs +30 -17
- package/Forms/Field/FieldControl.js +41 -37
- package/Forms/Field/FieldControl.mjs +26 -20
- package/Forms/Field/FieldHint.js +16 -6
- package/Forms/Field/FieldHint.mjs +5 -3
- package/Forms/Field/index.js +6 -4
- package/Forms/Input/Input.js +56 -17
- package/Forms/Input/Input.mjs +22 -11
- package/Forms/Input/index.js +5 -3
- package/Forms/InputGroup/InputGroup.js +73 -17
- package/Forms/InputGroup/InputGroup.mjs +43 -11
- package/Forms/InputGroup/index.js +5 -3
- package/Forms/Label/Label.js +45 -8
- package/Forms/Label/Label.mjs +23 -5
- package/Forms/Label/index.js +5 -3
- package/Forms/Password/Password.js +56 -18
- package/Forms/Password/Password.mjs +35 -13
- package/Forms/Password/index.js +5 -3
- package/Forms/Radio/Radio.js +46 -25
- package/Forms/Radio/Radio.mjs +32 -19
- package/Forms/Radio/index.js +5 -3
- package/Forms/Switch/Switch.js +66 -21
- package/Forms/Switch/Switch.mjs +41 -13
- package/Forms/Switch/index.js +5 -3
- package/Forms/Textarea/Textarea.js +35 -13
- package/Forms/Textarea/Textarea.mjs +13 -7
- package/Forms/Textarea/TextareaRich.js +48 -29
- package/Forms/Textarea/TextareaRich.mjs +34 -22
- package/Forms/Textarea/index.js +6 -4
- package/Forms/Toggle/Toggle-tailwind.js +1 -1
- package/Forms/Toggle/Toggle-tailwind.mjs +0 -1
- package/Forms/Toggle/Toggle.js +149 -29
- package/Forms/Toggle/Toggle.mjs +95 -22
- package/Forms/Toggle/index.js +5 -3
- package/Forms/Toggle/useToggle-tailwind.js +1 -1
- package/Forms/Toggle/useToggle-tailwind.mjs +0 -1
- package/Forms/Toggle/useToggle.js +91 -101
- package/Forms/Toggle/useToggle.mjs +80 -68
- package/Forms/antispam.js +38 -45
- package/Forms/antispam.mjs +19 -21
- package/Forms/helpers.js +49 -31
- package/Forms/helpers.mjs +25 -19
- package/Forms/index.js +18 -18
- package/Forms/styles.js +90 -29
- package/Forms/styles.mjs +50 -19
- package/Gauge/Gauge.js +109 -104
- package/Gauge/Gauge.mjs +99 -100
- package/Grid/Grid.d.ts +4 -3
- package/Grid/Grid.js +84 -34
- package/Grid/Grid.mjs +54 -32
- package/Grid/index.js +5 -3
- package/Hamburger/Hamburger.js +68 -41
- package/Hamburger/Hamburger.mjs +58 -38
- package/Hamburger/index.js +5 -3
- package/Header/index.js +5 -3
- package/Header/useHeader.js +44 -25
- package/Header/useHeader.mjs +23 -18
- package/Hidden/Hidden.js +19 -11
- package/Hidden/Hidden.mjs +9 -9
- package/Hidden/index.js +5 -3
- package/Img/index.js +5 -3
- package/Img/sc/bare.js +42 -41
- package/Img/sc/bare.mjs +31 -34
- package/Img/types.js +5 -1
- package/Img/types.mjs +1 -1
- package/Link/Link.js +12 -6
- package/Link/Link.mjs +1 -3
- package/Link/LinkBlank.js +42 -18
- package/Link/LinkBlank.mjs +19 -11
- package/Link/index.js +6 -4
- package/Menu/Menu.js +21 -6
- package/Menu/Menu.mjs +10 -3
- package/Menu/MenuMui.js +2 -2
- package/Menu/MenuMui.mjs +1 -2
- package/Menu/index.js +5 -3
- package/MenuItem/MenuItem.js +30 -6
- package/MenuItem/MenuItem.mjs +19 -3
- package/MenuItem/MenuItemMui.js +1 -1
- package/MenuItem/MenuItemMui.mjs +0 -1
- package/MenuItem/index.js +5 -3
- package/MenuItem/useMenuItem.js +65 -33
- package/MenuItem/useMenuItem.mjs +45 -27
- package/Meta/Meta.js +23 -8
- package/Meta/Meta.mjs +5 -4
- package/Meta/index.js +11 -6
- package/NoJs/NoJs.js +25 -9
- package/NoJs/NoJs.mjs +7 -5
- package/NoJs/index.js +11 -6
- package/Pagination/PaginationNav.d.ts +1 -1
- package/Pagination/PaginationNav.js +86 -44
- package/Pagination/PaginationNav.mjs +72 -30
- package/Pagination/PaginationResults.js +38 -13
- package/Pagination/PaginationResults.mjs +27 -9
- package/Pagination/index.js +6 -4
- package/Pill/Pill.js +61 -9
- package/Pill/Pill.mjs +36 -6
- package/Pill/index.js +5 -3
- package/Progress/ProgressCircular.js +58 -17
- package/Progress/ProgressCircular.mjs +47 -11
- package/Progress/ProgressLinear.js +49 -26
- package/Progress/ProgressLinear.mjs +38 -20
- package/Progress/ProgressOverlay.js +65 -24
- package/Progress/ProgressOverlay.mjs +51 -17
- package/Progress/index.js +7 -5
- package/Rating/Rating.js +128 -41
- package/Rating/Rating.mjs +93 -35
- package/Rating/index.js +61 -33
- package/Rating/index.mjs +37 -24
- package/Select/SelectDownshift.js +46 -40
- package/Select/SelectDownshift.mjs +37 -38
- package/Select/components.js +40 -13
- package/Select/components.mjs +20 -9
- package/Select/index.js +12 -6
- package/Select/index.mjs +2 -3
- package/Sidebar/Sidebar.js +61 -23
- package/Sidebar/Sidebar.mjs +48 -17
- package/Sidebar/index.js +5 -3
- package/Spacing/Spacing.d.ts +1 -1
- package/Spacing/Spacing.js +36 -33
- package/Spacing/Spacing.mjs +24 -17
- package/Spacing/index.js +5 -3
- package/Sticky/Sticky.js +227 -221
- package/Sticky/Sticky.mjs +218 -219
- package/Sticky/StickyCss.js +17 -8
- package/Sticky/StickyCss.mjs +8 -5
- package/Sticky/index.js +18 -4
- package/Sticky/index.mjs +1 -1
- package/Tabs/TabsMui.d.ts +8 -8
- package/Tabs/TabsMui.js +64 -34
- package/Tabs/TabsMui.mjs +31 -28
- package/Tabs/TabsMui.stories.js +37 -0
- package/Tabs/TabsMui.stories.mjs +19 -0
- package/Tabs/index.js +5 -3
- package/Tabs/sc/bare.js +2 -3
- package/Tabs/sc/bare.mjs +1 -3
- package/Tabs/sc/index.stories.js +1 -0
- package/Tabs/sc/index.stories.mjs +0 -0
- package/Tabs/tw/bare.d.ts +6 -6
- package/Tabs/tw/bare.js +43 -18
- package/Tabs/tw/bare.mjs +11 -13
- package/Tabs/tw/index.stories.js +45 -0
- package/Tabs/tw/index.stories.mjs +24 -0
- package/Tabs/tw/material.d.ts +6 -6
- package/Tabs/tw/material.js +41 -18
- package/Tabs/tw/material.mjs +11 -15
- package/Tabs/useTabs.js +44 -25
- package/Tabs/useTabs.mjs +24 -21
- package/Typography/CopyPasteVisible.js +16 -6
- package/Typography/CopyPasteVisible.mjs +5 -3
- package/Typography/Native.js +89 -16
- package/Typography/Native.mjs +45 -12
- package/Typography/ReadMore.js +99 -36
- package/Typography/ReadMore.mjs +86 -30
- package/Typography/TextLoop.js +94 -45
- package/Typography/TextLoop.mjs +76 -40
- package/Typography/TypeStairs.js +43 -32
- package/Typography/TypeStairs.mjs +33 -29
- package/Typography/index.js +9 -7
- package/css/index.js +32 -35
- package/css/index.mjs +20 -21
- package/helpers/classed.js +39 -51
- package/helpers/classed.mjs +21 -30
- package/helpers/classed.stories.js +122 -0
- package/helpers/classed.stories.mjs +103 -0
- package/helpers/createUseMediaQueryWidth.js +163 -153
- package/helpers/createUseMediaQueryWidth.mjs +140 -140
- package/helpers/extend-component.js +26 -11
- package/helpers/extend-component.mjs +7 -7
- package/helpers/index.js +8 -6
- package/helpers/mergeRefs.js +21 -8
- package/helpers/mergeRefs.mjs +3 -4
- package/hooks/index.js +91 -43
- package/hooks/index.mjs +3 -3
- package/hooks/types.js +6 -2
- package/hooks/types.mjs +3 -1
- package/hooks/useAsyncFn.js +48 -33
- package/hooks/useAsyncFn.mjs +28 -26
- package/hooks/useDateLocale.js +42 -32
- package/hooks/useDateLocale.mjs +22 -22
- package/hooks/useFirstMountState.js +20 -9
- package/hooks/useFirstMountState.mjs +2 -3
- package/hooks/useFixedOffset.js +45 -40
- package/hooks/useFixedOffset.mjs +23 -24
- package/hooks/useFocus.js +26 -12
- package/hooks/useFocus.mjs +7 -5
- package/hooks/useInterval.js +37 -25
- package/hooks/useInterval.mjs +15 -14
- package/hooks/useIsomorphicLayoutEffect.js +22 -12
- package/hooks/useIsomorphicLayoutEffect.mjs +1 -4
- package/hooks/useKeyUp.js +30 -17
- package/hooks/useKeyUp.mjs +9 -11
- package/hooks/useMeasure.js +98 -80
- package/hooks/useMeasure.mjs +74 -67
- package/hooks/useMountedState.js +23 -12
- package/hooks/useMountedState.mjs +5 -6
- package/hooks/useNavigateAway.js +47 -51
- package/hooks/useNavigateAway.mjs +26 -25
- package/hooks/usePrevious.js +27 -10
- package/hooks/usePrevious.mjs +9 -4
- package/hooks/usePreviousRef.js +21 -7
- package/hooks/usePreviousRef.mjs +2 -2
- package/hooks/useScrollPosition.js +53 -43
- package/hooks/useScrollPosition.mjs +28 -26
- package/hooks/useScrollThreshold.js +41 -22
- package/hooks/useScrollThreshold.mjs +18 -13
- package/hooks/useScrollTo.js +28 -16
- package/hooks/useScrollTo.mjs +6 -8
- package/hooks/useSmoothScroll.js +39 -34
- package/hooks/useSmoothScroll.mjs +12 -16
- package/hooks/useSpinDelay.js +42 -37
- package/hooks/useSpinDelay.mjs +24 -22
- package/hooks/useTraceUpdate.js +26 -13
- package/hooks/useTraceUpdate.mjs +8 -7
- package/hooks/useUpdateEffect.js +24 -13
- package/hooks/useUpdateEffect.mjs +4 -5
- package/hooks/useWindowSize.js +34 -25
- package/hooks/useWindowSize.mjs +13 -10
- package/index.js +9 -7
- package/index.mjs +4 -5
- package/m/MotionProvider.js +23 -41
- package/m/MotionProvider.mjs +4 -5
- package/m/index.js +6 -5
- package/m/index.mjs +1 -2
- package/m/lite.js +11 -3
- package/m/max.js +11 -3
- package/package.json +16 -13
- package/sc/index.js +48 -36
- package/scm/index.js +39 -35
- package/shared/index.js +12 -10
- package/shared/index.mjs +35 -0
- package/styles/Body.js +27 -15
- package/styles/Body.mjs +8 -5
- package/styles/Global.js +54 -20
- package/styles/Global.mjs +36 -5
- package/styles/index.js +141 -40
- package/styles/index.mjs +5 -5
- package/styles/media.js +98 -120
- package/styles/media.mjs +63 -68
- package/styles/spacing.js +49 -31
- package/styles/spacing.mjs +26 -25
- package/styles/styled.js +56 -15
- package/styles/styled.mjs +23 -10
- package/styles/theme--vanilla.js +58 -42
- package/styles/theme--vanilla.mjs +25 -20
- package/styles/theme.js +38 -34
- package/styles/theme.mjs +16 -19
- package/tw/index.js +32 -35
- package/tw/index.mjs +20 -21
- package/twm/index.js +32 -35
- package/twm/index.mjs +20 -21
- package/types.js +3 -1
- package/types.mjs +1 -1
- package/typings.d.ts +1 -0
- package/Alert/package.json +0 -6
- package/Animations/package.json +0 -6
- package/Autocomplete/package.json +0 -6
- package/Bg/package.json +0 -6
- package/Breadcrumbs/package.json +0 -6
- package/Buttons/package.json +0 -6
- package/Calendar/package.json +0 -6
- package/Carousel/package.json +0 -6
- package/Collapsable/package.json +0 -6
- package/Debug/package.json +0 -6
- package/Details/package.json +0 -6
- package/Dialog/m/package.json +0 -6
- package/Dialog/package.json +0 -6
- package/Editor/package.json +0 -6
- package/FaviconTags/FaviconTags.js +0 -20
- package/FaviconTags/FaviconTags.mjs +0 -16
- package/FaviconTags/index.d.ts +0 -2
- package/FaviconTags/index.js +0 -7
- package/FaviconTags/index.mjs +0 -2
- package/FaviconTags/package.json +0 -6
- package/Form/package.json +0 -6
- package/Forms/Checkbox/package.json +0 -6
- package/Forms/Feedback/package.json +0 -6
- package/Forms/Field/package.json +0 -6
- package/Forms/Input/package.json +0 -6
- package/Forms/InputGroup/package.json +0 -6
- package/Forms/Label/package.json +0 -6
- package/Forms/Password/package.json +0 -6
- package/Forms/Radio/package.json +0 -6
- package/Forms/Switch/package.json +0 -6
- package/Forms/Textarea/package.json +0 -6
- package/Forms/Toggle/package.json +0 -6
- package/Forms/package.json +0 -6
- package/Grid/package.json +0 -6
- package/Hamburger/package.json +0 -6
- package/Header/package.json +0 -6
- package/Hidden/package.json +0 -6
- package/Img/package.json +0 -6
- package/Link/package.json +0 -6
- package/Menu/package.json +0 -6
- package/MenuItem/package.json +0 -6
- package/Meta/package.json +0 -6
- package/NoJs/package.json +0 -6
- package/Pagination/package.json +0 -6
- package/Pill/package.json +0 -6
- package/Progress/package.json +0 -6
- package/Rating/package.json +0 -6
- package/Select/package.json +0 -6
- package/Sidebar/package.json +0 -6
- package/Spacing/package.json +0 -6
- package/Sticky/package.json +0 -6
- package/Tabs/package.json +0 -6
- package/Typography/package.json +0 -6
- package/css/package.json +0 -6
- package/helpers/package.json +0 -6
- package/hooks/package.json +0 -6
- package/m/package.json +0 -6
- package/sc/package.json +0 -6
- package/scm/package.json +0 -6
- package/shared/package.json +0 -6
- package/styles/package.json +0 -6
- package/tw/package.json +0 -6
- package/twm/package.json +0 -6
- /package/{FaviconTags/FaviconTags.d.ts → FaviconTags.d.ts} +0 -0
package/Calendar/utils.mjs
CHANGED
|
@@ -1,41 +1,39 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
1
|
+
import addDays from "date-fns/addDays";
|
|
2
|
+
import addMonths from "date-fns/addMonths";
|
|
3
|
+
import addWeeks from "date-fns/addWeeks";
|
|
3
4
|
import endOfMonth from "date-fns/endOfMonth";
|
|
4
|
-
import startOfWeek from "date-fns/startOfWeek";
|
|
5
5
|
import endOfWeek from "date-fns/endOfWeek";
|
|
6
|
+
import isWithinInterval from "date-fns/isWithinInterval";
|
|
7
|
+
import startOfWeek from "date-fns/startOfWeek";
|
|
6
8
|
import subMonths from "date-fns/subMonths";
|
|
7
|
-
import addMonths from "date-fns/addMonths";
|
|
8
9
|
import subWeeks from "date-fns/subWeeks";
|
|
9
|
-
import addWeeks from "date-fns/addWeeks";
|
|
10
|
-
import addDays from "date-fns/addDays";
|
|
11
10
|
export function getEventTimestamp(dateLike) {
|
|
12
|
-
|
|
11
|
+
const date = new Date(dateLike);
|
|
13
12
|
date.setHours(0, 0, 0, 0);
|
|
14
13
|
return date.valueOf() / 1000;
|
|
15
14
|
}
|
|
16
15
|
export function getDisplayTime(date) {
|
|
17
|
-
return
|
|
18
|
-
":" +
|
|
19
|
-
"0".repeat(2 - date.getMinutes().toString().length) +
|
|
20
|
-
date.getMinutes());
|
|
16
|
+
return date.getHours() + ":" + "0".repeat(2 - date.getMinutes().toString().length) + date.getMinutes();
|
|
21
17
|
}
|
|
22
18
|
export function getStartDate(date, view) {
|
|
23
19
|
date.setHours(0, 0, 0);
|
|
24
20
|
if (view === "month") {
|
|
25
21
|
date.setDate(1);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
|
|
22
|
+
} else if (view === "week") {
|
|
23
|
+
date = startOfWeek(date, {
|
|
24
|
+
weekStartsOn: 1
|
|
25
|
+
});
|
|
29
26
|
}
|
|
30
27
|
return date;
|
|
31
28
|
}
|
|
32
29
|
export function getEndDate(start, view) {
|
|
33
|
-
|
|
30
|
+
let end = start;
|
|
34
31
|
if (view === "month") {
|
|
35
32
|
end = endOfMonth(start);
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
|
|
33
|
+
} else if (view === "week") {
|
|
34
|
+
end = endOfWeek(start, {
|
|
35
|
+
weekStartsOn: 1
|
|
36
|
+
});
|
|
39
37
|
}
|
|
40
38
|
end.setHours(23, 59, 59);
|
|
41
39
|
return end;
|
|
@@ -53,150 +51,159 @@ export function getNextDate(date, view) {
|
|
|
53
51
|
return addWeeks(date, 1);
|
|
54
52
|
}
|
|
55
53
|
export function isTodayInView(start, end) {
|
|
56
|
-
return isWithinInterval(new Date(), {
|
|
54
|
+
return isWithinInterval(new Date(), {
|
|
55
|
+
start,
|
|
56
|
+
end
|
|
57
|
+
});
|
|
57
58
|
}
|
|
58
59
|
export function mergeCalendarEvents(first, second) {
|
|
59
|
-
|
|
60
|
+
const all = {};
|
|
60
61
|
addCalendarEvents(first, all);
|
|
61
62
|
addCalendarEvents(second, all);
|
|
62
63
|
return all;
|
|
63
64
|
}
|
|
64
65
|
export function addCalendarEvents(toAdd, toExtend) {
|
|
65
|
-
for
|
|
66
|
-
|
|
67
|
-
toExtend[id] =
|
|
66
|
+
for(const id in toAdd){
|
|
67
|
+
const event = toAdd[id];
|
|
68
|
+
toExtend[id] = event;
|
|
68
69
|
}
|
|
69
70
|
return toExtend;
|
|
70
71
|
}
|
|
71
72
|
function getEventsByTimestamp(events) {
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
output[timestamp] =
|
|
77
|
-
output[timestamp][uid] =
|
|
73
|
+
const output = {};
|
|
74
|
+
for(const uid in events){
|
|
75
|
+
const event = events[uid];
|
|
76
|
+
event.days.forEach((timestamp)=>{
|
|
77
|
+
output[timestamp] = output[timestamp] || {};
|
|
78
|
+
output[timestamp][uid] = event;
|
|
78
79
|
});
|
|
79
|
-
};
|
|
80
|
-
for (var uid in events) {
|
|
81
|
-
_loop_1(uid);
|
|
82
80
|
}
|
|
83
81
|
return output;
|
|
84
82
|
}
|
|
85
83
|
function getSortedEvents(events) {
|
|
86
|
-
|
|
87
|
-
for
|
|
84
|
+
const output = [];
|
|
85
|
+
for(const uid in events){
|
|
88
86
|
output.push(events[uid]);
|
|
89
87
|
}
|
|
90
88
|
// sort events first multi, then all day then by start then by created date
|
|
91
|
-
output.sort(
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
89
|
+
output.sort((a, b)=>{
|
|
90
|
+
const multi = Number(b.multi) - Number(a.multi);
|
|
91
|
+
const allDay = Number(b.allDay) - Number(a.allDay);
|
|
92
|
+
const start = a.start.getTime() - b.start.getTime();
|
|
93
|
+
const created = a.created.getTime() - b.created.getTime();
|
|
96
94
|
return multi || allDay || start || created;
|
|
97
95
|
});
|
|
98
96
|
return output;
|
|
99
97
|
}
|
|
100
|
-
|
|
101
|
-
|
|
98
|
+
const FREE_SLOT = 0;
|
|
99
|
+
const BUSY_SLOT = 1;
|
|
102
100
|
export function processEventsInView(eventsMap, calendarView, month, weeks) {
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
props: {
|
|
112
|
-
|
|
101
|
+
const eventsByTimestamp = getEventsByTimestamp(eventsMap);
|
|
102
|
+
const eventsList = getSortedEvents(eventsMap);
|
|
103
|
+
const todayDate = new Date();
|
|
104
|
+
const todayTimestamp = getEventTimestamp(todayDate);
|
|
105
|
+
const startedAtTopMap = {};
|
|
106
|
+
const viewWeeks = [];
|
|
107
|
+
for(let weekIdx = 0; weekIdx < weeks.length; weekIdx++){
|
|
108
|
+
const viewWeek = {
|
|
109
|
+
props: {
|
|
110
|
+
key: `week.${weekIdx}`
|
|
111
|
+
},
|
|
112
|
+
days: []
|
|
113
113
|
};
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
for
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
$isToday
|
|
125
|
-
$isOutOfRange
|
|
114
|
+
const weekStartDate = weeks[weekIdx];
|
|
115
|
+
const weekStartDay = weekStartDate.getDate();
|
|
116
|
+
const weekStartTimestamp = getEventTimestamp(new Date(weekStartDate));
|
|
117
|
+
const weekEndTimestamp = getEventTimestamp(addDays(new Date(weekStartDate), 6));
|
|
118
|
+
for(let dayNumber = 0; dayNumber < 7; dayNumber++){
|
|
119
|
+
const dayDate = new Date(new Date(weekStartDate).setDate(weekStartDay + dayNumber));
|
|
120
|
+
const dayTimestamp = getEventTimestamp(dayDate);
|
|
121
|
+
const $isToday = todayTimestamp === dayTimestamp;
|
|
122
|
+
const $isOutOfRange = calendarView === "month" && dayDate.getMonth() !== month;
|
|
123
|
+
const contextualProps = {
|
|
124
|
+
$isToday,
|
|
125
|
+
$isOutOfRange
|
|
126
126
|
};
|
|
127
|
-
|
|
128
|
-
props:
|
|
127
|
+
const viewDay = {
|
|
128
|
+
props: {
|
|
129
|
+
key: `day.${dayTimestamp}`,
|
|
130
|
+
...contextualProps
|
|
131
|
+
},
|
|
129
132
|
timestamp: dayTimestamp + "",
|
|
130
133
|
label: dayDate.getDate() + "",
|
|
131
|
-
events: []
|
|
134
|
+
events: []
|
|
132
135
|
};
|
|
133
136
|
// check that we have events in this day
|
|
134
|
-
if (eventsByTimestamp
|
|
135
|
-
|
|
136
|
-
for
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
if (!
|
|
137
|
+
if (eventsByTimestamp?.[dayTimestamp]) {
|
|
138
|
+
const verticalSlots = Object.keys(eventsByTimestamp[dayTimestamp]).map(()=>FREE_SLOT);
|
|
139
|
+
for(let eventIdx = 0; eventIdx < eventsList.length; eventIdx++){
|
|
140
|
+
const event = eventsList[eventIdx];
|
|
141
|
+
let width = 1;
|
|
142
|
+
let top = 0;
|
|
143
|
+
let firstOfMulti;
|
|
144
|
+
if (!event.daysMap[dayTimestamp]) {
|
|
142
145
|
continue;
|
|
143
146
|
}
|
|
144
147
|
// only for multi days events:
|
|
145
|
-
if (
|
|
148
|
+
if (event.multi) {
|
|
146
149
|
// filter out the days outside of the current week view to avoid
|
|
147
150
|
// making a multi-days event chip wider than the week row or shorter
|
|
148
151
|
// than it should be (when event spans across weeks)
|
|
149
|
-
width =
|
|
152
|
+
width = event.days.filter((t)=>t >= weekStartTimestamp && t <= weekEndTimestamp).length;
|
|
150
153
|
// flag the first day of multi-days events, consider that an event
|
|
151
154
|
// might start in a day earlier (hence outside) of the current
|
|
152
155
|
// week/month view, so we always check for Mondays (dayNumber === 0)
|
|
153
|
-
if (
|
|
156
|
+
if (event.days.indexOf(dayTimestamp) === 0 || dayNumber === 0) {
|
|
154
157
|
firstOfMulti = true;
|
|
155
158
|
}
|
|
156
159
|
}
|
|
157
160
|
// if we already have the information on when the event has been
|
|
158
161
|
// vertically positioned use that index
|
|
159
|
-
if (startedAtTopMap[
|
|
160
|
-
|
|
161
|
-
}
|
|
162
|
-
else {
|
|
162
|
+
if (startedAtTopMap[event.uid]) {
|
|
163
|
+
top = startedAtTopMap[event.uid];
|
|
164
|
+
} else {
|
|
163
165
|
// now look for a free slot and use its index as `top`
|
|
164
|
-
for
|
|
165
|
-
|
|
166
|
+
for(let verticalIdx = 0; verticalIdx < verticalSlots.length; verticalIdx++){
|
|
167
|
+
const freeOrBusy = verticalSlots[verticalIdx];
|
|
166
168
|
if (freeOrBusy !== BUSY_SLOT) {
|
|
167
|
-
|
|
169
|
+
top = verticalIdx;
|
|
168
170
|
break;
|
|
169
171
|
}
|
|
170
172
|
}
|
|
171
173
|
}
|
|
172
174
|
// now mark the slot as busy
|
|
173
|
-
verticalSlots[
|
|
175
|
+
verticalSlots[top] = BUSY_SLOT;
|
|
174
176
|
// store the slot vertical position consistently for multi-days events
|
|
175
177
|
if (firstOfMulti) {
|
|
176
|
-
startedAtTopMap[
|
|
178
|
+
startedAtTopMap[event.uid] = top;
|
|
177
179
|
}
|
|
178
180
|
// push the event, they will be sorted later
|
|
179
|
-
viewDay.events.push(
|
|
181
|
+
viewDay.events.push({
|
|
182
|
+
key: `event.${dayTimestamp}-${top}`,
|
|
183
|
+
...contextualProps,
|
|
184
|
+
...event,
|
|
185
|
+
isPast: todayDate > event.end,
|
|
186
|
+
firstOfMulti,
|
|
187
|
+
top,
|
|
188
|
+
width
|
|
189
|
+
});
|
|
180
190
|
}
|
|
181
191
|
// fill the empty slots with events' placeholders
|
|
182
|
-
for
|
|
192
|
+
for(let i = 0; i < verticalSlots.length; i++){
|
|
183
193
|
if (verticalSlots[i] !== BUSY_SLOT) {
|
|
184
194
|
viewDay.events.push({
|
|
185
|
-
key:
|
|
195
|
+
key: `event.${dayTimestamp}-${i}}`,
|
|
186
196
|
placeholder: true,
|
|
187
|
-
top: i
|
|
197
|
+
top: i
|
|
188
198
|
});
|
|
189
199
|
}
|
|
190
200
|
}
|
|
191
201
|
// sort events and events placeholders by top position
|
|
192
|
-
viewDay.events.sort(
|
|
202
|
+
viewDay.events.sort((a, b)=>a.top - b.top);
|
|
193
203
|
}
|
|
194
204
|
viewWeek.days.push(viewDay);
|
|
195
205
|
}
|
|
196
206
|
viewWeeks.push(viewWeek);
|
|
197
|
-
};
|
|
198
|
-
for (var weekIdx = 0; weekIdx < weeks.length; weekIdx++) {
|
|
199
|
-
_loop_2(weekIdx);
|
|
200
207
|
}
|
|
201
208
|
return viewWeeks;
|
|
202
209
|
}
|