@coreui/vue-pro 5.17.1 → 5.19.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/autocomplete/CAutocomplete.js +43 -17
- package/dist/cjs/components/autocomplete/CAutocomplete.js.map +1 -1
- package/dist/cjs/components/autocomplete/CAutocompleteOptions.js +1 -1
- package/dist/cjs/components/autocomplete/CAutocompleteOptions.js.map +1 -1
- package/dist/cjs/components/autocomplete/utils.d.ts +1 -1
- package/dist/cjs/components/autocomplete/utils.js.map +1 -1
- package/dist/cjs/components/calendar/CCalendar.d.ts +50 -4
- package/dist/cjs/components/calendar/CCalendar.js +146 -40
- package/dist/cjs/components/calendar/CCalendar.js.map +1 -1
- package/dist/cjs/components/calendar/types.d.ts +2 -2
- package/dist/cjs/components/calendar/utils.d.ts +29 -4
- package/dist/cjs/components/calendar/utils.js +120 -6
- package/dist/cjs/components/calendar/utils.js.map +1 -1
- package/dist/cjs/components/carousel/CCarousel.d.ts +24 -2
- package/dist/cjs/components/carousel/CCarousel.js +51 -14
- package/dist/cjs/components/carousel/CCarousel.js.map +1 -1
- package/dist/cjs/components/carousel/CCarouselItem.js +3 -3
- package/dist/cjs/components/carousel/CCarouselItem.js.map +1 -1
- package/dist/cjs/components/chip/CChip.d.ts +253 -0
- package/dist/cjs/components/chip/CChip.js +314 -0
- package/dist/cjs/components/chip/CChip.js.map +1 -0
- package/dist/cjs/components/chip/const.d.ts +1 -0
- package/dist/cjs/components/chip/const.js +8 -0
- package/dist/cjs/components/chip/const.js.map +1 -0
- package/dist/cjs/components/chip/index.d.ts +6 -0
- package/dist/cjs/components/chip/index.js +13 -0
- package/dist/cjs/components/chip/index.js.map +1 -0
- package/dist/cjs/components/chip-input/CChipInput.d.ts +233 -0
- package/dist/cjs/components/chip-input/CChipInput.js +424 -0
- package/dist/cjs/components/chip-input/CChipInput.js.map +1 -0
- package/dist/cjs/components/chip-input/index.d.ts +6 -0
- package/dist/cjs/components/chip-input/index.js +13 -0
- package/dist/cjs/components/chip-input/index.js.map +1 -0
- package/dist/cjs/components/chip-set/CChipSet.d.ts +145 -0
- package/dist/cjs/components/chip-set/CChipSet.js +127 -0
- package/dist/cjs/components/chip-set/CChipSet.js.map +1 -0
- package/dist/cjs/components/chip-set/buildChips.d.ts +13 -0
- package/dist/cjs/components/chip-set/buildChips.js +19 -0
- package/dist/cjs/components/chip-set/buildChips.js.map +1 -0
- package/dist/cjs/components/chip-set/index.d.ts +2 -0
- package/dist/cjs/components/chip-set/useChipSet.d.ts +42 -0
- package/dist/cjs/components/chip-set/useChipSet.js +115 -0
- package/dist/cjs/components/chip-set/useChipSet.js.map +1 -0
- package/dist/cjs/components/collapse/CCollapse.js +2 -2
- package/dist/cjs/components/collapse/CCollapse.js.map +1 -1
- package/dist/cjs/components/date-picker/CDatePicker.d.ts +51 -5
- package/dist/cjs/components/date-picker/CDatePicker.js +54 -3
- package/dist/cjs/components/date-picker/CDatePicker.js.map +1 -1
- package/dist/cjs/components/date-range-picker/CDateRangePicker.d.ts +52 -6
- package/dist/cjs/components/date-range-picker/CDateRangePicker.js +46 -6
- package/dist/cjs/components/date-range-picker/CDateRangePicker.js.map +1 -1
- package/dist/cjs/components/dropdown/CDropdown.d.ts +24 -1
- package/dist/cjs/components/dropdown/CDropdown.js +35 -18
- package/dist/cjs/components/dropdown/CDropdown.js.map +1 -1
- package/dist/cjs/components/dropdown/CDropdownToggle.js +1 -1
- package/dist/cjs/components/dropdown/CDropdownToggle.js.map +1 -1
- package/dist/cjs/components/focus-trap/CFocusTrap.js +4 -1
- package/dist/cjs/components/focus-trap/CFocusTrap.js.map +1 -1
- package/dist/cjs/components/form/CFormInput.d.ts +3 -0
- package/dist/cjs/components/form/CFormRange.d.ts +2 -2
- package/dist/cjs/components/form/CFormRange.js +2 -2
- package/dist/cjs/components/form/CFormRange.js.map +1 -1
- package/dist/cjs/components/grid/CContainer.js +3 -1
- package/dist/cjs/components/grid/CContainer.js.map +1 -1
- package/dist/cjs/components/index.d.ts +4 -0
- package/dist/cjs/components/index.js +140 -126
- package/dist/cjs/components/index.js.map +1 -1
- package/dist/cjs/components/modal/CModal.js +3 -2
- package/dist/cjs/components/modal/CModal.js.map +1 -1
- package/dist/cjs/components/modal/CModalHeader.js +6 -3
- package/dist/cjs/components/modal/CModalHeader.js.map +1 -1
- package/dist/cjs/components/multi-select/CMultiSelect.d.ts +206 -3
- package/dist/cjs/components/multi-select/CMultiSelect.js +307 -30
- package/dist/cjs/components/multi-select/CMultiSelect.js.map +1 -1
- package/dist/cjs/components/multi-select/CMultiSelectNativeSelect.js +1 -2
- package/dist/cjs/components/multi-select/CMultiSelectNativeSelect.js.map +1 -1
- package/dist/cjs/components/multi-select/CMultiSelectOptions.d.ts +16 -1
- package/dist/cjs/components/multi-select/CMultiSelectOptions.js +60 -4
- package/dist/cjs/components/multi-select/CMultiSelectOptions.js.map +1 -1
- package/dist/cjs/components/multi-select/CMultiSelectSelection.d.ts +9 -0
- package/dist/cjs/components/multi-select/CMultiSelectSelection.js +6 -1
- package/dist/cjs/components/multi-select/CMultiSelectSelection.js.map +1 -1
- package/dist/cjs/components/multi-select/utils.js +1 -4
- package/dist/cjs/components/multi-select/utils.js.map +1 -1
- package/dist/cjs/components/nav/CNav.js +8 -1
- package/dist/cjs/components/nav/CNav.js.map +1 -1
- package/dist/cjs/components/nav/CNavGroup.d.ts +15 -7
- package/dist/cjs/components/nav/CNavGroup.js +113 -88
- package/dist/cjs/components/nav/CNavGroup.js.map +1 -1
- package/dist/cjs/components/nav/CNavLink.js +11 -0
- package/dist/cjs/components/nav/CNavLink.js.map +1 -1
- package/dist/cjs/components/popover/CPopover.d.ts +24 -1
- package/dist/cjs/components/popover/CPopover.js +18 -1
- package/dist/cjs/components/popover/CPopover.js.map +1 -1
- package/dist/cjs/components/range-slider/CRangeSlider.d.ts +1 -1
- package/dist/cjs/components/search-button/CSearchButton.d.ts +63 -0
- package/dist/cjs/components/search-button/CSearchButton.js +125 -0
- package/dist/cjs/components/search-button/CSearchButton.js.map +1 -0
- package/dist/cjs/components/search-button/index.d.ts +6 -0
- package/dist/cjs/components/search-button/index.js +13 -0
- package/dist/cjs/components/search-button/index.js.map +1 -0
- package/dist/cjs/components/search-button/types.d.ts +10 -0
- package/dist/cjs/components/search-button/utils.d.ts +11 -0
- package/dist/cjs/components/search-button/utils.js +114 -0
- package/dist/cjs/components/search-button/utils.js.map +1 -0
- package/dist/cjs/components/sidebar/CSidebar.js +4 -3
- package/dist/cjs/components/sidebar/CSidebar.js.map +1 -1
- package/dist/cjs/components/sidebar/CSidebarNav.d.ts +32 -0
- package/dist/cjs/components/sidebar/CSidebarNav.js +28 -24
- package/dist/cjs/components/sidebar/CSidebarNav.js.map +1 -1
- package/dist/cjs/components/smart-table/CSmartTable.d.ts +1 -1
- package/dist/cjs/components/smart-table/CSmartTableBody.d.ts +1 -1
- package/dist/cjs/components/smart-table/CSmartTableHead.d.ts +1 -1
- package/dist/cjs/components/spinner/CSpinner.d.ts +4 -4
- package/dist/cjs/components/spinner/CSpinner.js +2 -2
- package/dist/cjs/components/spinner/CSpinner.js.map +1 -1
- package/dist/cjs/components/table/utils.js +4 -4
- package/dist/cjs/components/table/utils.js.map +1 -1
- package/dist/cjs/components/tabs/CTabList.js +8 -2
- package/dist/cjs/components/tabs/CTabList.js.map +1 -1
- package/dist/cjs/components/tabs/CTabs.js +1 -1
- package/dist/cjs/components/tabs/CTabs.js.map +1 -1
- package/dist/cjs/components/toast/CToast.js +12 -2
- package/dist/cjs/components/toast/CToast.js.map +1 -1
- package/dist/cjs/components/toast/CToastClose.d.ts +3 -2
- package/dist/cjs/components/toast/CToastClose.js +2 -3
- package/dist/cjs/components/toast/CToastClose.js.map +1 -1
- package/dist/cjs/components/tooltip/CTooltip.d.ts +24 -1
- package/dist/cjs/components/tooltip/CTooltip.js +18 -1
- package/dist/cjs/components/tooltip/CTooltip.js.map +1 -1
- package/dist/cjs/directives/v-c-popover.js +6 -3
- package/dist/cjs/directives/v-c-popover.js.map +1 -1
- package/dist/cjs/directives/v-c-tooltip.js +6 -3
- package/dist/cjs/directives/v-c-tooltip.js.map +1 -1
- package/dist/cjs/directives/v-c-visible.js +1 -1
- package/dist/cjs/directives/v-c-visible.js.map +1 -1
- package/dist/cjs/index.js +158 -144
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/node_modules/@coreui/icons/dist/esm/free/cil-arrow-bottom.js +1 -1
- package/dist/cjs/node_modules/@coreui/icons/dist/esm/free/cil-arrow-bottom.js.map +1 -1
- package/dist/cjs/node_modules/@coreui/icons/dist/esm/free/cil-arrow-top.js +1 -1
- package/dist/cjs/node_modules/@coreui/icons/dist/esm/free/cil-arrow-top.js.map +1 -1
- package/dist/cjs/node_modules/@coreui/icons/dist/esm/free/cil-filter-x.js +1 -1
- package/dist/cjs/node_modules/@coreui/icons/dist/esm/free/cil-filter-x.js.map +1 -1
- package/dist/cjs/node_modules/@coreui/icons/dist/esm/free/cil-swap-vertical.js +1 -1
- package/dist/cjs/node_modules/@coreui/icons/dist/esm/free/cil-swap-vertical.js.map +1 -1
- package/dist/cjs/utils/index.d.ts +2 -1
- package/dist/cjs/utils/swipe.d.ts +26 -0
- package/dist/cjs/utils/swipe.js +94 -0
- package/dist/cjs/utils/swipe.js.map +1 -0
- package/dist/cjs/utils/transition.js.map +1 -1
- package/dist/esm/components/autocomplete/CAutocomplete.js +45 -19
- package/dist/esm/components/autocomplete/CAutocomplete.js.map +1 -1
- package/dist/esm/components/autocomplete/CAutocompleteOptions.js +2 -2
- package/dist/esm/components/autocomplete/utils.d.ts +1 -1
- package/dist/esm/components/autocomplete/utils.js.map +1 -1
- package/dist/esm/components/calendar/CCalendar.d.ts +50 -4
- package/dist/esm/components/calendar/CCalendar.js +147 -41
- package/dist/esm/components/calendar/CCalendar.js.map +1 -1
- package/dist/esm/components/calendar/types.d.ts +2 -2
- package/dist/esm/components/calendar/utils.d.ts +29 -4
- package/dist/esm/components/calendar/utils.js +118 -7
- package/dist/esm/components/calendar/utils.js.map +1 -1
- package/dist/esm/components/carousel/CCarousel.d.ts +24 -2
- package/dist/esm/components/carousel/CCarousel.js +52 -15
- package/dist/esm/components/carousel/CCarousel.js.map +1 -1
- package/dist/esm/components/carousel/CCarouselItem.js +3 -3
- package/dist/esm/components/carousel/CCarouselItem.js.map +1 -1
- package/dist/esm/components/chip/CChip.d.ts +253 -0
- package/dist/esm/components/chip/CChip.js +312 -0
- package/dist/esm/components/chip/CChip.js.map +1 -0
- package/dist/esm/components/chip/const.d.ts +1 -0
- package/dist/esm/components/chip/const.js +6 -0
- package/dist/esm/components/chip/const.js.map +1 -0
- package/dist/esm/components/chip/index.d.ts +6 -0
- package/dist/esm/components/chip/index.js +10 -0
- package/dist/esm/components/chip/index.js.map +1 -0
- package/dist/esm/components/chip-input/CChipInput.d.ts +233 -0
- package/dist/esm/components/chip-input/CChipInput.js +422 -0
- package/dist/esm/components/chip-input/CChipInput.js.map +1 -0
- package/dist/esm/components/chip-input/index.d.ts +6 -0
- package/dist/esm/components/chip-input/index.js +10 -0
- package/dist/esm/components/chip-input/index.js.map +1 -0
- package/dist/esm/components/chip-set/CChipSet.d.ts +145 -0
- package/dist/esm/components/chip-set/CChipSet.js +125 -0
- package/dist/esm/components/chip-set/CChipSet.js.map +1 -0
- package/dist/esm/components/chip-set/buildChips.d.ts +13 -0
- package/dist/esm/components/chip-set/buildChips.js +17 -0
- package/dist/esm/components/chip-set/buildChips.js.map +1 -0
- package/dist/esm/components/chip-set/index.d.ts +2 -0
- package/dist/esm/components/chip-set/useChipSet.d.ts +42 -0
- package/dist/esm/components/chip-set/useChipSet.js +112 -0
- package/dist/esm/components/chip-set/useChipSet.js.map +1 -0
- package/dist/esm/components/collapse/CCollapse.js +2 -2
- package/dist/esm/components/collapse/CCollapse.js.map +1 -1
- package/dist/esm/components/date-picker/CDatePicker.d.ts +51 -5
- package/dist/esm/components/date-picker/CDatePicker.js +54 -3
- package/dist/esm/components/date-picker/CDatePicker.js.map +1 -1
- package/dist/esm/components/date-range-picker/CDateRangePicker.d.ts +52 -6
- package/dist/esm/components/date-range-picker/CDateRangePicker.js +46 -6
- package/dist/esm/components/date-range-picker/CDateRangePicker.js.map +1 -1
- package/dist/esm/components/dropdown/CDropdown.d.ts +24 -1
- package/dist/esm/components/dropdown/CDropdown.js +35 -18
- package/dist/esm/components/dropdown/CDropdown.js.map +1 -1
- package/dist/esm/components/dropdown/CDropdownToggle.js +2 -2
- package/dist/esm/components/dropdown/CDropdownToggle.js.map +1 -1
- package/dist/esm/components/focus-trap/CFocusTrap.js +4 -1
- package/dist/esm/components/focus-trap/CFocusTrap.js.map +1 -1
- package/dist/esm/components/form/CFormInput.d.ts +3 -0
- package/dist/esm/components/form/CFormRange.d.ts +2 -2
- package/dist/esm/components/form/CFormRange.js +2 -2
- package/dist/esm/components/form/CFormRange.js.map +1 -1
- package/dist/esm/components/grid/CContainer.js +3 -1
- package/dist/esm/components/grid/CContainer.js.map +1 -1
- package/dist/esm/components/index.d.ts +4 -0
- package/dist/esm/components/index.js +23 -16
- package/dist/esm/components/index.js.map +1 -1
- package/dist/esm/components/modal/CModal.js +3 -2
- package/dist/esm/components/modal/CModal.js.map +1 -1
- package/dist/esm/components/modal/CModalHeader.js +6 -3
- package/dist/esm/components/modal/CModalHeader.js.map +1 -1
- package/dist/esm/components/multi-select/CMultiSelect.d.ts +206 -3
- package/dist/esm/components/multi-select/CMultiSelect.js +308 -31
- package/dist/esm/components/multi-select/CMultiSelect.js.map +1 -1
- package/dist/esm/components/multi-select/CMultiSelectNativeSelect.js +1 -2
- package/dist/esm/components/multi-select/CMultiSelectNativeSelect.js.map +1 -1
- package/dist/esm/components/multi-select/CMultiSelectOptions.d.ts +16 -1
- package/dist/esm/components/multi-select/CMultiSelectOptions.js +60 -4
- package/dist/esm/components/multi-select/CMultiSelectOptions.js.map +1 -1
- package/dist/esm/components/multi-select/CMultiSelectSelection.d.ts +9 -0
- package/dist/esm/components/multi-select/CMultiSelectSelection.js +6 -1
- package/dist/esm/components/multi-select/CMultiSelectSelection.js.map +1 -1
- package/dist/esm/components/multi-select/utils.js +1 -4
- package/dist/esm/components/multi-select/utils.js.map +1 -1
- package/dist/esm/components/nav/CNav.js +8 -1
- package/dist/esm/components/nav/CNav.js.map +1 -1
- package/dist/esm/components/nav/CNavGroup.d.ts +15 -7
- package/dist/esm/components/nav/CNavGroup.js +114 -89
- package/dist/esm/components/nav/CNavGroup.js.map +1 -1
- package/dist/esm/components/nav/CNavLink.js +12 -1
- package/dist/esm/components/nav/CNavLink.js.map +1 -1
- package/dist/esm/components/popover/CPopover.d.ts +24 -1
- package/dist/esm/components/popover/CPopover.js +18 -1
- package/dist/esm/components/popover/CPopover.js.map +1 -1
- package/dist/esm/components/range-slider/CRangeSlider.d.ts +1 -1
- package/dist/esm/components/search-button/CSearchButton.d.ts +63 -0
- package/dist/esm/components/search-button/CSearchButton.js +123 -0
- package/dist/esm/components/search-button/CSearchButton.js.map +1 -0
- package/dist/esm/components/search-button/index.d.ts +6 -0
- package/dist/esm/components/search-button/index.js +10 -0
- package/dist/esm/components/search-button/index.js.map +1 -0
- package/dist/esm/components/search-button/types.d.ts +10 -0
- package/dist/esm/components/search-button/utils.d.ts +11 -0
- package/dist/esm/components/search-button/utils.js +103 -0
- package/dist/esm/components/search-button/utils.js.map +1 -0
- package/dist/esm/components/sidebar/CSidebar.js +4 -3
- package/dist/esm/components/sidebar/CSidebar.js.map +1 -1
- package/dist/esm/components/sidebar/CSidebarNav.d.ts +32 -0
- package/dist/esm/components/sidebar/CSidebarNav.js +29 -25
- package/dist/esm/components/sidebar/CSidebarNav.js.map +1 -1
- package/dist/esm/components/smart-table/CSmartTable.d.ts +1 -1
- package/dist/esm/components/smart-table/CSmartTableBody.d.ts +1 -1
- package/dist/esm/components/smart-table/CSmartTableHead.d.ts +1 -1
- package/dist/esm/components/smart-table/CSmartTableHead.js +1 -1
- package/dist/esm/components/spinner/CSpinner.d.ts +4 -4
- package/dist/esm/components/spinner/CSpinner.js +2 -2
- package/dist/esm/components/spinner/CSpinner.js.map +1 -1
- package/dist/esm/components/table/utils.js +4 -4
- package/dist/esm/components/table/utils.js.map +1 -1
- package/dist/esm/components/tabs/CTabList.js +8 -2
- package/dist/esm/components/tabs/CTabList.js.map +1 -1
- package/dist/esm/components/tabs/CTabs.js +1 -1
- package/dist/esm/components/tabs/CTabs.js.map +1 -1
- package/dist/esm/components/time-picker/CTimePicker.js +1 -1
- package/dist/esm/components/toast/CToast.js +12 -2
- package/dist/esm/components/toast/CToast.js.map +1 -1
- package/dist/esm/components/toast/CToastClose.d.ts +3 -2
- package/dist/esm/components/toast/CToastClose.js +2 -3
- package/dist/esm/components/toast/CToastClose.js.map +1 -1
- package/dist/esm/components/tooltip/CTooltip.d.ts +24 -1
- package/dist/esm/components/tooltip/CTooltip.js +18 -1
- package/dist/esm/components/tooltip/CTooltip.js.map +1 -1
- package/dist/esm/directives/v-c-popover.js +6 -3
- package/dist/esm/directives/v-c-popover.js.map +1 -1
- package/dist/esm/directives/v-c-tooltip.js +6 -3
- package/dist/esm/directives/v-c-tooltip.js.map +1 -1
- package/dist/esm/directives/v-c-visible.js +1 -1
- package/dist/esm/directives/v-c-visible.js.map +1 -1
- package/dist/esm/index.js +67 -60
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/node_modules/@coreui/icons/dist/esm/free/cil-arrow-bottom.js +1 -1
- package/dist/esm/node_modules/@coreui/icons/dist/esm/free/cil-arrow-bottom.js.map +1 -1
- package/dist/esm/node_modules/@coreui/icons/dist/esm/free/cil-arrow-top.js +1 -1
- package/dist/esm/node_modules/@coreui/icons/dist/esm/free/cil-arrow-top.js.map +1 -1
- package/dist/esm/node_modules/@coreui/icons/dist/esm/free/cil-filter-x.js +1 -1
- package/dist/esm/node_modules/@coreui/icons/dist/esm/free/cil-filter-x.js.map +1 -1
- package/dist/esm/node_modules/@coreui/icons/dist/esm/free/cil-swap-vertical.js +1 -1
- package/dist/esm/node_modules/@coreui/icons/dist/esm/free/cil-swap-vertical.js.map +1 -1
- package/dist/esm/utils/index.d.ts +2 -1
- package/dist/esm/utils/swipe.d.ts +26 -0
- package/dist/esm/utils/swipe.js +90 -0
- package/dist/esm/utils/swipe.js.map +1 -0
- package/dist/esm/utils/transition.js.map +1 -1
- package/package.json +9 -9
- package/src/components/accordion/CAccordion.ts +2 -2
- package/src/components/accordion/CAccordionBody.ts +1 -1
- package/src/components/accordion/CAccordionButton.ts +1 -1
- package/src/components/accordion/CAccordionHeader.ts +2 -2
- package/src/components/accordion/__tests__/__snapshots__/CAccordionButton.spec.ts.snap +1 -1
- package/src/components/accordion/__tests__/__snapshots__/CAccordionHeader.spec.ts.snap +1 -1
- package/src/components/alert/CAlert.ts +3 -3
- package/src/components/alert/CAlertHeading.ts +1 -1
- package/src/components/alert/CAlertLink.ts +1 -1
- package/src/components/autocomplete/CAutocomplete.ts +71 -34
- package/src/components/autocomplete/__tests__/CAutocomplete.spec.ts +48 -2
- package/src/components/autocomplete/__tests__/CAutocompleteOptions.spec.ts +8 -5
- package/src/components/autocomplete/utils.ts +2 -2
- package/src/components/avatar/CAvatar.ts +1 -1
- package/src/components/backdrop/CBackdrop.ts +1 -1
- package/src/components/badge/CBadge.ts +1 -1
- package/src/components/breadcrumb/CBreadcrumb.ts +1 -1
- package/src/components/breadcrumb/CBreadcrumbItem.ts +1 -1
- package/src/components/button/CButton.ts +1 -1
- package/src/components/button/__tests__/CButton.spec.ts +0 -1
- package/src/components/button/__tests__/__snapshots__/CButton.spec.ts.snap +1 -1
- package/src/components/button-group/CButtonGroup.ts +1 -1
- package/src/components/calendar/CCalendar.ts +170 -37
- package/src/components/calendar/types.ts +2 -2
- package/src/components/calendar/utils.ts +150 -7
- package/src/components/callout/CCallout.ts +1 -1
- package/src/components/card/CCard.ts +1 -1
- package/src/components/card/CCardImage.ts +1 -1
- package/src/components/card/CCardLink.ts +1 -1
- package/src/components/carousel/CCarousel.ts +61 -22
- package/src/components/carousel/CCarouselCaption.ts +1 -1
- package/src/components/carousel/CCarouselItem.ts +5 -4
- package/src/components/carousel/__tests__/CCarousel.spec.ts +1 -1
- package/src/components/chip/CChip.ts +361 -0
- package/src/components/chip/__tests__/CChip.spec.ts +391 -0
- package/src/components/chip/__tests__/__snapshots__/CChip.spec.ts.snap +5 -0
- package/src/components/chip/const.ts +3 -0
- package/src/components/chip/index.ts +10 -0
- package/src/components/chip-input/CChipInput.ts +503 -0
- package/src/components/chip-input/__tests__/CChipInput.spec.ts +443 -0
- package/src/components/chip-input/__tests__/__snapshots__/CChipInput.spec.ts.snap +3 -0
- package/src/components/chip-input/index.ts +10 -0
- package/src/components/chip-set/CChipSet.ts +140 -0
- package/src/components/chip-set/__tests__/CChipSet.spec.ts +174 -0
- package/src/components/chip-set/buildChips.ts +29 -0
- package/src/components/chip-set/index.ts +3 -0
- package/src/components/chip-set/useChipSet.ts +168 -0
- package/src/components/collapse/CCollapse.ts +5 -5
- package/src/components/collapse/__tests__/CCollapse.spec.ts +48 -0
- package/src/components/collapse/__tests__/__snapshots__/CCollapse.spec.ts.snap +7 -0
- package/src/components/conditional-teleport/CConditionalTeleport.ts +3 -3
- package/src/components/conditional-teleport/__tests__/CConditionalTeleport.spec.ts +28 -0
- package/src/components/date-picker/CDatePicker.ts +73 -13
- package/src/components/date-range-picker/CDateRangePicker.ts +53 -7
- package/src/components/dropdown/CDropdown.ts +44 -24
- package/src/components/dropdown/CDropdownHeader.ts +1 -1
- package/src/components/dropdown/CDropdownItem.ts +1 -1
- package/src/components/dropdown/CDropdownMenu.ts +2 -2
- package/src/components/dropdown/CDropdownToggle.ts +4 -4
- package/src/components/dropdown/__tests__/CDropdown.spec.ts +1 -1
- package/src/components/dropdown/__tests__/CDropdownMenu.spec.ts +11 -7
- package/src/components/dropdown/__tests__/CDropdownPopperConfig.spec.ts +63 -0
- package/src/components/dropdown/__tests__/CDropdownToggle.spec.ts +0 -2
- package/src/components/dropdown/__tests__/__snapshots__/CDropdown.spec.ts.snap +1 -1
- package/src/components/dropdown/__tests__/__snapshots__/CDropdownMenu.spec.ts.snap +4 -0
- package/src/components/dropdown/utils.ts +2 -2
- package/src/components/focus-trap/CFocusTrap.ts +9 -6
- package/src/components/focus-trap/__tests__/CFocusTrap.spec.ts +42 -0
- package/src/components/footer/CFooter.ts +1 -1
- package/src/components/footer/__tests__/__snapshots__/CFooter.spec.ts.snap +2 -0
- package/src/components/form/CForm.ts +1 -1
- package/src/components/form/CFormCheck.ts +5 -5
- package/src/components/form/CFormControlValidation.ts +3 -3
- package/src/components/form/CFormFeedback.ts +1 -1
- package/src/components/form/CFormFloating.ts +1 -1
- package/src/components/form/CFormInput.ts +2 -2
- package/src/components/form/CFormLabel.ts +1 -1
- package/src/components/form/CFormRange.ts +4 -4
- package/src/components/form/CFormSelect.ts +3 -3
- package/src/components/form/CFormSwitch.ts +2 -2
- package/src/components/form/CFormTextarea.ts +2 -2
- package/src/components/form/CInputGroup.ts +1 -1
- package/src/components/form/__tests__/CFormRange.spec.ts +2 -2
- package/src/components/form/__tests__/CFormText.spec.ts +1 -1
- package/src/components/form/__tests__/__snapshots__/CFormRange.spec.ts.snap +1 -1
- package/src/components/grid/CCol.ts +1 -1
- package/src/components/grid/CContainer.ts +4 -2
- package/src/components/grid/CRow.ts +1 -1
- package/src/components/header/CHeader.ts +2 -2
- package/src/components/header/CHeaderNav.ts +1 -1
- package/src/components/header/CHeaderToggler.ts +1 -1
- package/src/components/header/__tests__/CHeader.spec.ts +1 -2
- package/src/components/header/__tests__/__snapshots__/CHeader.spec.ts.snap +2 -0
- package/src/components/index.ts +4 -0
- package/src/components/link/CLink.ts +1 -1
- package/src/components/list-group/CListGroup.ts +1 -1
- package/src/components/list-group/CListGroupItem.ts +1 -1
- package/src/components/modal/CModal.ts +3 -2
- package/src/components/modal/CModalHeader.ts +10 -3
- package/src/components/modal/__tests__/__snapshots__/CModal.spec.ts.snap +9 -4
- package/src/components/multi-select/CMultiSelect.ts +385 -43
- package/src/components/multi-select/CMultiSelectNativeSelect.ts +1 -2
- package/src/components/multi-select/CMultiSelectOptions.ts +77 -3
- package/src/components/multi-select/CMultiSelectSelection.ts +6 -1
- package/src/components/multi-select/utils.ts +6 -6
- package/src/components/nav/CNav.ts +9 -2
- package/src/components/nav/CNavGroup.ts +147 -99
- package/src/components/nav/CNavItem.ts +2 -2
- package/src/components/nav/CNavLink.ts +19 -2
- package/src/components/nav/__tests__/CNavGroup.spec.ts +188 -6
- package/src/components/nav/__tests__/CNavItem.spec.ts +6 -6
- package/src/components/nav/__tests__/__snapshots__/CNavGroup.spec.ts.snap +3 -7
- package/src/components/nav/__tests__/__snapshots__/CNavItem.spec.ts.snap +1 -5
- package/src/components/navbar/CNavbar.ts +2 -2
- package/src/components/navbar/CNavbarBrand.ts +1 -1
- package/src/components/navbar/CNavbarNav.ts +1 -1
- package/src/components/navbar/CNavbarToggler.ts +1 -1
- package/src/components/navbar/__tests__/CNavbar.spec.ts +1 -1
- package/src/components/pagination/CPagination.ts +2 -2
- package/src/components/pagination/CPaginationItem.ts +2 -2
- package/src/components/placeholder/CPlaceholder.ts +1 -1
- package/src/components/popover/CPopover.ts +27 -7
- package/src/components/popover/__tests__/CPopover.spec.ts +43 -0
- package/src/components/progress/CProgress.ts +2 -2
- package/src/components/progress/CProgressBar.ts +1 -1
- package/src/components/progress/CProgressStacked.ts +1 -1
- package/src/components/progress/__tests__/CProgressBar.spec.ts +0 -4
- package/src/components/search-button/CSearchButton.ts +163 -0
- package/src/components/search-button/__tests__/CSearchButton.spec.ts +128 -0
- package/src/components/search-button/__tests__/__snapshots__/CSearchButton.spec.ts.snap +13 -0
- package/src/components/search-button/index.ts +10 -0
- package/src/components/search-button/types.ts +10 -0
- package/src/components/search-button/utils.ts +140 -0
- package/src/components/sidebar/CSidebar.ts +9 -6
- package/src/components/sidebar/CSidebarBrand.ts +1 -1
- package/src/components/sidebar/CSidebarNav.ts +30 -28
- package/src/components/sidebar/__tests__/CSidebar.spec.ts +1 -1
- package/src/components/spinner/CSpinner.ts +6 -6
- package/src/components/spinner/__tests__/CSpinner.spec.ts +0 -1
- package/src/components/stepper/__tests__/CStepper.spec.ts +13 -8
- package/src/components/table/CTable.ts +16 -16
- package/src/components/table/CTableBody.ts +1 -1
- package/src/components/table/CTableDataCell.ts +1 -1
- package/src/components/table/CTableFoot.ts +1 -1
- package/src/components/table/CTableHead.ts +1 -1
- package/src/components/table/CTableHeaderCell.ts +1 -1
- package/src/components/table/CTableRow.ts +1 -1
- package/src/components/table/types.ts +1 -0
- package/src/components/table/utils.ts +4 -4
- package/src/components/tabs/CTab.ts +1 -1
- package/src/components/tabs/CTabList.ts +12 -5
- package/src/components/tabs/CTabPane.ts +3 -3
- package/src/components/tabs/CTabPanel.ts +5 -5
- package/src/components/tabs/CTabs.ts +2 -2
- package/src/components/tabs/__tests__/__snapshots__/CTabPane.spec.ts.snap +1 -1
- package/src/components/toast/CToast.ts +12 -4
- package/src/components/toast/CToastClose.ts +5 -6
- package/src/components/toast/CToaster.ts +1 -1
- package/src/components/toast/__tests__/CToaster.spec.ts +0 -2
- package/src/components/toast/__tests__/__snapshots__/CToastClose.spec.ts.snap +1 -1
- package/src/components/tooltip/CTooltip.ts +26 -6
- package/src/components/tooltip/__tests__/CTooltip.spec.ts +43 -0
- package/src/components/widgets/CWidgetStatsA.ts +4 -4
- package/src/components/widgets/CWidgetStatsB.ts +5 -5
- package/src/components/widgets/CWidgetStatsC.ts +5 -5
- package/src/components/widgets/CWidgetStatsD.ts +5 -5
- package/src/components/widgets/CWidgetStatsE.ts +4 -4
- package/src/components/widgets/CWidgetStatsF.ts +5 -5
- package/src/directives/__tests__/v-c-placeholder.spec.ts +33 -0
- package/src/directives/__tests__/v-c-popover.spec.ts +67 -0
- package/src/directives/__tests__/v-c-tooltip.spec.ts +66 -0
- package/src/directives/v-c-popover.ts +8 -5
- package/src/directives/v-c-tooltip.ts +8 -5
- package/src/directives/v-c-visible.ts +1 -1
- package/src/index.ts +1 -1
- package/src/utils/ComponentProps.ts +1 -0
- package/src/utils/__tests__/swipe.spec.ts +82 -0
- package/src/utils/getNextActiveElement.ts +1 -1
- package/src/utils/index.ts +2 -0
- package/src/utils/swipe.ts +114 -0
- package/src/utils/transition.ts +2 -2
- package/dist/cjs/components/collapse/__test__/CCollapse.spec.d.ts +0 -1
- package/dist/esm/components/collapse/__test__/CCollapse.spec.d.ts +0 -1
- package/src/components/accordion/__tests__/CAccordionCollapse.spec.ts +0 -28
- package/src/components/accordion/__tests__/__snapshots__/CAccordionCollapse.spec.ts.snap +0 -7
- package/src/components/collapse/__test__/CCollapse.spec.ts +0 -44
- package/src/components/collapse/__test__/__snapshots__/CCollapse.spec.ts.snap +0 -13
|
@@ -187,6 +187,19 @@ const CDateRangePicker = defineComponent({
|
|
|
187
187
|
return false
|
|
188
188
|
},
|
|
189
189
|
},
|
|
190
|
+
/**
|
|
191
|
+
* Sets the format for month names.
|
|
192
|
+
*
|
|
193
|
+
* @default 'short'
|
|
194
|
+
* @since 5.18.0
|
|
195
|
+
*/
|
|
196
|
+
monthFormat: {
|
|
197
|
+
type: String as PropType<'long' | 'narrow' | 'short' | 'numeric' | '2-digit'>,
|
|
198
|
+
default: 'short',
|
|
199
|
+
validator: (value: string) => {
|
|
200
|
+
return ['long', 'narrow', 'short', 'numeric', '2-digit'].includes(value)
|
|
201
|
+
},
|
|
202
|
+
},
|
|
190
203
|
/**
|
|
191
204
|
* Toggle the disabled state for the component.
|
|
192
205
|
*/
|
|
@@ -383,14 +396,14 @@ const CDateRangePicker = defineComponent({
|
|
|
383
396
|
*/
|
|
384
397
|
selectAdjacementDays: Boolean,
|
|
385
398
|
/**
|
|
386
|
-
* Specify the type of date selection as day, week, month, or year.
|
|
399
|
+
* Specify the type of date selection as day, week, month, quarter, or year.
|
|
387
400
|
*
|
|
388
401
|
* @since 5.0.0
|
|
389
402
|
*/
|
|
390
403
|
selectionType: {
|
|
391
|
-
type: String as PropType<'day' | 'week' | 'month' | 'year'>,
|
|
404
|
+
type: String as PropType<'day' | 'week' | 'month' | 'quarter' | 'year'>,
|
|
392
405
|
default: 'day',
|
|
393
|
-
validator: (value: string) => ['day', 'week', 'month', 'year'].includes(value),
|
|
406
|
+
validator: (value: string) => ['day', 'week', 'month', 'quarter', 'year'].includes(value),
|
|
394
407
|
},
|
|
395
408
|
/**
|
|
396
409
|
* Set whether to display dates in adjacent months (non-selectable) at the start and end of the current month.
|
|
@@ -534,6 +547,19 @@ const CDateRangePicker = defineComponent({
|
|
|
534
547
|
* @since 5.0.0
|
|
535
548
|
*/
|
|
536
549
|
weekNumbersLabel: String,
|
|
550
|
+
/**
|
|
551
|
+
* Sets the format for years.
|
|
552
|
+
*
|
|
553
|
+
* @default 'numeric'
|
|
554
|
+
* @since 5.18.0
|
|
555
|
+
*/
|
|
556
|
+
yearFormat: {
|
|
557
|
+
type: String as PropType<'numeric' | '2-digit'>,
|
|
558
|
+
default: 'numeric',
|
|
559
|
+
validator: (value: string) => {
|
|
560
|
+
return ['numeric', '2-digit'].includes(value)
|
|
561
|
+
},
|
|
562
|
+
},
|
|
537
563
|
},
|
|
538
564
|
emits: [
|
|
539
565
|
/**
|
|
@@ -1074,6 +1100,7 @@ const CDateRangePicker = defineComponent({
|
|
|
1074
1100
|
locale: props.locale,
|
|
1075
1101
|
maxDate: maxDate.value,
|
|
1076
1102
|
minDate: minDate.value,
|
|
1103
|
+
monthFormat: props.monthFormat,
|
|
1077
1104
|
navigation: props.navigation,
|
|
1078
1105
|
navYearFirst: props.navYearFirst,
|
|
1079
1106
|
range: props.range,
|
|
@@ -1085,6 +1112,7 @@ const CDateRangePicker = defineComponent({
|
|
|
1085
1112
|
startDate: startDate.value,
|
|
1086
1113
|
weekdayFormat: props.weekdayFormat,
|
|
1087
1114
|
weekNumbersLabel: props.weekNumbersLabel,
|
|
1115
|
+
yearFormat: props.yearFormat,
|
|
1088
1116
|
onDateHover: (date: Date | null) => handleDateHover(date),
|
|
1089
1117
|
onCalendarDateChange: (date: Date) => {
|
|
1090
1118
|
calendarDate.value = date
|
|
@@ -1100,27 +1128,45 @@ const CDateRangePicker = defineComponent({
|
|
|
1100
1128
|
* @slot Location for next icon.
|
|
1101
1129
|
*/
|
|
1102
1130
|
...(slots.navNextIcon && {
|
|
1103
|
-
navNextIcon: () =>
|
|
1131
|
+
navNextIcon: () =>
|
|
1132
|
+
slots.navNextIcon?.(),
|
|
1104
1133
|
}),
|
|
1105
1134
|
/**
|
|
1106
1135
|
* @slot Location for next double icon.
|
|
1107
1136
|
*/
|
|
1108
1137
|
...(slots.navNextDoubleIcon && {
|
|
1109
1138
|
navNextDoubleIcon: () =>
|
|
1110
|
-
slots.navNextDoubleIcon
|
|
1139
|
+
slots.navNextDoubleIcon?.(),
|
|
1111
1140
|
}),
|
|
1112
1141
|
/**
|
|
1113
1142
|
* @slot Location for previous icon.
|
|
1114
1143
|
*/
|
|
1115
1144
|
...(slots.navPrevIcon && {
|
|
1116
|
-
navPrevIcon: () =>
|
|
1145
|
+
navPrevIcon: () =>
|
|
1146
|
+
slots.navPrevIcon?.(),
|
|
1117
1147
|
}),
|
|
1118
1148
|
/**
|
|
1119
1149
|
* @slot Location for double previous icon.
|
|
1120
1150
|
*/
|
|
1121
1151
|
...(slots.navPrevDoubleIcon && {
|
|
1122
1152
|
navPrevDoubleIcon: () =>
|
|
1123
|
-
slots.navPrevDoubleIcon
|
|
1153
|
+
slots.navPrevDoubleIcon?.(),
|
|
1154
|
+
}),
|
|
1155
|
+
...(slots.dayCell && {
|
|
1156
|
+
dayCell: (slotProps: Record<string, unknown>) =>
|
|
1157
|
+
slots.dayCell?.(slotProps),
|
|
1158
|
+
}),
|
|
1159
|
+
...(slots.monthCell && {
|
|
1160
|
+
monthCell: (slotProps: Record<string, unknown>) =>
|
|
1161
|
+
slots.monthCell?.(slotProps),
|
|
1162
|
+
}),
|
|
1163
|
+
...(slots.quarterCell && {
|
|
1164
|
+
quarterCell: (slotProps: Record<string, unknown>) =>
|
|
1165
|
+
slots.quarterCell?.(slotProps),
|
|
1166
|
+
}),
|
|
1167
|
+
...(slots.yearCell && {
|
|
1168
|
+
yearCell: (slotProps: Record<string, unknown>) =>
|
|
1169
|
+
slots.yearCell?.(slotProps),
|
|
1124
1170
|
}),
|
|
1125
1171
|
}
|
|
1126
1172
|
)
|
|
@@ -10,7 +10,7 @@ import {
|
|
|
10
10
|
Ref,
|
|
11
11
|
watch,
|
|
12
12
|
} from 'vue'
|
|
13
|
-
import type { Placement } from '@popperjs/core'
|
|
13
|
+
import type { Options, Placement } from '@popperjs/core'
|
|
14
14
|
|
|
15
15
|
import { usePopper } from '../../composables'
|
|
16
16
|
import type { Triggers } from '../../types'
|
|
@@ -124,6 +124,19 @@ const CDropdown = defineComponent({
|
|
|
124
124
|
type: Boolean,
|
|
125
125
|
default: true,
|
|
126
126
|
},
|
|
127
|
+
/**
|
|
128
|
+
* A Popper.js configuration object, or a function that receives the default
|
|
129
|
+
* configuration and returns a modified one, used to customize the
|
|
130
|
+
* positioning of the dropdown menu.
|
|
131
|
+
*
|
|
132
|
+
* @since 5.10.0
|
|
133
|
+
*/
|
|
134
|
+
popperConfig: {
|
|
135
|
+
type: [Object, Function] as PropType<
|
|
136
|
+
Partial<Options> | ((defaultPopperConfig: Partial<Options>) => Partial<Options>)
|
|
137
|
+
>,
|
|
138
|
+
default: undefined,
|
|
139
|
+
},
|
|
127
140
|
/**
|
|
128
141
|
* Sets the reference element for positioning the Vue Dropdown Menu.
|
|
129
142
|
* - `toggle` - The Vue Dropdown Toggle button (default).
|
|
@@ -162,7 +175,7 @@ const CDropdown = defineComponent({
|
|
|
162
175
|
*/
|
|
163
176
|
variant: {
|
|
164
177
|
type: String,
|
|
165
|
-
default: '
|
|
178
|
+
default: 'dropdown',
|
|
166
179
|
validator: (value: string) => {
|
|
167
180
|
return ['btn-group', 'dropdown', 'input-group', 'nav-item'].includes(value)
|
|
168
181
|
},
|
|
@@ -192,22 +205,31 @@ const CDropdown = defineComponent({
|
|
|
192
205
|
|
|
193
206
|
const { initPopper, destroyPopper } = usePopper()
|
|
194
207
|
|
|
195
|
-
const popperConfig = computed(() =>
|
|
196
|
-
|
|
197
|
-
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
208
|
+
const popperConfig = computed(() => {
|
|
209
|
+
const defaultPopperConfig = {
|
|
210
|
+
modifiers: [
|
|
211
|
+
{
|
|
212
|
+
name: 'offset',
|
|
213
|
+
options: {
|
|
214
|
+
offset: props.offset,
|
|
215
|
+
},
|
|
201
216
|
},
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
217
|
+
],
|
|
218
|
+
placement: getPlacement(
|
|
219
|
+
props.placement,
|
|
220
|
+
props.direction,
|
|
221
|
+
props.alignment,
|
|
222
|
+
isRTL(dropdownMenuRef.value)
|
|
223
|
+
) as Placement,
|
|
224
|
+
}
|
|
225
|
+
|
|
226
|
+
return {
|
|
227
|
+
...defaultPopperConfig,
|
|
228
|
+
...(typeof props.popperConfig === 'function'
|
|
229
|
+
? props.popperConfig(defaultPopperConfig)
|
|
230
|
+
: props.popperConfig),
|
|
231
|
+
}
|
|
232
|
+
})
|
|
211
233
|
|
|
212
234
|
watch(
|
|
213
235
|
() => props.visible,
|
|
@@ -249,16 +271,14 @@ const CDropdown = defineComponent({
|
|
|
249
271
|
|
|
250
272
|
window.removeEventListener('click', handleClick)
|
|
251
273
|
window.removeEventListener('keyup', handleKeyup)
|
|
252
|
-
dropdownMenuRef.value
|
|
253
|
-
dropdownToggleRef.value
|
|
254
|
-
dropdownToggleRef.value.removeEventListener('keydown', handleKeydown)
|
|
274
|
+
dropdownMenuRef.value?.removeEventListener('keydown', handleKeydown)
|
|
275
|
+
dropdownToggleRef.value?.removeEventListener('keydown', handleKeydown)
|
|
255
276
|
emit('hide')
|
|
256
277
|
})
|
|
257
278
|
|
|
258
279
|
onUnmounted(() => {
|
|
259
|
-
dropdownToggleRef.value
|
|
260
|
-
|
|
261
|
-
dropdownMenuRef.value && dropdownMenuRef.value.removeEventListener('keydown', handleKeydown)
|
|
280
|
+
dropdownToggleRef.value?.removeEventListener('keydown', handleKeydown)
|
|
281
|
+
dropdownMenuRef.value?.removeEventListener('keydown', handleKeydown)
|
|
262
282
|
})
|
|
263
283
|
|
|
264
284
|
provide('config', {
|
|
@@ -315,7 +335,7 @@ const CDropdown = defineComponent({
|
|
|
315
335
|
}
|
|
316
336
|
|
|
317
337
|
const target = event.target as HTMLElement | null
|
|
318
|
-
const FORM_TAG_RE = /^(input|select|option|textarea|form
|
|
338
|
+
const FORM_TAG_RE = /^(input|select|option|textarea|form)$/i
|
|
319
339
|
|
|
320
340
|
if (isOnMenu && target && FORM_TAG_RE.test(target.tagName)) {
|
|
321
341
|
return
|
|
@@ -142,7 +142,7 @@ const CDropdownToggle = defineComponent({
|
|
|
142
142
|
event.preventDefault()
|
|
143
143
|
setVisible(true, event)
|
|
144
144
|
}
|
|
145
|
-
}
|
|
145
|
+
},
|
|
146
146
|
}
|
|
147
147
|
|
|
148
148
|
const togglerProps = computed(() => {
|
|
@@ -174,7 +174,7 @@ const CDropdownToggle = defineComponent({
|
|
|
174
174
|
togglerRef.value = el
|
|
175
175
|
},
|
|
176
176
|
...triggers,
|
|
177
|
-
})
|
|
177
|
+
})
|
|
178
178
|
)
|
|
179
179
|
: dropdownVariant === 'nav-item' && props.navLink
|
|
180
180
|
? h(
|
|
@@ -185,7 +185,7 @@ const CDropdownToggle = defineComponent({
|
|
|
185
185
|
role: 'button',
|
|
186
186
|
ref: dropdownToggleRef,
|
|
187
187
|
},
|
|
188
|
-
{ default: () => slots.default && slots.default() }
|
|
188
|
+
{ default: () => slots.default && slots.default() }
|
|
189
189
|
)
|
|
190
190
|
: h(
|
|
191
191
|
CButton,
|
|
@@ -204,7 +204,7 @@ const CDropdownToggle = defineComponent({
|
|
|
204
204
|
() =>
|
|
205
205
|
props.split
|
|
206
206
|
? h('span', { class: 'visually-hidden' }, props.splitLabel)
|
|
207
|
-
: slots.default && slots.default()
|
|
207
|
+
: slots.default && slots.default()
|
|
208
208
|
)
|
|
209
209
|
},
|
|
210
210
|
})
|
|
@@ -45,7 +45,7 @@ describe(`Loads and display ${ComponentName} component`, () => {
|
|
|
45
45
|
})
|
|
46
46
|
it('contain slots and classes', () => {
|
|
47
47
|
expect(defaultWrapper.text()).toContain('Default slot')
|
|
48
|
-
expect(defaultWrapper.classes('
|
|
48
|
+
expect(defaultWrapper.classes('dropdown')).toBe(true)
|
|
49
49
|
})
|
|
50
50
|
})
|
|
51
51
|
|
|
@@ -8,12 +8,14 @@ const config = {
|
|
|
8
8
|
alignment: { lg: 'end' },
|
|
9
9
|
dark: false,
|
|
10
10
|
popper: true,
|
|
11
|
+
teleport: false,
|
|
11
12
|
}
|
|
12
13
|
|
|
13
14
|
const customConfig = {
|
|
14
15
|
alignment: { lg: 'end' },
|
|
15
16
|
dark: true,
|
|
16
17
|
popper: false,
|
|
18
|
+
teleport: false,
|
|
17
19
|
}
|
|
18
20
|
|
|
19
21
|
const defaultWrapper = mount(Component, {
|
|
@@ -55,9 +57,10 @@ describe(`Loads and display ${ComponentName} component`, () => {
|
|
|
55
57
|
})
|
|
56
58
|
it('contain slots and classes', () => {
|
|
57
59
|
expect(defaultWrapper.text()).toContain('Default slot')
|
|
58
|
-
|
|
59
|
-
expect(
|
|
60
|
-
expect(
|
|
60
|
+
const menu = defaultWrapper.find('.dropdown-menu')
|
|
61
|
+
expect(menu.classes('dropdown-menu')).toBe(true)
|
|
62
|
+
expect(menu.attributes('data-coreui-theme')).toBeUndefined()
|
|
63
|
+
expect(menu.classes('show')).toBe(false)
|
|
61
64
|
})
|
|
62
65
|
})
|
|
63
66
|
|
|
@@ -68,9 +71,10 @@ describe(`Customize ${ComponentName} component`, () => {
|
|
|
68
71
|
it('contain slots and classes', () => {
|
|
69
72
|
expect(customWrapper.text()).toContain('Default slot')
|
|
70
73
|
expect(customWrapper.find('li').text()).toContain('Default slot')
|
|
71
|
-
|
|
72
|
-
expect(
|
|
73
|
-
expect(
|
|
74
|
-
expect(
|
|
74
|
+
const menu = customWrapper.find('.dropdown-menu')
|
|
75
|
+
expect(menu.classes('dropdown-menu')).toBe(true)
|
|
76
|
+
expect(menu.attributes('data-coreui-theme')).toBe('dark')
|
|
77
|
+
expect(menu.classes('show')).toBe(true)
|
|
78
|
+
expect(menu.attributes('data-coreui-popper')).toBe('static')
|
|
75
79
|
})
|
|
76
80
|
})
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { mount } from '@vue/test-utils'
|
|
2
|
+
import { h, nextTick } from 'vue'
|
|
3
|
+
import { createPopper } from '@popperjs/core'
|
|
4
|
+
import type { Options } from '@popperjs/core'
|
|
5
|
+
import { CDropdown, CDropdownMenu, CDropdownToggle } from '../../../index'
|
|
6
|
+
|
|
7
|
+
type PopperConfig = Partial<Options> | ((defaultPopperConfig: Partial<Options>) => Partial<Options>)
|
|
8
|
+
|
|
9
|
+
jest.mock('@popperjs/core', () => ({
|
|
10
|
+
createPopper: jest.fn(() => ({
|
|
11
|
+
destroy: jest.fn(),
|
|
12
|
+
setOptions: jest.fn(),
|
|
13
|
+
update: jest.fn(),
|
|
14
|
+
})),
|
|
15
|
+
}))
|
|
16
|
+
|
|
17
|
+
const mockedCreatePopper = createPopper as jest.Mock
|
|
18
|
+
|
|
19
|
+
const mountOpenDropdown = async (popperConfig: PopperConfig) => {
|
|
20
|
+
const wrapper = mount(CDropdown, {
|
|
21
|
+
props: { popperConfig },
|
|
22
|
+
slots: {
|
|
23
|
+
default: () => [h(CDropdownToggle, () => 'Toggle'), h(CDropdownMenu, () => 'Menu')],
|
|
24
|
+
},
|
|
25
|
+
})
|
|
26
|
+
|
|
27
|
+
await nextTick()
|
|
28
|
+
await wrapper.setProps({ visible: true })
|
|
29
|
+
await nextTick()
|
|
30
|
+
|
|
31
|
+
return wrapper
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
describe('CDropdown popperConfig', () => {
|
|
35
|
+
beforeEach(() => mockedCreatePopper.mockClear())
|
|
36
|
+
|
|
37
|
+
it('merges an object popperConfig over the default config', async () => {
|
|
38
|
+
await mountOpenDropdown({ strategy: 'fixed' })
|
|
39
|
+
|
|
40
|
+
expect(mockedCreatePopper).toHaveBeenCalled()
|
|
41
|
+
const options = mockedCreatePopper.mock.calls[0][2]
|
|
42
|
+
expect(options.strategy).toBe('fixed')
|
|
43
|
+
expect(options.placement).toBeDefined()
|
|
44
|
+
expect(options.modifiers).toBeDefined()
|
|
45
|
+
})
|
|
46
|
+
|
|
47
|
+
it('passes the default config to a function popperConfig and uses its result', async () => {
|
|
48
|
+
const popperConfig = jest.fn((defaultConfig: Partial<Options>) => ({
|
|
49
|
+
...defaultConfig,
|
|
50
|
+
strategy: 'fixed' as const,
|
|
51
|
+
}))
|
|
52
|
+
|
|
53
|
+
await mountOpenDropdown(popperConfig)
|
|
54
|
+
|
|
55
|
+
expect(popperConfig).toHaveBeenCalledTimes(1)
|
|
56
|
+
const defaultArg = popperConfig.mock.calls[0][0]
|
|
57
|
+
expect(defaultArg.modifiers).toBeDefined()
|
|
58
|
+
expect(defaultArg.placement).toBeDefined()
|
|
59
|
+
|
|
60
|
+
const options = mockedCreatePopper.mock.calls[0][2]
|
|
61
|
+
expect(options.strategy).toBe('fixed')
|
|
62
|
+
})
|
|
63
|
+
})
|
|
@@ -93,9 +93,7 @@ describe(`Customize ${ComponentName} component`, () => {
|
|
|
93
93
|
expect(customWrapper.classes('nav-link')).toBe(true)
|
|
94
94
|
expect(customWrapper.classes('dropdown-toggle-split')).toBe(true)
|
|
95
95
|
expect(customWrapper.classes('show')).toBe(true)
|
|
96
|
-
expect(customWrapper.classes('active')).toBe(true)
|
|
97
96
|
expect(customWrapper.classes('disabled')).toBe(true)
|
|
98
|
-
expect(customWrapper.attributes('disabled')).toBe('true')
|
|
99
97
|
expect(customWrapper.attributes('href')).toBe('#')
|
|
100
98
|
})
|
|
101
99
|
})
|
|
@@ -4,4 +4,4 @@ exports[`Customize (variant number two) CDropdown component renders correctly 1`
|
|
|
4
4
|
|
|
5
5
|
exports[`Customize CDropdown component renders correctly 1`] = `"<div class="nav-item dropdown dropend">Default slot</div>"`;
|
|
6
6
|
|
|
7
|
-
exports[`Loads and display CDropdown component renders correctly 1`] = `"<div class="
|
|
7
|
+
exports[`Loads and display CDropdown component renders correctly 1`] = `"<div class="dropdown">Default slot</div>"`;
|
|
@@ -2,10 +2,14 @@
|
|
|
2
2
|
|
|
3
3
|
exports[`Customize CDropdownMenu component renders correctly 1`] = `
|
|
4
4
|
"<!--teleport start-->
|
|
5
|
+
<ul class="dropdown-menu show dropdown-menu-lg-end" data-coreui-popper="static" data-coreui-theme="dark">
|
|
6
|
+
<li>Default slot</li>
|
|
7
|
+
</ul>
|
|
5
8
|
<!--teleport end-->"
|
|
6
9
|
`;
|
|
7
10
|
|
|
8
11
|
exports[`Loads and display CDropdownMenu component renders correctly 1`] = `
|
|
9
12
|
"<!--teleport start-->
|
|
13
|
+
<div class="dropdown-menu dropdown-menu-lg-end" data-coreui-popper="static">Default slot</div>
|
|
10
14
|
<!--teleport end-->"
|
|
11
15
|
`;
|
|
@@ -8,7 +8,7 @@ export const getAlignmentClassNames = (alignment: Alignments) => {
|
|
|
8
8
|
if (typeof alignment === 'object') {
|
|
9
9
|
for (const key in alignment) {
|
|
10
10
|
classNames.push(
|
|
11
|
-
`dropdown-menu${key === 'xs' ? '' : `-${key}`}-${alignment[key as keyof Breakpoints]}
|
|
11
|
+
`dropdown-menu${key === 'xs' ? '' : `-${key}`}-${alignment[key as keyof Breakpoints]}`
|
|
12
12
|
)
|
|
13
13
|
}
|
|
14
14
|
}
|
|
@@ -24,7 +24,7 @@ export const getPlacement = (
|
|
|
24
24
|
placement: Placement,
|
|
25
25
|
direction: string | undefined,
|
|
26
26
|
alignment: Alignments | string | undefined,
|
|
27
|
-
isRTL: boolean
|
|
27
|
+
isRTL: boolean
|
|
28
28
|
): Placements => {
|
|
29
29
|
let _placement = placement
|
|
30
30
|
|
|
@@ -282,17 +282,20 @@ const CFocusTrap = defineComponent({
|
|
|
282
282
|
const vnodes = slots.default?.()
|
|
283
283
|
const vnode = vnodes?.[0]
|
|
284
284
|
if (!vnode) return null
|
|
285
|
-
|
|
286
|
-
const originalRef = (vnode.props as
|
|
287
|
-
|
|
285
|
+
|
|
286
|
+
const originalRef = (vnode.props as Record<string, unknown> | null)?.ref
|
|
287
|
+
|
|
288
288
|
return cloneVNode(vnode, {
|
|
289
289
|
ref: (el) => {
|
|
290
|
-
|
|
291
|
-
|
|
290
|
+
// `el` may be a component public instance (e.g. when the trapped node is wrapped in a
|
|
291
|
+
// `<Transition>`); resolve it to the underlying DOM element so focus handling works.
|
|
292
|
+
const element = ((el as { $el?: HTMLElement } | null)?.$el ?? el) as HTMLElement | null
|
|
293
|
+
containerRef.value = element
|
|
294
|
+
|
|
292
295
|
if (typeof originalRef === 'function') {
|
|
293
296
|
originalRef(el)
|
|
294
297
|
} else if (originalRef && typeof originalRef === 'object' && 'value' in originalRef) {
|
|
295
|
-
;(originalRef as { value:
|
|
298
|
+
;(originalRef as { value: unknown }).value = el
|
|
296
299
|
}
|
|
297
300
|
},
|
|
298
301
|
})
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import { mount } from '@vue/test-utils'
|
|
2
|
+
import { h } from 'vue'
|
|
3
|
+
import { CFocusTrap as Component } from '../../../index'
|
|
4
|
+
|
|
5
|
+
const ComponentName = 'CFocusTrap'
|
|
6
|
+
|
|
7
|
+
describe(`Loads and display ${ComponentName} component`, () => {
|
|
8
|
+
it('has a name', () => {
|
|
9
|
+
expect(Component.name).toMatch(ComponentName)
|
|
10
|
+
})
|
|
11
|
+
|
|
12
|
+
it('renders the child element from the default slot', () => {
|
|
13
|
+
const wrapper = mount(Component, {
|
|
14
|
+
slots: { default: () => h('div', { class: 'trapped' }, 'Trapped') },
|
|
15
|
+
})
|
|
16
|
+
expect(wrapper.find('.trapped').exists()).toBe(true)
|
|
17
|
+
expect(wrapper.text()).toContain('Trapped')
|
|
18
|
+
})
|
|
19
|
+
|
|
20
|
+
it('renders nothing when no slot content is provided', () => {
|
|
21
|
+
const wrapper = mount(Component)
|
|
22
|
+
expect(wrapper.html()).toBe('')
|
|
23
|
+
})
|
|
24
|
+
|
|
25
|
+
it('emits activate when mounted active', () => {
|
|
26
|
+
const wrapper = mount(Component, {
|
|
27
|
+
props: { active: true },
|
|
28
|
+
slots: { default: () => h('button', 'Focusable') },
|
|
29
|
+
attachTo: document.body,
|
|
30
|
+
})
|
|
31
|
+
expect(wrapper.emitted('activate')).toBeTruthy()
|
|
32
|
+
})
|
|
33
|
+
|
|
34
|
+
it('does not emit activate when inactive', () => {
|
|
35
|
+
const wrapper = mount(Component, {
|
|
36
|
+
props: { active: false },
|
|
37
|
+
slots: { default: () => h('button', 'Focusable') },
|
|
38
|
+
attachTo: document.body,
|
|
39
|
+
})
|
|
40
|
+
expect(wrapper.emitted('activate')).toBeFalsy()
|
|
41
|
+
})
|
|
42
|
+
})
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
// Jest Snapshot v1, https://goo.gl/fbAQLP
|
|
2
2
|
|
|
3
|
+
exports[`Customize (number two) CFooter component renders correctly 1`] = `"<footer class="footer">Default slot</footer>"`;
|
|
4
|
+
|
|
3
5
|
exports[`Customize CFooter component renders correctly 1`] = `"<div class="footer footer-fixed">Default slot</div>"`;
|
|
4
6
|
|
|
5
7
|
exports[`Loads and display CFooter component renders correctly 1`] = `"<div class="footer">Default slot</div>"`;
|
|
@@ -135,7 +135,7 @@ const CFormCheck = defineComponent({
|
|
|
135
135
|
if (props.modelValue.includes(props.value)) {
|
|
136
136
|
emit(
|
|
137
137
|
'update:modelValue',
|
|
138
|
-
props.modelValue.filter((value) => value !== props.value)
|
|
138
|
+
props.modelValue.filter((value) => value !== props.value)
|
|
139
139
|
)
|
|
140
140
|
} else {
|
|
141
141
|
emit('update:modelValue', [...props.modelValue, props.value])
|
|
@@ -210,14 +210,14 @@ const CFormCheck = defineComponent({
|
|
|
210
210
|
},
|
|
211
211
|
{
|
|
212
212
|
default: () => (slots.label && slots.label()) || props.label,
|
|
213
|
-
}
|
|
213
|
+
}
|
|
214
214
|
)
|
|
215
215
|
: h(
|
|
216
216
|
CFormLabel,
|
|
217
217
|
{ class: 'form-check-label', ...(props.id && { for: props.id }) },
|
|
218
218
|
{
|
|
219
219
|
default: () => (slots.label && slots.label()) || props.label,
|
|
220
|
-
}
|
|
220
|
+
}
|
|
221
221
|
)
|
|
222
222
|
|
|
223
223
|
const formValidation = () => {
|
|
@@ -244,7 +244,7 @@ const CFormCheck = defineComponent({
|
|
|
244
244
|
customClassName: className,
|
|
245
245
|
...(props.id && { for: props.id }),
|
|
246
246
|
},
|
|
247
|
-
[formControl(), props.label]
|
|
247
|
+
[formControl(), props.label]
|
|
248
248
|
),
|
|
249
249
|
formValidation(),
|
|
250
250
|
]
|
|
@@ -253,7 +253,7 @@ const CFormCheck = defineComponent({
|
|
|
253
253
|
{
|
|
254
254
|
class: className,
|
|
255
255
|
},
|
|
256
|
-
[formControl(), props.label && formLabel(), formValidation()]
|
|
256
|
+
[formControl(), props.label && formLabel(), formValidation()]
|
|
257
257
|
)
|
|
258
258
|
: formControl()
|
|
259
259
|
},
|
|
@@ -56,7 +56,7 @@ const CFormControlValidation = defineComponent({
|
|
|
56
56
|
},
|
|
57
57
|
{
|
|
58
58
|
default: () => (slots.feedback && slots.feedback()) || props.feedback,
|
|
59
|
-
}
|
|
59
|
+
}
|
|
60
60
|
),
|
|
61
61
|
(props.feedbackInvalid || slots.feedbackInvalid) &&
|
|
62
62
|
h(
|
|
@@ -69,7 +69,7 @@ const CFormControlValidation = defineComponent({
|
|
|
69
69
|
{
|
|
70
70
|
default: () =>
|
|
71
71
|
(slots.feedbackInvalid && slots.feedbackInvalid()) || props.feedbackInvalid,
|
|
72
|
-
}
|
|
72
|
+
}
|
|
73
73
|
),
|
|
74
74
|
(props.feedbackValid || slots.feedbackValid) &&
|
|
75
75
|
h(
|
|
@@ -80,7 +80,7 @@ const CFormControlValidation = defineComponent({
|
|
|
80
80
|
},
|
|
81
81
|
{
|
|
82
82
|
default: () => (slots.feedbackValid && slots.feedbackValid()) || props.feedbackValid,
|
|
83
|
-
}
|
|
83
|
+
}
|
|
84
84
|
),
|
|
85
85
|
]
|
|
86
86
|
},
|