bootstrap-vue-next
Version:
Seamless integration of Vue 3, Bootstrap 5, and TypeScript for modern, type-safe UI development
3 lines (2 loc) • 726 B
JavaScript
;const e=require("vue"),n=()=>{};exports.useDebounceFn=function(t,r=200,u={}){return function(e,n){function t(...t){return new Promise((r,u)=>{Promise.resolve(e(()=>n.apply(this,t),{fn:n,thisArg:this,args:t})).then(r).catch(u)})}return t.cancel=e.cancel,t}(function(t,r={}){let u,o,c=n;const l=e=>{clearTimeout(e),c(),c=n};let s;const i=n=>{const i=e.toValue(t),a=e.toValue(r.maxWait);return u&&l(u),i<=0||void 0!==a&&a<=0?(o&&(l(o),o=null),Promise.resolve(n())):new Promise((e,t)=>{c=r.rejectOnCancel?t:e,s=n,a&&!o&&(o=setTimeout(()=>{u&&l(u),o=null,e(s())},a)),u=setTimeout(()=>{o&&l(o),o=null,e(n())},i)})};return i.cancel=()=>{u&&l(u),o&&l(o),o=null},i}(r,u),t)};
//# sourceMappingURL=debounce-YOp405Mx.js.map