UNPKG

fabric

Version:

Object model for HTML5 canvas, and SVG-to-canvas parser. Backed by jsdom and node-canvas.

1 lines 1.6 kB
{"version":3,"file":"boundingBoxFromPoints.min.mjs","sources":["../../../../src/util/misc/boundingBoxFromPoints.ts"],"sourcesContent":["import type { XY } from '../../Point';\nimport { Point } from '../../Point';\nimport type { TBBox } from '../../typedefs';\n\n/**\n * Calculates bounding box (left, top, width, height) from given `points`\n * @param {XY[]} points\n * @return {Object} Object with left, top, width, height properties\n */\nexport const makeBoundingBoxFromPoints = (points: XY[]): TBBox => {\n if (points.length === 0) {\n return {\n left: 0,\n top: 0,\n width: 0,\n height: 0,\n };\n }\n\n const { min, max } = points.reduce(\n ({ min, max }, curr) => {\n return {\n min: min.min(curr),\n max: max.max(curr),\n };\n },\n { min: new Point(points[0]), max: new Point(points[0]) }\n );\n\n const size = max.subtract(min);\n\n return {\n left: min.x,\n top: min.y,\n width: size.x,\n height: size.y,\n };\n};\n"],"names":["makeBoundingBoxFromPoints","points","length","left","top","width","height","min","max","reduce","_ref","curr","Point","size","subtract","x","y"],"mappings":"4CASaA,MAAAA,EAA6BC,IACxC,GAAsB,IAAlBA,EAAOC,OACT,MAAO,CACLC,KAAM,EACNC,IAAK,EACLC,MAAO,EACPC,OAAQ,GAIZ,MAAMC,IAAEA,EAAGC,IAAEA,GAAQP,EAAOQ,QAC1B,CAAAC,EAAeC,KAAS,IAAvBJ,IAAEA,EAAGC,IAAEA,GAAKE,EACX,MAAO,CACLH,IAAKA,EAAIA,IAAII,GACbH,IAAKA,EAAIA,IAAIG,GACd,GAEH,CAAEJ,IAAK,IAAIK,EAAMX,EAAO,IAAKO,IAAK,IAAII,EAAMX,EAAO,MAG/CY,EAAOL,EAAIM,SAASP,GAE1B,MAAO,CACLJ,KAAMI,EAAIQ,EACVX,IAAKG,EAAIS,EACTX,MAAOQ,EAAKE,EACZT,OAAQO,EAAKG,EACd"}