@coreui/react-pro 5.11.0 → 5.13.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/cjs/components/accordion/CAccordion.js.map +1 -1
- package/dist/cjs/components/accordion/CAccordionBody.js +2 -2
- package/dist/cjs/components/accordion/CAccordionBody.js.map +1 -1
- package/dist/cjs/components/accordion/CAccordionItem.d.ts +4 -0
- package/dist/cjs/components/accordion/CAccordionItem.js +4 -4
- package/dist/cjs/components/accordion/CAccordionItem.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/backdrop/CBackdrop.js.map +1 -1
- package/dist/cjs/components/badge/CBadge.js.map +1 -1
- package/dist/cjs/components/button/CButton.js.map +1 -1
- package/dist/cjs/components/calendar/CCalendar.js +53 -38
- 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 +8 -0
- package/dist/cjs/components/calendar/utils.js +16 -0
- package/dist/cjs/components/calendar/utils.js.map +1 -1
- package/dist/cjs/components/card/CCardHeader.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/CCarouselItem.js.map +1 -1
- package/dist/cjs/components/date-picker/CDatePicker.js.map +1 -1
- package/dist/cjs/components/date-range-picker/CDateRangePicker.js +53 -33
- package/dist/cjs/components/date-range-picker/CDateRangePicker.js.map +1 -1
- package/dist/cjs/components/dropdown/CDropdown.d.ts +77 -20
- package/dist/cjs/components/dropdown/CDropdown.js +6 -3
- package/dist/cjs/components/dropdown/CDropdown.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 +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/form/CFormCheck.js.map +1 -1
- package/dist/cjs/components/form/CFormFeedback.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/CFormText.js.map +1 -1
- package/dist/cjs/components/form/CInputGroupText.js.map +1 -1
- package/dist/cjs/components/header/CHeaderBrand.js.map +1 -1
- package/dist/cjs/components/header/CHeaderNav.js.map +1 -1
- package/dist/cjs/components/header/CHeaderToggler.js.map +1 -1
- package/dist/cjs/components/index.d.ts +1 -0
- 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/CModalHeader.js.map +1 -1
- package/dist/cjs/components/modal/CModalTitle.js.map +1 -1
- package/dist/cjs/components/multi-select/CMultiSelect.d.ts +6 -0
- package/dist/cjs/components/multi-select/CMultiSelect.js +21 -4
- package/dist/cjs/components/multi-select/CMultiSelect.js.map +1 -1
- package/dist/cjs/components/multi-select/CMultiSelectNativeSelect.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/nav/CNav.js.map +1 -1
- package/dist/cjs/components/nav/CNavGroup.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/CNavbarToggler.js.map +1 -1
- package/dist/cjs/components/offcanvas/COffcanvas.js.map +1 -1
- package/dist/cjs/components/offcanvas/COffcanvasTitle.js.map +1 -1
- package/dist/cjs/components/pagination/CPaginationItem.js.map +1 -1
- package/dist/cjs/components/password-input/CPasswordInput.d.ts +43 -0
- package/dist/cjs/components/password-input/CPasswordInput.js +35 -0
- package/dist/cjs/components/password-input/CPasswordInput.js.map +1 -0
- package/dist/cjs/components/password-input/index.d.ts +2 -0
- 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.d.ts +75 -20
- package/dist/cjs/components/popover/CPopover.js +8 -21
- package/dist/cjs/components/popover/CPopover.js.map +1 -1
- package/dist/cjs/components/progress/CProgressBar.js.map +1 -1
- package/dist/cjs/components/range-slider/CRangeSlider.js.map +1 -1
- package/dist/cjs/components/rating/CRating.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/CSidebarNav.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 +3 -1
- package/dist/cjs/components/smart-table/CSmartTableHead.js.map +1 -1
- package/dist/cjs/components/smart-table/types.d.ts +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/tabs/CTab.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/time-picker/CTimePicker.js +13 -7
- 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 +10 -0
- package/dist/cjs/components/time-picker/utils.js +25 -9
- 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/tooltip/CTooltip.d.ts +67 -15
- package/dist/cjs/components/tooltip/CTooltip.js +8 -21
- package/dist/cjs/components/tooltip/CTooltip.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 +5 -5
- package/dist/cjs/hooks/useColorModes.js.map +1 -1
- package/dist/cjs/hooks/useDebouncedCallback.js.map +1 -1
- package/dist/cjs/index.js +2 -0
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/node_modules/@coreui/icons-react/dist/index.esm.js.map +1 -1
- package/dist/cjs/node_modules/dom-helpers/esm/hasClass.js.map +1 -1
- package/dist/cjs/node_modules/react-device-detect/dist/lib.js +1 -1
- package/dist/cjs/node_modules/react-device-detect/dist/lib.js.map +1 -1
- package/dist/cjs/node_modules/react-transition-group/esm/CSSTransition.js +9 -9
- 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/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/utils/executeAfterTransition.js.map +1 -1
- package/dist/cjs/utils/getNextActiveElement.js.map +1 -1
- package/dist/cjs/utils/isObjectInArray.js.map +1 -1
- package/dist/esm/components/accordion/CAccordion.js.map +1 -1
- package/dist/esm/components/accordion/CAccordionBody.js +2 -2
- package/dist/esm/components/accordion/CAccordionBody.js.map +1 -1
- package/dist/esm/components/accordion/CAccordionItem.d.ts +4 -0
- package/dist/esm/components/accordion/CAccordionItem.js +4 -4
- package/dist/esm/components/accordion/CAccordionItem.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/avatar/CAvatar.js +1 -1
- package/dist/esm/components/backdrop/CBackdrop.js.map +1 -1
- package/dist/esm/components/badge/CBadge.js +1 -1
- package/dist/esm/components/badge/CBadge.js.map +1 -1
- package/dist/esm/components/button/CButton.js.map +1 -1
- package/dist/esm/components/calendar/CCalendar.js +54 -39
- 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 +8 -0
- package/dist/esm/components/calendar/utils.js +16 -1
- package/dist/esm/components/calendar/utils.js.map +1 -1
- package/dist/esm/components/card/CCardHeader.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/CCarouselItem.js.map +1 -1
- package/dist/esm/components/date-picker/CDatePicker.js.map +1 -1
- package/dist/esm/components/date-range-picker/CDateRangePicker.js +47 -27
- package/dist/esm/components/date-range-picker/CDateRangePicker.js.map +1 -1
- package/dist/esm/components/dropdown/CDropdown.d.ts +77 -20
- package/dist/esm/components/dropdown/CDropdown.js +6 -3
- package/dist/esm/components/dropdown/CDropdown.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 +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/form/CFormCheck.js.map +1 -1
- package/dist/esm/components/form/CFormFeedback.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/CFormText.js.map +1 -1
- package/dist/esm/components/form/CInputGroupText.js.map +1 -1
- package/dist/esm/components/header/CHeaderBrand.js.map +1 -1
- package/dist/esm/components/header/CHeaderNav.js.map +1 -1
- package/dist/esm/components/header/CHeaderToggler.js.map +1 -1
- package/dist/esm/components/index.d.ts +1 -0
- 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/CModalHeader.js.map +1 -1
- package/dist/esm/components/modal/CModalTitle.js.map +1 -1
- package/dist/esm/components/multi-select/CMultiSelect.d.ts +6 -0
- package/dist/esm/components/multi-select/CMultiSelect.js +22 -5
- package/dist/esm/components/multi-select/CMultiSelect.js.map +1 -1
- package/dist/esm/components/multi-select/CMultiSelectNativeSelect.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/nav/CNav.js.map +1 -1
- package/dist/esm/components/nav/CNavGroup.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/CNavbarToggler.js.map +1 -1
- package/dist/esm/components/offcanvas/COffcanvas.js.map +1 -1
- package/dist/esm/components/offcanvas/COffcanvasTitle.js.map +1 -1
- package/dist/esm/components/pagination/CPaginationItem.js.map +1 -1
- package/dist/esm/components/password-input/CPasswordInput.d.ts +43 -0
- package/dist/esm/components/password-input/CPasswordInput.js +33 -0
- package/dist/esm/components/password-input/CPasswordInput.js.map +1 -0
- package/dist/esm/components/password-input/index.d.ts +2 -0
- 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.d.ts +75 -20
- package/dist/esm/components/popover/CPopover.js +9 -22
- package/dist/esm/components/popover/CPopover.js.map +1 -1
- package/dist/esm/components/progress/CProgressBar.js.map +1 -1
- package/dist/esm/components/range-slider/CRangeSlider.js.map +1 -1
- package/dist/esm/components/rating/CRating.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/CSidebarNav.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 +3 -1
- package/dist/esm/components/smart-table/CSmartTableHead.js.map +1 -1
- package/dist/esm/components/smart-table/types.d.ts +1 -1
- package/dist/esm/components/smart-table/utils.js +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/tabs/CTab.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/time-picker/CTimePicker.js +14 -8
- 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 +10 -0
- package/dist/esm/components/time-picker/utils.js +25 -10
- 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/tooltip/CTooltip.d.ts +67 -15
- package/dist/esm/components/tooltip/CTooltip.js +9 -22
- package/dist/esm/components/tooltip/CTooltip.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 +5 -5
- package/dist/esm/hooks/useColorModes.js.map +1 -1
- package/dist/esm/hooks/useDebouncedCallback.js.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/node_modules/@coreui/icons-react/dist/index.esm.js.map +1 -1
- package/dist/esm/node_modules/dom-helpers/esm/hasClass.js.map +1 -1
- package/dist/esm/node_modules/react-device-detect/dist/lib.js +1 -1
- package/dist/esm/node_modules/react-device-detect/dist/lib.js.map +1 -1
- package/dist/esm/node_modules/react-transition-group/esm/Transition.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/utils/executeAfterTransition.js.map +1 -1
- package/dist/esm/utils/getNextActiveElement.js.map +1 -1
- package/dist/esm/utils/isObjectInArray.js.map +1 -1
- package/package.json +9 -9
- package/src/components/accordion/CAccordionBody.tsx +3 -3
- package/src/components/accordion/CAccordionItem.tsx +9 -5
- package/src/components/calendar/CCalendar.tsx +74 -56
- package/src/components/calendar/CCalendarNavigation.tsx +2 -2
- package/src/components/calendar/CCalendarPanel.tsx +4 -4
- package/src/components/calendar/utils.ts +33 -10
- package/src/components/date-picker/CDatePicker.tsx +1 -1
- package/src/components/date-range-picker/CDateRangePicker.tsx +37 -21
- package/src/components/dropdown/CDropdown.tsx +106 -26
- package/src/components/dropdown/CDropdownMenu.tsx +0 -1
- package/src/components/index.ts +1 -0
- package/src/components/multi-select/CMultiSelect.tsx +49 -14
- package/src/components/password-input/CPasswordInput.tsx +164 -0
- package/src/components/password-input/index.ts +3 -0
- package/src/components/popover/CPopover.tsx +103 -43
- package/src/components/smart-table/CSmartTableHead.tsx +3 -0
- package/src/components/smart-table/types.ts +7 -1
- package/src/components/time-picker/CTimePicker.tsx +19 -12
- package/src/components/time-picker/utils.ts +30 -14
- package/src/components/tooltip/CTooltip.tsx +94 -38
- package/src/hooks/useColorModes.ts +5 -5
|
@@ -9,6 +9,7 @@ import React, {
|
|
|
9
9
|
} from 'react'
|
|
10
10
|
import classNames from 'classnames'
|
|
11
11
|
import PropTypes from 'prop-types'
|
|
12
|
+
import type { Options } from '@popperjs/core'
|
|
12
13
|
|
|
13
14
|
import { CConditionalPortal } from '../conditional-portal'
|
|
14
15
|
import { useForkedRef, usePopper } from '../../hooks'
|
|
@@ -18,65 +19,132 @@ import { executeAfterTransition, getRTLPlacement } from '../../utils'
|
|
|
18
19
|
|
|
19
20
|
export interface CPopoverProps extends Omit<HTMLAttributes<HTMLDivElement>, 'title' | 'content'> {
|
|
20
21
|
/**
|
|
21
|
-
*
|
|
22
|
+
* Adds a fade transition animation to the React Popover.
|
|
22
23
|
*
|
|
23
24
|
* @since 4.9.0
|
|
24
25
|
*/
|
|
25
26
|
animation?: boolean
|
|
27
|
+
|
|
26
28
|
/**
|
|
27
|
-
*
|
|
29
|
+
* Custom class name(s) for additional styling.
|
|
28
30
|
*/
|
|
29
31
|
className?: string
|
|
32
|
+
|
|
30
33
|
/**
|
|
31
|
-
*
|
|
34
|
+
* Defines the container element to which the React Popover is appended.
|
|
35
|
+
* Accepts:
|
|
36
|
+
* - A DOM element (`HTMLElement` or `DocumentFragment`)
|
|
37
|
+
* - A function that returns a single element
|
|
38
|
+
* - `null` (defaults to `document.body`)
|
|
39
|
+
*
|
|
40
|
+
* @example
|
|
41
|
+
* <CPopover container={document.getElementById('my-container')}>...</CPopover>
|
|
32
42
|
*
|
|
43
|
+
* @default document.body
|
|
33
44
|
* @since 4.11.0
|
|
34
45
|
*/
|
|
35
46
|
container?: DocumentFragment | Element | (() => DocumentFragment | Element | null) | null
|
|
47
|
+
|
|
36
48
|
/**
|
|
37
|
-
*
|
|
49
|
+
* Main content of the React Popover. It can be a string or any valid React node.
|
|
38
50
|
*/
|
|
39
51
|
content: ReactNode | string
|
|
52
|
+
|
|
40
53
|
/**
|
|
41
|
-
*
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
*
|
|
54
|
+
* Delay (in milliseconds) before showing or hiding the React Popover.
|
|
55
|
+
* - If a number is provided, that delay applies to both "show" and "hide".
|
|
56
|
+
* - If an object is provided, use separate values for "show" and "hide".
|
|
57
|
+
*
|
|
58
|
+
* @example
|
|
59
|
+
* // Delays 300ms on both show and hide
|
|
60
|
+
* <CPopover delay={300}>...</CPopover>
|
|
61
|
+
*
|
|
62
|
+
* // Delays 500ms on show and 100ms on hide
|
|
63
|
+
* <CPopover delay={{ show: 500, hide: 100 }}>...</CPopover>
|
|
46
64
|
*
|
|
47
65
|
* @since 4.9.0
|
|
48
66
|
*/
|
|
49
67
|
delay?: number | { show: number; hide: number }
|
|
68
|
+
|
|
50
69
|
/**
|
|
51
|
-
*
|
|
70
|
+
* Specifies the fallback placements when the preferred `placement` cannot be met.
|
|
52
71
|
*
|
|
72
|
+
* @type 'top', 'right', 'bottom', 'left' | ('top', 'right', 'bottom', 'left')[]
|
|
53
73
|
* @since 4.9.0
|
|
54
74
|
*/
|
|
55
75
|
fallbackPlacements?: Placements | Placements[]
|
|
76
|
+
|
|
56
77
|
/**
|
|
57
|
-
*
|
|
78
|
+
* Offset of the React Popover relative to its toggle element, in the form `[x, y]`.
|
|
79
|
+
*
|
|
80
|
+
* @example
|
|
81
|
+
* // Offset the menu 0px in X and 10px in Y direction
|
|
82
|
+
* <CPopover offset={[0, 10]}>...</CPopover>
|
|
83
|
+
*
|
|
84
|
+
* // Offset the menu 5px in both X and Y direction
|
|
85
|
+
* <CPopover offset={[5, 5]}>...</CPopover>
|
|
86
|
+
*/
|
|
87
|
+
offset?: [number, number]
|
|
88
|
+
|
|
89
|
+
/**
|
|
90
|
+
* Invoked when the React Popover is about to hide.
|
|
58
91
|
*/
|
|
59
92
|
onHide?: () => void
|
|
93
|
+
|
|
60
94
|
/**
|
|
61
|
-
*
|
|
95
|
+
* Invoked when the React Popover is about to show.
|
|
62
96
|
*/
|
|
63
97
|
onShow?: () => void
|
|
98
|
+
|
|
64
99
|
/**
|
|
65
|
-
*
|
|
100
|
+
* Placement of the React Popover. Popper.js may override this based on available space.
|
|
66
101
|
*/
|
|
67
|
-
|
|
102
|
+
placement?: 'auto' | 'top' | 'right' | 'bottom' | 'left'
|
|
103
|
+
|
|
68
104
|
/**
|
|
69
|
-
*
|
|
105
|
+
* Allows customization of the Popper.js configuration for the React Popover.
|
|
106
|
+
* Can be an object or a function returning a modified configuration.
|
|
107
|
+
* [Learn more](https://popper.js.org/docs/v2/constructors/#options)
|
|
108
|
+
*
|
|
109
|
+
* @example
|
|
110
|
+
* <CPopover
|
|
111
|
+
* popperConfig={(defaultConfig) => ({
|
|
112
|
+
* ...defaultConfig,
|
|
113
|
+
* strategy: 'fixed',
|
|
114
|
+
* modifiers: [
|
|
115
|
+
* ...defaultConfig.modifiers,
|
|
116
|
+
* { name: 'computeStyles', options: { adaptive: false } },
|
|
117
|
+
* ],
|
|
118
|
+
* })}
|
|
119
|
+
* >...</CPopover>
|
|
70
120
|
*
|
|
71
|
-
* @
|
|
121
|
+
* @since 5.5.0
|
|
72
122
|
*/
|
|
73
|
-
|
|
123
|
+
popperConfig?: Partial<Options> | ((defaultPopperConfig: Partial<Options>) => Partial<Options>)
|
|
124
|
+
|
|
74
125
|
/**
|
|
75
|
-
*
|
|
126
|
+
* Title for the React Popover header. Can be a string or any valid React node.
|
|
76
127
|
*/
|
|
77
|
-
|
|
128
|
+
title?: ReactNode | string
|
|
129
|
+
|
|
78
130
|
/**
|
|
79
|
-
*
|
|
131
|
+
* Determines which events trigger the visibility of the React Popover. Can be a single trigger or an array of triggers.
|
|
132
|
+
*
|
|
133
|
+
* @example
|
|
134
|
+
* // Hover-only popover
|
|
135
|
+
* <CPopover trigger="hover">...</CPopover>
|
|
136
|
+
*
|
|
137
|
+
* // Hover + click combined
|
|
138
|
+
* <CPopover trigger={['hover', 'click']}>...</CPopover>
|
|
139
|
+
*
|
|
140
|
+
* @type 'hover' | 'focus' | 'click' | ('hover' | 'focus' | 'click')[]
|
|
141
|
+
*/
|
|
142
|
+
trigger?: Triggers | Triggers[]
|
|
143
|
+
|
|
144
|
+
/**
|
|
145
|
+
* Controls the visibility of the React Popover.
|
|
146
|
+
* - `true` shows the popover.
|
|
147
|
+
* - `false` hides the popover.
|
|
80
148
|
*/
|
|
81
149
|
visible?: boolean
|
|
82
150
|
}
|
|
@@ -95,12 +163,13 @@ export const CPopover = forwardRef<HTMLDivElement, CPopoverProps>(
|
|
|
95
163
|
onHide,
|
|
96
164
|
onShow,
|
|
97
165
|
placement = 'top',
|
|
166
|
+
popperConfig,
|
|
98
167
|
title,
|
|
99
168
|
trigger = 'click',
|
|
100
169
|
visible,
|
|
101
170
|
...rest
|
|
102
171
|
},
|
|
103
|
-
ref
|
|
172
|
+
ref
|
|
104
173
|
) => {
|
|
105
174
|
const popoverRef = useRef<HTMLDivElement>(null)
|
|
106
175
|
const togglerRef = useRef(null)
|
|
@@ -114,30 +183,20 @@ export const CPopover = forwardRef<HTMLDivElement, CPopoverProps>(
|
|
|
114
183
|
|
|
115
184
|
const _delay = typeof delay === 'number' ? { show: delay, hide: delay } : delay
|
|
116
185
|
|
|
117
|
-
const
|
|
186
|
+
const defaultPopperConfig: Partial<Options> = {
|
|
118
187
|
modifiers: [
|
|
119
|
-
{
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
element: '.popover-arrow',
|
|
123
|
-
},
|
|
124
|
-
},
|
|
125
|
-
{
|
|
126
|
-
name: 'flip',
|
|
127
|
-
options: {
|
|
128
|
-
fallbackPlacements: fallbackPlacements,
|
|
129
|
-
},
|
|
130
|
-
},
|
|
131
|
-
{
|
|
132
|
-
name: 'offset',
|
|
133
|
-
options: {
|
|
134
|
-
offset: offset,
|
|
135
|
-
},
|
|
136
|
-
},
|
|
188
|
+
{ name: 'arrow', options: { element: '.popover-arrow' } },
|
|
189
|
+
{ name: 'flip', options: { fallbackPlacements } },
|
|
190
|
+
{ name: 'offset', options: { offset } },
|
|
137
191
|
],
|
|
138
192
|
placement: getRTLPlacement(placement, togglerRef.current),
|
|
139
193
|
}
|
|
140
194
|
|
|
195
|
+
const computedPopperConfig: Partial<Options> = {
|
|
196
|
+
...defaultPopperConfig,
|
|
197
|
+
...(typeof popperConfig === 'function' ? popperConfig(defaultPopperConfig) : popperConfig),
|
|
198
|
+
}
|
|
199
|
+
|
|
141
200
|
useEffect(() => {
|
|
142
201
|
if (visible) {
|
|
143
202
|
handleShow()
|
|
@@ -149,7 +208,7 @@ export const CPopover = forwardRef<HTMLDivElement, CPopoverProps>(
|
|
|
149
208
|
|
|
150
209
|
useEffect(() => {
|
|
151
210
|
if (mounted && togglerRef.current && popoverRef.current) {
|
|
152
|
-
initPopper(togglerRef.current, popoverRef.current,
|
|
211
|
+
initPopper(togglerRef.current, popoverRef.current, computedPopperConfig)
|
|
153
212
|
setTimeout(() => {
|
|
154
213
|
setVisible(true)
|
|
155
214
|
}, _delay.show)
|
|
@@ -215,7 +274,7 @@ export const CPopover = forwardRef<HTMLDivElement, CPopoverProps>(
|
|
|
215
274
|
fade: animation,
|
|
216
275
|
show: _visible,
|
|
217
276
|
},
|
|
218
|
-
className
|
|
277
|
+
className
|
|
219
278
|
)}
|
|
220
279
|
id={id}
|
|
221
280
|
ref={forkedRef}
|
|
@@ -230,7 +289,7 @@ export const CPopover = forwardRef<HTMLDivElement, CPopoverProps>(
|
|
|
230
289
|
</CConditionalPortal>
|
|
231
290
|
</>
|
|
232
291
|
)
|
|
233
|
-
}
|
|
292
|
+
}
|
|
234
293
|
)
|
|
235
294
|
|
|
236
295
|
CPopover.propTypes = {
|
|
@@ -251,6 +310,7 @@ CPopover.propTypes = {
|
|
|
251
310
|
onHide: PropTypes.func,
|
|
252
311
|
onShow: PropTypes.func,
|
|
253
312
|
placement: PropTypes.oneOf(['auto', 'top', 'right', 'bottom', 'left']),
|
|
313
|
+
popperConfig: PropTypes.oneOfType([PropTypes.func, PropTypes.object]),
|
|
254
314
|
title: PropTypes.oneOfType([PropTypes.string, PropTypes.node]),
|
|
255
315
|
trigger: triggerPropType,
|
|
256
316
|
visible: PropTypes.bool,
|
|
@@ -177,6 +177,9 @@ export const CSmartTableHead: PolymorphicRefForwardingComponent<'thead', CSmartT
|
|
|
177
177
|
(value: any) =>
|
|
178
178
|
handleOnCustomFilterChange &&
|
|
179
179
|
handleOnCustomFilterChange(getColumnKey(column), value),
|
|
180
|
+
columnFilterState && columnFilterState[getColumnKey(column)]
|
|
181
|
+
? columnFilterState[getColumnKey(column)]
|
|
182
|
+
: undefined
|
|
180
183
|
)
|
|
181
184
|
) : (
|
|
182
185
|
<CFormInput
|
|
@@ -6,7 +6,13 @@ import { CTableRowProps } from '../table/CTableRow'
|
|
|
6
6
|
|
|
7
7
|
export type Column = {
|
|
8
8
|
children?: Column[]
|
|
9
|
-
filter?:
|
|
9
|
+
filter?:
|
|
10
|
+
| boolean
|
|
11
|
+
| ((
|
|
12
|
+
values: any[],
|
|
13
|
+
onChange: (value: any) => void,
|
|
14
|
+
state: ColumnFilterValue | undefined
|
|
15
|
+
) => ReactNode)
|
|
10
16
|
group?: string
|
|
11
17
|
key: string
|
|
12
18
|
label?: string
|
|
@@ -200,7 +200,7 @@ export const CTimePicker = forwardRef<HTMLDivElement | HTMLLIElement, CTimePicke
|
|
|
200
200
|
visible,
|
|
201
201
|
...rest
|
|
202
202
|
},
|
|
203
|
-
ref
|
|
203
|
+
ref
|
|
204
204
|
) => {
|
|
205
205
|
const formRef = useRef<HTMLFormElement>()
|
|
206
206
|
const inputRef = useRef<HTMLInputElement>(null)
|
|
@@ -239,8 +239,9 @@ export const CTimePicker = forwardRef<HTMLDivElement | HTMLLIElement, CTimePicke
|
|
|
239
239
|
})
|
|
240
240
|
: ''
|
|
241
241
|
}
|
|
242
|
-
|
|
243
|
-
|
|
242
|
+
if (date) {
|
|
243
|
+
setAmPm(getAmPm(new Date(date), locale))
|
|
244
|
+
}
|
|
244
245
|
}, [date])
|
|
245
246
|
|
|
246
247
|
useEffect(() => {
|
|
@@ -262,7 +263,7 @@ export const CTimePicker = forwardRef<HTMLDivElement | HTMLLIElement, CTimePicke
|
|
|
262
263
|
const handleClear = (event: React.MouseEvent<HTMLElement>) => {
|
|
263
264
|
event.stopPropagation()
|
|
264
265
|
setDate(null)
|
|
265
|
-
onTimeChange
|
|
266
|
+
onTimeChange?.(null)
|
|
266
267
|
}
|
|
267
268
|
|
|
268
269
|
const handleFormValidation = (form: HTMLFormElement) => {
|
|
@@ -279,7 +280,7 @@ export const CTimePicker = forwardRef<HTMLDivElement | HTMLLIElement, CTimePicke
|
|
|
279
280
|
|
|
280
281
|
const handleOnChange = useDebouncedCallback(
|
|
281
282
|
(value: string) => isValidTime(value) && setDate(convertTimeToDate(value)),
|
|
282
|
-
inputOnChangeDelay
|
|
283
|
+
inputOnChangeDelay
|
|
283
284
|
)
|
|
284
285
|
|
|
285
286
|
const handleTimeChange = (set: 'hours' | 'minutes' | 'seconds' | 'toggle', value: string) => {
|
|
@@ -311,7 +312,7 @@ export const CTimePicker = forwardRef<HTMLDivElement | HTMLLIElement, CTimePicke
|
|
|
311
312
|
}
|
|
312
313
|
|
|
313
314
|
setDate(new Date(_date))
|
|
314
|
-
onTimeChange
|
|
315
|
+
onTimeChange?.(_date.toTimeString(), _date.toLocaleTimeString(), _date)
|
|
315
316
|
}
|
|
316
317
|
|
|
317
318
|
const InputGroup = () => (
|
|
@@ -456,7 +457,7 @@ export const CTimePicker = forwardRef<HTMLDivElement | HTMLLIElement, CTimePicke
|
|
|
456
457
|
'is-invalid': isValid === false ? true : false,
|
|
457
458
|
'is-valid': isValid,
|
|
458
459
|
},
|
|
459
|
-
className
|
|
460
|
+
className
|
|
460
461
|
)}
|
|
461
462
|
container={container}
|
|
462
463
|
disabled={disabled}
|
|
@@ -470,7 +471,10 @@ export const CTimePicker = forwardRef<HTMLDivElement | HTMLLIElement, CTimePicke
|
|
|
470
471
|
size={cancelButtonSize}
|
|
471
472
|
variant={cancelButtonVariant}
|
|
472
473
|
onClick={() => {
|
|
473
|
-
|
|
474
|
+
if (initialDate) {
|
|
475
|
+
setDate(new Date(initialDate))
|
|
476
|
+
}
|
|
477
|
+
|
|
474
478
|
setVisible(false)
|
|
475
479
|
}}
|
|
476
480
|
>
|
|
@@ -493,12 +497,15 @@ export const CTimePicker = forwardRef<HTMLDivElement | HTMLLIElement, CTimePicke
|
|
|
493
497
|
}
|
|
494
498
|
onHide={() => {
|
|
495
499
|
setVisible(false)
|
|
496
|
-
onHide
|
|
500
|
+
onHide?.()
|
|
497
501
|
}}
|
|
498
502
|
onShow={() => {
|
|
499
|
-
|
|
503
|
+
if (date) {
|
|
504
|
+
setInitialDate(new Date(date))
|
|
505
|
+
}
|
|
506
|
+
|
|
500
507
|
setVisible(true)
|
|
501
|
-
onShow
|
|
508
|
+
onShow?.()
|
|
502
509
|
}}
|
|
503
510
|
portal={portal}
|
|
504
511
|
toggler={InputGroup()}
|
|
@@ -550,7 +557,7 @@ export const CTimePicker = forwardRef<HTMLDivElement | HTMLLIElement, CTimePicke
|
|
|
550
557
|
</CPicker>
|
|
551
558
|
</CFormControlWrapper>
|
|
552
559
|
)
|
|
553
|
-
}
|
|
560
|
+
}
|
|
554
561
|
)
|
|
555
562
|
|
|
556
563
|
CTimePicker.propTypes = {
|
|
@@ -65,12 +65,12 @@ export const getAmPm = (date: Date, locale: string): AmPm => {
|
|
|
65
65
|
export const formatTimePartials = (
|
|
66
66
|
values: number[],
|
|
67
67
|
locale: string,
|
|
68
|
-
partial: 'hour' | 'minute' | 'second'
|
|
68
|
+
partial: 'hour' | 'minute' | 'second'
|
|
69
69
|
): FormattedPartial[] => {
|
|
70
70
|
const date = new Date()
|
|
71
|
-
|
|
71
|
+
const forceTwoDigit = shouldUseTwoDigitHour(locale)
|
|
72
72
|
const formatter = new Intl.DateTimeFormat(locale, {
|
|
73
|
-
hour: 'numeric',
|
|
73
|
+
hour: forceTwoDigit ? '2-digit' : 'numeric',
|
|
74
74
|
minute: '2-digit',
|
|
75
75
|
second: '2-digit',
|
|
76
76
|
})
|
|
@@ -109,32 +109,32 @@ export const getLocalizedTimePartials = (
|
|
|
109
109
|
ampm: 'auto' | boolean = 'auto',
|
|
110
110
|
hours: boolean | number[] | ((hour: number) => number[]) = [],
|
|
111
111
|
minutes: boolean | number[] | ((minute: number) => number[]) = [],
|
|
112
|
-
seconds: boolean | number[] | ((second: number) => number[]) = []
|
|
112
|
+
seconds: boolean | number[] | ((second: number) => number[]) = []
|
|
113
113
|
): LocalizedTimePartials => {
|
|
114
114
|
const hour12 = (ampm === 'auto' && isAmPm(locale)) || ampm === true
|
|
115
115
|
|
|
116
116
|
const listOfHours =
|
|
117
117
|
Array.isArray(hours) && hours.length > 0
|
|
118
118
|
? hours
|
|
119
|
-
:
|
|
119
|
+
: typeof hours === 'function'
|
|
120
120
|
? Array.from({ length: hour12 ? 12 : 24 }, (_, i) => (hour12 ? i + 1 : i)).filter((hour) =>
|
|
121
|
-
hours(hour)
|
|
121
|
+
hours(hour)
|
|
122
122
|
)
|
|
123
|
-
: Array.from({ length: hour12 ? 12 : 24 }, (_, i) => (hour12 ? i + 1 : i))
|
|
123
|
+
: Array.from({ length: hour12 ? 12 : 24 }, (_, i) => (hour12 ? i + 1 : i))
|
|
124
124
|
|
|
125
125
|
const listOfMinutes =
|
|
126
126
|
Array.isArray(minutes) && minutes.length > 0
|
|
127
127
|
? minutes
|
|
128
|
-
:
|
|
128
|
+
: typeof minutes === 'function'
|
|
129
129
|
? Array.from({ length: 60 }, (_, i) => i).filter((minute) => minutes(minute))
|
|
130
|
-
: Array.from({ length: 60 }, (_, i) => i)
|
|
130
|
+
: Array.from({ length: 60 }, (_, i) => i)
|
|
131
131
|
|
|
132
132
|
const listOfSeconds =
|
|
133
133
|
Array.isArray(seconds) && seconds.length > 0
|
|
134
134
|
? seconds
|
|
135
|
-
:
|
|
135
|
+
: typeof seconds === 'function'
|
|
136
136
|
? Array.from({ length: 60 }, (_, i) => i).filter((second) => seconds(second))
|
|
137
|
-
: Array.from({ length: 60 }, (_, i) => i)
|
|
137
|
+
: Array.from({ length: 60 }, (_, i) => i)
|
|
138
138
|
|
|
139
139
|
return {
|
|
140
140
|
listOfHours: formatTimePartials(listOfHours, locale, 'hour'),
|
|
@@ -154,12 +154,12 @@ export const getLocalizedTimePartials = (
|
|
|
154
154
|
export const getSelectedHour = (
|
|
155
155
|
date: Date | null,
|
|
156
156
|
locale: string,
|
|
157
|
-
ampm: 'auto' | boolean = 'auto'
|
|
157
|
+
ampm: 'auto' | boolean = 'auto'
|
|
158
158
|
): number | string =>
|
|
159
159
|
date
|
|
160
|
-
? (
|
|
160
|
+
? (ampm === 'auto' && isAmPm(locale)) || ampm === true
|
|
161
161
|
? convert24hTo12h(date.getHours())
|
|
162
|
-
: date.getHours()
|
|
162
|
+
: date.getHours()
|
|
163
163
|
: ''
|
|
164
164
|
|
|
165
165
|
/**
|
|
@@ -195,3 +195,19 @@ export const isValidTime = (time: string): boolean => {
|
|
|
195
195
|
const d = new Date(`1970-01-01T${time}`)
|
|
196
196
|
return d instanceof Date && !Number.isNaN(d.getTime())
|
|
197
197
|
}
|
|
198
|
+
|
|
199
|
+
/**
|
|
200
|
+
* Checks whether the given locale formats the hour "9" with a leading zero ("09")
|
|
201
|
+
* when using `hour: 'numeric'` in `toLocaleTimeString`.
|
|
202
|
+
*
|
|
203
|
+
* This helps determine if you should force `hour: '2-digit'` for consistent formatting.
|
|
204
|
+
*
|
|
205
|
+
* @param {string} locale - The locale code (e.g., "en-US", "pl-PL").
|
|
206
|
+
* @returns {boolean} `true` if the formatted hour starts with a leading zero, otherwise `false`.
|
|
207
|
+
*/
|
|
208
|
+
export const shouldUseTwoDigitHour = (locale: string): boolean => {
|
|
209
|
+
const d = new Date(2020, 0, 1, 7, 5, 7) // 7:05:07
|
|
210
|
+
const formatted = d.toLocaleTimeString(locale)
|
|
211
|
+
|
|
212
|
+
return formatted.startsWith('0') // check if the hour starts with "0"
|
|
213
|
+
}
|