@coreui/vue-pro 5.6.0 → 5.8.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.map +1 -1
- package/dist/cjs/components/accordion/CAccordionButton.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/index.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/alert/index.js.map +1 -1
- package/dist/cjs/components/avatar/CAvatar.js.map +1 -1
- package/dist/cjs/components/avatar/index.js.map +1 -1
- package/dist/cjs/components/backdrop/CBackdrop.js.map +1 -1
- package/dist/cjs/components/backdrop/index.js.map +1 -1
- package/dist/cjs/components/badge/CBadge.js.map +1 -1
- package/dist/cjs/components/badge/index.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/breadcrumb/index.js.map +1 -1
- package/dist/cjs/components/button/CButton.js.map +1 -1
- package/dist/cjs/components/button/index.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/button-group/index.js.map +1 -1
- package/dist/cjs/components/calendar/CCalendar.js +2 -2
- package/dist/cjs/components/calendar/CCalendar.js.map +1 -1
- package/dist/cjs/components/calendar/index.js.map +1 -1
- package/dist/cjs/components/calendar/utils.js +5 -0
- package/dist/cjs/components/calendar/utils.js.map +1 -1
- package/dist/cjs/components/callout/CCallout.js.map +1 -1
- package/dist/cjs/components/callout/index.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/card/index.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/CCarouselItem.js.map +1 -1
- package/dist/cjs/components/carousel/index.js.map +1 -1
- package/dist/cjs/components/close-button/CCloseButton.js.map +1 -1
- package/dist/cjs/components/close-button/index.js.map +1 -1
- package/dist/cjs/components/collapse/CCollapse.js.map +1 -1
- package/dist/cjs/components/collapse/index.js.map +1 -1
- package/dist/cjs/components/conditional-teleport/CConditionalTeleport.js.map +1 -1
- package/dist/cjs/components/conditional-teleport/index.js.map +1 -1
- package/dist/cjs/components/date-picker/CDatePicker.d.ts +19 -0
- package/dist/cjs/components/date-picker/CDatePicker.js +9 -0
- package/dist/cjs/components/date-picker/CDatePicker.js.map +1 -1
- package/dist/cjs/components/date-picker/index.js.map +1 -1
- package/dist/cjs/components/date-range-picker/CDateRangePicker.d.ts +19 -0
- package/dist/cjs/components/date-range-picker/CDateRangePicker.js +26 -1
- package/dist/cjs/components/date-range-picker/CDateRangePicker.js.map +1 -1
- package/dist/cjs/components/date-range-picker/index.js.map +1 -1
- package/dist/cjs/components/date-range-picker/utils.js.map +1 -1
- package/dist/cjs/components/dropdown/CDropdown.d.ts +1 -1
- package/dist/cjs/components/dropdown/CDropdown.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/CDropdownMenu.js.map +1 -1
- package/dist/cjs/components/dropdown/CDropdownToggle.js.map +1 -1
- package/dist/cjs/components/dropdown/index.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/element-cover/index.js.map +1 -1
- package/dist/cjs/components/footer/CFooter.js.map +1 -1
- package/dist/cjs/components/footer/index.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/form/index.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/grid/index.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/header/index.js.map +1 -1
- package/dist/cjs/components/image/CImage.js.map +1 -1
- package/dist/cjs/components/image/index.js.map +1 -1
- package/dist/cjs/components/index.d.ts +1 -0
- package/dist/cjs/components/index.js +28 -24
- package/dist/cjs/components/index.js.map +1 -1
- package/dist/cjs/components/link/CLink.js.map +1 -1
- package/dist/cjs/components/link/index.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/list-group/index.js.map +1 -1
- package/dist/cjs/components/loading-button/CLoadingButton.js.map +1 -1
- package/dist/cjs/components/loading-button/index.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/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/modal/index.js.map +1 -1
- package/dist/cjs/components/multi-select/CMultiSelect.d.ts +75 -8
- package/dist/cjs/components/multi-select/CMultiSelect.js +176 -124
- 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.d.ts +12 -3
- package/dist/cjs/components/multi-select/CMultiSelectSelection.js +23 -1
- package/dist/cjs/components/multi-select/CMultiSelectSelection.js.map +1 -1
- package/dist/cjs/components/multi-select/index.js.map +1 -1
- package/dist/cjs/components/multi-select/types.d.ts +4 -0
- package/dist/cjs/components/multi-select/utils.d.ts +5 -2
- package/dist/cjs/components/multi-select/utils.js +18 -1
- 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/CNavGroupItems.js.map +1 -1
- package/dist/cjs/components/nav/CNavItem.d.ts +4 -2
- package/dist/cjs/components/nav/CNavItem.js +12 -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/nav/index.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/navbar/index.js.map +1 -1
- 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/offcanvas/index.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/pagination/index.js.map +1 -1
- package/dist/cjs/components/picker/CPicker.d.ts +19 -0
- package/dist/cjs/components/picker/CPicker.js +32 -7
- package/dist/cjs/components/picker/CPicker.js.map +1 -1
- package/dist/cjs/components/picker/index.js.map +1 -1
- package/dist/cjs/components/placeholder/CPlaceholder.js.map +1 -1
- package/dist/cjs/components/placeholder/index.js.map +1 -1
- package/dist/cjs/components/popover/CPopover.js +1 -1
- package/dist/cjs/components/popover/CPopover.js.map +1 -1
- package/dist/cjs/components/popover/index.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/index.js.map +1 -1
- package/dist/cjs/components/props.js.map +1 -1
- package/dist/cjs/components/range-slider/CRangeSlider.d.ts +241 -0
- package/dist/cjs/components/range-slider/CRangeSlider.js +311 -0
- package/dist/cjs/components/range-slider/CRangeSlider.js.map +1 -0
- package/dist/cjs/components/range-slider/index.d.ts +6 -0
- package/dist/cjs/components/range-slider/index.js +13 -0
- package/dist/cjs/components/range-slider/index.js.map +1 -0
- package/dist/cjs/components/range-slider/types.d.ts +11 -0
- package/dist/cjs/components/range-slider/utils.d.ts +38 -0
- package/dist/cjs/components/range-slider/utils.js +172 -0
- package/dist/cjs/components/range-slider/utils.js.map +1 -0
- package/dist/cjs/components/rating/CRating.js.map +1 -1
- package/dist/cjs/components/rating/index.js.map +1 -1
- package/dist/cjs/components/sidebar/CSidebar.js +0 -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/sidebar/index.js.map +1 -1
- package/dist/cjs/components/smart-pagination/CSmartPagination.js.map +1 -1
- package/dist/cjs/components/smart-pagination/index.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/index.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/spinner/index.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/CTableRow.js.map +1 -1
- package/dist/cjs/components/table/index.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/index.js.map +1 -1
- package/dist/cjs/components/time-picker/CTimePicker.d.ts +19 -0
- package/dist/cjs/components/time-picker/CTimePicker.js +26 -1
- package/dist/cjs/components/time-picker/CTimePicker.js.map +1 -1
- package/dist/cjs/components/time-picker/CTimePickerRollCol.js +1 -1
- package/dist/cjs/components/time-picker/CTimePickerRollCol.js.map +1 -1
- package/dist/cjs/components/time-picker/index.js.map +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/CToastHeader.js.map +1 -1
- package/dist/cjs/components/toast/CToaster.js.map +1 -1
- package/dist/cjs/components/toast/index.js.map +1 -1
- package/dist/cjs/components/tooltip/CTooltip.js +1 -1
- package/dist/cjs/components/tooltip/CTooltip.js.map +1 -1
- package/dist/cjs/components/tooltip/index.js.map +1 -1
- package/dist/cjs/components/virtual-scroller/CVirtualScroller.js.map +1 -1
- package/dist/cjs/components/virtual-scroller/index.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/components/widgets/index.js.map +1 -1
- package/dist/cjs/composables/index.d.ts +2 -1
- package/dist/cjs/composables/useColorModes.js.map +1 -1
- package/dist/cjs/composables/useDebouncedCallback.js.map +1 -1
- package/dist/cjs/composables/useDropdownWithPopper.d.ts +10 -0
- package/dist/cjs/composables/useDropdownWithPopper.js +110 -0
- package/dist/cjs/composables/useDropdownWithPopper.js.map +1 -0
- package/dist/cjs/composables/useIsVisible.js.map +1 -1
- package/dist/cjs/composables/usePopper.js.map +1 -1
- package/dist/cjs/composables/useUniqueId.js.map +1 -1
- package/dist/cjs/directives/v-c-placeholder.js.map +1 -1
- package/dist/cjs/directives/v-c-popover.js.map +1 -1
- package/dist/cjs/directives/v-c-tooltip.js.map +1 -1
- package/dist/cjs/directives/v-c-visible.js.map +1 -1
- package/dist/cjs/index.js +36 -30
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/node_modules/@coreui/icons-vue/dist/index.es.js.map +1 -1
- package/dist/cjs/node_modules/is-plain-object/dist/is-plain-object.js.map +1 -1
- package/dist/cjs/props.js.map +1 -1
- package/dist/cjs/utils/getNextActiveElement.js +1 -1
- package/dist/cjs/utils/getNextActiveElement.js.map +1 -1
- package/dist/cjs/utils/getRTLPlacement.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/transition.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/CAccordionHeader.js.map +1 -1
- package/dist/esm/components/accordion/CAccordionItem.js.map +1 -1
- package/dist/esm/components/accordion/index.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/alert/index.js.map +1 -1
- package/dist/esm/components/avatar/CAvatar.js.map +1 -1
- package/dist/esm/components/avatar/index.js.map +1 -1
- package/dist/esm/components/backdrop/CBackdrop.js.map +1 -1
- package/dist/esm/components/backdrop/index.js.map +1 -1
- package/dist/esm/components/badge/CBadge.js.map +1 -1
- package/dist/esm/components/badge/index.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/breadcrumb/index.js.map +1 -1
- package/dist/esm/components/button/CButton.js.map +1 -1
- package/dist/esm/components/button/index.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/button-group/index.js.map +1 -1
- package/dist/esm/components/calendar/CCalendar.js +2 -2
- package/dist/esm/components/calendar/CCalendar.js.map +1 -1
- package/dist/esm/components/calendar/index.js.map +1 -1
- package/dist/esm/components/calendar/utils.js +5 -0
- package/dist/esm/components/calendar/utils.js.map +1 -1
- package/dist/esm/components/callout/CCallout.js.map +1 -1
- package/dist/esm/components/callout/index.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/card/index.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/CCarouselItem.js.map +1 -1
- package/dist/esm/components/carousel/index.js.map +1 -1
- package/dist/esm/components/close-button/CCloseButton.js.map +1 -1
- package/dist/esm/components/close-button/index.js.map +1 -1
- package/dist/esm/components/collapse/CCollapse.js.map +1 -1
- package/dist/esm/components/collapse/index.js.map +1 -1
- package/dist/esm/components/conditional-teleport/CConditionalTeleport.js.map +1 -1
- package/dist/esm/components/conditional-teleport/index.js.map +1 -1
- package/dist/esm/components/date-picker/CDatePicker.d.ts +19 -0
- package/dist/esm/components/date-picker/CDatePicker.js +9 -0
- package/dist/esm/components/date-picker/CDatePicker.js.map +1 -1
- package/dist/esm/components/date-picker/index.js.map +1 -1
- package/dist/esm/components/date-range-picker/CDateRangePicker.d.ts +19 -0
- package/dist/esm/components/date-range-picker/CDateRangePicker.js +26 -1
- package/dist/esm/components/date-range-picker/CDateRangePicker.js.map +1 -1
- package/dist/esm/components/date-range-picker/index.js.map +1 -1
- package/dist/esm/components/date-range-picker/utils.js.map +1 -1
- package/dist/esm/components/dropdown/CDropdown.d.ts +1 -1
- package/dist/esm/components/dropdown/CDropdown.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/CDropdownMenu.js.map +1 -1
- package/dist/esm/components/dropdown/CDropdownToggle.js.map +1 -1
- package/dist/esm/components/dropdown/index.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/element-cover/index.js.map +1 -1
- package/dist/esm/components/footer/CFooter.js.map +1 -1
- package/dist/esm/components/footer/index.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/form/index.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/grid/index.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/header/index.js.map +1 -1
- package/dist/esm/components/image/CImage.js.map +1 -1
- package/dist/esm/components/image/index.js.map +1 -1
- package/dist/esm/components/index.d.ts +1 -0
- package/dist/esm/components/index.js +2 -0
- package/dist/esm/components/index.js.map +1 -1
- package/dist/esm/components/link/CLink.js.map +1 -1
- package/dist/esm/components/link/index.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/list-group/index.js.map +1 -1
- package/dist/esm/components/loading-button/CLoadingButton.js.map +1 -1
- package/dist/esm/components/loading-button/index.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/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/modal/index.js.map +1 -1
- package/dist/esm/components/multi-select/CMultiSelect.d.ts +75 -8
- package/dist/esm/components/multi-select/CMultiSelect.js +178 -126
- 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.d.ts +12 -3
- package/dist/esm/components/multi-select/CMultiSelectSelection.js +23 -1
- package/dist/esm/components/multi-select/CMultiSelectSelection.js.map +1 -1
- package/dist/esm/components/multi-select/index.js.map +1 -1
- package/dist/esm/components/multi-select/types.d.ts +4 -0
- package/dist/esm/components/multi-select/utils.d.ts +5 -2
- package/dist/esm/components/multi-select/utils.js +16 -2
- 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/CNavGroupItems.js.map +1 -1
- package/dist/esm/components/nav/CNavItem.d.ts +4 -2
- package/dist/esm/components/nav/CNavItem.js +12 -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/nav/index.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/navbar/index.js.map +1 -1
- 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/offcanvas/index.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/pagination/index.js.map +1 -1
- package/dist/esm/components/picker/CPicker.d.ts +19 -0
- package/dist/esm/components/picker/CPicker.js +32 -7
- package/dist/esm/components/picker/CPicker.js.map +1 -1
- package/dist/esm/components/picker/index.js.map +1 -1
- package/dist/esm/components/placeholder/CPlaceholder.js.map +1 -1
- package/dist/esm/components/placeholder/index.js.map +1 -1
- package/dist/esm/components/popover/CPopover.js +1 -1
- package/dist/esm/components/popover/CPopover.js.map +1 -1
- package/dist/esm/components/popover/index.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/index.js.map +1 -1
- package/dist/esm/components/props.js.map +1 -1
- package/dist/esm/components/range-slider/CRangeSlider.d.ts +241 -0
- package/dist/esm/components/range-slider/CRangeSlider.js +309 -0
- package/dist/esm/components/range-slider/CRangeSlider.js.map +1 -0
- package/dist/esm/components/range-slider/index.d.ts +6 -0
- package/dist/esm/components/range-slider/index.js +10 -0
- package/dist/esm/components/range-slider/index.js.map +1 -0
- package/dist/esm/components/range-slider/types.d.ts +11 -0
- package/dist/esm/components/range-slider/utils.d.ts +38 -0
- package/dist/esm/components/range-slider/utils.js +157 -0
- package/dist/esm/components/range-slider/utils.js.map +1 -0
- package/dist/esm/components/rating/CRating.js.map +1 -1
- package/dist/esm/components/rating/index.js.map +1 -1
- package/dist/esm/components/sidebar/CSidebar.js +0 -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/sidebar/index.js.map +1 -1
- package/dist/esm/components/smart-pagination/CSmartPagination.js.map +1 -1
- package/dist/esm/components/smart-pagination/index.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/index.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/spinner/index.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/CTableRow.js.map +1 -1
- package/dist/esm/components/table/index.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/index.js.map +1 -1
- package/dist/esm/components/time-picker/CTimePicker.d.ts +19 -0
- package/dist/esm/components/time-picker/CTimePicker.js +26 -1
- package/dist/esm/components/time-picker/CTimePicker.js.map +1 -1
- package/dist/esm/components/time-picker/CTimePickerRollCol.js +1 -1
- package/dist/esm/components/time-picker/CTimePickerRollCol.js.map +1 -1
- package/dist/esm/components/time-picker/index.js.map +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/CToastHeader.js.map +1 -1
- package/dist/esm/components/toast/CToaster.js.map +1 -1
- package/dist/esm/components/toast/index.js.map +1 -1
- package/dist/esm/components/tooltip/CTooltip.js +1 -1
- package/dist/esm/components/tooltip/CTooltip.js.map +1 -1
- package/dist/esm/components/tooltip/index.js.map +1 -1
- package/dist/esm/components/virtual-scroller/CVirtualScroller.js.map +1 -1
- package/dist/esm/components/virtual-scroller/index.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/components/widgets/index.js.map +1 -1
- package/dist/esm/composables/index.d.ts +2 -1
- package/dist/esm/composables/useColorModes.js.map +1 -1
- package/dist/esm/composables/useDebouncedCallback.js.map +1 -1
- package/dist/esm/composables/useDropdownWithPopper.d.ts +10 -0
- package/dist/esm/composables/useDropdownWithPopper.js +108 -0
- package/dist/esm/composables/useDropdownWithPopper.js.map +1 -0
- package/dist/esm/composables/useIsVisible.js.map +1 -1
- package/dist/esm/composables/usePopper.js.map +1 -1
- package/dist/esm/composables/useUniqueId.js.map +1 -1
- package/dist/esm/directives/v-c-placeholder.js.map +1 -1
- package/dist/esm/directives/v-c-popover.js.map +1 -1
- package/dist/esm/directives/v-c-tooltip.js.map +1 -1
- package/dist/esm/directives/v-c-visible.js.map +1 -1
- package/dist/esm/index.js +3 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/node_modules/@coreui/icons-vue/dist/index.es.js.map +1 -1
- package/dist/esm/node_modules/is-plain-object/dist/is-plain-object.js.map +1 -1
- package/dist/esm/props.js.map +1 -1
- package/dist/esm/utils/getNextActiveElement.js +1 -1
- package/dist/esm/utils/getNextActiveElement.js.map +1 -1
- package/dist/esm/utils/getRTLPlacement.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/transition.js.map +1 -1
- package/package.json +8 -8
- package/src/components/calendar/CCalendar.ts +2 -2
- package/src/components/calendar/utils.ts +6 -0
- package/src/components/date-picker/CDatePicker.ts +9 -0
- package/src/components/date-range-picker/CDateRangePicker.ts +26 -2
- package/src/components/index.ts +1 -0
- package/src/components/multi-select/CMultiSelect.ts +271 -175
- package/src/components/multi-select/CMultiSelectSelection.ts +29 -2
- package/src/components/multi-select/types.ts +9 -0
- package/src/components/multi-select/utils.ts +26 -1
- package/src/components/nav/CNavItem.ts +12 -1
- package/src/components/picker/CPicker.ts +43 -7
- package/src/components/range-slider/CRangeSlider.ts +420 -0
- package/src/components/range-slider/index.ts +10 -0
- package/src/components/range-slider/types.ts +16 -0
- package/src/components/range-slider/utils.ts +241 -0
- package/src/components/sidebar/CSidebar.ts +0 -1
- package/src/components/time-picker/CTimePicker.ts +26 -1
- package/src/composables/index.ts +9 -1
- package/src/composables/useDropdownWithPopper.ts +130 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { PropType } from 'vue';
|
|
2
|
-
import type { Option, OptionsGroup } from './types';
|
|
2
|
+
import type { Option, OptionsGroup, Search } from './types';
|
|
3
3
|
declare const CMultiSelect: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
|
|
4
4
|
/**
|
|
5
5
|
* Allow users to create options if they are not in the list of options.
|
|
@@ -7,6 +7,15 @@ declare const CMultiSelect: import("vue").DefineComponent<import("vue").ExtractP
|
|
|
7
7
|
* @since 4.9.0
|
|
8
8
|
*/
|
|
9
9
|
allowCreateOptions: BooleanConstructor;
|
|
10
|
+
/**
|
|
11
|
+
* A string that provides an accessible label for the cleaner button. This label is read by screen readers to describe the action associated with the button.
|
|
12
|
+
*
|
|
13
|
+
* @since 5.7.0
|
|
14
|
+
*/
|
|
15
|
+
ariaCleanerLabel: {
|
|
16
|
+
type: StringConstructor;
|
|
17
|
+
default: string;
|
|
18
|
+
};
|
|
10
19
|
/**
|
|
11
20
|
* Enables selection cleaner element.
|
|
12
21
|
*
|
|
@@ -16,6 +25,15 @@ declare const CMultiSelect: import("vue").DefineComponent<import("vue").ExtractP
|
|
|
16
25
|
type: BooleanConstructor;
|
|
17
26
|
default: boolean;
|
|
18
27
|
};
|
|
28
|
+
/**
|
|
29
|
+
* Appends the dropdown to a specific element. You can pass an HTML element or function that returns a single element.
|
|
30
|
+
*
|
|
31
|
+
* @since 5.7.0
|
|
32
|
+
*/
|
|
33
|
+
container: {
|
|
34
|
+
type: PropType<HTMLElement | (() => HTMLElement) | string>;
|
|
35
|
+
default: string;
|
|
36
|
+
};
|
|
19
37
|
/**
|
|
20
38
|
* Clear current search on selecting an item.
|
|
21
39
|
*
|
|
@@ -131,12 +149,17 @@ declare const CMultiSelect: import("vue").DefineComponent<import("vue").ExtractP
|
|
|
131
149
|
*/
|
|
132
150
|
resetSelectionOnOptionsChange: BooleanConstructor;
|
|
133
151
|
/**
|
|
134
|
-
*
|
|
152
|
+
* The `search` prop determines how the search input element is enabled and behaves. It accepts multiple types to provide flexibility in configuring search behavior:
|
|
153
|
+
*
|
|
154
|
+
* - `true` : Enables the default search input element with standard behavior.
|
|
155
|
+
* - `'external'`: Enables an external search mechanism, possibly integrating with external APIs or services.
|
|
156
|
+
* - `'global'`: When set, the user can perform searches across the entire component, regardless of where their focus is within the component.
|
|
157
|
+
* - `{ external?: boolean; global?: boolean }`: Allows for granular control over the search behavior by specifying individual properties. It is useful when you also want to use external and global search.
|
|
135
158
|
*/
|
|
136
159
|
search: {
|
|
137
|
-
type:
|
|
160
|
+
type: PropType<Search>;
|
|
138
161
|
default: boolean;
|
|
139
|
-
validator: (value: boolean | string) => boolean;
|
|
162
|
+
validator: (value: boolean | object | string) => boolean;
|
|
140
163
|
};
|
|
141
164
|
/**
|
|
142
165
|
* Sets the label for no results when filtering.
|
|
@@ -192,6 +215,15 @@ declare const CMultiSelect: import("vue").DefineComponent<import("vue").ExtractP
|
|
|
192
215
|
type: StringConstructor;
|
|
193
216
|
validator: (value: string) => boolean;
|
|
194
217
|
};
|
|
218
|
+
/**
|
|
219
|
+
* Generates dropdown menu using Teleport.
|
|
220
|
+
*
|
|
221
|
+
* @since 5.7.0
|
|
222
|
+
*/
|
|
223
|
+
teleport: {
|
|
224
|
+
type: BooleanConstructor[];
|
|
225
|
+
default: boolean;
|
|
226
|
+
};
|
|
195
227
|
/**
|
|
196
228
|
* Add helper text to the component.
|
|
197
229
|
*
|
|
@@ -241,6 +273,15 @@ declare const CMultiSelect: import("vue").DefineComponent<import("vue").ExtractP
|
|
|
241
273
|
* @since 4.9.0
|
|
242
274
|
*/
|
|
243
275
|
allowCreateOptions: BooleanConstructor;
|
|
276
|
+
/**
|
|
277
|
+
* A string that provides an accessible label for the cleaner button. This label is read by screen readers to describe the action associated with the button.
|
|
278
|
+
*
|
|
279
|
+
* @since 5.7.0
|
|
280
|
+
*/
|
|
281
|
+
ariaCleanerLabel: {
|
|
282
|
+
type: StringConstructor;
|
|
283
|
+
default: string;
|
|
284
|
+
};
|
|
244
285
|
/**
|
|
245
286
|
* Enables selection cleaner element.
|
|
246
287
|
*
|
|
@@ -250,6 +291,15 @@ declare const CMultiSelect: import("vue").DefineComponent<import("vue").ExtractP
|
|
|
250
291
|
type: BooleanConstructor;
|
|
251
292
|
default: boolean;
|
|
252
293
|
};
|
|
294
|
+
/**
|
|
295
|
+
* Appends the dropdown to a specific element. You can pass an HTML element or function that returns a single element.
|
|
296
|
+
*
|
|
297
|
+
* @since 5.7.0
|
|
298
|
+
*/
|
|
299
|
+
container: {
|
|
300
|
+
type: PropType<HTMLElement | (() => HTMLElement) | string>;
|
|
301
|
+
default: string;
|
|
302
|
+
};
|
|
253
303
|
/**
|
|
254
304
|
* Clear current search on selecting an item.
|
|
255
305
|
*
|
|
@@ -365,12 +415,17 @@ declare const CMultiSelect: import("vue").DefineComponent<import("vue").ExtractP
|
|
|
365
415
|
*/
|
|
366
416
|
resetSelectionOnOptionsChange: BooleanConstructor;
|
|
367
417
|
/**
|
|
368
|
-
*
|
|
418
|
+
* The `search` prop determines how the search input element is enabled and behaves. It accepts multiple types to provide flexibility in configuring search behavior:
|
|
419
|
+
*
|
|
420
|
+
* - `true` : Enables the default search input element with standard behavior.
|
|
421
|
+
* - `'external'`: Enables an external search mechanism, possibly integrating with external APIs or services.
|
|
422
|
+
* - `'global'`: When set, the user can perform searches across the entire component, regardless of where their focus is within the component.
|
|
423
|
+
* - `{ external?: boolean; global?: boolean }`: Allows for granular control over the search behavior by specifying individual properties. It is useful when you also want to use external and global search.
|
|
369
424
|
*/
|
|
370
425
|
search: {
|
|
371
|
-
type:
|
|
426
|
+
type: PropType<Search>;
|
|
372
427
|
default: boolean;
|
|
373
|
-
validator: (value: boolean | string) => boolean;
|
|
428
|
+
validator: (value: boolean | object | string) => boolean;
|
|
374
429
|
};
|
|
375
430
|
/**
|
|
376
431
|
* Sets the label for no results when filtering.
|
|
@@ -426,6 +481,15 @@ declare const CMultiSelect: import("vue").DefineComponent<import("vue").ExtractP
|
|
|
426
481
|
type: StringConstructor;
|
|
427
482
|
validator: (value: string) => boolean;
|
|
428
483
|
};
|
|
484
|
+
/**
|
|
485
|
+
* Generates dropdown menu using Teleport.
|
|
486
|
+
*
|
|
487
|
+
* @since 5.7.0
|
|
488
|
+
*/
|
|
489
|
+
teleport: {
|
|
490
|
+
type: BooleanConstructor[];
|
|
491
|
+
default: boolean;
|
|
492
|
+
};
|
|
429
493
|
/**
|
|
430
494
|
* Add helper text to the component.
|
|
431
495
|
*
|
|
@@ -472,12 +536,14 @@ declare const CMultiSelect: import("vue").DefineComponent<import("vue").ExtractP
|
|
|
472
536
|
onShow?: ((...args: any[]) => any) | undefined;
|
|
473
537
|
onFilterChange?: ((...args: any[]) => any) | undefined;
|
|
474
538
|
}>, {
|
|
475
|
-
search:
|
|
539
|
+
search: Search;
|
|
476
540
|
invalid: boolean;
|
|
477
541
|
visible: boolean;
|
|
478
542
|
disabled: boolean;
|
|
479
543
|
required: boolean;
|
|
480
544
|
selectionType: string;
|
|
545
|
+
container: string | HTMLElement | (() => HTMLElement);
|
|
546
|
+
teleport: boolean;
|
|
481
547
|
valid: boolean;
|
|
482
548
|
tooltipFeedback: boolean;
|
|
483
549
|
options: (Option | OptionsGroup)[];
|
|
@@ -494,6 +560,7 @@ declare const CMultiSelect: import("vue").DefineComponent<import("vue").ExtractP
|
|
|
494
560
|
allowCreateOptions: boolean;
|
|
495
561
|
clearSearchOnSelect: boolean;
|
|
496
562
|
resetSelectionOnOptionsChange: boolean;
|
|
563
|
+
ariaCleanerLabel: string;
|
|
497
564
|
selectAll: boolean;
|
|
498
565
|
selectAllLabel: string;
|
|
499
566
|
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
|
|
@@ -1,12 +1,14 @@
|
|
|
1
1
|
'use strict';
|
|
2
2
|
|
|
3
3
|
var vue = require('vue');
|
|
4
|
-
var core = require('@popperjs/core');
|
|
5
4
|
var CFormControlWrapper = require('../form/CFormControlWrapper.js');
|
|
5
|
+
var CConditionalTeleport = require('../conditional-teleport/CConditionalTeleport.js');
|
|
6
6
|
var CMultiSelectNativeSelect = require('./CMultiSelectNativeSelect.js');
|
|
7
7
|
var CMultiSelectOptions = require('./CMultiSelectOptions.js');
|
|
8
8
|
var CMultiSelectSelection = require('./CMultiSelectSelection.js');
|
|
9
|
-
var
|
|
9
|
+
var useDropdownWithPopper = require('../../composables/useDropdownWithPopper.js');
|
|
10
|
+
require('@popperjs/core');
|
|
11
|
+
var getNextActiveElement = require('../../utils/getNextActiveElement.js');
|
|
10
12
|
var utils = require('./utils.js');
|
|
11
13
|
|
|
12
14
|
const CMultiSelect = vue.defineComponent({
|
|
@@ -18,6 +20,15 @@ const CMultiSelect = vue.defineComponent({
|
|
|
18
20
|
* @since 4.9.0
|
|
19
21
|
*/
|
|
20
22
|
allowCreateOptions: Boolean,
|
|
23
|
+
/**
|
|
24
|
+
* A string that provides an accessible label for the cleaner button. This label is read by screen readers to describe the action associated with the button.
|
|
25
|
+
*
|
|
26
|
+
* @since 5.7.0
|
|
27
|
+
*/
|
|
28
|
+
ariaCleanerLabel: {
|
|
29
|
+
type: String,
|
|
30
|
+
default: 'Clear all selections',
|
|
31
|
+
},
|
|
21
32
|
/**
|
|
22
33
|
* Enables selection cleaner element.
|
|
23
34
|
*
|
|
@@ -27,6 +38,15 @@ const CMultiSelect = vue.defineComponent({
|
|
|
27
38
|
type: Boolean,
|
|
28
39
|
default: true,
|
|
29
40
|
},
|
|
41
|
+
/**
|
|
42
|
+
* Appends the dropdown to a specific element. You can pass an HTML element or function that returns a single element.
|
|
43
|
+
*
|
|
44
|
+
* @since 5.7.0
|
|
45
|
+
*/
|
|
46
|
+
container: {
|
|
47
|
+
type: [Object, String],
|
|
48
|
+
default: 'body',
|
|
49
|
+
},
|
|
30
50
|
/**
|
|
31
51
|
* Clear current search on selecting an item.
|
|
32
52
|
*
|
|
@@ -144,18 +164,35 @@ const CMultiSelect = vue.defineComponent({
|
|
|
144
164
|
*/
|
|
145
165
|
resetSelectionOnOptionsChange: Boolean,
|
|
146
166
|
/**
|
|
147
|
-
*
|
|
167
|
+
* The `search` prop determines how the search input element is enabled and behaves. It accepts multiple types to provide flexibility in configuring search behavior:
|
|
168
|
+
*
|
|
169
|
+
* - `true` : Enables the default search input element with standard behavior.
|
|
170
|
+
* - `'external'`: Enables an external search mechanism, possibly integrating with external APIs or services.
|
|
171
|
+
* - `'global'`: When set, the user can perform searches across the entire component, regardless of where their focus is within the component.
|
|
172
|
+
* - `{ external?: boolean; global?: boolean }`: Allows for granular control over the search behavior by specifying individual properties. It is useful when you also want to use external and global search.
|
|
148
173
|
*/
|
|
149
174
|
search: {
|
|
150
|
-
type: [Boolean, String],
|
|
175
|
+
type: [Boolean, String, Object],
|
|
151
176
|
default: true,
|
|
152
177
|
validator: (value) => {
|
|
153
|
-
if (typeof value == 'string') {
|
|
154
|
-
return ['external'].includes(value);
|
|
155
|
-
}
|
|
156
178
|
if (typeof value == 'boolean') {
|
|
157
179
|
return true;
|
|
158
180
|
}
|
|
181
|
+
if (typeof value == 'string') {
|
|
182
|
+
return ['external', 'global'].includes(value);
|
|
183
|
+
}
|
|
184
|
+
if (typeof value === 'object' && value !== null) {
|
|
185
|
+
// Ensure that all keys are either 'external' or 'global'
|
|
186
|
+
const validKeys = ['external', 'global'];
|
|
187
|
+
const keys = Object.keys(value);
|
|
188
|
+
const allKeysValid = keys.every((key) => validKeys.includes(key));
|
|
189
|
+
if (!allKeysValid) {
|
|
190
|
+
return false;
|
|
191
|
+
}
|
|
192
|
+
// Ensure that all values corresponding to the keys are boolean
|
|
193
|
+
const allValuesBoolean = keys.every((key) => typeof value[key] === 'boolean');
|
|
194
|
+
return allValuesBoolean;
|
|
195
|
+
}
|
|
159
196
|
return false;
|
|
160
197
|
},
|
|
161
198
|
},
|
|
@@ -217,6 +254,15 @@ const CMultiSelect = vue.defineComponent({
|
|
|
217
254
|
return ['sm', 'lg'].includes(value);
|
|
218
255
|
},
|
|
219
256
|
},
|
|
257
|
+
/**
|
|
258
|
+
* Generates dropdown menu using Teleport.
|
|
259
|
+
*
|
|
260
|
+
* @since 5.7.0
|
|
261
|
+
*/
|
|
262
|
+
teleport: {
|
|
263
|
+
type: [Boolean],
|
|
264
|
+
default: false,
|
|
265
|
+
},
|
|
220
266
|
/**
|
|
221
267
|
* Add helper text to the component.
|
|
222
268
|
*
|
|
@@ -280,20 +326,16 @@ const CMultiSelect = vue.defineComponent({
|
|
|
280
326
|
],
|
|
281
327
|
setup(props, { attrs, emit, slots }) {
|
|
282
328
|
const multiSelectRef = vue.ref();
|
|
283
|
-
const dropdownRef = vue.ref();
|
|
284
329
|
const nativeSelectRef = vue.ref();
|
|
285
|
-
const togglerRef = vue.ref();
|
|
286
330
|
const searchRef = vue.ref();
|
|
287
|
-
const options = vue.ref(props.options);
|
|
288
|
-
const popper = vue.ref();
|
|
289
331
|
const searchValue = vue.ref('');
|
|
290
332
|
const selected = vue.ref([]);
|
|
291
333
|
const userOptions = vue.ref([]);
|
|
292
|
-
const
|
|
334
|
+
const { dropdownMenuElement, dropdownRefElement, isOpen, closeDropdown, openDropdown, toggleDropdown, updatePopper, } = useDropdownWithPopper.useDropdownWithPopper();
|
|
293
335
|
vue.provide('nativeSelectRef', nativeSelectRef);
|
|
294
|
-
const filteredOptions = vue.computed(() => utils.flattenOptionsArray(props.search
|
|
295
|
-
? [...options
|
|
296
|
-
: utils.filterOptionsList(searchValue.value, [...options
|
|
336
|
+
const filteredOptions = vue.computed(() => utils.flattenOptionsArray(utils.isExternalSearch(props.search)
|
|
337
|
+
? [...props.options, ...utils.filterOptionsList(searchValue.value, userOptions.value)]
|
|
338
|
+
: utils.filterOptionsList(searchValue.value, [...props.options, ...userOptions.value]), true));
|
|
297
339
|
const flattenedOptions = vue.computed(() => utils.flattenOptionsArray(props.options));
|
|
298
340
|
const userOption = vue.computed(() => {
|
|
299
341
|
if (props.allowCreateOptions &&
|
|
@@ -302,37 +344,38 @@ const CMultiSelect = vue.defineComponent({
|
|
|
302
344
|
}
|
|
303
345
|
return searchRef.value && utils.createOption(String(searchValue.value), flattenedOptions.value);
|
|
304
346
|
});
|
|
305
|
-
vue.watch(
|
|
306
|
-
if (
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
if (_selected) {
|
|
315
|
-
selected.value = utils.selectOptions(_selected, selected.value, deselected);
|
|
316
|
-
}
|
|
347
|
+
vue.watch(flattenedOptions, () => {
|
|
348
|
+
if (props.resetSelectionOnOptionsChange) {
|
|
349
|
+
selected.value = [];
|
|
350
|
+
return;
|
|
351
|
+
}
|
|
352
|
+
const _selected = flattenedOptions.value.filter((option) => option.selected === true);
|
|
353
|
+
const deselected = flattenedOptions.value.filter((option) => option.selected === false);
|
|
354
|
+
if (_selected.length > 0) {
|
|
355
|
+
selected.value = utils.selectOptions(props.multiple, _selected, selected.value, deselected);
|
|
317
356
|
}
|
|
318
357
|
}, { immediate: true });
|
|
319
358
|
vue.watch(selected, () => {
|
|
320
|
-
nativeSelectRef.value
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
359
|
+
nativeSelectRef.value?.dispatchEvent(new Event('change', { bubbles: true }));
|
|
360
|
+
updatePopper();
|
|
361
|
+
});
|
|
362
|
+
vue.watch(() => props.visible, (visible) => {
|
|
363
|
+
if (visible) {
|
|
364
|
+
openDropdown();
|
|
365
|
+
}
|
|
366
|
+
else {
|
|
367
|
+
closeDropdown();
|
|
324
368
|
}
|
|
369
|
+
}, {
|
|
370
|
+
immediate: true,
|
|
325
371
|
});
|
|
326
|
-
vue.watch(
|
|
327
|
-
if (
|
|
372
|
+
vue.watch(isOpen, () => {
|
|
373
|
+
if (isOpen.value) {
|
|
328
374
|
emit('show');
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
setTimeout(() => {
|
|
334
|
-
searchRef.value && searchRef.value.focus();
|
|
335
|
-
}, 100);
|
|
375
|
+
if (props.teleport && dropdownMenuElement.value && dropdownRefElement.value) {
|
|
376
|
+
dropdownMenuElement.value.style.minWidth = `${dropdownRefElement.value.offsetWidth}px`;
|
|
377
|
+
}
|
|
378
|
+
searchRef.value?.focus();
|
|
336
379
|
return;
|
|
337
380
|
}
|
|
338
381
|
emit('hide');
|
|
@@ -340,58 +383,26 @@ const CMultiSelect = vue.defineComponent({
|
|
|
340
383
|
if (searchRef.value) {
|
|
341
384
|
searchRef.value.value = '';
|
|
342
385
|
}
|
|
343
|
-
window.removeEventListener('mouseup', handleMouseUp);
|
|
344
|
-
window.removeEventListener('keyup', handleKeyUp);
|
|
345
|
-
destroyPopper();
|
|
346
386
|
});
|
|
347
|
-
vue.onBeforeUnmount(() => {
|
|
348
|
-
window.removeEventListener('mouseup', handleMouseUp);
|
|
349
|
-
window.removeEventListener('keyup', handleKeyUp);
|
|
350
|
-
});
|
|
351
|
-
const initPopper = () => {
|
|
352
|
-
if (togglerRef.value && dropdownRef.value) {
|
|
353
|
-
popper.value = core.createPopper(togglerRef.value, dropdownRef.value, {
|
|
354
|
-
placement: isRTL.default() ? 'bottom-end' : 'bottom-start',
|
|
355
|
-
modifiers: [
|
|
356
|
-
{
|
|
357
|
-
name: 'preventOverflow',
|
|
358
|
-
options: {
|
|
359
|
-
boundary: 'clippingParents',
|
|
360
|
-
},
|
|
361
|
-
},
|
|
362
|
-
{
|
|
363
|
-
name: 'offset',
|
|
364
|
-
options: {
|
|
365
|
-
offset: [0, 2],
|
|
366
|
-
},
|
|
367
|
-
},
|
|
368
|
-
],
|
|
369
|
-
});
|
|
370
|
-
}
|
|
371
|
-
};
|
|
372
|
-
const destroyPopper = () => {
|
|
373
|
-
if (popper.value) {
|
|
374
|
-
popper.value.destroy();
|
|
375
|
-
}
|
|
376
|
-
popper.value = undefined;
|
|
377
|
-
};
|
|
378
|
-
const handleKeyUp = (event) => {
|
|
379
|
-
if (event.key === 'Escape') {
|
|
380
|
-
visible.value = false;
|
|
381
|
-
}
|
|
382
|
-
};
|
|
383
|
-
const handleMouseUp = (event) => {
|
|
384
|
-
if (multiSelectRef.value && multiSelectRef.value.contains(event.target)) {
|
|
385
|
-
return;
|
|
386
|
-
}
|
|
387
|
-
visible.value = false;
|
|
388
|
-
};
|
|
389
387
|
const handleSearchChange = (event) => {
|
|
390
388
|
const target = event.target;
|
|
391
389
|
searchValue.value = target.value.toLowerCase();
|
|
392
390
|
emit('filterChange', target.value);
|
|
393
391
|
};
|
|
394
392
|
const handleSearchKeyDown = (event) => {
|
|
393
|
+
if (!isOpen.value) {
|
|
394
|
+
openDropdown();
|
|
395
|
+
}
|
|
396
|
+
if (event.key === 'ArrowDown' &&
|
|
397
|
+
dropdownMenuElement.value &&
|
|
398
|
+
searchRef.value &&
|
|
399
|
+
searchRef.value.value.length === searchRef.value.selectionStart) {
|
|
400
|
+
event.preventDefault();
|
|
401
|
+
const items = utils.getOptionsList(dropdownMenuElement.value);
|
|
402
|
+
const target = event.target;
|
|
403
|
+
getNextActiveElement.default(items, target, event.key === 'ArrowDown', !items.includes(target)).focus();
|
|
404
|
+
return;
|
|
405
|
+
}
|
|
395
406
|
if (event.key === 'Enter' && searchValue.value && props.allowCreateOptions) {
|
|
396
407
|
event.preventDefault();
|
|
397
408
|
if (!userOption.value) {
|
|
@@ -420,10 +431,30 @@ const CMultiSelect = vue.defineComponent({
|
|
|
420
431
|
}
|
|
421
432
|
}
|
|
422
433
|
};
|
|
423
|
-
const
|
|
434
|
+
const handleTogglerKeyDown = (event) => {
|
|
435
|
+
if (!isOpen.value && (event.key === 'Enter' || event.key === 'ArrowDown')) {
|
|
436
|
+
event.preventDefault();
|
|
437
|
+
openDropdown();
|
|
438
|
+
return;
|
|
439
|
+
}
|
|
440
|
+
if (isOpen && dropdownMenuElement.value && event.key === 'ArrowDown') {
|
|
441
|
+
event.preventDefault();
|
|
442
|
+
const items = utils.getOptionsList(dropdownMenuElement.value);
|
|
443
|
+
const target = event.target;
|
|
444
|
+
getNextActiveElement.default(items, target, event.key === 'ArrowDown', !items.includes(target)).focus();
|
|
445
|
+
}
|
|
446
|
+
};
|
|
447
|
+
const handleGlobalSearch = (event) => {
|
|
448
|
+
if (utils.isGlobalSearch(props.search) &&
|
|
449
|
+
searchRef.value &&
|
|
450
|
+
(event.key.length === 1 || event.key === 'Backspace' || event.key === 'Delete')) {
|
|
451
|
+
searchRef.value.focus();
|
|
452
|
+
}
|
|
453
|
+
};
|
|
454
|
+
const handleOnOptionClick = (option) => {
|
|
424
455
|
if (!props.multiple) {
|
|
425
456
|
selected.value = [option];
|
|
426
|
-
|
|
457
|
+
closeDropdown();
|
|
427
458
|
if (searchRef.value) {
|
|
428
459
|
searchRef.value.value = '';
|
|
429
460
|
}
|
|
@@ -447,7 +478,7 @@ const CMultiSelect = vue.defineComponent({
|
|
|
447
478
|
}
|
|
448
479
|
};
|
|
449
480
|
const handleSelectAll = () => {
|
|
450
|
-
selected.value = utils.selectOptions([
|
|
481
|
+
selected.value = utils.selectOptions(props.multiple, [
|
|
451
482
|
...flattenedOptions.value.filter((option) => !option.disabled),
|
|
452
483
|
...userOptions.value,
|
|
453
484
|
], selected.value);
|
|
@@ -489,35 +520,38 @@ const CMultiSelect = vue.defineComponent({
|
|
|
489
520
|
[`form-multi-select-${props.size}`]: props.size,
|
|
490
521
|
'is-invalid': props.invalid,
|
|
491
522
|
'is-valid': props.valid,
|
|
492
|
-
show:
|
|
523
|
+
show: isOpen.value,
|
|
493
524
|
},
|
|
494
525
|
],
|
|
495
|
-
|
|
526
|
+
onKeydown: handleGlobalSearch,
|
|
527
|
+
'aria-expanded': isOpen.value,
|
|
496
528
|
ref: multiSelectRef,
|
|
497
529
|
}, {
|
|
498
530
|
default: () => [
|
|
499
531
|
vue.h('div', {
|
|
500
532
|
class: 'form-multi-select-input-group',
|
|
533
|
+
...(!props.search && !props.disabled && { tabIndex: 0 }),
|
|
501
534
|
onClick: () => {
|
|
502
535
|
if (!props.disabled) {
|
|
503
|
-
|
|
536
|
+
openDropdown();
|
|
504
537
|
}
|
|
505
538
|
},
|
|
506
|
-
|
|
539
|
+
onKeydown: handleTogglerKeyDown,
|
|
540
|
+
ref: dropdownRefElement,
|
|
507
541
|
}, {
|
|
508
542
|
default: () => [
|
|
509
543
|
vue.h(CMultiSelectSelection.CMultiSelectSelection, {
|
|
510
544
|
disabled: props.disabled,
|
|
511
545
|
multiple: props.multiple,
|
|
512
546
|
placeholder: props.placeholder,
|
|
513
|
-
onRemove: (option) => !props.disabled &&
|
|
547
|
+
onRemove: (option) => !props.disabled && handleOnOptionClick(option),
|
|
514
548
|
search: props.search,
|
|
515
549
|
selected: selected.value,
|
|
516
550
|
selectionType: props.selectionType,
|
|
517
551
|
selectionTypeCounterText: props.selectionTypeCounterText,
|
|
518
552
|
}, {
|
|
519
|
-
default: () => props.search
|
|
520
|
-
vue.h('input', {
|
|
553
|
+
default: () => props.search
|
|
554
|
+
? vue.h('input', {
|
|
521
555
|
type: 'text',
|
|
522
556
|
class: 'form-multi-select-search',
|
|
523
557
|
disabled: props.disabled,
|
|
@@ -541,7 +575,13 @@ const CMultiSelect = vue.defineComponent({
|
|
|
541
575
|
size: searchValue.value.length + 2,
|
|
542
576
|
}),
|
|
543
577
|
ref: searchRef,
|
|
544
|
-
})
|
|
578
|
+
})
|
|
579
|
+
: selected.value.length === 0 &&
|
|
580
|
+
vue.h('span', {
|
|
581
|
+
class: 'form-multi-select-placeholder',
|
|
582
|
+
}, {
|
|
583
|
+
default: () => props.placeholder,
|
|
584
|
+
}),
|
|
545
585
|
}),
|
|
546
586
|
vue.h('div', { class: 'form-multi-select-buttons' }, {
|
|
547
587
|
default: () => [
|
|
@@ -552,6 +592,7 @@ const CMultiSelect = vue.defineComponent({
|
|
|
552
592
|
class: 'form-multi-select-cleaner',
|
|
553
593
|
onClick: () => handleDeselectAll(),
|
|
554
594
|
type: 'button',
|
|
595
|
+
'aria-label': props.ariaCleanerLabel,
|
|
555
596
|
}),
|
|
556
597
|
vue.h('button', {
|
|
557
598
|
class: 'form-multi-select-indicator',
|
|
@@ -559,7 +600,7 @@ const CMultiSelect = vue.defineComponent({
|
|
|
559
600
|
event.preventDefault();
|
|
560
601
|
event.stopPropagation();
|
|
561
602
|
if (!props.disabled) {
|
|
562
|
-
|
|
603
|
+
toggleDropdown();
|
|
563
604
|
}
|
|
564
605
|
},
|
|
565
606
|
type: 'button',
|
|
@@ -569,34 +610,45 @@ const CMultiSelect = vue.defineComponent({
|
|
|
569
610
|
}),
|
|
570
611
|
],
|
|
571
612
|
}),
|
|
572
|
-
vue.h(
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
ref: dropdownRef,
|
|
613
|
+
vue.h(CConditionalTeleport.CConditionalTeleport, {
|
|
614
|
+
container: props.container,
|
|
615
|
+
teleport: props.teleport,
|
|
576
616
|
}, {
|
|
577
|
-
default: () =>
|
|
578
|
-
|
|
579
|
-
|
|
580
|
-
|
|
581
|
-
|
|
582
|
-
|
|
583
|
-
|
|
584
|
-
|
|
585
|
-
|
|
586
|
-
|
|
587
|
-
|
|
588
|
-
|
|
589
|
-
|
|
590
|
-
|
|
591
|
-
|
|
592
|
-
|
|
593
|
-
|
|
594
|
-
|
|
595
|
-
|
|
596
|
-
|
|
597
|
-
|
|
598
|
-
|
|
599
|
-
|
|
617
|
+
default: () => vue.h('div', {
|
|
618
|
+
class: [
|
|
619
|
+
'form-multi-select-dropdown',
|
|
620
|
+
{
|
|
621
|
+
show: props.teleport && isOpen.value,
|
|
622
|
+
},
|
|
623
|
+
],
|
|
624
|
+
onKeydown: handleGlobalSearch,
|
|
625
|
+
role: 'menu',
|
|
626
|
+
ref: dropdownMenuElement,
|
|
627
|
+
}, {
|
|
628
|
+
default: () => [
|
|
629
|
+
props.multiple &&
|
|
630
|
+
props.selectAll &&
|
|
631
|
+
vue.h('button', {
|
|
632
|
+
class: 'form-multi-select-all',
|
|
633
|
+
onClick: () => handleSelectAll(),
|
|
634
|
+
type: 'button',
|
|
635
|
+
}, props.selectAllLabel),
|
|
636
|
+
vue.h(CMultiSelectOptions.CMultiSelectOptions, {
|
|
637
|
+
loading: props.loading,
|
|
638
|
+
onOptionClick: (option) => handleOnOptionClick(option),
|
|
639
|
+
options: filteredOptions.value.length === 0 && props.allowCreateOptions
|
|
640
|
+
? userOption.value || []
|
|
641
|
+
: filteredOptions.value,
|
|
642
|
+
optionsMaxHeight: props.optionsMaxHeight,
|
|
643
|
+
optionsStyle: props.optionsStyle,
|
|
644
|
+
scopedSlots: slots,
|
|
645
|
+
searchNoResultsLabel: props.searchNoResultsLabel,
|
|
646
|
+
selected: selected.value,
|
|
647
|
+
virtualScroller: props.virtualScroller,
|
|
648
|
+
visibleItems: props.visibleItems,
|
|
649
|
+
}),
|
|
650
|
+
],
|
|
651
|
+
}),
|
|
600
652
|
}),
|
|
601
653
|
],
|
|
602
654
|
}),
|