|
|
|
@ -23,6 +23,26 @@ var clone = exports.clone = function (obj) {
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
exports.debounce = function (func, wait, immediate) {
|
|
|
|
|
var timeout;
|
|
|
|
|
return function () {
|
|
|
|
|
var context = this;
|
|
|
|
|
var args = arguments;
|
|
|
|
|
var later = function () {
|
|
|
|
|
timeout = null;
|
|
|
|
|
if (!immediate) {
|
|
|
|
|
func.apply(context, args);
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
var callNow = immediate && !timeout;
|
|
|
|
|
clearTimeout(timeout);
|
|
|
|
|
timeout = setTimeout(later, wait);
|
|
|
|
|
if (callNow) {
|
|
|
|
|
func.apply(context, args);
|
|
|
|
|
}
|
|
|
|
|
};
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
exports.extend = function (original, source) {
|
|
|
|
|
var result = clone(original);
|
|
|
|
|
for (var key in source) {
|
|
|
|
|