@coreui/react-pro 5.9.2 → 5.11.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/README.md +1 -1
- package/dist/cjs/components/accordion/CAccordion.js +1 -1
- package/dist/cjs/components/accordion/CAccordionBody.js +1 -1
- package/dist/cjs/components/accordion/CAccordionButton.js +3 -3
- package/dist/cjs/components/accordion/CAccordionButton.js.map +1 -1
- package/dist/cjs/components/accordion/CAccordionHeader.js +1 -1
- package/dist/cjs/components/accordion/CAccordionItem.d.ts +1 -0
- package/dist/cjs/components/accordion/CAccordionItem.js +7 -4
- package/dist/cjs/components/accordion/CAccordionItem.js.map +1 -1
- package/dist/cjs/components/alert/CAlert.js +1 -1
- package/dist/cjs/components/alert/CAlertHeading.js +1 -1
- package/dist/cjs/components/alert/CAlertLink.js +1 -1
- package/dist/cjs/components/avatar/CAvatar.js +1 -1
- package/dist/cjs/components/backdrop/CBackdrop.js +1 -1
- package/dist/cjs/components/badge/CBadge.js +2 -2
- package/dist/cjs/components/badge/CBadge.js.map +1 -1
- package/dist/cjs/components/breadcrumb/CBreadcrumb.js +1 -1
- package/dist/cjs/components/breadcrumb/CBreadcrumbItem.js +1 -1
- package/dist/cjs/components/button/CButton.js +1 -1
- package/dist/cjs/components/button-group/CButtonGroup.js +1 -1
- package/dist/cjs/components/button-group/CButtonToolbar.js +1 -1
- package/dist/cjs/components/calendar/CCalendar.d.ts +58 -44
- package/dist/cjs/components/calendar/CCalendar.js +52 -188
- package/dist/cjs/components/calendar/CCalendar.js.map +1 -1
- package/dist/cjs/components/calendar/CCalendarNavigation.d.ts +21 -0
- package/dist/cjs/components/calendar/CCalendarNavigation.js +23 -0
- package/dist/cjs/components/calendar/CCalendarNavigation.js.map +1 -0
- package/dist/cjs/components/calendar/CCalendarPanel.d.ts +28 -0
- package/dist/cjs/components/calendar/CCalendarPanel.js +149 -0
- package/dist/cjs/components/calendar/CCalendarPanel.js.map +1 -0
- package/dist/cjs/components/calendar/types.d.ts +3 -0
- package/dist/cjs/components/calendar/utils.d.ts +176 -18
- package/dist/cjs/components/calendar/utils.js +330 -52
- package/dist/cjs/components/calendar/utils.js.map +1 -1
- package/dist/cjs/components/callout/CCallout.js +1 -1
- package/dist/cjs/components/card/CCard.js +1 -1
- package/dist/cjs/components/card/CCardBody.js +1 -1
- package/dist/cjs/components/card/CCardFooter.js +1 -1
- package/dist/cjs/components/card/CCardGroup.js +1 -1
- package/dist/cjs/components/card/CCardHeader.js +1 -1
- package/dist/cjs/components/card/CCardImage.js +1 -1
- package/dist/cjs/components/card/CCardImageOverlay.js +1 -1
- package/dist/cjs/components/card/CCardLink.js +1 -1
- package/dist/cjs/components/card/CCardSubtitle.js +1 -1
- package/dist/cjs/components/card/CCardText.js +1 -1
- package/dist/cjs/components/card/CCardTitle.js +1 -1
- package/dist/cjs/components/carousel/CCarousel.js +1 -1
- package/dist/cjs/components/carousel/CCarouselCaption.js +1 -1
- package/dist/cjs/components/carousel/CCarouselItem.js +1 -1
- package/dist/cjs/components/close-button/CCloseButton.js +1 -1
- package/dist/cjs/components/collapse/CCollapse.js +1 -1
- package/dist/cjs/components/date-picker/CDatePicker.d.ts +1 -1
- package/dist/cjs/components/date-picker/CDatePicker.js +1 -1
- package/dist/cjs/components/date-range-picker/CDateRangePicker.d.ts +2 -2
- package/dist/cjs/components/date-range-picker/CDateRangePicker.js +1 -3
- package/dist/cjs/components/date-range-picker/CDateRangePicker.js.map +1 -1
- package/dist/cjs/components/date-range-picker/utils.d.ts +16 -0
- package/dist/cjs/components/date-range-picker/utils.js +18 -2
- package/dist/cjs/components/date-range-picker/utils.js.map +1 -1
- package/dist/cjs/components/dropdown/CDropdown.js +1 -1
- package/dist/cjs/components/dropdown/CDropdownDivider.js +1 -1
- package/dist/cjs/components/dropdown/CDropdownHeader.js +1 -1
- package/dist/cjs/components/dropdown/CDropdownItem.js +1 -1
- package/dist/cjs/components/dropdown/CDropdownItemPlain.js +1 -1
- package/dist/cjs/components/dropdown/CDropdownMenu.js +1 -1
- package/dist/cjs/components/dropdown/CDropdownToggle.js +2 -2
- package/dist/cjs/components/dropdown/CDropdownToggle.js.map +1 -1
- package/dist/cjs/components/element-cover/CElementCover.js +1 -1
- package/dist/cjs/components/footer/CFooter.js +1 -1
- package/dist/cjs/components/form/CForm.js +1 -1
- package/dist/cjs/components/form/CFormCheck.js +1 -1
- package/dist/cjs/components/form/CFormControlValidation.js +1 -1
- package/dist/cjs/components/form/CFormControlWrapper.js +1 -1
- package/dist/cjs/components/form/CFormFeedback.js +1 -1
- package/dist/cjs/components/form/CFormFloating.js +1 -1
- package/dist/cjs/components/form/CFormInput.js +1 -1
- package/dist/cjs/components/form/CFormLabel.js +1 -1
- package/dist/cjs/components/form/CFormRange.js +1 -1
- package/dist/cjs/components/form/CFormSelect.js +1 -1
- package/dist/cjs/components/form/CFormSwitch.js +1 -1
- package/dist/cjs/components/form/CFormText.js +1 -1
- package/dist/cjs/components/form/CFormTextarea.js +1 -1
- package/dist/cjs/components/form/CInputGroup.js +1 -1
- package/dist/cjs/components/form/CInputGroupText.js +1 -1
- package/dist/cjs/components/grid/CCol.js +1 -1
- package/dist/cjs/components/grid/CContainer.js +1 -1
- package/dist/cjs/components/grid/CRow.js +1 -1
- package/dist/cjs/components/header/CHeader.js +1 -1
- package/dist/cjs/components/header/CHeaderBrand.js +1 -1
- package/dist/cjs/components/header/CHeaderDivider.js +1 -1
- package/dist/cjs/components/header/CHeaderNav.js +1 -1
- package/dist/cjs/components/header/CHeaderText.js +1 -1
- package/dist/cjs/components/header/CHeaderToggler.js +1 -1
- package/dist/cjs/components/image/CImage.js +1 -1
- package/dist/cjs/components/link/CLink.js +1 -1
- package/dist/cjs/components/list-group/CListGroup.js +1 -1
- package/dist/cjs/components/list-group/CListGroupItem.js +1 -1
- package/dist/cjs/components/loading-button/CLoadingButton.js +1 -1
- package/dist/cjs/components/modal/CModal.js +1 -2
- package/dist/cjs/components/modal/CModal.js.map +1 -1
- package/dist/cjs/components/modal/CModalBody.js +1 -1
- package/dist/cjs/components/modal/CModalContent.js +1 -1
- package/dist/cjs/components/modal/CModalDialog.js +1 -1
- package/dist/cjs/components/modal/CModalFooter.js +1 -1
- package/dist/cjs/components/modal/CModalHeader.js +1 -1
- package/dist/cjs/components/modal/CModalTitle.js +1 -1
- package/dist/cjs/components/multi-select/CMultiSelect.js +1 -1
- package/dist/cjs/components/multi-select/CMultiSelectNativeSelect.js +1 -1
- package/dist/cjs/components/multi-select/CMultiSelectOptions.js +1 -1
- package/dist/cjs/components/multi-select/utils.js +1 -1
- package/dist/cjs/components/nav/CNav.js +1 -1
- package/dist/cjs/components/nav/CNavGroup.js +2 -2
- package/dist/cjs/components/nav/CNavGroup.js.map +1 -1
- package/dist/cjs/components/nav/CNavGroupItems.js +1 -1
- package/dist/cjs/components/nav/CNavItem.js +1 -1
- package/dist/cjs/components/nav/CNavLink.js +1 -1
- package/dist/cjs/components/nav/CNavTitle.js +1 -1
- package/dist/cjs/components/navbar/CNavbar.js +1 -1
- package/dist/cjs/components/navbar/CNavbarBrand.js +1 -1
- package/dist/cjs/components/navbar/CNavbarNav.js +1 -1
- package/dist/cjs/components/navbar/CNavbarText.js +1 -1
- package/dist/cjs/components/navbar/CNavbarToggler.js +1 -1
- package/dist/cjs/components/offcanvas/COffcanvas.js +1 -1
- package/dist/cjs/components/offcanvas/COffcanvasBody.js +1 -1
- package/dist/cjs/components/offcanvas/COffcanvasHeader.js +1 -1
- package/dist/cjs/components/offcanvas/COffcanvasTitle.js +1 -1
- package/dist/cjs/components/pagination/CPagination.js +1 -1
- package/dist/cjs/components/pagination/CPaginationItem.js +1 -1
- package/dist/cjs/components/picker/CPicker.js +1 -1
- package/dist/cjs/components/placeholder/CPlaceholder.js +1 -1
- package/dist/cjs/components/popover/CPopover.js +1 -1
- package/dist/cjs/components/progress/CProgress.d.ts +1 -1
- package/dist/cjs/components/progress/CProgress.js +1 -1
- package/dist/cjs/components/progress/CProgressBar.js +1 -1
- package/dist/cjs/components/progress/CProgressStacked.js +1 -1
- package/dist/cjs/components/range-slider/CRangeSlider.js +7 -3
- package/dist/cjs/components/range-slider/CRangeSlider.js.map +1 -1
- package/dist/cjs/components/range-slider/utils.js +1 -1
- package/dist/cjs/components/rating/CRating.js +1 -1
- package/dist/cjs/components/sidebar/CSidebar.d.ts +7 -2
- package/dist/cjs/components/sidebar/CSidebar.js +8 -7
- package/dist/cjs/components/sidebar/CSidebar.js.map +1 -1
- package/dist/cjs/components/sidebar/CSidebarBrand.js +1 -1
- package/dist/cjs/components/sidebar/CSidebarFooter.js +1 -1
- package/dist/cjs/components/sidebar/CSidebarHeader.js +1 -1
- package/dist/cjs/components/sidebar/CSidebarNav.js +1 -1
- package/dist/cjs/components/sidebar/CSidebarToggler.js +1 -1
- package/dist/cjs/components/smart-pagination/CSmartPagination.d.ts +4 -12
- package/dist/cjs/components/smart-pagination/CSmartPagination.js +1 -1
- package/dist/cjs/components/smart-pagination/CSmartPagination.js.map +1 -1
- package/dist/cjs/components/smart-table/CSmartTable.js +1 -1
- package/dist/cjs/components/smart-table/CSmartTableBody.js +1 -1
- package/dist/cjs/components/smart-table/CSmartTableHead.js +11 -26
- package/dist/cjs/components/smart-table/CSmartTableHead.js.map +1 -1
- package/dist/cjs/components/smart-table/utils.js +1 -1
- package/dist/cjs/components/spinner/CSpinner.js +1 -1
- package/dist/cjs/components/table/CTable.js +1 -1
- package/dist/cjs/components/table/CTableBody.js +1 -1
- package/dist/cjs/components/table/CTableCaption.js +1 -1
- package/dist/cjs/components/table/CTableDataCell.js +1 -1
- package/dist/cjs/components/table/CTableFoot.js +1 -1
- package/dist/cjs/components/table/CTableHead.js +1 -1
- package/dist/cjs/components/table/CTableHeaderCell.js +1 -1
- package/dist/cjs/components/table/CTableResponsiveWrapper.js +1 -1
- package/dist/cjs/components/table/CTableRow.js +1 -1
- package/dist/cjs/components/tabs/CTab.js +1 -1
- package/dist/cjs/components/tabs/CTabContent.js +1 -1
- package/dist/cjs/components/tabs/CTabList.js +1 -1
- package/dist/cjs/components/tabs/CTabPane.js +1 -1
- package/dist/cjs/components/tabs/CTabPanel.js +1 -1
- package/dist/cjs/components/time-picker/CTimePicker.d.ts +1 -1
- package/dist/cjs/components/time-picker/CTimePicker.js +1 -1
- package/dist/cjs/components/time-picker/CTimePicker.js.map +1 -1
- package/dist/cjs/components/time-picker/CTimePickerRollCol.js +1 -1
- package/dist/cjs/components/time-picker/types.d.ts +5 -0
- package/dist/cjs/components/time-picker/utils.d.ts +8 -11
- package/dist/cjs/components/time-picker/utils.js +8 -4
- package/dist/cjs/components/time-picker/utils.js.map +1 -1
- package/dist/cjs/components/toast/CToast.js +1 -1
- package/dist/cjs/components/toast/CToastBody.js +1 -1
- package/dist/cjs/components/toast/CToastClose.js +1 -1
- package/dist/cjs/components/toast/CToastHeader.js +1 -1
- package/dist/cjs/components/toast/CToaster.js +1 -1
- package/dist/cjs/components/tooltip/CTooltip.js +1 -1
- package/dist/cjs/components/virtual-scroller/CVirtualScroller.js +1 -1
- package/dist/cjs/components/widgets/CWidgetStatsA.js +1 -1
- package/dist/cjs/components/widgets/CWidgetStatsB.js +1 -1
- package/dist/cjs/components/widgets/CWidgetStatsC.js +1 -1
- package/dist/cjs/components/widgets/CWidgetStatsD.js +1 -1
- package/dist/cjs/components/widgets/CWidgetStatsE.js +1 -1
- package/dist/cjs/components/widgets/CWidgetStatsF.js +1 -1
- package/dist/cjs/hooks/index.d.ts +2 -1
- package/dist/cjs/hooks/useClipboard.d.ts +12 -0
- package/dist/cjs/hooks/useClipboard.js +54 -0
- package/dist/cjs/hooks/useClipboard.js.map +1 -0
- package/dist/cjs/hooks/useColorModes.js +5 -5
- package/dist/cjs/hooks/useColorModes.js.map +1 -1
- package/dist/cjs/hooks/useDropdownWithPopper.js +1 -1
- package/dist/cjs/index.js +2 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/node_modules/classnames/index.js.map +1 -1
- package/dist/cjs/node_modules/react-device-detect/dist/lib.js +1 -1
- package/dist/cjs/node_modules/react-device-detect/dist/lib.js.map +1 -1
- package/dist/cjs/node_modules/tslib/tslib.es6.js +100 -0
- package/dist/cjs/{packages/coreui-react-pro/node_modules → node_modules}/tslib/tslib.es6.js.map +1 -1
- package/dist/cjs/node_modules/ua-parser-js/dist/ua-parser.min.js +2 -2
- package/dist/cjs/node_modules/ua-parser-js/dist/ua-parser.min.js.map +1 -1
- package/dist/cjs/utils/index.d.ts +2 -1
- package/dist/cjs/utils/mergeClassNames.d.ts +2 -0
- package/dist/esm/components/accordion/CAccordion.js +1 -1
- package/dist/esm/components/accordion/CAccordionBody.js +1 -1
- package/dist/esm/components/accordion/CAccordionButton.js +3 -3
- package/dist/esm/components/accordion/CAccordionButton.js.map +1 -1
- package/dist/esm/components/accordion/CAccordionHeader.js +1 -1
- package/dist/esm/components/accordion/CAccordionItem.d.ts +1 -0
- package/dist/esm/components/accordion/CAccordionItem.js +8 -5
- package/dist/esm/components/accordion/CAccordionItem.js.map +1 -1
- package/dist/esm/components/alert/CAlert.js +1 -1
- package/dist/esm/components/alert/CAlertHeading.js +1 -1
- package/dist/esm/components/alert/CAlertLink.js +1 -1
- package/dist/esm/components/avatar/CAvatar.js +1 -1
- package/dist/esm/components/backdrop/CBackdrop.js +1 -1
- package/dist/esm/components/badge/CBadge.js +2 -2
- package/dist/esm/components/badge/CBadge.js.map +1 -1
- package/dist/esm/components/breadcrumb/CBreadcrumb.js +1 -1
- package/dist/esm/components/breadcrumb/CBreadcrumbItem.js +1 -1
- package/dist/esm/components/button/CButton.js +1 -1
- package/dist/esm/components/button-group/CButtonGroup.js +1 -1
- package/dist/esm/components/button-group/CButtonToolbar.js +1 -1
- package/dist/esm/components/calendar/CCalendar.d.ts +58 -44
- package/dist/esm/components/calendar/CCalendar.js +53 -189
- package/dist/esm/components/calendar/CCalendar.js.map +1 -1
- package/dist/esm/components/calendar/CCalendarNavigation.d.ts +21 -0
- package/dist/esm/components/calendar/CCalendarNavigation.js +21 -0
- package/dist/esm/components/calendar/CCalendarNavigation.js.map +1 -0
- package/dist/esm/components/calendar/CCalendarPanel.d.ts +28 -0
- package/dist/esm/components/calendar/CCalendarPanel.js +147 -0
- package/dist/esm/components/calendar/CCalendarPanel.js.map +1 -0
- package/dist/esm/components/calendar/types.d.ts +3 -0
- package/dist/esm/components/calendar/utils.d.ts +176 -18
- package/dist/esm/components/calendar/utils.js +324 -53
- package/dist/esm/components/calendar/utils.js.map +1 -1
- package/dist/esm/components/callout/CCallout.js +1 -1
- package/dist/esm/components/card/CCard.js +1 -1
- package/dist/esm/components/card/CCardBody.js +1 -1
- package/dist/esm/components/card/CCardFooter.js +1 -1
- package/dist/esm/components/card/CCardGroup.js +1 -1
- package/dist/esm/components/card/CCardHeader.js +1 -1
- package/dist/esm/components/card/CCardImage.js +1 -1
- package/dist/esm/components/card/CCardImageOverlay.js +1 -1
- package/dist/esm/components/card/CCardLink.js +1 -1
- package/dist/esm/components/card/CCardSubtitle.js +1 -1
- package/dist/esm/components/card/CCardText.js +1 -1
- package/dist/esm/components/card/CCardTitle.js +1 -1
- package/dist/esm/components/carousel/CCarousel.js +1 -1
- package/dist/esm/components/carousel/CCarouselCaption.js +1 -1
- package/dist/esm/components/carousel/CCarouselItem.js +1 -1
- package/dist/esm/components/close-button/CCloseButton.js +1 -1
- package/dist/esm/components/collapse/CCollapse.js +1 -1
- package/dist/esm/components/date-picker/CDatePicker.d.ts +1 -1
- package/dist/esm/components/date-picker/CDatePicker.js +1 -1
- package/dist/esm/components/date-range-picker/CDateRangePicker.d.ts +2 -2
- package/dist/esm/components/date-range-picker/CDateRangePicker.js +1 -3
- package/dist/esm/components/date-range-picker/CDateRangePicker.js.map +1 -1
- package/dist/esm/components/date-range-picker/utils.d.ts +16 -0
- package/dist/esm/components/date-range-picker/utils.js +18 -2
- package/dist/esm/components/date-range-picker/utils.js.map +1 -1
- package/dist/esm/components/dropdown/CDropdown.js +1 -1
- package/dist/esm/components/dropdown/CDropdownDivider.js +1 -1
- package/dist/esm/components/dropdown/CDropdownHeader.js +1 -1
- package/dist/esm/components/dropdown/CDropdownItem.js +1 -1
- package/dist/esm/components/dropdown/CDropdownItemPlain.js +1 -1
- package/dist/esm/components/dropdown/CDropdownMenu.js +1 -1
- package/dist/esm/components/dropdown/CDropdownToggle.js +2 -2
- package/dist/esm/components/dropdown/CDropdownToggle.js.map +1 -1
- package/dist/esm/components/element-cover/CElementCover.js +1 -1
- package/dist/esm/components/footer/CFooter.js +1 -1
- package/dist/esm/components/form/CForm.js +1 -1
- package/dist/esm/components/form/CFormCheck.js +1 -1
- package/dist/esm/components/form/CFormControlValidation.js +1 -1
- package/dist/esm/components/form/CFormControlWrapper.js +1 -1
- package/dist/esm/components/form/CFormFeedback.js +1 -1
- package/dist/esm/components/form/CFormFloating.js +1 -1
- package/dist/esm/components/form/CFormInput.js +1 -1
- package/dist/esm/components/form/CFormLabel.js +1 -1
- package/dist/esm/components/form/CFormRange.js +1 -1
- package/dist/esm/components/form/CFormSelect.js +1 -1
- package/dist/esm/components/form/CFormSwitch.js +1 -1
- package/dist/esm/components/form/CFormText.js +1 -1
- package/dist/esm/components/form/CFormTextarea.js +1 -1
- package/dist/esm/components/form/CInputGroup.js +1 -1
- package/dist/esm/components/form/CInputGroupText.js +1 -1
- package/dist/esm/components/grid/CCol.js +1 -1
- package/dist/esm/components/grid/CContainer.js +1 -1
- package/dist/esm/components/grid/CRow.js +1 -1
- package/dist/esm/components/header/CHeader.js +1 -1
- package/dist/esm/components/header/CHeaderBrand.js +1 -1
- package/dist/esm/components/header/CHeaderDivider.js +1 -1
- package/dist/esm/components/header/CHeaderNav.js +1 -1
- package/dist/esm/components/header/CHeaderText.js +1 -1
- package/dist/esm/components/header/CHeaderToggler.js +1 -1
- package/dist/esm/components/image/CImage.js +1 -1
- package/dist/esm/components/link/CLink.js +1 -1
- package/dist/esm/components/list-group/CListGroup.js +1 -1
- package/dist/esm/components/list-group/CListGroupItem.js +1 -1
- package/dist/esm/components/loading-button/CLoadingButton.js +1 -1
- package/dist/esm/components/modal/CModal.js +1 -2
- package/dist/esm/components/modal/CModal.js.map +1 -1
- package/dist/esm/components/modal/CModalBody.js +1 -1
- package/dist/esm/components/modal/CModalContent.js +1 -1
- package/dist/esm/components/modal/CModalDialog.js +1 -1
- package/dist/esm/components/modal/CModalFooter.js +1 -1
- package/dist/esm/components/modal/CModalHeader.js +1 -1
- package/dist/esm/components/modal/CModalTitle.js +1 -1
- package/dist/esm/components/multi-select/CMultiSelect.js +1 -1
- package/dist/esm/components/multi-select/CMultiSelectNativeSelect.js +1 -1
- package/dist/esm/components/multi-select/CMultiSelectOptions.js +1 -1
- package/dist/esm/components/multi-select/utils.js +1 -1
- package/dist/esm/components/nav/CNav.js +1 -1
- package/dist/esm/components/nav/CNavGroup.js +2 -2
- package/dist/esm/components/nav/CNavGroup.js.map +1 -1
- package/dist/esm/components/nav/CNavGroupItems.js +1 -1
- package/dist/esm/components/nav/CNavItem.js +1 -1
- package/dist/esm/components/nav/CNavLink.js +1 -1
- package/dist/esm/components/nav/CNavTitle.js +1 -1
- package/dist/esm/components/navbar/CNavbar.js +1 -1
- package/dist/esm/components/navbar/CNavbarBrand.js +1 -1
- package/dist/esm/components/navbar/CNavbarNav.js +1 -1
- package/dist/esm/components/navbar/CNavbarText.js +1 -1
- package/dist/esm/components/navbar/CNavbarToggler.js +1 -1
- package/dist/esm/components/offcanvas/COffcanvas.js +1 -1
- package/dist/esm/components/offcanvas/COffcanvasBody.js +1 -1
- package/dist/esm/components/offcanvas/COffcanvasHeader.js +1 -1
- package/dist/esm/components/offcanvas/COffcanvasTitle.js +1 -1
- package/dist/esm/components/pagination/CPagination.js +1 -1
- package/dist/esm/components/pagination/CPaginationItem.js +1 -1
- package/dist/esm/components/picker/CPicker.js +1 -1
- package/dist/esm/components/placeholder/CPlaceholder.js +1 -1
- package/dist/esm/components/popover/CPopover.js +1 -1
- package/dist/esm/components/progress/CProgress.d.ts +1 -1
- package/dist/esm/components/progress/CProgress.js +1 -1
- package/dist/esm/components/progress/CProgressBar.js +1 -1
- package/dist/esm/components/progress/CProgressStacked.js +1 -1
- package/dist/esm/components/range-slider/CRangeSlider.js +7 -3
- package/dist/esm/components/range-slider/CRangeSlider.js.map +1 -1
- package/dist/esm/components/range-slider/utils.js +1 -1
- package/dist/esm/components/rating/CRating.js +1 -1
- package/dist/esm/components/sidebar/CSidebar.d.ts +7 -2
- package/dist/esm/components/sidebar/CSidebar.js +8 -7
- package/dist/esm/components/sidebar/CSidebar.js.map +1 -1
- package/dist/esm/components/sidebar/CSidebarBrand.js +1 -1
- package/dist/esm/components/sidebar/CSidebarFooter.js +1 -1
- package/dist/esm/components/sidebar/CSidebarHeader.js +1 -1
- package/dist/esm/components/sidebar/CSidebarNav.js +1 -1
- package/dist/esm/components/sidebar/CSidebarToggler.js +1 -1
- package/dist/esm/components/smart-pagination/CSmartPagination.d.ts +4 -12
- package/dist/esm/components/smart-pagination/CSmartPagination.js +1 -1
- package/dist/esm/components/smart-pagination/CSmartPagination.js.map +1 -1
- package/dist/esm/components/smart-table/CSmartTable.js +1 -1
- package/dist/esm/components/smart-table/CSmartTableBody.js +1 -1
- package/dist/esm/components/smart-table/CSmartTableHead.js +12 -27
- package/dist/esm/components/smart-table/CSmartTableHead.js.map +1 -1
- package/dist/esm/components/smart-table/utils.js +1 -1
- package/dist/esm/components/spinner/CSpinner.js +1 -1
- package/dist/esm/components/table/CTable.js +1 -1
- package/dist/esm/components/table/CTableBody.js +1 -1
- package/dist/esm/components/table/CTableCaption.js +1 -1
- package/dist/esm/components/table/CTableDataCell.js +1 -1
- package/dist/esm/components/table/CTableFoot.js +1 -1
- package/dist/esm/components/table/CTableHead.js +1 -1
- package/dist/esm/components/table/CTableHeaderCell.js +1 -1
- package/dist/esm/components/table/CTableResponsiveWrapper.js +1 -1
- package/dist/esm/components/table/CTableRow.js +1 -1
- package/dist/esm/components/tabs/CTab.js +1 -1
- package/dist/esm/components/tabs/CTabContent.js +1 -1
- package/dist/esm/components/tabs/CTabList.js +1 -1
- package/dist/esm/components/tabs/CTabPane.js +1 -1
- package/dist/esm/components/tabs/CTabPanel.js +1 -1
- package/dist/esm/components/time-picker/CTimePicker.d.ts +1 -1
- package/dist/esm/components/time-picker/CTimePicker.js +1 -1
- package/dist/esm/components/time-picker/CTimePicker.js.map +1 -1
- package/dist/esm/components/time-picker/CTimePickerRollCol.js +1 -1
- package/dist/esm/components/time-picker/types.d.ts +5 -0
- package/dist/esm/components/time-picker/utils.d.ts +8 -11
- package/dist/esm/components/time-picker/utils.js +8 -4
- package/dist/esm/components/time-picker/utils.js.map +1 -1
- package/dist/esm/components/toast/CToast.js +1 -1
- package/dist/esm/components/toast/CToastBody.js +1 -1
- package/dist/esm/components/toast/CToastClose.js +1 -1
- package/dist/esm/components/toast/CToastHeader.js +1 -1
- package/dist/esm/components/toast/CToaster.js +1 -1
- package/dist/esm/components/tooltip/CTooltip.js +1 -1
- package/dist/esm/components/virtual-scroller/CVirtualScroller.js +1 -1
- package/dist/esm/components/widgets/CWidgetStatsA.js +1 -1
- package/dist/esm/components/widgets/CWidgetStatsB.js +1 -1
- package/dist/esm/components/widgets/CWidgetStatsC.js +1 -1
- package/dist/esm/components/widgets/CWidgetStatsD.js +1 -1
- package/dist/esm/components/widgets/CWidgetStatsE.js +1 -1
- package/dist/esm/components/widgets/CWidgetStatsF.js +1 -1
- package/dist/esm/hooks/index.d.ts +2 -1
- package/dist/esm/hooks/useClipboard.d.ts +12 -0
- package/dist/esm/hooks/useClipboard.js +52 -0
- package/dist/esm/hooks/useClipboard.js.map +1 -0
- package/dist/esm/hooks/useColorModes.js +5 -5
- package/dist/esm/hooks/useColorModes.js.map +1 -1
- package/dist/esm/hooks/useDropdownWithPopper.js +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/node_modules/classnames/index.js.map +1 -1
- package/dist/esm/node_modules/react-device-detect/dist/lib.js +1 -1
- package/dist/esm/node_modules/react-device-detect/dist/lib.js.map +1 -1
- package/dist/esm/node_modules/tslib/tslib.es6.js +95 -0
- package/dist/esm/{packages/coreui-react-pro/node_modules → node_modules}/tslib/tslib.es6.js.map +1 -1
- package/dist/esm/node_modules/ua-parser-js/dist/ua-parser.min.js +2 -2
- package/dist/esm/node_modules/ua-parser-js/dist/ua-parser.min.js.map +1 -1
- package/dist/esm/utils/index.d.ts +2 -1
- package/dist/esm/utils/mergeClassNames.d.ts +2 -0
- package/package.json +13 -11
- package/src/components/accordion/CAccordionButton.tsx +3 -2
- package/src/components/accordion/CAccordionItem.tsx +8 -3
- package/src/components/accordion/__tests__/__snapshots__/CAccordionButton.spec.tsx.snap +0 -2
- package/src/components/accordion/__tests__/__snapshots__/CAccordionHeader.spec.tsx.snap +0 -2
- package/src/components/badge/CBadge.tsx +1 -1
- package/src/components/calendar/CCalendar.tsx +156 -489
- package/src/components/calendar/CCalendarNavigation.tsx +120 -0
- package/src/components/calendar/CCalendarPanel.tsx +306 -0
- package/src/components/calendar/types.ts +5 -0
- package/src/components/calendar/utils.ts +428 -110
- package/src/components/carousel/__tests__/CCarousel.spec.tsx +1 -2
- package/src/components/date-picker/CDatePicker.tsx +1 -1
- package/src/components/date-range-picker/CDateRangePicker.tsx +2 -4
- package/src/components/date-range-picker/utils.ts +23 -3
- package/src/components/dropdown/CDropdownToggle.tsx +1 -1
- package/src/components/dropdown/__tests__/CDropdown.spec.tsx +43 -19
- package/src/components/modal/CModal.tsx +0 -2
- package/src/components/modal/__tests__/CModal.spec.tsx +33 -25
- package/src/components/nav/CNavGroup.tsx +5 -1
- package/src/components/nav/__tests__/__snapshots__/CNavGroup.spec.tsx.snap +4 -1
- package/src/components/popover/__tests__/CPopover.spec.tsx +1 -1
- package/src/components/popover/__tests__/__snapshots__/CPopover.spec.tsx.snap +2 -3
- package/src/components/progress/CProgress.tsx +1 -1
- package/src/components/range-slider/CRangeSlider.tsx +7 -2
- package/src/components/sidebar/CSidebar.tsx +15 -5
- package/src/components/smart-pagination/CSmartPagination.tsx +4 -12
- package/src/components/smart-table/CSmartTableHead.tsx +7 -34
- package/src/components/time-picker/CTimePicker.tsx +3 -3
- package/src/components/time-picker/types.ts +7 -0
- package/src/components/time-picker/utils.ts +15 -13
- package/src/components/tooltip/__tests__/__snapshots__/CTooltip.spec.tsx.snap +0 -1
- package/src/hooks/index.ts +2 -0
- package/src/hooks/useClipboard.ts +38 -0
- package/src/hooks/useColorModes.ts +5 -5
- package/src/utils/index.ts +2 -0
- package/src/utils/mergeClassNames.ts +25 -0
- package/dist/cjs/packages/coreui-react-pro/node_modules/tslib/tslib.es6.js +0 -60
- package/dist/esm/packages/coreui-react-pro/node_modules/tslib/tslib.es6.js +0 -57
|
@@ -89,8 +89,8 @@ export interface CDateRangePickerProps
|
|
|
89
89
|
* The id attribute for the input elements. It can be a single string for both the start and end dates. If a single string is used, the postfix "-start-date" and "-end-date" will be automatically added to make the IDs unique. Alternatively, you can use an array of two strings for start and end dates separately.
|
|
90
90
|
*
|
|
91
91
|
* **[Deprecated since v5.3.0]** If the property is a type of string, the name attributes for input elements are generated based on this property until you define name prop ex.:
|
|
92
|
-
* -
|
|
93
|
-
* -
|
|
92
|
+
* - `{id}-start-date`
|
|
93
|
+
* - `{id}-end-date`
|
|
94
94
|
*/
|
|
95
95
|
id?: string | [string, string]
|
|
96
96
|
/**
|
|
@@ -304,12 +304,10 @@ export const CDateRangePicker = forwardRef<HTMLDivElement | HTMLLIElement, CDate
|
|
|
304
304
|
|
|
305
305
|
useEffect(() => {
|
|
306
306
|
setStartDate(startDate ? startDate : null)
|
|
307
|
-
setCalendarDate(startDate ? startDate : null)
|
|
308
307
|
}, [startDate])
|
|
309
308
|
|
|
310
309
|
useEffect(() => {
|
|
311
310
|
setEndDate(endDate ? endDate : null)
|
|
312
|
-
range && setCalendarDate(endDate ? endDate : null)
|
|
313
311
|
}, [endDate])
|
|
314
312
|
|
|
315
313
|
useEffect(() => {
|
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Generates input IDs or names based on the provided attributes, range, and position.
|
|
3
|
+
*
|
|
4
|
+
* @param attribute - A single string or a tuple of two strings representing the attribute names.
|
|
5
|
+
* @param range - A boolean indicating whether the input is part of a range.
|
|
6
|
+
* @param position - Optional. Specifies the position ('start' or 'end') when `range` is true.
|
|
7
|
+
* @returns A string representing the input ID or name.
|
|
8
|
+
*/
|
|
1
9
|
export const getInputIdOrName = (
|
|
2
10
|
attribute: string | [string, string],
|
|
3
11
|
range: boolean,
|
|
@@ -14,7 +22,19 @@ export const getInputIdOrName = (
|
|
|
14
22
|
return attribute
|
|
15
23
|
}
|
|
16
24
|
|
|
17
|
-
|
|
25
|
+
/**
|
|
26
|
+
* Parses a date string into a Date object based on the provided locale and time inclusion.
|
|
27
|
+
*
|
|
28
|
+
* @param dateString - The date string to parse.
|
|
29
|
+
* @param locale - The locale to use for parsing the date string.
|
|
30
|
+
* @param includeTime - Optional. Determines whether to include time in the parsed Date object.
|
|
31
|
+
* @returns A Date object representing the parsed date and time, or `undefined` if parsing fails.
|
|
32
|
+
*/
|
|
33
|
+
export const getLocalDateFromString = (
|
|
34
|
+
string: string,
|
|
35
|
+
locale: string,
|
|
36
|
+
time?: boolean,
|
|
37
|
+
): Date | undefined => {
|
|
18
38
|
if (!Number.isNaN(Date.parse(string))) {
|
|
19
39
|
return new Date(Date.parse(string))
|
|
20
40
|
}
|
|
@@ -48,9 +68,9 @@ export const getLocalDateFromString = (string: string, locale: string, time?: bo
|
|
|
48
68
|
Number(partials.groups['month']) - 1,
|
|
49
69
|
Number(partials.groups['day']),
|
|
50
70
|
partials.groups['ampm']
|
|
51
|
-
?
|
|
71
|
+
? partials.groups['ampm'] === 'PM'
|
|
52
72
|
? Number(partials.groups['hour']) + 12
|
|
53
|
-
: Number(partials.groups['hour'])
|
|
73
|
+
: Number(partials.groups['hour'])
|
|
54
74
|
: Number(partials.groups['hour']),
|
|
55
75
|
Number(partials.groups['minute']),
|
|
56
76
|
Number(partials.groups['second']),
|
|
@@ -90,7 +90,7 @@ export const CDropdownToggle: FC<CDropdownToggleProps> = ({
|
|
|
90
90
|
|
|
91
91
|
if (variant === 'nav-item' && navLink) {
|
|
92
92
|
return (
|
|
93
|
-
<a href="#" {...togglerProps} role="button" ref={dropdownToggleRef}>
|
|
93
|
+
<a href="#" {...togglerProps} role="button" {...rest} ref={dropdownToggleRef}>
|
|
94
94
|
{children}
|
|
95
95
|
</a>
|
|
96
96
|
)
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react'
|
|
2
|
-
import { render, screen, fireEvent } from '@testing-library/react'
|
|
2
|
+
import { render, screen, fireEvent, waitFor } from '@testing-library/react'
|
|
3
3
|
import '@testing-library/jest-dom'
|
|
4
4
|
import {
|
|
5
5
|
CDropdown,
|
|
@@ -52,26 +52,50 @@ test('CDropdown customize', async () => {
|
|
|
52
52
|
// jest.useRealTimers()
|
|
53
53
|
// })
|
|
54
54
|
|
|
55
|
-
test('CDropdown click', async () => {
|
|
55
|
+
test('CDropdown opens on toggle click and closes on clicking outside', async () => {
|
|
56
56
|
render(
|
|
57
|
-
<
|
|
58
|
-
|
|
59
|
-
<
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
57
|
+
<div>
|
|
58
|
+
{/* External element to simulate clicking outside the dropdown */}
|
|
59
|
+
<div data-testid="external-area">External Area</div>
|
|
60
|
+
|
|
61
|
+
{/* The dropdown component */}
|
|
62
|
+
<CDropdown>
|
|
63
|
+
<CDropdownToggle>Test</CDropdownToggle>
|
|
64
|
+
<CDropdownMenu>
|
|
65
|
+
<CDropdownItem>A</CDropdownItem>
|
|
66
|
+
<CDropdownItem>B</CDropdownItem>
|
|
67
|
+
</CDropdownMenu>
|
|
68
|
+
</CDropdown>
|
|
69
|
+
</div>,
|
|
64
70
|
)
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
71
|
+
|
|
72
|
+
// Ensure the dropdown is initially closed
|
|
73
|
+
const toggleButton = screen.getByText('Test')
|
|
74
|
+
expect(toggleButton).toBeInTheDocument()
|
|
75
|
+
|
|
76
|
+
// Assuming the 'show' class is applied to the CDropdownMenu
|
|
77
|
+
const dropdownMenu = screen.getByRole('menu', { hidden: true }) // Adjust role if different
|
|
78
|
+
expect(dropdownMenu).not.toHaveClass('show')
|
|
79
|
+
|
|
80
|
+
// Click on the toggle to open the dropdown
|
|
81
|
+
fireEvent.click(toggleButton)
|
|
82
|
+
|
|
83
|
+
// Wait for the dropdown menu to become visible
|
|
84
|
+
await waitFor(() => {
|
|
85
|
+
const openedMenu = screen.getByRole('menu') // Adjust role if different
|
|
86
|
+
expect(openedMenu).toBeVisible()
|
|
87
|
+
expect(openedMenu).toHaveClass('show')
|
|
88
|
+
})
|
|
89
|
+
|
|
90
|
+
// Click outside the dropdown to close it
|
|
91
|
+
const externalArea = screen.getByTestId('external-area')
|
|
92
|
+
fireEvent.mouseUp(externalArea)
|
|
93
|
+
|
|
94
|
+
// Wait for the dropdown menu to be hidden
|
|
95
|
+
await waitFor(() => {
|
|
96
|
+
const closedMenu = screen.getByRole('menu', { hidden: true }) // Adjust role if different
|
|
97
|
+
expect(closedMenu).not.toHaveClass('show')
|
|
98
|
+
})
|
|
75
99
|
})
|
|
76
100
|
|
|
77
101
|
test('CDropdown example', async () => {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as React from 'react'
|
|
2
|
-
import { render, fireEvent } from '@testing-library/react'
|
|
2
|
+
import { render, fireEvent, screen, waitFor } from '@testing-library/react'
|
|
3
3
|
import '@testing-library/jest-dom'
|
|
4
4
|
import { CModal } from '../../../index'
|
|
5
5
|
|
|
@@ -33,34 +33,42 @@ test('CModal dialog close on press ESC', async () => {
|
|
|
33
33
|
</CModal>,
|
|
34
34
|
)
|
|
35
35
|
expect(onClose).toHaveBeenCalledTimes(0)
|
|
36
|
-
|
|
36
|
+
|
|
37
|
+
const modal = screen.getByText('Test').closest('.modal')
|
|
38
|
+
expect(modal).toBeInTheDocument()
|
|
39
|
+
|
|
37
40
|
if (modal !== null) {
|
|
38
41
|
fireEvent.keyDown(modal, {
|
|
39
42
|
key: 'Escape',
|
|
40
|
-
code: 'Escape',
|
|
41
|
-
keyCode: 27,
|
|
42
|
-
charCode: 27,
|
|
43
43
|
})
|
|
44
|
-
}
|
|
45
|
-
await new Promise((r) => setTimeout(r, 1000))
|
|
46
|
-
console.log(modal)
|
|
47
|
-
expect(onClose).toHaveBeenCalledTimes(1)
|
|
48
|
-
})
|
|
49
44
|
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
render(
|
|
54
|
-
<CModal onClose={onClose} portal={false} visible={true}>
|
|
55
|
-
Test
|
|
56
|
-
</CModal>,
|
|
57
|
-
)
|
|
58
|
-
expect(onClose).toHaveBeenCalledTimes(0)
|
|
59
|
-
const backdrop = document.querySelector('.modal-backdrop')
|
|
60
|
-
if (backdrop !== null) {
|
|
61
|
-
fireEvent.click(backdrop)
|
|
45
|
+
await waitFor(() => {
|
|
46
|
+
expect(onClose).toHaveBeenCalledTimes(1)
|
|
47
|
+
})
|
|
62
48
|
}
|
|
63
|
-
jest.runAllTimers()
|
|
64
|
-
expect(onClose).toHaveBeenCalledTimes(1)
|
|
65
|
-
jest.useRealTimers()
|
|
66
49
|
})
|
|
50
|
+
|
|
51
|
+
// test('CModal dialog closes when clicking outside the modal', async () => {
|
|
52
|
+
// const onClose = jest.fn()
|
|
53
|
+
|
|
54
|
+
// render(
|
|
55
|
+
// <CModal onClose={onClose} portal={false} visible>
|
|
56
|
+
// Test
|
|
57
|
+
// </CModal>,
|
|
58
|
+
// )
|
|
59
|
+
|
|
60
|
+
// // Ensure onClose hasn't been called yet
|
|
61
|
+
// expect(onClose).not.toHaveBeenCalled()
|
|
62
|
+
|
|
63
|
+
// // Optionally, verify that the modal is in the document
|
|
64
|
+
// const modal = screen.getByText('Test').closest('.modal')
|
|
65
|
+
// expect(modal).toBeInTheDocument()
|
|
66
|
+
|
|
67
|
+
// // Simulate a click on the external area (outside the modal)
|
|
68
|
+
// fireEvent.mouseDown(document.body)
|
|
69
|
+
|
|
70
|
+
// // Wait for onClose to be called once
|
|
71
|
+
// await waitFor(() => {
|
|
72
|
+
// expect(onClose).toHaveBeenCalledTimes(1)
|
|
73
|
+
// })
|
|
74
|
+
// })
|
|
@@ -124,7 +124,11 @@ export const CNavGroup: PolymorphicRefForwardingComponent<'li', CNavGroupProps>
|
|
|
124
124
|
ref={ref}
|
|
125
125
|
>
|
|
126
126
|
{toggler && (
|
|
127
|
-
<a
|
|
127
|
+
<a
|
|
128
|
+
className="nav-link nav-group-toggle"
|
|
129
|
+
href="#"
|
|
130
|
+
onClick={(event) => handleTogglerOnCLick(event)}
|
|
131
|
+
>
|
|
128
132
|
{toggler}
|
|
129
133
|
</a>
|
|
130
134
|
)}
|
|
@@ -7,12 +7,13 @@ exports[`CNavGroup customize 1`] = `
|
|
|
7
7
|
>
|
|
8
8
|
<a
|
|
9
9
|
class="nav-link nav-group-toggle"
|
|
10
|
+
href="#"
|
|
10
11
|
>
|
|
11
12
|
anchorText
|
|
12
13
|
</a>
|
|
13
14
|
<ul
|
|
14
15
|
class="nav-group-items"
|
|
15
|
-
style="
|
|
16
|
+
style="height: 0px; display: block;"
|
|
16
17
|
/>
|
|
17
18
|
</li>
|
|
18
19
|
</div>
|
|
@@ -25,11 +26,13 @@ exports[`loads and displays CNavGroup component 1`] = `
|
|
|
25
26
|
>
|
|
26
27
|
<a
|
|
27
28
|
class="nav-link nav-group-toggle"
|
|
29
|
+
href="#"
|
|
28
30
|
>
|
|
29
31
|
anchorText
|
|
30
32
|
</a>
|
|
31
33
|
<ul
|
|
32
34
|
class="nav-group-items"
|
|
35
|
+
style="height: 0px;"
|
|
33
36
|
/>
|
|
34
37
|
</li>
|
|
35
38
|
</div>
|
|
@@ -31,7 +31,7 @@ test('CPopover customize', async () => {
|
|
|
31
31
|
expect(container).toMatchSnapshot()
|
|
32
32
|
let arrLength = container.getElementsByClassName('popover').length
|
|
33
33
|
expect(arrLength).toBe(1)
|
|
34
|
-
arrLength = container.getElementsByClassName('bs-popover-
|
|
34
|
+
arrLength = container.getElementsByClassName('bs-popover-auto').length
|
|
35
35
|
expect(arrLength).toBe(1)
|
|
36
36
|
arrLength = container.getElementsByClassName('popover-arrow').length
|
|
37
37
|
expect(arrLength).toBe(1)
|
|
@@ -3,15 +3,14 @@
|
|
|
3
3
|
exports[`CPopover customize 1`] = `
|
|
4
4
|
<body>
|
|
5
5
|
<button
|
|
6
|
-
aria-describedby="popover744956"
|
|
7
6
|
class="btn btn-primary"
|
|
8
7
|
type="button"
|
|
9
8
|
>
|
|
10
9
|
Test
|
|
11
10
|
</button>
|
|
12
11
|
<div
|
|
13
|
-
class="popover bs-popover-auto fade
|
|
14
|
-
id="
|
|
12
|
+
class="popover bs-popover-auto fade"
|
|
13
|
+
id="popover:r1:"
|
|
15
14
|
role="tooltip"
|
|
16
15
|
style="position: absolute; left: 0px; top: 0px; margin: 0px;"
|
|
17
16
|
>
|
|
@@ -207,7 +207,12 @@ export const CRangeSlider = forwardRef<HTMLDivElement, CRangeSliderProps>(
|
|
|
207
207
|
}
|
|
208
208
|
|
|
209
209
|
const handleInputsContainerMouseDown = (event: React.MouseEvent<HTMLDivElement>) => {
|
|
210
|
-
if (trackRef.current === null || event.button !== 0) {
|
|
210
|
+
if (trackRef.current === null || event.button !== 0 || disabled) {
|
|
211
|
+
return
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
const target = event.target as HTMLDivElement | HTMLInputElement
|
|
215
|
+
if (!(target instanceof HTMLInputElement) && target !== trackRef.current) {
|
|
211
216
|
return
|
|
212
217
|
}
|
|
213
218
|
|
|
@@ -237,7 +242,7 @@ export const CRangeSlider = forwardRef<HTMLDivElement, CRangeSliderProps>(
|
|
|
237
242
|
}
|
|
238
243
|
|
|
239
244
|
const handleMouseMove = (event: MouseEvent) => {
|
|
240
|
-
if (!isDragging || trackRef.current === null) {
|
|
245
|
+
if (!isDragging || trackRef.current === null || disabled) {
|
|
241
246
|
return
|
|
242
247
|
}
|
|
243
248
|
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React, { forwardRef, HTMLAttributes, useEffect, useRef, useState } from 'react'
|
|
1
|
+
import React, { ElementType, forwardRef, HTMLAttributes, useEffect, useRef, useState } from 'react'
|
|
2
2
|
import { createPortal } from 'react-dom'
|
|
3
3
|
import PropTypes from 'prop-types'
|
|
4
4
|
import classNames from 'classnames'
|
|
@@ -7,8 +7,13 @@ import { CBackdrop } from '../backdrop'
|
|
|
7
7
|
|
|
8
8
|
import { isInViewport } from '../../utils'
|
|
9
9
|
import { useForkedRef } from '../../hooks'
|
|
10
|
+
import { PolymorphicRefForwardingComponent } from '../../helpers'
|
|
10
11
|
|
|
11
12
|
export interface CSidebarProps extends HTMLAttributes<HTMLDivElement> {
|
|
13
|
+
/**
|
|
14
|
+
* Component used for the root node. Either a string to use a HTML element or a component.
|
|
15
|
+
*/
|
|
16
|
+
as?: ElementType
|
|
12
17
|
/**
|
|
13
18
|
* A string of all className you want applied to the component.
|
|
14
19
|
*/
|
|
@@ -65,10 +70,14 @@ export interface CSidebarProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
65
70
|
const isOnMobile = (element: HTMLDivElement) =>
|
|
66
71
|
Boolean(getComputedStyle(element).getPropertyValue('--cui-is-mobile'))
|
|
67
72
|
|
|
68
|
-
export const CSidebar
|
|
73
|
+
export const CSidebar: PolymorphicRefForwardingComponent<'div', CSidebarProps> = forwardRef<
|
|
74
|
+
HTMLDivElement,
|
|
75
|
+
CSidebarProps
|
|
76
|
+
>(
|
|
69
77
|
(
|
|
70
78
|
{
|
|
71
79
|
children,
|
|
80
|
+
as: Component = 'div',
|
|
72
81
|
className,
|
|
73
82
|
colorScheme,
|
|
74
83
|
narrow,
|
|
@@ -183,7 +192,7 @@ export const CSidebar = forwardRef<HTMLDivElement, CSidebarProps>(
|
|
|
183
192
|
|
|
184
193
|
return (
|
|
185
194
|
<>
|
|
186
|
-
<
|
|
195
|
+
<Component
|
|
187
196
|
className={classNames(
|
|
188
197
|
'sidebar',
|
|
189
198
|
{
|
|
@@ -203,7 +212,7 @@ export const CSidebar = forwardRef<HTMLDivElement, CSidebarProps>(
|
|
|
203
212
|
ref={forkedRef}
|
|
204
213
|
>
|
|
205
214
|
{children}
|
|
206
|
-
</
|
|
215
|
+
</Component>
|
|
207
216
|
{typeof window !== 'undefined' &&
|
|
208
217
|
mobile &&
|
|
209
218
|
createPortal(
|
|
@@ -216,6 +225,7 @@ export const CSidebar = forwardRef<HTMLDivElement, CSidebarProps>(
|
|
|
216
225
|
)
|
|
217
226
|
|
|
218
227
|
CSidebar.propTypes = {
|
|
228
|
+
as: PropTypes.elementType,
|
|
219
229
|
children: PropTypes.node,
|
|
220
230
|
className: PropTypes.string,
|
|
221
231
|
colorScheme: PropTypes.oneOf(['dark', 'light']),
|
|
@@ -231,4 +241,4 @@ CSidebar.propTypes = {
|
|
|
231
241
|
visible: PropTypes.bool,
|
|
232
242
|
}
|
|
233
243
|
|
|
234
|
-
CSidebar.displayName = 'CSidebar'
|
|
244
|
+
CSidebar.displayName = 'CSidebar'
|
|
@@ -26,27 +26,19 @@ export interface CSmartPaginationProps extends HTMLAttributes<HTMLUListElement>
|
|
|
26
26
|
*/
|
|
27
27
|
doubleArrows?: boolean
|
|
28
28
|
/**
|
|
29
|
-
* The content of
|
|
30
|
-
*
|
|
31
|
-
* @default '<React.Fragment>«</React.Fragment>''
|
|
29
|
+
* The content of `firstButton` button.
|
|
32
30
|
*/
|
|
33
31
|
firstButton?: ReactNode | string
|
|
34
32
|
/**
|
|
35
|
-
* The content of
|
|
36
|
-
*
|
|
37
|
-
* @default '<React.Fragment>‹</React.Fragment>'
|
|
33
|
+
* The content of `previousButton` button.
|
|
38
34
|
*/
|
|
39
35
|
previousButton?: ReactNode | string
|
|
40
36
|
/**
|
|
41
|
-
* The content of
|
|
42
|
-
*
|
|
43
|
-
* @default '<React.Fragment>›</React.Fragment>''
|
|
37
|
+
* The content of `nextButton` button.
|
|
44
38
|
*/
|
|
45
39
|
nextButton?: ReactNode | string
|
|
46
40
|
/**
|
|
47
|
-
* The content of
|
|
48
|
-
*
|
|
49
|
-
* @default '<React.Fragment>»</React.Fragment>'
|
|
41
|
+
* The content of `lastButton` button.
|
|
50
42
|
*/
|
|
51
43
|
lastButton?: ReactNode | string
|
|
52
44
|
/**
|
|
@@ -1,12 +1,4 @@
|
|
|
1
|
-
import React, {
|
|
2
|
-
ElementType,
|
|
3
|
-
forwardRef,
|
|
4
|
-
ReactNode,
|
|
5
|
-
useEffect,
|
|
6
|
-
useMemo,
|
|
7
|
-
useRef,
|
|
8
|
-
useState,
|
|
9
|
-
} from 'react'
|
|
1
|
+
import React, { ElementType, forwardRef, ReactNode, useMemo, useRef } from 'react'
|
|
10
2
|
import PropTypes from 'prop-types'
|
|
11
3
|
|
|
12
4
|
import { CFormCheck, CFormInput } from '../form'
|
|
@@ -76,27 +68,9 @@ export const CSmartTableHead: PolymorphicRefForwardingComponent<'thead', CSmartT
|
|
|
76
68
|
ref,
|
|
77
69
|
) => {
|
|
78
70
|
const selectAllcheckboxRef = useRef<HTMLInputElement>(null)
|
|
79
|
-
const [refresh, setRefresh] = useState(false)
|
|
80
|
-
|
|
81
71
|
const _columns = useMemo(() => getColumns(columns), [columns])
|
|
82
72
|
const groups = useMemo(() => getColumnGroups(columns), [columns])
|
|
83
73
|
|
|
84
|
-
useEffect(() => {
|
|
85
|
-
if (columnFilterState && Object.keys(columnFilterState).length === 0) {
|
|
86
|
-
setRefresh(true)
|
|
87
|
-
}
|
|
88
|
-
}, [columnFilterState])
|
|
89
|
-
|
|
90
|
-
useEffect(() => {
|
|
91
|
-
setRefresh(true)
|
|
92
|
-
}, [items])
|
|
93
|
-
|
|
94
|
-
useEffect(() => {
|
|
95
|
-
if (setRefresh) {
|
|
96
|
-
setRefresh(false)
|
|
97
|
-
}
|
|
98
|
-
}, [refresh])
|
|
99
|
-
|
|
100
74
|
const columnSorterIcon = (column: Column | string) => {
|
|
101
75
|
if (getColumnSorterState(getColumnKey(column), sorterState) === 0) {
|
|
102
76
|
return <span className="opacity-25 float-end me-1">{sortingIcon}</span>
|
|
@@ -161,18 +135,18 @@ export const CSmartTableHead: PolymorphicRefForwardingComponent<'thead', CSmartT
|
|
|
161
135
|
{...(isSortable && {
|
|
162
136
|
onClick: () => handleSort && handleSort(getColumnKey(column), index),
|
|
163
137
|
onKeyDown: (event) => {
|
|
164
|
-
if (event.key === 'Enter') {
|
|
165
|
-
handleSort
|
|
138
|
+
if (event.key === 'Enter' && handleSort) {
|
|
139
|
+
handleSort(getColumnKey(column), index)
|
|
166
140
|
}
|
|
167
141
|
|
|
168
|
-
if (event.key === 'ArrowUp') {
|
|
142
|
+
if (event.key === 'ArrowUp' && handleSort) {
|
|
169
143
|
event.preventDefault()
|
|
170
|
-
handleSort
|
|
144
|
+
handleSort(getColumnKey(column), index, 'asc')
|
|
171
145
|
}
|
|
172
146
|
|
|
173
|
-
if (event.key === 'ArrowDown') {
|
|
147
|
+
if (event.key === 'ArrowDown' && handleSort) {
|
|
174
148
|
event.preventDefault()
|
|
175
|
-
handleSort
|
|
149
|
+
handleSort(getColumnKey(column), index, 'desc')
|
|
176
150
|
}
|
|
177
151
|
},
|
|
178
152
|
tabIndex: 0,
|
|
@@ -198,7 +172,6 @@ export const CSmartTableHead: PolymorphicRefForwardingComponent<'thead', CSmartT
|
|
|
198
172
|
: true
|
|
199
173
|
) ? (
|
|
200
174
|
typeof column !== 'string' && typeof column.filter === 'function' ? (
|
|
201
|
-
!refresh &&
|
|
202
175
|
column.filter(
|
|
203
176
|
getColumnValues(items, getColumnKey(column)),
|
|
204
177
|
(value: any) =>
|
|
@@ -19,7 +19,7 @@ import {
|
|
|
19
19
|
} from './utils'
|
|
20
20
|
|
|
21
21
|
import { Colors } from '../../types'
|
|
22
|
-
import type { LocalizedTimePartials } from './types'
|
|
22
|
+
import type { AmPm, LocalizedTimePartials } from './types'
|
|
23
23
|
import { useDebouncedCallback } from '../../hooks'
|
|
24
24
|
|
|
25
25
|
export interface CTimePickerProps
|
|
@@ -139,7 +139,7 @@ export interface CTimePickerProps
|
|
|
139
139
|
*
|
|
140
140
|
* @since 4.8.0
|
|
141
141
|
*/
|
|
142
|
-
seconds?: boolean | number[] | ((second: number) =>
|
|
142
|
+
seconds?: boolean | number[] | ((second: number) => boolean)
|
|
143
143
|
/**
|
|
144
144
|
* Size the component small or large.
|
|
145
145
|
*/
|
|
@@ -208,7 +208,7 @@ export const CTimePicker = forwardRef<HTMLDivElement | HTMLLIElement, CTimePicke
|
|
|
208
208
|
const [date, setDate] = useState<Date | null>(convertTimeToDate(time))
|
|
209
209
|
const [initialDate, setInitialDate] = useState<Date | null>(null)
|
|
210
210
|
const [isValid, setIsValid] = useState(valid ?? (invalid === true ? false : undefined))
|
|
211
|
-
const [_ampm, setAmPm] = useState<
|
|
211
|
+
const [_ampm, setAmPm] = useState<AmPm>(date ? getAmPm(new Date(date), locale) : 'am')
|
|
212
212
|
const [_visible, setVisible] = useState(visible)
|
|
213
213
|
|
|
214
214
|
const [localizedTimePartials, setLocalizedTimePartials] = useState<LocalizedTimePartials>({
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { LocalizedTimePartials } from './types'
|
|
1
|
+
import type { AmPm, FormattedPartial, LocalizedTimePartials } from './types'
|
|
2
2
|
|
|
3
3
|
/**
|
|
4
4
|
* Converts a 12-hour time format to a 24-hour time format.
|
|
@@ -6,7 +6,7 @@ import type { LocalizedTimePartials } from './types'
|
|
|
6
6
|
* @param {number} hour The hour to be converted.
|
|
7
7
|
* @returns {number} The hour in 24-hour format.
|
|
8
8
|
*/
|
|
9
|
-
export const convert12hTo24h = (abbr:
|
|
9
|
+
export const convert12hTo24h = (abbr: AmPm, hour: number): number => {
|
|
10
10
|
if (abbr === 'am' && hour === 12) {
|
|
11
11
|
return 0
|
|
12
12
|
}
|
|
@@ -27,14 +27,14 @@ export const convert12hTo24h = (abbr: 'am' | 'pm', hour: number) => {
|
|
|
27
27
|
* @param {number} hour The hour to be converted.
|
|
28
28
|
* @returns {number} The hour in 12-hour format.
|
|
29
29
|
*/
|
|
30
|
-
export const convert24hTo12h = (hour: number) => hour % 12 || 12
|
|
30
|
+
export const convert24hTo12h = (hour: number): number => hour % 12 || 12
|
|
31
31
|
|
|
32
32
|
/**
|
|
33
33
|
* Converts a time input into a Date object.
|
|
34
34
|
* @param {Date | string | null | undefined} time The time input to be converted.
|
|
35
35
|
* @returns {Date | null} The converted Date object or null if the input is falsy.
|
|
36
36
|
*/
|
|
37
|
-
export const convertTimeToDate = (time: Date | string | null | undefined) =>
|
|
37
|
+
export const convertTimeToDate = (time: Date | string | null | undefined): Date | null =>
|
|
38
38
|
time ? (time instanceof Date ? time : new Date(`1970-01-01 ${time}`)) : null
|
|
39
39
|
|
|
40
40
|
/**
|
|
@@ -43,7 +43,7 @@ export const convertTimeToDate = (time: Date | string | null | undefined) =>
|
|
|
43
43
|
* @param {string} locale The locale to use for formatting.
|
|
44
44
|
* @returns {string} 'am' or 'pm' based on the given date and locale.
|
|
45
45
|
*/
|
|
46
|
-
export const getAmPm = (date: Date, locale: string) => {
|
|
46
|
+
export const getAmPm = (date: Date, locale: string): AmPm => {
|
|
47
47
|
if (date.toLocaleTimeString(locale).includes('AM')) {
|
|
48
48
|
return 'am'
|
|
49
49
|
}
|
|
@@ -66,7 +66,7 @@ export const formatTimePartials = (
|
|
|
66
66
|
values: number[],
|
|
67
67
|
locale: string,
|
|
68
68
|
partial: 'hour' | 'minute' | 'second',
|
|
69
|
-
) => {
|
|
69
|
+
): FormattedPartial[] => {
|
|
70
70
|
const date = new Date()
|
|
71
71
|
|
|
72
72
|
const formatter = new Intl.DateTimeFormat(locale, {
|
|
@@ -155,7 +155,7 @@ export const getSelectedHour = (
|
|
|
155
155
|
date: Date | null,
|
|
156
156
|
locale: string,
|
|
157
157
|
ampm: 'auto' | boolean = 'auto',
|
|
158
|
-
) =>
|
|
158
|
+
): number | string =>
|
|
159
159
|
date
|
|
160
160
|
? ((ampm === 'auto' && isAmPm(locale)) || ampm === true
|
|
161
161
|
? convert24hTo12h(date.getHours())
|
|
@@ -167,21 +167,23 @@ export const getSelectedHour = (
|
|
|
167
167
|
* @param {Date | null} date The date object from which to extract the minutes. If null, the function returns an empty string.
|
|
168
168
|
* @returns {string | number} The minutes from the date or an empty string if the date is null.
|
|
169
169
|
*/
|
|
170
|
-
export const getSelectedMinutes = (date: Date | null)
|
|
170
|
+
export const getSelectedMinutes = (date: Date | null): number | string =>
|
|
171
|
+
date ? date.getMinutes() : ''
|
|
171
172
|
|
|
172
173
|
/**
|
|
173
174
|
* Gets the selected seconds from a date object.
|
|
174
175
|
* @param {Date | null} date The date object from which to extract the seconds. If null, the function returns an empty string.
|
|
175
176
|
* @returns {string | number} The seconds from the date or an empty string if the date is null.
|
|
176
177
|
*/
|
|
177
|
-
export const getSelectedSeconds = (date: Date | null)
|
|
178
|
+
export const getSelectedSeconds = (date: Date | null): number | string =>
|
|
179
|
+
date ? date.getSeconds() : ''
|
|
178
180
|
|
|
179
181
|
/**
|
|
180
182
|
* Determines if the given locale uses AM/PM format.
|
|
181
183
|
* @param {string} locale The locale to check.
|
|
182
184
|
* @returns {boolean} True if the locale uses AM/PM format, otherwise false.
|
|
183
185
|
*/
|
|
184
|
-
export const isAmPm = (locale: string) =>
|
|
186
|
+
export const isAmPm = (locale: string): boolean =>
|
|
185
187
|
['am', 'AM', 'pm', 'PM'].some((el) => new Date().toLocaleString(locale).includes(el))
|
|
186
188
|
|
|
187
189
|
/**
|
|
@@ -189,7 +191,7 @@ export const isAmPm = (locale: string) =>
|
|
|
189
191
|
* @param {string} time The time string to validate.
|
|
190
192
|
* @returns {boolean} True if the string is a valid time, otherwise false.
|
|
191
193
|
*/
|
|
192
|
-
export const isValidTime = (time: string) => {
|
|
193
|
-
const d = new Date(`1970-01-
|
|
194
|
-
return d instanceof Date && d.getTime()
|
|
194
|
+
export const isValidTime = (time: string): boolean => {
|
|
195
|
+
const d = new Date(`1970-01-01T${time}`)
|
|
196
|
+
return d instanceof Date && !Number.isNaN(d.getTime())
|
|
195
197
|
}
|