@veracity/vui 2.14.0-beta.0 → 2.14.0
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/dist/cjs/calendar/calendar.d.ts +5 -0
- package/dist/cjs/calendar/calendar.d.ts.map +1 -0
- package/dist/cjs/calendar/calendar.js +130 -0
- package/dist/cjs/calendar/calendar.styles.d.ts +14 -0
- package/dist/cjs/calendar/calendar.styles.d.ts.map +1 -0
- package/dist/cjs/calendar/calendar.styles.js +71 -0
- package/dist/cjs/calendar/calendar.types.d.ts +81 -0
- package/dist/cjs/calendar/calendar.types.d.ts.map +1 -0
- package/dist/cjs/calendar/calendar.types.js +2 -0
- package/dist/cjs/calendar/components/calendarHeader.d.ts +16 -0
- package/dist/cjs/calendar/components/calendarHeader.d.ts.map +1 -0
- package/dist/cjs/calendar/components/calendarHeader.js +22 -0
- package/dist/cjs/calendar/components/dayPicker.d.ts +9 -0
- package/dist/cjs/calendar/components/dayPicker.d.ts.map +1 -0
- package/dist/cjs/calendar/components/dayPicker.js +29 -0
- package/dist/cjs/calendar/components/index.d.ts +6 -0
- package/dist/cjs/calendar/components/index.d.ts.map +1 -0
- package/dist/cjs/calendar/components/index.js +21 -0
- package/dist/cjs/calendar/components/monthPicker.d.ts +9 -0
- package/dist/cjs/calendar/components/monthPicker.d.ts.map +1 -0
- package/dist/cjs/calendar/components/monthPicker.js +12 -0
- package/dist/cjs/calendar/components/timeUnitHeader.d.ts +13 -0
- package/dist/cjs/calendar/components/timeUnitHeader.d.ts.map +1 -0
- package/dist/cjs/calendar/components/timeUnitHeader.js +26 -0
- package/dist/cjs/calendar/components/yearPicker.d.ts +9 -0
- package/dist/cjs/calendar/components/yearPicker.d.ts.map +1 -0
- package/dist/cjs/calendar/components/yearPicker.js +10 -0
- package/dist/cjs/calendar/consts.d.ts +7 -0
- package/dist/cjs/calendar/consts.d.ts.map +1 -0
- package/dist/cjs/calendar/consts.js +22 -0
- package/dist/cjs/calendar/hooks/index.d.ts +5 -0
- package/dist/cjs/calendar/hooks/index.d.ts.map +1 -0
- package/dist/cjs/calendar/hooks/index.js +20 -0
- package/dist/cjs/calendar/hooks/useBoundaries.d.ts +12 -0
- package/dist/cjs/calendar/hooks/useBoundaries.d.ts.map +1 -0
- package/dist/cjs/calendar/hooks/useBoundaries.js +16 -0
- package/dist/cjs/calendar/hooks/useCalendar.d.ts +8 -0
- package/dist/cjs/calendar/hooks/useCalendar.d.ts.map +1 -0
- package/dist/cjs/calendar/hooks/useCalendar.js +143 -0
- package/dist/cjs/calendar/hooks/useDefaultViewMonth.d.ts +8 -0
- package/dist/cjs/calendar/hooks/useDefaultViewMonth.d.ts.map +1 -0
- package/dist/cjs/calendar/hooks/useDefaultViewMonth.js +21 -0
- package/dist/cjs/calendar/hooks/useSelectedDate.d.ts +15 -0
- package/dist/cjs/calendar/hooks/useSelectedDate.d.ts.map +1 -0
- package/dist/cjs/calendar/hooks/useSelectedDate.js +20 -0
- package/dist/cjs/calendar/index.d.ts +5 -0
- package/dist/cjs/calendar/index.d.ts.map +1 -0
- package/dist/cjs/calendar/index.js +25 -0
- package/dist/cjs/calendar/theme.d.ts +8 -0
- package/dist/cjs/calendar/theme.d.ts.map +1 -0
- package/dist/cjs/calendar/theme.js +12 -0
- package/dist/cjs/calendar/utils.d.ts +26 -0
- package/dist/cjs/calendar/utils.d.ts.map +1 -0
- package/dist/cjs/calendar/utils.js +95 -0
- package/dist/cjs/core/theme.d.ts.map +1 -1
- package/dist/cjs/core/theme.js +2 -4
- package/dist/cjs/datePicker/components/pickerPanel.d.ts +6 -0
- package/dist/cjs/datePicker/components/pickerPanel.d.ts.map +1 -0
- package/dist/cjs/datePicker/components/pickerPanel.js +25 -0
- package/dist/cjs/datePicker/dateInput.d.ts +11 -0
- package/dist/cjs/datePicker/dateInput.d.ts.map +1 -0
- package/dist/cjs/datePicker/dateInput.js +92 -0
- package/dist/cjs/datePicker/datePicker.d.ts +5 -0
- package/dist/cjs/datePicker/datePicker.d.ts.map +1 -0
- package/dist/cjs/datePicker/datePicker.js +138 -0
- package/dist/cjs/datePicker/datePicker.types.d.ts +22 -0
- package/dist/cjs/datePicker/datePicker.types.d.ts.map +1 -0
- package/dist/cjs/datePicker/datePicker.types.js +2 -0
- package/dist/cjs/datePicker/index.d.ts +4 -0
- package/dist/cjs/datePicker/index.d.ts.map +1 -0
- package/dist/cjs/datePicker/index.js +24 -0
- package/dist/cjs/datePicker/theme.d.ts +8 -0
- package/dist/cjs/datePicker/theme.d.ts.map +1 -0
- package/dist/cjs/datePicker/theme.js +12 -0
- package/dist/cjs/footer/footer.js +1 -1
- package/dist/cjs/header/loggedInHeader.d.ts.map +1 -1
- package/dist/cjs/icons/baseIcons/conc/conAnalytics.d.ts +4 -0
- package/dist/cjs/icons/baseIcons/conc/conAnalytics.d.ts.map +1 -0
- package/dist/cjs/icons/baseIcons/conc/conAnalytics.js +8 -0
- package/dist/cjs/icons/baseIcons/conc/conCircularEconomy.d.ts +4 -0
- package/dist/cjs/icons/baseIcons/conc/conCircularEconomy.d.ts.map +1 -0
- package/dist/cjs/icons/baseIcons/conc/conCircularEconomy.js +8 -0
- package/dist/cjs/icons/baseIcons/conc/conCleanAir.d.ts +4 -0
- package/dist/cjs/icons/baseIcons/conc/conCleanAir.d.ts.map +1 -0
- package/dist/cjs/icons/baseIcons/conc/conCleanAir.js +7 -0
- package/dist/cjs/icons/baseIcons/conc/conCleanWater.d.ts +4 -0
- package/dist/cjs/icons/baseIcons/conc/conCleanWater.d.ts.map +1 -0
- package/dist/cjs/icons/baseIcons/conc/conCleanWater.js +7 -0
- package/dist/cjs/icons/baseIcons/conc/conDataFabric.d.ts +4 -0
- package/dist/cjs/icons/baseIcons/conc/conDataFabric.d.ts.map +1 -0
- package/dist/cjs/icons/baseIcons/conc/conDataFabric.js +7 -0
- package/dist/cjs/icons/baseIcons/conc/conDeepSearch.d.ts +4 -0
- package/dist/cjs/icons/baseIcons/conc/conDeepSearch.d.ts.map +1 -0
- package/dist/cjs/icons/baseIcons/conc/conDeepSearch.js +8 -0
- package/dist/cjs/icons/baseIcons/conc/conElectricCar.d.ts +4 -0
- package/dist/cjs/icons/baseIcons/conc/conElectricCar.d.ts.map +1 -0
- package/dist/cjs/icons/baseIcons/conc/conElectricCar.js +8 -0
- package/dist/cjs/icons/baseIcons/conc/conEnergyEfficiency.d.ts +4 -0
- package/dist/cjs/icons/baseIcons/conc/conEnergyEfficiency.d.ts.map +1 -0
- package/dist/cjs/icons/baseIcons/conc/conEnergyEfficiency.js +7 -0
- package/dist/cjs/icons/baseIcons/conc/conIdentitySafe.d.ts +4 -0
- package/dist/cjs/icons/baseIcons/conc/conIdentitySafe.d.ts.map +1 -0
- package/dist/cjs/icons/baseIcons/conc/conIdentitySafe.js +7 -0
- package/dist/cjs/icons/baseIcons/conc/conMarketplace.d.ts +4 -0
- package/dist/cjs/icons/baseIcons/conc/conMarketplace.d.ts.map +1 -0
- package/dist/cjs/icons/baseIcons/conc/conMarketplace.js +7 -0
- package/dist/cjs/icons/baseIcons/conc/conNetwork.d.ts +4 -0
- package/dist/cjs/icons/baseIcons/conc/conNetwork.d.ts.map +1 -0
- package/dist/cjs/icons/baseIcons/conc/conNetwork.js +7 -0
- package/dist/cjs/icons/baseIcons/conc/conNotifications.d.ts +4 -0
- package/dist/cjs/icons/baseIcons/conc/conNotifications.d.ts.map +1 -0
- package/dist/cjs/icons/baseIcons/conc/conNotifications.js +7 -0
- package/dist/cjs/icons/baseIcons/conc/conNotifications2.d.ts +4 -0
- package/dist/cjs/icons/baseIcons/conc/conNotifications2.d.ts.map +1 -0
- package/dist/cjs/icons/baseIcons/conc/conNotifications2.js +7 -0
- package/dist/cjs/icons/baseIcons/conc/conRecycling.d.ts +4 -0
- package/dist/cjs/icons/baseIcons/conc/conRecycling.d.ts.map +1 -0
- package/dist/cjs/icons/baseIcons/conc/conRecycling.js +8 -0
- package/dist/cjs/icons/baseIcons/conc/conRenewableCertificateWater.d.ts +4 -0
- package/dist/cjs/icons/baseIcons/conc/conRenewableCertificateWater.d.ts.map +1 -0
- package/dist/cjs/icons/baseIcons/conc/conRenewableCertificateWater.js +8 -0
- package/dist/cjs/icons/baseIcons/conc/conRenewableCertificateWind.d.ts +4 -0
- package/dist/cjs/icons/baseIcons/conc/conRenewableCertificateWind.d.ts.map +1 -0
- package/dist/cjs/icons/baseIcons/conc/conRenewableCertificateWind.js +8 -0
- package/dist/cjs/icons/baseIcons/conc/conServices.d.ts +4 -0
- package/dist/cjs/icons/baseIcons/conc/conServices.d.ts.map +1 -0
- package/dist/cjs/icons/baseIcons/conc/conServices.js +7 -0
- package/dist/cjs/icons/baseIcons/conc/conSmartPowerGrid.d.ts +4 -0
- package/dist/cjs/icons/baseIcons/conc/conSmartPowerGrid.d.ts.map +1 -0
- package/dist/cjs/icons/baseIcons/conc/conSmartPowerGrid.js +8 -0
- package/dist/cjs/icons/baseIcons/conc/conSustainableForestry.d.ts +4 -0
- package/dist/cjs/icons/baseIcons/conc/conSustainableForestry.d.ts.map +1 -0
- package/dist/cjs/icons/baseIcons/conc/conSustainableForestry.js +7 -0
- package/dist/cjs/icons/baseIcons/conc/conVeracityAdapter.d.ts +4 -0
- package/dist/cjs/icons/baseIcons/conc/conVeracityAdapter.d.ts.map +1 -0
- package/dist/cjs/icons/baseIcons/conc/conVeracityAdapter.js +7 -0
- package/dist/cjs/icons/baseIcons/conc/conWindmill.d.ts +4 -0
- package/dist/cjs/icons/baseIcons/conc/conWindmill.d.ts.map +1 -0
- package/dist/cjs/icons/baseIcons/conc/conWindmill.js +8 -0
- package/dist/cjs/icons/baseIcons/icons.d.ts +24 -3
- package/dist/cjs/icons/baseIcons/icons.d.ts.map +1 -1
- package/dist/cjs/icons/baseIcons/icons.js +57 -14
- package/dist/cjs/icons/baseIcons/types.d.ts +1 -1
- package/dist/cjs/icons/baseIcons/types.d.ts.map +1 -1
- package/dist/cjs/index.d.ts +2 -0
- package/dist/cjs/index.d.ts.map +1 -1
- package/dist/cjs/index.js +2 -0
- package/dist/cjs/input/consts.js +1 -1
- package/dist/cjs/input/helpText.d.ts.map +1 -1
- package/dist/cjs/input/helpText.js +1 -1
- package/dist/cjs/input/input.d.ts.map +1 -1
- package/dist/cjs/input/input.js +5 -1
- package/dist/cjs/input/inputInput.d.ts.map +1 -1
- package/dist/cjs/input/inputInput.js +1 -0
- package/dist/cjs/tabs/tabs.d.ts.map +1 -1
- package/dist/cjs/tabs/tabs.js +8 -5
- package/dist/cjs/tabs/tabsNavBar.d.ts.map +1 -1
- package/dist/cjs/tabs/tabsNavBar.js +1 -1
- package/dist/cjs/tabs/theme.d.ts.map +1 -1
- package/dist/cjs/tabs/theme.js +0 -1
- package/dist/cjs/theme/components.d.ts +12 -0
- package/dist/cjs/theme/components.d.ts.map +1 -1
- package/dist/cjs/theme/components.js +78 -74
- package/dist/cjs/theme/defaultTheme.d.ts +12 -0
- package/dist/cjs/theme/defaultTheme.d.ts.map +1 -1
- package/dist/cjs/utils/dates.d.ts +20 -0
- package/dist/cjs/utils/dates.d.ts.map +1 -1
- package/dist/cjs/utils/dates.js +60 -1
- package/dist/cjs/utils/formatDate.d.ts +15 -0
- package/dist/cjs/utils/formatDate.d.ts.map +1 -0
- package/dist/cjs/utils/formatDate.js +51 -0
- package/dist/cjs/utils/index.d.ts +1 -0
- package/dist/cjs/utils/index.d.ts.map +1 -1
- package/dist/cjs/utils/index.js +1 -0
- package/dist/esm/calendar/calendar.d.ts +5 -0
- package/dist/esm/calendar/calendar.d.ts.map +1 -0
- package/dist/esm/calendar/calendar.js +89 -0
- package/dist/esm/calendar/calendar.styles.d.ts +14 -0
- package/dist/esm/calendar/calendar.styles.d.ts.map +1 -0
- package/dist/esm/calendar/calendar.styles.js +65 -0
- package/dist/esm/calendar/calendar.types.d.ts +81 -0
- package/dist/esm/calendar/calendar.types.d.ts.map +1 -0
- package/dist/esm/calendar/calendar.types.js +1 -0
- package/dist/esm/calendar/components/calendarHeader.d.ts +16 -0
- package/dist/esm/calendar/components/calendarHeader.d.ts.map +1 -0
- package/dist/esm/calendar/components/calendarHeader.js +15 -0
- package/dist/esm/calendar/components/dayPicker.d.ts +9 -0
- package/dist/esm/calendar/components/dayPicker.d.ts.map +1 -0
- package/dist/esm/calendar/components/dayPicker.js +22 -0
- package/dist/esm/calendar/components/index.d.ts +6 -0
- package/dist/esm/calendar/components/index.d.ts.map +1 -0
- package/dist/esm/calendar/components/index.js +5 -0
- package/dist/esm/calendar/components/monthPicker.d.ts +9 -0
- package/dist/esm/calendar/components/monthPicker.d.ts.map +1 -0
- package/dist/esm/calendar/components/monthPicker.js +5 -0
- package/dist/esm/calendar/components/timeUnitHeader.d.ts +13 -0
- package/dist/esm/calendar/components/timeUnitHeader.d.ts.map +1 -0
- package/dist/esm/calendar/components/timeUnitHeader.js +19 -0
- package/dist/esm/calendar/components/yearPicker.d.ts +9 -0
- package/dist/esm/calendar/components/yearPicker.d.ts.map +1 -0
- package/dist/esm/calendar/components/yearPicker.js +3 -0
- package/dist/esm/calendar/consts.d.ts +7 -0
- package/dist/esm/calendar/consts.d.ts.map +1 -0
- package/dist/esm/calendar/consts.js +19 -0
- package/dist/esm/calendar/hooks/index.d.ts +5 -0
- package/dist/esm/calendar/hooks/index.d.ts.map +1 -0
- package/dist/esm/calendar/hooks/index.js +4 -0
- package/dist/esm/calendar/hooks/useBoundaries.d.ts +12 -0
- package/dist/esm/calendar/hooks/useBoundaries.d.ts.map +1 -0
- package/dist/esm/calendar/hooks/useBoundaries.js +12 -0
- package/dist/esm/calendar/hooks/useCalendar.d.ts +8 -0
- package/dist/esm/calendar/hooks/useCalendar.d.ts.map +1 -0
- package/dist/esm/calendar/hooks/useCalendar.js +139 -0
- package/dist/esm/calendar/hooks/useDefaultViewMonth.d.ts +8 -0
- package/dist/esm/calendar/hooks/useDefaultViewMonth.d.ts.map +1 -0
- package/dist/esm/calendar/hooks/useDefaultViewMonth.js +17 -0
- package/dist/esm/calendar/hooks/useSelectedDate.d.ts +15 -0
- package/dist/esm/calendar/hooks/useSelectedDate.d.ts.map +1 -0
- package/dist/esm/calendar/hooks/useSelectedDate.js +16 -0
- package/dist/esm/calendar/index.d.ts +5 -0
- package/dist/esm/calendar/index.d.ts.map +1 -0
- package/dist/esm/calendar/index.js +4 -0
- package/dist/esm/calendar/theme.d.ts +8 -0
- package/dist/esm/calendar/theme.d.ts.map +1 -0
- package/dist/esm/calendar/theme.js +10 -0
- package/dist/esm/calendar/utils.d.ts +26 -0
- package/dist/esm/calendar/utils.d.ts.map +1 -0
- package/dist/esm/calendar/utils.js +81 -0
- package/dist/esm/core/theme.d.ts.map +1 -1
- package/dist/esm/core/theme.js +2 -4
- package/dist/esm/datePicker/components/pickerPanel.d.ts +6 -0
- package/dist/esm/datePicker/components/pickerPanel.d.ts.map +1 -0
- package/dist/esm/datePicker/components/pickerPanel.js +19 -0
- package/dist/esm/datePicker/dateInput.d.ts +11 -0
- package/dist/esm/datePicker/dateInput.d.ts.map +1 -0
- package/dist/esm/datePicker/dateInput.js +53 -0
- package/dist/esm/datePicker/datePicker.d.ts +5 -0
- package/dist/esm/datePicker/datePicker.d.ts.map +1 -0
- package/dist/esm/datePicker/datePicker.js +98 -0
- package/dist/esm/datePicker/datePicker.types.d.ts +22 -0
- package/dist/esm/datePicker/datePicker.types.d.ts.map +1 -0
- package/dist/esm/datePicker/datePicker.types.js +1 -0
- package/dist/esm/datePicker/index.d.ts +4 -0
- package/dist/esm/datePicker/index.d.ts.map +1 -0
- package/dist/esm/datePicker/index.js +3 -0
- package/dist/esm/datePicker/theme.d.ts +8 -0
- package/dist/esm/datePicker/theme.d.ts.map +1 -0
- package/dist/esm/datePicker/theme.js +10 -0
- package/dist/esm/footer/footer.js +1 -1
- package/dist/esm/header/loggedInHeader.d.ts.map +1 -1
- package/dist/esm/icons/baseIcons/conc/conAnalytics.d.ts +4 -0
- package/dist/esm/icons/baseIcons/conc/conAnalytics.d.ts.map +1 -0
- package/dist/esm/icons/baseIcons/conc/conAnalytics.js +6 -0
- package/dist/esm/icons/baseIcons/conc/conCircularEconomy.d.ts +4 -0
- package/dist/esm/icons/baseIcons/conc/conCircularEconomy.d.ts.map +1 -0
- package/dist/esm/icons/baseIcons/conc/conCircularEconomy.js +6 -0
- package/dist/esm/icons/baseIcons/conc/conCleanAir.d.ts +4 -0
- package/dist/esm/icons/baseIcons/conc/conCleanAir.d.ts.map +1 -0
- package/dist/esm/icons/baseIcons/conc/conCleanAir.js +5 -0
- package/dist/esm/icons/baseIcons/conc/conCleanWater.d.ts +4 -0
- package/dist/esm/icons/baseIcons/conc/conCleanWater.d.ts.map +1 -0
- package/dist/esm/icons/baseIcons/conc/conCleanWater.js +5 -0
- package/dist/esm/icons/baseIcons/conc/conDataFabric.d.ts +4 -0
- package/dist/esm/icons/baseIcons/conc/conDataFabric.d.ts.map +1 -0
- package/dist/esm/icons/baseIcons/conc/conDataFabric.js +5 -0
- package/dist/esm/icons/baseIcons/conc/conDeepSearch.d.ts +4 -0
- package/dist/esm/icons/baseIcons/conc/conDeepSearch.d.ts.map +1 -0
- package/dist/esm/icons/baseIcons/conc/conDeepSearch.js +6 -0
- package/dist/esm/icons/baseIcons/conc/conElectricCar.d.ts +4 -0
- package/dist/esm/icons/baseIcons/conc/conElectricCar.d.ts.map +1 -0
- package/dist/esm/icons/baseIcons/conc/conElectricCar.js +6 -0
- package/dist/esm/icons/baseIcons/conc/conEnergyEfficiency.d.ts +4 -0
- package/dist/esm/icons/baseIcons/conc/conEnergyEfficiency.d.ts.map +1 -0
- package/dist/esm/icons/baseIcons/conc/conEnergyEfficiency.js +5 -0
- package/dist/esm/icons/baseIcons/conc/conIdentitySafe.d.ts +4 -0
- package/dist/esm/icons/baseIcons/conc/conIdentitySafe.d.ts.map +1 -0
- package/dist/esm/icons/baseIcons/conc/conIdentitySafe.js +5 -0
- package/dist/esm/icons/baseIcons/conc/conMarketplace.d.ts +4 -0
- package/dist/esm/icons/baseIcons/conc/conMarketplace.d.ts.map +1 -0
- package/dist/esm/icons/baseIcons/conc/conMarketplace.js +5 -0
- package/dist/esm/icons/baseIcons/conc/conNetwork.d.ts +4 -0
- package/dist/esm/icons/baseIcons/conc/conNetwork.d.ts.map +1 -0
- package/dist/esm/icons/baseIcons/conc/conNetwork.js +5 -0
- package/dist/esm/icons/baseIcons/conc/conNotifications.d.ts +4 -0
- package/dist/esm/icons/baseIcons/conc/conNotifications.d.ts.map +1 -0
- package/dist/esm/icons/baseIcons/conc/conNotifications.js +5 -0
- package/dist/esm/icons/baseIcons/conc/conNotifications2.d.ts +4 -0
- package/dist/esm/icons/baseIcons/conc/conNotifications2.d.ts.map +1 -0
- package/dist/esm/icons/baseIcons/conc/conNotifications2.js +5 -0
- package/dist/esm/icons/baseIcons/conc/conRecycling.d.ts +4 -0
- package/dist/esm/icons/baseIcons/conc/conRecycling.d.ts.map +1 -0
- package/dist/esm/icons/baseIcons/conc/conRecycling.js +6 -0
- package/dist/esm/icons/baseIcons/conc/conRenewableCertificateWater.d.ts +4 -0
- package/dist/esm/icons/baseIcons/conc/conRenewableCertificateWater.d.ts.map +1 -0
- package/dist/esm/icons/baseIcons/conc/conRenewableCertificateWater.js +6 -0
- package/dist/esm/icons/baseIcons/conc/conRenewableCertificateWind.d.ts +4 -0
- package/dist/esm/icons/baseIcons/conc/conRenewableCertificateWind.d.ts.map +1 -0
- package/dist/esm/icons/baseIcons/conc/conRenewableCertificateWind.js +6 -0
- package/dist/esm/icons/baseIcons/conc/conServices.d.ts +4 -0
- package/dist/esm/icons/baseIcons/conc/conServices.d.ts.map +1 -0
- package/dist/esm/icons/baseIcons/conc/conServices.js +5 -0
- package/dist/esm/icons/baseIcons/conc/conSmartPowerGrid.d.ts +4 -0
- package/dist/esm/icons/baseIcons/conc/conSmartPowerGrid.d.ts.map +1 -0
- package/dist/esm/icons/baseIcons/conc/conSmartPowerGrid.js +6 -0
- package/dist/esm/icons/baseIcons/conc/conSustainableForestry.d.ts +4 -0
- package/dist/esm/icons/baseIcons/conc/conSustainableForestry.d.ts.map +1 -0
- package/dist/esm/icons/baseIcons/conc/conSustainableForestry.js +5 -0
- package/dist/esm/icons/baseIcons/conc/conVeracityAdapter.d.ts +4 -0
- package/dist/esm/icons/baseIcons/conc/conVeracityAdapter.d.ts.map +1 -0
- package/dist/esm/icons/baseIcons/conc/conVeracityAdapter.js +5 -0
- package/dist/esm/icons/baseIcons/conc/conWindmill.d.ts +4 -0
- package/dist/esm/icons/baseIcons/conc/conWindmill.d.ts.map +1 -0
- package/dist/esm/icons/baseIcons/conc/conWindmill.js +6 -0
- package/dist/esm/icons/baseIcons/icons.d.ts +24 -3
- package/dist/esm/icons/baseIcons/icons.d.ts.map +1 -1
- package/dist/esm/icons/baseIcons/icons.js +24 -3
- package/dist/esm/icons/baseIcons/types.d.ts +1 -1
- package/dist/esm/icons/baseIcons/types.d.ts.map +1 -1
- package/dist/esm/index.d.ts +2 -0
- package/dist/esm/index.d.ts.map +1 -1
- package/dist/esm/index.js +2 -0
- package/dist/esm/input/consts.js +1 -1
- package/dist/esm/input/helpText.d.ts.map +1 -1
- package/dist/esm/input/helpText.js +1 -1
- package/dist/esm/input/input.d.ts.map +1 -1
- package/dist/esm/input/input.js +5 -1
- package/dist/esm/input/inputInput.d.ts.map +1 -1
- package/dist/esm/input/inputInput.js +1 -0
- package/dist/esm/tabs/tabs.d.ts.map +1 -1
- package/dist/esm/tabs/tabs.js +7 -4
- package/dist/esm/tabs/tabsNavBar.d.ts.map +1 -1
- package/dist/esm/tabs/tabsNavBar.js +1 -1
- package/dist/esm/tabs/theme.d.ts.map +1 -1
- package/dist/esm/tabs/theme.js +0 -1
- package/dist/esm/theme/components.d.ts +12 -0
- package/dist/esm/theme/components.d.ts.map +1 -1
- package/dist/esm/theme/components.js +4 -0
- package/dist/esm/theme/defaultTheme.d.ts +12 -0
- package/dist/esm/theme/defaultTheme.d.ts.map +1 -1
- package/dist/esm/utils/dates.d.ts +20 -0
- package/dist/esm/utils/dates.d.ts.map +1 -1
- package/dist/esm/utils/dates.js +51 -0
- package/dist/esm/utils/formatDate.d.ts +15 -0
- package/dist/esm/utils/formatDate.d.ts.map +1 -0
- package/dist/esm/utils/formatDate.js +36 -0
- package/dist/esm/utils/index.d.ts +1 -0
- package/dist/esm/utils/index.d.ts.map +1 -1
- package/dist/esm/utils/index.js +1 -0
- package/package.json +1 -1
- package/src/calendar/calendar.styles.ts +75 -0
- package/src/calendar/calendar.tsx +145 -0
- package/src/calendar/calendar.types.ts +91 -0
- package/src/calendar/components/calendarHeader.tsx +56 -0
- package/src/calendar/components/dayPicker.tsx +55 -0
- package/src/calendar/components/index.ts +5 -0
- package/src/calendar/components/monthPicker.tsx +26 -0
- package/src/calendar/components/timeUnitHeader.tsx +47 -0
- package/src/calendar/components/yearPicker.tsx +24 -0
- package/src/calendar/consts.ts +24 -0
- package/src/calendar/hooks/index.ts +4 -0
- package/src/calendar/hooks/useBoundaries.ts +16 -0
- package/src/calendar/hooks/useCalendar.ts +181 -0
- package/src/calendar/hooks/useDefaultViewMonth.ts +18 -0
- package/src/calendar/hooks/useSelectedDate.ts +20 -0
- package/src/calendar/index.ts +4 -0
- package/src/calendar/theme.ts +14 -0
- package/src/calendar/utils.ts +100 -0
- package/src/core/theme.ts +2 -4
- package/src/datePicker/components/pickerPanel.tsx +22 -0
- package/src/datePicker/dateInput.tsx +77 -0
- package/src/datePicker/datePicker.tsx +172 -0
- package/src/datePicker/datePicker.types.ts +25 -0
- package/src/datePicker/index.ts +3 -0
- package/src/datePicker/theme.ts +14 -0
- package/src/footer/footer.tsx +1 -1
- package/src/header/loggedInHeader.tsx +0 -1
- package/src/icons/baseIcons/conc/conAnalytics.ts +9 -0
- package/src/icons/baseIcons/conc/conCircularEconomy.ts +9 -0
- package/src/icons/baseIcons/conc/conCleanAir.ts +8 -0
- package/src/icons/baseIcons/conc/conCleanWater.ts +8 -0
- package/src/icons/baseIcons/conc/conDataFabric.ts +8 -0
- package/src/icons/baseIcons/conc/conDeepSearch.ts +9 -0
- package/src/icons/baseIcons/conc/conElectricCar.ts +9 -0
- package/src/icons/baseIcons/conc/conEnergyEfficiency.ts +8 -0
- package/src/icons/baseIcons/conc/conIdentitySafe.ts +8 -0
- package/src/icons/baseIcons/conc/conMarketplace.ts +8 -0
- package/src/icons/baseIcons/conc/conNetwork.ts +8 -0
- package/src/icons/baseIcons/conc/conNotifications.ts +8 -0
- package/src/icons/baseIcons/conc/conNotifications2.ts +8 -0
- package/src/icons/baseIcons/conc/conRecycling.ts +9 -0
- package/src/icons/baseIcons/conc/conRenewableCertificateWater.ts +9 -0
- package/src/icons/baseIcons/conc/conRenewableCertificateWind.ts +9 -0
- package/src/icons/baseIcons/conc/conServices.ts +8 -0
- package/src/icons/baseIcons/conc/conSmartPowerGrid.ts +9 -0
- package/src/icons/baseIcons/conc/conSustainableForestry.ts +8 -0
- package/src/icons/baseIcons/conc/conVeracityAdapter.ts +8 -0
- package/src/icons/baseIcons/conc/conWindmill.ts +9 -0
- package/src/icons/baseIcons/icons.ts +24 -3
- package/src/icons/baseIcons/types.ts +24 -3
- package/src/index.ts +2 -0
- package/src/input/consts.ts +1 -1
- package/src/input/helpText.tsx +1 -0
- package/src/input/input.tsx +5 -1
- package/src/input/inputInput.tsx +1 -0
- package/src/tabs/tabs.tsx +7 -4
- package/src/tabs/tabsNavBar.tsx +3 -1
- package/src/tabs/theme.ts +0 -1
- package/src/theme/components.ts +4 -0
- package/src/utils/dates.ts +60 -0
- package/src/utils/formatDate.ts +63 -0
- package/src/utils/index.ts +1 -0
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export type DateFormat = 'DD MM YYYY' | 'DD MM YYYY, HH:MM' | 'DD MMM' | 'DD MMM YYYY' | 'DD MMM YYYY, HH:MM' | 'DD MMM, HH:MM' | 'HH:MM' | 'MMM D, YYYY' | 'YYYY/MM/DD' | 'YYYY-MM-DD' | 'YYYY/MM/DD, HH:MM' | 'YYYY-MM-DD, HH:MM' | 'YYYY-MM-DD, HH:MM:SS';
|
|
2
|
+
export type FormatDateOptions = Intl.DateTimeFormatOptions & {
|
|
3
|
+
locales?: string | string[];
|
|
4
|
+
};
|
|
5
|
+
/** Predefined selection of date formats using DateTimeFormatOptions. */
|
|
6
|
+
export declare const dateFormats: Record<DateFormat, FormatDateOptions>;
|
|
7
|
+
/**
|
|
8
|
+
* Structures given date string, milliseconds number or Date object according to the chosen format.
|
|
9
|
+
* Uses toLocalDateString internally. Predefined formats specify initial options, which can be overwritten.
|
|
10
|
+
* @param date - string, number or Date object accepted by Date() constructor
|
|
11
|
+
* @param format - predefined configuration of DateTimeFormatOptions
|
|
12
|
+
* @param options - configuration of toLocaleDateString method
|
|
13
|
+
*/
|
|
14
|
+
export declare function formatDate(date?: string | number | Date, format?: DateFormat, options?: FormatDateOptions): string;
|
|
15
|
+
//# sourceMappingURL=formatDate.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"formatDate.d.ts","sourceRoot":"","sources":["../../../src/utils/formatDate.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAClB,YAAY,GACZ,mBAAmB,GACnB,QAAQ,GACR,aAAa,GACb,oBAAoB,GACpB,eAAe,GACf,OAAO,GACP,aAAa,GACb,YAAY,GACZ,YAAY,GACZ,mBAAmB,GACnB,mBAAmB,GACnB,sBAAsB,CAAA;AAE1B,MAAM,MAAM,iBAAiB,GAAG,IAAI,CAAC,qBAAqB,GAAG;IAC3D,OAAO,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAA;CAC5B,CAAA;AAED,wEAAwE;AACxE,eAAO,MAAM,WAAW,EAAE,MAAM,CAAC,UAAU,EAAE,iBAAiB,CAc7D,CAAA;AAED;;;;;;GAMG;AACH,wBAAgB,UAAU,CACxB,IAAI,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,EAC7B,MAAM,GAAE,UAAyB,EACjC,OAAO,CAAC,EAAE,iBAAiB,UAgB5B"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/** Predefined selection of date formats using DateTimeFormatOptions. */
|
|
2
|
+
export const dateFormats = {
|
|
3
|
+
'DD MM YYYY': { year: 'numeric', month: '2-digit', day: '2-digit' },
|
|
4
|
+
'DD MM YYYY, HH:MM': { year: 'numeric', month: '2-digit', day: '2-digit', hour: '2-digit', minute: '2-digit' },
|
|
5
|
+
'DD MMM': { month: 'short', day: '2-digit' },
|
|
6
|
+
'DD MMM YYYY': { year: 'numeric', month: 'short', day: '2-digit' },
|
|
7
|
+
'DD MMM YYYY, HH:MM': { year: 'numeric', month: 'short', day: '2-digit', hour: '2-digit', minute: '2-digit' },
|
|
8
|
+
'DD MMM, HH:MM': { month: 'short', day: '2-digit', hour: '2-digit', minute: '2-digit' },
|
|
9
|
+
'HH:MM': { locales: 'en-GB', hour: '2-digit', minute: '2-digit', hourCycle: 'h23' },
|
|
10
|
+
'MMM D, YYYY': { locales: 'en-US', year: 'numeric', month: 'short', day: 'numeric' },
|
|
11
|
+
'YYYY/MM/DD': { locales: 'en-ZA' },
|
|
12
|
+
'YYYY-MM-DD': { locales: 'fr-CA' },
|
|
13
|
+
'YYYY/MM/DD, HH:MM': { locales: 'en-ZA', hour: '2-digit', minute: '2-digit' },
|
|
14
|
+
'YYYY-MM-DD, HH:MM': { locales: 'fr-CA', timeStyle: 'short' },
|
|
15
|
+
'YYYY-MM-DD, HH:MM:SS': { locales: 'fr-CA' }
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Structures given date string, milliseconds number or Date object according to the chosen format.
|
|
19
|
+
* Uses toLocalDateString internally. Predefined formats specify initial options, which can be overwritten.
|
|
20
|
+
* @param date - string, number or Date object accepted by Date() constructor
|
|
21
|
+
* @param format - predefined configuration of DateTimeFormatOptions
|
|
22
|
+
* @param options - configuration of toLocaleDateString method
|
|
23
|
+
*/
|
|
24
|
+
export function formatDate(date, format = 'DD MM YYYY', options) {
|
|
25
|
+
const formatOptions = dateFormats[format];
|
|
26
|
+
const { locales, ...mergedOptions } = { ...formatOptions, ...options };
|
|
27
|
+
if (format === 'YYYY-MM-DD, HH:MM:SS' || format === 'YYYY-MM-DD, HH:MM') {
|
|
28
|
+
return date
|
|
29
|
+
? new Date(date).toLocaleDateString(locales) + ', ' + new Date(date).toLocaleTimeString(undefined, mergedOptions)
|
|
30
|
+
: '';
|
|
31
|
+
}
|
|
32
|
+
if (format === 'HH:MM') {
|
|
33
|
+
return date ? new Date(date).toLocaleTimeString(locales, mergedOptions) : '';
|
|
34
|
+
}
|
|
35
|
+
return date ? new Date(date).toLocaleDateString(locales, mergedOptions) : '';
|
|
36
|
+
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA;AAC3B,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,OAAO,CAAA;AACrB,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,OAAO,CAAA;AACrB,cAAc,UAAU,CAAA"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/utils/index.ts"],"names":[],"mappings":"AAAA,cAAc,SAAS,CAAA;AACvB,cAAc,aAAa,CAAA;AAC3B,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,OAAO,CAAA;AACrB,cAAc,cAAc,CAAA;AAC5B,cAAc,YAAY,CAAA;AAC1B,cAAc,UAAU,CAAA;AACxB,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,UAAU,CAAA;AACxB,cAAc,SAAS,CAAA;AACvB,cAAc,OAAO,CAAA;AACrB,cAAc,UAAU,CAAA"}
|
package/dist/esm/utils/index.js
CHANGED
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@veracity/vui",
|
|
3
|
-
"version": "2.14.0
|
|
3
|
+
"version": "2.14.0",
|
|
4
4
|
"description": "Veracity UI is a React component library crafted for use within Veracity applications and pages. Based on Styled Components and @xstyled.",
|
|
5
5
|
"module": "./dist/esm/index.js",
|
|
6
6
|
"main": "./dist/cjs/index.js",
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import Box from '../box'
|
|
2
|
+
import { css, styled, th } from '../core'
|
|
3
|
+
import Link from '../link'
|
|
4
|
+
import { ItemProps } from './calendar.types'
|
|
5
|
+
|
|
6
|
+
export const boundary = css`
|
|
7
|
+
background-color: ${th.color('seaBlue.main')};
|
|
8
|
+
color: white !important;
|
|
9
|
+
border-radius: 0;
|
|
10
|
+
`
|
|
11
|
+
|
|
12
|
+
export const current = css`
|
|
13
|
+
background-color: ${th.color('seaBlue.main')};
|
|
14
|
+
color: white !important;
|
|
15
|
+
border-radius: 0;
|
|
16
|
+
`
|
|
17
|
+
|
|
18
|
+
export const isDisabled = css`
|
|
19
|
+
color: ${th.color('sandstone.main')} !important;
|
|
20
|
+
cursor: not-allowed;
|
|
21
|
+
`
|
|
22
|
+
|
|
23
|
+
export const isHidden = css`
|
|
24
|
+
color: ${th.color('darkBlue.75')} !important;
|
|
25
|
+
`
|
|
26
|
+
|
|
27
|
+
export const isToday = css`
|
|
28
|
+
border: 1px solid ${th.color('seaBlue.main')};
|
|
29
|
+
`
|
|
30
|
+
|
|
31
|
+
export const hover = css`
|
|
32
|
+
background-color: ${th.color('skyBlue.85')};
|
|
33
|
+
color: ${th.color('seaBlue.main')};
|
|
34
|
+
border-radius: 0;
|
|
35
|
+
`
|
|
36
|
+
|
|
37
|
+
export const isSelected = css`
|
|
38
|
+
background-color: ${th.color('skyBlue.85')};
|
|
39
|
+
border-radius: 0;
|
|
40
|
+
color: white;
|
|
41
|
+
`
|
|
42
|
+
|
|
43
|
+
export const CalendarItem = styled(Link)<ItemProps>`
|
|
44
|
+
aspect-ratio: 1;
|
|
45
|
+
border: 0;
|
|
46
|
+
cursor: pointer;
|
|
47
|
+
height: 100%;
|
|
48
|
+
justify-content: center;
|
|
49
|
+
text-decoration: none;
|
|
50
|
+
width: 100%;
|
|
51
|
+
|
|
52
|
+
${p => p.isHidden && isHidden}
|
|
53
|
+
${p => p.isToday && isToday}
|
|
54
|
+
${p => p.isDisabled && isDisabled}
|
|
55
|
+
${p => p.isSelected && isSelected}
|
|
56
|
+
${p => p.boundary && boundary}
|
|
57
|
+
${p => p.current && current}
|
|
58
|
+
|
|
59
|
+
&:hover {
|
|
60
|
+
color: inherit;
|
|
61
|
+
text-decoration: none;
|
|
62
|
+
|
|
63
|
+
${p => !p.isDisabled && hover}
|
|
64
|
+
}
|
|
65
|
+
`
|
|
66
|
+
|
|
67
|
+
export const CalendarItemsContainer = styled(Box)`
|
|
68
|
+
align-items: center;
|
|
69
|
+
column-gap: 0;
|
|
70
|
+
display: grid;
|
|
71
|
+
grid-template-columns: repeat(3, 1fr);
|
|
72
|
+
grid-template-rows: repeat(4, 62px);
|
|
73
|
+
justify-items: center;
|
|
74
|
+
row-gap: 0;
|
|
75
|
+
`
|
|
@@ -0,0 +1,145 @@
|
|
|
1
|
+
import React, { useEffect, useRef, useState } from 'react'
|
|
2
|
+
|
|
3
|
+
import Box from '../box'
|
|
4
|
+
import { omitThemingProps, useStyleConfig, vui } from '../core'
|
|
5
|
+
import { cs } from '../utils'
|
|
6
|
+
import { CalendarProps, DateRange, FlowDirection, TimeResult, TimeUnitMode } from './calendar.types'
|
|
7
|
+
import { CalendarHeader, DayPicker, MonthPicker, YearPicker } from './components'
|
|
8
|
+
import { useCalendar, useDefaultViewMonth } from './hooks'
|
|
9
|
+
import {
|
|
10
|
+
isDay,
|
|
11
|
+
isExact,
|
|
12
|
+
isFrom,
|
|
13
|
+
isMonth,
|
|
14
|
+
isTo,
|
|
15
|
+
isYear,
|
|
16
|
+
processSelectMonth,
|
|
17
|
+
processSelectYear,
|
|
18
|
+
processViewDate
|
|
19
|
+
} from './utils'
|
|
20
|
+
|
|
21
|
+
/** [Beta] Displays calendar. */
|
|
22
|
+
export const Calendar = vui<'div', CalendarProps>((props, ref) => {
|
|
23
|
+
const {
|
|
24
|
+
boundaries,
|
|
25
|
+
className,
|
|
26
|
+
fixedNumberOfWeeks = false,
|
|
27
|
+
disabled,
|
|
28
|
+
isStartDate,
|
|
29
|
+
mode,
|
|
30
|
+
onSelectDates,
|
|
31
|
+
selectedDates,
|
|
32
|
+
...rest
|
|
33
|
+
} = omitThemingProps(props)
|
|
34
|
+
const styles = useStyleConfig('Calendar', props)
|
|
35
|
+
|
|
36
|
+
const currentDateRef = useRef(isFrom(mode) || isExact(mode) ? selectedDates?.startDate : selectedDates?.endDate)
|
|
37
|
+
|
|
38
|
+
/**
|
|
39
|
+
* Effect to reset viewDate when selectedDates changes (onReset)
|
|
40
|
+
*/
|
|
41
|
+
useEffect(() => {
|
|
42
|
+
currentDateRef.current = isFrom(mode) || isExact(mode) ? selectedDates?.startDate : selectedDates?.endDate
|
|
43
|
+
currentDateRef.current && setViewDate(currentDateRef.current)
|
|
44
|
+
}, [selectedDates])
|
|
45
|
+
|
|
46
|
+
const calendarRef = useRef<TimeResult | null>(null)
|
|
47
|
+
|
|
48
|
+
const defaultViewMonth = useDefaultViewMonth({
|
|
49
|
+
boundaries,
|
|
50
|
+
selectedDate: currentDateRef.current,
|
|
51
|
+
isStartDate
|
|
52
|
+
})
|
|
53
|
+
|
|
54
|
+
const [timeUnitMode, setTimeUnitMode] = useState<TimeUnitMode>('day')
|
|
55
|
+
const [viewDate, setViewDate] = useState<Date>(defaultViewMonth)
|
|
56
|
+
|
|
57
|
+
/**
|
|
58
|
+
* Handles clicking next/prev in header
|
|
59
|
+
*/
|
|
60
|
+
const onChangeViewItem = (direction: FlowDirection) => {
|
|
61
|
+
const newViewMonth = processViewDate(viewDate, direction, timeUnitMode, calendarRef?.current?.items)
|
|
62
|
+
newViewMonth && setViewDate(newViewMonth)
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
/**
|
|
66
|
+
* Handles clicking on a day
|
|
67
|
+
*/
|
|
68
|
+
const onSelectDay = (clickedDate: Date) => () => {
|
|
69
|
+
updateDateState(clickedDate)
|
|
70
|
+
setViewDate(clickedDate)
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/**
|
|
74
|
+
* Handles clicking on a month
|
|
75
|
+
*/
|
|
76
|
+
const onSelectMonth = (clickedDate: Date) => () => {
|
|
77
|
+
const processedNewDate = processSelectMonth(clickedDate, mode, boundaries)
|
|
78
|
+
updateDateState(processedNewDate)
|
|
79
|
+
setViewDate(processedNewDate)
|
|
80
|
+
setTimeUnitMode('day')
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
/**
|
|
84
|
+
* Handles clicking on a year
|
|
85
|
+
*/
|
|
86
|
+
const onSelectYear = (clickedDate: Date) => () => {
|
|
87
|
+
const processedNewDate = processSelectYear(clickedDate, mode, boundaries)
|
|
88
|
+
updateDateState(processedNewDate)
|
|
89
|
+
setViewDate(processedNewDate)
|
|
90
|
+
setTimeUnitMode('month')
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/**
|
|
94
|
+
* Send update date to parent component
|
|
95
|
+
*/
|
|
96
|
+
const updateDateState = (newDate: Date) => {
|
|
97
|
+
const dateRange: DateRange = { ...selectedDates }
|
|
98
|
+
|
|
99
|
+
if (dateRange) {
|
|
100
|
+
if (isTo(mode)) dateRange.endDate = newDate
|
|
101
|
+
else dateRange.startDate = newDate
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
if (newDate && !disabled) onSelectDates && onSelectDates(dateRange)
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
const calendar = (calendarRef.current = useCalendar({
|
|
108
|
+
boundaries,
|
|
109
|
+
mode,
|
|
110
|
+
selectedDates,
|
|
111
|
+
timeUnitMode,
|
|
112
|
+
viewDate,
|
|
113
|
+
fixedNumberOfWeeks
|
|
114
|
+
}))
|
|
115
|
+
|
|
116
|
+
return (
|
|
117
|
+
<Box
|
|
118
|
+
className={cs('vui-calendar', className)}
|
|
119
|
+
column
|
|
120
|
+
cursor="default"
|
|
121
|
+
minW={280}
|
|
122
|
+
position="relative"
|
|
123
|
+
ref={ref}
|
|
124
|
+
w="fit-content"
|
|
125
|
+
{...styles}
|
|
126
|
+
{...rest}
|
|
127
|
+
>
|
|
128
|
+
<CalendarHeader
|
|
129
|
+
nextDisabled={calendar.nextDisabled}
|
|
130
|
+
onChangeViewItem={onChangeViewItem}
|
|
131
|
+
onSetTimeUnitMode={(mode: TimeUnitMode) => setTimeUnitMode(mode)}
|
|
132
|
+
prevDisabled={calendar.prevDisabled}
|
|
133
|
+
timeUnitMode={timeUnitMode}
|
|
134
|
+
viewMonth={viewDate}
|
|
135
|
+
/>
|
|
136
|
+
{isDay(timeUnitMode) && <DayPicker calendar={calendar} onSelectDay={onSelectDay} />}
|
|
137
|
+
{isMonth(timeUnitMode) && <MonthPicker calendar={calendar} onSelectMonth={onSelectMonth} />}
|
|
138
|
+
{isYear(timeUnitMode) && <YearPicker calendar={calendar} onSelectYear={onSelectYear} />}
|
|
139
|
+
</Box>
|
|
140
|
+
)
|
|
141
|
+
})
|
|
142
|
+
|
|
143
|
+
Calendar.displayName = 'Calendar'
|
|
144
|
+
|
|
145
|
+
export default Calendar
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
import { BoxProps } from '../box'
|
|
2
|
+
import { ThemingProps } from '../theme'
|
|
3
|
+
|
|
4
|
+
export interface DateRange {
|
|
5
|
+
startDate?: Date
|
|
6
|
+
endDate?: Date
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export type FlowDirection = 'next' | 'prev'
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* Mode for this calendar
|
|
13
|
+
* Should it handle from date, to date or single date mode
|
|
14
|
+
*/
|
|
15
|
+
export type CalendarMode = 'exact' | 'from' | 'to' | 'range'
|
|
16
|
+
|
|
17
|
+
export interface DefaultViewMonthProps {
|
|
18
|
+
boundaries?: DateRange
|
|
19
|
+
isStartDate?: boolean
|
|
20
|
+
selectedDate?: Date
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export interface MonthProps {
|
|
24
|
+
boundaries?: DateRange
|
|
25
|
+
fixedNumberOfWeeks?: boolean
|
|
26
|
+
mode: CalendarMode
|
|
27
|
+
selectedDates?: DateRange
|
|
28
|
+
timeUnitMode?: TimeUnitMode
|
|
29
|
+
viewDate: Date
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
export type ItemProps = {
|
|
33
|
+
boundary?: boolean
|
|
34
|
+
current?: boolean
|
|
35
|
+
isDisabled?: boolean
|
|
36
|
+
isHidden?: boolean
|
|
37
|
+
isToday?: boolean
|
|
38
|
+
isSelected?: boolean
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* Single time item like day in a month, month in a year and year in multiple years
|
|
43
|
+
*/
|
|
44
|
+
export interface TimeItem {
|
|
45
|
+
/** item is at the edge for a range, marking either start or end of it */
|
|
46
|
+
boundary: boolean
|
|
47
|
+
/** item is clicked and selected by the user */
|
|
48
|
+
current: boolean
|
|
49
|
+
/** the actual time item */
|
|
50
|
+
date: Date
|
|
51
|
+
/** disabled because out of bounds */
|
|
52
|
+
isDisabled: boolean
|
|
53
|
+
/** item should be hidden, for days we hide days that are not in the current month,
|
|
54
|
+
* but still are rendered due to weekDays */
|
|
55
|
+
isHidden: boolean
|
|
56
|
+
/** item is in the selected range between two dates */
|
|
57
|
+
isSelected: boolean
|
|
58
|
+
/** the date is today*/
|
|
59
|
+
isToday: boolean
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
/**
|
|
63
|
+
* All the date items in a view and whether next/prev button should be disabled
|
|
64
|
+
*/
|
|
65
|
+
export interface TimeResult {
|
|
66
|
+
items: TimeItem[]
|
|
67
|
+
nextDisabled: boolean
|
|
68
|
+
prevDisabled: boolean
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Time mode for calendar, display days in month, months in year or years in multiple years
|
|
73
|
+
*/
|
|
74
|
+
export type TimeUnitMode = 'day' | 'month' | 'year'
|
|
75
|
+
|
|
76
|
+
export type CalendarProps = Omit<BoxProps, 'size' | 'variant'> &
|
|
77
|
+
ThemingProps<'Calendar'> & {
|
|
78
|
+
/** Allowed range to select from */
|
|
79
|
+
boundaries?: DateRange
|
|
80
|
+
className?: string
|
|
81
|
+
disabled?: boolean
|
|
82
|
+
/** Including always 6 weeks into a month (used to have stable height in the calendar) */
|
|
83
|
+
fixedNumberOfWeeks?: boolean
|
|
84
|
+
isStartDate?: boolean
|
|
85
|
+
/** Calendar select mode: 'exact' | 'from' | 'to' | 'range' @default 'exact' */
|
|
86
|
+
mode: CalendarMode
|
|
87
|
+
/** On selecting a day */
|
|
88
|
+
onSelectDates?: (value: DateRange) => void
|
|
89
|
+
/** Selected date */
|
|
90
|
+
selectedDates?: DateRange
|
|
91
|
+
}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
import React, { FC } from 'react'
|
|
2
|
+
|
|
3
|
+
import Box from '../../box'
|
|
4
|
+
import { IconButton } from '../../button'
|
|
5
|
+
import { cs } from '../../utils'
|
|
6
|
+
import { FlowDirection, TimeUnitMode } from '../calendar.types'
|
|
7
|
+
import { TimeUnitHeader } from './timeUnitHeader'
|
|
8
|
+
|
|
9
|
+
type Props = {
|
|
10
|
+
nextDisabled?: boolean
|
|
11
|
+
onChangeViewItem: (direction: FlowDirection) => void
|
|
12
|
+
onSetTimeUnitMode: (mode: TimeUnitMode) => void
|
|
13
|
+
prevDisabled?: boolean
|
|
14
|
+
timeUnitMode: TimeUnitMode
|
|
15
|
+
viewMonth: Date
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
const size = 40
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Header for the calendar
|
|
22
|
+
*/
|
|
23
|
+
export const CalendarHeader: FC<Props> = ({
|
|
24
|
+
nextDisabled,
|
|
25
|
+
onChangeViewItem,
|
|
26
|
+
onSetTimeUnitMode,
|
|
27
|
+
prevDisabled,
|
|
28
|
+
timeUnitMode,
|
|
29
|
+
viewMonth
|
|
30
|
+
}) => (
|
|
31
|
+
<Box borderBottom="1px solid lightgray" centerV className={cs('vui-calendar-header')}>
|
|
32
|
+
<Box className="vui-calendar-header-left">
|
|
33
|
+
<TimeUnitHeader onSetTimeUnitMode={onSetTimeUnitMode} timeUnitMode={timeUnitMode} viewMonth={viewMonth} />
|
|
34
|
+
</Box>
|
|
35
|
+
<Box className="vui-calendar-header-right" flex="1" justify="flex-end">
|
|
36
|
+
<IconButton
|
|
37
|
+
className="icon"
|
|
38
|
+
disabled={prevDisabled}
|
|
39
|
+
h={size}
|
|
40
|
+
icon="falChevronLeft"
|
|
41
|
+
onClick={() => onChangeViewItem('prev')}
|
|
42
|
+
size="sm"
|
|
43
|
+
w={size}
|
|
44
|
+
/>
|
|
45
|
+
<IconButton
|
|
46
|
+
className="icon"
|
|
47
|
+
disabled={nextDisabled}
|
|
48
|
+
h={size}
|
|
49
|
+
icon="falChevronRight"
|
|
50
|
+
onClick={() => onChangeViewItem('next')}
|
|
51
|
+
size="sm"
|
|
52
|
+
w={size}
|
|
53
|
+
/>
|
|
54
|
+
</Box>
|
|
55
|
+
</Box>
|
|
56
|
+
)
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
|
|
3
|
+
import Box from '../../box'
|
|
4
|
+
import { styled, th } from '../../core'
|
|
5
|
+
import { cs } from '../../utils'
|
|
6
|
+
import { CalendarItem, CalendarItemsContainer } from '../calendar.styles'
|
|
7
|
+
import { ItemProps, TimeResult } from '../calendar.types'
|
|
8
|
+
import { weekDays } from '../consts'
|
|
9
|
+
|
|
10
|
+
type DayPickerProps = {
|
|
11
|
+
calendar: TimeResult
|
|
12
|
+
onSelectDay?: (date: Date) => void
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
const DayItem = styled(CalendarItem)<ItemProps>`
|
|
16
|
+
aspect-ratio: 1;
|
|
17
|
+
position: relative;
|
|
18
|
+
font-size: 14px;
|
|
19
|
+
font-weight: 500;
|
|
20
|
+
width: 40px;
|
|
21
|
+
height: 40px;
|
|
22
|
+
color: ${th.color('seaBlue.main')};
|
|
23
|
+
`
|
|
24
|
+
|
|
25
|
+
const DaysContainer = styled(CalendarItemsContainer)`
|
|
26
|
+
grid-template-columns: repeat(7, 1fr);
|
|
27
|
+
grid-template-rows: auto;
|
|
28
|
+
`
|
|
29
|
+
|
|
30
|
+
export const DayPicker = ({ calendar, onSelectDay }: DayPickerProps) => (
|
|
31
|
+
<DaysContainer className={cs('vui-day-picker')} mt={1} wrap>
|
|
32
|
+
{weekDays.map((day, index) => (
|
|
33
|
+
<Box
|
|
34
|
+
border={0}
|
|
35
|
+
className="dayHeader"
|
|
36
|
+
color="seaBlue.main"
|
|
37
|
+
fontSize={16}
|
|
38
|
+
fontWeight={500}
|
|
39
|
+
key={`week-day-${index}`}
|
|
40
|
+
>
|
|
41
|
+
{day}
|
|
42
|
+
</Box>
|
|
43
|
+
))}
|
|
44
|
+
{calendar.items.map(item => (
|
|
45
|
+
<DayItem
|
|
46
|
+
className={cs('vui-day-item')}
|
|
47
|
+
key={item.date.getTime()}
|
|
48
|
+
onClick={(!item.isDisabled && onSelectDay?.(item.date)) || undefined}
|
|
49
|
+
{...item}
|
|
50
|
+
>
|
|
51
|
+
{item.date.getUTCDate()}
|
|
52
|
+
</DayItem>
|
|
53
|
+
))}
|
|
54
|
+
</DaysContainer>
|
|
55
|
+
)
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
|
|
3
|
+
import { cs } from '../../utils'
|
|
4
|
+
import { CalendarItem as MonthItem, CalendarItemsContainer } from '../calendar.styles'
|
|
5
|
+
import { TimeResult } from '../calendar.types'
|
|
6
|
+
import { monthsShort } from '../consts'
|
|
7
|
+
|
|
8
|
+
type MonthPickerProps = {
|
|
9
|
+
calendar: TimeResult
|
|
10
|
+
onSelectMonth?: (date: Date) => void
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
export const MonthPicker = ({ calendar, onSelectMonth }: MonthPickerProps) => (
|
|
14
|
+
<CalendarItemsContainer className={cs('vui-month-picker')} gridTemplateRows="repeat(4, 65px)">
|
|
15
|
+
{calendar.items.map(item => (
|
|
16
|
+
<MonthItem
|
|
17
|
+
fontWeight={500}
|
|
18
|
+
key={item.date.getTime()}
|
|
19
|
+
onClick={(!item.isDisabled && onSelectMonth && onSelectMonth(item.date)) || undefined}
|
|
20
|
+
{...item}
|
|
21
|
+
>
|
|
22
|
+
{monthsShort[item.date.getUTCMonth()]}
|
|
23
|
+
</MonthItem>
|
|
24
|
+
))}
|
|
25
|
+
</CalendarItemsContainer>
|
|
26
|
+
)
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import React, { FC } from 'react'
|
|
2
|
+
|
|
3
|
+
import { Box } from '../../box'
|
|
4
|
+
import { Button } from '../../button'
|
|
5
|
+
import { cs } from '../../utils'
|
|
6
|
+
import { TimeUnitMode } from '../calendar.types'
|
|
7
|
+
import { months } from '../consts'
|
|
8
|
+
import { isDay, isMonth, isYear } from '../utils'
|
|
9
|
+
|
|
10
|
+
const h = 40
|
|
11
|
+
const fontSize = 16
|
|
12
|
+
|
|
13
|
+
type TimeUnitHeaderProps = {
|
|
14
|
+
onSetTimeUnitMode: (mode: TimeUnitMode) => void
|
|
15
|
+
timeUnitMode: TimeUnitMode
|
|
16
|
+
viewMonth: Date
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Displays the header title with the month and year being viewed
|
|
21
|
+
*/
|
|
22
|
+
export const TimeUnitHeader: FC<TimeUnitHeaderProps> = ({ onSetTimeUnitMode, timeUnitMode, viewMonth }) => {
|
|
23
|
+
return (
|
|
24
|
+
<Box center className={cs('vui-time-unit-header')} cursor="pointer" flex="1" justify="start">
|
|
25
|
+
{isDay(timeUnitMode) && (
|
|
26
|
+
<>
|
|
27
|
+
<Button fontSize={fontSize} h={h} onClick={() => onSetTimeUnitMode('month')} variant="tertiaryDark">
|
|
28
|
+
{months[viewMonth.getUTCMonth()]}
|
|
29
|
+
</Button>
|
|
30
|
+
<Button fontSize={fontSize} h={h} onClick={() => onSetTimeUnitMode('year')} variant="tertiaryDark">
|
|
31
|
+
{viewMonth.getUTCFullYear()}
|
|
32
|
+
</Button>
|
|
33
|
+
</>
|
|
34
|
+
)}
|
|
35
|
+
{isMonth(timeUnitMode) && (
|
|
36
|
+
<Button fontSize={fontSize} h={h} onClick={() => onSetTimeUnitMode('year')} variant="tertiaryDark">
|
|
37
|
+
{viewMonth.getUTCFullYear()}
|
|
38
|
+
</Button>
|
|
39
|
+
)}
|
|
40
|
+
{isYear(timeUnitMode) && (
|
|
41
|
+
<Button fontSize={fontSize} h={h} onClick={() => onSetTimeUnitMode('day')} variant="tertiaryDark">
|
|
42
|
+
Year
|
|
43
|
+
</Button>
|
|
44
|
+
)}
|
|
45
|
+
</Box>
|
|
46
|
+
)
|
|
47
|
+
}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import React from 'react'
|
|
2
|
+
|
|
3
|
+
import { CalendarItem as YearItem, CalendarItemsContainer } from '../calendar.styles'
|
|
4
|
+
import { TimeResult } from '../calendar.types'
|
|
5
|
+
|
|
6
|
+
type YearPickerProps = {
|
|
7
|
+
calendar: TimeResult
|
|
8
|
+
onSelectYear?: (date: Date) => void
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export const YearPicker = ({ calendar, onSelectYear }: YearPickerProps) => (
|
|
12
|
+
<CalendarItemsContainer className="vui-year-picker">
|
|
13
|
+
{calendar.items.map(item => (
|
|
14
|
+
<YearItem
|
|
15
|
+
fontWeight={500}
|
|
16
|
+
key={item.date.getTime()}
|
|
17
|
+
onClick={(!item.isDisabled && onSelectYear?.(item.date)) || undefined}
|
|
18
|
+
{...item}
|
|
19
|
+
>
|
|
20
|
+
{item.date.getUTCFullYear()}
|
|
21
|
+
</YearItem>
|
|
22
|
+
))}
|
|
23
|
+
</CalendarItemsContainer>
|
|
24
|
+
)
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
export const viewYears = 12
|
|
2
|
+
|
|
3
|
+
export const maxDateTimestamp = '9000-12-31T23:59:59Z'
|
|
4
|
+
|
|
5
|
+
export const minDateTimestamp = '1753-01-02T00:00:00Z'
|
|
6
|
+
|
|
7
|
+
export const months = [
|
|
8
|
+
'January',
|
|
9
|
+
'February',
|
|
10
|
+
'March',
|
|
11
|
+
'April',
|
|
12
|
+
'May',
|
|
13
|
+
'June',
|
|
14
|
+
'July',
|
|
15
|
+
'August',
|
|
16
|
+
'September',
|
|
17
|
+
'October',
|
|
18
|
+
'November',
|
|
19
|
+
'December'
|
|
20
|
+
]
|
|
21
|
+
|
|
22
|
+
export const monthsShort = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec']
|
|
23
|
+
|
|
24
|
+
export const weekDays = ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su']
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { DateRange } from '../calendar.types'
|
|
2
|
+
import { maxDateTimestamp, minDateTimestamp } from '../consts'
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Calculates boundaries for max/min dates allowed
|
|
6
|
+
* Memoized so it will only recalculate when the boundaries changes
|
|
7
|
+
*/
|
|
8
|
+
export const useBoundaries = ({ boundaries }: { boundaries?: DateRange }) => {
|
|
9
|
+
const min = new Date(minDateTimestamp)
|
|
10
|
+
const max = new Date(maxDateTimestamp)
|
|
11
|
+
|
|
12
|
+
const minDateTime = boundaries?.startDate || min
|
|
13
|
+
const maxDateTime = boundaries?.endDate || max
|
|
14
|
+
|
|
15
|
+
return { maxDateTime, minDateTime }
|
|
16
|
+
}
|