UNPKG

fabric

Version:

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

1 lines 1.77 kB
{"version":3,"file":"boundingBoxFromPoints.mjs","sources":["../../../../src/util/misc/boundingBoxFromPoints.ts"],"sourcesContent":["import type { XY } 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 let left = 0,\n top = 0,\n width = 0,\n height = 0;\n\n for (let i = 0, len = points.length; i < len; i++) {\n const { x, y } = points[i];\n if (x > width || !i) width = x;\n if (x < left || !i) left = x;\n if (y > height || !i) height = y;\n if (y < top || !i) top = y;\n }\n\n return {\n left,\n top,\n width: width - left,\n height: height - top,\n };\n};\n"],"names":["makeBoundingBoxFromPoints","points","left","top","width","height","i","len","length","x","y"],"mappings":"AAGA;AACA;AACA;AACA;AACA;AACaA,MAAAA,yBAAyB,GAAIC,MAAY,IAAY;EAChE,IAAIC,IAAI,GAAG,CAAC;AACVC,IAAAA,GAAG,GAAG,CAAC;AACPC,IAAAA,KAAK,GAAG,CAAC;AACTC,IAAAA,MAAM,GAAG,CAAC,CAAA;AAEZ,EAAA,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEC,GAAG,GAAGN,MAAM,CAACO,MAAM,EAAEF,CAAC,GAAGC,GAAG,EAAED,CAAC,EAAE,EAAE;IACjD,MAAM;MAAEG,CAAC;AAAEC,MAAAA,CAAAA;AAAE,KAAC,GAAGT,MAAM,CAACK,CAAC,CAAC,CAAA;IAC1B,IAAIG,CAAC,GAAGL,KAAK,IAAI,CAACE,CAAC,EAAEF,KAAK,GAAGK,CAAC,CAAA;IAC9B,IAAIA,CAAC,GAAGP,IAAI,IAAI,CAACI,CAAC,EAAEJ,IAAI,GAAGO,CAAC,CAAA;IAC5B,IAAIC,CAAC,GAAGL,MAAM,IAAI,CAACC,CAAC,EAAED,MAAM,GAAGK,CAAC,CAAA;IAChC,IAAIA,CAAC,GAAGP,GAAG,IAAI,CAACG,CAAC,EAAEH,GAAG,GAAGO,CAAC,CAAA;AAC5B,GAAA;EAEA,OAAO;IACLR,IAAI;IACJC,GAAG;IACHC,KAAK,EAAEA,KAAK,GAAGF,IAAI;IACnBG,MAAM,EAAEA,MAAM,GAAGF,GAAAA;GAClB,CAAA;AACH;;;;"}