routie dev init since i didn't adhere to any proper guidance up until now
This commit is contained in:
+81
@@ -0,0 +1,81 @@
|
||||
import { createVNode as _createVNode, createElementVNode as _createElementVNode } from "vue";
|
||||
// Components
|
||||
import { VBtn } from "../VBtn/VBtn.js";
|
||||
import { VDefaultsProvider } from "../VDefaultsProvider/VDefaultsProvider.js"; // Composables
|
||||
import { useLocale } from "../../composables/locale.js"; // Utilities
|
||||
import { genericComponent, propsFactory, useRender } from "../../util/index.js"; // Types
|
||||
export const makeVStepperActionsProps = propsFactory({
|
||||
color: String,
|
||||
disabled: {
|
||||
type: [Boolean, String],
|
||||
default: false
|
||||
},
|
||||
prevText: {
|
||||
type: String,
|
||||
default: '$vuetify.stepper.prev'
|
||||
},
|
||||
nextText: {
|
||||
type: String,
|
||||
default: '$vuetify.stepper.next'
|
||||
}
|
||||
}, 'VStepperActions');
|
||||
export const VStepperActions = genericComponent()({
|
||||
name: 'VStepperActions',
|
||||
props: makeVStepperActionsProps(),
|
||||
emits: {
|
||||
'click:prev': () => true,
|
||||
'click:next': () => true
|
||||
},
|
||||
setup(props, {
|
||||
emit,
|
||||
slots
|
||||
}) {
|
||||
const {
|
||||
t
|
||||
} = useLocale();
|
||||
function onClickPrev() {
|
||||
emit('click:prev');
|
||||
}
|
||||
function onClickNext() {
|
||||
emit('click:next');
|
||||
}
|
||||
useRender(() => {
|
||||
const prevSlotProps = {
|
||||
onClick: onClickPrev
|
||||
};
|
||||
const nextSlotProps = {
|
||||
onClick: onClickNext
|
||||
};
|
||||
return _createElementVNode("div", {
|
||||
"class": "v-stepper-actions"
|
||||
}, [_createVNode(VDefaultsProvider, {
|
||||
"defaults": {
|
||||
VBtn: {
|
||||
disabled: ['prev', true].includes(props.disabled),
|
||||
text: t(props.prevText),
|
||||
variant: 'text'
|
||||
}
|
||||
}
|
||||
}, {
|
||||
default: () => [slots.prev?.({
|
||||
props: prevSlotProps
|
||||
}) ?? _createVNode(VBtn, prevSlotProps, null)]
|
||||
}), _createVNode(VDefaultsProvider, {
|
||||
"defaults": {
|
||||
VBtn: {
|
||||
color: props.color,
|
||||
disabled: ['next', true].includes(props.disabled),
|
||||
text: t(props.nextText),
|
||||
variant: 'tonal'
|
||||
}
|
||||
}
|
||||
}, {
|
||||
default: () => [slots.next?.({
|
||||
props: nextSlotProps
|
||||
}) ?? _createVNode(VBtn, nextSlotProps, null)]
|
||||
})]);
|
||||
});
|
||||
return {};
|
||||
}
|
||||
});
|
||||
//# sourceMappingURL=VStepperActions.js.map
|
||||
Reference in New Issue
Block a user