@dimailn/vuetify 2.7.2-alpha31 → 2.7.2-alpha33
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 +551 -368
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +1 -1
- package/dist/vuetify.min.js +2 -2
- package/es5/components/VCalendar/VCalendarWeekly.js +10 -5
- package/es5/components/VCalendar/VCalendarWeekly.js.map +1 -1
- package/es5/components/VCheckbox/VCheckbox.js +7 -9
- package/es5/components/VCheckbox/VCheckbox.js.map +1 -1
- package/es5/components/VContent/VContent.js +24 -5
- package/es5/components/VContent/VContent.js.map +1 -1
- package/es5/components/VCounter/VCounter.js.map +1 -1
- package/es5/components/VDatePicker/VDatePicker.js +15 -7
- package/es5/components/VDatePicker/VDatePicker.js.map +1 -1
- package/es5/components/VDatePicker/VDatePickerTitle.js +30 -19
- package/es5/components/VDatePicker/VDatePickerTitle.js.map +1 -1
- package/es5/components/VDatePicker/mixins/date-picker-table.js +1 -1
- package/es5/components/VDatePicker/mixins/date-picker-table.js.map +1 -1
- package/es5/components/VDatePicker/util/eventHelpers.js +27 -17
- package/es5/components/VDatePicker/util/eventHelpers.js.map +1 -1
- package/es5/components/VExpansionPanel/VExpansionPanelContent.js.map +1 -1
- package/es5/components/VExpansionPanel/VExpansionPanelHeader.js.map +1 -1
- package/es5/components/VGrid/VCol.js +3 -1
- package/es5/components/VGrid/VCol.js.map +1 -1
- package/es5/components/VGrid/VContainer.js +23 -10
- package/es5/components/VGrid/VContainer.js.map +1 -1
- package/es5/components/VGrid/grid.js +33 -15
- package/es5/components/VGrid/grid.js.map +1 -1
- package/es5/components/VHover/VHover.js +23 -17
- package/es5/components/VHover/VHover.js.map +1 -1
- package/es5/components/VIcon/VIcon.js +77 -53
- package/es5/components/VIcon/VIcon.js.map +1 -1
- package/es5/components/VItemGroup/VItem.js +7 -3
- package/es5/components/VItemGroup/VItem.js.map +1 -1
- package/es5/components/VLabel/VLabel.js +3 -1
- package/es5/components/VLabel/VLabel.js.map +1 -1
- package/es5/components/VOtpInput/VOtpInput.js +54 -33
- package/es5/components/VOtpInput/VOtpInput.js.map +1 -1
- package/es5/components/VOverflowBtn/VOverflowBtn.js +14 -13
- package/es5/components/VOverflowBtn/VOverflowBtn.js.map +1 -1
- package/es5/components/VProgressLinear/VProgressLinear.js +12 -33
- package/es5/components/VProgressLinear/VProgressLinear.js.map +1 -1
- package/es5/components/VSelect/VSelect.js +4 -1
- package/es5/components/VSelect/VSelect.js.map +1 -1
- package/es5/components/VStepper/VStepper.js +1 -1
- package/es5/components/VStepper/VStepper.js.map +1 -1
- package/es5/components/VStepper/VStepperContent.js +2 -5
- package/es5/components/VStepper/VStepperContent.js.map +1 -1
- package/es5/components/VSwitch/VSwitch.js +1 -1
- package/es5/components/VSwitch/VSwitch.js.map +1 -1
- package/es5/components/VTextField/VTextField.js +2 -1
- package/es5/components/VTextField/VTextField.js.map +1 -1
- package/es5/components/VTooltip/VTooltip.js +0 -7
- package/es5/components/VTooltip/VTooltip.js.map +1 -1
- package/es5/directives/color/index.js +6 -3
- package/es5/directives/color/index.js.map +1 -1
- package/es5/directives/ripple/index.js +5 -2
- package/es5/directives/ripple/index.js.map +1 -1
- package/es5/directives/scroll/index.js +1 -2
- package/es5/directives/scroll/index.js.map +1 -1
- package/es5/directives/touch/index.js +7 -4
- package/es5/directives/touch/index.js.map +1 -1
- package/es5/framework.js +1 -1
- package/es5/mixins/activatable/index.js +0 -8
- package/es5/mixins/activatable/index.js.map +1 -1
- package/es5/mixins/groupable/index.js.map +1 -1
- package/es5/mixins/positionable/index.js.map +1 -1
- package/es5/mixins/proxyable/index.js.map +1 -1
- package/es5/mixins/registrable/index.js.map +1 -1
- package/es5/mixins/selectable/index.js +4 -2
- package/es5/mixins/selectable/index.js.map +1 -1
- package/es5/mixins/toggleable/index.js.map +1 -1
- package/es5/services/goto/util.js +42 -3
- package/es5/services/goto/util.js.map +1 -1
- package/es5/services/theme/index.js +20 -71
- package/es5/services/theme/index.js.map +1 -1
- package/es5/util/mergeData.js +6 -5
- package/es5/util/mergeData.js.map +1 -1
- package/es5/util/mixins.js +4 -3
- package/es5/util/mixins.js.map +1 -1
- package/lib/components/VCalendar/VCalendarWeekly.js +11 -6
- package/lib/components/VCalendar/VCalendarWeekly.js.map +1 -1
- package/lib/components/VCheckbox/VCheckbox.js +5 -8
- package/lib/components/VCheckbox/VCheckbox.js.map +1 -1
- package/lib/components/VContent/VContent.js +18 -3
- package/lib/components/VContent/VContent.js.map +1 -1
- package/lib/components/VCounter/VCounter.js.map +1 -1
- package/lib/components/VDatePicker/VDatePicker.js +17 -7
- package/lib/components/VDatePicker/VDatePicker.js.map +1 -1
- package/lib/components/VDatePicker/VDatePickerTitle.js +25 -14
- package/lib/components/VDatePicker/VDatePickerTitle.js.map +1 -1
- package/lib/components/VDatePicker/mixins/date-picker-table.js +1 -1
- package/lib/components/VDatePicker/mixins/date-picker-table.js.map +1 -1
- package/lib/components/VDatePicker/util/eventHelpers.js +26 -14
- package/lib/components/VDatePicker/util/eventHelpers.js.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanelContent.js.map +1 -1
- package/lib/components/VExpansionPanel/VExpansionPanelHeader.js.map +1 -1
- package/lib/components/VGrid/VCol.js +3 -1
- package/lib/components/VGrid/VCol.js.map +1 -1
- package/lib/components/VGrid/VContainer.js +11 -10
- package/lib/components/VGrid/VContainer.js.map +1 -1
- package/lib/components/VGrid/grid.js +15 -14
- package/lib/components/VGrid/grid.js.map +1 -1
- package/lib/components/VHover/VHover.js +23 -18
- package/lib/components/VHover/VHover.js.map +1 -1
- package/lib/components/VIcon/VIcon.js +79 -57
- package/lib/components/VIcon/VIcon.js.map +1 -1
- package/lib/components/VItemGroup/VItem.js +3 -2
- package/lib/components/VItemGroup/VItem.js.map +1 -1
- package/lib/components/VLabel/VLabel.js +3 -1
- package/lib/components/VLabel/VLabel.js.map +1 -1
- package/lib/components/VOtpInput/VOtpInput.js +58 -34
- package/lib/components/VOtpInput/VOtpInput.js.map +1 -1
- package/lib/components/VOverflowBtn/VOverflowBtn.js +14 -14
- package/lib/components/VOverflowBtn/VOverflowBtn.js.map +1 -1
- package/lib/components/VProgressLinear/VProgressLinear.js +12 -16
- package/lib/components/VProgressLinear/VProgressLinear.js.map +1 -1
- package/lib/components/VSelect/VSelect.js +4 -1
- package/lib/components/VSelect/VSelect.js.map +1 -1
- package/lib/components/VStepper/VStepper.js +1 -1
- package/lib/components/VStepper/VStepper.js.map +1 -1
- package/lib/components/VStepper/VStepperContent.js +3 -6
- package/lib/components/VStepper/VStepperContent.js.map +1 -1
- package/lib/components/VSwitch/VSwitch.js +1 -1
- package/lib/components/VSwitch/VSwitch.js.map +1 -1
- package/lib/components/VTextField/VTextField.js +2 -1
- package/lib/components/VTextField/VTextField.js.map +1 -1
- package/lib/components/VTooltip/VTooltip.js +1 -8
- package/lib/components/VTooltip/VTooltip.js.map +1 -1
- package/lib/directives/color/index.js +6 -3
- package/lib/directives/color/index.js.map +1 -1
- package/lib/directives/ripple/index.js +5 -3
- package/lib/directives/ripple/index.js.map +1 -1
- package/lib/directives/scroll/index.js +1 -2
- package/lib/directives/scroll/index.js.map +1 -1
- package/lib/directives/touch/index.js +7 -4
- package/lib/directives/touch/index.js.map +1 -1
- package/lib/framework.js +1 -1
- package/lib/mixins/activatable/index.js +1 -8
- package/lib/mixins/activatable/index.js.map +1 -1
- package/lib/mixins/groupable/index.js.map +1 -1
- package/lib/mixins/positionable/index.js.map +1 -1
- package/lib/mixins/proxyable/index.js.map +1 -1
- package/lib/mixins/registrable/index.js.map +1 -1
- package/lib/mixins/selectable/index.js +9 -7
- package/lib/mixins/selectable/index.js.map +1 -1
- package/lib/mixins/toggleable/index.js.map +1 -1
- package/lib/services/goto/util.js +42 -3
- package/lib/services/goto/util.js.map +1 -1
- package/lib/services/theme/index.js +18 -64
- package/lib/services/theme/index.js.map +1 -1
- package/lib/util/mergeData.js +6 -5
- package/lib/util/mergeData.js.map +1 -1
- package/lib/util/mixins.js +3 -2
- package/lib/util/mixins.js.map +1 -1
- package/package.json +2 -2
- package/src/components/VAlert/__tests__/__snapshots__/VAlert.spec.ts.snap +4 -4
- package/src/components/VAppBar/__tests__/__snapshots__/VAppBarNavIcon.spec.ts.snap +2 -2
- package/src/components/VAutocomplete/__tests__/VAutocomplete.spec.ts +75 -20
- package/src/components/VAutocomplete/__tests__/VAutocomplete2.spec.ts +38 -40
- package/src/components/VAutocomplete/__tests__/VAutocomplete3.spec.ts +26 -26
- package/src/components/VBanner/__tests__/__snapshots__/VBanner.spec.ts.snap +2 -2
- package/src/components/VBtn/__tests__/VBtn.spec.ts +8 -4
- package/src/components/VCalendar/VCalendarWeekly.ts +12 -5
- package/src/components/VCalendar/__tests__/VCalendar.spec.ts +1 -1
- package/src/components/VCalendar/__tests__/VCalendarCategory.spec.ts +5 -5
- package/src/components/VCalendar/__tests__/__snapshots__/VCalendar.spec.ts.snap +167 -168
- package/src/components/VCheckbox/VCheckbox.ts +4 -9
- package/src/components/VCheckbox/__tests__/VCheckbox.spec.ts +7 -1
- package/src/components/VCheckbox/__tests__/__snapshots__/VCheckbox.spec.ts.snap +54 -50
- package/src/components/VColorPicker/__tests__/__snapshots__/VColorPicker.spec.ts.snap +18 -18
- package/src/components/VColorPicker/__tests__/__snapshots__/VColorPickerEdit.spec.ts.snap +10 -10
- package/src/components/VCombobox/__tests__/VCombobox-multiple.spec.ts +89 -69
- package/src/components/VCombobox/__tests__/VCombobox.spec.ts +17 -12
- package/src/components/VContent/VContent.ts +10 -2
- package/src/components/VCounter/VCounter.ts +1 -1
- package/src/components/VCounter/__tests__/VCounter.spec.ts +10 -25
- package/src/components/VDataIterator/__tests__/__snapshots__/VDataFooter.spec.ts.snap +42 -42
- package/src/components/VDataIterator/__tests__/__snapshots__/VDataIterator.spec.ts.snap +30 -30
- package/src/components/VDataTable/__tests__/VDataTable.spec.ts +1 -1
- package/src/components/VDataTable/__tests__/VDataTableHeader.spec.ts +6 -10
- package/src/components/VDataTable/__tests__/VEditDialog.spec.ts +24 -21
- package/src/components/VDataTable/__tests__/__snapshots__/VDataTable.spec.ts.snap +409 -409
- package/src/components/VDataTable/__tests__/__snapshots__/VDataTableHeader.spec.ts.snap +70 -70
- package/src/components/VDataTable/mixins/__tests__/__snapshots__/header.spec.ts.snap +8 -8
- package/src/components/VDataTable/mixins/__tests__/header.spec.ts +3 -3
- package/src/components/VDatePicker/VDatePicker.ts +23 -7
- package/src/components/VDatePicker/VDatePickerTitle.ts +28 -16
- package/src/components/VDatePicker/__tests__/VDatePicker.date.spec.ts +86 -124
- package/src/components/VDatePicker/__tests__/VDatePicker.month.spec.ts +85 -63
- package/src/components/VDatePicker/__tests__/VDatePickerHeader.spec.ts +12 -27
- package/src/components/VDatePicker/__tests__/VDatePickerTitle.spec.ts +9 -5
- package/src/components/VDatePicker/__tests__/VDatePickerYears.spec.ts +4 -4
- package/src/components/VDatePicker/__tests__/__snapshots__/VDatePicker.date.spec.ts.snap +27 -9
- package/src/components/VDatePicker/__tests__/__snapshots__/VDatePicker.month.spec.ts.snap +45 -35
- package/src/components/VDatePicker/__tests__/__snapshots__/VDatePickerTitle.spec.ts.snap +15 -5
- package/src/components/VDatePicker/mixins/date-picker-table.ts +1 -1
- package/src/components/VDatePicker/util/eventHelpers.ts +33 -13
- package/src/components/VExpansionPanel/VExpansionPanelContent.ts +5 -8
- package/src/components/VExpansionPanel/VExpansionPanelHeader.ts +10 -14
- package/src/components/VExpansionPanel/__tests__/VExpansionPanelHeader.spec.ts +6 -4
- package/src/components/VExpansionPanel/__tests__/VExpansionPanels.spec.ts +9 -5
- package/src/components/VExpansionPanel/__tests__/__snapshots__/VExpansionPanel.spec.ts.snap +4 -4
- package/src/components/VFileInput/__tests__/__snapshots__/VFileInput.spec.ts.snap +38 -38
- package/src/components/VFooter/__tests__/VFooter.spec.ts +28 -21
- package/src/components/VGrid/VCol.ts +1 -1
- package/src/components/VGrid/VContainer.ts +12 -10
- package/src/components/VGrid/__tests__/VCol.spec.ts +4 -2
- package/src/components/VGrid/__tests__/VGrid.spec.ts +2 -3
- package/src/components/VGrid/grid.ts +14 -17
- package/src/components/VHover/VHover.ts +21 -17
- package/src/components/VHover/__tests__/VHover.spec.ts +44 -28
- package/src/components/VIcon/VIcon.ts +72 -53
- package/src/components/VIcon/__tests__/VIcon.spec.ts +86 -176
- package/src/components/VIcon/__tests__/__snapshots__/VIcon.spec.ts.snap +19 -74
- package/src/components/VItemGroup/VItem.ts +1 -1
- package/src/components/VItemGroup/__tests__/VItem.spec.ts +20 -12
- package/src/components/VLabel/VLabel.ts +1 -1
- package/src/components/VList/__tests__/VListGroup.spec.ts +1 -1
- package/src/components/VList/__tests__/VListItemAction.spec.ts +32 -31
- package/src/components/VList/__tests__/__snapshots__/VListGroup.spec.ts.snap +2 -2
- package/src/components/VList/__tests__/__snapshots__/VListItemAction.spec.ts.snap +20 -6
- package/src/components/VOtpInput/VOtpInput.ts +57 -32
- package/src/components/VOtpInput/__tests__/VOtpInput.spec.ts +75 -78
- package/src/components/VOverflowBtn/VOverflowBtn.ts +13 -10
- package/src/components/VOverflowBtn/__tests__/VOverflowBtn.spec.ts +6 -6
- package/src/components/VOverflowBtn/__tests__/__snapshots__/VOverflowBtn.spec.ts.snap +38 -46
- package/src/components/VPagination/__tests__/__snapshots__/VPagination.spec.ts.snap +32 -32
- package/src/components/VProgressLinear/VProgressLinear.ts +13 -18
- package/src/components/VProgressLinear/__tests__/VProgressLinear.spec.ts +20 -12
- package/src/components/VRadioGroup/__tests__/VRadio.spec.ts +57 -44
- package/src/components/VRadioGroup/__tests__/VRadioGroup.spec.ts +4 -4
- package/src/components/VRadioGroup/__tests__/__snapshots__/VRadio.spec.ts.snap +29 -33
- package/src/components/VRadioGroup/__tests__/__snapshots__/VRadioGroup.spec.ts.snap +10 -18
- package/src/components/VRating/__tests__/VRating.spec.ts +24 -29
- package/src/components/VResponsive/__tests__/VResponsive.spec.ts +10 -5
- package/src/components/VSelect/VSelect.ts +5 -1
- package/src/components/VSelect/__tests__/VSelect2.spec.ts +5 -5
- package/src/components/VSelect/__tests__/VSelect3.spec.ts +7 -7
- package/src/components/VSelect/__tests__/VSelect4.spec.ts +2 -2
- package/src/components/VSelect/__tests__/__snapshots__/VSelect2.spec.ts.snap +4 -4
- package/src/components/VSelect/__tests__/__snapshots__/VSelect3.spec.ts.snap +0 -284
- package/src/components/VSelect/__tests__/__snapshots__/VSelectList.spec.ts.snap +30 -27
- package/src/components/VSlideGroup/__tests__/VSlideGroup.spec.ts +70 -62
- package/src/components/VSlideGroup/__tests__/__snapshots__/VSlideGroup.spec.ts.snap +13 -34
- package/src/components/VSnackbar/__tests__/VSnackbar.spec.ts +46 -37
- package/src/components/VStepper/VStepper.ts +2 -2
- package/src/components/VStepper/VStepperContent.ts +7 -12
- package/src/components/VStepper/__tests__/VStepper.spec.ts +3 -3
- package/src/components/VStepper/__tests__/VStepperContent.spec.ts +25 -6
- package/src/components/VStepper/__tests__/__snapshots__/VStepperStep.spec.ts.snap +10 -12
- package/src/components/VSwitch/VSwitch.ts +1 -1
- package/src/components/VSwitch/__tests__/VSwitch.spec.ts +4 -7
- package/src/components/VSwitch/__tests__/__snapshots__/VSwitch.spec.ts.snap +11 -15
- package/src/components/VTextField/VTextField.ts +2 -1
- package/src/components/VTextField/__tests__/VTextField.spec.ts +24 -27
- package/src/components/VTextField/__tests__/__snapshots__/VTextField.spec.ts.snap +49 -73
- package/src/components/VTextarea/__tests__/__snapshots__/VTextarea.spec.ts.snap +16 -6
- package/src/components/VThemeProvider/__tests__/VThemeProvider.spec.ts +49 -10
- package/src/components/VTimePicker/__tests__/VTimePicker.spec.ts +3 -3
- package/src/components/VTimePicker/__tests__/VTimePickerTitle.spec.ts +3 -3
- package/src/components/VTimeline/__tests__/__snapshots__/VTimelineItem.spec.ts.snap +2 -2
- package/src/components/VTooltip/VTooltip.ts +0 -6
- package/src/components/VTooltip/__tests__/VTooltip.spec.ts +12 -11
- package/src/components/VTreeview/__tests__/__snapshots__/VTreeview.spec.ts.snap +42 -42
- package/src/components/VTreeview/__tests__/__snapshots__/VTreeviewNode.spec.ts.snap +2 -2
- package/src/directives/click-outside/__tests__/click-outside-shadow-dom.spec.ts +4 -4
- package/src/directives/click-outside/__tests__/click-outside.spec.ts +3 -3
- package/src/directives/color/__tests__/color.spec.ts +54 -34
- package/src/directives/color/index.ts +7 -3
- package/src/directives/intersect/__tests__/intersect.spec.ts +7 -7
- package/src/directives/mutate/__tests__/mutate.spec.ts +32 -26
- package/src/directives/resize/__tests__/resize.spec.ts +5 -5
- package/src/directives/ripple/__tests__/ripple.spec.ts +34 -36
- package/src/directives/ripple/index.ts +3 -6
- package/src/directives/scroll/__tests__/scroll.spec.ts +13 -13
- package/src/directives/scroll/index.ts +0 -1
- package/src/directives/touch/__tests__/touch.spec.ts +23 -16
- package/src/directives/touch/index.ts +6 -4
- package/src/globals.d.ts +6 -6
- package/src/mixins/activatable/__tests__/activatable.spec.ts +55 -55
- package/src/mixins/activatable/index.ts +0 -6
- package/src/mixins/dependent/__tests__/dependent.spec.ts +72 -33
- package/src/mixins/detachable/__tests__/detachable.spec.ts +45 -31
- package/src/mixins/groupable/index.ts +6 -6
- package/src/mixins/positionable/index.ts +2 -2
- package/src/mixins/proxyable/index.ts +2 -2
- package/src/mixins/registrable/index.ts +4 -4
- package/src/mixins/selectable/index.ts +10 -7
- package/src/mixins/toggleable/index.ts +2 -2
- package/src/services/goto/__tests__/goto.spec.ts +146 -1
- package/src/services/goto/util.ts +44 -5
- package/src/services/theme/__tests__/__snapshots__/theme.spec.ts.snap +0 -1128
- package/src/services/theme/__tests__/theme.spec.ts +81 -83
- package/src/services/theme/index.ts +22 -60
- package/src/util/__tests__/dom.spec.ts +8 -5
- package/src/util/__tests__/helpers.spec.ts +1 -1
- package/src/util/__tests__/mergeData.spec.ts +8 -8
- package/src/util/mergeData.ts +10 -5
- package/src/util/mixins.ts +24 -7
- package/types/alacarte.d.ts +14 -14
- package/types/index.d.ts +8 -8
- package/types/lib.d.ts +173 -173
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
// Lib
|
|
2
|
-
import { mount } from '@vue/test-utils'
|
|
2
|
+
import { mount, enableAutoUnmount } from '@vue/test-utils'
|
|
3
|
+
import { defineComponent, h } from 'vue'
|
|
3
4
|
|
|
4
5
|
// Components
|
|
5
6
|
import VBtn from '../../../components/VBtn'
|
|
@@ -8,6 +9,9 @@ import VBtn from '../../../components/VBtn'
|
|
|
8
9
|
import goTo, { Goto } from '../index'
|
|
9
10
|
import { Application } from '../../application/index'
|
|
10
11
|
|
|
12
|
+
// Utils
|
|
13
|
+
import { getOffset, getContainer } from '../util'
|
|
14
|
+
|
|
11
15
|
// Types
|
|
12
16
|
import { VuetifyServiceContract } from 'vuetify/types/services'
|
|
13
17
|
|
|
@@ -15,6 +19,8 @@ describe('$vuetify.goTo', () => {
|
|
|
15
19
|
(global as any).performance = require('perf_hooks').performance
|
|
16
20
|
let framework: Record<string, VuetifyServiceContract> = {}
|
|
17
21
|
|
|
22
|
+
enableAutoUnmount(afterEach)
|
|
23
|
+
|
|
18
24
|
beforeEach(() => {
|
|
19
25
|
framework = {
|
|
20
26
|
application: new Application(),
|
|
@@ -63,7 +69,146 @@ describe('$vuetify.goTo', () => {
|
|
|
63
69
|
await expect(goTo(btn.vm, { duration: 0 })).resolves.not.toBeUndefined()
|
|
64
70
|
})
|
|
65
71
|
|
|
72
|
+
it('should work with Vue 3 component wrapper from Vue Test Utils', async () => {
|
|
73
|
+
const TestComponent = defineComponent({
|
|
74
|
+
template: '<div>Test Component</div>',
|
|
75
|
+
})
|
|
76
|
+
const wrapper = mount(TestComponent)
|
|
77
|
+
|
|
78
|
+
await expect(goTo(wrapper.vm, { duration: 0 })).resolves.not.toBeUndefined()
|
|
79
|
+
})
|
|
80
|
+
|
|
81
|
+
it('should work with raw HTMLElement', async () => {
|
|
82
|
+
const element = document.createElement('div')
|
|
83
|
+
document.body.appendChild(element)
|
|
84
|
+
|
|
85
|
+
await expect(goTo(element, { duration: 0 })).resolves.not.toBeUndefined()
|
|
86
|
+
|
|
87
|
+
document.body.removeChild(element)
|
|
88
|
+
})
|
|
89
|
+
|
|
90
|
+
it('should work with CSS selector string', async () => {
|
|
91
|
+
const element = document.createElement('div')
|
|
92
|
+
element.id = 'test-goto-element'
|
|
93
|
+
document.body.appendChild(element)
|
|
94
|
+
|
|
95
|
+
await expect(goTo('#test-goto-element', { duration: 0 })).resolves.not.toBeUndefined()
|
|
96
|
+
|
|
97
|
+
document.body.removeChild(element)
|
|
98
|
+
})
|
|
99
|
+
|
|
100
|
+
it('should work with number offset', async () => {
|
|
101
|
+
await expect(goTo(100, { duration: 0 })).resolves.not.toBeUndefined()
|
|
102
|
+
})
|
|
103
|
+
|
|
104
|
+
it('should use VueComponent as container', async () => {
|
|
105
|
+
const TestComponent = defineComponent({
|
|
106
|
+
template: '<div style="height: 1000px; overflow: auto"><div style="height: 2000px;">Content</div></div>',
|
|
107
|
+
})
|
|
108
|
+
const wrapper = mount(TestComponent)
|
|
109
|
+
|
|
110
|
+
await expect(goTo(100, { container: wrapper.vm, duration: 0 })).resolves.not.toBeUndefined()
|
|
111
|
+
})
|
|
112
|
+
|
|
66
113
|
it('should instantiate and return goto', () => {
|
|
67
114
|
expect(new Goto()).toEqual(goTo)
|
|
68
115
|
})
|
|
69
116
|
})
|
|
117
|
+
|
|
118
|
+
describe('goto utilities', () => {
|
|
119
|
+
let utilsFramework: Record<string, VuetifyServiceContract> = {}
|
|
120
|
+
|
|
121
|
+
beforeEach(() => {
|
|
122
|
+
utilsFramework = {
|
|
123
|
+
application: new Application(),
|
|
124
|
+
}
|
|
125
|
+
goTo.framework = utilsFramework
|
|
126
|
+
})
|
|
127
|
+
|
|
128
|
+
describe('getOffset', () => {
|
|
129
|
+
it('should return number when target is number', () => {
|
|
130
|
+
expect(getOffset(100)).toBe(100)
|
|
131
|
+
})
|
|
132
|
+
|
|
133
|
+
it('should return offset for HTMLElement', () => {
|
|
134
|
+
const element = document.createElement('div')
|
|
135
|
+
element.style.position = 'absolute'
|
|
136
|
+
element.style.top = '50px'
|
|
137
|
+
document.body.appendChild(element)
|
|
138
|
+
|
|
139
|
+
expect(getOffset(element)).toBeGreaterThanOrEqual(0)
|
|
140
|
+
|
|
141
|
+
document.body.removeChild(element)
|
|
142
|
+
})
|
|
143
|
+
|
|
144
|
+
it('should return offset for Vue 3 component', () => {
|
|
145
|
+
const TestComponent = defineComponent({
|
|
146
|
+
template: '<div>Test</div>',
|
|
147
|
+
})
|
|
148
|
+
const wrapper = mount(TestComponent)
|
|
149
|
+
|
|
150
|
+
expect(getOffset(wrapper.vm)).toBeGreaterThanOrEqual(0)
|
|
151
|
+
})
|
|
152
|
+
|
|
153
|
+
it('should return offset for CSS selector', () => {
|
|
154
|
+
const element = document.createElement('div')
|
|
155
|
+
element.id = 'test-offset-element'
|
|
156
|
+
document.body.appendChild(element)
|
|
157
|
+
|
|
158
|
+
expect(getOffset('#test-offset-element')).toBeGreaterThanOrEqual(0)
|
|
159
|
+
|
|
160
|
+
document.body.removeChild(element)
|
|
161
|
+
})
|
|
162
|
+
|
|
163
|
+
it('should throw error for invalid selector', () => {
|
|
164
|
+
expect(() => getOffset('#nonexistent-element'))
|
|
165
|
+
.toThrow('Target element "#nonexistent-element" not found.')
|
|
166
|
+
})
|
|
167
|
+
|
|
168
|
+
it('should throw error for invalid target type', () => {
|
|
169
|
+
expect(() => getOffset({ invalid: 'target' }))
|
|
170
|
+
.toThrow('Target must be a Number/Selector/HTMLElement/VueComponent')
|
|
171
|
+
})
|
|
172
|
+
})
|
|
173
|
+
|
|
174
|
+
describe('getContainer', () => {
|
|
175
|
+
it('should return HTMLElement for valid container', () => {
|
|
176
|
+
const element = document.createElement('div')
|
|
177
|
+
document.body.appendChild(element)
|
|
178
|
+
|
|
179
|
+
expect(getContainer(element)).toBe(element)
|
|
180
|
+
|
|
181
|
+
document.body.removeChild(element)
|
|
182
|
+
})
|
|
183
|
+
|
|
184
|
+
it('should return HTMLElement for Vue 3 component container', () => {
|
|
185
|
+
const TestComponent = defineComponent({
|
|
186
|
+
template: '<div>Test Container</div>',
|
|
187
|
+
})
|
|
188
|
+
const wrapper = mount(TestComponent)
|
|
189
|
+
|
|
190
|
+
const result = getContainer(wrapper.vm)
|
|
191
|
+
expect(result).toBeInstanceOf(HTMLElement)
|
|
192
|
+
})
|
|
193
|
+
|
|
194
|
+
it('should return HTMLElement for CSS selector container', () => {
|
|
195
|
+
const element = document.createElement('div')
|
|
196
|
+
element.id = 'test-container-element'
|
|
197
|
+
document.body.appendChild(element)
|
|
198
|
+
|
|
199
|
+
expect(getContainer('#test-container-element')).toBe(element)
|
|
200
|
+
|
|
201
|
+
document.body.removeChild(element)
|
|
202
|
+
})
|
|
203
|
+
|
|
204
|
+
it('should throw error for invalid container selector', () => {
|
|
205
|
+
expect(() => getContainer('#nonexistent-container'))
|
|
206
|
+
.toThrow('Container element "#nonexistent-container" not found.')
|
|
207
|
+
})
|
|
208
|
+
|
|
209
|
+
it('should throw error for invalid container type', () => {
|
|
210
|
+
expect(() => getContainer(42))
|
|
211
|
+
.toThrow('Container must be a Selector/HTMLElement/VueComponent')
|
|
212
|
+
})
|
|
213
|
+
})
|
|
214
|
+
})
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import Vue from 'vue'
|
|
2
|
-
|
|
3
1
|
// Return target's cumulative offset from the top
|
|
4
2
|
export function getOffset (target: any): number {
|
|
5
3
|
if (typeof target === 'number') {
|
|
@@ -34,17 +32,58 @@ export function getContainer (container: any): HTMLElement {
|
|
|
34
32
|
}
|
|
35
33
|
|
|
36
34
|
function type (el: any) {
|
|
37
|
-
|
|
35
|
+
if (el == null) return el
|
|
36
|
+
// Vue 3 component detection
|
|
37
|
+
if (isVue3Component(el)) return 'VueComponent'
|
|
38
|
+
return el.constructor?.name || 'Unknown'
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
// Helper function to detect Vue 3 component instances
|
|
42
|
+
function isVue3Component (el: any): boolean {
|
|
43
|
+
// Check for Vue 3 component instance properties
|
|
44
|
+
return !!(el && (
|
|
45
|
+
// Direct component instance with $el
|
|
46
|
+
el.$el ||
|
|
47
|
+
// Component instance with appContext (Vue 3 runtime)
|
|
48
|
+
el.appContext ||
|
|
49
|
+
// Component proxy with type property (from Vue Test Utils)
|
|
50
|
+
(el.type && (el.type.name || el.type.__name)) ||
|
|
51
|
+
// Component with setupState (Composition API)
|
|
52
|
+
el.setupState ||
|
|
53
|
+
// Component with ctx property (internal Vue 3)
|
|
54
|
+
(el.ctx && el.ctx.type)
|
|
55
|
+
))
|
|
38
56
|
}
|
|
39
57
|
|
|
40
58
|
function $ (el: any): HTMLElement | null {
|
|
41
59
|
if (typeof el === 'string') {
|
|
42
60
|
return document.querySelector<HTMLElement>(el)
|
|
43
|
-
} else if (el && el._isVue) {
|
|
44
|
-
return (el as Vue).$el as HTMLElement
|
|
45
61
|
} else if (el instanceof HTMLElement) {
|
|
46
62
|
return el
|
|
63
|
+
} else if (isVue3Component(el)) {
|
|
64
|
+
return extractElementFromVue3Component(el)
|
|
47
65
|
} else {
|
|
48
66
|
return null
|
|
49
67
|
}
|
|
50
68
|
}
|
|
69
|
+
|
|
70
|
+
// Helper function to extract HTMLElement from Vue 3 component
|
|
71
|
+
function extractElementFromVue3Component (component: any): HTMLElement | null {
|
|
72
|
+
if (component.$el instanceof HTMLElement) {
|
|
73
|
+
return component.$el
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
if (component.element instanceof HTMLElement) {
|
|
77
|
+
return component.element
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
if (component.ctx?.vnode?.el instanceof HTMLElement) {
|
|
81
|
+
return component.ctx.vnode.el
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
if (component.vnode?.el instanceof HTMLElement) {
|
|
85
|
+
return component.vnode.el
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
return null
|
|
89
|
+
}
|