@coreui/react-pro 5.28.1 → 5.29.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 +14 -0
- package/dist/cjs/_virtual/_commonjsHelpers.js.map +1 -1
- package/dist/cjs/_virtual/index.js.map +1 -1
- package/dist/cjs/_virtual/index2.js.map +1 -1
- package/dist/cjs/_virtual/lib.js.map +1 -1
- package/dist/cjs/_virtual/lib2.js.map +1 -1
- package/dist/cjs/_virtual/ua-parser.min.js.map +1 -1
- package/dist/cjs/components/accordion/CAccordion.js.map +1 -1
- package/dist/cjs/components/accordion/CAccordionBody.js.map +1 -1
- package/dist/cjs/components/accordion/CAccordionButton.js.map +1 -1
- package/dist/cjs/components/accordion/CAccordionContext.js.map +1 -1
- package/dist/cjs/components/accordion/CAccordionHeader.js.map +1 -1
- package/dist/cjs/components/accordion/CAccordionItem.js.map +1 -1
- package/dist/cjs/components/accordion/CAccordionItemContext.js.map +1 -1
- package/dist/cjs/components/alert/CAlert.js.map +1 -1
- package/dist/cjs/components/alert/CAlertHeading.js.map +1 -1
- package/dist/cjs/components/alert/CAlertLink.js.map +1 -1
- package/dist/cjs/components/autocomplete/CAutocomplete.d.ts +1 -1
- package/dist/cjs/components/autocomplete/CAutocomplete.js +9 -10
- package/dist/cjs/components/autocomplete/CAutocomplete.js.map +1 -1
- package/dist/cjs/components/autocomplete/CAutocompleteOptions.js +10 -6
- package/dist/cjs/components/autocomplete/CAutocompleteOptions.js.map +1 -1
- package/dist/cjs/components/autocomplete/types.d.ts +1 -0
- package/dist/cjs/components/autocomplete/utils.d.ts +2 -1
- package/dist/cjs/components/autocomplete/utils.js +10 -0
- package/dist/cjs/components/autocomplete/utils.js.map +1 -1
- package/dist/cjs/components/avatar/CAvatar.js.map +1 -1
- package/dist/cjs/components/backdrop/CBackdrop.js.map +1 -1
- package/dist/cjs/components/badge/CBadge.js.map +1 -1
- package/dist/cjs/components/breadcrumb/CBreadcrumb.js.map +1 -1
- package/dist/cjs/components/breadcrumb/CBreadcrumbItem.js.map +1 -1
- package/dist/cjs/components/button/CButton.js.map +1 -1
- package/dist/cjs/components/button-group/CButtonGroup.js.map +1 -1
- package/dist/cjs/components/button-group/CButtonToolbar.js.map +1 -1
- package/dist/cjs/components/calendar/CCalendar.js.map +1 -1
- package/dist/cjs/components/calendar/CCalendarNavigation.js.map +1 -1
- package/dist/cjs/components/calendar/CCalendarPanel.js.map +1 -1
- package/dist/cjs/components/calendar/utils.d.ts +10 -2
- package/dist/cjs/components/calendar/utils.js +63 -53
- package/dist/cjs/components/calendar/utils.js.map +1 -1
- package/dist/cjs/components/callout/CCallout.js.map +1 -1
- package/dist/cjs/components/card/CCard.js.map +1 -1
- package/dist/cjs/components/card/CCardBody.js.map +1 -1
- package/dist/cjs/components/card/CCardFooter.js.map +1 -1
- package/dist/cjs/components/card/CCardGroup.js.map +1 -1
- package/dist/cjs/components/card/CCardHeader.js.map +1 -1
- package/dist/cjs/components/card/CCardImage.js.map +1 -1
- package/dist/cjs/components/card/CCardImageOverlay.js.map +1 -1
- package/dist/cjs/components/card/CCardLink.js.map +1 -1
- package/dist/cjs/components/card/CCardSubtitle.js.map +1 -1
- package/dist/cjs/components/card/CCardText.js.map +1 -1
- 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/CCarouselCaption.js.map +1 -1
- package/dist/cjs/components/carousel/CCarouselContext.js.map +1 -1
- package/dist/cjs/components/carousel/CCarouselItem.js.map +1 -1
- package/dist/cjs/components/chip/CChip.js.map +1 -1
- package/dist/cjs/components/chip/const.js.map +1 -1
- package/dist/cjs/components/chip-set/CChipSet.js.map +1 -1
- package/dist/cjs/components/chip-set/useChipSet.js.map +1 -1
- package/dist/cjs/components/chip-set/utils.js.map +1 -1
- package/dist/cjs/components/close-button/CCloseButton.js.map +1 -1
- package/dist/cjs/components/collapse/CCollapse.js.map +1 -1
- package/dist/cjs/components/conditional-portal/CConditionalPortal.js.map +1 -1
- package/dist/cjs/components/date-picker/CDatePicker.js.map +1 -1
- package/dist/cjs/components/date-range-picker/CDateRangePicker.d.ts +18 -0
- package/dist/cjs/components/date-range-picker/CDateRangePicker.js +20 -9
- 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.js.map +1 -1
- package/dist/cjs/components/dropdown/CDropdownContext.js.map +1 -1
- package/dist/cjs/components/dropdown/CDropdownDivider.js.map +1 -1
- package/dist/cjs/components/dropdown/CDropdownHeader.js.map +1 -1
- package/dist/cjs/components/dropdown/CDropdownItem.js.map +1 -1
- package/dist/cjs/components/dropdown/CDropdownItemPlain.js.map +1 -1
- package/dist/cjs/components/dropdown/CDropdownMenu.js.map +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/focus-trap/CFocusTrap.js.map +1 -1
- package/dist/cjs/components/focus-trap/utils.js.map +1 -1
- package/dist/cjs/components/footer/CFooter.js.map +1 -1
- package/dist/cjs/components/form/CChipInput.d.ts +1 -1
- package/dist/cjs/components/form/CChipInput.js +2 -3
- package/dist/cjs/components/form/CChipInput.js.map +1 -1
- package/dist/cjs/components/form/CForm.js.map +1 -1
- package/dist/cjs/components/form/CFormCheck.js.map +1 -1
- package/dist/cjs/components/form/CFormControlValidation.js.map +1 -1
- package/dist/cjs/components/form/CFormControlWrapper.js.map +1 -1
- package/dist/cjs/components/form/CFormFeedback.js.map +1 -1
- package/dist/cjs/components/form/CFormFloating.js.map +1 -1
- package/dist/cjs/components/form/CFormInput.js.map +1 -1
- package/dist/cjs/components/form/CFormLabel.js.map +1 -1
- package/dist/cjs/components/form/CFormRange.js.map +1 -1
- package/dist/cjs/components/form/CFormSelect.js.map +1 -1
- package/dist/cjs/components/form/CFormSwitch.js.map +1 -1
- package/dist/cjs/components/form/CFormText.js.map +1 -1
- package/dist/cjs/components/form/CFormTextarea.js.map +1 -1
- package/dist/cjs/components/form/CInputGroup.js.map +1 -1
- 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/CContainer.js.map +1 -1
- package/dist/cjs/components/grid/CRow.js.map +1 -1
- package/dist/cjs/components/header/CHeader.js.map +1 -1
- package/dist/cjs/components/header/CHeaderBrand.js.map +1 -1
- package/dist/cjs/components/header/CHeaderDivider.js.map +1 -1
- package/dist/cjs/components/header/CHeaderNav.js.map +1 -1
- package/dist/cjs/components/header/CHeaderText.js.map +1 -1
- package/dist/cjs/components/header/CHeaderToggler.js.map +1 -1
- package/dist/cjs/components/image/CImage.js.map +1 -1
- package/dist/cjs/components/link/CLink.js.map +1 -1
- package/dist/cjs/components/list-group/CListGroup.js.map +1 -1
- 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.map +1 -1
- package/dist/cjs/components/modal/CModalBody.js.map +1 -1
- package/dist/cjs/components/modal/CModalContent.js.map +1 -1
- package/dist/cjs/components/modal/CModalContext.js.map +1 -1
- package/dist/cjs/components/modal/CModalDialog.js.map +1 -1
- package/dist/cjs/components/modal/CModalFooter.js.map +1 -1
- package/dist/cjs/components/modal/CModalHeader.js.map +1 -1
- package/dist/cjs/components/modal/CModalTitle.js.map +1 -1
- package/dist/cjs/components/multi-select/CMultiSelect.d.ts +0 -3
- package/dist/cjs/components/multi-select/CMultiSelect.js +43 -6
- package/dist/cjs/components/multi-select/CMultiSelect.js.map +1 -1
- package/dist/cjs/components/multi-select/CMultiSelectNativeSelect.js +1 -1
- package/dist/cjs/components/multi-select/CMultiSelectNativeSelect.js.map +1 -1
- package/dist/cjs/components/multi-select/CMultiSelectOptions.js +16 -10
- 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/types.d.ts +1 -0
- package/dist/cjs/components/multi-select/utils.d.ts +2 -1
- package/dist/cjs/components/multi-select/utils.js +9 -5
- package/dist/cjs/components/multi-select/utils.js.map +1 -1
- package/dist/cjs/components/nav/CNav.js.map +1 -1
- package/dist/cjs/components/nav/CNavGroup.js.map +1 -1
- package/dist/cjs/components/nav/CNavGroupContext.js.map +1 -1
- package/dist/cjs/components/nav/CNavGroupItems.js.map +1 -1
- package/dist/cjs/components/nav/CNavItem.js.map +1 -1
- package/dist/cjs/components/nav/CNavLink.js.map +1 -1
- package/dist/cjs/components/nav/CNavTitle.js.map +1 -1
- package/dist/cjs/components/navbar/CNavbar.js.map +1 -1
- package/dist/cjs/components/navbar/CNavbarBrand.js.map +1 -1
- package/dist/cjs/components/navbar/CNavbarNav.js.map +1 -1
- package/dist/cjs/components/navbar/CNavbarText.js.map +1 -1
- package/dist/cjs/components/navbar/CNavbarToggler.js.map +1 -1
- package/dist/cjs/components/offcanvas/COffcanvas.js +7 -2
- package/dist/cjs/components/offcanvas/COffcanvas.js.map +1 -1
- package/dist/cjs/components/offcanvas/COffcanvasBody.js.map +1 -1
- package/dist/cjs/components/offcanvas/COffcanvasHeader.js.map +1 -1
- package/dist/cjs/components/offcanvas/COffcanvasTitle.js.map +1 -1
- package/dist/cjs/components/one-time-password-input/COneTimePassword.d.ts +1 -1
- package/dist/cjs/components/one-time-password-input/COneTimePassword.js +5 -5
- package/dist/cjs/components/one-time-password-input/COneTimePassword.js.map +1 -1
- package/dist/cjs/components/one-time-password-input/COneTimePasswordInput.js.map +1 -1
- package/dist/cjs/components/one-time-password-input/utils.js.map +1 -1
- package/dist/cjs/components/pagination/CPagination.js.map +1 -1
- package/dist/cjs/components/pagination/CPaginationItem.js.map +1 -1
- package/dist/cjs/components/password-input/CPasswordInput.js.map +1 -1
- package/dist/cjs/components/picker/CPicker.js.map +1 -1
- package/dist/cjs/components/placeholder/CPlaceholder.js.map +1 -1
- package/dist/cjs/components/popover/CPopover.js.map +1 -1
- package/dist/cjs/components/progress/CProgress.js.map +1 -1
- package/dist/cjs/components/progress/CProgressBar.js.map +1 -1
- package/dist/cjs/components/progress/CProgressStacked.js.map +1 -1
- package/dist/cjs/components/progress/CProgressStackedContext.js.map +1 -1
- package/dist/cjs/components/range-slider/CRangeSlider.js.map +1 -1
- package/dist/cjs/components/range-slider/utils.js.map +1 -1
- package/dist/cjs/components/rating/CRating.js.map +1 -1
- package/dist/cjs/components/search-button/CSearchButton.js.map +1 -1
- package/dist/cjs/components/search-button/utils.js.map +1 -1
- package/dist/cjs/components/sidebar/CSidebar.js.map +1 -1
- package/dist/cjs/components/sidebar/CSidebarBrand.js.map +1 -1
- package/dist/cjs/components/sidebar/CSidebarFooter.js.map +1 -1
- package/dist/cjs/components/sidebar/CSidebarHeader.js.map +1 -1
- package/dist/cjs/components/sidebar/CSidebarNav.js.map +1 -1
- package/dist/cjs/components/sidebar/CSidebarToggler.js.map +1 -1
- package/dist/cjs/components/smart-pagination/CSmartPagination.js.map +1 -1
- 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.js.map +1 -1
- package/dist/cjs/components/smart-table/consts.js.map +1 -1
- package/dist/cjs/components/smart-table/utils.js.map +1 -1
- package/dist/cjs/components/spinner/CSpinner.js.map +1 -1
- package/dist/cjs/components/stepper/CStepper.js.map +1 -1
- package/dist/cjs/components/table/CTable.js.map +1 -1
- package/dist/cjs/components/table/CTableBody.js.map +1 -1
- package/dist/cjs/components/table/CTableCaption.js.map +1 -1
- package/dist/cjs/components/table/CTableDataCell.js.map +1 -1
- package/dist/cjs/components/table/CTableFoot.js.map +1 -1
- package/dist/cjs/components/table/CTableHead.js.map +1 -1
- package/dist/cjs/components/table/CTableHeaderCell.js.map +1 -1
- package/dist/cjs/components/table/CTableResponsiveWrapper.js.map +1 -1
- package/dist/cjs/components/table/CTableRow.js.map +1 -1
- package/dist/cjs/components/table/utils.js.map +1 -1
- package/dist/cjs/components/tabs/CTab.js.map +1 -1
- package/dist/cjs/components/tabs/CTabContent.js.map +1 -1
- package/dist/cjs/components/tabs/CTabList.js.map +1 -1
- package/dist/cjs/components/tabs/CTabPane.js.map +1 -1
- package/dist/cjs/components/tabs/CTabPanel.js.map +1 -1
- package/dist/cjs/components/tabs/CTabs.js.map +1 -1
- package/dist/cjs/components/tabs/CTabsContext.js.map +1 -1
- package/dist/cjs/components/time-picker/CTimePicker.d.ts +3 -3
- 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 +1 -1
- 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/CToastBody.js.map +1 -1
- package/dist/cjs/components/toast/CToastClose.js.map +1 -1
- package/dist/cjs/components/toast/CToastContext.js.map +1 -1
- package/dist/cjs/components/toast/CToastHeader.js.map +1 -1
- package/dist/cjs/components/toast/CToaster.js.map +1 -1
- package/dist/cjs/components/tooltip/CTooltip.js.map +1 -1
- package/dist/cjs/components/virtual-scroller/CVirtualScroller.js.map +1 -1
- package/dist/cjs/components/widgets/CWidgetStatsA.js.map +1 -1
- package/dist/cjs/components/widgets/CWidgetStatsB.js.map +1 -1
- package/dist/cjs/components/widgets/CWidgetStatsC.js.map +1 -1
- package/dist/cjs/components/widgets/CWidgetStatsD.js.map +1 -1
- package/dist/cjs/components/widgets/CWidgetStatsE.js.map +1 -1
- package/dist/cjs/components/widgets/CWidgetStatsF.js.map +1 -1
- package/dist/cjs/hooks/useClipboard.js.map +1 -1
- package/dist/cjs/hooks/useColorModes.js.map +1 -1
- package/dist/cjs/hooks/useDebounce.js.map +1 -1
- package/dist/cjs/hooks/useDebouncedCallback.js.map +1 -1
- package/dist/cjs/hooks/useDropdownWithPopper.js.map +1 -1
- package/dist/cjs/hooks/useForkedRef.js.map +1 -1
- package/dist/cjs/hooks/useIsVisible.js.map +1 -1
- package/dist/cjs/hooks/usePopper.js.map +1 -1
- package/dist/cjs/hooks/useStateWithCallback.js.map +1 -1
- package/dist/cjs/node_modules/@babel/runtime/helpers/esm/extends.js.map +1 -1
- package/dist/cjs/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js.map +1 -1
- package/dist/cjs/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js.map +1 -1
- package/dist/cjs/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js.map +1 -1
- package/dist/cjs/node_modules/@coreui/icons/dist/esm/free/cil-arrow-bottom.js.map +1 -1
- package/dist/cjs/node_modules/@coreui/icons/dist/esm/free/cil-arrow-top.js.map +1 -1
- package/dist/cjs/node_modules/@coreui/icons/dist/esm/free/cil-filter-x.js.map +1 -1
- package/dist/cjs/node_modules/@coreui/icons/dist/esm/free/cil-swap-vertical.js.map +1 -1
- package/dist/cjs/node_modules/@coreui/icons-react/dist/index.esm.js.map +1 -1
- package/dist/cjs/node_modules/classnames/index.js.map +1 -1
- package/dist/cjs/node_modules/dom-helpers/esm/addClass.js.map +1 -1
- package/dist/cjs/node_modules/dom-helpers/esm/hasClass.js.map +1 -1
- package/dist/cjs/node_modules/dom-helpers/esm/removeClass.js.map +1 -1
- package/dist/cjs/node_modules/react-device-detect/dist/lib.js.map +1 -1
- package/dist/cjs/node_modules/react-transition-group/esm/CSSTransition.js.map +1 -1
- package/dist/cjs/node_modules/react-transition-group/esm/Transition.js.map +1 -1
- package/dist/cjs/node_modules/react-transition-group/esm/TransitionGroupContext.js.map +1 -1
- package/dist/cjs/node_modules/react-transition-group/esm/config.js.map +1 -1
- package/dist/cjs/node_modules/react-transition-group/esm/utils/PropTypes.js.map +1 -1
- package/dist/cjs/node_modules/react-transition-group/esm/utils/reflow.js.map +1 -1
- package/dist/cjs/node_modules/tslib/tslib.es6.js.map +1 -1
- package/dist/cjs/node_modules/ua-parser-js/dist/ua-parser.min.js.map +1 -1
- package/dist/cjs/props.js.map +1 -1
- package/dist/cjs/utils/executeAfterTransition.js.map +1 -1
- package/dist/cjs/utils/getNextActiveElement.js.map +1 -1
- package/dist/cjs/utils/getNextSibling.js.map +1 -1
- package/dist/cjs/utils/getPreviousSibling.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/isInViewport.js.map +1 -1
- package/dist/cjs/utils/isObjectInArray.js.map +1 -1
- package/dist/cjs/utils/isRTL.js.map +1 -1
- package/dist/cjs/utils/swipe.js.map +1 -1
- package/dist/esm/_virtual/_commonjsHelpers.js.map +1 -1
- package/dist/esm/_virtual/index.js.map +1 -1
- package/dist/esm/_virtual/index2.js.map +1 -1
- package/dist/esm/_virtual/lib.js.map +1 -1
- package/dist/esm/_virtual/lib2.js.map +1 -1
- package/dist/esm/_virtual/ua-parser.min.js.map +1 -1
- package/dist/esm/components/accordion/CAccordion.js.map +1 -1
- package/dist/esm/components/accordion/CAccordionBody.js.map +1 -1
- package/dist/esm/components/accordion/CAccordionButton.js.map +1 -1
- package/dist/esm/components/accordion/CAccordionContext.js.map +1 -1
- package/dist/esm/components/accordion/CAccordionHeader.js.map +1 -1
- package/dist/esm/components/accordion/CAccordionItem.js.map +1 -1
- package/dist/esm/components/accordion/CAccordionItemContext.js.map +1 -1
- package/dist/esm/components/alert/CAlert.js.map +1 -1
- package/dist/esm/components/alert/CAlertHeading.js.map +1 -1
- package/dist/esm/components/alert/CAlertLink.js.map +1 -1
- package/dist/esm/components/autocomplete/CAutocomplete.d.ts +1 -1
- package/dist/esm/components/autocomplete/CAutocomplete.js +10 -11
- package/dist/esm/components/autocomplete/CAutocomplete.js.map +1 -1
- package/dist/esm/components/autocomplete/CAutocompleteOptions.js +7 -3
- package/dist/esm/components/autocomplete/CAutocompleteOptions.js.map +1 -1
- package/dist/esm/components/autocomplete/types.d.ts +1 -0
- package/dist/esm/components/autocomplete/utils.d.ts +2 -1
- package/dist/esm/components/autocomplete/utils.js +10 -1
- package/dist/esm/components/autocomplete/utils.js.map +1 -1
- package/dist/esm/components/avatar/CAvatar.js.map +1 -1
- package/dist/esm/components/backdrop/CBackdrop.js.map +1 -1
- package/dist/esm/components/badge/CBadge.js.map +1 -1
- package/dist/esm/components/breadcrumb/CBreadcrumb.js.map +1 -1
- package/dist/esm/components/breadcrumb/CBreadcrumbItem.js.map +1 -1
- package/dist/esm/components/button/CButton.js.map +1 -1
- package/dist/esm/components/button-group/CButtonGroup.js.map +1 -1
- package/dist/esm/components/button-group/CButtonToolbar.js.map +1 -1
- package/dist/esm/components/calendar/CCalendar.js.map +1 -1
- package/dist/esm/components/calendar/CCalendarNavigation.js.map +1 -1
- package/dist/esm/components/calendar/CCalendarPanel.js.map +1 -1
- package/dist/esm/components/calendar/utils.d.ts +10 -2
- package/dist/esm/components/calendar/utils.js +63 -54
- package/dist/esm/components/calendar/utils.js.map +1 -1
- package/dist/esm/components/callout/CCallout.js.map +1 -1
- package/dist/esm/components/card/CCard.js.map +1 -1
- package/dist/esm/components/card/CCardBody.js.map +1 -1
- package/dist/esm/components/card/CCardFooter.js.map +1 -1
- package/dist/esm/components/card/CCardGroup.js.map +1 -1
- package/dist/esm/components/card/CCardHeader.js.map +1 -1
- package/dist/esm/components/card/CCardImage.js.map +1 -1
- package/dist/esm/components/card/CCardImageOverlay.js.map +1 -1
- package/dist/esm/components/card/CCardLink.js.map +1 -1
- package/dist/esm/components/card/CCardSubtitle.js.map +1 -1
- package/dist/esm/components/card/CCardText.js.map +1 -1
- 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/CCarouselCaption.js.map +1 -1
- package/dist/esm/components/carousel/CCarouselContext.js.map +1 -1
- package/dist/esm/components/carousel/CCarouselItem.js.map +1 -1
- package/dist/esm/components/chip/CChip.js.map +1 -1
- package/dist/esm/components/chip/const.js.map +1 -1
- package/dist/esm/components/chip-set/CChipSet.js.map +1 -1
- package/dist/esm/components/chip-set/useChipSet.js.map +1 -1
- package/dist/esm/components/chip-set/utils.js.map +1 -1
- package/dist/esm/components/close-button/CCloseButton.js.map +1 -1
- package/dist/esm/components/collapse/CCollapse.js.map +1 -1
- package/dist/esm/components/conditional-portal/CConditionalPortal.js.map +1 -1
- package/dist/esm/components/date-picker/CDatePicker.js.map +1 -1
- package/dist/esm/components/date-range-picker/CDateRangePicker.d.ts +18 -0
- package/dist/esm/components/date-range-picker/CDateRangePicker.js +21 -10
- 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.js.map +1 -1
- package/dist/esm/components/dropdown/CDropdownContext.js.map +1 -1
- package/dist/esm/components/dropdown/CDropdownDivider.js.map +1 -1
- package/dist/esm/components/dropdown/CDropdownHeader.js.map +1 -1
- package/dist/esm/components/dropdown/CDropdownItem.js.map +1 -1
- package/dist/esm/components/dropdown/CDropdownItemPlain.js.map +1 -1
- package/dist/esm/components/dropdown/CDropdownMenu.js.map +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/focus-trap/CFocusTrap.js.map +1 -1
- package/dist/esm/components/focus-trap/utils.js.map +1 -1
- package/dist/esm/components/footer/CFooter.js.map +1 -1
- package/dist/esm/components/form/CChipInput.d.ts +1 -1
- package/dist/esm/components/form/CChipInput.js +3 -4
- package/dist/esm/components/form/CChipInput.js.map +1 -1
- package/dist/esm/components/form/CForm.js.map +1 -1
- package/dist/esm/components/form/CFormCheck.js.map +1 -1
- package/dist/esm/components/form/CFormControlValidation.js.map +1 -1
- package/dist/esm/components/form/CFormControlWrapper.js.map +1 -1
- package/dist/esm/components/form/CFormFeedback.js.map +1 -1
- package/dist/esm/components/form/CFormFloating.js.map +1 -1
- package/dist/esm/components/form/CFormInput.js.map +1 -1
- package/dist/esm/components/form/CFormLabel.js.map +1 -1
- package/dist/esm/components/form/CFormRange.js.map +1 -1
- package/dist/esm/components/form/CFormSelect.js.map +1 -1
- package/dist/esm/components/form/CFormSwitch.js.map +1 -1
- package/dist/esm/components/form/CFormText.js.map +1 -1
- package/dist/esm/components/form/CFormTextarea.js.map +1 -1
- package/dist/esm/components/form/CInputGroup.js.map +1 -1
- 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/CContainer.js.map +1 -1
- package/dist/esm/components/grid/CRow.js.map +1 -1
- package/dist/esm/components/header/CHeader.js.map +1 -1
- package/dist/esm/components/header/CHeaderBrand.js.map +1 -1
- package/dist/esm/components/header/CHeaderDivider.js.map +1 -1
- package/dist/esm/components/header/CHeaderNav.js.map +1 -1
- package/dist/esm/components/header/CHeaderText.js.map +1 -1
- package/dist/esm/components/header/CHeaderToggler.js.map +1 -1
- package/dist/esm/components/image/CImage.js.map +1 -1
- package/dist/esm/components/link/CLink.js.map +1 -1
- package/dist/esm/components/list-group/CListGroup.js.map +1 -1
- 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.map +1 -1
- package/dist/esm/components/modal/CModalBody.js.map +1 -1
- package/dist/esm/components/modal/CModalContent.js.map +1 -1
- package/dist/esm/components/modal/CModalContext.js.map +1 -1
- package/dist/esm/components/modal/CModalDialog.js.map +1 -1
- package/dist/esm/components/modal/CModalFooter.js.map +1 -1
- package/dist/esm/components/modal/CModalHeader.js.map +1 -1
- package/dist/esm/components/modal/CModalTitle.js.map +1 -1
- package/dist/esm/components/multi-select/CMultiSelect.d.ts +0 -3
- package/dist/esm/components/multi-select/CMultiSelect.js +44 -7
- package/dist/esm/components/multi-select/CMultiSelect.js.map +1 -1
- package/dist/esm/components/multi-select/CMultiSelectNativeSelect.js +1 -1
- package/dist/esm/components/multi-select/CMultiSelectNativeSelect.js.map +1 -1
- package/dist/esm/components/multi-select/CMultiSelectOptions.js +16 -10
- 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/types.d.ts +1 -0
- package/dist/esm/components/multi-select/utils.d.ts +2 -1
- package/dist/esm/components/multi-select/utils.js +9 -6
- package/dist/esm/components/multi-select/utils.js.map +1 -1
- package/dist/esm/components/nav/CNav.js.map +1 -1
- package/dist/esm/components/nav/CNavGroup.js.map +1 -1
- package/dist/esm/components/nav/CNavGroupContext.js.map +1 -1
- package/dist/esm/components/nav/CNavGroupItems.js.map +1 -1
- package/dist/esm/components/nav/CNavItem.js.map +1 -1
- package/dist/esm/components/nav/CNavLink.js.map +1 -1
- package/dist/esm/components/nav/CNavTitle.js.map +1 -1
- package/dist/esm/components/navbar/CNavbar.js.map +1 -1
- package/dist/esm/components/navbar/CNavbarBrand.js.map +1 -1
- package/dist/esm/components/navbar/CNavbarNav.js.map +1 -1
- package/dist/esm/components/navbar/CNavbarText.js.map +1 -1
- package/dist/esm/components/navbar/CNavbarToggler.js.map +1 -1
- package/dist/esm/components/offcanvas/COffcanvas.js +7 -2
- package/dist/esm/components/offcanvas/COffcanvas.js.map +1 -1
- package/dist/esm/components/offcanvas/COffcanvasBody.js.map +1 -1
- package/dist/esm/components/offcanvas/COffcanvasHeader.js.map +1 -1
- package/dist/esm/components/offcanvas/COffcanvasTitle.js.map +1 -1
- package/dist/esm/components/one-time-password-input/COneTimePassword.d.ts +1 -1
- package/dist/esm/components/one-time-password-input/COneTimePassword.js +5 -5
- package/dist/esm/components/one-time-password-input/COneTimePassword.js.map +1 -1
- package/dist/esm/components/one-time-password-input/COneTimePasswordInput.js.map +1 -1
- package/dist/esm/components/one-time-password-input/utils.js.map +1 -1
- package/dist/esm/components/pagination/CPagination.js.map +1 -1
- package/dist/esm/components/pagination/CPaginationItem.js.map +1 -1
- package/dist/esm/components/password-input/CPasswordInput.js.map +1 -1
- package/dist/esm/components/picker/CPicker.js.map +1 -1
- package/dist/esm/components/placeholder/CPlaceholder.js.map +1 -1
- package/dist/esm/components/popover/CPopover.js.map +1 -1
- package/dist/esm/components/progress/CProgress.js.map +1 -1
- package/dist/esm/components/progress/CProgressBar.js.map +1 -1
- package/dist/esm/components/progress/CProgressStacked.js.map +1 -1
- package/dist/esm/components/progress/CProgressStackedContext.js.map +1 -1
- package/dist/esm/components/range-slider/CRangeSlider.js.map +1 -1
- package/dist/esm/components/range-slider/utils.js.map +1 -1
- package/dist/esm/components/rating/CRating.js.map +1 -1
- package/dist/esm/components/search-button/CSearchButton.js.map +1 -1
- package/dist/esm/components/search-button/utils.js.map +1 -1
- package/dist/esm/components/sidebar/CSidebar.js.map +1 -1
- package/dist/esm/components/sidebar/CSidebarBrand.js.map +1 -1
- package/dist/esm/components/sidebar/CSidebarFooter.js.map +1 -1
- package/dist/esm/components/sidebar/CSidebarHeader.js.map +1 -1
- package/dist/esm/components/sidebar/CSidebarNav.js.map +1 -1
- package/dist/esm/components/sidebar/CSidebarToggler.js.map +1 -1
- package/dist/esm/components/smart-pagination/CSmartPagination.js.map +1 -1
- 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.js.map +1 -1
- package/dist/esm/components/smart-table/consts.js.map +1 -1
- package/dist/esm/components/smart-table/utils.js.map +1 -1
- package/dist/esm/components/spinner/CSpinner.js.map +1 -1
- package/dist/esm/components/stepper/CStepper.js.map +1 -1
- package/dist/esm/components/table/CTable.js.map +1 -1
- package/dist/esm/components/table/CTableBody.js.map +1 -1
- package/dist/esm/components/table/CTableCaption.js.map +1 -1
- package/dist/esm/components/table/CTableDataCell.js.map +1 -1
- package/dist/esm/components/table/CTableFoot.js.map +1 -1
- package/dist/esm/components/table/CTableHead.js.map +1 -1
- package/dist/esm/components/table/CTableHeaderCell.js.map +1 -1
- package/dist/esm/components/table/CTableResponsiveWrapper.js.map +1 -1
- package/dist/esm/components/table/CTableRow.js.map +1 -1
- package/dist/esm/components/table/utils.js.map +1 -1
- package/dist/esm/components/tabs/CTab.js.map +1 -1
- package/dist/esm/components/tabs/CTabContent.js.map +1 -1
- package/dist/esm/components/tabs/CTabList.js.map +1 -1
- package/dist/esm/components/tabs/CTabPane.js.map +1 -1
- package/dist/esm/components/tabs/CTabPanel.js.map +1 -1
- package/dist/esm/components/tabs/CTabs.js.map +1 -1
- package/dist/esm/components/tabs/CTabsContext.js.map +1 -1
- package/dist/esm/components/time-picker/CTimePicker.d.ts +3 -3
- 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 +1 -1
- 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/CToastBody.js.map +1 -1
- package/dist/esm/components/toast/CToastClose.js.map +1 -1
- package/dist/esm/components/toast/CToastContext.js.map +1 -1
- package/dist/esm/components/toast/CToastHeader.js.map +1 -1
- package/dist/esm/components/toast/CToaster.js.map +1 -1
- package/dist/esm/components/tooltip/CTooltip.js.map +1 -1
- package/dist/esm/components/virtual-scroller/CVirtualScroller.js.map +1 -1
- package/dist/esm/components/widgets/CWidgetStatsA.js.map +1 -1
- package/dist/esm/components/widgets/CWidgetStatsB.js.map +1 -1
- package/dist/esm/components/widgets/CWidgetStatsC.js.map +1 -1
- package/dist/esm/components/widgets/CWidgetStatsD.js.map +1 -1
- package/dist/esm/components/widgets/CWidgetStatsE.js.map +1 -1
- package/dist/esm/components/widgets/CWidgetStatsF.js.map +1 -1
- package/dist/esm/hooks/useClipboard.js.map +1 -1
- package/dist/esm/hooks/useColorModes.js.map +1 -1
- package/dist/esm/hooks/useDebounce.js.map +1 -1
- package/dist/esm/hooks/useDebouncedCallback.js.map +1 -1
- package/dist/esm/hooks/useDropdownWithPopper.js.map +1 -1
- package/dist/esm/hooks/useForkedRef.js.map +1 -1
- package/dist/esm/hooks/useIsVisible.js.map +1 -1
- package/dist/esm/hooks/usePopper.js.map +1 -1
- package/dist/esm/hooks/useStateWithCallback.js.map +1 -1
- package/dist/esm/node_modules/@babel/runtime/helpers/esm/extends.js.map +1 -1
- package/dist/esm/node_modules/@babel/runtime/helpers/esm/inheritsLoose.js.map +1 -1
- package/dist/esm/node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js.map +1 -1
- package/dist/esm/node_modules/@babel/runtime/helpers/esm/setPrototypeOf.js.map +1 -1
- package/dist/esm/node_modules/@coreui/icons/dist/esm/free/cil-arrow-bottom.js.map +1 -1
- package/dist/esm/node_modules/@coreui/icons/dist/esm/free/cil-arrow-top.js.map +1 -1
- package/dist/esm/node_modules/@coreui/icons/dist/esm/free/cil-filter-x.js.map +1 -1
- package/dist/esm/node_modules/@coreui/icons/dist/esm/free/cil-swap-vertical.js.map +1 -1
- package/dist/esm/node_modules/@coreui/icons-react/dist/index.esm.js.map +1 -1
- package/dist/esm/node_modules/classnames/index.js.map +1 -1
- package/dist/esm/node_modules/dom-helpers/esm/addClass.js.map +1 -1
- package/dist/esm/node_modules/dom-helpers/esm/hasClass.js.map +1 -1
- package/dist/esm/node_modules/dom-helpers/esm/removeClass.js.map +1 -1
- package/dist/esm/node_modules/react-device-detect/dist/lib.js.map +1 -1
- package/dist/esm/node_modules/react-transition-group/esm/CSSTransition.js.map +1 -1
- package/dist/esm/node_modules/react-transition-group/esm/Transition.js.map +1 -1
- package/dist/esm/node_modules/react-transition-group/esm/TransitionGroupContext.js.map +1 -1
- package/dist/esm/node_modules/react-transition-group/esm/config.js.map +1 -1
- package/dist/esm/node_modules/react-transition-group/esm/utils/PropTypes.js.map +1 -1
- package/dist/esm/node_modules/react-transition-group/esm/utils/reflow.js.map +1 -1
- package/dist/esm/node_modules/tslib/tslib.es6.js.map +1 -1
- package/dist/esm/node_modules/ua-parser-js/dist/ua-parser.min.js.map +1 -1
- package/dist/esm/props.js.map +1 -1
- package/dist/esm/utils/executeAfterTransition.js.map +1 -1
- package/dist/esm/utils/getNextActiveElement.js.map +1 -1
- package/dist/esm/utils/getNextSibling.js.map +1 -1
- package/dist/esm/utils/getPreviousSibling.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/isInViewport.js.map +1 -1
- package/dist/esm/utils/isObjectInArray.js.map +1 -1
- package/dist/esm/utils/isRTL.js.map +1 -1
- package/dist/esm/utils/swipe.js.map +1 -1
- package/package.json +14 -14
- package/src/components/autocomplete/CAutocomplete.tsx +15 -13
- package/src/components/autocomplete/CAutocompleteOptions.tsx +11 -4
- package/src/components/autocomplete/types.ts +1 -0
- package/src/components/autocomplete/utils.ts +17 -0
- package/src/components/calendar/utils.ts +108 -73
- package/src/components/date-range-picker/CDateRangePicker.tsx +60 -3
- package/src/components/form/CChipInput.tsx +2 -6
- package/src/components/multi-select/CMultiSelect.tsx +55 -9
- package/src/components/multi-select/CMultiSelectNativeSelect.tsx +1 -9
- package/src/components/multi-select/CMultiSelectOptions.tsx +22 -9
- package/src/components/multi-select/types.ts +1 -0
- package/src/components/multi-select/utils.ts +15 -8
- package/src/components/offcanvas/COffcanvas.tsx +8 -4
- package/src/components/one-time-password-input/COneTimePassword.tsx +7 -6
- package/src/components/time-picker/CTimePicker.tsx +3 -3
- package/src/components/time-picker/utils.ts +3 -3
|
@@ -10,6 +10,7 @@ import {
|
|
|
10
10
|
convertToDateObject,
|
|
11
11
|
getDateBySelectionType,
|
|
12
12
|
getLocalDateFromString,
|
|
13
|
+
getTimeFormatOptions,
|
|
13
14
|
isDateDisabled,
|
|
14
15
|
} from '../calendar/utils'
|
|
15
16
|
import { CFormControlWrapper, CFormControlWrapperProps } from '../form/CFormControlWrapper'
|
|
@@ -91,6 +92,12 @@ export interface CDateRangePickerProps
|
|
|
91
92
|
* Set the confirm button variant to an outlined button or a ghost button.
|
|
92
93
|
*/
|
|
93
94
|
confirmButtonVariant?: 'outline' | 'ghost'
|
|
95
|
+
/**
|
|
96
|
+
* Specify a list of available hours using an array, or customize the filtering of hours through a function. Requires the `timepicker` property.
|
|
97
|
+
*
|
|
98
|
+
* @since 5.29.0
|
|
99
|
+
*/
|
|
100
|
+
hours?: number[] | ((hour: number) => boolean)
|
|
94
101
|
/**
|
|
95
102
|
* 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.
|
|
96
103
|
*
|
|
@@ -125,6 +132,12 @@ export interface CDateRangePickerProps
|
|
|
125
132
|
* Toggle the readonly state for the component.
|
|
126
133
|
*/
|
|
127
134
|
inputReadOnly?: boolean
|
|
135
|
+
/**
|
|
136
|
+
* Toggle the display of minutes, specify a list of available minutes using an array, or customize the filtering of minutes through a function. Requires the `timepicker` property.
|
|
137
|
+
*
|
|
138
|
+
* @since 5.29.0
|
|
139
|
+
*/
|
|
140
|
+
minutes?: boolean | number[] | ((minute: number) => boolean)
|
|
128
141
|
/**
|
|
129
142
|
* The name 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 names unique. Alternatively, you can use an array of two strings for start and end dates separately.
|
|
130
143
|
*
|
|
@@ -175,6 +188,12 @@ export interface CDateRangePickerProps
|
|
|
175
188
|
* @since 4.10.0
|
|
176
189
|
*/
|
|
177
190
|
required?: boolean
|
|
191
|
+
/**
|
|
192
|
+
* Toggle the display of seconds, specify a list of available seconds using an array, or customize the filtering of seconds through a function. Requires the `timepicker` property.
|
|
193
|
+
*
|
|
194
|
+
* @since 5.29.0
|
|
195
|
+
*/
|
|
196
|
+
seconds?: boolean | number[] | ((second: number) => boolean)
|
|
178
197
|
/**
|
|
179
198
|
* Default icon or character character that separates two dates.
|
|
180
199
|
*/
|
|
@@ -240,6 +259,7 @@ export const CDateRangePicker = forwardRef<HTMLDivElement | HTMLLIElement, CDate
|
|
|
240
259
|
feedbackValid,
|
|
241
260
|
firstDayOfWeek,
|
|
242
261
|
footer,
|
|
262
|
+
hours,
|
|
243
263
|
id,
|
|
244
264
|
indicator = true,
|
|
245
265
|
inputDateFormat,
|
|
@@ -251,6 +271,7 @@ export const CDateRangePicker = forwardRef<HTMLDivElement | HTMLLIElement, CDate
|
|
|
251
271
|
locale = 'default',
|
|
252
272
|
maxDate,
|
|
253
273
|
minDate,
|
|
274
|
+
minutes = true,
|
|
254
275
|
monthFormat,
|
|
255
276
|
name,
|
|
256
277
|
navigation,
|
|
@@ -273,6 +294,7 @@ export const CDateRangePicker = forwardRef<HTMLDivElement | HTMLLIElement, CDate
|
|
|
273
294
|
renderQuarterCell,
|
|
274
295
|
renderYearCell,
|
|
275
296
|
required,
|
|
297
|
+
seconds = true,
|
|
276
298
|
separator = true,
|
|
277
299
|
selectAdjacementDays,
|
|
278
300
|
selectionType = 'day',
|
|
@@ -397,7 +419,16 @@ export const CDateRangePicker = forwardRef<HTMLDivElement | HTMLLIElement, CDate
|
|
|
397
419
|
return ''
|
|
398
420
|
}
|
|
399
421
|
|
|
400
|
-
|
|
422
|
+
if (!timepicker) {
|
|
423
|
+
return _date.toLocaleDateString(locale)
|
|
424
|
+
}
|
|
425
|
+
|
|
426
|
+
return _date.toLocaleString(locale, {
|
|
427
|
+
year: 'numeric',
|
|
428
|
+
month: 'numeric',
|
|
429
|
+
day: 'numeric',
|
|
430
|
+
...getTimeFormatOptions(minutes, seconds),
|
|
431
|
+
})
|
|
401
432
|
}
|
|
402
433
|
|
|
403
434
|
const setInputValue = (el: HTMLInputElement | null, date: Date | string | null) => {
|
|
@@ -483,7 +514,13 @@ export const CDateRangePicker = forwardRef<HTMLDivElement | HTMLLIElement, CDate
|
|
|
483
514
|
if (inputDateParse) {
|
|
484
515
|
date = inputDateParse(value)
|
|
485
516
|
} else if (selectionType === 'day') {
|
|
486
|
-
date = getLocalDateFromString(
|
|
517
|
+
date = getLocalDateFromString(
|
|
518
|
+
value,
|
|
519
|
+
locale,
|
|
520
|
+
timepicker,
|
|
521
|
+
selectionType,
|
|
522
|
+
getTimeFormatOptions(minutes, seconds)
|
|
523
|
+
)
|
|
487
524
|
} else {
|
|
488
525
|
date = convertToDateObject(value, selectionType)
|
|
489
526
|
}
|
|
@@ -775,16 +812,22 @@ export const CDateRangePicker = forwardRef<HTMLDivElement | HTMLLIElement, CDate
|
|
|
775
812
|
<CTimePicker
|
|
776
813
|
container="inline"
|
|
777
814
|
disabled={_startDate === null ? true : false}
|
|
815
|
+
hours={hours}
|
|
778
816
|
locale={locale}
|
|
817
|
+
minutes={minutes}
|
|
779
818
|
onTimeChange={(_, __, date) => date && handleStartDateChange(date)}
|
|
819
|
+
seconds={minutes && seconds}
|
|
780
820
|
time={_startDate && new Date(_startDate)}
|
|
781
821
|
variant="select"
|
|
782
822
|
/>
|
|
783
823
|
<CTimePicker
|
|
784
824
|
container="inline"
|
|
785
825
|
disabled={_endDate === null ? true : false}
|
|
826
|
+
hours={hours}
|
|
786
827
|
locale={locale}
|
|
828
|
+
minutes={minutes}
|
|
787
829
|
onTimeChange={(_, __, date) => date && handleEndDateChange(date)}
|
|
830
|
+
seconds={minutes && seconds}
|
|
788
831
|
time={_endDate && new Date(_endDate)}
|
|
789
832
|
variant="select"
|
|
790
833
|
/>
|
|
@@ -802,13 +845,16 @@ export const CDateRangePicker = forwardRef<HTMLDivElement | HTMLLIElement, CDate
|
|
|
802
845
|
? true
|
|
803
846
|
: false
|
|
804
847
|
}
|
|
848
|
+
hours={hours}
|
|
805
849
|
key={index}
|
|
806
850
|
locale={locale}
|
|
851
|
+
minutes={minutes}
|
|
807
852
|
onTimeChange={(_, __, date) =>
|
|
808
853
|
index === 0
|
|
809
854
|
? date && handleStartDateChange(date)
|
|
810
855
|
: date && handleEndDateChange(date)
|
|
811
856
|
}
|
|
857
|
+
seconds={minutes && seconds}
|
|
812
858
|
time={
|
|
813
859
|
index === 0
|
|
814
860
|
? _startDate && new Date(_startDate)
|
|
@@ -833,11 +879,11 @@ CDateRangePicker.propTypes = {
|
|
|
833
879
|
...CCalendar.propTypes,
|
|
834
880
|
...CFormControlWrapper.propTypes,
|
|
835
881
|
...CPicker.propTypes,
|
|
882
|
+
calendars: PropTypes.number,
|
|
836
883
|
cancelButton: PropTypes.oneOfType([PropTypes.bool, PropTypes.node]),
|
|
837
884
|
cancelButtonColor: CButton.propTypes?.color,
|
|
838
885
|
cancelButtonSize: CButton.propTypes?.size,
|
|
839
886
|
cancelButtonVariant: CButton.propTypes?.variant,
|
|
840
|
-
calendars: PropTypes.number,
|
|
841
887
|
className: PropTypes.string,
|
|
842
888
|
cleaner: PropTypes.bool,
|
|
843
889
|
closeOnSelect: PropTypes.bool,
|
|
@@ -845,12 +891,18 @@ CDateRangePicker.propTypes = {
|
|
|
845
891
|
confirmButtonColor: CButton.propTypes?.color,
|
|
846
892
|
confirmButtonSize: CButton.propTypes?.size,
|
|
847
893
|
confirmButtonVariant: CButton.propTypes?.variant,
|
|
894
|
+
hours: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.number.isRequired), PropTypes.func]),
|
|
848
895
|
id: PropTypes.oneOfType([PropTypes.string, PropTypes.any]),
|
|
849
896
|
indicator: PropTypes.oneOfType([PropTypes.bool, PropTypes.node]),
|
|
850
897
|
inputDateFormat: PropTypes.func,
|
|
851
898
|
inputDateParse: PropTypes.func,
|
|
852
899
|
inputOnChangeDelay: PropTypes.number,
|
|
853
900
|
inputReadOnly: PropTypes.bool,
|
|
901
|
+
minutes: PropTypes.oneOfType([
|
|
902
|
+
PropTypes.bool,
|
|
903
|
+
PropTypes.arrayOf(PropTypes.number.isRequired),
|
|
904
|
+
PropTypes.func,
|
|
905
|
+
]),
|
|
854
906
|
name: PropTypes.oneOfType([PropTypes.string, PropTypes.any]),
|
|
855
907
|
placeholder: PropTypes.oneOfType([
|
|
856
908
|
PropTypes.string,
|
|
@@ -863,6 +915,11 @@ CDateRangePicker.propTypes = {
|
|
|
863
915
|
rangesButtonsSize: CButton.propTypes?.size,
|
|
864
916
|
rangesButtonsVariant: CButton.propTypes?.variant,
|
|
865
917
|
required: PropTypes.bool,
|
|
918
|
+
seconds: PropTypes.oneOfType([
|
|
919
|
+
PropTypes.bool,
|
|
920
|
+
PropTypes.arrayOf(PropTypes.number.isRequired),
|
|
921
|
+
PropTypes.func,
|
|
922
|
+
]),
|
|
866
923
|
separator: PropTypes.oneOfType([PropTypes.bool, PropTypes.node]),
|
|
867
924
|
size: PropTypes.oneOf(['sm', 'lg']),
|
|
868
925
|
timepicker: PropTypes.bool,
|
|
@@ -6,7 +6,6 @@ import React, {
|
|
|
6
6
|
ReactNode,
|
|
7
7
|
forwardRef,
|
|
8
8
|
isValidElement,
|
|
9
|
-
useId,
|
|
10
9
|
useMemo,
|
|
11
10
|
useRef,
|
|
12
11
|
useState,
|
|
@@ -65,7 +64,7 @@ export interface CChipInputProps extends Omit<
|
|
|
65
64
|
*/
|
|
66
65
|
maxChips?: number | null
|
|
67
66
|
/**
|
|
68
|
-
* Sets the name of the hidden input
|
|
67
|
+
* Sets the name of the hidden input the component renders. Without it the hidden input carries the values but is not submitted with the form.
|
|
69
68
|
*/
|
|
70
69
|
name?: string
|
|
71
70
|
/**
|
|
@@ -199,7 +198,6 @@ export const CChipInput = forwardRef<HTMLDivElement, CChipInputProps>(
|
|
|
199
198
|
)
|
|
200
199
|
const [inputValue, setInputValue] = useState('')
|
|
201
200
|
const inputRef = useRef<HTMLInputElement>(null)
|
|
202
|
-
const generatedName = useId()
|
|
203
201
|
|
|
204
202
|
const values = useMemo(
|
|
205
203
|
() => uniqueValues(isControlled ? (value as string[]) : _values),
|
|
@@ -440,8 +438,6 @@ export const CChipInput = forwardRef<HTMLDivElement, CChipInputProps>(
|
|
|
440
438
|
},
|
|
441
439
|
className
|
|
442
440
|
)}
|
|
443
|
-
aria-disabled={disabled ? true : undefined}
|
|
444
|
-
aria-readonly={readOnly ? true : undefined}
|
|
445
441
|
onClick={handleContainerClick}
|
|
446
442
|
onKeyDown={handleContainerKeyDown}
|
|
447
443
|
{...rest}
|
|
@@ -479,7 +475,7 @@ export const CChipInput = forwardRef<HTMLDivElement, CChipInputProps>(
|
|
|
479
475
|
ref={inputRef}
|
|
480
476
|
/>
|
|
481
477
|
|
|
482
|
-
<input type="hidden" name={name
|
|
478
|
+
<input type="hidden" name={name} value={values.join(',')} />
|
|
483
479
|
</div>
|
|
484
480
|
)
|
|
485
481
|
}
|
|
@@ -28,6 +28,7 @@ import {
|
|
|
28
28
|
getOptionsList,
|
|
29
29
|
isExternalSearch,
|
|
30
30
|
isGlobalSearch,
|
|
31
|
+
propagateGroupDisabled,
|
|
31
32
|
selectOptions,
|
|
32
33
|
} from './utils'
|
|
33
34
|
import type {
|
|
@@ -111,9 +112,6 @@ export interface CMultiSelectProps
|
|
|
111
112
|
hideSelectAllOnSearchNoResults?: boolean
|
|
112
113
|
/**
|
|
113
114
|
* Set the id attribute for the native select element.
|
|
114
|
-
*
|
|
115
|
-
* **[Deprecated since v5.3.0]** The name attribute for the native select element is generated based on the `id` property:
|
|
116
|
-
* - `<select name="\{id\}-multi-select" />`
|
|
117
115
|
*/
|
|
118
116
|
id?: string
|
|
119
117
|
/**
|
|
@@ -311,7 +309,7 @@ export const CMultiSelect = forwardRef<HTMLDivElement, CMultiSelectProps>(
|
|
|
311
309
|
allowCreateOptions,
|
|
312
310
|
ariaCleanerLabel = 'Clear all selections',
|
|
313
311
|
ariaIndicatorLabel = 'Toggle visibility of options menu',
|
|
314
|
-
ariaSearchLabel = 'Search',
|
|
312
|
+
ariaSearchLabel = 'Search options',
|
|
315
313
|
ariaTagDeleteLabel = 'Remove',
|
|
316
314
|
className,
|
|
317
315
|
cleaner = true,
|
|
@@ -336,7 +334,7 @@ export const CMultiSelect = forwardRef<HTMLDivElement, CMultiSelectProps>(
|
|
|
336
334
|
onHide,
|
|
337
335
|
onSelectionLimit,
|
|
338
336
|
onShow,
|
|
339
|
-
options,
|
|
337
|
+
options: optionsProp,
|
|
340
338
|
optionsMaxHeight = 'auto',
|
|
341
339
|
optionsStyle = 'checkbox',
|
|
342
340
|
optionsTemplate,
|
|
@@ -381,12 +379,16 @@ export const CMultiSelect = forwardRef<HTMLDivElement, CMultiSelectProps>(
|
|
|
381
379
|
const nativeSelectRef = useRef<HTMLSelectElement>(null)
|
|
382
380
|
const searchRef = useRef<HTMLInputElement>(null)
|
|
383
381
|
const isInitialMount = useRef(true)
|
|
382
|
+
const wasOpen = useRef(false)
|
|
384
383
|
const uniqueId = useId()
|
|
385
384
|
|
|
385
|
+
const [labelledBy, setLabelledBy] = useState<string>()
|
|
386
386
|
const [searchValue, setSearchValue] = useState('')
|
|
387
387
|
const [selected, setSelected] = useState<SelectedOption[]>([])
|
|
388
388
|
const [userOptions, setUserOptions] = useState<Option[]>([])
|
|
389
389
|
|
|
390
|
+
const options = useMemo(() => propagateGroupDisabled(optionsProp), [optionsProp])
|
|
391
|
+
|
|
390
392
|
const filteredOptions = useMemo(() => {
|
|
391
393
|
const source = isExternalSearch(search)
|
|
392
394
|
? [...options, ...filterOptionsList(searchValue, userOptions)]
|
|
@@ -523,6 +525,35 @@ export const CMultiSelect = forwardRef<HTMLDivElement, CMultiSelectProps>(
|
|
|
523
525
|
filteredSelected: countSelected(filteredSelectableOptions),
|
|
524
526
|
}
|
|
525
527
|
|
|
528
|
+
useEffect(() => {
|
|
529
|
+
if (rest['aria-label'] || rest['aria-labelledby']) {
|
|
530
|
+
setLabelledBy(undefined)
|
|
531
|
+
return
|
|
532
|
+
}
|
|
533
|
+
|
|
534
|
+
const label = nativeSelectRef.current?.labels?.[0]
|
|
535
|
+
|
|
536
|
+
if (!label || label.contains(dropdownRefElement.current)) {
|
|
537
|
+
setLabelledBy(undefined)
|
|
538
|
+
return
|
|
539
|
+
}
|
|
540
|
+
|
|
541
|
+
if (label.id) {
|
|
542
|
+
setLabelledBy(label.id)
|
|
543
|
+
return
|
|
544
|
+
}
|
|
545
|
+
|
|
546
|
+
const generated = id ? `${id}-label` : `multi-select-label-${uniqueId.replaceAll(':', '')}`
|
|
547
|
+
label.id = generated
|
|
548
|
+
setLabelledBy(generated)
|
|
549
|
+
|
|
550
|
+
return () => {
|
|
551
|
+
if (label.id === generated) {
|
|
552
|
+
label.removeAttribute('id')
|
|
553
|
+
}
|
|
554
|
+
}
|
|
555
|
+
}, [id, uniqueId, rest['aria-label'], rest['aria-labelledby']])
|
|
556
|
+
|
|
526
557
|
useEffect(() => {
|
|
527
558
|
if (!isInitialMount.current && resetSelectionOnOptionsChange) {
|
|
528
559
|
return setSelected([])
|
|
@@ -567,11 +598,13 @@ export const CMultiSelect = forwardRef<HTMLDivElement, CMultiSelectProps>(
|
|
|
567
598
|
}
|
|
568
599
|
|
|
569
600
|
searchRef.current?.focus()
|
|
601
|
+
} else if (wasOpen.current && onHide) {
|
|
602
|
+
onHide()
|
|
570
603
|
}
|
|
571
604
|
|
|
572
|
-
|
|
573
|
-
if (onHide) onHide()
|
|
605
|
+
wasOpen.current = isOpen
|
|
574
606
|
|
|
607
|
+
return () => {
|
|
575
608
|
if (isOpen) {
|
|
576
609
|
const active = document.activeElement
|
|
577
610
|
const menu = dropdownMenuElement.current as HTMLElement | null
|
|
@@ -618,6 +651,11 @@ export const CMultiSelect = forwardRef<HTMLDivElement, CMultiSelectProps>(
|
|
|
618
651
|
event.preventDefault()
|
|
619
652
|
|
|
620
653
|
const items = getOptionsList(dropdownMenuElement.current)
|
|
654
|
+
|
|
655
|
+
if (items.length === 0) {
|
|
656
|
+
return
|
|
657
|
+
}
|
|
658
|
+
|
|
621
659
|
const target = event.target as HTMLDivElement
|
|
622
660
|
|
|
623
661
|
getNextActiveElement(
|
|
@@ -677,6 +715,11 @@ export const CMultiSelect = forwardRef<HTMLDivElement, CMultiSelectProps>(
|
|
|
677
715
|
if (isOpen && dropdownMenuElement.current && event.key === 'ArrowDown') {
|
|
678
716
|
event.preventDefault()
|
|
679
717
|
const items = getOptionsList(dropdownMenuElement.current)
|
|
718
|
+
|
|
719
|
+
if (items.length === 0) {
|
|
720
|
+
return
|
|
721
|
+
}
|
|
722
|
+
|
|
680
723
|
const target = event.target as HTMLDivElement
|
|
681
724
|
|
|
682
725
|
getNextActiveElement(
|
|
@@ -842,7 +885,7 @@ export const CMultiSelect = forwardRef<HTMLDivElement, CMultiSelectProps>(
|
|
|
842
885
|
<CMultiSelectNativeSelect
|
|
843
886
|
id={id ?? uniqueId}
|
|
844
887
|
multiple={multiple}
|
|
845
|
-
name={name
|
|
888
|
+
name={name}
|
|
846
889
|
options={selected}
|
|
847
890
|
required={required}
|
|
848
891
|
value={
|
|
@@ -862,6 +905,10 @@ export const CMultiSelect = forwardRef<HTMLDivElement, CMultiSelectProps>(
|
|
|
862
905
|
role="combobox"
|
|
863
906
|
aria-haspopup="listbox"
|
|
864
907
|
aria-expanded={isOpen}
|
|
908
|
+
{...(rest['aria-label'] && { 'aria-label': rest['aria-label'] })}
|
|
909
|
+
{...((rest['aria-labelledby'] || labelledBy) && {
|
|
910
|
+
'aria-labelledby': rest['aria-labelledby'] || labelledBy,
|
|
911
|
+
})}
|
|
865
912
|
aria-controls={`multiselect-listbox-${uniqueId}`}
|
|
866
913
|
{...(portal && { 'aria-owns': `multiselect-listbox-${uniqueId}` })}
|
|
867
914
|
{...(disabled && { 'aria-disabled': true })}
|
|
@@ -884,7 +931,6 @@ export const CMultiSelect = forwardRef<HTMLDivElement, CMultiSelectProps>(
|
|
|
884
931
|
className="form-multi-select-search"
|
|
885
932
|
disabled={disabled}
|
|
886
933
|
id={`search${id ?? uniqueId}`}
|
|
887
|
-
name={`search${name ?? uniqueId}`}
|
|
888
934
|
autoComplete="off"
|
|
889
935
|
aria-label={ariaSearchLabel}
|
|
890
936
|
aria-autocomplete="list"
|
|
@@ -30,15 +30,7 @@ export const CMultiSelectNativeSelect = forwardRef<
|
|
|
30
30
|
CMultiSelectNativeSelectProps
|
|
31
31
|
>(({ id, name, options, ...rest }, ref) => {
|
|
32
32
|
return (
|
|
33
|
-
<select
|
|
34
|
-
className="form-multi-select"
|
|
35
|
-
id={id}
|
|
36
|
-
{...(id && !name && { name: `${id}-multi-select` })} // TODO: remove in v6
|
|
37
|
-
{...(name && { name: name })}
|
|
38
|
-
tabIndex={-1}
|
|
39
|
-
{...rest}
|
|
40
|
-
ref={ref}
|
|
41
|
-
>
|
|
33
|
+
<select className="form-multi-select" id={id} name={name} tabIndex={-1} {...rest} ref={ref}>
|
|
42
34
|
{options && createNativeOptions(options)}
|
|
43
35
|
</select>
|
|
44
36
|
)
|
|
@@ -85,13 +85,16 @@ export const CMultiSelectOptions = forwardRef<HTMLDivElement, CMultiSelectOption
|
|
|
85
85
|
const handleKeyDown = (event: React.KeyboardEvent<HTMLDivElement>, option: Option) => {
|
|
86
86
|
if (event.code === 'Space' || event.key === 'Enter') {
|
|
87
87
|
event.preventDefault()
|
|
88
|
-
|
|
88
|
+
|
|
89
|
+
if (!option.disabled) {
|
|
90
|
+
onOptionOnClick?.(option)
|
|
91
|
+
}
|
|
89
92
|
}
|
|
90
93
|
|
|
91
94
|
if (event.key === 'Down' || event.key === 'ArrowDown') {
|
|
92
95
|
event.preventDefault()
|
|
93
96
|
const target = event.target as HTMLElement
|
|
94
|
-
const next = getNextSibling(target, '.form-multi-select-option')
|
|
97
|
+
const next = getNextSibling(target, '.form-multi-select-option:not(.disabled)')
|
|
95
98
|
|
|
96
99
|
next && (next as HTMLElement).focus()
|
|
97
100
|
}
|
|
@@ -99,7 +102,7 @@ export const CMultiSelectOptions = forwardRef<HTMLDivElement, CMultiSelectOption
|
|
|
99
102
|
if (event.key === 'Up' || event.key === 'ArrowUp') {
|
|
100
103
|
event.preventDefault()
|
|
101
104
|
const target = event.target as HTMLElement
|
|
102
|
-
const prev = getPreviousSibling(target, '.form-multi-select-option')
|
|
105
|
+
const prev = getPreviousSibling(target, '.form-multi-select-option:not(.disabled)')
|
|
103
106
|
|
|
104
107
|
prev && (prev as HTMLElement).focus()
|
|
105
108
|
}
|
|
@@ -119,14 +122,20 @@ export const CMultiSelectOptions = forwardRef<HTMLDivElement, CMultiSelectOption
|
|
|
119
122
|
|
|
120
123
|
if (event.key === 'Down' || event.key === 'ArrowDown') {
|
|
121
124
|
event.preventDefault()
|
|
122
|
-
const next = getNextSibling(
|
|
125
|
+
const next = getNextSibling(
|
|
126
|
+
event.target as HTMLElement,
|
|
127
|
+
'.form-multi-select-option:not(.disabled)'
|
|
128
|
+
)
|
|
123
129
|
|
|
124
130
|
next && (next as HTMLElement).focus()
|
|
125
131
|
}
|
|
126
132
|
|
|
127
133
|
if (event.key === 'Up' || event.key === 'ArrowUp') {
|
|
128
134
|
event.preventDefault()
|
|
129
|
-
const prev = getPreviousSibling(
|
|
135
|
+
const prev = getPreviousSibling(
|
|
136
|
+
event.target as HTMLElement,
|
|
137
|
+
'.form-multi-select-option:not(.disabled)'
|
|
138
|
+
)
|
|
130
139
|
|
|
131
140
|
prev && (prev as HTMLElement).focus()
|
|
132
141
|
}
|
|
@@ -158,9 +167,9 @@ export const CMultiSelectOptions = forwardRef<HTMLDivElement, CMultiSelectOption
|
|
|
158
167
|
disabled: option.disabled,
|
|
159
168
|
})}
|
|
160
169
|
key={index}
|
|
161
|
-
onClick={() =>
|
|
170
|
+
onClick={() => !option.disabled && onOptionOnClick?.(option as Option)}
|
|
162
171
|
onKeyDown={(event) => handleKeyDown(event, option as Option)}
|
|
163
|
-
tabIndex={0}
|
|
172
|
+
tabIndex={option.disabled ? -1 : 0}
|
|
164
173
|
role="option"
|
|
165
174
|
aria-selected={selected.some((_option) => _option.value === option.value)}
|
|
166
175
|
aria-disabled={Boolean(option.disabled)}
|
|
@@ -170,19 +179,23 @@ export const CMultiSelectOptions = forwardRef<HTMLDivElement, CMultiSelectOption
|
|
|
170
179
|
) : (
|
|
171
180
|
<div
|
|
172
181
|
className={classNames('form-multi-select-optgroup-label', {
|
|
182
|
+
disabled: option.disabled,
|
|
173
183
|
'form-multi-select-optgroup-label-with-checkbox':
|
|
174
|
-
optionsGroupsSelectable && optionsGroupsStyle === 'checkbox',
|
|
184
|
+
!option.disabled && optionsGroupsSelectable && optionsGroupsStyle === 'checkbox',
|
|
175
185
|
'form-multi-selected':
|
|
186
|
+
!option.disabled &&
|
|
176
187
|
optionsGroupsSelectable &&
|
|
177
188
|
optionsGroupsStyle === 'checkbox' &&
|
|
178
189
|
getGroupCheckboxState(option as OptionsGroup) === 'all',
|
|
179
190
|
'form-multi-select-indeterminate':
|
|
191
|
+
!option.disabled &&
|
|
180
192
|
optionsGroupsSelectable &&
|
|
181
193
|
optionsGroupsStyle === 'checkbox' &&
|
|
182
194
|
getGroupCheckboxState(option as OptionsGroup) === 'indeterminate',
|
|
183
195
|
})}
|
|
184
196
|
key={index}
|
|
185
|
-
{...(
|
|
197
|
+
{...(!option.disabled &&
|
|
198
|
+
optionsGroupsSelectable &&
|
|
186
199
|
optionsGroupsStyle === 'checkbox' && {
|
|
187
200
|
onClick: () => onGroupOnClick?.(option as OptionsGroup),
|
|
188
201
|
onKeyDown: (event: React.KeyboardEvent<HTMLDivElement>) =>
|
|
@@ -45,19 +45,13 @@ export const filterOptionsList = (search: string, _options: (Option | OptionsGro
|
|
|
45
45
|
}
|
|
46
46
|
|
|
47
47
|
export const flattenOptionsArray = (
|
|
48
|
-
options: (Option | OptionsGroup)[]
|
|
49
|
-
keepGroupLabel?: boolean
|
|
48
|
+
options: (Option | OptionsGroup)[]
|
|
50
49
|
): (Option | OptionsGroup)[] => {
|
|
51
50
|
const optionsList: (Option | OptionsGroup)[] = []
|
|
52
51
|
|
|
53
52
|
for (const option of options) {
|
|
54
53
|
if (Array.isArray(option.options)) {
|
|
55
|
-
|
|
56
|
-
if (keepGroupLabel) {
|
|
57
|
-
optionsList.push(rest)
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
optionsList.push(...options)
|
|
54
|
+
optionsList.push(...option.options)
|
|
61
55
|
} else {
|
|
62
56
|
optionsList.push(option)
|
|
63
57
|
}
|
|
@@ -86,6 +80,19 @@ export const isGlobalSearch = (search: Search): boolean => {
|
|
|
86
80
|
)
|
|
87
81
|
}
|
|
88
82
|
|
|
83
|
+
export const propagateGroupDisabled = (
|
|
84
|
+
options: (Option | OptionsGroup)[],
|
|
85
|
+
disabled = false
|
|
86
|
+
): (Option | OptionsGroup)[] =>
|
|
87
|
+
(Array.isArray(options) ? options : []).map((option) => {
|
|
88
|
+
const isDisabled = disabled || Boolean(option.disabled)
|
|
89
|
+
const resolved = isDisabled ? { ...option, disabled: true } : option
|
|
90
|
+
|
|
91
|
+
return Array.isArray(option.options)
|
|
92
|
+
? { ...resolved, options: propagateGroupDisabled(option.options, isDisabled) as Option[] }
|
|
93
|
+
: resolved
|
|
94
|
+
})
|
|
95
|
+
|
|
89
96
|
export const selectOptions = (
|
|
90
97
|
multiple: boolean,
|
|
91
98
|
options: (Option | OptionsGroup)[],
|
|
@@ -89,13 +89,17 @@ export const COffcanvas = forwardRef<HTMLDivElement, COffcanvasProps>(
|
|
|
89
89
|
if (_visible && !scroll) {
|
|
90
90
|
document.body.style.overflow = 'hidden'
|
|
91
91
|
document.body.style.paddingRight = '0px'
|
|
92
|
-
|
|
93
|
-
}
|
|
94
|
-
|
|
95
|
-
if (!scroll) {
|
|
92
|
+
} else if (!scroll) {
|
|
96
93
|
document.body.style.removeProperty('overflow')
|
|
97
94
|
document.body.style.removeProperty('padding-right')
|
|
98
95
|
}
|
|
96
|
+
|
|
97
|
+
return () => {
|
|
98
|
+
if (!scroll) {
|
|
99
|
+
document.body.style.removeProperty('overflow')
|
|
100
|
+
document.body.style.removeProperty('padding-right')
|
|
101
|
+
}
|
|
102
|
+
}
|
|
99
103
|
}, [_visible])
|
|
100
104
|
|
|
101
105
|
const handleDismiss = () => {
|
|
@@ -71,7 +71,7 @@ export interface COneTimePasswordProps
|
|
|
71
71
|
masked?: boolean
|
|
72
72
|
|
|
73
73
|
/**
|
|
74
|
-
* Name attribute for the hidden input field.
|
|
74
|
+
* Name attribute for the hidden input field. The visible slots are not named, so the code is submitted once, under this name; without it the component is not submitted at all.
|
|
75
75
|
*/
|
|
76
76
|
name?: string
|
|
77
77
|
|
|
@@ -160,17 +160,17 @@ export const COneTimePassword = forwardRef<HTMLDivElement, COneTimePasswordProps
|
|
|
160
160
|
}, [children])
|
|
161
161
|
|
|
162
162
|
const [inputValues, setInputValues] = useState<string[]>(() => {
|
|
163
|
-
const initialValue = String(value ?? defaultValue ?? '')
|
|
163
|
+
const initialValue = extractValidChars(String(value ?? defaultValue ?? ''), type)
|
|
164
164
|
return Array.from({ length: inputCount }, (_, i) => initialValue[i] || '')
|
|
165
165
|
})
|
|
166
166
|
|
|
167
167
|
// Update input values when value prop changes (controlled mode)
|
|
168
168
|
useEffect(() => {
|
|
169
169
|
if (value !== undefined) {
|
|
170
|
-
const valueString = String(value)
|
|
170
|
+
const valueString = extractValidChars(String(value), type)
|
|
171
171
|
setInputValues(Array.from({ length: inputCount }, (_, i) => valueString[i] || ''))
|
|
172
172
|
}
|
|
173
|
-
}, [value, inputCount])
|
|
173
|
+
}, [type, value, inputCount])
|
|
174
174
|
|
|
175
175
|
// Update hidden input and trigger events
|
|
176
176
|
const updateValue = useCallback(
|
|
@@ -414,14 +414,15 @@ export const COneTimePassword = forwardRef<HTMLDivElement, COneTimePasswordProps
|
|
|
414
414
|
inputChild.props.className
|
|
415
415
|
),
|
|
416
416
|
id: inputChild.props.id || (id ? `${id}-${currentInputIndex}` : undefined),
|
|
417
|
-
name: inputChild.props.name
|
|
417
|
+
name: inputChild.props.name,
|
|
418
418
|
placeholder:
|
|
419
419
|
inputChild.props.placeholder ||
|
|
420
420
|
(placeholder && placeholder.length > 1
|
|
421
421
|
? placeholder[currentInputIndex]
|
|
422
422
|
: placeholder),
|
|
423
423
|
value: inputValues[currentInputIndex] || '',
|
|
424
|
-
tabIndex:
|
|
424
|
+
tabIndex:
|
|
425
|
+
!linear || currentInputIndex === 0 || inputValues[currentInputIndex - 1] ? 0 : -1,
|
|
425
426
|
disabled: disabled || inputChild.props.disabled,
|
|
426
427
|
readOnly: readOnly || inputChild.props.readOnly,
|
|
427
428
|
required: required || inputChild.props.required,
|
|
@@ -106,7 +106,7 @@ export interface CTimePickerProps
|
|
|
106
106
|
*
|
|
107
107
|
* @since 5.0.0
|
|
108
108
|
*/
|
|
109
|
-
hours?: number[] | ((hour: number) =>
|
|
109
|
+
hours?: number[] | ((hour: number) => boolean)
|
|
110
110
|
/**
|
|
111
111
|
* Set the id attribute for the input element.
|
|
112
112
|
*
|
|
@@ -136,7 +136,7 @@ export interface CTimePickerProps
|
|
|
136
136
|
*
|
|
137
137
|
* @since 5.0.0
|
|
138
138
|
*/
|
|
139
|
-
minutes?: boolean | number[] | ((minute: number) =>
|
|
139
|
+
minutes?: boolean | number[] | ((minute: number) => boolean)
|
|
140
140
|
/**
|
|
141
141
|
* Set the name attribute for the input element.
|
|
142
142
|
*
|
|
@@ -162,7 +162,7 @@ export interface CTimePickerProps
|
|
|
162
162
|
*
|
|
163
163
|
* @since 4.8.0
|
|
164
164
|
*/
|
|
165
|
-
seconds?: boolean | number[] | ((second: number) =>
|
|
165
|
+
seconds?: boolean | number[] | ((second: number) => boolean)
|
|
166
166
|
/**
|
|
167
167
|
* Size the component small or large.
|
|
168
168
|
*/
|
|
@@ -114,9 +114,9 @@ export const formatTimePartials = (
|
|
|
114
114
|
export const getLocalizedTimePartials = (
|
|
115
115
|
locale: string,
|
|
116
116
|
ampm: 'auto' | boolean = 'auto',
|
|
117
|
-
hours: boolean | number[] | ((hour: number) =>
|
|
118
|
-
minutes: boolean | number[] | ((minute: number) =>
|
|
119
|
-
seconds: boolean | number[] | ((second: number) =>
|
|
117
|
+
hours: boolean | number[] | ((hour: number) => boolean) = [],
|
|
118
|
+
minutes: boolean | number[] | ((minute: number) => boolean) = [],
|
|
119
|
+
seconds: boolean | number[] | ((second: number) => boolean) = []
|
|
120
120
|
): LocalizedTimePartials => {
|
|
121
121
|
const hour12 = (ampm === 'auto' && isAmPm(locale)) || ampm === true
|
|
122
122
|
|