index.js 1.9 KB

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