@coreui/react-pro 5.0.0-rc.0 → 5.0.0-rc.2
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/alert/CAlertHeading.d.ts +7 -6
- package/dist/cjs/components/alert/CAlertHeading.js +2 -2
- package/dist/cjs/components/alert/CAlertHeading.js.map +1 -1
- package/dist/cjs/components/badge/CBadge.d.ts +7 -6
- package/dist/cjs/components/badge/CBadge.js +3 -3
- package/dist/cjs/components/badge/CBadge.js.map +1 -1
- package/dist/cjs/components/button/CButton.d.ts +7 -6
- package/dist/cjs/components/button/CButton.js +3 -3
- package/dist/cjs/components/button/CButton.js.map +1 -1
- package/dist/cjs/components/calendar/CCalendar.d.ts +3 -3
- package/dist/cjs/components/calendar/CCalendar.js +10 -8
- package/dist/cjs/components/calendar/CCalendar.js.map +1 -1
- package/dist/cjs/components/calendar/utils.js.map +1 -1
- package/dist/cjs/components/card/CCardHeader.d.ts +7 -6
- package/dist/cjs/components/card/CCardHeader.js +2 -2
- package/dist/cjs/components/card/CCardHeader.js.map +1 -1
- package/dist/cjs/components/card/CCardImage.d.ts +7 -6
- package/dist/cjs/components/card/CCardImage.js +2 -2
- package/dist/cjs/components/card/CCardImage.js.map +1 -1
- package/dist/cjs/components/card/CCardSubtitle.d.ts +7 -6
- package/dist/cjs/components/card/CCardSubtitle.js +2 -2
- package/dist/cjs/components/card/CCardSubtitle.js.map +1 -1
- package/dist/cjs/components/card/CCardText.d.ts +7 -6
- package/dist/cjs/components/card/CCardText.js +2 -2
- package/dist/cjs/components/card/CCardText.js.map +1 -1
- package/dist/cjs/components/card/CCardTitle.d.ts +7 -6
- package/dist/cjs/components/card/CCardTitle.js +2 -2
- package/dist/cjs/components/card/CCardTitle.js.map +1 -1
- package/dist/cjs/components/carousel/CCarousel.js.map +1 -1
- package/dist/cjs/components/carousel/CCarouselItem.js.map +1 -1
- package/dist/cjs/components/collapse/CCollapse.js.map +1 -1
- package/dist/cjs/components/conditional-portal/CConditionalPortal.js +1 -1
- package/dist/cjs/components/conditional-portal/CConditionalPortal.js.map +1 -1
- package/dist/cjs/components/date-range-picker/CDateRangePicker.d.ts +3 -3
- package/dist/cjs/components/date-range-picker/CDateRangePicker.js +2 -2
- package/dist/cjs/components/date-range-picker/CDateRangePicker.js.map +1 -1
- package/dist/cjs/components/date-range-picker/utils.js.map +1 -1
- package/dist/cjs/components/dropdown/CDropdown.d.ts +6 -5
- package/dist/cjs/components/dropdown/CDropdown.js +4 -4
- package/dist/cjs/components/dropdown/CDropdown.js.map +1 -1
- package/dist/cjs/components/dropdown/CDropdownHeader.d.ts +7 -6
- package/dist/cjs/components/dropdown/CDropdownHeader.js +2 -2
- package/dist/cjs/components/dropdown/CDropdownHeader.js.map +1 -1
- package/dist/cjs/components/dropdown/CDropdownItem.d.ts +2 -6
- package/dist/cjs/components/dropdown/CDropdownItem.js +3 -3
- package/dist/cjs/components/dropdown/CDropdownItem.js.map +1 -1
- package/dist/cjs/components/dropdown/CDropdownItemPlain.d.ts +7 -6
- package/dist/cjs/components/dropdown/CDropdownItemPlain.js +2 -2
- package/dist/cjs/components/dropdown/CDropdownItemPlain.js.map +1 -1
- package/dist/cjs/components/dropdown/CDropdownMenu.d.ts +7 -6
- package/dist/cjs/components/dropdown/CDropdownMenu.js +2 -2
- package/dist/cjs/components/dropdown/CDropdownMenu.js.map +1 -1
- package/dist/cjs/components/dropdown/CDropdownToggle.d.ts +1 -1
- package/dist/cjs/components/dropdown/CDropdownToggle.js.map +1 -1
- package/dist/cjs/components/dropdown/utils.js.map +1 -1
- package/dist/cjs/components/element-cover/CElementCover.js.map +1 -1
- package/dist/cjs/components/form/CFormCheck.js.map +1 -1
- package/dist/cjs/components/form/CFormFeedback.d.ts +7 -6
- package/dist/cjs/components/form/CFormFeedback.js +2 -2
- package/dist/cjs/components/form/CFormFeedback.js.map +1 -1
- package/dist/cjs/components/form/CFormText.d.ts +7 -6
- package/dist/cjs/components/form/CFormText.js +2 -2
- package/dist/cjs/components/form/CFormText.js.map +1 -1
- package/dist/cjs/components/form/CInputGroupText.d.ts +7 -6
- package/dist/cjs/components/form/CInputGroupText.js +2 -2
- package/dist/cjs/components/form/CInputGroupText.js.map +1 -1
- package/dist/cjs/components/grid/CCol.js.map +1 -1
- package/dist/cjs/components/grid/CRow.js.map +1 -1
- package/dist/cjs/components/header/CHeaderBrand.d.ts +7 -10
- package/dist/cjs/components/header/CHeaderBrand.js +2 -2
- package/dist/cjs/components/header/CHeaderBrand.js.map +1 -1
- package/dist/cjs/components/header/CHeaderNav.d.ts +7 -6
- package/dist/cjs/components/header/CHeaderNav.js +2 -2
- package/dist/cjs/components/header/CHeaderNav.js.map +1 -1
- package/dist/cjs/components/link/CLink.d.ts +8 -7
- package/dist/cjs/components/link/CLink.js +2 -2
- package/dist/cjs/components/link/CLink.js.map +1 -1
- package/dist/cjs/components/list-group/CListGroup.d.ts +7 -6
- package/dist/cjs/components/list-group/CListGroup.js +2 -2
- package/dist/cjs/components/list-group/CListGroup.js.map +1 -1
- package/dist/cjs/components/list-group/CListGroupItem.d.ts +7 -6
- package/dist/cjs/components/list-group/CListGroupItem.js +6 -6
- package/dist/cjs/components/list-group/CListGroupItem.js.map +1 -1
- package/dist/cjs/components/loading-button/CLoadingButton.js.map +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/CModalTitle.d.ts +4 -3
- package/dist/cjs/components/modal/CModalTitle.js +2 -2
- package/dist/cjs/components/modal/CModalTitle.js.map +1 -1
- package/dist/cjs/components/multi-select/CMultiSelect.js.map +1 -1
- package/dist/cjs/components/multi-select/CMultiSelectOptions.js.map +1 -1
- package/dist/cjs/components/multi-select/CMultiSelectSelection.js.map +1 -1
- package/dist/cjs/components/multi-select/utils.js.map +1 -1
- package/dist/cjs/components/nav/CNav.d.ts +7 -6
- package/dist/cjs/components/nav/CNav.js +2 -2
- package/dist/cjs/components/nav/CNav.js.map +1 -1
- package/dist/cjs/components/nav/CNavGroup.d.ts +10 -4
- package/dist/cjs/components/nav/CNavGroup.js +11 -16
- package/dist/cjs/components/nav/CNavGroup.js.map +1 -1
- package/dist/cjs/components/nav/CNavGroupItems.d.ts +10 -3
- package/dist/cjs/components/nav/CNavGroupItems.js +3 -2
- package/dist/cjs/components/nav/CNavGroupItems.js.map +1 -1
- package/dist/cjs/components/nav/CNavItem.d.ts +11 -2
- package/dist/cjs/components/nav/CNavItem.js +3 -2
- package/dist/cjs/components/nav/CNavItem.js.map +1 -1
- package/dist/cjs/components/nav/CNavLink.d.ts +2 -18
- package/dist/cjs/components/nav/CNavLink.js +3 -0
- package/dist/cjs/components/nav/CNavLink.js.map +1 -1
- package/dist/cjs/components/nav/CNavTitle.d.ts +7 -2
- package/dist/cjs/components/nav/CNavTitle.js +3 -2
- package/dist/cjs/components/nav/CNavTitle.js.map +1 -1
- package/dist/cjs/components/navbar/CNavbar.d.ts +7 -6
- package/dist/cjs/components/navbar/CNavbar.js +2 -2
- package/dist/cjs/components/navbar/CNavbar.js.map +1 -1
- package/dist/cjs/components/navbar/CNavbarBrand.d.ts +8 -7
- package/dist/cjs/components/navbar/CNavbarBrand.js +3 -3
- package/dist/cjs/components/navbar/CNavbarBrand.js.map +1 -1
- package/dist/cjs/components/navbar/CNavbarNav.d.ts +7 -6
- package/dist/cjs/components/navbar/CNavbarNav.js +3 -3
- package/dist/cjs/components/navbar/CNavbarNav.js.map +1 -1
- package/dist/cjs/components/offcanvas/COffcanvas.js.map +1 -1
- package/dist/cjs/components/offcanvas/COffcanvasTitle.d.ts +7 -6
- package/dist/cjs/components/offcanvas/COffcanvasTitle.js +2 -2
- package/dist/cjs/components/offcanvas/COffcanvasTitle.js.map +1 -1
- package/dist/cjs/components/pagination/CPaginationItem.d.ts +4 -3
- package/dist/cjs/components/pagination/CPaginationItem.js +4 -4
- package/dist/cjs/components/pagination/CPaginationItem.js.map +1 -1
- package/dist/cjs/components/picker/CPicker.js.map +1 -1
- package/dist/cjs/components/placeholder/CPlaceholder.d.ts +7 -6
- package/dist/cjs/components/placeholder/CPlaceholder.js +2 -2
- package/dist/cjs/components/placeholder/CPlaceholder.js.map +1 -1
- package/dist/cjs/components/popover/CPopover.js +20 -13
- package/dist/cjs/components/popover/CPopover.js.map +1 -1
- package/dist/cjs/components/progress/CProgress.js.map +1 -1
- package/dist/cjs/components/sidebar/CSidebar.js.map +1 -1
- package/dist/cjs/components/sidebar/CSidebarBrand.d.ts +10 -3
- package/dist/cjs/components/sidebar/CSidebarBrand.js +3 -2
- package/dist/cjs/components/sidebar/CSidebarBrand.js.map +1 -1
- package/dist/cjs/components/sidebar/CSidebarNav.d.ts +9 -2
- package/dist/cjs/components/sidebar/CSidebarNav.js +30 -12
- package/dist/cjs/components/sidebar/CSidebarNav.js.map +1 -1
- package/dist/cjs/components/smart-pagination/CSmartPagination.js.map +1 -1
- package/dist/cjs/components/smart-table/CSmartTable.js +3 -3
- package/dist/cjs/components/smart-table/CSmartTable.js.map +1 -1
- package/dist/cjs/components/smart-table/CSmartTableBody.js.map +1 -1
- package/dist/cjs/components/smart-table/CSmartTableHead.d.ts +4 -3
- package/dist/cjs/components/smart-table/CSmartTableHead.js +3 -3
- package/dist/cjs/components/smart-table/CSmartTableHead.js.map +1 -1
- package/dist/cjs/components/smart-table/utils.js.map +1 -1
- package/dist/cjs/components/spinner/CSpinner.d.ts +7 -6
- package/dist/cjs/components/spinner/CSpinner.js +2 -2
- package/dist/cjs/components/spinner/CSpinner.js.map +1 -1
- package/dist/cjs/components/time-picker/CTimePicker.d.ts +20 -2
- package/dist/cjs/components/time-picker/CTimePicker.js +30 -22
- package/dist/cjs/components/time-picker/CTimePicker.js.map +1 -1
- package/dist/cjs/components/time-picker/CTimePickerRollCol.js.map +1 -1
- package/dist/cjs/components/time-picker/utils.d.ts +67 -10
- package/dist/cjs/components/time-picker/utils.js +114 -27
- package/dist/cjs/components/time-picker/utils.js.map +1 -1
- package/dist/cjs/components/toast/CToast.js.map +1 -1
- package/dist/cjs/components/toast/CToastClose.d.ts +5 -4
- package/dist/cjs/components/toast/CToastClose.js +2 -2
- package/dist/cjs/components/toast/CToastClose.js.map +1 -1
- package/dist/cjs/components/tooltip/CTooltip.js +20 -13
- package/dist/cjs/components/tooltip/CTooltip.js.map +1 -1
- package/dist/cjs/components/virtual-scroller/CVirtualScroller.js.map +1 -1
- package/dist/cjs/helpers/index.d.ts +2 -0
- package/dist/cjs/helpers/polymorphicComponent.d.ts +14 -0
- package/dist/cjs/hooks/useColorModes.js.map +1 -1
- package/dist/cjs/hooks/useForkedRef.js.map +1 -1
- package/dist/cjs/hooks/usePopper.js.map +1 -1
- package/dist/cjs/utils/executeAfterTransition.js.map +1 -1
- package/dist/cjs/utils/getRTLPlacement.js.map +1 -1
- package/dist/cjs/utils/getTransitionDurationFromElement.js.map +1 -1
- package/dist/cjs/utils/isObjectInArray.js.map +1 -1
- package/dist/cjs/utils/isRTL.js.map +1 -1
- package/dist/esm/components/alert/CAlertHeading.d.ts +7 -6
- package/dist/esm/components/alert/CAlertHeading.js +2 -2
- package/dist/esm/components/alert/CAlertHeading.js.map +1 -1
- package/dist/esm/components/badge/CBadge.d.ts +7 -6
- package/dist/esm/components/badge/CBadge.js +3 -3
- package/dist/esm/components/badge/CBadge.js.map +1 -1
- package/dist/esm/components/button/CButton.d.ts +7 -6
- package/dist/esm/components/button/CButton.js +3 -3
- package/dist/esm/components/button/CButton.js.map +1 -1
- package/dist/esm/components/calendar/CCalendar.d.ts +3 -3
- package/dist/esm/components/calendar/CCalendar.js +10 -8
- package/dist/esm/components/calendar/CCalendar.js.map +1 -1
- package/dist/esm/components/calendar/utils.js.map +1 -1
- package/dist/esm/components/card/CCardHeader.d.ts +7 -6
- package/dist/esm/components/card/CCardHeader.js +2 -2
- package/dist/esm/components/card/CCardHeader.js.map +1 -1
- package/dist/esm/components/card/CCardImage.d.ts +7 -6
- package/dist/esm/components/card/CCardImage.js +2 -2
- package/dist/esm/components/card/CCardImage.js.map +1 -1
- package/dist/esm/components/card/CCardSubtitle.d.ts +7 -6
- package/dist/esm/components/card/CCardSubtitle.js +2 -2
- package/dist/esm/components/card/CCardSubtitle.js.map +1 -1
- package/dist/esm/components/card/CCardText.d.ts +7 -6
- package/dist/esm/components/card/CCardText.js +2 -2
- package/dist/esm/components/card/CCardText.js.map +1 -1
- package/dist/esm/components/card/CCardTitle.d.ts +7 -6
- package/dist/esm/components/card/CCardTitle.js +2 -2
- package/dist/esm/components/card/CCardTitle.js.map +1 -1
- package/dist/esm/components/carousel/CCarousel.js.map +1 -1
- package/dist/esm/components/carousel/CCarouselItem.js.map +1 -1
- package/dist/esm/components/collapse/CCollapse.js.map +1 -1
- package/dist/esm/components/conditional-portal/CConditionalPortal.js +1 -1
- package/dist/esm/components/conditional-portal/CConditionalPortal.js.map +1 -1
- package/dist/esm/components/date-range-picker/CDateRangePicker.d.ts +3 -3
- package/dist/esm/components/date-range-picker/CDateRangePicker.js +2 -2
- package/dist/esm/components/date-range-picker/CDateRangePicker.js.map +1 -1
- package/dist/esm/components/date-range-picker/utils.js.map +1 -1
- package/dist/esm/components/dropdown/CDropdown.d.ts +6 -5
- package/dist/esm/components/dropdown/CDropdown.js +4 -4
- package/dist/esm/components/dropdown/CDropdown.js.map +1 -1
- package/dist/esm/components/dropdown/CDropdownHeader.d.ts +7 -6
- package/dist/esm/components/dropdown/CDropdownHeader.js +2 -2
- package/dist/esm/components/dropdown/CDropdownHeader.js.map +1 -1
- package/dist/esm/components/dropdown/CDropdownItem.d.ts +2 -6
- package/dist/esm/components/dropdown/CDropdownItem.js +3 -3
- package/dist/esm/components/dropdown/CDropdownItem.js.map +1 -1
- package/dist/esm/components/dropdown/CDropdownItemPlain.d.ts +7 -6
- package/dist/esm/components/dropdown/CDropdownItemPlain.js +2 -2
- package/dist/esm/components/dropdown/CDropdownItemPlain.js.map +1 -1
- package/dist/esm/components/dropdown/CDropdownMenu.d.ts +7 -6
- package/dist/esm/components/dropdown/CDropdownMenu.js +2 -2
- package/dist/esm/components/dropdown/CDropdownMenu.js.map +1 -1
- package/dist/esm/components/dropdown/CDropdownToggle.d.ts +1 -1
- package/dist/esm/components/dropdown/CDropdownToggle.js.map +1 -1
- package/dist/esm/components/dropdown/utils.js.map +1 -1
- package/dist/esm/components/element-cover/CElementCover.js.map +1 -1
- package/dist/esm/components/form/CFormCheck.js.map +1 -1
- package/dist/esm/components/form/CFormFeedback.d.ts +7 -6
- package/dist/esm/components/form/CFormFeedback.js +2 -2
- package/dist/esm/components/form/CFormFeedback.js.map +1 -1
- package/dist/esm/components/form/CFormText.d.ts +7 -6
- package/dist/esm/components/form/CFormText.js +2 -2
- package/dist/esm/components/form/CFormText.js.map +1 -1
- package/dist/esm/components/form/CInputGroupText.d.ts +7 -6
- package/dist/esm/components/form/CInputGroupText.js +2 -2
- package/dist/esm/components/form/CInputGroupText.js.map +1 -1
- package/dist/esm/components/grid/CCol.js.map +1 -1
- package/dist/esm/components/grid/CRow.js.map +1 -1
- package/dist/esm/components/header/CHeaderBrand.d.ts +7 -10
- package/dist/esm/components/header/CHeaderBrand.js +2 -2
- package/dist/esm/components/header/CHeaderBrand.js.map +1 -1
- package/dist/esm/components/header/CHeaderNav.d.ts +7 -6
- package/dist/esm/components/header/CHeaderNav.js +2 -2
- package/dist/esm/components/header/CHeaderNav.js.map +1 -1
- package/dist/esm/components/link/CLink.d.ts +8 -7
- package/dist/esm/components/link/CLink.js +2 -2
- package/dist/esm/components/link/CLink.js.map +1 -1
- package/dist/esm/components/list-group/CListGroup.d.ts +7 -6
- package/dist/esm/components/list-group/CListGroup.js +2 -2
- package/dist/esm/components/list-group/CListGroup.js.map +1 -1
- package/dist/esm/components/list-group/CListGroupItem.d.ts +7 -6
- package/dist/esm/components/list-group/CListGroupItem.js +6 -6
- package/dist/esm/components/list-group/CListGroupItem.js.map +1 -1
- package/dist/esm/components/loading-button/CLoadingButton.js.map +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/CModalTitle.d.ts +4 -3
- package/dist/esm/components/modal/CModalTitle.js +2 -2
- package/dist/esm/components/modal/CModalTitle.js.map +1 -1
- package/dist/esm/components/multi-select/CMultiSelect.js.map +1 -1
- package/dist/esm/components/multi-select/CMultiSelectOptions.js.map +1 -1
- package/dist/esm/components/multi-select/CMultiSelectSelection.js.map +1 -1
- package/dist/esm/components/multi-select/utils.js.map +1 -1
- package/dist/esm/components/nav/CNav.d.ts +7 -6
- package/dist/esm/components/nav/CNav.js +2 -2
- package/dist/esm/components/nav/CNav.js.map +1 -1
- package/dist/esm/components/nav/CNavGroup.d.ts +10 -4
- package/dist/esm/components/nav/CNavGroup.js +11 -16
- package/dist/esm/components/nav/CNavGroup.js.map +1 -1
- package/dist/esm/components/nav/CNavGroupItems.d.ts +10 -3
- package/dist/esm/components/nav/CNavGroupItems.js +3 -2
- package/dist/esm/components/nav/CNavGroupItems.js.map +1 -1
- package/dist/esm/components/nav/CNavItem.d.ts +11 -2
- package/dist/esm/components/nav/CNavItem.js +3 -2
- package/dist/esm/components/nav/CNavItem.js.map +1 -1
- package/dist/esm/components/nav/CNavLink.d.ts +2 -18
- package/dist/esm/components/nav/CNavLink.js +3 -0
- package/dist/esm/components/nav/CNavLink.js.map +1 -1
- package/dist/esm/components/nav/CNavTitle.d.ts +7 -2
- package/dist/esm/components/nav/CNavTitle.js +3 -2
- package/dist/esm/components/nav/CNavTitle.js.map +1 -1
- package/dist/esm/components/navbar/CNavbar.d.ts +7 -6
- package/dist/esm/components/navbar/CNavbar.js +2 -2
- package/dist/esm/components/navbar/CNavbar.js.map +1 -1
- package/dist/esm/components/navbar/CNavbarBrand.d.ts +8 -7
- package/dist/esm/components/navbar/CNavbarBrand.js +3 -3
- package/dist/esm/components/navbar/CNavbarBrand.js.map +1 -1
- package/dist/esm/components/navbar/CNavbarNav.d.ts +7 -6
- package/dist/esm/components/navbar/CNavbarNav.js +3 -3
- package/dist/esm/components/navbar/CNavbarNav.js.map +1 -1
- package/dist/esm/components/offcanvas/COffcanvas.js.map +1 -1
- package/dist/esm/components/offcanvas/COffcanvasTitle.d.ts +7 -6
- package/dist/esm/components/offcanvas/COffcanvasTitle.js +2 -2
- package/dist/esm/components/offcanvas/COffcanvasTitle.js.map +1 -1
- package/dist/esm/components/pagination/CPaginationItem.d.ts +4 -3
- package/dist/esm/components/pagination/CPaginationItem.js +4 -4
- package/dist/esm/components/pagination/CPaginationItem.js.map +1 -1
- package/dist/esm/components/picker/CPicker.js.map +1 -1
- package/dist/esm/components/placeholder/CPlaceholder.d.ts +7 -6
- package/dist/esm/components/placeholder/CPlaceholder.js +2 -2
- package/dist/esm/components/placeholder/CPlaceholder.js.map +1 -1
- package/dist/esm/components/popover/CPopover.js +20 -13
- package/dist/esm/components/popover/CPopover.js.map +1 -1
- package/dist/esm/components/progress/CProgress.js.map +1 -1
- package/dist/esm/components/sidebar/CSidebar.js.map +1 -1
- package/dist/esm/components/sidebar/CSidebarBrand.d.ts +10 -3
- package/dist/esm/components/sidebar/CSidebarBrand.js +3 -2
- package/dist/esm/components/sidebar/CSidebarBrand.js.map +1 -1
- package/dist/esm/components/sidebar/CSidebarNav.d.ts +9 -2
- package/dist/esm/components/sidebar/CSidebarNav.js +30 -12
- package/dist/esm/components/sidebar/CSidebarNav.js.map +1 -1
- package/dist/esm/components/smart-pagination/CSmartPagination.js.map +1 -1
- package/dist/esm/components/smart-table/CSmartTable.js +3 -3
- package/dist/esm/components/smart-table/CSmartTable.js.map +1 -1
- package/dist/esm/components/smart-table/CSmartTableBody.js.map +1 -1
- package/dist/esm/components/smart-table/CSmartTableHead.d.ts +4 -3
- package/dist/esm/components/smart-table/CSmartTableHead.js +3 -3
- package/dist/esm/components/smart-table/CSmartTableHead.js.map +1 -1
- package/dist/esm/components/smart-table/utils.js.map +1 -1
- package/dist/esm/components/spinner/CSpinner.d.ts +7 -6
- package/dist/esm/components/spinner/CSpinner.js +2 -2
- package/dist/esm/components/spinner/CSpinner.js.map +1 -1
- package/dist/esm/components/time-picker/CTimePicker.d.ts +20 -2
- package/dist/esm/components/time-picker/CTimePicker.js +31 -23
- package/dist/esm/components/time-picker/CTimePicker.js.map +1 -1
- package/dist/esm/components/time-picker/CTimePickerRollCol.js.map +1 -1
- package/dist/esm/components/time-picker/utils.d.ts +67 -10
- package/dist/esm/components/time-picker/utils.js +114 -28
- package/dist/esm/components/time-picker/utils.js.map +1 -1
- package/dist/esm/components/toast/CToast.js.map +1 -1
- package/dist/esm/components/toast/CToastClose.d.ts +5 -4
- package/dist/esm/components/toast/CToastClose.js +2 -2
- package/dist/esm/components/toast/CToastClose.js.map +1 -1
- package/dist/esm/components/tooltip/CTooltip.js +20 -13
- package/dist/esm/components/tooltip/CTooltip.js.map +1 -1
- package/dist/esm/components/virtual-scroller/CVirtualScroller.js.map +1 -1
- package/dist/esm/helpers/index.d.ts +2 -0
- package/dist/esm/helpers/polymorphicComponent.d.ts +14 -0
- package/dist/esm/hooks/useColorModes.js.map +1 -1
- package/dist/esm/hooks/useForkedRef.js.map +1 -1
- package/dist/esm/hooks/usePopper.js.map +1 -1
- package/dist/esm/utils/executeAfterTransition.js.map +1 -1
- package/dist/esm/utils/getRTLPlacement.js.map +1 -1
- package/dist/esm/utils/getTransitionDurationFromElement.js.map +1 -1
- package/dist/esm/utils/isObjectInArray.js.map +1 -1
- package/dist/esm/utils/isRTL.js.map +1 -1
- package/package.json +13 -13
- package/src/components/alert/CAlertHeading.tsx +17 -14
- package/src/components/alert/__tests__/CAlertHeading.spec.tsx +1 -1
- package/src/components/badge/CBadge.tsx +12 -8
- package/src/components/badge/__tests__/CBadge.spec.tsx +1 -1
- package/src/components/button/CButton.tsx +12 -18
- package/src/components/button/__tests__/CButton.spec.tsx +2 -2
- package/src/components/calendar/CCalendar.tsx +19 -13
- package/src/components/card/CCardHeader.tsx +17 -14
- package/src/components/card/CCardImage.tsx +9 -7
- package/src/components/card/CCardSubtitle.tsx +18 -14
- package/src/components/card/CCardText.tsx +17 -14
- package/src/components/card/CCardTitle.tsx +17 -14
- package/src/components/card/__tests__/CCardGroup.spec.tsx +1 -1
- package/src/components/card/__tests__/CCardHeader.spec.tsx +1 -1
- package/src/components/card/__tests__/CCardImage.spec.tsx +1 -3
- package/src/components/card/__tests__/CCardSubtitle.spec.tsx +1 -1
- package/src/components/card/__tests__/CCardText.spec.tsx +1 -1
- package/src/components/card/__tests__/CCardTitle.spec.tsx +1 -1
- package/src/components/conditional-portal/CConditionalPortal.tsx +1 -1
- package/src/components/date-range-picker/CDateRangePicker.tsx +12 -12
- package/src/components/dropdown/CDropdown.tsx +12 -8
- package/src/components/dropdown/CDropdownHeader.tsx +17 -14
- package/src/components/dropdown/CDropdownItem.tsx +14 -20
- package/src/components/dropdown/CDropdownItemPlain.tsx +12 -7
- package/src/components/dropdown/CDropdownMenu.tsx +43 -41
- package/src/components/dropdown/CDropdownToggle.tsx +1 -1
- package/src/components/dropdown/__tests__/CDropdown.spec.tsx +1 -1
- package/src/components/dropdown/__tests__/CDropdownHeader.spec.tsx +1 -1
- package/src/components/dropdown/__tests__/CDropdownItem.spec.tsx +1 -1
- package/src/components/dropdown/__tests__/CDropdownItemPlain.spec.tsx +1 -1
- package/src/components/dropdown/__tests__/CDropdownMenu.spec.tsx +1 -1
- package/src/components/dropdown/types.ts +1 -1
- package/src/components/form/CFormFeedback.tsx +28 -27
- package/src/components/form/CFormText.tsx +17 -14
- package/src/components/form/CInputGroupText.tsx +17 -14
- package/src/components/form/__tests__/CFormText.spec.tsx +1 -1
- package/src/components/form/__tests__/CInputGroupText.spec.tsx +1 -1
- package/src/components/header/CHeaderBrand.tsx +11 -13
- package/src/components/header/CHeaderBrand.tsx~HEAD +17 -14
- package/src/components/header/CHeaderNav.tsx +22 -19
- package/src/components/header/__tests__/CHeaderBrand.spec.tsx +1 -1
- package/src/components/header/__tests__/CHeaderNav.spec.tsx +1 -1
- package/src/components/link/CLink.tsx +33 -29
- package/src/components/link/__tests__/CLink.spec.tsx +2 -2
- package/src/components/list-group/CListGroup.tsx +27 -24
- package/src/components/list-group/CListGroupItem.tsx +38 -37
- package/src/components/list-group/__tests__/CListGroup.spec.tsx +1 -1
- package/src/components/list-group/__tests__/CListGroupItem.spec.tsx +1 -7
- package/src/components/loading-button/CLoadingButton.tsx +1 -0
- package/src/components/modal/CModal.tsx +1 -4
- package/src/components/modal/CModalTitle.tsx +14 -11
- package/src/components/modal/__tests__/CModalTitle.spec.tsx +1 -1
- package/src/components/nav/CNav.tsx +29 -26
- package/src/components/nav/CNavGroup.tsx +111 -100
- package/src/components/nav/CNavGroupItems.tsx +21 -11
- package/src/components/nav/CNavItem.tsx +29 -16
- package/src/components/nav/CNavLink.tsx +7 -19
- package/src/components/nav/CNavTitle.tsx +18 -10
- package/src/components/nav/__tests__/CNav.spec.tsx +1 -1
- package/src/components/nav/__tests__/CNavItem.spec.tsx +1 -1
- package/src/components/nav/__tests__/CNavLink.spec.tsx +1 -1
- package/src/components/navbar/CNavbar.tsx +11 -7
- package/src/components/navbar/CNavbarBrand.tsx +19 -16
- package/src/components/navbar/CNavbarNav.tsx +22 -19
- package/src/components/navbar/__tests__/CNavbar.spec.tsx +1 -1
- package/src/components/navbar/__tests__/CNavbarBrand.spec.tsx +1 -1
- package/src/components/navbar/__tests__/CNavbarNav.spec.tsx +1 -1
- package/src/components/offcanvas/COffcanvasTitle.tsx +17 -14
- package/src/components/offcanvas/__tests__/COffcanvasTitle.spec.tsx +1 -1
- package/src/components/pagination/CPaginationItem.tsx +33 -30
- package/src/components/pagination/__tests__/CPaginationItem.spec.tsx +1 -1
- package/src/components/placeholder/CPlaceholder.tsx +40 -41
- package/src/components/popover/CPopover.tsx +24 -13
- package/src/components/sidebar/CSidebarBrand.tsx +21 -11
- package/src/components/sidebar/CSidebarNav.tsx +68 -24
- package/src/components/smart-table/CSmartTable.tsx +1 -1
- package/src/components/smart-table/CSmartTableHead.tsx +179 -177
- package/src/components/spinner/CSpinner.tsx +11 -7
- package/src/components/spinner/__tests__/CSpinner.spec.tsx +1 -1
- package/src/components/time-picker/CTimePicker.tsx +73 -30
- package/src/components/time-picker/utils.ts +128 -68
- package/src/components/toast/CToastClose.tsx +8 -7
- package/src/components/tooltip/CTooltip.tsx +24 -12
- package/src/helpers/index.ts +3 -0
- package/src/helpers/polymorphicComponent.ts +21 -0
- package/src/hooks/useDebouncedCallback.ts +1 -1
- package/src/components/list-group/CListGroupItem.tsx~HEAD +0 -81
|
@@ -13,6 +13,7 @@ import { CFormCheck, CFormInput } from '../form'
|
|
|
13
13
|
import { CTableHeaderCell, CTableRow } from '../table'
|
|
14
14
|
import { CTableHead, CTableHeadProps } from '../table/CTableHead'
|
|
15
15
|
|
|
16
|
+
import { PolymorphicRefForwardingComponent } from '../../helpers'
|
|
16
17
|
import type { ColumnFilter, ColumnFilterValue, Column, Item, Sorter, SorterValue } from './types'
|
|
17
18
|
import {
|
|
18
19
|
getColumnKey,
|
|
@@ -26,10 +27,10 @@ import {
|
|
|
26
27
|
} from './utils'
|
|
27
28
|
|
|
28
29
|
export interface CSmartTableHeadProps extends CTableHeadProps {
|
|
30
|
+
as?: ElementType
|
|
29
31
|
columnFilter?: boolean | ColumnFilter
|
|
30
32
|
columnFilterState?: ColumnFilterValue
|
|
31
33
|
columnSorter?: boolean | Sorter
|
|
32
|
-
component?: string | ElementType
|
|
33
34
|
columns: (Column | string)[]
|
|
34
35
|
handleOnCustomFilterChange?: (key: string, value: any) => void
|
|
35
36
|
handleFilterOnChange?: (key: string, value: string) => void
|
|
@@ -47,205 +48,206 @@ export interface CSmartTableHeadProps extends CTableHeadProps {
|
|
|
47
48
|
sortingIconDescending?: ReactNode
|
|
48
49
|
}
|
|
49
50
|
|
|
50
|
-
export const CSmartTableHead
|
|
51
|
-
(
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
51
|
+
export const CSmartTableHead: PolymorphicRefForwardingComponent<'thead', CSmartTableHeadProps> =
|
|
52
|
+
forwardRef<HTMLTableSectionElement, CSmartTableHeadProps>(
|
|
53
|
+
(
|
|
54
|
+
{
|
|
55
|
+
as: Component = CTableHead,
|
|
56
|
+
columnFilter,
|
|
57
|
+
columnFilterState,
|
|
58
|
+
columnSorter,
|
|
59
|
+
columns,
|
|
60
|
+
handleOnCustomFilterChange,
|
|
61
|
+
handleFilterOnChange,
|
|
62
|
+
handleFilterOnInput,
|
|
63
|
+
handleSelectAllChecked,
|
|
64
|
+
handleSort,
|
|
65
|
+
items,
|
|
66
|
+
selectable,
|
|
67
|
+
selectAll,
|
|
68
|
+
selectedAll,
|
|
69
|
+
showGroups = true,
|
|
70
|
+
sorterState,
|
|
71
|
+
sortingIcon,
|
|
72
|
+
sortingIconAscending,
|
|
73
|
+
sortingIconDescending,
|
|
74
|
+
...rest
|
|
75
|
+
},
|
|
76
|
+
ref,
|
|
77
|
+
) => {
|
|
78
|
+
const selectAllcheckboxRef = useRef<HTMLInputElement>(null)
|
|
79
|
+
const [refresh, setRefresh] = useState(false)
|
|
80
|
+
|
|
81
|
+
const _columns = useMemo(() => getColumns(columns), [columns])
|
|
82
|
+
const groups = useMemo(() => getColumnGroups(columns), [columns])
|
|
78
83
|
|
|
79
|
-
|
|
80
|
-
|
|
84
|
+
useEffect(() => {
|
|
85
|
+
if (columnFilterState && Object.keys(columnFilterState).length === 0) {
|
|
86
|
+
setRefresh(true)
|
|
87
|
+
}
|
|
88
|
+
}, [columnFilterState])
|
|
81
89
|
|
|
82
|
-
|
|
83
|
-
if (columnFilterState && Object.keys(columnFilterState).length === 0) {
|
|
90
|
+
useEffect(() => {
|
|
84
91
|
setRefresh(true)
|
|
85
|
-
}
|
|
86
|
-
}, [columnFilterState])
|
|
92
|
+
}, [items])
|
|
87
93
|
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
94
|
+
useEffect(() => {
|
|
95
|
+
if (setRefresh) {
|
|
96
|
+
setRefresh(false)
|
|
97
|
+
}
|
|
98
|
+
}, [refresh])
|
|
91
99
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
}, [refresh])
|
|
100
|
+
const columnSorterIcon = (column: Column | string) => {
|
|
101
|
+
if (getColumnSorterState(getColumnKey(column), sorterState) === 0) {
|
|
102
|
+
return <span className="opacity-25 float-end me-1">{sortingIcon}</span>
|
|
103
|
+
}
|
|
97
104
|
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
}
|
|
105
|
+
if (getColumnSorterState(getColumnKey(column), sorterState) === 'asc') {
|
|
106
|
+
return <span className="float-end me-1">{sortingIconAscending}</span>
|
|
107
|
+
}
|
|
102
108
|
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
109
|
+
if (getColumnSorterState(getColumnKey(column), sorterState) === 'desc') {
|
|
110
|
+
return <span className="float-end me-1">{sortingIconDescending}</span>
|
|
111
|
+
}
|
|
106
112
|
|
|
107
|
-
|
|
108
|
-
return <span className="float-end me-1">{sortingIconDescending}</span>
|
|
113
|
+
return
|
|
109
114
|
}
|
|
110
115
|
|
|
111
|
-
return
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
116
|
+
return (
|
|
117
|
+
<Component {...rest} ref={ref}>
|
|
118
|
+
{showGroups &&
|
|
119
|
+
groups &&
|
|
120
|
+
groups.length > 0 &&
|
|
121
|
+
groups.map((row, index) => (
|
|
122
|
+
<CTableRow key={index}>
|
|
123
|
+
{selectable && <CTableHeaderCell></CTableHeaderCell>}
|
|
124
|
+
{row.map((cell, index) => (
|
|
125
|
+
<CTableHeaderCell
|
|
126
|
+
colSpan={cell.colspan}
|
|
127
|
+
{...getTableHeaderCellProps(cell)}
|
|
128
|
+
key={index}
|
|
129
|
+
>
|
|
130
|
+
{cell.label}
|
|
131
|
+
</CTableHeaderCell>
|
|
132
|
+
))}
|
|
133
|
+
</CTableRow>
|
|
134
|
+
))}
|
|
135
|
+
<CTableRow>
|
|
136
|
+
{selectable && (
|
|
137
|
+
<CTableHeaderCell>
|
|
138
|
+
{selectAll && (
|
|
139
|
+
<CFormCheck
|
|
140
|
+
checked={typeof selectedAll === 'boolean' ? selectedAll : false}
|
|
141
|
+
indeterminate={selectedAll === 'indeterminate' ? true : false}
|
|
142
|
+
onChange={() => handleSelectAllChecked && handleSelectAllChecked()}
|
|
143
|
+
ref={selectAllcheckboxRef}
|
|
144
|
+
/>
|
|
145
|
+
)}
|
|
146
|
+
</CTableHeaderCell>
|
|
147
|
+
)}
|
|
148
|
+
{_columns.map((column: Column | string, index: number) => {
|
|
149
|
+
const isSortable =
|
|
150
|
+
columnSorter &&
|
|
151
|
+
(typeof column === 'object'
|
|
152
|
+
? column.sorter === undefined
|
|
153
|
+
? true
|
|
154
|
+
: column.sorter
|
|
155
|
+
: true)
|
|
156
|
+
return (
|
|
123
157
|
<CTableHeaderCell
|
|
124
|
-
|
|
125
|
-
{
|
|
158
|
+
{...getTableHeaderCellProps(column)}
|
|
159
|
+
style={getTableHeaderCellStyles(column, columnSorter)}
|
|
126
160
|
key={index}
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
<CTableRow>
|
|
134
|
-
{selectable && (
|
|
135
|
-
<CTableHeaderCell>
|
|
136
|
-
{selectAll && (
|
|
137
|
-
<CFormCheck
|
|
138
|
-
checked={typeof selectedAll === 'boolean' ? selectedAll : false}
|
|
139
|
-
indeterminate={selectedAll === 'indeterminate' ? true : false}
|
|
140
|
-
onChange={() => handleSelectAllChecked && handleSelectAllChecked()}
|
|
141
|
-
ref={selectAllcheckboxRef}
|
|
142
|
-
/>
|
|
143
|
-
)}
|
|
144
|
-
</CTableHeaderCell>
|
|
145
|
-
)}
|
|
146
|
-
{_columns.map((column: Column | string, index: number) => {
|
|
147
|
-
const isSortable =
|
|
148
|
-
columnSorter &&
|
|
149
|
-
(typeof column === 'object'
|
|
150
|
-
? column.sorter === undefined
|
|
151
|
-
? true
|
|
152
|
-
: column.sorter
|
|
153
|
-
: true)
|
|
154
|
-
return (
|
|
155
|
-
<CTableHeaderCell
|
|
156
|
-
{...getTableHeaderCellProps(column)}
|
|
157
|
-
style={getTableHeaderCellStyles(column, columnSorter)}
|
|
158
|
-
key={index}
|
|
159
|
-
{...(isSortable && {
|
|
160
|
-
onClick: () => handleSort && handleSort(getColumnKey(column), index),
|
|
161
|
-
onKeyDown: (event) => {
|
|
162
|
-
if (event.key === 'Enter') {
|
|
163
|
-
handleSort && handleSort(getColumnKey(column), index)
|
|
164
|
-
}
|
|
161
|
+
{...(isSortable && {
|
|
162
|
+
onClick: () => handleSort && handleSort(getColumnKey(column), index),
|
|
163
|
+
onKeyDown: (event) => {
|
|
164
|
+
if (event.key === 'Enter') {
|
|
165
|
+
handleSort && handleSort(getColumnKey(column), index)
|
|
166
|
+
}
|
|
165
167
|
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
168
|
+
if (event.key === 'ArrowUp') {
|
|
169
|
+
event.preventDefault()
|
|
170
|
+
handleSort && handleSort(getColumnKey(column), index, 'asc')
|
|
171
|
+
}
|
|
170
172
|
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
</CTableHeaderCell>
|
|
182
|
-
)
|
|
183
|
-
})}
|
|
184
|
-
</CTableRow>
|
|
185
|
-
{columnFilter && (
|
|
186
|
-
<CTableRow>
|
|
187
|
-
{selectable && <CTableHeaderCell></CTableHeaderCell>}
|
|
188
|
-
{_columns.map((column: Column | string, index: number) => {
|
|
189
|
-
return (
|
|
190
|
-
<CTableHeaderCell {...getTableHeaderCellProps(column)} key={index}>
|
|
191
|
-
{(
|
|
192
|
-
typeof column === 'object'
|
|
193
|
-
? column.filter === undefined
|
|
194
|
-
? true
|
|
195
|
-
: column.filter
|
|
196
|
-
: true
|
|
197
|
-
) ? (
|
|
198
|
-
typeof column !== 'string' && typeof column.filter === 'function' ? (
|
|
199
|
-
!refresh &&
|
|
200
|
-
column.filter(
|
|
201
|
-
getColumnValues(items, getColumnKey(column)),
|
|
202
|
-
(value: any) =>
|
|
203
|
-
handleOnCustomFilterChange &&
|
|
204
|
-
handleOnCustomFilterChange(getColumnKey(column), value),
|
|
205
|
-
)
|
|
206
|
-
) : (
|
|
207
|
-
<CFormInput
|
|
208
|
-
size="sm"
|
|
209
|
-
onInput={(event) =>
|
|
210
|
-
handleFilterOnInput &&
|
|
211
|
-
handleFilterOnInput(
|
|
212
|
-
getColumnKey(column),
|
|
213
|
-
(event.target as HTMLInputElement).value,
|
|
214
|
-
)
|
|
215
|
-
}
|
|
216
|
-
onChange={(event) =>
|
|
217
|
-
handleFilterOnChange &&
|
|
218
|
-
handleFilterOnChange(
|
|
219
|
-
getColumnKey(column),
|
|
220
|
-
(event.target as HTMLInputElement).value,
|
|
221
|
-
)
|
|
222
|
-
}
|
|
223
|
-
value={
|
|
224
|
-
columnFilterState && columnFilterState[getColumnKey(column)]
|
|
225
|
-
? columnFilterState[getColumnKey(column)]
|
|
226
|
-
: ''
|
|
227
|
-
}
|
|
228
|
-
aria-label={`column name: '${getColumnLabel(column)}' filter input`}
|
|
229
|
-
/>
|
|
230
|
-
)
|
|
231
|
-
) : (
|
|
232
|
-
''
|
|
233
|
-
)}
|
|
173
|
+
if (event.key === 'ArrowDown') {
|
|
174
|
+
event.preventDefault()
|
|
175
|
+
handleSort && handleSort(getColumnKey(column), index, 'desc')
|
|
176
|
+
}
|
|
177
|
+
},
|
|
178
|
+
tabIndex: 0,
|
|
179
|
+
})}
|
|
180
|
+
>
|
|
181
|
+
<div className="d-inline">{getColumnLabel(column)}</div>
|
|
182
|
+
{isSortable && columnSorterIcon(column)}
|
|
234
183
|
</CTableHeaderCell>
|
|
235
184
|
)
|
|
236
185
|
})}
|
|
237
186
|
</CTableRow>
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
187
|
+
{columnFilter && (
|
|
188
|
+
<CTableRow>
|
|
189
|
+
{selectable && <CTableHeaderCell></CTableHeaderCell>}
|
|
190
|
+
{_columns.map((column: Column | string, index: number) => {
|
|
191
|
+
return (
|
|
192
|
+
<CTableHeaderCell {...getTableHeaderCellProps(column)} key={index}>
|
|
193
|
+
{(
|
|
194
|
+
typeof column === 'object'
|
|
195
|
+
? column.filter === undefined
|
|
196
|
+
? true
|
|
197
|
+
: column.filter
|
|
198
|
+
: true
|
|
199
|
+
) ? (
|
|
200
|
+
typeof column !== 'string' && typeof column.filter === 'function' ? (
|
|
201
|
+
!refresh &&
|
|
202
|
+
column.filter(
|
|
203
|
+
getColumnValues(items, getColumnKey(column)),
|
|
204
|
+
(value: any) =>
|
|
205
|
+
handleOnCustomFilterChange &&
|
|
206
|
+
handleOnCustomFilterChange(getColumnKey(column), value),
|
|
207
|
+
)
|
|
208
|
+
) : (
|
|
209
|
+
<CFormInput
|
|
210
|
+
size="sm"
|
|
211
|
+
onInput={(event) =>
|
|
212
|
+
handleFilterOnInput &&
|
|
213
|
+
handleFilterOnInput(
|
|
214
|
+
getColumnKey(column),
|
|
215
|
+
(event.target as HTMLInputElement).value,
|
|
216
|
+
)
|
|
217
|
+
}
|
|
218
|
+
onChange={(event) =>
|
|
219
|
+
handleFilterOnChange &&
|
|
220
|
+
handleFilterOnChange(
|
|
221
|
+
getColumnKey(column),
|
|
222
|
+
(event.target as HTMLInputElement).value,
|
|
223
|
+
)
|
|
224
|
+
}
|
|
225
|
+
value={
|
|
226
|
+
columnFilterState && columnFilterState[getColumnKey(column)]
|
|
227
|
+
? columnFilterState[getColumnKey(column)]
|
|
228
|
+
: ''
|
|
229
|
+
}
|
|
230
|
+
aria-label={`column name: '${getColumnLabel(column)}' filter input`}
|
|
231
|
+
/>
|
|
232
|
+
)
|
|
233
|
+
) : (
|
|
234
|
+
''
|
|
235
|
+
)}
|
|
236
|
+
</CTableHeaderCell>
|
|
237
|
+
)
|
|
238
|
+
})}
|
|
239
|
+
</CTableRow>
|
|
240
|
+
)}
|
|
241
|
+
</Component>
|
|
242
|
+
)
|
|
243
|
+
},
|
|
244
|
+
)
|
|
243
245
|
|
|
244
246
|
CSmartTableHead.propTypes = {
|
|
247
|
+
as: PropTypes.elementType,
|
|
245
248
|
columnFilter: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),
|
|
246
249
|
columnFilterState: PropTypes.object,
|
|
247
250
|
columnSorter: PropTypes.oneOfType([PropTypes.bool, PropTypes.object]),
|
|
248
|
-
component: PropTypes.elementType,
|
|
249
251
|
children: PropTypes.node,
|
|
250
252
|
columns: PropTypes.arrayOf(PropTypes.oneOfType([PropTypes.any, PropTypes.string])).isRequired, // TODO: improve this Prop Type,
|
|
251
253
|
handleFilterOnChange: PropTypes.func,
|
|
@@ -2,10 +2,15 @@ import React, { ElementType, forwardRef, HTMLAttributes } from 'react'
|
|
|
2
2
|
import PropTypes from 'prop-types'
|
|
3
3
|
import classNames from 'classnames'
|
|
4
4
|
|
|
5
|
+
import { PolymorphicRefForwardingComponent } from '../../helpers'
|
|
5
6
|
import { colorPropType } from '../../props'
|
|
6
7
|
import type { Colors } from '../../types'
|
|
7
8
|
|
|
8
9
|
export interface CSpinnerProps extends HTMLAttributes<HTMLDivElement | HTMLSpanElement> {
|
|
10
|
+
/**
|
|
11
|
+
* Component used for the root node. Either a string to use a HTML element or a component.
|
|
12
|
+
*/
|
|
13
|
+
as?: ElementType
|
|
9
14
|
/**
|
|
10
15
|
* A string of all className you want applied to the component.
|
|
11
16
|
*/
|
|
@@ -16,10 +21,6 @@ export interface CSpinnerProps extends HTMLAttributes<HTMLDivElement | HTMLSpanE
|
|
|
16
21
|
* @type 'primary' | 'secondary' | 'success' | 'danger' | 'warning' | 'info' | 'dark' | 'light' | string
|
|
17
22
|
*/
|
|
18
23
|
color?: Colors
|
|
19
|
-
/**
|
|
20
|
-
* Component used for the root node. Either a string to use a HTML element or a component.
|
|
21
|
-
*/
|
|
22
|
-
component?: string | ElementType
|
|
23
24
|
/**
|
|
24
25
|
* Size the component small.
|
|
25
26
|
*/
|
|
@@ -34,12 +35,15 @@ export interface CSpinnerProps extends HTMLAttributes<HTMLDivElement | HTMLSpanE
|
|
|
34
35
|
visuallyHiddenLabel?: string
|
|
35
36
|
}
|
|
36
37
|
|
|
37
|
-
export const CSpinner
|
|
38
|
+
export const CSpinner: PolymorphicRefForwardingComponent<'div', CSpinnerProps> = forwardRef<
|
|
39
|
+
HTMLDivElement | HTMLSpanElement,
|
|
40
|
+
CSpinnerProps
|
|
41
|
+
>(
|
|
38
42
|
(
|
|
39
43
|
{
|
|
44
|
+
as: Component = 'div',
|
|
40
45
|
className,
|
|
41
46
|
color,
|
|
42
|
-
component: Component = 'div',
|
|
43
47
|
size,
|
|
44
48
|
variant = 'border',
|
|
45
49
|
visuallyHiddenLabel = 'Loading...',
|
|
@@ -68,9 +72,9 @@ export const CSpinner = forwardRef<HTMLDivElement | HTMLSpanElement, CSpinnerPro
|
|
|
68
72
|
)
|
|
69
73
|
|
|
70
74
|
CSpinner.propTypes = {
|
|
75
|
+
as: PropTypes.string,
|
|
71
76
|
className: PropTypes.string,
|
|
72
77
|
color: colorPropType,
|
|
73
|
-
component: PropTypes.string,
|
|
74
78
|
size: PropTypes.oneOf(['sm']),
|
|
75
79
|
variant: PropTypes.oneOf(['border', 'grow']),
|
|
76
80
|
visuallyHiddenLabel: PropTypes.string,
|
|
@@ -10,7 +10,7 @@ test('loads and displays CSpinner component', async () => {
|
|
|
10
10
|
|
|
11
11
|
test('CSpinner customize', async () => {
|
|
12
12
|
const { container } = render(
|
|
13
|
-
<CSpinner className="bazinga" color="warning"
|
|
13
|
+
<CSpinner className="bazinga" color="warning" as="h3" size="sm" variant="grow">
|
|
14
14
|
Test
|
|
15
15
|
</CSpinner>,
|
|
16
16
|
)
|
|
@@ -20,6 +20,7 @@ import {
|
|
|
20
20
|
|
|
21
21
|
import { Colors } from '../../types'
|
|
22
22
|
import type { LocalizedTimePartials } from './types'
|
|
23
|
+
import { useDebouncedCallback } from '../../hooks'
|
|
23
24
|
|
|
24
25
|
export interface CTimePickerProps
|
|
25
26
|
extends Omit<CFormControlWrapperProps, 'floatingLabel'>,
|
|
@@ -77,10 +78,22 @@ export interface CTimePickerProps
|
|
|
77
78
|
* Set the confirm button variant to an outlined button or a ghost button.
|
|
78
79
|
*/
|
|
79
80
|
confirmButtonVariant?: 'outline' | 'ghost'
|
|
81
|
+
/**
|
|
82
|
+
* Specify a list of available hours using an array, or customize the filtering of hours through a function.
|
|
83
|
+
*
|
|
84
|
+
* @since 5.0.0-rc.2
|
|
85
|
+
*/
|
|
86
|
+
hours?: number[] | ((hour: number) => number[])
|
|
80
87
|
/**
|
|
81
88
|
* Toggle visibility or set the content of the input indicator.
|
|
82
89
|
*/
|
|
83
90
|
indicator?: ReactNode | boolean
|
|
91
|
+
/**
|
|
92
|
+
* Defines the delay (in milliseconds) for the input field's onChange event.
|
|
93
|
+
*
|
|
94
|
+
* @since v5.0.0-rc.2
|
|
95
|
+
*/
|
|
96
|
+
inputOnChangeDelay?: number
|
|
84
97
|
/**
|
|
85
98
|
* Toggle the readonly state for the component.
|
|
86
99
|
*/
|
|
@@ -89,6 +102,12 @@ export interface CTimePickerProps
|
|
|
89
102
|
* Sets the default locale for components. If not set, it is inherited from the browser.
|
|
90
103
|
*/
|
|
91
104
|
locale?: string
|
|
105
|
+
/**
|
|
106
|
+
* Toggle the display of minutes, specify a list of available minutes using an array, or customize the filtering of minutes through a function.
|
|
107
|
+
*
|
|
108
|
+
* @since 5.0.0-rc.2
|
|
109
|
+
*/
|
|
110
|
+
minutes?: boolean | number[] | ((minute: number) => number[])
|
|
92
111
|
/**
|
|
93
112
|
* Callback fired when the time changed.
|
|
94
113
|
*/
|
|
@@ -104,11 +123,11 @@ export interface CTimePickerProps
|
|
|
104
123
|
*/
|
|
105
124
|
required?: boolean
|
|
106
125
|
/**
|
|
107
|
-
*
|
|
126
|
+
* Toggle the display of seconds, specify a list of available seconds using an array, or customize the filtering of seconds through a function.
|
|
108
127
|
*
|
|
109
128
|
* @since 4.8.0
|
|
110
129
|
*/
|
|
111
|
-
seconds?: boolean
|
|
130
|
+
seconds?: boolean | number[] | ((second: number) => number[])
|
|
112
131
|
/**
|
|
113
132
|
* Size the component small or large.
|
|
114
133
|
*/
|
|
@@ -143,12 +162,15 @@ export const CTimePicker = forwardRef<HTMLDivElement | HTMLLIElement, CTimePicke
|
|
|
143
162
|
feedbackInvalid,
|
|
144
163
|
feedbackValid,
|
|
145
164
|
footer = true,
|
|
165
|
+
hours,
|
|
146
166
|
id,
|
|
147
167
|
indicator = true,
|
|
168
|
+
inputOnChangeDelay = 750,
|
|
148
169
|
inputReadOnly,
|
|
149
170
|
invalid,
|
|
150
171
|
label,
|
|
151
172
|
locale = 'default',
|
|
173
|
+
minutes = true,
|
|
152
174
|
onTimeChange,
|
|
153
175
|
onHide,
|
|
154
176
|
onShow,
|
|
@@ -191,13 +213,15 @@ export const CTimePicker = forwardRef<HTMLDivElement | HTMLLIElement, CTimePicke
|
|
|
191
213
|
}, [valid, invalid])
|
|
192
214
|
|
|
193
215
|
useEffect(() => {
|
|
194
|
-
setLocalizedTimePartials(getLocalizedTimePartials(locale, ampm))
|
|
216
|
+
setLocalizedTimePartials(getLocalizedTimePartials(locale, ampm, hours, minutes, seconds))
|
|
195
217
|
|
|
196
218
|
if (inputRef.current) {
|
|
197
219
|
inputRef.current.value = date
|
|
198
220
|
? date.toLocaleTimeString(locale, {
|
|
199
221
|
hour12: localizedTimePartials && localizedTimePartials.hour12,
|
|
200
|
-
|
|
222
|
+
hour: 'numeric',
|
|
223
|
+
...(minutes && { minute: 'numeric' }),
|
|
224
|
+
...(seconds && { second: 'numeric' }),
|
|
201
225
|
})
|
|
202
226
|
: ''
|
|
203
227
|
}
|
|
@@ -239,6 +263,11 @@ export const CTimePicker = forwardRef<HTMLDivElement | HTMLLIElement, CTimePicke
|
|
|
239
263
|
setIsValid(false)
|
|
240
264
|
}
|
|
241
265
|
|
|
266
|
+
const handleOnChange = useDebouncedCallback(
|
|
267
|
+
(value: string) => isValidTime(value) && setDate(convertTimeToDate(value)),
|
|
268
|
+
inputOnChangeDelay,
|
|
269
|
+
)
|
|
270
|
+
|
|
242
271
|
const handleTimeChange = (set: 'hours' | 'minutes' | 'seconds' | 'toggle', value: string) => {
|
|
243
272
|
const _date = date || new Date('1970-01-01')
|
|
244
273
|
|
|
@@ -276,11 +305,8 @@ export const CTimePicker = forwardRef<HTMLDivElement | HTMLLIElement, CTimePicke
|
|
|
276
305
|
<input
|
|
277
306
|
autoComplete="off"
|
|
278
307
|
className="time-picker-input"
|
|
279
|
-
// delay={true}
|
|
280
308
|
disabled={disabled}
|
|
281
|
-
onChange={(event) =>
|
|
282
|
-
isValidTime(event.target.value) && setDate(convertTimeToDate(event.target.value))
|
|
283
|
-
}
|
|
309
|
+
onChange={(event) => handleOnChange(event.target.value)}
|
|
284
310
|
placeholder={placeholder}
|
|
285
311
|
readOnly={inputReadOnly}
|
|
286
312
|
required={required}
|
|
@@ -320,22 +346,26 @@ export const CTimePicker = forwardRef<HTMLDivElement | HTMLLIElement, CTimePicke
|
|
|
320
346
|
</option>
|
|
321
347
|
))}
|
|
322
348
|
</select>
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
349
|
+
{minutes && (
|
|
350
|
+
<>
|
|
351
|
+
<>:</>
|
|
352
|
+
<select
|
|
353
|
+
className="time-picker-inline-select"
|
|
354
|
+
disabled={disabled}
|
|
355
|
+
onChange={(event: React.ChangeEvent<HTMLSelectElement>) =>
|
|
356
|
+
handleTimeChange('minutes', event.target.value)
|
|
357
|
+
}
|
|
358
|
+
value={getSelectedMinutes(date)}
|
|
359
|
+
>
|
|
360
|
+
{localizedTimePartials &&
|
|
361
|
+
localizedTimePartials.listOfMinutes.map((option, index) => (
|
|
362
|
+
<option value={option.value.toString()} key={index}>
|
|
363
|
+
{option.label}
|
|
364
|
+
</option>
|
|
365
|
+
))}
|
|
366
|
+
</select>
|
|
367
|
+
</>
|
|
368
|
+
)}
|
|
339
369
|
{seconds && (
|
|
340
370
|
<>
|
|
341
371
|
<>:</>
|
|
@@ -459,11 +489,13 @@ export const CTimePicker = forwardRef<HTMLDivElement | HTMLLIElement, CTimePicke
|
|
|
459
489
|
onClick={(index: number) => handleTimeChange('hours', index.toString())}
|
|
460
490
|
selected={getSelectedHour(date, locale, ampm)}
|
|
461
491
|
/>
|
|
462
|
-
|
|
463
|
-
|
|
464
|
-
|
|
465
|
-
|
|
466
|
-
|
|
492
|
+
{minutes && (
|
|
493
|
+
<CTimePickerRollCol
|
|
494
|
+
elements={localizedTimePartials && localizedTimePartials.listOfMinutes}
|
|
495
|
+
onClick={(index: number) => handleTimeChange('minutes', index.toString())}
|
|
496
|
+
selected={getSelectedMinutes(date)}
|
|
497
|
+
/>
|
|
498
|
+
)}
|
|
467
499
|
{seconds && (
|
|
468
500
|
<CTimePickerRollCol
|
|
469
501
|
elements={localizedTimePartials && localizedTimePartials.listOfSeconds}
|
|
@@ -503,10 +535,21 @@ CTimePicker.propTypes = {
|
|
|
503
535
|
confirmButtonColor: CButton.propTypes?.color,
|
|
504
536
|
confirmButtonSize: CButton.propTypes?.size,
|
|
505
537
|
confirmButtonVariant: CButton.propTypes?.variant,
|
|
538
|
+
hours: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.number.isRequired), PropTypes.func]),
|
|
539
|
+
inputOnChangeDelay: PropTypes.number,
|
|
506
540
|
locale: PropTypes.string,
|
|
541
|
+
minutes: PropTypes.oneOfType([
|
|
542
|
+
PropTypes.bool,
|
|
543
|
+
PropTypes.arrayOf(PropTypes.number.isRequired),
|
|
544
|
+
PropTypes.func,
|
|
545
|
+
]),
|
|
507
546
|
onTimeChange: PropTypes.func,
|
|
508
547
|
required: PropTypes.bool,
|
|
509
|
-
seconds: PropTypes.
|
|
548
|
+
seconds: PropTypes.oneOfType([
|
|
549
|
+
PropTypes.bool,
|
|
550
|
+
PropTypes.arrayOf(PropTypes.number.isRequired),
|
|
551
|
+
PropTypes.func,
|
|
552
|
+
]),
|
|
510
553
|
time: PropTypes.oneOfType([PropTypes.instanceOf(Date), PropTypes.string]),
|
|
511
554
|
variant: PropTypes.oneOf(['roll', 'select']),
|
|
512
555
|
}
|