routie dev init since i didn't adhere to any proper guidance up until now
This commit is contained in:
+42
@@ -0,0 +1,42 @@
|
||||
import { mergeProps as _mergeProps, createVNode as _createVNode } from "vue";
|
||||
// Components
|
||||
import { VIcon } from "../VIcon/index.js"; // Composables
|
||||
import { useLocale } from "../../composables/locale.js"; // Utilities
|
||||
import { callEvent } from "../../util/index.js"; // Types
|
||||
export function useInputIcon(props) {
|
||||
const {
|
||||
t
|
||||
} = useLocale();
|
||||
function InputIcon({
|
||||
name,
|
||||
color,
|
||||
...attrs
|
||||
}) {
|
||||
const localeKey = {
|
||||
prepend: 'prependAction',
|
||||
prependInner: 'prependAction',
|
||||
append: 'appendAction',
|
||||
appendInner: 'appendAction',
|
||||
clear: 'clear'
|
||||
}[name];
|
||||
const listener = props[`onClick:${name}`];
|
||||
function onKeydown(e) {
|
||||
if (e.key !== 'Enter' && e.key !== ' ') return;
|
||||
e.preventDefault();
|
||||
e.stopPropagation();
|
||||
callEvent(listener, new PointerEvent('click', e));
|
||||
}
|
||||
const label = listener && localeKey ? t(`$vuetify.input.${localeKey}`, props.label ?? '') : undefined;
|
||||
return _createVNode(VIcon, _mergeProps({
|
||||
"icon": props[`${name}Icon`],
|
||||
"aria-label": label,
|
||||
"onClick": listener,
|
||||
"onKeydown": onKeydown,
|
||||
"color": color
|
||||
}, attrs), null);
|
||||
}
|
||||
return {
|
||||
InputIcon
|
||||
};
|
||||
}
|
||||
//# sourceMappingURL=InputIcon.js.map
|
||||
Reference in New Issue
Block a user