@vuetify/nightly 3.4.0-alpha.1-dev.2023-10-21 → 3.4.0-alpha.1-dev.2023-10-26
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/CHANGELOG.md +6 -3
- package/dist/_component-variables-labs.sass +1 -4
- package/dist/_component-variables.sass +3 -0
- package/dist/json/attributes.json +26 -26
- package/dist/json/importMap-labs.json +20 -52
- package/dist/json/importMap.json +56 -24
- package/dist/json/web-types.json +30 -30
- package/dist/vuetify-labs.css +725 -724
- package/dist/vuetify-labs.d.ts +41344 -36620
- package/dist/vuetify-labs.esm.js +5358 -5336
- package/dist/vuetify-labs.esm.js.map +1 -1
- package/dist/vuetify-labs.js +5357 -5335
- package/dist/vuetify-labs.min.css +2 -2
- package/dist/vuetify.css +385 -13
- package/dist/vuetify.d.ts +19744 -12997
- package/dist/vuetify.esm.js +735 -145
- package/dist/vuetify.esm.js.map +1 -1
- package/dist/vuetify.js +734 -144
- package/dist/vuetify.js.map +1 -1
- package/dist/vuetify.min.css +2 -2
- package/dist/vuetify.min.js +808 -779
- package/dist/vuetify.min.js.map +1 -1
- package/lib/components/VAlert/index.d.mts +114 -106
- package/lib/components/VApp/index.d.mts +24 -47
- package/lib/components/VAppBar/index.d.mts +219 -175
- package/lib/components/VAutocomplete/VAutocomplete.mjs +13 -10
- package/lib/components/VAutocomplete/VAutocomplete.mjs.map +1 -1
- package/lib/components/VAutocomplete/index.d.mts +1203 -551
- package/lib/components/VAvatar/index.d.mts +45 -53
- package/lib/components/VBadge/index.d.mts +66 -58
- package/lib/components/VBanner/index.d.mts +106 -146
- package/lib/components/VBottomNavigation/index.d.mts +72 -63
- package/lib/{labs → components}/VBottomSheet/VBottomSheet.mjs +1 -1
- package/lib/components/VBottomSheet/VBottomSheet.mjs.map +1 -0
- package/lib/{labs → components}/VBottomSheet/index.d.mts +153 -83
- package/lib/components/VBottomSheet/index.mjs.map +1 -0
- package/lib/components/VBreadcrumbs/index.d.mts +89 -147
- package/lib/components/VBtn/index.d.mts +107 -66
- package/lib/components/VBtnGroup/index.d.mts +38 -51
- package/lib/components/VBtnToggle/index.d.mts +53 -55
- package/lib/components/VCard/index.d.mts +238 -298
- package/lib/components/VCarousel/index.d.mts +251 -131
- package/lib/components/VCheckbox/index.d.mts +259 -146
- package/lib/components/VChip/index.d.mts +157 -76
- package/lib/components/VChipGroup/index.d.mts +76 -55
- package/lib/components/VCode/index.d.mts +21 -46
- package/lib/components/VColorPicker/index.d.mts +112 -61
- package/lib/components/VCombobox/VCombobox.mjs +13 -10
- package/lib/components/VCombobox/VCombobox.mjs.map +1 -1
- package/lib/components/VCombobox/index.d.mts +1203 -551
- package/lib/components/VCounter/index.d.mts +45 -57
- package/lib/components/VDefaultsProvider/index.d.mts +24 -49
- package/lib/components/VDialog/index.d.mts +583 -329
- package/lib/components/VDivider/index.d.mts +30 -49
- package/lib/components/VExpansionPanel/index.d.mts +188 -212
- package/lib/components/VField/index.d.mts +88 -105
- package/lib/components/VFileInput/index.d.mts +472 -287
- package/lib/components/VFooter/index.d.mts +42 -52
- package/lib/components/VForm/index.d.mts +149 -51
- package/lib/components/VGrid/index.d.mts +146 -196
- package/lib/components/VHover/index.d.mts +37 -49
- package/lib/components/VIcon/index.d.mts +79 -234
- package/lib/components/VImg/index.d.mts +80 -61
- package/lib/components/VInput/index.d.mts +90 -66
- package/lib/components/VItemGroup/index.d.mts +115 -99
- package/lib/components/VKbd/index.d.mts +21 -46
- package/lib/components/VLabel/index.d.mts +24 -47
- package/lib/components/VLayout/index.d.mts +55 -96
- package/lib/components/VLazy/index.d.mts +43 -50
- package/lib/components/VList/index.d.mts +403 -468
- package/lib/components/VLocaleProvider/index.d.mts +24 -46
- package/lib/components/VMain/index.d.mts +24 -47
- package/lib/components/VMenu/index.d.mts +573 -324
- package/lib/components/VMessages/index.d.mts +41 -49
- package/lib/components/VNavigationDrawer/VNavigationDrawer.css +1 -0
- package/lib/components/VNavigationDrawer/VNavigationDrawer.sass +1 -0
- package/lib/components/VNavigationDrawer/index.d.mts +95 -67
- package/lib/components/VOverlay/index.d.mts +138 -76
- package/lib/components/VPagination/index.d.mts +114 -73
- package/lib/components/VParallax/index.d.mts +31 -47
- package/lib/components/VProgressCircular/index.d.mts +48 -53
- package/lib/components/VProgressLinear/index.d.mts +84 -63
- package/lib/components/VRadio/index.d.mts +93 -61
- package/lib/components/VRadioGroup/index.d.mts +130 -77
- package/lib/components/VRangeSlider/index.d.mts +169 -86
- package/lib/components/VRating/index.d.mts +75 -62
- package/lib/components/VResponsive/index.d.mts +33 -47
- package/lib/components/VSelect/VSelect.mjs +13 -10
- package/lib/components/VSelect/VSelect.mjs.map +1 -1
- package/lib/components/VSelect/index.d.mts +1191 -546
- package/lib/components/VSelectionControl/index.d.mts +48 -53
- package/lib/components/VSelectionControlGroup/index.d.mts +58 -57
- package/lib/components/VSheet/index.d.mts +37 -48
- package/lib/components/VSkeletonLoader/VSkeletonLoader.mjs.map +1 -0
- package/lib/{labs → components}/VSkeletonLoader/index.d.mts +36 -51
- package/lib/components/VSkeletonLoader/index.mjs.map +1 -0
- package/lib/components/VSlideGroup/index.d.mts +106 -105
- package/lib/components/VSlider/index.d.mts +166 -85
- package/lib/components/VSnackbar/index.d.mts +572 -324
- package/lib/components/VStepper/VStepper.mjs +137 -98
- package/lib/components/VStepper/VStepper.mjs.map +1 -1
- package/lib/components/VStepper/VStepper.sass +38 -198
- package/lib/{labs → components}/VStepper/VStepperActions.mjs +2 -2
- package/lib/components/VStepper/VStepperActions.mjs.map +1 -0
- package/lib/components/VStepper/VStepperHeader.mjs.map +1 -0
- package/lib/{labs → components}/VStepper/VStepperItem.mjs +2 -2
- package/lib/components/VStepper/VStepperItem.mjs.map +1 -0
- package/lib/{labs → components}/VStepper/VStepperWindow.mjs +1 -1
- package/lib/components/VStepper/VStepperWindow.mjs.map +1 -0
- package/lib/{labs → components}/VStepper/VStepperWindowItem.mjs +1 -1
- package/lib/components/VStepper/VStepperWindowItem.mjs.map +1 -0
- package/lib/components/VStepper/_variables.scss +21 -31
- package/lib/{labs → components}/VStepper/index.d.mts +368 -340
- package/lib/components/VStepper/index.mjs +6 -17
- package/lib/components/VStepper/index.mjs.map +1 -1
- package/lib/components/VSwitch/index.d.mts +168 -86
- package/lib/components/VSystemBar/index.d.mts +39 -51
- package/lib/components/VTable/index.d.mts +45 -51
- package/lib/components/VTabs/index.d.mts +177 -132
- package/lib/components/VTextField/index.d.mts +665 -470
- package/lib/components/VTextarea/index.d.mts +469 -297
- package/lib/components/VThemeProvider/index.d.mts +26 -48
- package/lib/components/VTimeline/index.d.mts +98 -106
- package/lib/components/VToolbar/index.d.mts +119 -150
- package/lib/components/VTooltip/index.d.mts +565 -321
- package/lib/components/VValidation/index.d.mts +108 -62
- package/lib/components/VVirtualScroll/index.d.mts +18 -46
- package/lib/components/VWindow/index.d.mts +130 -110
- package/lib/components/index.d.mts +19539 -12808
- package/lib/components/index.mjs +4 -2
- package/lib/components/index.mjs.map +1 -1
- package/lib/components/transitions/index.d.mts +455 -819
- package/lib/composables/color.mjs +2 -2
- package/lib/composables/color.mjs.map +1 -1
- package/lib/entry-bundler.mjs +1 -1
- package/lib/framework.mjs +1 -1
- package/lib/index.d.mts +22 -22
- package/lib/labs/VDataIterator/index.d.mts +112 -75
- package/lib/labs/VDataTable/index.d.mts +1456 -530
- package/lib/labs/VDateInput/index.d.mts +260 -157
- package/lib/labs/VDatePicker/index.d.mts +1100 -889
- package/lib/labs/VDateRangePicker/index.d.mts +207 -129
- package/lib/labs/VInfiniteScroll/index.d.mts +59 -54
- package/lib/labs/VOtpInput/index.d.mts +80 -64
- package/lib/labs/VPicker/index.d.mts +74 -97
- package/lib/labs/components.d.mts +7777 -9883
- package/lib/labs/components.mjs +0 -3
- package/lib/labs/components.mjs.map +1 -1
- package/lib/labs/date/adapters/vuetify.mjs +6 -3
- package/lib/labs/date/adapters/vuetify.mjs.map +1 -1
- package/lib/locale/fr.mjs +19 -19
- package/lib/locale/fr.mjs.map +1 -1
- package/lib/util/colorUtils.mjs +3 -0
- package/lib/util/colorUtils.mjs.map +1 -1
- package/lib/util/helpers.mjs +8 -1
- package/lib/util/helpers.mjs.map +1 -1
- package/package.json +1 -1
- package/lib/components/VStepper/VStepperContent.mjs +0 -114
- package/lib/components/VStepper/VStepperContent.mjs.map +0 -1
- package/lib/components/VStepper/VStepperStep.mjs +0 -134
- package/lib/components/VStepper/VStepperStep.mjs.map +0 -1
- package/lib/labs/VBottomSheet/VBottomSheet.mjs.map +0 -1
- package/lib/labs/VBottomSheet/index.mjs.map +0 -1
- package/lib/labs/VSkeletonLoader/VSkeletonLoader.mjs.map +0 -1
- package/lib/labs/VSkeletonLoader/index.mjs.map +0 -1
- package/lib/labs/VStepper/VStepper.mjs +0 -149
- package/lib/labs/VStepper/VStepper.mjs.map +0 -1
- package/lib/labs/VStepper/VStepper.sass +0 -53
- package/lib/labs/VStepper/VStepperActions.mjs.map +0 -1
- package/lib/labs/VStepper/VStepperHeader.mjs.map +0 -1
- package/lib/labs/VStepper/VStepperItem.mjs.map +0 -1
- package/lib/labs/VStepper/VStepperWindow.mjs.map +0 -1
- package/lib/labs/VStepper/VStepperWindowItem.mjs.map +0 -1
- package/lib/labs/VStepper/_variables.scss +0 -27
- package/lib/labs/VStepper/index.mjs +0 -7
- package/lib/labs/VStepper/index.mjs.map +0 -1
- /package/lib/{labs → components}/VBottomSheet/VBottomSheet.css +0 -0
- /package/lib/{labs → components}/VBottomSheet/VBottomSheet.sass +0 -0
- /package/lib/{labs → components}/VBottomSheet/_variables.scss +0 -0
- /package/lib/{labs → components}/VBottomSheet/index.mjs +0 -0
- /package/lib/{labs → components}/VSkeletonLoader/VSkeletonLoader.css +0 -0
- /package/lib/{labs → components}/VSkeletonLoader/VSkeletonLoader.mjs +0 -0
- /package/lib/{labs → components}/VSkeletonLoader/VSkeletonLoader.sass +0 -0
- /package/lib/{labs → components}/VSkeletonLoader/_variables.scss +0 -0
- /package/lib/{labs → components}/VSkeletonLoader/index.mjs +0 -0
- /package/lib/{labs → components}/VStepper/VStepper.css +0 -0
- /package/lib/{labs → components}/VStepper/VStepperHeader.mjs +0 -0
- /package/lib/{labs → components}/VStepper/VStepperItem.css +0 -0
- /package/lib/{labs → components}/VStepper/VStepperItem.sass +0 -0
|
@@ -1,110 +1,149 @@
|
|
|
1
|
-
|
|
2
|
-
/* eslint-disable */
|
|
3
|
-
|
|
1
|
+
import { mergeProps as _mergeProps, resolveDirective as _resolveDirective, createVNode as _createVNode, Fragment as _Fragment } from "vue";
|
|
4
2
|
// Styles
|
|
5
3
|
import "./VStepper.css";
|
|
6
4
|
|
|
7
|
-
//
|
|
8
|
-
import
|
|
9
|
-
|
|
10
|
-
import {
|
|
11
|
-
import
|
|
12
|
-
import
|
|
13
|
-
import {
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
5
|
+
// Components
|
|
6
|
+
import { makeVStepperActionsProps, VStepperActions } from "./VStepperActions.mjs";
|
|
7
|
+
import { VStepperHeader } from "./VStepperHeader.mjs";
|
|
8
|
+
import { VStepperItem } from "./VStepperItem.mjs";
|
|
9
|
+
import { VStepperWindow } from "./VStepperWindow.mjs";
|
|
10
|
+
import { VStepperWindowItem } from "./VStepperWindowItem.mjs";
|
|
11
|
+
import { VDivider } from "../VDivider/index.mjs";
|
|
12
|
+
import { makeVSheetProps, VSheet } from "../VSheet/VSheet.mjs"; // Composables
|
|
13
|
+
import { provideDefaults } from "../../composables/defaults.mjs";
|
|
14
|
+
import { makeGroupProps, useGroup } from "../../composables/group.mjs"; // Utilities
|
|
15
|
+
import { computed, toRefs } from 'vue';
|
|
16
|
+
import { genericComponent, getPropertyFromItem, only, propsFactory, useRender } from "../../util/index.mjs"; // Types
|
|
17
|
+
export const VStepperSymbol = Symbol.for('vuetify:v-stepper');
|
|
18
|
+
export const makeVStepperProps = propsFactory({
|
|
19
|
+
altLabels: Boolean,
|
|
20
|
+
bgColor: String,
|
|
21
|
+
editable: Boolean,
|
|
22
|
+
hideActions: Boolean,
|
|
23
|
+
items: {
|
|
24
|
+
type: Array,
|
|
25
|
+
default: () => []
|
|
23
26
|
},
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
flat: Boolean,
|
|
28
|
-
vertical: Boolean
|
|
27
|
+
itemTitle: {
|
|
28
|
+
type: String,
|
|
29
|
+
default: 'title'
|
|
29
30
|
},
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
steps: [],
|
|
34
|
-
content: [],
|
|
35
|
-
isReverse: false
|
|
36
|
-
};
|
|
37
|
-
data.internalLazyValue = this.value != null ? this.value : (data[0] || {}).step || 1;
|
|
38
|
-
return data;
|
|
31
|
+
itemValue: {
|
|
32
|
+
type: String,
|
|
33
|
+
default: 'value'
|
|
39
34
|
},
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
35
|
+
mobile: Boolean,
|
|
36
|
+
nonLinear: Boolean,
|
|
37
|
+
flat: Boolean,
|
|
38
|
+
...makeGroupProps({
|
|
39
|
+
mandatory: 'force',
|
|
40
|
+
selectedClass: 'v-stepper-item--selected'
|
|
41
|
+
}),
|
|
42
|
+
...makeVSheetProps(),
|
|
43
|
+
...only(makeVStepperActionsProps(), ['prevText', 'nextText'])
|
|
44
|
+
}, 'VStepper');
|
|
45
|
+
export const VStepper = genericComponent()({
|
|
46
|
+
name: 'VStepper',
|
|
47
|
+
props: makeVStepperProps(),
|
|
48
|
+
emits: {
|
|
49
|
+
'update:modelValue': v => true
|
|
50
|
+
},
|
|
51
|
+
setup(props, _ref) {
|
|
52
|
+
let {
|
|
53
|
+
slots
|
|
54
|
+
} = _ref;
|
|
55
|
+
const {
|
|
56
|
+
items: _items,
|
|
57
|
+
next,
|
|
58
|
+
prev,
|
|
59
|
+
selected
|
|
60
|
+
} = useGroup(props, VStepperSymbol);
|
|
61
|
+
const {
|
|
62
|
+
color,
|
|
63
|
+
editable,
|
|
64
|
+
prevText,
|
|
65
|
+
nextText
|
|
66
|
+
} = toRefs(props);
|
|
67
|
+
const items = computed(() => props.items.map((item, index) => {
|
|
68
|
+
const title = getPropertyFromItem(item, props.itemTitle, item);
|
|
69
|
+
const value = getPropertyFromItem(item, props.itemValue, index + 1);
|
|
52
70
|
return {
|
|
53
|
-
|
|
71
|
+
title,
|
|
72
|
+
value,
|
|
73
|
+
raw: item
|
|
54
74
|
};
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
this.steps.push(item);
|
|
77
|
-
} else if (item.$options.name === 'v-stepper-content') {
|
|
78
|
-
item.isVertical = this.vertical;
|
|
79
|
-
this.content.push(item);
|
|
80
|
-
}
|
|
81
|
-
},
|
|
82
|
-
unregister(item) {
|
|
83
|
-
if (item.$options.name === 'v-stepper-step') {
|
|
84
|
-
this.steps = this.steps.filter(i => i !== item);
|
|
85
|
-
} else if (item.$options.name === 'v-stepper-content') {
|
|
86
|
-
item.isVertical = this.vertical;
|
|
87
|
-
this.content = this.content.filter(i => i !== item);
|
|
88
|
-
}
|
|
89
|
-
},
|
|
90
|
-
stepClick(step) {
|
|
91
|
-
this.$nextTick(() => this.internalValue = step);
|
|
92
|
-
},
|
|
93
|
-
updateView() {
|
|
94
|
-
for (let index = this.steps.length; --index >= 0;) {
|
|
95
|
-
this.steps[index].toggle(this.internalValue);
|
|
75
|
+
}));
|
|
76
|
+
const activeIndex = computed(() => {
|
|
77
|
+
return _items.value.findIndex(item => selected.value.includes(item.id));
|
|
78
|
+
});
|
|
79
|
+
const disabled = computed(() => {
|
|
80
|
+
if (props.disabled) return props.disabled;
|
|
81
|
+
if (activeIndex.value === 0) return 'prev';
|
|
82
|
+
if (activeIndex.value === _items.value.length - 1) return 'next';
|
|
83
|
+
return false;
|
|
84
|
+
});
|
|
85
|
+
provideDefaults({
|
|
86
|
+
VStepperItem: {
|
|
87
|
+
editable,
|
|
88
|
+
prevText,
|
|
89
|
+
nextText
|
|
90
|
+
},
|
|
91
|
+
VStepperActions: {
|
|
92
|
+
color,
|
|
93
|
+
disabled,
|
|
94
|
+
prevText,
|
|
95
|
+
nextText
|
|
96
96
|
}
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
97
|
+
});
|
|
98
|
+
useRender(() => {
|
|
99
|
+
const [sheetProps] = VSheet.filterProps(props);
|
|
100
|
+
const hasHeader = !!(slots.header || props.items.length);
|
|
101
|
+
const hasWindow = props.items.length > 0;
|
|
102
|
+
const hasActions = !props.hideActions && !!(hasWindow || slots.actions);
|
|
103
|
+
return _createVNode(VSheet, _mergeProps(sheetProps, {
|
|
104
|
+
"color": props.bgColor,
|
|
105
|
+
"class": ['v-stepper', {
|
|
106
|
+
'v-stepper--alt-labels': props.altLabels,
|
|
107
|
+
'v-stepper--flat': props.flat,
|
|
108
|
+
'v-stepper--non-linear': props.nonLinear,
|
|
109
|
+
'v-stepper--mobile': props.mobile
|
|
110
|
+
}, props.class],
|
|
111
|
+
"style": props.style
|
|
112
|
+
}), {
|
|
113
|
+
default: () => [hasHeader && _createVNode(VStepperHeader, {
|
|
114
|
+
"key": "stepper-header"
|
|
115
|
+
}, {
|
|
116
|
+
default: () => [items.value.map((item, index) => _createVNode(_Fragment, null, [!!index && _createVNode(VDivider, null, null), _createVNode(VStepperItem, item, {
|
|
117
|
+
default: slots[`header-item.${item.value}`] ?? slots.header,
|
|
118
|
+
icon: slots.icon,
|
|
119
|
+
title: slots.title,
|
|
120
|
+
subtitle: slots.subtitle
|
|
121
|
+
})]))]
|
|
122
|
+
}), hasWindow && _createVNode(VStepperWindow, {
|
|
123
|
+
"key": "stepper-window"
|
|
124
|
+
}, {
|
|
125
|
+
default: () => [items.value.map(item => _createVNode(VStepperWindowItem, {
|
|
126
|
+
"value": item.value
|
|
127
|
+
}, {
|
|
128
|
+
default: () => slots[`item.${item.value}`]?.(item) ?? slots.item?.(item)
|
|
129
|
+
}))]
|
|
130
|
+
}), slots.default?.({
|
|
131
|
+
prev,
|
|
132
|
+
next
|
|
133
|
+
}), hasActions && (slots.actions?.({
|
|
134
|
+
next,
|
|
135
|
+
prev
|
|
136
|
+
}) ?? _createVNode(VStepperActions, {
|
|
137
|
+
"key": "stepper-actions",
|
|
138
|
+
"onClick:prev": prev,
|
|
139
|
+
"onClick:next": next
|
|
140
|
+
}, slots))]
|
|
141
|
+
});
|
|
142
|
+
});
|
|
143
|
+
return {
|
|
144
|
+
prev,
|
|
145
|
+
next
|
|
146
|
+
};
|
|
108
147
|
}
|
|
109
148
|
});
|
|
110
149
|
//# sourceMappingURL=VStepper.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VStepper.mjs","names":["VSheet","provide","RegistrableProvide","Proxyable","mixins","breaking","baseMixins","extend","name","stepClick","isVertical","vertical","props","altLabels","Boolean","nonLinear","flat","data","isBooted","steps","content","isReverse","internalLazyValue","value","step","computed","classes","options","call","styles","watch","internalValue","val","oldVal","Number","updateView","created","$listeners","input","mounted","methods","register","item","$options","push","unregister","filter","i","$nextTick","index","length","toggle","render","h","tag","staticClass","class","style","$slots","default"],"sources":["../../../src/components/VStepper/VStepper.ts"],"sourcesContent":["// @ts-nocheck\n/* eslint-disable */\n\n// Styles\nimport './VStepper.sass'\n\n// Extensions\nimport VSheet from '../VSheet'\n\n// Components\nimport VStepperStep from './VStepperStep'\nimport VStepperContent from './VStepperContent'\n\n// Mixins\nimport { provide as RegistrableProvide } from '../../mixins/registrable'\nimport Proxyable from '../../mixins/proxyable'\n\n// Utilities\nimport mixins from '../../util/mixins'\nimport { breaking } from '../../util/console'\n\n// Types\nimport { VNode } from 'vue'\n\nconst baseMixins = mixins(\n VSheet,\n RegistrableProvide('stepper'),\n Proxyable,\n)\n\ntype VStepperStepInstance = InstanceType<typeof VStepperStep>\ntype VStepperContentInstance = InstanceType<typeof VStepperContent>\n\n/* @vue/component */\nexport default baseMixins.extend({\n name: 'v-stepper',\n\n provide (): object {\n return {\n stepClick: this.stepClick,\n isVertical: this.vertical,\n }\n },\n\n props: {\n altLabels: Boolean,\n nonLinear: Boolean,\n flat: Boolean,\n vertical: Boolean,\n },\n\n data () {\n const data: Record<string, any> = {\n isBooted: false,\n steps: [] as VStepperStepInstance[],\n content: [] as VStepperContentInstance[],\n isReverse: false,\n }\n\n data.internalLazyValue = this.value != null\n ? this.value\n : (data[0] || {}).step || 1\n\n return data\n },\n\n computed: {\n classes (): object {\n return {\n 'v-stepper--flat': this.flat,\n 'v-stepper--is-booted': this.isBooted,\n 'v-stepper--vertical': this.vertical,\n 'v-stepper--alt-labels': this.altLabels,\n 'v-stepper--non-linear': this.nonLinear,\n ...VSheet.options.computed.classes.call(this),\n }\n },\n styles (): object {\n return {\n ...VSheet.options.computed.styles.call(this),\n }\n },\n },\n\n watch: {\n internalValue (val, oldVal) {\n this.isReverse = Number(val) < Number(oldVal)\n\n oldVal && (this.isBooted = true)\n\n this.updateView()\n },\n },\n\n created () {\n /* istanbul ignore next */\n if (this.$listeners.input) {\n breaking('@input', '@change', this)\n }\n },\n\n mounted () {\n this.updateView()\n },\n\n methods: {\n register (item: VStepperStepInstance | VStepperContentInstance) {\n if (item.$options.name === 'v-stepper-step') {\n this.steps.push(item as VStepperStepInstance)\n } else if (item.$options.name === 'v-stepper-content') {\n (item as VStepperContentInstance).isVertical = this.vertical\n this.content.push(item as VStepperContentInstance)\n }\n },\n unregister (item: VStepperStepInstance | VStepperContentInstance) {\n if (item.$options.name === 'v-stepper-step') {\n this.steps = this.steps.filter((i: VStepperStepInstance) => i !== item)\n } else if (item.$options.name === 'v-stepper-content') {\n (item as VStepperContentInstance).isVertical = this.vertical\n this.content = this.content.filter((i: VStepperContentInstance) => i !== item)\n }\n },\n stepClick (step: string | number) {\n this.$nextTick(() => (this.internalValue = step))\n },\n updateView () {\n for (let index = this.steps.length; --index >= 0;) {\n this.steps[index].toggle(this.internalValue as any)\n }\n for (let index = this.content.length; --index >= 0;) {\n this.content[index].toggle(this.internalValue as any, this.isReverse)\n }\n },\n },\n\n render (h): VNode {\n return h(this.tag, {\n staticClass: 'v-stepper',\n class: this.classes,\n style: this.styles,\n }, this.$slots.default)\n },\n})\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"VStepper.mjs","names":["makeVStepperActionsProps","VStepperActions","VStepperHeader","VStepperItem","VStepperWindow","VStepperWindowItem","VDivider","makeVSheetProps","VSheet","provideDefaults","makeGroupProps","useGroup","computed","toRefs","genericComponent","getPropertyFromItem","only","propsFactory","useRender","VStepperSymbol","Symbol","for","makeVStepperProps","altLabels","Boolean","bgColor","String","editable","hideActions","items","type","Array","default","itemTitle","itemValue","mobile","nonLinear","flat","mandatory","selectedClass","VStepper","name","props","emits","v","setup","_ref","slots","_items","next","prev","selected","color","prevText","nextText","map","item","index","title","value","raw","activeIndex","findIndex","includes","id","disabled","length","sheetProps","filterProps","hasHeader","header","hasWindow","hasActions","actions","_createVNode","_mergeProps","class","style","_Fragment","icon","subtitle"],"sources":["../../../src/components/VStepper/VStepper.tsx"],"sourcesContent":["// Styles\nimport './VStepper.sass'\n\n// Components\nimport { makeVStepperActionsProps, VStepperActions } from './VStepperActions'\nimport { VStepperHeader } from './VStepperHeader'\nimport { VStepperItem } from './VStepperItem'\nimport { VStepperWindow } from './VStepperWindow'\nimport { VStepperWindowItem } from './VStepperWindowItem'\nimport { VDivider } from '@/components/VDivider'\nimport { makeVSheetProps, VSheet } from '@/components/VSheet/VSheet'\n\n// Composables\nimport { provideDefaults } from '@/composables/defaults'\nimport { makeGroupProps, useGroup } from '@/composables/group'\n\n// Utilities\nimport { computed, toRefs } from 'vue'\nimport { genericComponent, getPropertyFromItem, only, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { InjectionKey, PropType } from 'vue'\nimport type { StepperItemSlot } from './VStepperItem'\nimport type { GroupItemProvide } from '@/composables/group'\n\nexport const VStepperSymbol: InjectionKey<GroupItemProvide> = Symbol.for('vuetify:v-stepper')\n\nexport type StepperItem = string | Record<string, any>\n\nexport type VStepperSlot = {\n prev: () => void\n next: () => void\n}\n\nexport type VStepperSlots = {\n actions: VStepperSlot\n default: StepperItem\n header: StepperItem\n 'header-item': StepperItemSlot\n icon: StepperItemSlot\n title: StepperItemSlot\n subtitle: StepperItemSlot\n item: StepperItem\n prev: never\n next: never\n} & {\n [key: `header-item.${string}`]: StepperItemSlot\n [key: `item.${string}`]: StepperItem\n}\n\nexport const makeVStepperProps = propsFactory({\n altLabels: Boolean,\n bgColor: String,\n editable: Boolean,\n hideActions: Boolean,\n items: {\n type: Array as PropType<readonly StepperItem[]>,\n default: () => ([]),\n },\n itemTitle: {\n type: String,\n default: 'title',\n },\n itemValue: {\n type: String,\n default: 'value',\n },\n mobile: Boolean,\n nonLinear: Boolean,\n flat: Boolean,\n\n ...makeGroupProps({\n mandatory: 'force' as const,\n selectedClass: 'v-stepper-item--selected',\n }),\n ...makeVSheetProps(),\n ...only(makeVStepperActionsProps(), ['prevText', 'nextText']),\n}, 'VStepper')\n\nexport const VStepper = genericComponent<VStepperSlots>()({\n name: 'VStepper',\n\n props: makeVStepperProps(),\n\n emits: {\n 'update:modelValue': (v: unknown) => true,\n },\n\n setup (props, { slots }) {\n const { items: _items, next, prev, selected } = useGroup(props, VStepperSymbol)\n const { color, editable, prevText, nextText } = toRefs(props)\n\n const items = computed(() => props.items.map((item, index) => {\n const title = getPropertyFromItem(item, props.itemTitle, item)\n const value = getPropertyFromItem(item, props.itemValue, index + 1)\n\n return {\n title,\n value,\n raw: item,\n }\n }))\n const activeIndex = computed(() => {\n return _items.value.findIndex(item => selected.value.includes(item.id))\n })\n const disabled = computed(() => {\n if (props.disabled) return props.disabled\n if (activeIndex.value === 0) return 'prev'\n if (activeIndex.value === _items.value.length - 1) return 'next'\n\n return false\n })\n\n provideDefaults({\n VStepperItem: {\n editable,\n prevText,\n nextText,\n },\n VStepperActions: {\n color,\n disabled,\n prevText,\n nextText,\n },\n })\n\n useRender(() => {\n const [sheetProps] = VSheet.filterProps(props)\n\n const hasHeader = !!(slots.header || props.items.length)\n const hasWindow = props.items.length > 0\n const hasActions = !props.hideActions && !!(hasWindow || slots.actions)\n\n return (\n <VSheet\n { ...sheetProps }\n color={ props.bgColor }\n class={[\n 'v-stepper',\n {\n 'v-stepper--alt-labels': props.altLabels,\n 'v-stepper--flat': props.flat,\n 'v-stepper--non-linear': props.nonLinear,\n 'v-stepper--mobile': props.mobile,\n },\n props.class,\n ]}\n style={ props.style }\n >\n { hasHeader && (\n <VStepperHeader key=\"stepper-header\">\n { items.value.map((item, index) => (\n <>\n { !!index && (<VDivider />) }\n\n <VStepperItem\n { ...item }\n v-slots={{\n default: slots[`header-item.${item.value}`] ?? slots.header,\n icon: slots.icon,\n title: slots.title,\n subtitle: slots.subtitle,\n }}\n />\n </>\n ))}\n </VStepperHeader>\n )}\n\n { hasWindow && (\n <VStepperWindow key=\"stepper-window\">\n { items.value.map(item => (\n <VStepperWindowItem\n value={ item.value }\n v-slots={{\n default: () => slots[`item.${item.value}`]?.(item) ?? slots.item?.(item),\n }}\n />\n ))}\n </VStepperWindow>\n )}\n\n { slots.default?.({ prev, next }) }\n\n { hasActions && (\n slots.actions?.({ next, prev }) ?? (\n <VStepperActions\n key=\"stepper-actions\"\n onClick:prev={ prev }\n onClick:next={ next }\n v-slots={ slots }\n />\n )\n )}\n </VSheet>\n )\n })\n\n return {\n prev,\n next,\n }\n },\n})\n\nexport type VStepper = InstanceType<typeof VStepper>\n"],"mappings":"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"}
|
|
@@ -1,213 +1,53 @@
|
|
|
1
|
-
@
|
|
1
|
+
@use '../../styles/settings'
|
|
2
|
+
@use '../../styles/tools'
|
|
3
|
+
@use './variables' as *
|
|
2
4
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
+
.v-stepper.v-sheet
|
|
6
|
+
@include tools.elevation($stepper-elevation)
|
|
7
|
+
@include tools.rounded($stepper-border-radius)
|
|
5
8
|
|
|
6
|
-
.v-stepper__step
|
|
7
|
-
&:not(.v-stepper__step--active):not(.v-stepper__step--complete):not(.v-stepper__step--error)
|
|
8
|
-
.v-stepper__step__step
|
|
9
|
-
background: rgba(map-get($material, 'fg-color'), map-get($material, 'disabledORhints-text-percent'))
|
|
10
|
-
|
|
11
|
-
&__step
|
|
12
|
-
color: map-deep-get($material, 'stepper', 'active')
|
|
13
|
-
|
|
14
|
-
.v-icon
|
|
15
|
-
color: map-deep-get($material, 'stepper', 'active')
|
|
16
|
-
|
|
17
|
-
.v-stepper__header
|
|
18
|
-
.v-divider
|
|
19
|
-
border-color: rgba(map-get($material, 'fg-color'), map-get($material, 'divider-percent'))
|
|
20
|
-
|
|
21
|
-
.v-stepper__step
|
|
22
|
-
&--active
|
|
23
|
-
.v-stepper__label
|
|
24
|
-
text-shadow: 0px 0px 0px rgba(map-get($material, 'fg-color'), 1)
|
|
25
|
-
|
|
26
|
-
&--editable:hover
|
|
27
|
-
background: rgba(map-get($material, 'fg-color'), .06)
|
|
28
|
-
|
|
29
|
-
.v-stepper__label
|
|
30
|
-
text-shadow: 0px 0px 0px rgba(map-get($material, 'fg-color'), 1)
|
|
31
|
-
|
|
32
|
-
&--complete
|
|
33
|
-
.v-stepper__label
|
|
34
|
-
color: map-deep-get($material, 'stepper', 'completed')
|
|
35
|
-
|
|
36
|
-
&--inactive
|
|
37
|
-
&.v-stepper__step--editable:not(.v-stepper__step--error)
|
|
38
|
-
&:hover
|
|
39
|
-
.v-stepper__step__step
|
|
40
|
-
background: map-deep-get($material, 'stepper', 'hover')
|
|
41
|
-
|
|
42
|
-
.v-stepper__label
|
|
43
|
-
color: rgba(map-get($material, 'fg-color'), map-get($material, 'disabledORhints-text-percent'))
|
|
44
|
-
|
|
45
|
-
small
|
|
46
|
-
color: rgba(map-get($material, 'fg-color'), map-get($material, 'secondary-text-percent'))
|
|
47
|
-
|
|
48
|
-
&--non-linear
|
|
49
|
-
.v-stepper__step:not(.v-stepper__step--complete):not(.v-stepper__step--error)
|
|
50
|
-
.v-stepper__label
|
|
51
|
-
color: rgba(map-get($material, 'fg-color'), map-get($material, 'secondary-text-percent'))
|
|
52
|
-
|
|
53
|
-
&--vertical
|
|
54
|
-
.v-stepper__content:not(:last-child)
|
|
55
|
-
border-inline-start: 1px solid rgba(map-get($material, 'fg-color'), map-get($material, 'divider-percent'))
|
|
56
|
-
|
|
57
|
-
+sheet(v-stepper, $stepper-elevation, $stepper-border-radius, $stepper-shaped-border-radius)
|
|
58
|
-
|
|
59
|
-
.v-stepper
|
|
60
|
-
border-radius: $stepper-border-radius
|
|
61
9
|
overflow: hidden
|
|
62
|
-
position: relative
|
|
63
|
-
|
|
64
|
-
&__header
|
|
65
|
-
height: $stepper-header-height
|
|
66
|
-
align-items: stretch
|
|
67
|
-
display: flex
|
|
68
|
-
flex-wrap: wrap
|
|
69
|
-
justify-content: space-between
|
|
70
|
-
+elevation($stepper-header-elevation)
|
|
71
|
-
|
|
72
|
-
.v-divider
|
|
73
|
-
align-self: center
|
|
74
|
-
margin: $stepper-header-divider-margin
|
|
75
10
|
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
overflow: hidden
|
|
11
|
+
&.v-stepper--flat
|
|
12
|
+
@include tools.elevation(0)
|
|
79
13
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
border-radius: 50%
|
|
83
|
-
display: inline-flex
|
|
84
|
-
font-size: $stepper-step-step-font-size
|
|
85
|
-
justify-content: center
|
|
86
|
-
height: $stepper-step-step-height
|
|
87
|
-
min-width: $stepper-step-step-min-width
|
|
88
|
-
width: $stepper-step-step-width
|
|
89
|
-
transition: .3s map-get($transition, 'fast-in-fast-out')
|
|
90
|
-
margin-inline-end: $stepper-step-step-margin
|
|
14
|
+
.v-stepper-header
|
|
15
|
+
@include tools.elevation($stepper-header-elevation)
|
|
91
16
|
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
&__step
|
|
100
|
-
align-items: center
|
|
101
|
-
display: flex
|
|
102
|
-
flex-direction: row
|
|
103
|
-
padding: $stepper-step-padding
|
|
104
|
-
position: relative
|
|
105
|
-
|
|
106
|
-
&--active
|
|
107
|
-
.v-stepper__label
|
|
108
|
-
transition: .3s map-get($transition, 'ease-in-out')
|
|
109
|
-
|
|
110
|
-
&--editable
|
|
111
|
-
cursor: pointer
|
|
112
|
-
|
|
113
|
-
&.v-stepper__step--error
|
|
114
|
-
.v-stepper__step__step
|
|
115
|
-
background: transparent
|
|
116
|
-
color: inherit
|
|
117
|
-
|
|
118
|
-
.v-icon
|
|
119
|
-
font-size: $stepper-step-error-icon-font-size
|
|
120
|
-
color: inherit
|
|
121
|
-
|
|
122
|
-
.v-stepper & .v-stepper__label
|
|
123
|
-
color: inherit
|
|
124
|
-
text-shadow: none
|
|
125
|
-
font-weight: 500
|
|
126
|
-
|
|
127
|
-
small
|
|
128
|
-
color: inherit
|
|
129
|
-
|
|
130
|
-
&__label
|
|
131
|
-
display: block
|
|
132
|
-
flex-grow: 1
|
|
133
|
-
line-height: $stepper-label-line-height
|
|
134
|
-
text-align: start
|
|
135
|
-
|
|
136
|
-
small
|
|
137
|
-
display: block
|
|
138
|
-
font-size: $stepper-label-small-font-size
|
|
139
|
-
font-weight: $stepper-label-small-font-weight
|
|
140
|
-
text-shadow: none
|
|
141
|
-
|
|
142
|
-
&__wrapper
|
|
143
|
-
overflow: hidden
|
|
144
|
-
transition: none
|
|
145
|
-
|
|
146
|
-
&__content
|
|
147
|
-
top: 0
|
|
148
|
-
padding: $stepper-content-padding
|
|
149
|
-
flex: 1 0 auto
|
|
150
|
-
// Chrome has an issue with overflow hidden for rendering
|
|
151
|
-
// Originally used translateZ but this messes up fixed
|
|
152
|
-
// elements within the stepper
|
|
153
|
-
// Fix for #512 and #620
|
|
154
|
-
// overflow: hidden
|
|
155
|
-
width: 100%
|
|
156
|
-
|
|
157
|
-
> .v-btn
|
|
158
|
-
margin: $stepper-content-btn-margin
|
|
159
|
-
|
|
160
|
-
&--flat
|
|
161
|
-
+elevation(0, true)
|
|
162
|
-
|
|
163
|
-
&--is-booted
|
|
164
|
-
.v-stepper__content, .v-stepper__wrapper
|
|
165
|
-
transition: .3s map-get($transition, 'swing')
|
|
166
|
-
|
|
167
|
-
&--vertical
|
|
168
|
-
padding-bottom: $stepper-vertical-padding-bottom
|
|
169
|
-
|
|
170
|
-
.v-stepper__content
|
|
171
|
-
width: auto
|
|
172
|
-
margin-inline: $stepper-vertical-content-margin-inline
|
|
173
|
-
margin-block: $stepper-vertical-content-margin-block
|
|
174
|
-
padding-inline: $stepper-vertical-content-padding-inline
|
|
175
|
-
padding-block: $stepper-vertical-content-padding-block
|
|
17
|
+
align-items: center
|
|
18
|
+
display: flex
|
|
19
|
+
position: relative
|
|
20
|
+
overflow-x: auto
|
|
21
|
+
justify-content: space-between
|
|
22
|
+
z-index: 1
|
|
176
23
|
|
|
177
|
-
|
|
178
|
-
|
|
24
|
+
.v-divider
|
|
25
|
+
margin: $stepper-header-divider-margin
|
|
179
26
|
|
|
180
|
-
|
|
181
|
-
margin-inline-end:
|
|
27
|
+
&:last-child
|
|
28
|
+
margin-inline-end: 0
|
|
182
29
|
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
height: auto
|
|
30
|
+
&:first-child
|
|
31
|
+
margin-inline-start: 0
|
|
186
32
|
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
align-self: flex-start
|
|
33
|
+
.v-stepper--alt-labels &
|
|
34
|
+
height: auto
|
|
190
35
|
|
|
191
|
-
.v-
|
|
192
|
-
|
|
193
|
-
|
|
194
|
-
align-items: center
|
|
195
|
-
flex-basis: $stepper-alt-labels-flex-basis
|
|
36
|
+
.v-divider
|
|
37
|
+
align-self: flex-start
|
|
38
|
+
margin: $stepper-alt-labels-header-divider
|
|
196
39
|
|
|
197
|
-
|
|
198
|
-
|
|
40
|
+
.v-stepper-window
|
|
41
|
+
margin: $stepper-window-margin
|
|
199
42
|
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
43
|
+
.v-stepper-actions
|
|
44
|
+
display: flex
|
|
45
|
+
align-items: center
|
|
46
|
+
justify-content: space-between
|
|
47
|
+
padding: $stepper-actions-padding
|
|
204
48
|
|
|
205
|
-
|
|
206
|
-
|
|
207
|
-
.v-stepper:not(.v-stepper--vertical)
|
|
208
|
-
.v-stepper__label
|
|
209
|
-
display: none
|
|
49
|
+
.v-stepper &
|
|
50
|
+
padding: $stepper-actions-stepper-padding
|
|
210
51
|
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
margin-right: 0
|
|
52
|
+
.v-stepper-window-item &
|
|
53
|
+
padding: $stepper-actions-stepper-window-item-padding
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { createVNode as _createVNode } from "vue";
|
|
2
2
|
// Components
|
|
3
|
-
import { VBtn } from "
|
|
4
|
-
import { VDefaultsProvider } from "
|
|
3
|
+
import { VBtn } from "../VBtn/VBtn.mjs";
|
|
4
|
+
import { VDefaultsProvider } from "../VDefaultsProvider/VDefaultsProvider.mjs"; // Composables
|
|
5
5
|
import { useLocale } from "../../composables/locale.mjs"; // Utilities
|
|
6
6
|
import { genericComponent, propsFactory, useRender } from "../../util/index.mjs"; // Types
|
|
7
7
|
export const makeVStepperActionsProps = propsFactory({
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VStepperActions.mjs","names":["VBtn","VDefaultsProvider","useLocale","genericComponent","propsFactory","useRender","makeVStepperActionsProps","color","String","disabled","type","Boolean","default","prevText","nextText","VStepperActions","name","props","emits","click:prev","click:next","setup","_ref","emit","slots","t","onClickPrev","onClickNext","prevSlotProps","onClick","nextSlotProps","_createVNode","includes","text","variant","prev","next"],"sources":["../../../src/components/VStepper/VStepperActions.tsx"],"sourcesContent":["// Components\nimport { VBtn } from '@/components/VBtn/VBtn'\nimport { VDefaultsProvider } from '@/components/VDefaultsProvider/VDefaultsProvider'\n\n// Composables\nimport { useLocale } from '@/composables/locale'\n\n// Utilities\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\n\nexport type VStepperActionsSlots = {\n prev: {\n props: { onClick: () => void }\n }\n next: {\n props: { onClick: () => void }\n }\n}\n\nexport const makeVStepperActionsProps = propsFactory({\n color: String,\n disabled: {\n type: [Boolean, String] as PropType<boolean | 'next' | 'prev'>,\n default: false,\n },\n prevText: {\n type: String,\n default: '$vuetify.stepper.prev',\n },\n nextText: {\n type: String,\n default: '$vuetify.stepper.next',\n },\n}, 'VStepperActions')\n\nexport const VStepperActions = genericComponent<VStepperActionsSlots>()({\n name: 'VStepperActions',\n\n props: makeVStepperActionsProps(),\n\n emits: {\n 'click:prev': () => true,\n 'click:next': () => true,\n },\n\n setup (props, { emit, slots }) {\n const { t } = useLocale()\n function onClickPrev () {\n emit('click:prev')\n }\n\n function onClickNext () {\n emit('click:next')\n }\n\n useRender(() => {\n const prevSlotProps = {\n onClick: onClickPrev,\n }\n const nextSlotProps = {\n onClick: onClickNext,\n }\n\n return (\n <div class=\"v-stepper-actions\">\n <VDefaultsProvider\n defaults={{\n VBtn: {\n disabled: ['prev', true].includes(props.disabled),\n text: t(props.prevText),\n variant: 'text',\n },\n }}\n >\n { slots.prev?.({ props: prevSlotProps }) ?? (\n <VBtn { ...prevSlotProps } />\n )}\n </VDefaultsProvider>\n\n <VDefaultsProvider\n defaults={{\n VBtn: {\n color: props.color,\n disabled: ['next', true].includes(props.disabled),\n text: t(props.nextText),\n variant: 'tonal',\n },\n }}\n >\n { slots.next?.({ props: nextSlotProps }) ?? (\n <VBtn { ...nextSlotProps } />\n )}\n </VDefaultsProvider>\n </div>\n )\n })\n\n return {}\n },\n})\n\nexport type VStepperActions = InstanceType<typeof VStepperActions>\n"],"mappings":";AAAA;AAAA,SACSA,IAAI;AAAA,SACJC,iBAAiB,sDAE1B;AAAA,SACSC,SAAS,wCAElB;AAAA,SACSC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS,gCAElD;AAYA,OAAO,MAAMC,wBAAwB,GAAGF,YAAY,CAAC;EACnDG,KAAK,EAAEC,MAAM;EACbC,QAAQ,EAAE;IACRC,IAAI,EAAE,CAACC,OAAO,EAAEH,MAAM,CAAwC;IAC9DI,OAAO,EAAE;EACX,CAAC;EACDC,QAAQ,EAAE;IACRH,IAAI,EAAEF,MAAM;IACZI,OAAO,EAAE;EACX,CAAC;EACDE,QAAQ,EAAE;IACRJ,IAAI,EAAEF,MAAM;IACZI,OAAO,EAAE;EACX;AACF,CAAC,EAAE,iBAAiB,CAAC;AAErB,OAAO,MAAMG,eAAe,GAAGZ,gBAAgB,EAAwB,CAAC;EACtEa,IAAI,EAAE,iBAAiB;EAEvBC,KAAK,EAAEX,wBAAwB,EAAE;EAEjCY,KAAK,EAAE;IACL,YAAY,EAAEC,CAAA,KAAM,IAAI;IACxB,YAAY,EAAEC,CAAA,KAAM;EACtB,CAAC;EAEDC,KAAKA,CAAEJ,KAAK,EAAAK,IAAA,EAAmB;IAAA,IAAjB;MAAEC,IAAI;MAAEC;IAAM,CAAC,GAAAF,IAAA;IAC3B,MAAM;MAAEG;IAAE,CAAC,GAAGvB,SAAS,EAAE;IACzB,SAASwB,WAAWA,CAAA,EAAI;MACtBH,IAAI,CAAC,YAAY,CAAC;IACpB;IAEA,SAASI,WAAWA,CAAA,EAAI;MACtBJ,IAAI,CAAC,YAAY,CAAC;IACpB;IAEAlB,SAAS,CAAC,MAAM;MACd,MAAMuB,aAAa,GAAG;QACpBC,OAAO,EAAEH;MACX,CAAC;MACD,MAAMI,aAAa,GAAG;QACpBD,OAAO,EAAEF;MACX,CAAC;MAED,OAAAI,YAAA;QAAA,SACa;MAAmB,IAAAA,YAAA,CAAA9B,iBAAA;QAAA,YAEhB;UACRD,IAAI,EAAE;YACJS,QAAQ,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,CAACuB,QAAQ,CAACf,KAAK,CAACR,QAAQ,CAAC;YACjDwB,IAAI,EAAER,CAAC,CAACR,KAAK,CAACJ,QAAQ,CAAC;YACvBqB,OAAO,EAAE;UACX;QACF;MAAC;QAAAtB,OAAA,EAAAA,CAAA,MAECY,KAAK,CAACW,IAAI,GAAG;UAAElB,KAAK,EAAEW;QAAc,CAAC,CAAC,IAAAG,YAAA,CAAA/B,IAAA,EAC3B4B,aAAa,OACzB;MAAA,IAAAG,YAAA,CAAA9B,iBAAA;QAAA,YAIS;UACRD,IAAI,EAAE;YACJO,KAAK,EAAEU,KAAK,CAACV,KAAK;YAClBE,QAAQ,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,CAACuB,QAAQ,CAACf,KAAK,CAACR,QAAQ,CAAC;YACjDwB,IAAI,EAAER,CAAC,CAACR,KAAK,CAACH,QAAQ,CAAC;YACvBoB,OAAO,EAAE;UACX;QACF;MAAC;QAAAtB,OAAA,EAAAA,CAAA,MAECY,KAAK,CAACY,IAAI,GAAG;UAAEnB,KAAK,EAAEa;QAAc,CAAC,CAAC,IAAAC,YAAA,CAAA/B,IAAA,EAC3B8B,aAAa,OACzB;MAAA;IAIT,CAAC,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VStepperHeader.mjs","names":["createSimpleFunctional","VStepperHeader"],"sources":["../../../src/components/VStepper/VStepperHeader.ts"],"sourcesContent":["// Utilities\nimport { createSimpleFunctional } from '@/util'\n\nexport const VStepperHeader = createSimpleFunctional('v-stepper-header')\n\nexport type VStepperHeader = InstanceType<typeof VStepperHeader>\n"],"mappings":"AAAA;AAAA,SACSA,sBAAsB;AAE/B,OAAO,MAAMC,cAAc,GAAGD,sBAAsB,CAAC,kBAAkB,CAAC"}
|
|
@@ -3,8 +3,8 @@ import { withDirectives as _withDirectives, resolveDirective as _resolveDirectiv
|
|
|
3
3
|
import "./VStepperItem.css";
|
|
4
4
|
|
|
5
5
|
// Components
|
|
6
|
-
import { VAvatar } from "
|
|
7
|
-
import { VIcon } from "
|
|
6
|
+
import { VAvatar } from "../VAvatar/VAvatar.mjs";
|
|
7
|
+
import { VIcon } from "../VIcon/VIcon.mjs"; // Composables
|
|
8
8
|
import { makeGroupItemProps, useGroupItem } from "../../composables/group.mjs"; // Directives
|
|
9
9
|
import { Ripple } from "../../directives/ripple/index.mjs"; // Utilities
|
|
10
10
|
import { computed } from 'vue';
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VStepperItem.mjs","names":["VAvatar","VIcon","makeGroupItemProps","useGroupItem","Ripple","computed","VStepperSymbol","genericComponent","propsFactory","useRender","makeVStepperItemProps","color","String","title","subtitle","complete","Boolean","completeIcon","type","default","editable","editIcon","error","errorIcon","icon","ripple","Object","rules","Array","VStepperItem","name","directives","props","emits","val","setup","_ref","slots","group","step","value","isValid","every","handler","canEdit","disabled","hasError","hasCompleted","length","slotProps","hasColor","isSelected","hasTitle","hasSubtitle","onClick","toggle","_withDirectives","_createVNode","selectedClass","undefined","_resolveDirective"],"sources":["../../../src/components/VStepper/VStepperItem.tsx"],"sourcesContent":["// Styles\nimport './VStepperItem.sass'\n\n// Components\nimport { VAvatar } from '@/components/VAvatar/VAvatar'\nimport { VIcon } from '@/components/VIcon/VIcon'\n\n// Composables\nimport { makeGroupItemProps, useGroupItem } from '@/composables/group'\n\n// Directives\nimport { Ripple } from '@/directives/ripple'\n\n// Utilities\nimport { computed } from 'vue'\nimport { VStepperSymbol } from './VStepper'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { PropType } from 'vue'\nimport type { RippleDirectiveBinding } from '@/directives/ripple'\n\nexport type StepperItemSlot = {\n canEdit: boolean\n hasError: boolean\n hasCompleted: boolean\n title?: string\n subtitle?: string\n step: any\n}\n\nexport type VStepperItemSlots = {\n default: StepperItemSlot\n icon: StepperItemSlot\n title: StepperItemSlot\n subtitle: StepperItemSlot\n}\n\nexport type ValidationRule = () => string | boolean\n\nexport const makeVStepperItemProps = propsFactory({\n color: String,\n title: String,\n subtitle: String,\n complete: Boolean,\n completeIcon: {\n type: String,\n default: '$complete',\n },\n editable: Boolean,\n editIcon: {\n type: String,\n default: '$edit',\n },\n error: Boolean,\n errorIcon: {\n type: String,\n default: '$error',\n },\n icon: String,\n ripple: {\n type: [Boolean, Object] as PropType<RippleDirectiveBinding['value']>,\n default: true,\n },\n rules: {\n type: Array as PropType<readonly ValidationRule[]>,\n default: () => ([]),\n },\n\n ...makeGroupItemProps(),\n}, 'VStepperItem')\n\nexport const VStepperItem = genericComponent<VStepperItemSlots>()({\n name: 'VStepperItem',\n\n directives: { Ripple },\n\n props: makeVStepperItemProps(),\n\n emits: {\n 'group:selected': (val: { value: boolean }) => true,\n },\n\n setup (props, { slots }) {\n const group = useGroupItem(props, VStepperSymbol, true)\n const step = computed(() => group?.value.value ?? props.value)\n const isValid = computed(() => props.rules.every(handler => handler() === true))\n const canEdit = computed(() => !props.disabled && props.editable)\n const hasError = computed(() => props.error || !isValid.value)\n const hasCompleted = computed(() => props.complete || (props.rules.length > 0 && isValid.value))\n const icon = computed(() => {\n if (hasError.value) return props.errorIcon\n if (hasCompleted.value) return props.completeIcon\n if (props.editable) return props.editIcon\n\n return props.icon\n })\n const slotProps = computed(() => ({\n canEdit: canEdit.value,\n hasError: hasError.value,\n hasCompleted: hasCompleted.value,\n title: props.title,\n subtitle: props.subtitle,\n step: step.value,\n value: props.value,\n }))\n\n useRender(() => {\n const hasColor = (\n !group ||\n group.isSelected.value ||\n hasCompleted.value ||\n canEdit.value\n ) && (\n !hasError.value &&\n !props.disabled\n )\n const hasTitle = !!(props.title || slots.title)\n const hasSubtitle = !!(props.subtitle || slots.subtitle)\n\n function onClick () {\n group?.toggle()\n }\n\n return (\n <button\n class={[\n 'v-stepper-item',\n {\n 'v-stepper-item--complete': hasCompleted.value,\n 'v-stepper-item--disabled': props.disabled,\n 'v-stepper-item--error': hasError.value,\n },\n group?.selectedClass.value,\n ]}\n disabled={ !props.editable }\n v-ripple={[\n props.ripple && props.editable,\n null,\n null,\n ]}\n onClick={ onClick }\n >\n <VAvatar\n key=\"stepper-avatar\"\n class=\"v-stepper-item__avatar\"\n color={ hasColor ? props.color : undefined }\n size={ 24 }\n >\n { slots.icon?.(slotProps.value) ?? (\n icon.value ? (\n <VIcon icon={ icon.value }></VIcon>\n ) : step.value\n )}\n </VAvatar>\n\n <div class=\"v-stepper-item__content\">\n { hasTitle && (\n <div\n key=\"title\"\n class=\"v-stepper-item__title\"\n >\n { slots.title?.(slotProps.value) ?? props.title }\n </div>\n )}\n\n { hasSubtitle && (\n <div\n key=\"subtitle\"\n class=\"v-stepper-item__subtitle\"\n >\n { slots.subtitle?.(slotProps.value) ?? props.subtitle }\n </div>\n )}\n\n { slots.default?.(slotProps.value) }\n </div>\n </button>\n )\n })\n return {}\n },\n})\n\nexport type VStepperItem = InstanceType<typeof VStepperItem>\n"],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createVNode as _createVNode, mergeProps as _mergeProps, resolveDirective as _resolveDirective } from "vue";
|
|
2
2
|
// Components
|
|
3
|
-
import { makeVWindowProps, VWindow } from "
|
|
3
|
+
import { makeVWindowProps, VWindow } from "../VWindow/VWindow.mjs"; // Composables
|
|
4
4
|
import { useProxiedModel } from "../../composables/proxiedModel.mjs"; // Utilities
|
|
5
5
|
import { computed, inject } from 'vue';
|
|
6
6
|
import { genericComponent, propsFactory, useRender } from "../../util/index.mjs"; // Types
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"VStepperWindow.mjs","names":["makeVWindowProps","VWindow","useProxiedModel","computed","inject","genericComponent","propsFactory","useRender","VStepperSymbol","Symbol","for","makeVStepperWindowProps","mandatory","VStepperWindow","name","props","emits","v","setup","_ref","slots","group","_model","model","get","value","items","find","item","selected","includes","id","set","val","windowProps","filterProps","_createVNode","_mergeProps","$event"],"sources":["../../../src/components/VStepper/VStepperWindow.tsx"],"sourcesContent":["// Components\nimport { makeVWindowProps, VWindow } from '@/components/VWindow/VWindow'\n\n// Composables\nimport { useProxiedModel } from '@/composables/proxiedModel'\n\n// Utilities\nimport { computed, inject } from 'vue'\nimport { genericComponent, propsFactory, useRender } from '@/util'\n\n// Types\nimport type { InjectionKey } from 'vue'\nimport type { GroupProvide } from '@/composables/group'\n\nexport const VStepperSymbol: InjectionKey<GroupProvide> = Symbol.for('vuetify:v-stepper')\n\nexport const makeVStepperWindowProps = propsFactory({\n ...makeVWindowProps({\n mandatory: false as const,\n }),\n}, 'VStepperWindow')\n\nexport const VStepperWindow = genericComponent()({\n name: 'VStepperWindow',\n\n props: makeVStepperWindowProps(),\n\n emits: {\n 'update:modelValue': (v: unknown) => true,\n },\n\n setup (props, { slots }) {\n const group = inject(VStepperSymbol, null)\n const _model = useProxiedModel(props, 'modelValue')\n\n const model = computed({\n get () {\n // Always return modelValue if defined\n // or if not within a VStepper group\n if (_model.value != null || !group) return _model.value\n\n // If inside of a VStepper, find the currently selected\n // item by id. Item value may be assigned by its index\n return group.items.value.find(item => group.selected.value.includes(item.id))?.value\n },\n set (val) {\n _model.value = val\n },\n })\n\n useRender(() => {\n const [windowProps] = VWindow.filterProps(props)\n\n return (\n <VWindow\n { ...windowProps }\n v-model={ model.value }\n class=\"v-stepper-window\"\n v-slots={ slots }\n />\n )\n })\n\n return {}\n },\n})\n\nexport type VStepperWindow = InstanceType<typeof VStepperWindow>\n"],"mappings":";AAAA;AAAA,SACSA,gBAAgB,EAAEC,OAAO,kCAElC;AAAA,SACSC,eAAe,8CAExB;AACA,SAASC,QAAQ,EAAEC,MAAM,QAAQ,KAAK;AAAA,SAC7BC,gBAAgB,EAAEC,YAAY,EAAEC,SAAS,gCAElD;AAIA,OAAO,MAAMC,cAA0C,GAAGC,MAAM,CAACC,GAAG,CAAC,mBAAmB,CAAC;AAEzF,OAAO,MAAMC,uBAAuB,GAAGL,YAAY,CAAC;EAClD,GAAGN,gBAAgB,CAAC;IAClBY,SAAS,EAAE;EACb,CAAC;AACH,CAAC,EAAE,gBAAgB,CAAC;AAEpB,OAAO,MAAMC,cAAc,GAAGR,gBAAgB,EAAE,CAAC;EAC/CS,IAAI,EAAE,gBAAgB;EAEtBC,KAAK,EAAEJ,uBAAuB,EAAE;EAEhCK,KAAK,EAAE;IACL,mBAAmB,EAAGC,CAAU,IAAK;EACvC,CAAC;EAEDC,KAAKA,CAAEH,KAAK,EAAAI,IAAA,EAAa;IAAA,IAAX;MAAEC;IAAM,CAAC,GAAAD,IAAA;IACrB,MAAME,KAAK,GAAGjB,MAAM,CAACI,cAAc,EAAE,IAAI,CAAC;IAC1C,MAAMc,MAAM,GAAGpB,eAAe,CAACa,KAAK,EAAE,YAAY,CAAC;IAEnD,MAAMQ,KAAK,GAAGpB,QAAQ,CAAC;MACrBqB,GAAGA,CAAA,EAAI;QACL;QACA;QACA,IAAIF,MAAM,CAACG,KAAK,IAAI,IAAI,IAAI,CAACJ,KAAK,EAAE,OAAOC,MAAM,CAACG,KAAK;;QAEvD;QACA;QACA,OAAOJ,KAAK,CAACK,KAAK,CAACD,KAAK,CAACE,IAAI,CAACC,IAAI,IAAIP,KAAK,CAACQ,QAAQ,CAACJ,KAAK,CAACK,QAAQ,CAACF,IAAI,CAACG,EAAE,CAAC,CAAC,EAAEN,KAAK;MACtF,CAAC;MACDO,GAAGA,CAAEC,GAAG,EAAE;QACRX,MAAM,CAACG,KAAK,GAAGQ,GAAG;MACpB;IACF,CAAC,CAAC;IAEF1B,SAAS,CAAC,MAAM;MACd,MAAM,CAAC2B,WAAW,CAAC,GAAGjC,OAAO,CAACkC,WAAW,CAACpB,KAAK,CAAC;MAEhD,OAAAqB,YAAA,CAAAnC,OAAA,EAAAoC,WAAA,CAESH,WAAW;QAAA,cACNX,KAAK,CAACE,KAAK;QAAA,uBAAAa,MAAA,IAAXf,KAAK,CAACE,KAAK,GAAAa,MAAA;QAAA,SACf;MAAkB,IACdlB,KAAK;IAGrB,CAAC,CAAC;IAEF,OAAO,CAAC,CAAC;EACX;AACF,CAAC,CAAC"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { createVNode as _createVNode, mergeProps as _mergeProps, resolveDirective as _resolveDirective } from "vue";
|
|
2
2
|
// Components
|
|
3
|
-
import { makeVWindowItemProps, VWindowItem } from "
|
|
3
|
+
import { makeVWindowItemProps, VWindowItem } from "../VWindow/VWindowItem.mjs"; // Utilities
|
|
4
4
|
import { genericComponent, propsFactory, useRender } from "../../util/index.mjs";
|
|
5
5
|
export const makeVStepperWindowItemProps = propsFactory({
|
|
6
6
|
...makeVWindowItemProps()
|