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