@oruga-ui/oruga-next
Version:
UI components for Vue.js and CSS framework agnostic
1 lines • 1.23 kB
Source Map (JSON)
{"version":3,"file":"useDebounce-CeqYk8AA.cjs","sources":["../../src/composables/useDebounce.ts"],"sourcesContent":["/**\n * Debounce a function call to limit the rate at which it will be invoked.\n * @param func function to debounce\n * @param wait debounce time to wait\n * @param immediate call immediate once\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":";;AAOO,SAAS,YACZ,MACA,MACA,WACoB;AACpB,MAAI;AACJ,SAAO,IAAI,SAAY;AACnB,UAAM,QAAQ,MAAY;AACtB,gBAAU;AACV,UAAI,CAAC,UAAW,MAAK,MAAM,MAAM,IAAI;AAAA,IACzC;AACA,UAAM,UAAU,aAAa,CAAC;AAC9B,QAAI,sBAAsB,OAAO;AACjC,cAAU,WAAW,OAAO,IAAI;AAChC,QAAI,QAAS,MAAK,MAAM,MAAM,IAAI;AAAA,EACtC;AACJ;;"}