diff --git a/Build/Sources/TypeScript/core/Resources/Public/TypeScript/Event/DebounceEvent.ts b/Build/Sources/TypeScript/core/Resources/Public/TypeScript/Event/DebounceEvent.ts index ae91ef0b949bb5d0684ace14b87fe3ee64e829f4..53381201350b3a896af593ca7c5102c6fa5a8f84 100644 --- a/Build/Sources/TypeScript/core/Resources/Public/TypeScript/Event/DebounceEvent.ts +++ b/Build/Sources/TypeScript/core/Resources/Public/TypeScript/Event/DebounceEvent.ts @@ -34,6 +34,9 @@ class DebounceEvent extends RegularEvent { clearTimeout(timeout); if (callNow) { callback.apply(this, args); + timeout = setTimeout((): void => { + timeout = null; + }, wait); } else { timeout = setTimeout((): void => { timeout = null; diff --git a/typo3/sysext/core/Resources/Public/JavaScript/Event/DebounceEvent.js b/typo3/sysext/core/Resources/Public/JavaScript/Event/DebounceEvent.js index df1c43b099f533d4450f6a2460289299831d0af5..8bfb0547773122b5e701df415ff1d8c144b29406 100644 --- a/typo3/sysext/core/Resources/Public/JavaScript/Event/DebounceEvent.js +++ b/typo3/sysext/core/Resources/Public/JavaScript/Event/DebounceEvent.js @@ -10,4 +10,4 @@ * * The TYPO3 project - inspiring people to share! */ -define(["require","exports","./RegularEvent"],(function(e,t,n){"use strict";return class extends n{constructor(e,t,n=250,s=!1){super(e,t),this.callback=this.debounce(this.callback,n,s)}debounce(e,t,n){let s=null;return function(...u){const c=n&&!s;clearTimeout(s),c?e.apply(this,u):s=setTimeout(()=>{s=null,n||e.apply(this,u)},t)}}}})); \ No newline at end of file +define(["require","exports","./RegularEvent"],(function(e,t,u){"use strict";return class extends u{constructor(e,t,u=250,l=!1){super(e,t),this.callback=this.debounce(this.callback,u,l)}debounce(e,t,u){let l=null;return function(...n){const s=u&&!l;clearTimeout(l),s?(e.apply(this,n),l=setTimeout(()=>{l=null},t)):l=setTimeout(()=>{l=null,u||e.apply(this,n)},t)}}}})); \ No newline at end of file