VHover.mjs 1016 B

12345678910111213141516171819202122232425262728293031323334353637
  1. // Composables
  2. import { makeDelayProps, useDelay } from "../../composables/delay.mjs";
  3. import { useProxiedModel } from "../../composables/proxiedModel.mjs"; // Utilities
  4. import { genericComponent, propsFactory } from "../../util/index.mjs";
  5. export const makeVHoverProps = propsFactory({
  6. disabled: Boolean,
  7. modelValue: {
  8. type: Boolean,
  9. default: null
  10. },
  11. ...makeDelayProps()
  12. }, 'VHover');
  13. export const VHover = genericComponent()({
  14. name: 'VHover',
  15. props: makeVHoverProps(),
  16. emits: {
  17. 'update:modelValue': value => true
  18. },
  19. setup(props, _ref) {
  20. let {
  21. slots
  22. } = _ref;
  23. const isHovering = useProxiedModel(props, 'modelValue');
  24. const {
  25. runOpenDelay,
  26. runCloseDelay
  27. } = useDelay(props, value => !props.disabled && (isHovering.value = value));
  28. return () => slots.default?.({
  29. isHovering: isHovering.value,
  30. props: {
  31. onMouseenter: runOpenDelay,
  32. onMouseleave: runCloseDelay
  33. }
  34. });
  35. }
  36. });
  37. //# sourceMappingURL=VHover.mjs.map