@coreui/vue-pro 5.2.0 → 5.4.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 +2 -1
- package/dist/cjs/components/alert/CAlert.d.ts +2 -2
- package/dist/cjs/components/avatar/CAvatar.d.ts +2 -10
- package/dist/cjs/components/badge/CBadge.d.ts +2 -2
- package/dist/cjs/components/breadcrumb/CBreadcrumbItem.js.map +1 -1
- package/dist/cjs/components/button/CButton.d.ts +2 -6
- package/dist/cjs/components/button/CButton.js +2 -1
- package/dist/cjs/components/button/CButton.js.map +1 -1
- package/dist/cjs/components/calendar/CCalendar.d.ts +86 -10
- package/dist/cjs/components/calendar/CCalendar.js +57 -5
- package/dist/cjs/components/calendar/CCalendar.js.map +1 -1
- package/dist/cjs/components/calendar/utils.d.ts +4 -4
- package/dist/cjs/components/calendar/utils.js +1 -3
- package/dist/cjs/components/calendar/utils.js.map +1 -1
- package/dist/cjs/components/carousel/CCarousel.d.ts +2 -2
- package/dist/cjs/components/carousel/CCarousel.js.map +1 -1
- package/dist/cjs/components/close-button/CCloseButton.js.map +1 -1
- package/dist/cjs/components/conditional-teleport/CConditionalTeleport.d.ts +4 -4
- package/dist/cjs/components/conditional-teleport/CConditionalTeleport.js +1 -1
- package/dist/cjs/components/date-picker/CDatePicker.d.ts +98 -10
- package/dist/cjs/components/date-picker/CDatePicker.js +47 -5
- package/dist/cjs/components/date-picker/CDatePicker.js.map +1 -1
- package/dist/cjs/components/date-range-picker/CDateRangePicker.d.ts +127 -19
- package/dist/cjs/components/date-range-picker/CDateRangePicker.js +75 -12
- package/dist/cjs/components/date-range-picker/CDateRangePicker.js.map +1 -1
- package/dist/cjs/components/date-range-picker/utils.d.ts +1 -0
- package/dist/cjs/components/date-range-picker/utils.js +10 -0
- package/dist/cjs/components/date-range-picker/utils.js.map +1 -1
- package/dist/cjs/components/dropdown/CDropdown.d.ts +9 -32
- package/dist/cjs/components/dropdown/CDropdown.js +2 -2
- package/dist/cjs/components/dropdown/CDropdownMenu.js.map +1 -1
- package/dist/cjs/components/dropdown/CDropdownToggle.d.ts +2 -2
- package/dist/cjs/components/dropdown/CDropdownToggle.js +1 -1
- package/dist/cjs/components/dropdown/CDropdownToggle.js.map +1 -1
- package/dist/cjs/components/footer/CFooter.d.ts +17 -1
- package/dist/cjs/components/footer/CFooter.js +8 -1
- package/dist/cjs/components/footer/CFooter.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/CFormInput.d.ts +63 -63
- package/dist/cjs/components/form/CFormInput.js.map +1 -1
- package/dist/cjs/components/form/CFormSelect.d.ts +2 -2
- 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/CFormTextarea.js.map +1 -1
- package/dist/cjs/components/header/CHeader.d.ts +17 -1
- package/dist/cjs/components/header/CHeader.js +8 -1
- package/dist/cjs/components/header/CHeader.js.map +1 -1
- package/dist/cjs/components/link/CLink.js.map +1 -1
- package/dist/cjs/components/list-group/CListGroupItem.js.map +1 -1
- package/dist/cjs/components/loading-button/CLoadingButton.js.map +1 -1
- package/dist/cjs/components/modal/CModal.d.ts +43 -5
- package/dist/cjs/components/modal/CModal.js +41 -17
- package/dist/cjs/components/modal/CModal.js.map +1 -1
- package/dist/cjs/components/multi-select/CMultiSelect.d.ts +33 -2
- package/dist/cjs/components/multi-select/CMultiSelect.js +21 -2
- package/dist/cjs/components/multi-select/CMultiSelect.js.map +1 -1
- package/dist/cjs/components/multi-select/CMultiSelectNativeSelect.d.ts +2 -0
- package/dist/cjs/components/multi-select/CMultiSelectNativeSelect.js +4 -2
- 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/nav/CNavGroup.js.map +1 -1
- package/dist/cjs/components/navbar/CNavbar.js.map +1 -1
- package/dist/cjs/components/offcanvas/COffcanvas.js.map +1 -1
- package/dist/cjs/components/pagination/CPaginationItem.js.map +1 -1
- package/dist/cjs/components/popover/CPopover.d.ts +6 -6
- package/dist/cjs/components/popover/CPopover.js +1 -1
- package/dist/cjs/components/progress/CProgress.d.ts +2 -2
- package/dist/cjs/components/progress/CProgress.js.map +1 -1
- package/dist/cjs/components/progress/CProgressBar.d.ts +2 -2
- package/dist/cjs/components/progress/CProgressBar.js.map +1 -1
- package/dist/cjs/components/rating/CRating.js.map +1 -1
- package/dist/cjs/components/sidebar/CSidebarNav.js.map +1 -1
- package/dist/cjs/components/smart-pagination/CSmartPagination.js.map +1 -1
- package/dist/cjs/components/smart-table/CSmartTable.d.ts +6 -6
- package/dist/cjs/components/smart-table/CSmartTable.js.map +1 -1
- package/dist/cjs/components/smart-table/CSmartTableBody.d.ts +2 -2
- package/dist/cjs/components/smart-table/CSmartTableBody.js.map +1 -1
- package/dist/cjs/components/smart-table/CSmartTableHead.d.ts +4 -4
- package/dist/cjs/components/smart-table/CSmartTableHead.js.map +1 -1
- package/dist/cjs/components/smart-table/utils.d.ts +4 -4
- package/dist/cjs/components/smart-table/utils.js.map +1 -1
- package/dist/cjs/components/spinner/CSpinner.d.ts +2 -2
- package/dist/cjs/components/table/CTable.d.ts +4 -4
- package/dist/cjs/components/table/CTable.js.map +1 -1
- package/dist/cjs/components/table/CTableDataCell.js.map +1 -1
- package/dist/cjs/components/time-picker/CTimePicker.js +9 -1
- package/dist/cjs/components/time-picker/CTimePicker.js.map +1 -1
- package/dist/cjs/components/time-picker/utils.d.ts +4 -4
- package/dist/cjs/components/tooltip/CTooltip.d.ts +6 -6
- package/dist/cjs/components/tooltip/CTooltip.js +1 -1
- package/dist/cjs/components/virtual-scroller/CVirtualScroller.js.map +1 -1
- package/dist/cjs/components/widgets/CWidgetStatsB.js.map +1 -1
- package/dist/cjs/components/widgets/CWidgetStatsC.d.ts +0 -10
- package/dist/cjs/components/widgets/CWidgetStatsC.js.map +1 -1
- package/dist/cjs/node_modules/@coreui/icons-vue/dist/index.es.js +66 -0
- package/dist/cjs/node_modules/@coreui/icons-vue/dist/index.es.js.map +1 -1
- package/dist/cjs/node_modules/vue-types/dist/vue-types.modern.js +1 -1
- package/dist/cjs/node_modules/vue-types/dist/vue-types.modern.js.map +1 -1
- package/dist/esm/components/alert/CAlert.d.ts +2 -2
- package/dist/esm/components/avatar/CAvatar.d.ts +2 -10
- package/dist/esm/components/badge/CBadge.d.ts +2 -2
- package/dist/esm/components/breadcrumb/CBreadcrumbItem.js.map +1 -1
- package/dist/esm/components/button/CButton.d.ts +2 -6
- package/dist/esm/components/button/CButton.js +2 -1
- package/dist/esm/components/button/CButton.js.map +1 -1
- package/dist/esm/components/calendar/CCalendar.d.ts +86 -10
- package/dist/esm/components/calendar/CCalendar.js +58 -6
- package/dist/esm/components/calendar/CCalendar.js.map +1 -1
- package/dist/esm/components/calendar/utils.d.ts +4 -4
- package/dist/esm/components/calendar/utils.js +1 -3
- package/dist/esm/components/calendar/utils.js.map +1 -1
- package/dist/esm/components/carousel/CCarousel.d.ts +2 -2
- package/dist/esm/components/carousel/CCarousel.js.map +1 -1
- package/dist/esm/components/close-button/CCloseButton.js.map +1 -1
- package/dist/esm/components/conditional-teleport/CConditionalTeleport.d.ts +4 -4
- package/dist/esm/components/conditional-teleport/CConditionalTeleport.js +1 -1
- package/dist/esm/components/date-picker/CDatePicker.d.ts +98 -10
- package/dist/esm/components/date-picker/CDatePicker.js +47 -5
- package/dist/esm/components/date-picker/CDatePicker.js.map +1 -1
- package/dist/esm/components/date-range-picker/CDateRangePicker.d.ts +127 -19
- package/dist/esm/components/date-range-picker/CDateRangePicker.js +76 -13
- package/dist/esm/components/date-range-picker/CDateRangePicker.js.map +1 -1
- package/dist/esm/components/date-range-picker/utils.d.ts +1 -0
- package/dist/esm/components/date-range-picker/utils.js +10 -1
- package/dist/esm/components/date-range-picker/utils.js.map +1 -1
- package/dist/esm/components/dropdown/CDropdown.d.ts +9 -32
- package/dist/esm/components/dropdown/CDropdown.js +2 -2
- package/dist/esm/components/dropdown/CDropdownMenu.js.map +1 -1
- package/dist/esm/components/dropdown/CDropdownToggle.d.ts +2 -2
- package/dist/esm/components/dropdown/CDropdownToggle.js +1 -1
- package/dist/esm/components/dropdown/CDropdownToggle.js.map +1 -1
- package/dist/esm/components/footer/CFooter.d.ts +17 -1
- package/dist/esm/components/footer/CFooter.js +8 -1
- package/dist/esm/components/footer/CFooter.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/CFormInput.d.ts +63 -63
- package/dist/esm/components/form/CFormInput.js.map +1 -1
- package/dist/esm/components/form/CFormSelect.d.ts +2 -2
- 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/CFormTextarea.js.map +1 -1
- package/dist/esm/components/header/CHeader.d.ts +17 -1
- package/dist/esm/components/header/CHeader.js +8 -1
- package/dist/esm/components/header/CHeader.js.map +1 -1
- package/dist/esm/components/link/CLink.js.map +1 -1
- package/dist/esm/components/list-group/CListGroupItem.js.map +1 -1
- package/dist/esm/components/loading-button/CLoadingButton.js.map +1 -1
- package/dist/esm/components/modal/CModal.d.ts +43 -5
- package/dist/esm/components/modal/CModal.js +41 -17
- package/dist/esm/components/modal/CModal.js.map +1 -1
- package/dist/esm/components/multi-select/CMultiSelect.d.ts +33 -2
- package/dist/esm/components/multi-select/CMultiSelect.js +21 -2
- package/dist/esm/components/multi-select/CMultiSelect.js.map +1 -1
- package/dist/esm/components/multi-select/CMultiSelectNativeSelect.d.ts +2 -0
- package/dist/esm/components/multi-select/CMultiSelectNativeSelect.js +4 -2
- 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/nav/CNavGroup.js.map +1 -1
- package/dist/esm/components/navbar/CNavbar.js.map +1 -1
- package/dist/esm/components/offcanvas/COffcanvas.js.map +1 -1
- package/dist/esm/components/pagination/CPaginationItem.js.map +1 -1
- package/dist/esm/components/popover/CPopover.d.ts +6 -6
- package/dist/esm/components/popover/CPopover.js +1 -1
- package/dist/esm/components/progress/CProgress.d.ts +2 -2
- package/dist/esm/components/progress/CProgress.js.map +1 -1
- package/dist/esm/components/progress/CProgressBar.d.ts +2 -2
- package/dist/esm/components/progress/CProgressBar.js.map +1 -1
- package/dist/esm/components/rating/CRating.js.map +1 -1
- package/dist/esm/components/sidebar/CSidebarNav.js.map +1 -1
- package/dist/esm/components/smart-pagination/CSmartPagination.js.map +1 -1
- package/dist/esm/components/smart-table/CSmartTable.d.ts +6 -6
- package/dist/esm/components/smart-table/CSmartTable.js.map +1 -1
- package/dist/esm/components/smart-table/CSmartTableBody.d.ts +2 -2
- package/dist/esm/components/smart-table/CSmartTableBody.js.map +1 -1
- package/dist/esm/components/smart-table/CSmartTableHead.d.ts +4 -4
- package/dist/esm/components/smart-table/CSmartTableHead.js.map +1 -1
- package/dist/esm/components/smart-table/utils.d.ts +4 -4
- package/dist/esm/components/smart-table/utils.js.map +1 -1
- package/dist/esm/components/spinner/CSpinner.d.ts +2 -2
- package/dist/esm/components/table/CTable.d.ts +4 -4
- package/dist/esm/components/table/CTable.js.map +1 -1
- package/dist/esm/components/table/CTableDataCell.js.map +1 -1
- package/dist/esm/components/time-picker/CTimePicker.js +9 -1
- package/dist/esm/components/time-picker/CTimePicker.js.map +1 -1
- package/dist/esm/components/time-picker/utils.d.ts +4 -4
- package/dist/esm/components/tooltip/CTooltip.d.ts +6 -6
- package/dist/esm/components/tooltip/CTooltip.js +1 -1
- package/dist/esm/components/virtual-scroller/CVirtualScroller.js.map +1 -1
- package/dist/esm/components/widgets/CWidgetStatsB.js.map +1 -1
- package/dist/esm/components/widgets/CWidgetStatsC.d.ts +0 -10
- package/dist/esm/components/widgets/CWidgetStatsC.js.map +1 -1
- package/dist/esm/node_modules/@coreui/icons-vue/dist/index.es.js +67 -1
- package/dist/esm/node_modules/@coreui/icons-vue/dist/index.es.js.map +1 -1
- package/dist/esm/node_modules/vue-types/dist/vue-types.modern.js +1 -1
- package/dist/esm/node_modules/vue-types/dist/vue-types.modern.js.map +1 -1
- package/package.json +8 -8
- package/src/components/button/CButton.ts +2 -1
- package/src/components/calendar/CCalendar.ts +57 -5
- package/src/components/calendar/utils.ts +1 -4
- package/src/components/conditional-teleport/CConditionalTeleport.ts +1 -1
- package/src/components/date-picker/CDatePicker.ts +47 -5
- package/src/components/date-range-picker/CDateRangePicker.ts +83 -19
- package/src/components/date-range-picker/utils.ts +16 -0
- package/src/components/dropdown/CDropdown.ts +2 -2
- package/src/components/dropdown/CDropdownToggle.ts +1 -1
- package/src/components/footer/CFooter.ts +8 -1
- package/src/components/footer/__tests__/CFooter.spec.ts +19 -0
- package/src/components/header/CHeader.ts +8 -1
- package/src/components/header/__tests__/CHeader.spec.ts +19 -0
- package/src/components/modal/CModal.ts +49 -19
- package/src/components/multi-select/CMultiSelect.ts +25 -3
- package/src/components/multi-select/CMultiSelectNativeSelect.ts +4 -2
- package/src/components/popover/CPopover.ts +1 -1
- package/src/components/time-picker/CTimePicker.ts +9 -1
- package/src/components/tooltip/CTooltip.ts +1 -1
|
@@ -21,6 +21,42 @@ import {
|
|
|
21
21
|
const CCalendar = defineComponent({
|
|
22
22
|
name: 'CCalendar',
|
|
23
23
|
props: {
|
|
24
|
+
/**
|
|
25
|
+
* A string that provides an accessible label for the button that navigates to the next month in the calendar. This label is read by screen readers to describe the action associated with the button.
|
|
26
|
+
*
|
|
27
|
+
* @since 5.4.0
|
|
28
|
+
*/
|
|
29
|
+
ariaNavNextMonthLabel: {
|
|
30
|
+
type: String,
|
|
31
|
+
default: 'Next month',
|
|
32
|
+
},
|
|
33
|
+
/**
|
|
34
|
+
* A string that provides an accessible label for the button that navigates to the next year in the calendar. This label is intended for screen readers to help users understand the button's functionality.
|
|
35
|
+
*
|
|
36
|
+
* @since 5.4.0
|
|
37
|
+
*/
|
|
38
|
+
ariaNavNextYearLabel: {
|
|
39
|
+
type: String,
|
|
40
|
+
default: 'Next year',
|
|
41
|
+
},
|
|
42
|
+
/**
|
|
43
|
+
* A string that provides an accessible label for the button that navigates to the previous month in the calendar. Screen readers will use this label to explain the purpose of the button.
|
|
44
|
+
*
|
|
45
|
+
* @since 5.4.0
|
|
46
|
+
*/
|
|
47
|
+
ariaNavPrevMonthLabel: {
|
|
48
|
+
type: String,
|
|
49
|
+
default: 'Previous month',
|
|
50
|
+
},
|
|
51
|
+
/**
|
|
52
|
+
* A string that provides an accessible label for the button that navigates to the previous year in the calendar. This label helps screen reader users understand the button's function.
|
|
53
|
+
*
|
|
54
|
+
* @since 5.4.0
|
|
55
|
+
*/
|
|
56
|
+
ariaNavPrevYearLabel: {
|
|
57
|
+
type: String,
|
|
58
|
+
default: 'Previous year',
|
|
59
|
+
},
|
|
24
60
|
/**
|
|
25
61
|
* Default date of the component
|
|
26
62
|
*/
|
|
@@ -599,7 +635,10 @@ const CCalendar = defineComponent({
|
|
|
599
635
|
weekDays.map(({ date }: { date: Date }) => {
|
|
600
636
|
return h(
|
|
601
637
|
'th',
|
|
602
|
-
{
|
|
638
|
+
{
|
|
639
|
+
class: 'calendar-cell',
|
|
640
|
+
abbr: date.toLocaleDateString(props.locale, { weekday: 'long' }),
|
|
641
|
+
},
|
|
603
642
|
h(
|
|
604
643
|
'div',
|
|
605
644
|
{
|
|
@@ -634,6 +673,7 @@ const CCalendar = defineComponent({
|
|
|
634
673
|
maxDate.value,
|
|
635
674
|
props.disabledDates,
|
|
636
675
|
)
|
|
676
|
+
const isSelected = isDateSelected(date, startDate.value, endDate.value)
|
|
637
677
|
const current = week.days.some((day) => day.month === 'current')
|
|
638
678
|
return h(
|
|
639
679
|
'tr',
|
|
@@ -649,10 +689,11 @@ const CCalendar = defineComponent({
|
|
|
649
689
|
props.selectionType === 'week' && hoverDate.value && selectEndDate.value
|
|
650
690
|
? isDateInRange(date, startDate.value, hoverDate.value)
|
|
651
691
|
: isDateInRange(date, hoverDate.value, endDate.value),
|
|
652
|
-
selected:
|
|
692
|
+
selected: isSelected,
|
|
653
693
|
},
|
|
654
694
|
],
|
|
655
695
|
tabindex: props.selectionType === 'week' && current && !isDisabled ? 0 : -1,
|
|
696
|
+
...(isSelected && { 'aria-selected': true }),
|
|
656
697
|
...(props.selectionType === 'week' &&
|
|
657
698
|
!isDisabled && {
|
|
658
699
|
onBlur: () => handleCalendarMouseLeave(),
|
|
@@ -677,6 +718,7 @@ const CCalendar = defineComponent({
|
|
|
677
718
|
maxDate.value,
|
|
678
719
|
props.disabledDates,
|
|
679
720
|
)
|
|
721
|
+
const isSelected = isDateSelected(date, startDate.value, endDate.value)
|
|
680
722
|
return month === 'current' || props.showAdjacementDays
|
|
681
723
|
? h(
|
|
682
724
|
'td',
|
|
@@ -695,7 +737,7 @@ const CCalendar = defineComponent({
|
|
|
695
737
|
range:
|
|
696
738
|
month === 'current' &&
|
|
697
739
|
isDateInRange(date, startDate.value, endDate.value),
|
|
698
|
-
selected:
|
|
740
|
+
selected: isSelected,
|
|
699
741
|
}),
|
|
700
742
|
[month]: true,
|
|
701
743
|
today: month === 'current' && isToday(date),
|
|
@@ -708,6 +750,7 @@ const CCalendar = defineComponent({
|
|
|
708
750
|
? 0
|
|
709
751
|
: -1,
|
|
710
752
|
title: date.toLocaleDateString(props.locale),
|
|
753
|
+
...(isSelected && { 'aria-selected': true }),
|
|
711
754
|
...(props.selectionType === 'day' &&
|
|
712
755
|
(month === 'current' || props.selectAdjacementDays) && {
|
|
713
756
|
onBlur: () => handleCalendarMouseLeave(),
|
|
@@ -754,6 +797,7 @@ const CCalendar = defineComponent({
|
|
|
754
797
|
maxDate.value,
|
|
755
798
|
props.disabledDates,
|
|
756
799
|
)
|
|
800
|
+
const isSelected = isDateSelected(date, startDate.value, endDate.value)
|
|
757
801
|
return h(
|
|
758
802
|
'td',
|
|
759
803
|
{
|
|
@@ -761,7 +805,7 @@ const CCalendar = defineComponent({
|
|
|
761
805
|
'calendar-cell',
|
|
762
806
|
{
|
|
763
807
|
disabled: isDisabled,
|
|
764
|
-
selected:
|
|
808
|
+
selected: isSelected,
|
|
765
809
|
'range-hover':
|
|
766
810
|
props.selectionType === 'month' &&
|
|
767
811
|
(hoverDate.value && selectEndDate
|
|
@@ -771,6 +815,7 @@ const CCalendar = defineComponent({
|
|
|
771
815
|
},
|
|
772
816
|
],
|
|
773
817
|
tabindex: isDisabled ? -1 : 0,
|
|
818
|
+
...(isSelected && { 'aria-selected': true }),
|
|
774
819
|
...(!isDisabled && {
|
|
775
820
|
onBlur: () => handleCalendarMouseLeave(),
|
|
776
821
|
onClick: () => handleCalendarClick(date),
|
|
@@ -798,6 +843,7 @@ const CCalendar = defineComponent({
|
|
|
798
843
|
maxDate.value,
|
|
799
844
|
props.disabledDates,
|
|
800
845
|
)
|
|
846
|
+
const isSelected = isDateSelected(date, startDate.value, endDate.value)
|
|
801
847
|
return h(
|
|
802
848
|
'td',
|
|
803
849
|
{
|
|
@@ -805,7 +851,7 @@ const CCalendar = defineComponent({
|
|
|
805
851
|
'calendar-cell year',
|
|
806
852
|
{
|
|
807
853
|
disabled: isDisabled,
|
|
808
|
-
selected:
|
|
854
|
+
selected: isSelected,
|
|
809
855
|
'range-hover':
|
|
810
856
|
props.selectionType === 'year' &&
|
|
811
857
|
(hoverDate.value && selectEndDate
|
|
@@ -815,6 +861,7 @@ const CCalendar = defineComponent({
|
|
|
815
861
|
},
|
|
816
862
|
],
|
|
817
863
|
tabindex: isDisabled ? -1 : 0,
|
|
864
|
+
...(isSelected && { 'aria-selected': true }),
|
|
818
865
|
...(!isDisabled && {
|
|
819
866
|
onBlur: () => handleCalendarMouseLeave(),
|
|
820
867
|
onClick: () => handleCalendarClick(date),
|
|
@@ -847,6 +894,7 @@ const CCalendar = defineComponent({
|
|
|
847
894
|
{
|
|
848
895
|
color: 'transparent',
|
|
849
896
|
size: 'sm',
|
|
897
|
+
'aria-label': props.ariaNavPrevYearLabel,
|
|
850
898
|
onClick: () => handleNavigationOnClick('prev', true),
|
|
851
899
|
},
|
|
852
900
|
{
|
|
@@ -865,6 +913,7 @@ const CCalendar = defineComponent({
|
|
|
865
913
|
{
|
|
866
914
|
color: 'transparent',
|
|
867
915
|
size: 'sm',
|
|
916
|
+
'aria-label': props.ariaNavPrevMonthLabel,
|
|
868
917
|
onClick: () => handleNavigationOnClick('prev'),
|
|
869
918
|
},
|
|
870
919
|
{
|
|
@@ -883,6 +932,7 @@ const CCalendar = defineComponent({
|
|
|
883
932
|
'div',
|
|
884
933
|
{
|
|
885
934
|
class: 'calendar-nav-date',
|
|
935
|
+
'aria-live': 'polite',
|
|
886
936
|
...(props.navYearFirst && { style: { display: 'flex', justifyContent: 'center' } }),
|
|
887
937
|
},
|
|
888
938
|
[
|
|
@@ -925,6 +975,7 @@ const CCalendar = defineComponent({
|
|
|
925
975
|
{
|
|
926
976
|
color: 'transparent',
|
|
927
977
|
size: 'sm',
|
|
978
|
+
'aria-label': props.ariaNavNextMonthLabel,
|
|
928
979
|
onClick: () => handleNavigationOnClick('next'),
|
|
929
980
|
},
|
|
930
981
|
{
|
|
@@ -942,6 +993,7 @@ const CCalendar = defineComponent({
|
|
|
942
993
|
{
|
|
943
994
|
color: 'transparent',
|
|
944
995
|
size: 'sm',
|
|
996
|
+
'aria-label': props.ariaNavNextYearLabel,
|
|
945
997
|
onClick: () => handleNavigationOnClick('next', true),
|
|
946
998
|
},
|
|
947
999
|
{
|
|
@@ -19,10 +19,7 @@ export const convertToDateObject = (
|
|
|
19
19
|
return convertIsoWeekToDate(date as string)
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
|
|
23
|
-
const userTimezoneOffset = _date.getTimezoneOffset() * 60_000
|
|
24
|
-
|
|
25
|
-
return new Date(_date.getTime() + userTimezoneOffset)
|
|
22
|
+
return new Date(Date.parse(date))
|
|
26
23
|
}
|
|
27
24
|
|
|
28
25
|
export const convertToLocalDate = (d: Date, locale: string, options = {}) =>
|
|
@@ -16,7 +16,7 @@ const CConditionalTeleport = defineComponent({
|
|
|
16
16
|
/**
|
|
17
17
|
* An HTML element or function that returns a single element, with `document.body` as the default.
|
|
18
18
|
*
|
|
19
|
-
* @since
|
|
19
|
+
* @since 5.0.0
|
|
20
20
|
*/
|
|
21
21
|
container: {
|
|
22
22
|
type: [Object, String] as PropType<HTMLElement | (() => HTMLElement) | string>,
|
|
@@ -7,6 +7,42 @@ import { Color } from '../props'
|
|
|
7
7
|
const CDatePicker = defineComponent({
|
|
8
8
|
name: 'CDatePicker',
|
|
9
9
|
props: {
|
|
10
|
+
/**
|
|
11
|
+
* A string that provides an accessible label for the button that navigates to the next month in the calendar. This label is read by screen readers to describe the action associated with the button.
|
|
12
|
+
*
|
|
13
|
+
* @since 5.4.0
|
|
14
|
+
*/
|
|
15
|
+
ariaNavNextMonthLabel: {
|
|
16
|
+
type: String,
|
|
17
|
+
default: 'Next month',
|
|
18
|
+
},
|
|
19
|
+
/**
|
|
20
|
+
* A string that provides an accessible label for the button that navigates to the next year in the calendar. This label is intended for screen readers to help users understand the button's functionality.
|
|
21
|
+
*
|
|
22
|
+
* @since 5.4.0
|
|
23
|
+
*/
|
|
24
|
+
ariaNavNextYearLabel: {
|
|
25
|
+
type: String,
|
|
26
|
+
default: 'Next year',
|
|
27
|
+
},
|
|
28
|
+
/**
|
|
29
|
+
* A string that provides an accessible label for the button that navigates to the previous month in the calendar. Screen readers will use this label to explain the purpose of the button.
|
|
30
|
+
*
|
|
31
|
+
* @since 5.4.0
|
|
32
|
+
*/
|
|
33
|
+
ariaNavPrevMonthLabel: {
|
|
34
|
+
type: String,
|
|
35
|
+
default: 'Previous month',
|
|
36
|
+
},
|
|
37
|
+
/**
|
|
38
|
+
* A string that provides an accessible label for the button that navigates to the previous year in the calendar. This label helps screen reader users understand the button's function.
|
|
39
|
+
*
|
|
40
|
+
* @since 5.4.0
|
|
41
|
+
*/
|
|
42
|
+
ariaNavPrevYearLabel: {
|
|
43
|
+
type: String,
|
|
44
|
+
default: 'Previous year',
|
|
45
|
+
},
|
|
10
46
|
/**
|
|
11
47
|
* Default date of the component
|
|
12
48
|
*/
|
|
@@ -165,8 +201,8 @@ const CDatePicker = defineComponent({
|
|
|
165
201
|
/**
|
|
166
202
|
* The id global attribute defines an identifier (ID) that must be unique in the whole document.
|
|
167
203
|
*
|
|
168
|
-
* The name
|
|
169
|
-
* - {id}-date
|
|
204
|
+
* **[Deprecated since v5.3.0]** The name attributes for input element is generated based on this property until you define name prop ex.:
|
|
205
|
+
* - \{id\}-date
|
|
170
206
|
*/
|
|
171
207
|
id: String,
|
|
172
208
|
/**
|
|
@@ -183,19 +219,19 @@ const CDatePicker = defineComponent({
|
|
|
183
219
|
/**
|
|
184
220
|
* Custom function to format the selected date into a string according to a custom format.
|
|
185
221
|
*
|
|
186
|
-
* @since
|
|
222
|
+
* @since 5.0.0
|
|
187
223
|
*/
|
|
188
224
|
inputDateFormat: Function,
|
|
189
225
|
/**
|
|
190
226
|
* Custom function to parse the input value into a valid Date object.
|
|
191
227
|
*
|
|
192
|
-
* @since
|
|
228
|
+
* @since 5.0.0
|
|
193
229
|
*/
|
|
194
230
|
inputDateParse: Function,
|
|
195
231
|
/**
|
|
196
232
|
* Defines the delay (in milliseconds) for the input field's onChange event.
|
|
197
233
|
*
|
|
198
|
-
* @since
|
|
234
|
+
* @since 5.0.0
|
|
199
235
|
*/
|
|
200
236
|
inputOnChangeDelay: {
|
|
201
237
|
type: Number,
|
|
@@ -220,6 +256,12 @@ const CDatePicker = defineComponent({
|
|
|
220
256
|
minDate: {
|
|
221
257
|
type: [Date, String],
|
|
222
258
|
},
|
|
259
|
+
/**
|
|
260
|
+
* The name attribute for the input element.
|
|
261
|
+
*
|
|
262
|
+
* @since 5.3.0
|
|
263
|
+
*/
|
|
264
|
+
name: String,
|
|
223
265
|
/**
|
|
224
266
|
* Show arrows navigation.
|
|
225
267
|
*/
|
|
@@ -6,7 +6,7 @@ import { CFormControlWrapper } from './../form/CFormControlWrapper'
|
|
|
6
6
|
import { CPicker } from '../picker'
|
|
7
7
|
import { CTimePicker } from '../time-picker'
|
|
8
8
|
|
|
9
|
-
import { getLocalDateFromString } from './utils'
|
|
9
|
+
import { getInputIdOrName, getLocalDateFromString } from './utils'
|
|
10
10
|
|
|
11
11
|
import { useDebouncedCallback } from '../../composables'
|
|
12
12
|
import { Color } from '../props'
|
|
@@ -14,6 +14,42 @@ import { Color } from '../props'
|
|
|
14
14
|
const CDateRangePicker = defineComponent({
|
|
15
15
|
name: 'CDateRangePicker',
|
|
16
16
|
props: {
|
|
17
|
+
/**
|
|
18
|
+
* A string that provides an accessible label for the button that navigates to the next month in the calendar. This label is read by screen readers to describe the action associated with the button.
|
|
19
|
+
*
|
|
20
|
+
* @since 5.4.0
|
|
21
|
+
*/
|
|
22
|
+
ariaNavNextMonthLabel: {
|
|
23
|
+
type: String,
|
|
24
|
+
default: 'Next month',
|
|
25
|
+
},
|
|
26
|
+
/**
|
|
27
|
+
* A string that provides an accessible label for the button that navigates to the next year in the calendar. This label is intended for screen readers to help users understand the button's functionality.
|
|
28
|
+
*
|
|
29
|
+
* @since 5.4.0
|
|
30
|
+
*/
|
|
31
|
+
ariaNavNextYearLabel: {
|
|
32
|
+
type: String,
|
|
33
|
+
default: 'Next year',
|
|
34
|
+
},
|
|
35
|
+
/**
|
|
36
|
+
* A string that provides an accessible label for the button that navigates to the previous month in the calendar. Screen readers will use this label to explain the purpose of the button.
|
|
37
|
+
*
|
|
38
|
+
* @since 5.4.0
|
|
39
|
+
*/
|
|
40
|
+
ariaNavPrevMonthLabel: {
|
|
41
|
+
type: String,
|
|
42
|
+
default: 'Previous month',
|
|
43
|
+
},
|
|
44
|
+
/**
|
|
45
|
+
* A string that provides an accessible label for the button that navigates to the previous year in the calendar. This label helps screen reader users understand the button's function.
|
|
46
|
+
*
|
|
47
|
+
* @since 5.4.0
|
|
48
|
+
*/
|
|
49
|
+
ariaNavPrevYearLabel: {
|
|
50
|
+
type: String,
|
|
51
|
+
default: 'Previous year',
|
|
52
|
+
},
|
|
17
53
|
/**
|
|
18
54
|
* The number of calendars that render on desktop devices.
|
|
19
55
|
*/
|
|
@@ -197,13 +233,15 @@ const CDateRangePicker = defineComponent({
|
|
|
197
233
|
*/
|
|
198
234
|
footer: Boolean,
|
|
199
235
|
/**
|
|
200
|
-
* The id
|
|
236
|
+
* The id attribute for the input elements. It can be a single string for both the start and end dates. If a single string is used, the postfix "-start-date" and "-end-date" will be automatically added to make the IDs unique. Alternatively, you can use an array of two strings for start and end dates separately.
|
|
201
237
|
*
|
|
202
|
-
*
|
|
203
|
-
* - {id}-start-date
|
|
204
|
-
* - {id}-end-date
|
|
238
|
+
* **[Deprecated since v5.3.0]** If the property is a type of string, the name attributes for input elements are generated based on this property until you define name prop ex.:
|
|
239
|
+
* - \{id\}-start-date
|
|
240
|
+
* - \{id\}-end-date
|
|
205
241
|
*/
|
|
206
|
-
id:
|
|
242
|
+
id: {
|
|
243
|
+
type: [String, Array] as PropType<string | [string, string]>,
|
|
244
|
+
},
|
|
207
245
|
/**
|
|
208
246
|
* Toggle visibility or set the content of the input indicator.
|
|
209
247
|
*/
|
|
@@ -214,19 +252,19 @@ const CDateRangePicker = defineComponent({
|
|
|
214
252
|
/**
|
|
215
253
|
* Custom function to format the selected date into a string according to a custom format.
|
|
216
254
|
*
|
|
217
|
-
* @since
|
|
255
|
+
* @since 5.0.0
|
|
218
256
|
*/
|
|
219
257
|
inputDateFormat: Function,
|
|
220
258
|
/**
|
|
221
259
|
* Custom function to parse the input value into a valid Date object.
|
|
222
260
|
*
|
|
223
|
-
* @since
|
|
261
|
+
* @since 5.0.0
|
|
224
262
|
*/
|
|
225
263
|
inputDateParse: Function,
|
|
226
264
|
/**
|
|
227
265
|
* Defines the delay (in milliseconds) for the input field's onChange event.
|
|
228
266
|
*
|
|
229
|
-
* @since
|
|
267
|
+
* @since 5.0.0
|
|
230
268
|
*/
|
|
231
269
|
inputOnChangeDelay: {
|
|
232
270
|
type: Number,
|
|
@@ -266,6 +304,20 @@ const CDateRangePicker = defineComponent({
|
|
|
266
304
|
* Min selectable date.
|
|
267
305
|
*/
|
|
268
306
|
minDate: [Date, String],
|
|
307
|
+
/**
|
|
308
|
+
* The name attribute for the input elements. It can be a single string for both the start and end dates. If a single string is used, the postfix "-start-date" and "-end-date" will be automatically added to make the names unique. Alternatively, you can use an array of two strings for start and end dates separately.
|
|
309
|
+
*
|
|
310
|
+
* Example for single string: 'date-input'
|
|
311
|
+
* Result: 'date-input-start-date', 'date-input-end-date'
|
|
312
|
+
*
|
|
313
|
+
* Example for array: ['start-date-input', 'end-date-input']
|
|
314
|
+
* Result: 'start-date-input', 'end-date-input'
|
|
315
|
+
*
|
|
316
|
+
* @since 5.3.0
|
|
317
|
+
*/
|
|
318
|
+
name: {
|
|
319
|
+
type: [String, Array] as PropType<string | [string, string]>,
|
|
320
|
+
},
|
|
269
321
|
/**
|
|
270
322
|
* Show arrows navigation.
|
|
271
323
|
*/
|
|
@@ -283,7 +335,7 @@ const CDateRangePicker = defineComponent({
|
|
|
283
335
|
* Specifies a short hint that is visible in the input.
|
|
284
336
|
*/
|
|
285
337
|
placeholder: {
|
|
286
|
-
type: [String, Array] as PropType<string | string
|
|
338
|
+
type: [String, Array] as PropType<string | [string, string]>,
|
|
287
339
|
default: () => ['Start date', 'End date'],
|
|
288
340
|
},
|
|
289
341
|
/**
|
|
@@ -584,8 +636,8 @@ const CDateRangePicker = defineComponent({
|
|
|
584
636
|
return props.inputDateFormat
|
|
585
637
|
? props.inputDateFormat(_date)
|
|
586
638
|
: props.timepicker
|
|
587
|
-
|
|
588
|
-
|
|
639
|
+
? _date.toLocaleString(props.locale)
|
|
640
|
+
: _date.toLocaleDateString(props.locale)
|
|
589
641
|
}
|
|
590
642
|
|
|
591
643
|
const setInputValue = (date: Date | string | null) => {
|
|
@@ -698,7 +750,12 @@ const CDateRangePicker = defineComponent({
|
|
|
698
750
|
},
|
|
699
751
|
],
|
|
700
752
|
disabled: props.disabled,
|
|
701
|
-
...(props.id && {
|
|
753
|
+
...(props.id && { id: getInputIdOrName(props.id, props.range, 'start') }),
|
|
754
|
+
...(props.name && { name: getInputIdOrName(props.name, props.range, 'start') }),
|
|
755
|
+
...(props.id &&
|
|
756
|
+
!Array.isArray(props.id) &&
|
|
757
|
+
!props.name && { name: props.range ? `${props.id}-start-date` : `${props.id}-date` }), // TODO: remove in v6
|
|
758
|
+
|
|
702
759
|
onClick: () => {
|
|
703
760
|
selectEndDate.value = false
|
|
704
761
|
},
|
|
@@ -730,7 +787,11 @@ const CDateRangePicker = defineComponent({
|
|
|
730
787
|
},
|
|
731
788
|
],
|
|
732
789
|
disabled: props.disabled,
|
|
733
|
-
...(props.id && {
|
|
790
|
+
...(props.id && { id: getInputIdOrName(props.id, props.range, 'end') }),
|
|
791
|
+
...(props.name && { name: getInputIdOrName(props.name, props.range, 'end') }),
|
|
792
|
+
...(props.id &&
|
|
793
|
+
!Array.isArray(props.id) &&
|
|
794
|
+
!props.name && { name: `${props.id}-end-date` }), // TODO: remove in v6
|
|
734
795
|
onClick: () => {
|
|
735
796
|
selectEndDate.value = true
|
|
736
797
|
},
|
|
@@ -767,7 +828,7 @@ const CDateRangePicker = defineComponent({
|
|
|
767
828
|
feedback: props.feedback,
|
|
768
829
|
feedbackInvalid: props.feedbackInvalid,
|
|
769
830
|
feedbackValid: props.feedbackValid,
|
|
770
|
-
id: props.id,
|
|
831
|
+
...(props.id && !Array.isArray(props.id) && { id: props.id }),
|
|
771
832
|
invalid: isValid.value === false ? true : false,
|
|
772
833
|
label: props.label,
|
|
773
834
|
text: props.text,
|
|
@@ -791,7 +852,6 @@ const CDateRangePicker = defineComponent({
|
|
|
791
852
|
disabled: props.disabled,
|
|
792
853
|
dropdownClassNames: 'date-picker-dropdown',
|
|
793
854
|
footer: props.footer || props.timepicker,
|
|
794
|
-
id: props.id,
|
|
795
855
|
onHide: () => {
|
|
796
856
|
visible.value = false
|
|
797
857
|
emit('hide')
|
|
@@ -828,7 +888,7 @@ const CDateRangePicker = defineComponent({
|
|
|
828
888
|
if (props.range) {
|
|
829
889
|
endDate.value = date
|
|
830
890
|
}
|
|
831
|
-
|
|
891
|
+
|
|
832
892
|
calendarDate.value = date
|
|
833
893
|
},
|
|
834
894
|
},
|
|
@@ -900,6 +960,10 @@ const CDateRangePicker = defineComponent({
|
|
|
900
960
|
h(
|
|
901
961
|
CCalendar,
|
|
902
962
|
{
|
|
963
|
+
ariaNavNextMonthLabel: props.ariaNavNextMonthLabel,
|
|
964
|
+
ariaNavNextYearLabel: props.ariaNavNextYearLabel,
|
|
965
|
+
ariaNavPrevMonthLabel: props.ariaNavPrevMonthLabel,
|
|
966
|
+
ariaNavPrevYearLabel: props.ariaNavPrevYearLabel,
|
|
903
967
|
calendarDate: calendarDate.value,
|
|
904
968
|
calendars: isMobile.value ? 1 : props.calendars,
|
|
905
969
|
class: 'date-picker-calendars',
|
|
@@ -995,8 +1059,8 @@ const CDateRangePicker = defineComponent({
|
|
|
995
1059
|
? true
|
|
996
1060
|
: false
|
|
997
1061
|
: endDate.value === null
|
|
998
|
-
|
|
999
|
-
|
|
1062
|
+
? true
|
|
1063
|
+
: false,
|
|
1000
1064
|
locale: props.locale,
|
|
1001
1065
|
onChange: (_: any, __: any, date: Date) =>
|
|
1002
1066
|
index === 0
|
|
@@ -1,3 +1,19 @@
|
|
|
1
|
+
export const getInputIdOrName = (
|
|
2
|
+
attribute: string | [string, string],
|
|
3
|
+
range: boolean,
|
|
4
|
+
position?: 'start' | 'end',
|
|
5
|
+
): string => {
|
|
6
|
+
if (range && !Array.isArray(attribute)) {
|
|
7
|
+
return `${attribute}-${position}-date`
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
if (Array.isArray(attribute)) {
|
|
11
|
+
return position === 'start' ? attribute[0] : attribute[1]
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
return attribute
|
|
15
|
+
}
|
|
16
|
+
|
|
1
17
|
export const getLocalDateFromString = (string: string, locale: string, time?: boolean) => {
|
|
2
18
|
if (!Number.isNaN(Date.parse(string))) {
|
|
3
19
|
return new Date(Date.parse(string))
|
|
@@ -62,7 +62,7 @@ const CDropdown = defineComponent({
|
|
|
62
62
|
/**
|
|
63
63
|
* Appends the vue dropdown menu to a specific element. You can pass an HTML element or function that returns a single element. By default `document.body`.
|
|
64
64
|
*
|
|
65
|
-
* @since
|
|
65
|
+
* @since 5.0.0
|
|
66
66
|
*/
|
|
67
67
|
container: {
|
|
68
68
|
type: [Object, String] as PropType<HTMLElement | (() => HTMLElement) | string>,
|
|
@@ -115,7 +115,7 @@ const CDropdown = defineComponent({
|
|
|
115
115
|
/**
|
|
116
116
|
* Generates dropdown menu using Teleport.
|
|
117
117
|
*
|
|
118
|
-
* @since
|
|
118
|
+
* @since 5.0.0
|
|
119
119
|
*/
|
|
120
120
|
teleport: {
|
|
121
121
|
type: Boolean,
|
|
@@ -3,6 +3,13 @@ import { defineComponent, h } from 'vue'
|
|
|
3
3
|
const CFooter = defineComponent({
|
|
4
4
|
name: 'CFooter',
|
|
5
5
|
props: {
|
|
6
|
+
/**
|
|
7
|
+
* Component used for the root node. Either a string to use a HTML element or a component.
|
|
8
|
+
*/
|
|
9
|
+
as: {
|
|
10
|
+
type: String,
|
|
11
|
+
default: 'div',
|
|
12
|
+
},
|
|
6
13
|
/**
|
|
7
14
|
* Place footer in non-static positions.
|
|
8
15
|
*
|
|
@@ -18,7 +25,7 @@ const CFooter = defineComponent({
|
|
|
18
25
|
setup(props, { slots }) {
|
|
19
26
|
return () =>
|
|
20
27
|
h(
|
|
21
|
-
|
|
28
|
+
props.as,
|
|
22
29
|
{ class: ['footer', { [`footer-${props.position}`]: props.position }] },
|
|
23
30
|
slots.default && slots.default(),
|
|
24
31
|
)
|
|
@@ -19,6 +19,15 @@ const customWrapper = mount(Component, {
|
|
|
19
19
|
},
|
|
20
20
|
})
|
|
21
21
|
|
|
22
|
+
const customWrapperTwo = mount(Component, {
|
|
23
|
+
propsData: {
|
|
24
|
+
as: 'footer',
|
|
25
|
+
},
|
|
26
|
+
slots: {
|
|
27
|
+
default: 'Default slot',
|
|
28
|
+
},
|
|
29
|
+
})
|
|
30
|
+
|
|
22
31
|
describe(`Loads and display ${ComponentName} component`, () => {
|
|
23
32
|
it('has a name', () => {
|
|
24
33
|
expect(Component.name).toMatch(ComponentName)
|
|
@@ -42,3 +51,13 @@ describe(`Customize ${ComponentName} component`, () => {
|
|
|
42
51
|
expect(customWrapper.classes('footer-fixed')).toBe(true)
|
|
43
52
|
})
|
|
44
53
|
})
|
|
54
|
+
|
|
55
|
+
describe(`Customize (number two) ${ComponentName} component`, () => {
|
|
56
|
+
it('renders correctly', () => {
|
|
57
|
+
expect(customWrapperTwo.html()).toMatchSnapshot()
|
|
58
|
+
})
|
|
59
|
+
|
|
60
|
+
it('tag name is custom', () => {
|
|
61
|
+
expect(customWrapperTwo.element.tagName).toBe('FOOTER')
|
|
62
|
+
})
|
|
63
|
+
})
|
|
@@ -3,6 +3,13 @@ import { defineComponent, h } from 'vue'
|
|
|
3
3
|
const CHeader = defineComponent({
|
|
4
4
|
name: 'CHeader',
|
|
5
5
|
props: {
|
|
6
|
+
/**
|
|
7
|
+
* Component used for the root node. Either a string to use a HTML element or a component.
|
|
8
|
+
*/
|
|
9
|
+
as: {
|
|
10
|
+
type: String,
|
|
11
|
+
default: 'div',
|
|
12
|
+
},
|
|
6
13
|
/**
|
|
7
14
|
* Defines optional container wrapping children elements.
|
|
8
15
|
*
|
|
@@ -31,7 +38,7 @@ const CHeader = defineComponent({
|
|
|
31
38
|
setup(props, { slots }) {
|
|
32
39
|
return () =>
|
|
33
40
|
h(
|
|
34
|
-
|
|
41
|
+
props.as,
|
|
35
42
|
{ class: ['header', { [`header-${props.position}`]: props.position }] },
|
|
36
43
|
props.container
|
|
37
44
|
? h(
|
|
@@ -20,6 +20,15 @@ const customWrapper = mount(Component, {
|
|
|
20
20
|
},
|
|
21
21
|
})
|
|
22
22
|
|
|
23
|
+
const customWrapperTwo = mount(Component, {
|
|
24
|
+
propsData: {
|
|
25
|
+
as: 'header',
|
|
26
|
+
},
|
|
27
|
+
slots: {
|
|
28
|
+
default: 'Default slot',
|
|
29
|
+
},
|
|
30
|
+
})
|
|
31
|
+
|
|
23
32
|
describe(`Loads and display ${ComponentName} component`, () => {
|
|
24
33
|
it('has a name', () => {
|
|
25
34
|
expect(Component.name).toMatch(ComponentName)
|
|
@@ -44,3 +53,13 @@ describe(`Customize ${ComponentName} component`, () => {
|
|
|
44
53
|
expect(customWrapper.find('.container-lg').classes('container-lg')).toBe(true)
|
|
45
54
|
})
|
|
46
55
|
})
|
|
56
|
+
|
|
57
|
+
|
|
58
|
+
describe(`Customize (number two) ${ComponentName} component`, () => {
|
|
59
|
+
it('renders correctly', () => {
|
|
60
|
+
expect(customWrapperTwo.html()).toMatchSnapshot()
|
|
61
|
+
})
|
|
62
|
+
it('tag name is custom', () => {
|
|
63
|
+
expect(customWrapperTwo.element.tagName).toBe('HEADER')
|
|
64
|
+
})
|
|
65
|
+
})
|