UNPKG

fabric

Version:

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

1 lines 2.1 kB
{"version":3,"file":"boundingBoxFromPoints.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":";;AAIA;AACA;AACA;AACA;AACA;AACaA,MAAAA,yBAAyB,GAAIC,MAAY,IAAY;AAChE,EAAA,IAAIA,MAAM,CAACC,MAAM,KAAK,CAAC,EAAE;IACvB,OAAO;AACLC,MAAAA,IAAI,EAAE,CAAC;AACPC,MAAAA,GAAG,EAAE,CAAC;AACNC,MAAAA,KAAK,EAAE,CAAC;AACRC,MAAAA,MAAM,EAAE,CAAA;KACT,CAAA;AACH,GAAA;EAEA,MAAM;IAAEC,GAAG;AAAEC,IAAAA,GAAAA;GAAK,GAAGP,MAAM,CAACQ,MAAM,CAChC,CAAAC,IAAA,EAAeC,IAAI,KAAK;IAAA,IAAvB;MAAEJ,GAAG;AAAEC,MAAAA,GAAAA;AAAI,KAAC,GAAAE,IAAA,CAAA;IACX,OAAO;AACLH,MAAAA,GAAG,EAAEA,GAAG,CAACA,GAAG,CAACI,IAAI,CAAC;AAClBH,MAAAA,GAAG,EAAEA,GAAG,CAACA,GAAG,CAACG,IAAI,CAAA;KAClB,CAAA;AACH,GAAC,EACD;IAAEJ,GAAG,EAAE,IAAIK,KAAK,CAACX,MAAM,CAAC,CAAC,CAAC,CAAC;AAAEO,IAAAA,GAAG,EAAE,IAAII,KAAK,CAACX,MAAM,CAAC,CAAC,CAAC,CAAA;AAAE,GACzD,CAAC,CAAA;AAED,EAAA,MAAMY,IAAI,GAAGL,GAAG,CAACM,QAAQ,CAACP,GAAG,CAAC,CAAA;EAE9B,OAAO;IACLJ,IAAI,EAAEI,GAAG,CAACQ,CAAC;IACXX,GAAG,EAAEG,GAAG,CAACS,CAAC;IACVX,KAAK,EAAEQ,IAAI,CAACE,CAAC;IACbT,MAAM,EAAEO,IAAI,CAACG,CAAAA;GACd,CAAA;AACH;;;;"}