@foblex/2d
Version:
An Angular library for 2D geometric computations, providing classes and utilities for manipulating points, lines, vectors, rectangles, arcs, and transformations.
19 lines • 2.74 kB
JavaScript
export class SizeExtensions {
static initialize(width = 0, height = 0) {
return { width, height };
}
static isEqual(size1, size2) {
return size1.width === size2.width && size1.height === size2.height;
}
static offsetFromElement(element) {
if (element instanceof SVGGraphicsElement) {
const bBox = element.getBBox();
return SizeExtensions.initialize(bBox.width, bBox.height);
}
else if (element instanceof HTMLElement) {
return SizeExtensions.initialize(element.offsetWidth, element.offsetHeight);
}
return undefined;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2l6ZS5leHRlbnNpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvZm9ibGV4MmQvc3JjL3NpemUvc2l6ZS5leHRlbnNpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE1BQU0sT0FBTyxjQUFjO0lBRWxCLE1BQU0sQ0FBQyxVQUFVLENBQUMsUUFBZ0IsQ0FBQyxFQUFFLFNBQWlCLENBQUM7UUFDNUQsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsQ0FBQztJQUMzQixDQUFDO0lBRU0sTUFBTSxDQUFDLE9BQU8sQ0FBQyxLQUFZLEVBQUUsS0FBWTtRQUM5QyxPQUFPLEtBQUssQ0FBQyxLQUFLLEtBQUssS0FBSyxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLEtBQUssQ0FBQyxNQUFNLENBQUM7SUFDdEUsQ0FBQztJQUVNLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxPQUFpQztRQUMvRCxJQUFHLE9BQU8sWUFBWSxrQkFBa0IsRUFBRTtZQUN4QyxNQUFNLElBQUksR0FBRyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDL0IsT0FBTyxjQUFjLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQzNEO2FBQU0sSUFBRyxPQUFPLFlBQVksV0FBVyxFQUFFO1lBQ3hDLE9BQU8sY0FBYyxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUM3RTtRQUNELE9BQU8sU0FBUyxDQUFDO0lBQ25CLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElTaXplIH0gZnJvbSAnLi9pLXNpemUnO1xuXG5leHBvcnQgY2xhc3MgU2l6ZUV4dGVuc2lvbnMge1xuXG4gIHB1YmxpYyBzdGF0aWMgaW5pdGlhbGl6ZSh3aWR0aDogbnVtYmVyID0gMCwgaGVpZ2h0OiBudW1iZXIgPSAwKTogSVNpemUge1xuICAgIHJldHVybiB7IHdpZHRoLCBoZWlnaHQgfTtcbiAgfVxuXG4gIHB1YmxpYyBzdGF0aWMgaXNFcXVhbChzaXplMTogSVNpemUsIHNpemUyOiBJU2l6ZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBzaXplMS53aWR0aCA9PT0gc2l6ZTIud2lkdGggJiYgc2l6ZTEuaGVpZ2h0ID09PSBzaXplMi5oZWlnaHQ7XG4gIH1cblxuICBwdWJsaWMgc3RhdGljIG9mZnNldEZyb21FbGVtZW50KGVsZW1lbnQ6IEhUTUxFbGVtZW50IHwgU1ZHRWxlbWVudCk6IElTaXplIHwgdW5kZWZpbmVkIHtcbiAgICBpZihlbGVtZW50IGluc3RhbmNlb2YgU1ZHR3JhcGhpY3NFbGVtZW50KSB7XG4gICAgICBjb25zdCBiQm94ID0gZWxlbWVudC5nZXRCQm94KCk7XG4gICAgICByZXR1cm4gU2l6ZUV4dGVuc2lvbnMuaW5pdGlhbGl6ZShiQm94LndpZHRoLCBiQm94LmhlaWdodCk7XG4gICAgfSBlbHNlIGlmKGVsZW1lbnQgaW5zdGFuY2VvZiBIVE1MRWxlbWVudCkge1xuICAgICAgcmV0dXJuIFNpemVFeHRlbnNpb25zLmluaXRpYWxpemUoZWxlbWVudC5vZmZzZXRXaWR0aCwgZWxlbWVudC5vZmZzZXRIZWlnaHQpO1xuICAgIH1cbiAgICByZXR1cm4gdW5kZWZpbmVkO1xuICB9XG59XG5cblxuXG5cblxuIl19