vuestic-ui
Version:
Vue 3 UI Framework
1 lines • 1.22 kB
Source Map (JSON)
{"version":3,"file":"useHover.mjs","sources":["../../../../src/composables/useHover.ts"],"sourcesContent":["import { ref, Ref, watch, onMounted } from 'vue'\n\nimport { useHTMLElement, useEvent } from './'\n\nexport function useHover (el?: Ref<HTMLElement | null | undefined>, disabled?: Ref<boolean>) {\n const isHovered = ref(false)\n\n const onMouseEnter = () => {\n if (disabled?.value) { return }\n isHovered.value = true\n }\n const onMouseLeave = () => { isHovered.value = false }\n\n disabled && watch(disabled, (v) => {\n if (v) { isHovered.value = false }\n })\n\n const target = useHTMLElement(el as Ref<HTMLElement>)\n\n useEvent('mouseenter', onMouseEnter, target)\n useEvent('mouseleave', onMouseLeave, target)\n\n return { isHovered, onMouseEnter, onMouseLeave }\n}\n"],"names":[],"mappings":";;;AAIgB,SAAA,SAAU,IAA0C,UAAyB;AACrF,QAAA,YAAY,IAAI,KAAK;AAE3B,QAAM,eAAe,MAAM;AACzB,QAAI,qCAAU,OAAO;AAAE;AAAA,IAAO;AAC9B,cAAU,QAAQ;AAAA,EAAA;AAEpB,QAAM,eAAe,MAAM;AAAE,cAAU,QAAQ;AAAA,EAAA;AAEnC,cAAA,MAAM,UAAU,CAAC,MAAM;AACjC,QAAI,GAAG;AAAE,gBAAU,QAAQ;AAAA,IAAM;AAAA,EAAA,CAClC;AAEK,QAAA,SAAS,eAAe,EAAsB;AAE3C,WAAA,cAAc,cAAc,MAAM;AAClC,WAAA,cAAc,cAAc,MAAM;AAEpC,SAAA,EAAE,WAAW,cAAc;AACpC;"}