forked from jchomaz/Vulture
Tracking de l'application VApp (IHM du jeu)
This commit is contained in:
147
VApp/node_modules/vuetify/lib/components/VInput/VInput.mjs
generated
vendored
Normal file
147
VApp/node_modules/vuetify/lib/components/VInput/VInput.mjs
generated
vendored
Normal file
@@ -0,0 +1,147 @@
|
||||
import { resolveDirective as _resolveDirective, createVNode as _createVNode } from "vue";
|
||||
// Styles
|
||||
import "./VInput.css";
|
||||
|
||||
// Components
|
||||
import { useInputIcon } from "./InputIcon.mjs";
|
||||
import { VMessages } from "../VMessages/VMessages.mjs"; // Composables
|
||||
import { makeComponentProps } from "../../composables/component.mjs";
|
||||
import { makeDensityProps, useDensity } from "../../composables/density.mjs";
|
||||
import { IconValue } from "../../composables/icons.mjs";
|
||||
import { useRtl } from "../../composables/locale.mjs";
|
||||
import { makeValidationProps, useValidation } from "../../composables/validation.mjs"; // Utilities
|
||||
import { computed } from 'vue';
|
||||
import { EventProp, genericComponent, getUid, propsFactory, useRender } from "../../util/index.mjs"; // Types
|
||||
export const makeVInputProps = propsFactory({
|
||||
id: String,
|
||||
appendIcon: IconValue,
|
||||
centerAffix: {
|
||||
type: Boolean,
|
||||
default: true
|
||||
},
|
||||
prependIcon: IconValue,
|
||||
hideDetails: [Boolean, String],
|
||||
hideSpinButtons: Boolean,
|
||||
hint: String,
|
||||
persistentHint: Boolean,
|
||||
messages: {
|
||||
type: [Array, String],
|
||||
default: () => []
|
||||
},
|
||||
direction: {
|
||||
type: String,
|
||||
default: 'horizontal',
|
||||
validator: v => ['horizontal', 'vertical'].includes(v)
|
||||
},
|
||||
'onClick:prepend': EventProp(),
|
||||
'onClick:append': EventProp(),
|
||||
...makeComponentProps(),
|
||||
...makeDensityProps(),
|
||||
...makeValidationProps()
|
||||
}, 'VInput');
|
||||
export const VInput = genericComponent()({
|
||||
name: 'VInput',
|
||||
props: {
|
||||
...makeVInputProps()
|
||||
},
|
||||
emits: {
|
||||
'update:modelValue': value => true
|
||||
},
|
||||
setup(props, _ref) {
|
||||
let {
|
||||
attrs,
|
||||
slots,
|
||||
emit
|
||||
} = _ref;
|
||||
const {
|
||||
densityClasses
|
||||
} = useDensity(props);
|
||||
const {
|
||||
rtlClasses
|
||||
} = useRtl();
|
||||
const {
|
||||
InputIcon
|
||||
} = useInputIcon(props);
|
||||
const uid = getUid();
|
||||
const id = computed(() => props.id || `input-${uid}`);
|
||||
const messagesId = computed(() => `${id.value}-messages`);
|
||||
const {
|
||||
errorMessages,
|
||||
isDirty,
|
||||
isDisabled,
|
||||
isReadonly,
|
||||
isPristine,
|
||||
isValid,
|
||||
isValidating,
|
||||
reset,
|
||||
resetValidation,
|
||||
validate,
|
||||
validationClasses
|
||||
} = useValidation(props, 'v-input', id);
|
||||
const slotProps = computed(() => ({
|
||||
id,
|
||||
messagesId,
|
||||
isDirty,
|
||||
isDisabled,
|
||||
isReadonly,
|
||||
isPristine,
|
||||
isValid,
|
||||
isValidating,
|
||||
reset,
|
||||
resetValidation,
|
||||
validate
|
||||
}));
|
||||
const messages = computed(() => {
|
||||
if (props.errorMessages?.length || !isPristine.value && errorMessages.value.length) {
|
||||
return errorMessages.value;
|
||||
} else if (props.hint && (props.persistentHint || props.focused)) {
|
||||
return props.hint;
|
||||
} else {
|
||||
return props.messages;
|
||||
}
|
||||
});
|
||||
useRender(() => {
|
||||
const hasPrepend = !!(slots.prepend || props.prependIcon);
|
||||
const hasAppend = !!(slots.append || props.appendIcon);
|
||||
const hasMessages = messages.value.length > 0;
|
||||
const hasDetails = !props.hideDetails || props.hideDetails === 'auto' && (hasMessages || !!slots.details);
|
||||
return _createVNode("div", {
|
||||
"class": ['v-input', `v-input--${props.direction}`, {
|
||||
'v-input--center-affix': props.centerAffix,
|
||||
'v-input--hide-spin-buttons': props.hideSpinButtons
|
||||
}, densityClasses.value, rtlClasses.value, validationClasses.value, props.class],
|
||||
"style": props.style
|
||||
}, [hasPrepend && _createVNode("div", {
|
||||
"key": "prepend",
|
||||
"class": "v-input__prepend"
|
||||
}, [slots.prepend?.(slotProps.value), props.prependIcon && _createVNode(InputIcon, {
|
||||
"key": "prepend-icon",
|
||||
"name": "prepend"
|
||||
}, null)]), slots.default && _createVNode("div", {
|
||||
"class": "v-input__control"
|
||||
}, [slots.default?.(slotProps.value)]), hasAppend && _createVNode("div", {
|
||||
"key": "append",
|
||||
"class": "v-input__append"
|
||||
}, [props.appendIcon && _createVNode(InputIcon, {
|
||||
"key": "append-icon",
|
||||
"name": "append"
|
||||
}, null), slots.append?.(slotProps.value)]), hasDetails && _createVNode("div", {
|
||||
"class": "v-input__details"
|
||||
}, [_createVNode(VMessages, {
|
||||
"id": messagesId.value,
|
||||
"active": hasMessages,
|
||||
"messages": messages.value
|
||||
}, {
|
||||
message: slots.message
|
||||
}), slots.details?.(slotProps.value)])]);
|
||||
});
|
||||
return {
|
||||
reset,
|
||||
resetValidation,
|
||||
validate,
|
||||
isValid,
|
||||
errorMessages
|
||||
};
|
||||
}
|
||||
});
|
||||
//# sourceMappingURL=VInput.mjs.map
|
||||
Reference in New Issue
Block a user