{"version":3,"file":"index.mjs","sources":["../../../../../packages/hooks/use-delayed-toggle/index.ts"],"sourcesContent":["import { unref } from 'vue'\r\nimport { buildProps } from '@sgui-plus/utils/props'\r\nimport { isNumber } from '@sgui-plus/utils/util'\r\nimport { useTimeout } from '../use-timeout'\r\n\r\nimport type { ToRefs, ExtractPropTypes } from 'vue'\r\n\r\nexport const useDelayedToggleProps = buildProps({\r\n  showAfter: {\r\n    type: Number,\r\n    default: 0,\r\n  },\r\n  hideAfter: {\r\n    type: Number,\r\n    default: 200,\r\n  },\r\n  autoClose: {\r\n    type: Number,\r\n    default: 0,\r\n  }\r\n} as const)\r\n\r\nexport type UseDelayedToggleProps = {\r\n  open: (event?: Event) => void\r\n  close: (event?: Event) => void\r\n} & ToRefs<ExtractPropTypes<typeof useDelayedToggleProps>>\r\n\r\nexport const useDelayedToggle = ({\r\n  showAfter,\r\n  hideAfter,\r\n  autoClose,\r\n  open,\r\n  close,\r\n}: UseDelayedToggleProps) => {\r\n  const { registerTimeout } = useTimeout()\r\n\r\n  const {\r\n    registerTimeout: registerTimeoutForAutoClose,\r\n    cancelTimeout: cancelTimeoutForAutoClose,\r\n  } = useTimeout()\r\n\r\n  const onOpen = (event?: Event) => {\r\n    registerTimeout(() => {\r\n      open(event)\r\n      const _autoClose = unref(autoClose)\r\n      if (isNumber(_autoClose) && _autoClose > 0) {\r\n        registerTimeoutForAutoClose(() => {\r\n          close(event)\r\n        }, _autoClose)\r\n      }\r\n    }, unref(showAfter))\r\n  }\r\n\r\n  const onClose = (event?: Event) => {\r\n    cancelTimeoutForAutoClose()\r\n    registerTimeout(() => {\r\n      close(event)\r\n    }, unref(hideAfter))\r\n  }\r\n\r\n  return {\r\n    onOpen,\r\n    onClose,\r\n  }\r\n}\r\n"],"names":[],"mappings":";;;;;AAIY,MAAC,qBAAqB,GAAG,UAAU,CAAC;AAChD,EAAE,SAAS,EAAE;AACb,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,CAAC;AACd,GAAG;AACH,EAAE,SAAS,EAAE;AACb,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,GAAG;AAChB,GAAG;AACH,EAAE,SAAS,EAAE;AACb,IAAI,IAAI,EAAE,MAAM;AAChB,IAAI,OAAO,EAAE,CAAC;AACd,GAAG;AACH,CAAC,EAAE;AACS,MAAC,gBAAgB,GAAG,CAAC;AACjC,EAAE,SAAS;AACX,EAAE,SAAS;AACX,EAAE,SAAS;AACX,EAAE,IAAI;AACN,EAAE,KAAK;AACP,CAAC,KAAK;AACN,EAAE,MAAM,EAAE,eAAe,EAAE,GAAG,UAAU,EAAE,CAAC;AAC3C,EAAE,MAAM;AACR,IAAI,eAAe,EAAE,2BAA2B;AAChD,IAAI,aAAa,EAAE,yBAAyB;AAC5C,GAAG,GAAG,UAAU,EAAE,CAAC;AACnB,EAAE,MAAM,MAAM,GAAG,CAAC,KAAK,KAAK;AAC5B,IAAI,eAAe,CAAC,MAAM;AAC1B,MAAM,IAAI,CAAC,KAAK,CAAC,CAAC;AAClB,MAAM,MAAM,UAAU,GAAG,KAAK,CAAC,SAAS,CAAC,CAAC;AAC1C,MAAM,IAAI,QAAQ,CAAC,UAAU,CAAC,IAAI,UAAU,GAAG,CAAC,EAAE;AAClD,QAAQ,2BAA2B,CAAC,MAAM;AAC1C,UAAU,KAAK,CAAC,KAAK,CAAC,CAAC;AACvB,SAAS,EAAE,UAAU,CAAC,CAAC;AACvB,OAAO;AACP,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;AACzB,GAAG,CAAC;AACJ,EAAE,MAAM,OAAO,GAAG,CAAC,KAAK,KAAK;AAC7B,IAAI,yBAAyB,EAAE,CAAC;AAChC,IAAI,eAAe,CAAC,MAAM;AAC1B,MAAM,KAAK,CAAC,KAAK,CAAC,CAAC;AACnB,KAAK,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC;AACzB,GAAG,CAAC;AACJ,EAAE,OAAO;AACT,IAAI,MAAM;AACV,IAAI,OAAO;AACX,GAAG,CAAC;AACJ;;;;"}