{"version":3,"file":"tool.mjs","sources":["../../../packages/utils/tool.ts"],"sourcesContent":["/**\r\n * 防抖\r\n * @param {function} func 要进行debounce的函数\r\n * @param {number} wait 等待时间,默认500ms\r\n * @param {boolean} immediate 是否立即执行\r\n */\r\nexport function debounce<F extends (...args: any[]) => void>(func: F, wait = 500, immediate = false) {\r\n  let timeout: NodeJS.Timeout | undefined;\r\n  return function (...args: Parameters<F>) {\r\n    if (timeout) clearTimeout(timeout);\r\n    if (immediate) {\r\n      // 如果已经执行过，不再执行\r\n      const callNow = !timeout;\r\n      timeout = setTimeout(function () {\r\n        timeout = undefined;\r\n      }, wait);\r\n      if (callNow) {\r\n        func(...args);\r\n      }\r\n    } else {\r\n      timeout = setTimeout(() => func(...args), wait);\r\n    }\r\n  };\r\n}\r\n"],"names":["debounce","func","wait","immediate","timeout","args","callNow"],"mappings":"AAMO,SAASA,EAA6CC,GAASC,IAAO,KAAKC,IAAY,IAAO;AAC/F,MAAAC;AACJ,SAAO,YAAaC,GAAqB;AAEvC,QADID,kBAAsBA,CAAO,GAC7BD,GAAW;AAEb,YAAMG,IAAU,CAACF;AACjB,MAAAA,IAAU,WAAW,WAAY;AACrB,QAAAA,IAAA;AAAA,SACTF,CAAI,GACHI,KACFL,EAAK,GAAGI,CAAI;AAAA,IACd;AAEA,MAAAD,IAAU,WAAW,MAAMH,EAAK,GAAGI,CAAI,GAAGH,CAAI;AAAA,EAElD;AACF;"}