UNPKG

@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
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