{"version":3,"file":"debounce.mjs","sources":["../../../../src/utils/debounce.ts"],"sourcesContent":["export const debounce = <F extends (...args: any) => unknown>(func: F, wait: number) => {\n  let timeout: ReturnType<typeof setTimeout> | null = null\n  const fn = function (this: any, ...args: Parameters<F>) {\n    timeout && clearTimeout(timeout)\n    timeout = setTimeout(() => {\n      timeout = null\n      func.apply(this, args)\n    }, wait)\n  } as F & { cancel: () => void }\n\n  fn.cancel = () => {\n    timeout && clearTimeout(timeout)\n    timeout = null\n  }\n\n  return fn\n}\n"],"names":[],"mappings":"AAAa,MAAA,WAAW,CAAsC,MAAS,SAAiB;AACtF,MAAI,UAAgD;AAC9C,QAAA,KAAK,YAAwB,MAAqB;AACtD,eAAW,aAAa,OAAO;AAC/B,cAAU,WAAW,MAAM;AACf,gBAAA;AACL,WAAA,MAAM,MAAM,IAAI;AAAA,OACpB,IAAI;AAAA,EAAA;AAGT,KAAG,SAAS,MAAM;AAChB,eAAW,aAAa,OAAO;AACrB,cAAA;AAAA,EAAA;AAGL,SAAA;AACT;"}