{"version":3,"file":"useDebounce-BAemuDpF.cjs","sources":["../../src/composables/useDebounce.ts"],"sourcesContent":["/**\n * Debounce a function\n * @param func function to debounce\n * @param wait debounce time to wait\n * @param immediate call immediate\n * @returns function to call\n */\nexport function useDebounce<A extends Array<unknown>>(\n    func: (...args: A) => void,\n    wait: number,\n    immediate?: boolean,\n): (...args: A) => void {\n    let timeout: ReturnType<typeof setTimeout> | undefined;\n    return (...args: A) => {\n        const later = (): void => {\n            timeout = undefined;\n            if (!immediate) func.apply(this, args);\n        };\n        const callNow = immediate && !timeout;\n        if (timeout) clearTimeout(timeout);\n        timeout = setTimeout(later, wait);\n        if (callNow) func.apply(this, args);\n    };\n}\n"],"names":[],"mappings":";;AAOgB,SAAA,YACZ,MACA,MACA,WACoB;AAChB,MAAA;AACJ,SAAO,IAAI,SAAY;AACnB,UAAM,QAAQ,MAAY;AACZ,gBAAA;AACW,WAAA,MAAM,MAAM,IAAI;AAAA,IACzC;AAEI,QAAA,sBAAsB,OAAO;AACvB,cAAA,WAAW,OAAO,IAAI;AAAA,EAEpC;AACJ;;"}