index.mjs 806 B

12345678910111213141516171819202122232425262728293031323334353637383940
  1. import { unref } from 'vue';
  2. import '../../utils/index.mjs';
  3. import { useTimeout } from '../use-timeout/index.mjs';
  4. import { buildProps } from '../../utils/vue/props/runtime.mjs';
  5. const useDelayedToggleProps = buildProps({
  6. showAfter: {
  7. type: Number,
  8. default: 0
  9. },
  10. hideAfter: {
  11. type: Number,
  12. default: 200
  13. }
  14. });
  15. const useDelayedToggle = ({
  16. showAfter,
  17. hideAfter,
  18. open,
  19. close
  20. }) => {
  21. const { registerTimeout } = useTimeout();
  22. const onOpen = (event) => {
  23. registerTimeout(() => {
  24. open(event);
  25. }, unref(showAfter));
  26. };
  27. const onClose = (event) => {
  28. registerTimeout(() => {
  29. close(event);
  30. }, unref(hideAfter));
  31. };
  32. return {
  33. onOpen,
  34. onClose
  35. };
  36. };
  37. export { useDelayedToggle, useDelayedToggleProps };
  38. //# sourceMappingURL=index.mjs.map