{"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;;;;"}