@dimailn/vuetify 2.7.2-alpha27 → 2.7.2-alpha29
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/dist/vuetify.js +1493 -325
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +1 -1
- package/dist/vuetify.min.js +2 -2
- package/es5/components/VAlert/VAlert.js +38 -9
- package/es5/components/VAlert/VAlert.js.map +1 -1
- package/es5/components/VAutocomplete/VAutocomplete.js +1 -0
- package/es5/components/VAutocomplete/VAutocomplete.js.map +1 -1
- package/es5/components/VBadge/VBadge.js +28 -0
- package/es5/components/VBadge/VBadge.js.map +1 -1
- package/es5/components/VBanner/VBanner.js +34 -6
- package/es5/components/VBanner/VBanner.js.map +1 -1
- package/es5/components/VBottomNavigation/VBottomNavigation.js +25 -0
- package/es5/components/VBottomNavigation/VBottomNavigation.js.map +1 -1
- package/es5/components/VCarousel/VCarousel.js +28 -3
- package/es5/components/VCarousel/VCarousel.js.map +1 -1
- package/es5/components/VCheckbox/VSimpleCheckbox.js +30 -2
- package/es5/components/VCheckbox/VSimpleCheckbox.js.map +1 -1
- package/es5/components/VChip/VChip.js +1 -0
- package/es5/components/VChip/VChip.js.map +1 -1
- package/es5/components/VColorPicker/VColorPicker.js +30 -2
- package/es5/components/VColorPicker/VColorPicker.js.map +1 -1
- package/es5/components/VCombobox/VCombobox.js +1 -0
- package/es5/components/VCombobox/VCombobox.js.map +1 -1
- package/es5/components/VDataIterator/VDataFooter.js +16 -7
- package/es5/components/VDataIterator/VDataFooter.js.map +1 -1
- package/es5/components/VDataIterator/VDataIterator.js +42 -47
- package/es5/components/VDataIterator/VDataIterator.js.map +1 -1
- package/es5/components/VDataTable/RowGroup.js +46 -15
- package/es5/components/VDataTable/RowGroup.js.map +1 -1
- package/es5/components/VDataTable/VDataTable.js +10 -18
- package/es5/components/VDataTable/VDataTable.js.map +1 -1
- package/es5/components/VDataTable/VDataTableHeader.js.map +1 -1
- package/es5/components/VDataTable/VDataTableHeaderDesktop.js +3 -0
- package/es5/components/VDataTable/VDataTableHeaderDesktop.js.map +1 -1
- package/es5/components/VDataTable/VDataTableHeaderMobile.js +28 -37
- package/es5/components/VDataTable/VDataTableHeaderMobile.js.map +1 -1
- package/es5/components/VDataTable/VEditDialog.js +3 -4
- package/es5/components/VDataTable/VEditDialog.js.map +1 -1
- package/es5/components/VDataTable/VSimpleTable.js +1 -1
- package/es5/components/VDataTable/VSimpleTable.js.map +1 -1
- package/es5/components/VDataTable/VVirtualTable.js +5 -5
- package/es5/components/VDataTable/VVirtualTable.js.map +1 -1
- package/es5/components/VDataTable/mixins/header.js +1 -1
- package/es5/components/VDataTable/mixins/header.js.map +1 -1
- package/es5/components/VDatePicker/VDatePicker.js +21 -9
- package/es5/components/VDatePicker/VDatePicker.js.map +1 -1
- package/es5/components/VDatePicker/VDatePickerHeader.js +24 -8
- package/es5/components/VDatePicker/VDatePickerHeader.js.map +1 -1
- package/es5/components/VDatePicker/VDatePickerTitle.js +33 -8
- package/es5/components/VDatePicker/VDatePickerTitle.js.map +1 -1
- package/es5/components/VDatePicker/VDatePickerYears.js +38 -13
- package/es5/components/VDatePicker/VDatePickerYears.js.map +1 -1
- package/es5/components/VDatePicker/mixins/date-picker-table.js +33 -17
- package/es5/components/VDatePicker/mixins/date-picker-table.js.map +1 -1
- package/es5/components/VInput/VInput.js +36 -8
- package/es5/components/VInput/VInput.js.map +1 -1
- package/es5/components/VList/VListGroup.js +47 -21
- package/es5/components/VList/VListGroup.js.map +1 -1
- package/es5/components/VList/VListItem.js +33 -6
- package/es5/components/VList/VListItem.js.map +1 -1
- package/es5/components/VMenu/VMenu.js +56 -31
- package/es5/components/VMenu/VMenu.js.map +1 -1
- package/es5/components/VMessages/VMessages.js +30 -7
- package/es5/components/VMessages/VMessages.js.map +1 -1
- package/es5/components/VNavigationDrawer/VNavigationDrawer.js +36 -9
- package/es5/components/VNavigationDrawer/VNavigationDrawer.js.map +1 -1
- package/es5/components/VOtpInput/VOtpInput.js +36 -0
- package/es5/components/VOtpInput/VOtpInput.js.map +1 -1
- package/es5/components/VOverlay/VOverlay.js +28 -0
- package/es5/components/VOverlay/VOverlay.js.map +1 -1
- package/es5/components/VPagination/VPagination.js +30 -6
- package/es5/components/VPagination/VPagination.js.map +1 -1
- package/es5/components/VProgressLinear/VProgressLinear.js +28 -0
- package/es5/components/VProgressLinear/VProgressLinear.js.map +1 -1
- package/es5/components/VRadioGroup/VRadioGroup.js +28 -0
- package/es5/components/VRadioGroup/VRadioGroup.js.map +1 -1
- package/es5/components/VRating/VRating.js +45 -17
- package/es5/components/VRating/VRating.js.map +1 -1
- package/es5/components/VSelect/VSelect.js +112 -84
- package/es5/components/VSelect/VSelect.js.map +1 -1
- package/es5/components/VSelect/VSelectList.js +73 -19
- package/es5/components/VSelect/VSelectList.js.map +1 -1
- package/es5/components/VSlider/VSlider.js +42 -16
- package/es5/components/VSlider/VSlider.js.map +1 -1
- package/es5/components/VSpeedDial/VSpeedDial.js +10 -8
- package/es5/components/VSpeedDial/VSpeedDial.js.map +1 -1
- package/es5/components/VTabs/VTabs.js +45 -17
- package/es5/components/VTabs/VTabs.js.map +1 -1
- package/es5/components/VTooltip/VTooltip.js +3 -3
- package/es5/components/VTooltip/VTooltip.js.map +1 -1
- package/es5/components/VTreeview/VTreeview.js +0 -7
- package/es5/components/VTreeview/VTreeview.js.map +1 -1
- package/es5/framework.js +1 -1
- package/es5/mixins/routable/index.js +5 -2
- package/es5/mixins/routable/index.js.map +1 -1
- package/es5/mixins/validatable/index.js +24 -0
- package/es5/mixins/validatable/index.js.map +1 -1
- package/es5/util/console.js +49 -18
- package/es5/util/console.js.map +1 -1
- package/es5/util/helpers.js +5 -1
- package/es5/util/helpers.js.map +1 -1
- package/lib/components/VAlert/VAlert.js +12 -7
- package/lib/components/VAlert/VAlert.js.map +1 -1
- package/lib/components/VAutocomplete/VAutocomplete.js +1 -0
- package/lib/components/VAutocomplete/VAutocomplete.js.map +1 -1
- package/lib/components/VBadge/VBadge.js +11 -0
- package/lib/components/VBadge/VBadge.js.map +1 -1
- package/lib/components/VBanner/VBanner.js +11 -0
- package/lib/components/VBanner/VBanner.js.map +1 -1
- package/lib/components/VBottomNavigation/VBottomNavigation.js +7 -0
- package/lib/components/VBottomNavigation/VBottomNavigation.js.map +1 -1
- package/lib/components/VCarousel/VCarousel.js +7 -0
- package/lib/components/VCarousel/VCarousel.js.map +1 -1
- package/lib/components/VCheckbox/VSimpleCheckbox.js +11 -0
- package/lib/components/VCheckbox/VSimpleCheckbox.js.map +1 -1
- package/lib/components/VChip/VChip.js +1 -0
- package/lib/components/VChip/VChip.js.map +1 -1
- package/lib/components/VColorPicker/VColorPicker.js +12 -1
- package/lib/components/VColorPicker/VColorPicker.js.map +1 -1
- package/lib/components/VCombobox/VCombobox.js +1 -0
- package/lib/components/VCombobox/VCombobox.js.map +1 -1
- package/lib/components/VDataIterator/VDataFooter.js +14 -7
- package/lib/components/VDataIterator/VDataFooter.js.map +1 -1
- package/lib/components/VDataIterator/VDataIterator.js +26 -31
- package/lib/components/VDataIterator/VDataIterator.js.map +1 -1
- package/lib/components/VDataTable/RowGroup.js +30 -14
- package/lib/components/VDataTable/RowGroup.js.map +1 -1
- package/lib/components/VDataTable/VDataTable.js +8 -15
- package/lib/components/VDataTable/VDataTable.js.map +1 -1
- package/lib/components/VDataTable/VDataTableHeader.js +1 -1
- package/lib/components/VDataTable/VDataTableHeader.js.map +1 -1
- package/lib/components/VDataTable/VDataTableHeaderDesktop.js +3 -0
- package/lib/components/VDataTable/VDataTableHeaderDesktop.js.map +1 -1
- package/lib/components/VDataTable/VDataTableHeaderMobile.js +17 -25
- package/lib/components/VDataTable/VDataTableHeaderMobile.js.map +1 -1
- package/lib/components/VDataTable/VEditDialog.js +3 -4
- package/lib/components/VDataTable/VEditDialog.js.map +1 -1
- package/lib/components/VDataTable/VSimpleTable.js +1 -1
- package/lib/components/VDataTable/VSimpleTable.js.map +1 -1
- package/lib/components/VDataTable/VVirtualTable.js +1 -2
- package/lib/components/VDataTable/VVirtualTable.js.map +1 -1
- package/lib/components/VDataTable/mixins/header.js +1 -1
- package/lib/components/VDataTable/mixins/header.js.map +1 -1
- package/lib/components/VDatePicker/VDatePicker.js +7 -1
- package/lib/components/VDatePicker/VDatePicker.js.map +1 -1
- package/lib/components/VDatePicker/VDatePickerHeader.js +12 -1
- package/lib/components/VDatePicker/VDatePickerHeader.js.map +1 -1
- package/lib/components/VDatePicker/VDatePickerTitle.js +11 -0
- package/lib/components/VDatePicker/VDatePickerTitle.js.map +1 -1
- package/lib/components/VDatePicker/VDatePickerYears.js +11 -1
- package/lib/components/VDatePicker/VDatePickerYears.js.map +1 -1
- package/lib/components/VDatePicker/mixins/date-picker-table.js +12 -1
- package/lib/components/VDatePicker/mixins/date-picker-table.js.map +1 -1
- package/lib/components/VInput/VInput.js +13 -3
- package/lib/components/VInput/VInput.js.map +1 -1
- package/lib/components/VList/VListGroup.js +16 -8
- package/lib/components/VList/VListGroup.js.map +1 -1
- package/lib/components/VList/VListItem.js +12 -3
- package/lib/components/VList/VListItem.js.map +1 -1
- package/lib/components/VMenu/VMenu.js +15 -4
- package/lib/components/VMenu/VMenu.js.map +1 -1
- package/lib/components/VMessages/VMessages.js +13 -2
- package/lib/components/VMessages/VMessages.js.map +1 -1
- package/lib/components/VNavigationDrawer/VNavigationDrawer.js +11 -2
- package/lib/components/VNavigationDrawer/VNavigationDrawer.js.map +1 -1
- package/lib/components/VOtpInput/VOtpInput.js +48 -0
- package/lib/components/VOtpInput/VOtpInput.js.map +1 -1
- package/lib/components/VOverlay/VOverlay.js +11 -0
- package/lib/components/VOverlay/VOverlay.js.map +1 -1
- package/lib/components/VPagination/VPagination.js +11 -0
- package/lib/components/VPagination/VPagination.js.map +1 -1
- package/lib/components/VProgressLinear/VProgressLinear.js +11 -0
- package/lib/components/VProgressLinear/VProgressLinear.js.map +1 -1
- package/lib/components/VRadioGroup/VRadioGroup.js +11 -0
- package/lib/components/VRadioGroup/VRadioGroup.js.map +1 -1
- package/lib/components/VRating/VRating.js +11 -0
- package/lib/components/VRating/VRating.js.map +1 -1
- package/lib/components/VSelect/VSelect.js +52 -36
- package/lib/components/VSelect/VSelect.js.map +1 -1
- package/lib/components/VSelect/VSelectList.js +32 -8
- package/lib/components/VSelect/VSelectList.js.map +1 -1
- package/lib/components/VSlider/VSlider.js +11 -1
- package/lib/components/VSlider/VSlider.js.map +1 -1
- package/lib/components/VSpeedDial/VSpeedDial.js +7 -7
- package/lib/components/VSpeedDial/VSpeedDial.js.map +1 -1
- package/lib/components/VTabs/VTabs.js +11 -0
- package/lib/components/VTabs/VTabs.js.map +1 -1
- package/lib/components/VTooltip/VTooltip.js +3 -3
- package/lib/components/VTooltip/VTooltip.js.map +1 -1
- package/lib/components/VTreeview/VTreeview.js +0 -6
- package/lib/components/VTreeview/VTreeview.js.map +1 -1
- package/lib/framework.js +1 -1
- package/lib/mixins/routable/index.js +5 -2
- package/lib/mixins/routable/index.js.map +1 -1
- package/lib/mixins/validatable/index.js +7 -1
- package/lib/mixins/validatable/index.js.map +1 -1
- package/lib/util/console.js +47 -17
- package/lib/util/console.js.map +1 -1
- package/lib/util/helpers.js +5 -1
- package/lib/util/helpers.js.map +1 -1
- package/package.json +1 -1
- package/src/components/VAlert/VAlert.ts +17 -8
- package/src/components/VAlert/__tests__/VAlert.spec.ts +78 -50
- package/src/components/VAlert/__tests__/__snapshots__/VAlert.spec.ts.snap +16 -18
- package/src/components/VApp/__tests__/VApp.spec.ts +24 -18
- package/src/components/VApp/__tests__/__snapshots__/VApp.spec.ts.snap +4 -4
- package/src/components/VAppBar/__tests__/VAppBar.spec.ts +256 -74
- package/src/components/VAppBar/__tests__/VAppBarNavIcon.spec.ts +2 -6
- package/src/components/VAppBar/__tests__/__snapshots__/VAppBar.spec.ts.snap +13 -4
- package/src/components/VAppBar/__tests__/__snapshots__/VAppBarNavIcon.spec.ts.snap +3 -4
- package/src/components/VAutocomplete/VAutocomplete.ts +22 -0
- package/src/components/VAutocomplete/__tests__/VAutocomplete.spec.ts +51 -53
- package/src/components/VAutocomplete/__tests__/VAutocomplete2.spec.ts +77 -48
- package/src/components/VAutocomplete/__tests__/VAutocomplete3.spec.ts +101 -39
- package/src/components/VBadge/VBadge.ts +13 -0
- package/src/components/VBanner/VBanner.ts +13 -0
- package/src/components/VBanner/__tests__/VBanner.spec.ts +35 -36
- package/src/components/VBanner/__tests__/__snapshots__/VBanner.spec.ts.snap +1 -1
- package/src/components/VBottomNavigation/VBottomNavigation.ts +10 -0
- package/src/components/VBtn/__tests__/VBtn.spec.ts +1 -1
- package/src/components/VCard/__tests__/VCard.spec.ts +46 -28
- package/src/components/VCard/__tests__/__snapshots__/VCard.spec.ts.snap +2 -2
- package/src/components/VCarousel/VCarousel.ts +11 -0
- package/src/components/VCheckbox/VSimpleCheckbox.ts +13 -0
- package/src/components/VCheckbox/__tests__/VCheckbox.spec.ts +157 -152
- package/src/components/VChip/VChip.ts +1 -0
- package/src/components/VChip/__tests__/VChip.spec.ts +50 -50
- package/src/components/VChip/__tests__/__snapshots__/VChip.spec.ts.snap +4 -4
- package/src/components/VChipGroup/__tests__/VChipGroup.spec.ts +14 -21
- package/src/components/VColorPicker/VColorPicker.ts +13 -0
- package/src/components/VColorPicker/__tests__/__snapshots__/VColorPicker.spec.ts.snap +35 -35
- package/src/components/VColorPicker/__tests__/__snapshots__/VColorPickerEdit.spec.ts.snap +10 -10
- package/src/components/VCombobox/VCombobox.ts +23 -0
- package/src/components/VCombobox/__tests__/VCombobox-multiple.spec.ts +118 -110
- package/src/components/VCombobox/__tests__/VCombobox.spec.ts +119 -93
- package/src/components/VData/__tests__/VData.spec.ts +69 -90
- package/src/components/VDataIterator/VDataFooter.ts +14 -9
- package/src/components/VDataIterator/VDataIterator.ts +46 -34
- package/src/components/VDataIterator/__tests__/VDataFooter.spec.ts +38 -39
- package/src/components/VDataIterator/__tests__/VDataIterator.spec.ts +90 -122
- package/src/components/VDataIterator/__tests__/__snapshots__/VDataFooter.spec.ts.snap +92 -82
- package/src/components/VDataIterator/__tests__/__snapshots__/VDataIterator.spec.ts.snap +79 -69
- package/src/components/VDataTable/RowGroup.ts +33 -16
- package/src/components/VDataTable/VDataTable.ts +8 -15
- package/src/components/VDataTable/VDataTableHeader.ts +2 -2
- package/src/components/VDataTable/VDataTableHeaderDesktop.ts +4 -0
- package/src/components/VDataTable/VDataTableHeaderMobile.ts +16 -25
- package/src/components/VDataTable/VEditDialog.ts +3 -3
- package/src/components/VDataTable/VSimpleTable.ts +2 -3
- package/src/components/VDataTable/VVirtualTable.ts +1 -2
- package/src/components/VDataTable/__tests__/MobileRow.spec.ts +55 -66
- package/src/components/VDataTable/__tests__/Row.spec.ts +64 -73
- package/src/components/VDataTable/__tests__/RowGroup.spec.ts +7 -5
- package/src/components/VDataTable/__tests__/VDataTable.spec.ts +916 -998
- package/src/components/VDataTable/__tests__/VDataTableHeader.spec.ts +39 -29
- package/src/components/VDataTable/__tests__/VEditDialog.spec.ts +33 -24
- package/src/components/VDataTable/__tests__/VSimpleTable.spec.ts +55 -29
- package/src/components/VDataTable/__tests__/VVirtualTable.spec.ts +13 -15
- package/src/components/VDataTable/__tests__/__snapshots__/Row.spec.ts.snap +30 -0
- package/src/components/VDataTable/__tests__/__snapshots__/VDataTable.spec.ts.snap +2543 -2086
- package/src/components/VDataTable/__tests__/__snapshots__/VDataTableHeader.spec.ts.snap +115 -144
- package/src/components/VDataTable/__tests__/__snapshots__/VEditDialog.spec.ts.snap +6 -6
- package/src/components/VDataTable/__tests__/__snapshots__/VSimpleTable.spec.ts.snap +22 -18
- package/src/components/VDataTable/mixins/__tests__/__snapshots__/header.spec.ts.snap +10 -13
- package/src/components/VDataTable/mixins/__tests__/header.spec.ts +15 -15
- package/src/components/VDataTable/mixins/header.ts +1 -1
- package/src/components/VDatePicker/VDatePicker.ts +11 -1
- package/src/components/VDatePicker/VDatePickerHeader.ts +13 -0
- package/src/components/VDatePicker/VDatePickerTitle.ts +12 -0
- package/src/components/VDatePicker/VDatePickerYears.ts +13 -0
- package/src/components/VDatePicker/mixins/date-picker-table.ts +13 -0
- package/src/components/VDivider/__tests__/VDivider.spec.ts +11 -15
- package/src/components/VDivider/__tests__/__snapshots__/VDivider.spec.ts.snap +2 -2
- package/src/components/VGrid/__tests__/VCol.spec.ts +17 -17
- package/src/components/VGrid/__tests__/VContainer.spec.ts +58 -3
- package/src/components/VGrid/__tests__/VFlex.spec.ts +3 -3
- package/src/components/VGrid/__tests__/VGrid.spec.ts +12 -10
- package/src/components/VGrid/__tests__/VLayout.spec.ts +3 -3
- package/src/components/VIcon/__tests__/VIcon.spec.ts +176 -70
- package/src/components/VImg/__tests__/__snapshots__/VImg.spec.ts.snap +55 -55
- package/src/components/VInput/VInput.ts +18 -5
- package/src/components/VItemGroup/__tests__/VItem.spec.ts +22 -37
- package/src/components/VItemGroup/__tests__/VItemGroup.spec.ts +96 -124
- package/src/components/VItemGroup/__tests__/__snapshots__/VItem.spec.ts.snap +2 -0
- package/src/components/VLabel/__tests__/VLabel.spec.ts +240 -14
- package/src/components/VLazy/__tests__/VLazy.spec.ts +5 -4
- package/src/components/VLazy/__tests__/__snapshots__/VLazy.spec.ts.snap +2 -1
- package/src/components/VList/VListGroup.ts +22 -10
- package/src/components/VList/VListItem.ts +19 -4
- package/src/components/VList/__tests__/VList.spec.ts +13 -12
- package/src/components/VList/__tests__/VListGroup.spec.ts +59 -51
- package/src/components/VList/__tests__/VListItem.spec.ts +142 -63
- package/src/components/VList/__tests__/VListItemAvatar.spec.ts +5 -2
- package/src/components/VList/__tests__/VListItemGroup.spec.ts +5 -2
- package/src/components/VList/__tests__/__snapshots__/VList.spec.ts.snap +10 -10
- package/src/components/VList/__tests__/__snapshots__/VListGroup.spec.ts.snap +5 -6
- package/src/components/VList/__tests__/__snapshots__/VListItem.spec.ts.snap +1 -1
- package/src/components/VMain/__tests__/VMain.spec.ts +71 -17
- package/src/components/VMenu/VMenu.ts +22 -4
- package/src/components/VMenu/__tests__/VMenu.spec.ts +90 -69
- package/src/components/VMenu/__tests__/__snapshots__/VMenu.spec.ts.snap +3 -5
- package/src/components/VMessages/VMessages.ts +15 -4
- package/src/components/VMessages/__tests__/VMessages.spec.ts +55 -16
- package/src/components/VMessages/__tests__/__snapshots__/VMessages.spec.ts.snap +16 -25
- package/src/components/VNavigationDrawer/VNavigationDrawer.ts +21 -11
- package/src/components/VOtpInput/VOtpInput.ts +37 -1
- package/src/components/VOverlay/VOverlay.ts +12 -0
- package/src/components/VPagination/VPagination.ts +23 -9
- package/src/components/VParallax/__tests__/__snapshots__/VParallax.spec.ts.snap +8 -8
- package/src/components/VPicker/__tests__/__snapshots__/VPicker.spec.ts.snap +2 -2
- package/src/components/VProgressLinear/VProgressLinear.ts +13 -0
- package/src/components/VRadioGroup/VRadioGroup.ts +14 -0
- package/src/components/VRating/VRating.ts +13 -0
- package/src/components/VResponsive/__tests__/__snapshots__/VResponsive.spec.ts.snap +2 -2
- package/src/components/VSelect/VSelect.ts +60 -43
- package/src/components/VSelect/VSelectList.ts +33 -12
- package/src/components/VSelect/__tests__/VSelect.spec.ts +166 -125
- package/src/components/VSelect/__tests__/VSelect2.spec.ts +127 -111
- package/src/components/VSelect/__tests__/VSelect3.spec.ts +109 -91
- package/src/components/VSelect/__tests__/VSelect4.spec.ts +79 -68
- package/src/components/VSelect/__tests__/VSelectList.spec.ts +23 -31
- package/src/components/VSelect/__tests__/__snapshots__/VSelect.spec.ts.snap +58 -62
- package/src/components/VSelect/__tests__/__snapshots__/VSelect2.spec.ts.snap +50 -62
- package/src/components/VSelect/__tests__/__snapshots__/VSelect3.spec.ts.snap +10 -14
- package/src/components/VSlider/VSlider.ts +14 -1
- package/src/components/VSparkline/__tests__/VSparkline.spec.ts +33 -35
- package/src/components/VSpeedDial/VSpeedDial.ts +7 -8
- package/src/components/VSpeedDial/__tests__/VSpeedDial.spec.ts +21 -13
- package/src/components/VSpeedDial/__tests__/__snapshots__/VSpeedDial.spec.ts.snap +6 -6
- package/src/components/VStepper/__tests__/VStepper.spec.ts +4 -1
- package/src/components/VStepper/__tests__/VStepperContent.spec.ts +104 -110
- package/src/components/VStepper/__tests__/VStepperStep.spec.ts +51 -44
- package/src/components/VSwitch/__tests__/VSwitch.spec.ts +30 -37
- package/src/components/VTabs/VTabs.ts +14 -0
- package/src/components/VTabs/__tests__/VTabs.spec.ts +0 -7
- package/src/components/VTextField/__tests__/VTextField.spec.ts +342 -246
- package/src/components/VTextarea/__tests__/VTextarea.spec.ts +112 -35
- package/src/components/VTimePicker/__tests__/__snapshots__/VTimePicker.spec.ts.snap +0 -40
- package/src/components/VToolbar/__tests__/VToolbar.spec.ts +49 -25
- package/src/components/VTooltip/VTooltip.ts +3 -3
- package/src/components/VTooltip/__tests__/__snapshots__/VTooltip.spec.ts.snap +34 -18
- package/src/components/VTreeview/VTreeview.ts +0 -5
- package/src/mixins/routable/index.ts +6 -4
- package/src/mixins/validatable/index.ts +11 -1
- package/src/util/__tests__/console.spec.ts +124 -11
- package/src/util/__tests__/helpers.spec.ts +59 -31
- package/src/util/console.ts +43 -24
- package/src/util/helpers.ts +8 -4
|
@@ -6,6 +6,7 @@ import VCombobox from '../VCombobox'
|
|
|
6
6
|
import {
|
|
7
7
|
mount,
|
|
8
8
|
Wrapper,
|
|
9
|
+
enableAutoUnmount,
|
|
9
10
|
} from '@vue/test-utils'
|
|
10
11
|
import { keyCodes } from '../../../util/helpers'
|
|
11
12
|
|
|
@@ -13,21 +14,27 @@ describe('VCombobox.ts', () => {
|
|
|
13
14
|
type Instance = InstanceType<typeof VCombobox>
|
|
14
15
|
let mountFunction: (options?: object) => Wrapper<Instance>
|
|
15
16
|
|
|
17
|
+
enableAutoUnmount(afterEach)
|
|
18
|
+
|
|
16
19
|
beforeEach(() => {
|
|
17
20
|
document.body.setAttribute('data-app', 'true')
|
|
18
21
|
|
|
19
22
|
mountFunction = (options = {}) => {
|
|
20
23
|
return mount(VCombobox, {
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
24
|
+
global: {
|
|
25
|
+
mocks: {
|
|
26
|
+
$vuetify: {
|
|
27
|
+
lang: {
|
|
28
|
+
t: (val: string) => val,
|
|
29
|
+
},
|
|
30
|
+
theme: {
|
|
31
|
+
dark: false,
|
|
32
|
+
},
|
|
33
|
+
icons: {
|
|
34
|
+
component: null,
|
|
35
|
+
},
|
|
30
36
|
},
|
|
37
|
+
onScroll: jest.fn(),
|
|
31
38
|
},
|
|
32
39
|
},
|
|
33
40
|
...options,
|
|
@@ -38,19 +45,18 @@ describe('VCombobox.ts', () => {
|
|
|
38
45
|
function createMultipleCombobox (propsData) {
|
|
39
46
|
const change = jest.fn()
|
|
40
47
|
const wrapper = mountFunction({
|
|
41
|
-
|
|
42
|
-
|
|
48
|
+
attachTo: document.body,
|
|
49
|
+
props: Object.assign({
|
|
43
50
|
multiple: true,
|
|
44
|
-
|
|
51
|
+
modelValue: [],
|
|
45
52
|
}, propsData),
|
|
46
53
|
})
|
|
47
54
|
|
|
48
|
-
wrapper.vm.$on('input', change)
|
|
49
55
|
return { wrapper, change }
|
|
50
56
|
}
|
|
51
57
|
|
|
52
58
|
it('should create new values when tagging', async () => {
|
|
53
|
-
const { wrapper
|
|
59
|
+
const { wrapper } = createMultipleCombobox({})
|
|
54
60
|
|
|
55
61
|
const input = wrapper.find('input')
|
|
56
62
|
const element = input.element as HTMLInputElement
|
|
@@ -62,12 +68,13 @@ describe('VCombobox.ts', () => {
|
|
|
62
68
|
|
|
63
69
|
await wrapper.vm.$nextTick()
|
|
64
70
|
|
|
65
|
-
expect(
|
|
71
|
+
expect(wrapper.emitted('update:modelValue')).toBeTruthy()
|
|
72
|
+
expect(wrapper.emitted('update:modelValue')[0]).toEqual([['foo']])
|
|
66
73
|
})
|
|
67
74
|
|
|
68
75
|
it('should change selectedIndex with keyboard', async () => {
|
|
69
76
|
const { wrapper } = createMultipleCombobox({
|
|
70
|
-
|
|
77
|
+
modelValue: ['foo', 'bar'],
|
|
71
78
|
})
|
|
72
79
|
|
|
73
80
|
const input = wrapper.find('input')
|
|
@@ -83,8 +90,8 @@ describe('VCombobox.ts', () => {
|
|
|
83
90
|
})
|
|
84
91
|
|
|
85
92
|
it('should delete a tagged item when selected and backspace/delete is pressed', async () => {
|
|
86
|
-
const { wrapper
|
|
87
|
-
|
|
93
|
+
const { wrapper } = createMultipleCombobox({
|
|
94
|
+
modelValue: ['foo', 'bar'],
|
|
88
95
|
})
|
|
89
96
|
|
|
90
97
|
const input = wrapper.find('input')
|
|
@@ -95,7 +102,8 @@ describe('VCombobox.ts', () => {
|
|
|
95
102
|
|
|
96
103
|
input.trigger('keydown.delete')
|
|
97
104
|
await wrapper.vm.$nextTick()
|
|
98
|
-
expect(
|
|
105
|
+
expect(wrapper.emitted('update:modelValue')).toBeTruthy()
|
|
106
|
+
expect(wrapper.emitted('update:modelValue')[0]).toEqual([['foo']])
|
|
99
107
|
expect(wrapper.vm.selectedIndex).toBe(0)
|
|
100
108
|
|
|
101
109
|
const backspace = new Event('keydown')
|
|
@@ -103,12 +111,12 @@ describe('VCombobox.ts', () => {
|
|
|
103
111
|
|
|
104
112
|
input.element.dispatchEvent(backspace) // Avoriaz doesn't wrap keydown.backspace
|
|
105
113
|
await wrapper.vm.$nextTick()
|
|
106
|
-
expect(
|
|
114
|
+
expect(wrapper.emitted('update:modelValue')[1]).toEqual([[]])
|
|
107
115
|
expect(wrapper.vm.selectedIndex).toBe(-1)
|
|
108
116
|
})
|
|
109
117
|
|
|
110
118
|
it('should add a tag on enter using the current searchValue', async () => {
|
|
111
|
-
const { wrapper
|
|
119
|
+
const { wrapper } = createMultipleCombobox({
|
|
112
120
|
items: ['bar'],
|
|
113
121
|
})
|
|
114
122
|
|
|
@@ -124,12 +132,13 @@ describe('VCombobox.ts', () => {
|
|
|
124
132
|
input.trigger('keydown.enter')
|
|
125
133
|
await wrapper.vm.$nextTick()
|
|
126
134
|
|
|
127
|
-
expect(
|
|
135
|
+
expect(wrapper.emitted('update:modelValue')).toBeTruthy()
|
|
136
|
+
expect(wrapper.emitted('update:modelValue')[0]).toEqual([['ba']])
|
|
128
137
|
})
|
|
129
138
|
|
|
130
139
|
it.skip('should add a tag on left arrow and select the previous tag', async () => {
|
|
131
|
-
const { wrapper
|
|
132
|
-
|
|
140
|
+
const { wrapper } = createMultipleCombobox({
|
|
141
|
+
modelValue: ['foo'],
|
|
133
142
|
items: ['foo', 'bar'],
|
|
134
143
|
})
|
|
135
144
|
|
|
@@ -141,13 +150,14 @@ describe('VCombobox.ts', () => {
|
|
|
141
150
|
input.trigger('input')
|
|
142
151
|
input.trigger('keydown.left')
|
|
143
152
|
|
|
144
|
-
expect(
|
|
153
|
+
expect(wrapper.emitted('update:modelValue')).toBeTruthy()
|
|
154
|
+
expect(wrapper.emitted('update:modelValue')[0]).toEqual([['foo', 'b']])
|
|
145
155
|
expect(wrapper.vm.selectedIndex).toBe(0)
|
|
146
156
|
})
|
|
147
157
|
|
|
148
158
|
it('should remove a duplicate tag and add it to the end', async () => {
|
|
149
|
-
const { wrapper
|
|
150
|
-
|
|
159
|
+
const { wrapper } = createMultipleCombobox({
|
|
160
|
+
modelValue: ['foo', 'bar'],
|
|
151
161
|
})
|
|
152
162
|
|
|
153
163
|
const input = wrapper.find('input')
|
|
@@ -161,11 +171,12 @@ describe('VCombobox.ts', () => {
|
|
|
161
171
|
input.trigger('keydown.enter')
|
|
162
172
|
await wrapper.vm.$nextTick()
|
|
163
173
|
|
|
164
|
-
expect(
|
|
174
|
+
expect(wrapper.emitted('update:modelValue')).toBeTruthy()
|
|
175
|
+
expect(wrapper.emitted('update:modelValue')[0]).toEqual([['foo', 'bar']])
|
|
165
176
|
})
|
|
166
177
|
|
|
167
178
|
it('should add tag with valid search value on blur', async () => {
|
|
168
|
-
const { wrapper
|
|
179
|
+
const { wrapper } = createMultipleCombobox({})
|
|
169
180
|
|
|
170
181
|
const input = wrapper.find('input')
|
|
171
182
|
const element = input.element as HTMLInputElement
|
|
@@ -177,13 +188,14 @@ describe('VCombobox.ts', () => {
|
|
|
177
188
|
|
|
178
189
|
await wrapper.vm.$nextTick()
|
|
179
190
|
|
|
180
|
-
expect(
|
|
191
|
+
expect(wrapper.emitted('update:modelValue')).toBeTruthy()
|
|
192
|
+
expect(wrapper.emitted('update:modelValue')[0]).toEqual([['bar']])
|
|
181
193
|
})
|
|
182
194
|
|
|
183
195
|
it('should be able to add a tag from user input after deleting a tag with delete', async () => {
|
|
184
|
-
const { wrapper
|
|
196
|
+
const { wrapper } = createMultipleCombobox({
|
|
185
197
|
multiple: true,
|
|
186
|
-
|
|
198
|
+
modelValue: ['foo', 'bar'],
|
|
187
199
|
})
|
|
188
200
|
|
|
189
201
|
const input = wrapper.find('input')
|
|
@@ -193,7 +205,8 @@ describe('VCombobox.ts', () => {
|
|
|
193
205
|
input.trigger('keydown.left')
|
|
194
206
|
expect(wrapper.vm.selectedIndex).toBe(1)
|
|
195
207
|
input.trigger('keydown.delete')
|
|
196
|
-
expect(
|
|
208
|
+
expect(wrapper.emitted('update:modelValue')).toBeTruthy()
|
|
209
|
+
expect(wrapper.emitted('update:modelValue')[0]).toEqual([['foo']])
|
|
197
210
|
expect(wrapper.vm.selectedIndex).toBe(0)
|
|
198
211
|
|
|
199
212
|
// Must be reset for input to update
|
|
@@ -207,28 +220,29 @@ describe('VCombobox.ts', () => {
|
|
|
207
220
|
|
|
208
221
|
await wrapper.vm.$nextTick()
|
|
209
222
|
|
|
210
|
-
expect(
|
|
223
|
+
expect(wrapper.emitted('update:modelValue')[1]).toEqual([['foo', 'baz']])
|
|
211
224
|
expect(wrapper.vm.selectedIndex).toBe(-1)
|
|
212
225
|
})
|
|
213
226
|
|
|
214
227
|
it('should be able to add a tag from user input after clicking a deletable chip', async () => {
|
|
215
|
-
const { wrapper
|
|
228
|
+
const { wrapper } = createMultipleCombobox({
|
|
216
229
|
chips: true,
|
|
217
230
|
clearable: true,
|
|
218
231
|
deletableChips: true,
|
|
219
232
|
multiple: true,
|
|
220
|
-
|
|
233
|
+
modelValue: ['foo', 'bar'],
|
|
221
234
|
})
|
|
222
235
|
|
|
223
236
|
const input = wrapper.find('input')
|
|
224
237
|
const element = input.element as HTMLInputElement
|
|
225
|
-
const chip = wrapper.findAll('.v-chip')
|
|
238
|
+
const chip = wrapper.findAll('.v-chip')[1]
|
|
226
239
|
const close = chip.find('.v-chip__close')
|
|
227
240
|
|
|
228
241
|
input.trigger('focus')
|
|
229
242
|
chip.trigger('click')
|
|
230
243
|
close.trigger('click')
|
|
231
|
-
expect(
|
|
244
|
+
expect(wrapper.emitted('update:modelValue')).toBeTruthy()
|
|
245
|
+
expect(wrapper.emitted('update:modelValue')[0]).toEqual([['foo']])
|
|
232
246
|
expect(wrapper.vm.selectedIndex).toBe(-1)
|
|
233
247
|
|
|
234
248
|
element.value = 'baz'
|
|
@@ -238,7 +252,7 @@ describe('VCombobox.ts', () => {
|
|
|
238
252
|
|
|
239
253
|
await wrapper.vm.$nextTick()
|
|
240
254
|
|
|
241
|
-
expect(
|
|
255
|
+
expect(wrapper.emitted('update:modelValue')[1]).toEqual([['foo', 'baz']])
|
|
242
256
|
expect(wrapper.vm.selectedIndex).toBe(-1)
|
|
243
257
|
})
|
|
244
258
|
|
|
@@ -247,7 +261,7 @@ describe('VCombobox.ts', () => {
|
|
|
247
261
|
const { wrapper } = createMultipleCombobox({
|
|
248
262
|
chips: true,
|
|
249
263
|
multiple: true,
|
|
250
|
-
|
|
264
|
+
modelValue: ['foo', 'bar'],
|
|
251
265
|
})
|
|
252
266
|
|
|
253
267
|
const input = wrapper.find('input')
|
|
@@ -270,7 +284,7 @@ describe('VCombobox.ts', () => {
|
|
|
270
284
|
|
|
271
285
|
// eslint-disable-next-line max-statements
|
|
272
286
|
it('should create new items when a delimiter is entered', async () => {
|
|
273
|
-
const { wrapper
|
|
287
|
+
const { wrapper } = createMultipleCombobox({
|
|
274
288
|
delimiters: [', ', 'baz'],
|
|
275
289
|
})
|
|
276
290
|
|
|
@@ -284,46 +298,41 @@ describe('VCombobox.ts', () => {
|
|
|
284
298
|
input.trigger('input')
|
|
285
299
|
|
|
286
300
|
await wrapper.vm.$nextTick()
|
|
287
|
-
expect(
|
|
301
|
+
expect(wrapper.emitted('update:modelValue')).toBeFalsy()
|
|
288
302
|
|
|
289
303
|
element.value += ' '
|
|
290
304
|
input.trigger('input')
|
|
291
305
|
|
|
292
306
|
await wrapper.vm.$nextTick()
|
|
293
|
-
expect(
|
|
294
|
-
expect(
|
|
307
|
+
expect(wrapper.emitted('update:modelValue')).toBeTruthy()
|
|
308
|
+
expect(wrapper.emitted('update:modelValue')[0]).toEqual([['foo']])
|
|
295
309
|
expect(element.value).toBe('')
|
|
296
310
|
|
|
297
311
|
element.value = 'foo,barba'
|
|
298
312
|
input.trigger('input')
|
|
299
313
|
|
|
300
314
|
await wrapper.vm.$nextTick()
|
|
301
|
-
expect(
|
|
315
|
+
expect(wrapper.emitted('update:modelValue')).toHaveLength(1)
|
|
302
316
|
|
|
303
317
|
element.value += 'z'
|
|
304
318
|
input.trigger('input')
|
|
305
319
|
|
|
306
320
|
await wrapper.vm.$nextTick()
|
|
307
|
-
expect(
|
|
308
|
-
expect(
|
|
321
|
+
expect(wrapper.emitted('update:modelValue')).toHaveLength(2)
|
|
322
|
+
expect(wrapper.emitted('update:modelValue')[1]).toEqual([['foo', 'foo,bar']])
|
|
309
323
|
expect(element.value).toBe('')
|
|
310
324
|
})
|
|
311
325
|
|
|
312
326
|
it('should allow the editing of an existing value', async () => {
|
|
313
327
|
const { wrapper } = createMultipleCombobox({
|
|
314
328
|
chips: true,
|
|
315
|
-
|
|
329
|
+
modelValue: ['foo'],
|
|
316
330
|
})
|
|
317
331
|
|
|
318
|
-
const change = jest.fn()
|
|
319
|
-
const internal = jest.fn()
|
|
320
332
|
const chip = wrapper.find('.v-chip')
|
|
321
333
|
const input = wrapper.find('input')
|
|
322
334
|
const element = input.element as HTMLInputElement
|
|
323
335
|
|
|
324
|
-
wrapper.vm.$on('change', change)
|
|
325
|
-
wrapper.vm.$watch('internalValue', internal)
|
|
326
|
-
|
|
327
336
|
expect(wrapper.vm.editingIndex).toBe(-1)
|
|
328
337
|
expect(wrapper.vm.internalSearch).toBeUndefined()
|
|
329
338
|
|
|
@@ -338,12 +347,12 @@ describe('VCombobox.ts', () => {
|
|
|
338
347
|
|
|
339
348
|
await wrapper.vm.$nextTick()
|
|
340
349
|
|
|
341
|
-
expect(
|
|
342
|
-
expect(
|
|
350
|
+
expect(wrapper.emitted('update:modelValue')).toBeTruthy()
|
|
351
|
+
expect(wrapper.emitted('update:modelValue')[0]).toEqual([['foobar']])
|
|
343
352
|
})
|
|
344
353
|
|
|
345
354
|
it('should paste as item if source of pasted text is item in another v-combobox/v-autocomplete', async () => {
|
|
346
|
-
const { wrapper
|
|
355
|
+
const { wrapper } = createMultipleCombobox({
|
|
347
356
|
items: ['aaa', 'bbb'],
|
|
348
357
|
})
|
|
349
358
|
|
|
@@ -358,13 +367,12 @@ describe('VCombobox.ts', () => {
|
|
|
358
367
|
input.trigger('focus')
|
|
359
368
|
input.trigger('paste', event)
|
|
360
369
|
|
|
361
|
-
expect(
|
|
362
|
-
expect(
|
|
363
|
-
expect(change).toHaveBeenCalledWith(['ccc'])
|
|
370
|
+
expect(wrapper.emitted('update:modelValue')).toBeTruthy()
|
|
371
|
+
expect(wrapper.emitted('update:modelValue')[0]).toEqual([['ccc']])
|
|
364
372
|
})
|
|
365
373
|
|
|
366
374
|
it('should paste as text if source of pasted text is not item in another v-combobox/v-autocomplete', async () => {
|
|
367
|
-
const { wrapper
|
|
375
|
+
const { wrapper } = createMultipleCombobox({
|
|
368
376
|
items: ['aaa', 'bbb'],
|
|
369
377
|
})
|
|
370
378
|
|
|
@@ -379,12 +387,12 @@ describe('VCombobox.ts', () => {
|
|
|
379
387
|
input.trigger('focus')
|
|
380
388
|
input.trigger('paste', event)
|
|
381
389
|
|
|
382
|
-
expect(
|
|
390
|
+
expect(wrapper.emitted('update:modelValue')).toBeFalsy()
|
|
383
391
|
// expect(input.element.value).toBe('ccc') // can be checked only in browser environment
|
|
384
392
|
})
|
|
385
393
|
|
|
386
394
|
it('should not add search to list when selecting items with keyboard', async () => {
|
|
387
|
-
const { wrapper
|
|
395
|
+
const { wrapper } = createMultipleCombobox({
|
|
388
396
|
chips: true,
|
|
389
397
|
multiple: true,
|
|
390
398
|
items: ['aaa', 'bbb'],
|
|
@@ -405,16 +413,17 @@ describe('VCombobox.ts', () => {
|
|
|
405
413
|
await wrapper.vm.$nextTick()
|
|
406
414
|
|
|
407
415
|
expect(wrapper.vm.internalSearch).toBeNull()
|
|
408
|
-
expect(
|
|
416
|
+
expect(wrapper.emitted('update:modelValue')).toBeTruthy()
|
|
417
|
+
expect(wrapper.emitted('update:modelValue')[0]).toEqual([['aaa']])
|
|
409
418
|
})
|
|
410
419
|
|
|
411
420
|
// https://github.com/vuetifyjs/vuetify/issues/12781
|
|
412
421
|
// eslint-disable-next-line max-statements
|
|
413
422
|
it('should correctly add items after deletion and blur', async () => {
|
|
414
|
-
const { wrapper
|
|
423
|
+
const { wrapper } = createMultipleCombobox({
|
|
415
424
|
multiple: true,
|
|
416
425
|
chips: true,
|
|
417
|
-
|
|
426
|
+
modelValue: ['foo', 'bar'],
|
|
418
427
|
items: ['foo', 'bar'],
|
|
419
428
|
})
|
|
420
429
|
|
|
@@ -427,13 +436,14 @@ describe('VCombobox.ts', () => {
|
|
|
427
436
|
expect(wrapper.vm.selectedIndex).toBe(1)
|
|
428
437
|
input.trigger('keydown.delete')
|
|
429
438
|
await wrapper.vm.$nextTick()
|
|
430
|
-
expect(
|
|
439
|
+
expect(wrapper.emitted('update:modelValue')).toBeTruthy()
|
|
440
|
+
expect(wrapper.emitted('update:modelValue')[0]).toEqual([['foo']])
|
|
431
441
|
expect(wrapper.vm.selectedIndex).toBe(0)
|
|
432
442
|
|
|
433
443
|
// Lose focus
|
|
434
444
|
input.trigger('keydown.tab')
|
|
435
445
|
await wrapper.vm.$nextTick()
|
|
436
|
-
expect(
|
|
446
|
+
expect(wrapper.emitted('update:modelValue')).toHaveLength(1)
|
|
437
447
|
|
|
438
448
|
// Add 'bar' again
|
|
439
449
|
input.trigger('focus')
|
|
@@ -443,7 +453,7 @@ describe('VCombobox.ts', () => {
|
|
|
443
453
|
await wrapper.vm.$nextTick()
|
|
444
454
|
input.trigger('keydown.enter')
|
|
445
455
|
await wrapper.vm.$nextTick()
|
|
446
|
-
expect(
|
|
456
|
+
expect(wrapper.emitted('update:modelValue')[1]).toEqual([['foo', 'bar']])
|
|
447
457
|
|
|
448
458
|
// Set 'bar' as search input
|
|
449
459
|
element.value = 'bar'
|
|
@@ -454,16 +464,17 @@ describe('VCombobox.ts', () => {
|
|
|
454
464
|
// Lose focus
|
|
455
465
|
input.trigger('keydown.tab')
|
|
456
466
|
await wrapper.vm.$nextTick()
|
|
457
|
-
expect(
|
|
467
|
+
expect(wrapper.emitted('update:modelValue')).toBeTruthy()
|
|
468
|
+
expect(wrapper.emitted('update:modelValue').length).toBeGreaterThanOrEqual(2)
|
|
458
469
|
})
|
|
459
470
|
|
|
460
471
|
// https://github.com/vuetifyjs/vuetify/issues/13274
|
|
461
472
|
it('should not add empty values', async () => {
|
|
462
|
-
const { wrapper
|
|
473
|
+
const { wrapper } = createMultipleCombobox({
|
|
463
474
|
chips: true,
|
|
464
475
|
multiple: true,
|
|
465
476
|
items: ['foo'],
|
|
466
|
-
|
|
477
|
+
modelValue: ['foo'],
|
|
467
478
|
})
|
|
468
479
|
|
|
469
480
|
const input = wrapper.find('input')
|
|
@@ -482,24 +493,24 @@ describe('VCombobox.ts', () => {
|
|
|
482
493
|
input.trigger('keydown.tab')
|
|
483
494
|
await wrapper.vm.$nextTick()
|
|
484
495
|
|
|
485
|
-
expect(
|
|
496
|
+
expect(wrapper.emitted('update:modelValue')).toBeFalsy()
|
|
486
497
|
})
|
|
487
498
|
|
|
488
499
|
// https://github.com/vuetifyjs/vuetify/issues/10827
|
|
489
500
|
it('should not add empty chips after clear and re-select', async () => {
|
|
490
|
-
const { wrapper
|
|
501
|
+
const { wrapper } = createMultipleCombobox({
|
|
491
502
|
chips: true,
|
|
492
503
|
multiple: true,
|
|
493
504
|
clearable: true,
|
|
494
505
|
items: ['foo', 'bar'],
|
|
495
|
-
|
|
506
|
+
modelValue: ['foo', 'bar'],
|
|
496
507
|
})
|
|
497
508
|
|
|
498
509
|
const input = wrapper.find('input')
|
|
499
510
|
const element = input.element as HTMLInputElement
|
|
500
511
|
|
|
501
512
|
// Dbl click chip at index 1
|
|
502
|
-
const chip = wrapper.findAll('.v-chip')
|
|
513
|
+
const chip = wrapper.findAll('.v-chip')[1]
|
|
503
514
|
chip.trigger('dblclick')
|
|
504
515
|
expect(wrapper.vm.editingIndex).toBe(1)
|
|
505
516
|
expect(wrapper.vm.internalSearch).toBe('bar')
|
|
@@ -508,7 +519,8 @@ describe('VCombobox.ts', () => {
|
|
|
508
519
|
const clear = wrapper.find('.v-input__icon--clear .v-icon')
|
|
509
520
|
clear.trigger('click')
|
|
510
521
|
await wrapper.vm.$nextTick()
|
|
511
|
-
expect(
|
|
522
|
+
expect(wrapper.emitted('update:modelValue')).toBeTruthy()
|
|
523
|
+
expect(wrapper.emitted('update:modelValue')[0]).toEqual([[]])
|
|
512
524
|
await wrapper.vm.$nextTick()
|
|
513
525
|
|
|
514
526
|
// Add 'foo'
|
|
@@ -519,19 +531,19 @@ describe('VCombobox.ts', () => {
|
|
|
519
531
|
input.trigger('keydown.enter')
|
|
520
532
|
await wrapper.vm.$nextTick()
|
|
521
533
|
|
|
522
|
-
expect(
|
|
534
|
+
expect(wrapper.emitted('update:modelValue')[1]).toEqual([['foo']])
|
|
523
535
|
})
|
|
524
536
|
|
|
525
537
|
// https://github.com/vuetifyjs/vuetify/issues/12351
|
|
526
538
|
it('should correctly handle duplicate items', async () => {
|
|
527
|
-
const { wrapper
|
|
539
|
+
const { wrapper } = createMultipleCombobox({
|
|
528
540
|
chips: true,
|
|
529
541
|
multiple: true,
|
|
530
542
|
items: [
|
|
531
543
|
{ text: 'foo', value: 'foo' },
|
|
532
544
|
{ text: 'bar', value: 'bar' },
|
|
533
545
|
],
|
|
534
|
-
|
|
546
|
+
modelValue: [
|
|
535
547
|
{ text: 'foo', value: 'foo' },
|
|
536
548
|
],
|
|
537
549
|
})
|
|
@@ -547,24 +559,24 @@ describe('VCombobox.ts', () => {
|
|
|
547
559
|
input.trigger('keydown.tab')
|
|
548
560
|
await wrapper.vm.$nextTick()
|
|
549
561
|
|
|
550
|
-
expect(
|
|
562
|
+
expect(wrapper.emitted('update:modelValue')).toBeFalsy()
|
|
551
563
|
})
|
|
552
564
|
|
|
553
565
|
// https://github.com/vuetifyjs/vuetify/issues/6364
|
|
554
566
|
it('should not add duplicate chip after edit', async () => {
|
|
555
|
-
const { wrapper
|
|
567
|
+
const { wrapper } = createMultipleCombobox({
|
|
556
568
|
chips: true,
|
|
557
569
|
multiple: true,
|
|
558
570
|
clearable: true,
|
|
559
571
|
items: ['foo', 'bar'],
|
|
560
|
-
|
|
572
|
+
modelValue: ['foo', 'bar'],
|
|
561
573
|
})
|
|
562
574
|
|
|
563
575
|
const input = wrapper.find('input')
|
|
564
576
|
const element = input.element as HTMLInputElement
|
|
565
577
|
|
|
566
578
|
// Dbl click chip at index 1
|
|
567
|
-
const chip = wrapper.findAll('.v-chip')
|
|
579
|
+
const chip = wrapper.findAll('.v-chip')[1]
|
|
568
580
|
chip.trigger('dblclick')
|
|
569
581
|
expect(wrapper.vm.editingIndex).toBe(1)
|
|
570
582
|
expect(wrapper.vm.internalSearch).toBe('bar')
|
|
@@ -577,7 +589,8 @@ describe('VCombobox.ts', () => {
|
|
|
577
589
|
input.trigger('keydown.enter')
|
|
578
590
|
await wrapper.vm.$nextTick()
|
|
579
591
|
|
|
580
|
-
expect(
|
|
592
|
+
expect(wrapper.emitted('update:modelValue')).toBeTruthy()
|
|
593
|
+
expect(wrapper.emitted('update:modelValue')[0]).toEqual([['bar', 'foo']])
|
|
581
594
|
})
|
|
582
595
|
|
|
583
596
|
// example 1 in https://github.com/vuetifyjs/vuetify/issues/14194
|
|
@@ -589,9 +602,6 @@ describe('VCombobox.ts', () => {
|
|
|
589
602
|
const input = wrapper.find('input')
|
|
590
603
|
const element = input.element as HTMLInputElement
|
|
591
604
|
|
|
592
|
-
const listIndexUpdate = jest.fn()
|
|
593
|
-
wrapper.vm.$on('update:list-index', listIndexUpdate)
|
|
594
|
-
|
|
595
605
|
input.trigger('focus')
|
|
596
606
|
await wrapper.vm.$nextTick()
|
|
597
607
|
element.value = 'a'
|
|
@@ -613,13 +623,15 @@ describe('VCombobox.ts', () => {
|
|
|
613
623
|
element.value = 'aa'
|
|
614
624
|
input.trigger('input')
|
|
615
625
|
await wrapper.vm.$nextTick()
|
|
616
|
-
|
|
617
|
-
|
|
618
|
-
expect(
|
|
619
|
-
expect(
|
|
620
|
-
expect(
|
|
621
|
-
expect(
|
|
622
|
-
expect(
|
|
626
|
+
|
|
627
|
+
const emitted = wrapper.emitted('update:list-index')
|
|
628
|
+
expect(emitted).toHaveLength(6)
|
|
629
|
+
expect(emitted[0]).toEqual([-1])
|
|
630
|
+
expect(emitted[1]).toEqual([0])
|
|
631
|
+
expect(emitted[2]).toEqual([1])
|
|
632
|
+
expect(emitted[3]).toEqual([2])
|
|
633
|
+
expect(emitted[4]).toEqual([3])
|
|
634
|
+
expect(emitted[5]).toEqual([-1])
|
|
623
635
|
})
|
|
624
636
|
|
|
625
637
|
// example 2 in https://github.com/vuetifyjs/vuetify/issues/14194
|
|
@@ -631,9 +643,6 @@ describe('VCombobox.ts', () => {
|
|
|
631
643
|
const input = wrapper.find('input')
|
|
632
644
|
const element = input.element as HTMLInputElement
|
|
633
645
|
|
|
634
|
-
const listIndexUpdate = jest.fn()
|
|
635
|
-
wrapper.vm.$on('update:list-index', listIndexUpdate)
|
|
636
|
-
|
|
637
646
|
input.trigger('focus')
|
|
638
647
|
await wrapper.vm.$nextTick()
|
|
639
648
|
element.value = 'a'
|
|
@@ -653,12 +662,13 @@ describe('VCombobox.ts', () => {
|
|
|
653
662
|
input.trigger('input')
|
|
654
663
|
await wrapper.vm.$nextTick()
|
|
655
664
|
|
|
656
|
-
|
|
657
|
-
expect(
|
|
658
|
-
expect(
|
|
659
|
-
expect(
|
|
660
|
-
expect(
|
|
661
|
-
expect(
|
|
665
|
+
const emitted = wrapper.emitted('update:list-index')
|
|
666
|
+
expect(emitted).toHaveLength(5)
|
|
667
|
+
expect(emitted[0]).toEqual([-1])
|
|
668
|
+
expect(emitted[1]).toEqual([0])
|
|
669
|
+
expect(emitted[2]).toEqual([1])
|
|
670
|
+
expect(emitted[3]).toEqual([2])
|
|
671
|
+
expect(emitted[4]).toEqual([1])
|
|
662
672
|
})
|
|
663
673
|
|
|
664
674
|
// example 3 in https://github.com/vuetifyjs/vuetify/issues/14194
|
|
@@ -670,9 +680,6 @@ describe('VCombobox.ts', () => {
|
|
|
670
680
|
const input = wrapper.find('input')
|
|
671
681
|
const element = input.element as HTMLInputElement
|
|
672
682
|
|
|
673
|
-
const listIndexUpdate = jest.fn()
|
|
674
|
-
wrapper.vm.$on('update:list-index', listIndexUpdate)
|
|
675
|
-
|
|
676
683
|
input.trigger('focus')
|
|
677
684
|
await wrapper.vm.$nextTick()
|
|
678
685
|
element.value = 'a'
|
|
@@ -686,9 +693,10 @@ describe('VCombobox.ts', () => {
|
|
|
686
693
|
input.trigger('input')
|
|
687
694
|
await wrapper.vm.$nextTick()
|
|
688
695
|
|
|
689
|
-
|
|
690
|
-
expect(
|
|
691
|
-
expect(
|
|
692
|
-
expect(
|
|
696
|
+
const emitted = wrapper.emitted('update:list-index')
|
|
697
|
+
expect(emitted).toHaveLength(3)
|
|
698
|
+
expect(emitted[0]).toEqual([-1])
|
|
699
|
+
expect(emitted[1]).toEqual([0])
|
|
700
|
+
expect(emitted[2]).toEqual([-1])
|
|
693
701
|
})
|
|
694
702
|
})
|