{"version":3,"file":"index.mjs","sources":["../../../../../src/hooks/use-throttle-render/index.ts"],"sourcesContent":["import { onMounted, ref, watch } from 'vue';\r\nimport type { Ref } from 'vue';\r\n\r\n// 节流渲染\r\nexport const useThrottleRender = (loading: Ref<boolean>, throttle = 0) => {\r\n  // 节流\r\n  if (throttle === 0) {\r\n    return loading;\r\n  }\r\n\r\n  // data\r\n\r\n  // 节流\r\n  const throttled = ref(false);\r\n\r\n  // 倒计时\r\n  let setTimeout = 0;\r\n\r\n  // methods\r\n\r\n  // 节流事件\r\n  const throttlingHandle = () => {\r\n    if (setTimeout) {\r\n      clearTimeout(setTimeout);\r\n    }\r\n\r\n    // 倒计时\r\n    setTimeout = window.setTimeout(() => {\r\n      throttled.value = loading.value;\r\n    }, throttle);\r\n  };\r\n\r\n  // watch\r\n\r\n  // 监听加载完成\r\n  watch(\r\n    () => loading.value,\r\n    (value) => {\r\n      if (value) {\r\n        throttlingHandle();\r\n      } else {\r\n        throttled.value = value;\r\n      }\r\n    }\r\n  );\r\n\r\n  // onMounted\r\n  onMounted(throttlingHandle);\r\n\r\n  return throttled;\r\n};\r\n"],"names":[],"mappings":";;AAIO,MAAM,iBAAoB,GAAA,CAAC,OAAuB,EAAA,QAAA,GAAW,CAAM,KAAA;AAExE,EAAA,IAAI,aAAa,CAAG,EAAA;AAClB,IAAO,OAAA,OAAA,CAAA;AAAA,GACT;AAKA,EAAM,MAAA,SAAA,GAAY,IAAI,KAAK,CAAA,CAAA;AAG3B,EAAA,IAAI,UAAa,GAAA,CAAA,CAAA;AAKjB,EAAA,MAAM,mBAAmB,MAAM;AAC7B,IAAA,IAAI,UAAY,EAAA;AACd,MAAA,YAAA,CAAa,UAAU,CAAA,CAAA;AAAA,KACzB;AAGA,IAAa,UAAA,GAAA,MAAA,CAAO,WAAW,MAAM;AACnC,MAAA,SAAA,CAAU,QAAQ,OAAQ,CAAA,KAAA,CAAA;AAAA,OACzB,QAAQ,CAAA,CAAA;AAAA,GACb,CAAA;AAKA,EAAA,KAAA;AAAA,IACE,MAAM,OAAQ,CAAA,KAAA;AAAA,IACd,CAAC,KAAU,KAAA;AACT,MAAA,IAAI,KAAO,EAAA;AACT,QAAiB,gBAAA,EAAA,CAAA;AAAA,OACZ,MAAA;AACL,QAAA,SAAA,CAAU,KAAQ,GAAA,KAAA,CAAA;AAAA,OACpB;AAAA,KACF;AAAA,GACF,CAAA;AAGA,EAAA,SAAA,CAAU,gBAAgB,CAAA,CAAA;AAE1B,EAAO,OAAA,SAAA,CAAA;AACT;;;;"}