智慧水务管理系统 - 精河县供水工程综合管理平台

index.mjs 1.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. import { isNumber } from "../../utils/types.mjs";
  2. import { buildProps } from "../../utils/vue/props/runtime.mjs";
  3. import { useTimeout } from "../use-timeout/index.mjs";
  4. import { unref } from "vue";
  5. //#region ../../packages/hooks/use-delayed-toggle/index.ts
  6. /**
  7. * @deprecated Removed after 3.0.0, Use `UseDelayedToggleProps` instead.
  8. */
  9. const useDelayedToggleProps = buildProps({
  10. /**
  11. * @description delay of appearance, in millisecond, not valid in controlled mode
  12. */
  13. showAfter: {
  14. type: Number,
  15. default: 0
  16. },
  17. /**
  18. * @description delay of disappear, in millisecond, not valid in controlled mode
  19. */
  20. hideAfter: {
  21. type: Number,
  22. default: 200
  23. },
  24. /**
  25. * @description disappear automatically, in millisecond, not valid in controlled mode
  26. */
  27. autoClose: {
  28. type: Number,
  29. default: 0
  30. }
  31. });
  32. const useDelayedTogglePropsDefaults = {
  33. showAfter: 0,
  34. hideAfter: 200,
  35. autoClose: 0
  36. };
  37. const useDelayedToggle = ({ showAfter, hideAfter, autoClose, open, close }) => {
  38. const { registerTimeout } = useTimeout();
  39. const { registerTimeout: registerTimeoutForAutoClose, cancelTimeout: cancelTimeoutForAutoClose } = useTimeout();
  40. const onOpen = (event, delay = unref(showAfter)) => {
  41. registerTimeout(() => {
  42. open(event);
  43. const _autoClose = unref(autoClose);
  44. if (isNumber(_autoClose) && _autoClose > 0) registerTimeoutForAutoClose(() => {
  45. close(event);
  46. }, _autoClose);
  47. }, delay);
  48. };
  49. const onClose = (event, delay = unref(hideAfter)) => {
  50. cancelTimeoutForAutoClose();
  51. registerTimeout(() => {
  52. close(event);
  53. }, delay);
  54. };
  55. return {
  56. onOpen,
  57. onClose
  58. };
  59. };
  60. //#endregion
  61. export { useDelayedToggle, useDelayedToggleProps, useDelayedTogglePropsDefaults };
  62. //# sourceMappingURL=index.mjs.map