@gongt/ts-stl-client
Version:
35 lines • 1.14 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
const check_environment_1 = require("@gongt/ts-stl-library/check-environment");
const create_logger_1 = require("@gongt/ts-stl-library/debug/create-logger");
const levels_1 = require("@gongt/ts-stl-library/debug/levels");
const warn = create_logger_1.createLogger(levels_1.LOG_LEVEL.WARN, 'mouse-event');
let listenerInit = false;
const list = [];
function trapMouseUpEvent(e, callback) {
if (check_environment_1.IS_SERVER) {
warn('use mouse event on server. there may be some bug.');
return;
}
// todo: touch events
if (!listenerInit) {
listenerInit = true;
document.addEventListener('mouseup', handleEvent, false);
}
list.push(callback);
}
exports.trapMouseUpEvent = trapMouseUpEvent;
function handleEvent(e) {
for (const cb of list) {
try {
cb(e);
}
catch (e) {
warn(e.message);
}
}
listenerInit = false;
document.removeEventListener('mouseup', handleEvent, false);
list.length = 0;
}
//# sourceMappingURL=mouse-down-trap.js.map