preact-material-design
Version:
A set of material components for Preact.
42 lines • 1.18 kB
JavaScript
var Coord2d = (function () {
function Coord2d(x, y) {
this.x = x;
this.y = y;
}
Coord2d.fromXY = function (x, y) {
return new Coord2d(x, y);
};
Coord2d.fromMouseEvent = function (evt, strategy, target) {
if (strategy === void 0) { strategy = 'offset'; }
if (strategy === 'offset' && target) {
var offset = calculateOffset(evt, target);
return new Coord2d(offset.x, offset.y);
}
return new Coord2d(evt[strategy + "X"], evt[strategy + "Y"]);
};
return Coord2d;
}());
export { Coord2d };
function calculateOffset(evt, target) {
var offset = {
x: evt.offsetX,
y: evt.offsetY,
};
if (evt.target === target) {
return offset;
}
var element = evt.target;
var guard = 0;
while (element !== target) {
guard++;
offset.x += element.offsetLeft;
offset.y += element.offsetTop;
element = element.offsetParent;
if (guard > 20) {
// Prevent infinite looping
break;
}
}
return offset;
}
//# sourceMappingURL=types.js.map