{"version":3,"file":"index.mjs","sources":["../../../../../packages/hooks/use-intermediate-render/index.ts"],"sourcesContent":["import { nextTick, unref, watch } from 'vue'\n\nimport type { Ref } from 'vue'\n\nexport type UseDelayedRenderProps = {\n  indicator: Ref<boolean>\n  intermediateIndicator: Ref<boolean>\n  shouldSetIntermediate?: (step: 'show' | 'hide') => boolean\n  beforeShow?: () => void\n  beforeHide?: () => void\n  afterShow?: () => void\n  afterHide?: () => void\n}\n\nexport const useDelayedRender = ({\n  indicator,\n  intermediateIndicator,\n  shouldSetIntermediate = () => true,\n  beforeShow,\n  afterShow,\n  afterHide,\n  beforeHide,\n}: UseDelayedRenderProps) => {\n  watch(\n    () => unref(indicator),\n    (val) => {\n      if (val) {\n        beforeShow?.()\n        nextTick(() => {\n          if (!unref(indicator)) return\n          if (shouldSetIntermediate('show')) {\n            intermediateIndicator.value = true\n          }\n        })\n      } else {\n        beforeHide?.()\n        nextTick(() => {\n          if (unref(indicator)) return\n\n          if (shouldSetIntermediate('hide')) {\n            intermediateIndicator.value = false\n          }\n        })\n      }\n    }\n  )\n\n  // because we don't always set the value ourselves, so that we\n  // simply watch the value's state, then invoke the corresponding hook.\n  watch(\n    () => intermediateIndicator.value,\n    (val) => {\n      if (val) {\n        afterShow?.()\n      } else {\n        afterHide?.()\n      }\n    }\n  )\n}\n"],"names":[],"mappings":";;AAcO,MAAM,mBAAmB,CAAC;AAAA,EAC/B,SAAA;AAAA,EACA,qBAAA;AAAA,EACA,wBAAwB,MAAM,IAAA;AAAA,EAC9B,UAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AACF,CAA6B,KAAA;AAC3B,EAAA,KAAA;AAAA,IACE,MAAM,MAAM,SAAS,CAAA;AAAA,IACrB,CAAC,GAAQ,KAAA;AACP,MAAA,IAAI,GAAK,EAAA;AACP,QAAA,UAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,UAAA,EAAA,CAAA;AACA,QAAA,QAAA,CAAS,MAAM;AACb,UAAI,IAAA,CAAC,MAAM,SAAS,CAAA;AAAG,YAAA,OAAA;AACvB,UAAI,IAAA,qBAAA,CAAsB,MAAM,CAAG,EAAA;AACjC,YAAA,qBAAA,CAAsB,KAAQ,GAAA,IAAA,CAAA;AAAA,WAChC;AAAA,SACD,CAAA,CAAA;AAAA,OACI,MAAA;AACL,QAAA,UAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,UAAA,EAAA,CAAA;AACA,QAAA,QAAA,CAAS,MAAM;AACb,UAAA,IAAI,MAAM,SAAS,CAAA;AAAG,YAAA,OAAA;AAEtB,UAAI,IAAA,qBAAA,CAAsB,MAAM,CAAG,EAAA;AACjC,YAAA,qBAAA,CAAsB,KAAQ,GAAA,KAAA,CAAA;AAAA,WAChC;AAAA,SACD,CAAA,CAAA;AAAA,OACH;AAAA,KACF;AAAA,GACF,CAAA;AAIA,EAAA,KAAA;AAAA,IACE,MAAM,qBAAsB,CAAA,KAAA;AAAA,IAC5B,CAAC,GAAQ,KAAA;AACP,MAAA,IAAI,GAAK,EAAA;AACP,QAAA,SAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,SAAA,EAAA,CAAA;AAAA,OACK,MAAA;AACL,QAAA,SAAA,IAAA,IAAA,GAAA,KAAA,CAAA,GAAA,SAAA,EAAA,CAAA;AAAA,OACF;AAAA,KACF;AAAA,GACF,CAAA;AACF;;;;"}