@gdjiami/hooks
Version:
react hooks for mygzb.com
96 lines (95 loc) • 2.69 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
var tslib_1 = require("tslib");
exports.TOUCH_SUPPROTED = 'TouchEvent' in window;
exports.GestureCoordinateKeys = [
'clientX',
'clientY',
'pageX',
'pageY',
'screenX',
'screenY',
];
function isMouseEvent(evt) {
if (evt.type.startsWith('mouse')) {
return true;
}
return false;
}
exports.isMouseEvent = isMouseEvent;
function pickProperties(obj, keys) {
var e_1, _a;
var newobj = {};
try {
for (var keys_1 = tslib_1.__values(keys), keys_1_1 = keys_1.next(); !keys_1_1.done; keys_1_1 = keys_1.next()) {
var key = keys_1_1.value;
newobj[key] = obj[key];
}
}
catch (e_1_1) { e_1 = { error: e_1_1 }; }
finally {
try {
if (keys_1_1 && !keys_1_1.done && (_a = keys_1.return)) _a.call(keys_1);
}
finally { if (e_1) throw e_1.error; }
}
return newobj;
}
exports.pickProperties = pickProperties;
/**
* 获取MouseEvent或TouchEvent中的坐标
* @param evt
*/
function extraPosition(evt, id) {
if (isMouseEvent(evt)) {
return pickProperties(evt, exports.GestureCoordinateKeys);
}
var touch;
if (id) {
for (var i = 0; i < evt.touches.length; i++) {
if (evt.touches[i].identifier === id) {
touch = evt.touches[i];
break;
}
}
if (touch == null) {
return;
}
}
else {
touch = evt.targetTouches[0];
}
return tslib_1.__assign(tslib_1.__assign({}, pickProperties(touch, exports.GestureCoordinateKeys)), { id: touch.identifier });
}
exports.extraPosition = extraPosition;
/**
* 获取多点触摸
*/
function extraPositions(evt) {
if (isMouseEvent(evt)) {
return [
tslib_1.__assign({ id: 0 }, pickProperties(evt, exports.GestureCoordinateKeys)),
];
}
return Array.prototype.map.call(evt.changedTouches, function (touch) {
return tslib_1.__assign({ id: touch.identifier }, pickProperties(touch, exports.GestureCoordinateKeys));
});
}
exports.extraPositions = extraPositions;
function clamp(num, lower, upper) {
if (num === num) {
if (upper !== undefined) {
num = num <= upper ? num : upper;
}
if (lower !== undefined) {
num = num >= lower ? num : lower;
}
}
return num;
}
exports.clamp = clamp;
var uid = 0;
function getUid() {
return (uid = uid + (1 % (Number.MAX_SAFE_INTEGER - 1)));
}
exports.getUid = getUid;