mirror of
https://github.com/zadam/trilium.git
synced 2025-03-01 14:22:32 +01:00
fix debounce webpack
This commit is contained in:
parent
15a9ff4450
commit
8fcc76ad6d
@ -1,70 +0,0 @@
|
|||||||
/**
|
|
||||||
* Returns a function, that, as long as it continues to be invoked, will not
|
|
||||||
* be triggered. The function will be called after it stops being called for
|
|
||||||
* N milliseconds. If `immediate` is passed, trigger the function on the
|
|
||||||
* leading edge, instead of the trailing. The function also has a property 'clear'
|
|
||||||
* that is a function which will clear the timer to prevent previously scheduled executions.
|
|
||||||
*
|
|
||||||
* @source underscore.js
|
|
||||||
* @see http://unscriptable.com/2009/03/20/debouncing-javascript-methods/
|
|
||||||
* @param {Function} function to wrap
|
|
||||||
* @param {Number} timeout in ms (`100`)
|
|
||||||
* @param {Boolean} whether to execute at the beginning (`false`)
|
|
||||||
* @api public
|
|
||||||
*/
|
|
||||||
function debounce(func, wait_ms, immediate){
|
|
||||||
var timeout, args, context, timestamp, result;
|
|
||||||
if (null == wait_ms) wait_ms = 100;
|
|
||||||
|
|
||||||
function later() {
|
|
||||||
var last = Date.now() - timestamp;
|
|
||||||
|
|
||||||
if (last < wait_ms && last >= 0) {
|
|
||||||
timeout = setTimeout(later, wait_ms - last);
|
|
||||||
} else {
|
|
||||||
timeout = null;
|
|
||||||
if (!immediate) {
|
|
||||||
result = func.apply(context, args);
|
|
||||||
context = args = null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
var debounced = function(){
|
|
||||||
context = this;
|
|
||||||
args = arguments;
|
|
||||||
timestamp = Date.now();
|
|
||||||
var callNow = immediate && !timeout;
|
|
||||||
if (!timeout) timeout = setTimeout(later, wait_ms);
|
|
||||||
if (callNow) {
|
|
||||||
result = func.apply(context, args);
|
|
||||||
context = args = null;
|
|
||||||
}
|
|
||||||
|
|
||||||
return result;
|
|
||||||
};
|
|
||||||
|
|
||||||
debounced.clear = function() {
|
|
||||||
if (timeout) {
|
|
||||||
clearTimeout(timeout);
|
|
||||||
timeout = null;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
debounced.flush = function() {
|
|
||||||
if (timeout) {
|
|
||||||
result = func.apply(context, args);
|
|
||||||
context = args = null;
|
|
||||||
|
|
||||||
clearTimeout(timeout);
|
|
||||||
timeout = null;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
return debounced;
|
|
||||||
};
|
|
||||||
|
|
||||||
// Adds compatibility for ES modules
|
|
||||||
debounce.debounce = debounce;
|
|
||||||
|
|
||||||
export default debounce;
|
|
70
src/public/app/services/debounce.js
Normal file
70
src/public/app/services/debounce.js
Normal file
@ -0,0 +1,70 @@
|
|||||||
|
/**
|
||||||
|
* Returns a function, that, as long as it continues to be invoked, will not
|
||||||
|
* be triggered. The function will be called after it stops being called for
|
||||||
|
* N milliseconds. If `immediate` is passed, trigger the function on the
|
||||||
|
* leading edge, instead of the trailing. The function also has a property 'clear'
|
||||||
|
* that is a function which will clear the timer to prevent previously scheduled executions.
|
||||||
|
*
|
||||||
|
* @source underscore.js
|
||||||
|
* @see http://unscriptable.com/2009/03/20/debouncing-javascript-methods/
|
||||||
|
* @param {Function} function to wrap
|
||||||
|
* @param {Number} timeout in ms (`100`)
|
||||||
|
* @param {Boolean} whether to execute at the beginning (`false`)
|
||||||
|
* @api public
|
||||||
|
*/
|
||||||
|
function debounce(func, wait_ms, immediate){
|
||||||
|
var timeout, args, context, timestamp, result;
|
||||||
|
if (null == wait_ms) wait_ms = 100;
|
||||||
|
|
||||||
|
function later() {
|
||||||
|
var last = Date.now() - timestamp;
|
||||||
|
|
||||||
|
if (last < wait_ms && last >= 0) {
|
||||||
|
timeout = setTimeout(later, wait_ms - last);
|
||||||
|
} else {
|
||||||
|
timeout = null;
|
||||||
|
if (!immediate) {
|
||||||
|
result = func.apply(context, args);
|
||||||
|
context = args = null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
var debounced = function(){
|
||||||
|
context = this;
|
||||||
|
args = arguments;
|
||||||
|
timestamp = Date.now();
|
||||||
|
var callNow = immediate && !timeout;
|
||||||
|
if (!timeout) timeout = setTimeout(later, wait_ms);
|
||||||
|
if (callNow) {
|
||||||
|
result = func.apply(context, args);
|
||||||
|
context = args = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
return result;
|
||||||
|
};
|
||||||
|
|
||||||
|
debounced.clear = function() {
|
||||||
|
if (timeout) {
|
||||||
|
clearTimeout(timeout);
|
||||||
|
timeout = null;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
debounced.flush = function() {
|
||||||
|
if (timeout) {
|
||||||
|
result = func.apply(context, args);
|
||||||
|
context = args = null;
|
||||||
|
|
||||||
|
clearTimeout(timeout);
|
||||||
|
timeout = null;
|
||||||
|
}
|
||||||
|
};
|
||||||
|
|
||||||
|
return debounced;
|
||||||
|
};
|
||||||
|
|
||||||
|
// Adds compatibility for ES modules
|
||||||
|
debounce.debounce = debounce;
|
||||||
|
|
||||||
|
export default debounce;
|
@ -2,7 +2,7 @@ import libraryLoader from "../../services/library_loader.js";
|
|||||||
import TypeWidget from "./type_widget.js";
|
import TypeWidget from "./type_widget.js";
|
||||||
import utils from '../../services/utils.js';
|
import utils from '../../services/utils.js';
|
||||||
import froca from "../../services/froca.js";
|
import froca from "../../services/froca.js";
|
||||||
import debounce from "../../../libraries/lodash.debounce.js";
|
import debounce from "../../services/debounce.js";
|
||||||
|
|
||||||
const {sleep} = utils;
|
const {sleep} = utils;
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user