{"version":3,"file":"getJenks-EgvmOF2c.cjs","names":["index_default"],"sources":["../node_modules/@turf/helpers/dist/esm/index.js","../node_modules/@turf/meta/dist/esm/index.js","../node_modules/@turf/area/dist/esm/index.js","../node_modules/rbush/rbush.min.js","../node_modules/tinyqueue/index.js","../node_modules/point-in-polygon/flat.js","../node_modules/point-in-polygon/nested.js","../node_modules/point-in-polygon/index.js","../node_modules/robust-predicates/umd/orient2d.min.js","../node_modules/concaveman/index.js","../node_modules/@turf/convex/dist/esm/index.js","../node_modules/@turf/centroid/dist/esm/index.js","../node_modules/@turf/invariant/dist/esm/index.js","../node_modules/@turf/center-of-mass/dist/esm/index.js","../src/Utils/getCentroidCoordinates.ts","../src/Utils/padArray.ts","../src/Utils/getJenks.ts"],"sourcesContent":["// index.ts\nvar earthRadius = 63710088e-1;\nvar factors = {\n  centimeters: earthRadius * 100,\n  centimetres: earthRadius * 100,\n  degrees: 360 / (2 * Math.PI),\n  feet: earthRadius * 3.28084,\n  inches: earthRadius * 39.37,\n  kilometers: earthRadius / 1e3,\n  kilometres: earthRadius / 1e3,\n  meters: earthRadius,\n  metres: earthRadius,\n  miles: earthRadius / 1609.344,\n  millimeters: earthRadius * 1e3,\n  millimetres: earthRadius * 1e3,\n  nauticalmiles: earthRadius / 1852,\n  radians: 1,\n  yards: earthRadius * 1.0936\n};\nvar areaFactors = {\n  acres: 247105e-9,\n  centimeters: 1e4,\n  centimetres: 1e4,\n  feet: 10.763910417,\n  hectares: 1e-4,\n  inches: 1550.003100006,\n  kilometers: 1e-6,\n  kilometres: 1e-6,\n  meters: 1,\n  metres: 1,\n  miles: 386e-9,\n  nauticalmiles: 29155334959812285e-23,\n  millimeters: 1e6,\n  millimetres: 1e6,\n  yards: 1.195990046\n};\nfunction feature(geom, properties, options = {}) {\n  const feat = { type: \"Feature\" };\n  if (options.id === 0 || options.id) {\n    feat.id = options.id;\n  }\n  if (options.bbox) {\n    feat.bbox = options.bbox;\n  }\n  feat.properties = properties || {};\n  feat.geometry = geom;\n  return feat;\n}\nfunction geometry(type, coordinates, _options = {}) {\n  switch (type) {\n    case \"Point\":\n      return point(coordinates).geometry;\n    case \"LineString\":\n      return lineString(coordinates).geometry;\n    case \"Polygon\":\n      return polygon(coordinates).geometry;\n    case \"MultiPoint\":\n      return multiPoint(coordinates).geometry;\n    case \"MultiLineString\":\n      return multiLineString(coordinates).geometry;\n    case \"MultiPolygon\":\n      return multiPolygon(coordinates).geometry;\n    default:\n      throw new Error(type + \" is invalid\");\n  }\n}\nfunction point(coordinates, properties, options = {}) {\n  if (!coordinates) {\n    throw new Error(\"coordinates is required\");\n  }\n  if (!Array.isArray(coordinates)) {\n    throw new Error(\"coordinates must be an Array\");\n  }\n  if (coordinates.length < 2) {\n    throw new Error(\"coordinates must be at least 2 numbers long\");\n  }\n  if (!isNumber(coordinates[0]) || !isNumber(coordinates[1])) {\n    throw new Error(\"coordinates must contain numbers\");\n  }\n  const geom = {\n    type: \"Point\",\n    coordinates\n  };\n  return feature(geom, properties, options);\n}\nfunction points(coordinates, properties, options = {}) {\n  return featureCollection(\n    coordinates.map((coords) => {\n      return point(coords, properties);\n    }),\n    options\n  );\n}\nfunction polygon(coordinates, properties, options = {}) {\n  for (const ring of coordinates) {\n    if (ring.length < 4) {\n      throw new Error(\n        \"Each LinearRing of a Polygon must have 4 or more Positions.\"\n      );\n    }\n    if (ring[ring.length - 1].length !== ring[0].length) {\n      throw new Error(\"First and last Position are not equivalent.\");\n    }\n    for (let j = 0; j < ring[ring.length - 1].length; j++) {\n      if (ring[ring.length - 1][j] !== ring[0][j]) {\n        throw new Error(\"First and last Position are not equivalent.\");\n      }\n    }\n  }\n  const geom = {\n    type: \"Polygon\",\n    coordinates\n  };\n  return feature(geom, properties, options);\n}\nfunction polygons(coordinates, properties, options = {}) {\n  return featureCollection(\n    coordinates.map((coords) => {\n      return polygon(coords, properties);\n    }),\n    options\n  );\n}\nfunction lineString(coordinates, properties, options = {}) {\n  if (coordinates.length < 2) {\n    throw new Error(\"coordinates must be an array of two or more positions\");\n  }\n  const geom = {\n    type: \"LineString\",\n    coordinates\n  };\n  return feature(geom, properties, options);\n}\nfunction lineStrings(coordinates, properties, options = {}) {\n  return featureCollection(\n    coordinates.map((coords) => {\n      return lineString(coords, properties);\n    }),\n    options\n  );\n}\nfunction featureCollection(features, options = {}) {\n  const fc = { type: \"FeatureCollection\" };\n  if (options.id) {\n    fc.id = options.id;\n  }\n  if (options.bbox) {\n    fc.bbox = options.bbox;\n  }\n  fc.features = features;\n  return fc;\n}\nfunction multiLineString(coordinates, properties, options = {}) {\n  const geom = {\n    type: \"MultiLineString\",\n    coordinates\n  };\n  return feature(geom, properties, options);\n}\nfunction multiPoint(coordinates, properties, options = {}) {\n  const geom = {\n    type: \"MultiPoint\",\n    coordinates\n  };\n  return feature(geom, properties, options);\n}\nfunction multiPolygon(coordinates, properties, options = {}) {\n  const geom = {\n    type: \"MultiPolygon\",\n    coordinates\n  };\n  return feature(geom, properties, options);\n}\nfunction geometryCollection(geometries, properties, options = {}) {\n  const geom = {\n    type: \"GeometryCollection\",\n    geometries\n  };\n  return feature(geom, properties, options);\n}\nfunction round(num, precision = 0) {\n  if (precision && !(precision >= 0)) {\n    throw new Error(\"precision must be a positive number\");\n  }\n  const multiplier = Math.pow(10, precision || 0);\n  return Math.round(num * multiplier) / multiplier;\n}\nfunction radiansToLength(radians, units = \"kilometers\") {\n  const factor = factors[units];\n  if (!factor) {\n    throw new Error(units + \" units is invalid\");\n  }\n  return radians * factor;\n}\nfunction lengthToRadians(distance, units = \"kilometers\") {\n  const factor = factors[units];\n  if (!factor) {\n    throw new Error(units + \" units is invalid\");\n  }\n  return distance / factor;\n}\nfunction lengthToDegrees(distance, units) {\n  return radiansToDegrees(lengthToRadians(distance, units));\n}\nfunction bearingToAzimuth(bearing) {\n  let angle = bearing % 360;\n  if (angle < 0) {\n    angle += 360;\n  }\n  return angle;\n}\nfunction azimuthToBearing(angle) {\n  angle = angle % 360;\n  if (angle > 180) {\n    return angle - 360;\n  } else if (angle < -180) {\n    return angle + 360;\n  }\n  return angle;\n}\nfunction radiansToDegrees(radians) {\n  const normalisedRadians = radians % (2 * Math.PI);\n  return normalisedRadians * 180 / Math.PI;\n}\nfunction degreesToRadians(degrees) {\n  const normalisedDegrees = degrees % 360;\n  return normalisedDegrees * Math.PI / 180;\n}\nfunction convertLength(length, originalUnit = \"kilometers\", finalUnit = \"kilometers\") {\n  if (!(length >= 0)) {\n    throw new Error(\"length must be a positive number\");\n  }\n  return radiansToLength(lengthToRadians(length, originalUnit), finalUnit);\n}\nfunction convertArea(area, originalUnit = \"meters\", finalUnit = \"kilometers\") {\n  if (!(area >= 0)) {\n    throw new Error(\"area must be a positive number\");\n  }\n  const startFactor = areaFactors[originalUnit];\n  if (!startFactor) {\n    throw new Error(\"invalid original units\");\n  }\n  const finalFactor = areaFactors[finalUnit];\n  if (!finalFactor) {\n    throw new Error(\"invalid final units\");\n  }\n  return area / startFactor * finalFactor;\n}\nfunction isNumber(num) {\n  return !isNaN(num) && num !== null && !Array.isArray(num);\n}\nfunction isObject(input) {\n  return input !== null && typeof input === \"object\" && !Array.isArray(input);\n}\nfunction validateBBox(bbox) {\n  if (!bbox) {\n    throw new Error(\"bbox is required\");\n  }\n  if (!Array.isArray(bbox)) {\n    throw new Error(\"bbox must be an Array\");\n  }\n  if (bbox.length !== 4 && bbox.length !== 6) {\n    throw new Error(\"bbox must be an Array of 4 or 6 numbers\");\n  }\n  bbox.forEach((num) => {\n    if (!isNumber(num)) {\n      throw new Error(\"bbox must only contain numbers\");\n    }\n  });\n}\nfunction validateId(id) {\n  if (!id) {\n    throw new Error(\"id is required\");\n  }\n  if ([\"string\", \"number\"].indexOf(typeof id) === -1) {\n    throw new Error(\"id must be a number or a string\");\n  }\n}\nexport {\n  areaFactors,\n  azimuthToBearing,\n  bearingToAzimuth,\n  convertArea,\n  convertLength,\n  degreesToRadians,\n  earthRadius,\n  factors,\n  feature,\n  featureCollection,\n  geometry,\n  geometryCollection,\n  isNumber,\n  isObject,\n  lengthToDegrees,\n  lengthToRadians,\n  lineString,\n  lineStrings,\n  multiLineString,\n  multiPoint,\n  multiPolygon,\n  point,\n  points,\n  polygon,\n  polygons,\n  radiansToDegrees,\n  radiansToLength,\n  round,\n  validateBBox,\n  validateId\n};\n//# sourceMappingURL=index.js.map","// index.ts\nimport { feature, point, lineString, isObject } from \"@turf/helpers\";\nfunction coordEach(geojson, callback, excludeWrapCoord) {\n  if (geojson === null) return;\n  var j, k, l, geometry, stopG, coords, geometryMaybeCollection, wrapShrink = 0, coordIndex = 0, isGeometryCollection, type = geojson.type, isFeatureCollection = type === \"FeatureCollection\", isFeature = type === \"Feature\", stop = isFeatureCollection ? geojson.features.length : 1;\n  for (var featureIndex = 0; featureIndex < stop; featureIndex++) {\n    geometryMaybeCollection = isFeatureCollection ? (\n      // @ts-expect-error: Known type conflict\n      geojson.features[featureIndex].geometry\n    ) : isFeature ? (\n      // @ts-expect-error: Known type conflict\n      geojson.geometry\n    ) : geojson;\n    isGeometryCollection = geometryMaybeCollection ? geometryMaybeCollection.type === \"GeometryCollection\" : false;\n    stopG = isGeometryCollection ? geometryMaybeCollection.geometries.length : 1;\n    for (var geomIndex = 0; geomIndex < stopG; geomIndex++) {\n      var multiFeatureIndex = 0;\n      var geometryIndex = 0;\n      geometry = isGeometryCollection ? geometryMaybeCollection.geometries[geomIndex] : geometryMaybeCollection;\n      if (geometry === null) continue;\n      coords = geometry.coordinates;\n      var geomType = geometry.type;\n      wrapShrink = excludeWrapCoord && (geomType === \"Polygon\" || geomType === \"MultiPolygon\") ? 1 : 0;\n      switch (geomType) {\n        case null:\n          break;\n        case \"Point\":\n          if (\n            // @ts-expect-error: Known type conflict\n            callback(\n              coords,\n              coordIndex,\n              featureIndex,\n              multiFeatureIndex,\n              geometryIndex\n            ) === false\n          )\n            return false;\n          coordIndex++;\n          multiFeatureIndex++;\n          break;\n        case \"LineString\":\n        case \"MultiPoint\":\n          for (j = 0; j < coords.length; j++) {\n            if (\n              // @ts-expect-error: Known type conflict\n              callback(\n                coords[j],\n                coordIndex,\n                featureIndex,\n                multiFeatureIndex,\n                geometryIndex\n              ) === false\n            )\n              return false;\n            coordIndex++;\n            if (geomType === \"MultiPoint\") multiFeatureIndex++;\n          }\n          if (geomType === \"LineString\") multiFeatureIndex++;\n          break;\n        case \"Polygon\":\n        case \"MultiLineString\":\n          for (j = 0; j < coords.length; j++) {\n            for (k = 0; k < coords[j].length - wrapShrink; k++) {\n              if (\n                // @ts-expect-error: Known type conflict\n                callback(\n                  coords[j][k],\n                  coordIndex,\n                  featureIndex,\n                  multiFeatureIndex,\n                  geometryIndex\n                ) === false\n              )\n                return false;\n              coordIndex++;\n            }\n            if (geomType === \"MultiLineString\") multiFeatureIndex++;\n            if (geomType === \"Polygon\") geometryIndex++;\n          }\n          if (geomType === \"Polygon\") multiFeatureIndex++;\n          break;\n        case \"MultiPolygon\":\n          for (j = 0; j < coords.length; j++) {\n            geometryIndex = 0;\n            for (k = 0; k < coords[j].length; k++) {\n              for (l = 0; l < coords[j][k].length - wrapShrink; l++) {\n                if (\n                  // @ts-expect-error: Known type conflict\n                  callback(\n                    coords[j][k][l],\n                    coordIndex,\n                    featureIndex,\n                    multiFeatureIndex,\n                    geometryIndex\n                  ) === false\n                )\n                  return false;\n                coordIndex++;\n              }\n              geometryIndex++;\n            }\n            multiFeatureIndex++;\n          }\n          break;\n        case \"GeometryCollection\":\n          for (j = 0; j < geometry.geometries.length; j++)\n            if (\n              // @ts-expect-error: Known type conflict\n              coordEach(geometry.geometries[j], callback, excludeWrapCoord) === false\n            )\n              return false;\n          break;\n        default:\n          throw new Error(\"Unknown Geometry Type\");\n      }\n    }\n  }\n}\nfunction coordReduce(geojson, callback, initialValue, excludeWrapCoord) {\n  var previousValue = initialValue;\n  coordEach(\n    geojson,\n    function(currentCoord, coordIndex, featureIndex, multiFeatureIndex, geometryIndex) {\n      if (coordIndex === 0 && initialValue === void 0)\n        previousValue = currentCoord;\n      else\n        previousValue = callback(\n          // @ts-expect-error: Known type conflict\n          previousValue,\n          currentCoord,\n          coordIndex,\n          featureIndex,\n          multiFeatureIndex,\n          geometryIndex\n        );\n    },\n    excludeWrapCoord\n  );\n  return previousValue;\n}\nfunction propEach(geojson, callback) {\n  var i;\n  switch (geojson.type) {\n    case \"FeatureCollection\":\n      for (i = 0; i < geojson.features.length; i++) {\n        if (callback(geojson.features[i].properties, i) === false) break;\n      }\n      break;\n    case \"Feature\":\n      callback(geojson.properties, 0);\n      break;\n  }\n}\nfunction propReduce(geojson, callback, initialValue) {\n  var previousValue = initialValue;\n  propEach(geojson, function(currentProperties, featureIndex) {\n    if (featureIndex === 0 && initialValue === void 0)\n      previousValue = currentProperties;\n    else\n      previousValue = callback(previousValue, currentProperties, featureIndex);\n  });\n  return previousValue;\n}\nfunction featureEach(geojson, callback) {\n  if (geojson.type === \"Feature\") {\n    callback(geojson, 0);\n  } else if (geojson.type === \"FeatureCollection\") {\n    for (var i = 0; i < geojson.features.length; i++) {\n      if (callback(geojson.features[i], i) === false) break;\n    }\n  }\n}\nfunction featureReduce(geojson, callback, initialValue) {\n  var previousValue = initialValue;\n  featureEach(geojson, function(currentFeature, featureIndex) {\n    if (featureIndex === 0 && initialValue === void 0)\n      previousValue = currentFeature;\n    else previousValue = callback(previousValue, currentFeature, featureIndex);\n  });\n  return previousValue;\n}\nfunction coordAll(geojson) {\n  var coords = [];\n  coordEach(geojson, function(coord) {\n    coords.push(coord);\n  });\n  return coords;\n}\nfunction geomEach(geojson, callback) {\n  var i, j, g, geometry, stopG, geometryMaybeCollection, isGeometryCollection, featureProperties, featureBBox, featureId, featureIndex = 0, isFeatureCollection = geojson.type === \"FeatureCollection\", isFeature = geojson.type === \"Feature\", stop = isFeatureCollection ? geojson.features.length : 1;\n  for (i = 0; i < stop; i++) {\n    geometryMaybeCollection = isFeatureCollection ? (\n      // @ts-expect-error: Known type conflict\n      geojson.features[i].geometry\n    ) : isFeature ? (\n      // @ts-expect-error: Known type conflict\n      geojson.geometry\n    ) : geojson;\n    featureProperties = isFeatureCollection ? (\n      // @ts-expect-error: Known type conflict\n      geojson.features[i].properties\n    ) : isFeature ? (\n      // @ts-expect-error: Known type conflict\n      geojson.properties\n    ) : {};\n    featureBBox = isFeatureCollection ? (\n      // @ts-expect-error: Known type conflict\n      geojson.features[i].bbox\n    ) : isFeature ? (\n      // @ts-expect-error: Known type conflict\n      geojson.bbox\n    ) : void 0;\n    featureId = isFeatureCollection ? (\n      // @ts-expect-error: Known type conflict\n      geojson.features[i].id\n    ) : isFeature ? (\n      // @ts-expect-error: Known type conflict\n      geojson.id\n    ) : void 0;\n    isGeometryCollection = geometryMaybeCollection ? geometryMaybeCollection.type === \"GeometryCollection\" : false;\n    stopG = isGeometryCollection ? geometryMaybeCollection.geometries.length : 1;\n    for (g = 0; g < stopG; g++) {\n      geometry = isGeometryCollection ? geometryMaybeCollection.geometries[g] : geometryMaybeCollection;\n      if (geometry === null) {\n        if (\n          // @ts-expect-error: Known type conflict\n          callback(\n            // @ts-expect-error: Known type conflict\n            null,\n            featureIndex,\n            featureProperties,\n            featureBBox,\n            featureId\n          ) === false\n        )\n          return false;\n        continue;\n      }\n      switch (geometry.type) {\n        case \"Point\":\n        case \"LineString\":\n        case \"MultiPoint\":\n        case \"Polygon\":\n        case \"MultiLineString\":\n        case \"MultiPolygon\": {\n          if (\n            // @ts-expect-error: Known type conflict\n            callback(\n              geometry,\n              featureIndex,\n              featureProperties,\n              featureBBox,\n              featureId\n            ) === false\n          )\n            return false;\n          break;\n        }\n        case \"GeometryCollection\": {\n          for (j = 0; j < geometry.geometries.length; j++) {\n            if (\n              // @ts-expect-error: Known type conflict\n              callback(\n                geometry.geometries[j],\n                featureIndex,\n                featureProperties,\n                featureBBox,\n                featureId\n              ) === false\n            )\n              return false;\n          }\n          break;\n        }\n        default:\n          throw new Error(\"Unknown Geometry Type\");\n      }\n    }\n    featureIndex++;\n  }\n}\nfunction geomReduce(geojson, callback, initialValue) {\n  var previousValue = initialValue;\n  geomEach(\n    geojson,\n    function(currentGeometry, featureIndex, featureProperties, featureBBox, featureId) {\n      if (featureIndex === 0 && initialValue === void 0)\n        previousValue = currentGeometry;\n      else\n        previousValue = callback(\n          // @ts-expect-error: Known type conflict\n          previousValue,\n          currentGeometry,\n          featureIndex,\n          featureProperties,\n          featureBBox,\n          featureId\n        );\n    }\n  );\n  return previousValue;\n}\nfunction flattenEach(geojson, callback) {\n  geomEach(geojson, function(geometry, featureIndex, properties, bbox, id) {\n    var type = geometry === null ? null : geometry.type;\n    switch (type) {\n      case null:\n      case \"Point\":\n      case \"LineString\":\n      case \"Polygon\":\n        if (\n          // @ts-expect-error: Known type conflict\n          callback(\n            feature(geometry, properties, { bbox, id }),\n            featureIndex,\n            0\n          ) === false\n        )\n          return false;\n        return;\n    }\n    var geomType;\n    switch (type) {\n      case \"MultiPoint\":\n        geomType = \"Point\";\n        break;\n      case \"MultiLineString\":\n        geomType = \"LineString\";\n        break;\n      case \"MultiPolygon\":\n        geomType = \"Polygon\";\n        break;\n    }\n    for (\n      var multiFeatureIndex = 0;\n      // @ts-expect-error: Known type conflict\n      multiFeatureIndex < geometry.coordinates.length;\n      multiFeatureIndex++\n    ) {\n      var coordinate = geometry.coordinates[multiFeatureIndex];\n      var geom = {\n        type: geomType,\n        coordinates: coordinate\n      };\n      if (\n        // @ts-expect-error: Known type conflict\n        callback(feature(geom, properties), featureIndex, multiFeatureIndex) === false\n      )\n        return false;\n    }\n  });\n}\nfunction flattenReduce(geojson, callback, initialValue) {\n  var previousValue = initialValue;\n  flattenEach(\n    geojson,\n    function(currentFeature, featureIndex, multiFeatureIndex) {\n      if (featureIndex === 0 && multiFeatureIndex === 0 && initialValue === void 0)\n        previousValue = currentFeature;\n      else\n        previousValue = callback(\n          // @ts-expect-error: Known type conflict\n          previousValue,\n          currentFeature,\n          featureIndex,\n          multiFeatureIndex\n        );\n    }\n  );\n  return previousValue;\n}\nfunction segmentEach(geojson, callback) {\n  flattenEach(geojson, function(feature2, featureIndex, multiFeatureIndex) {\n    var segmentIndex = 0;\n    if (!feature2.geometry) return;\n    var type = feature2.geometry.type;\n    if (type === \"Point\" || type === \"MultiPoint\") return;\n    var previousCoords;\n    var previousFeatureIndex = 0;\n    var previousMultiIndex = 0;\n    var prevGeomIndex = 0;\n    if (\n      // @ts-expect-error: Known type conflict\n      coordEach(\n        feature2,\n        function(currentCoord, coordIndex, featureIndexCoord, multiPartIndexCoord, geometryIndex) {\n          if (\n            // @ts-expect-error: Known type conflict\n            previousCoords === void 0 || featureIndex > previousFeatureIndex || multiPartIndexCoord > previousMultiIndex || geometryIndex > prevGeomIndex\n          ) {\n            previousCoords = currentCoord;\n            previousFeatureIndex = featureIndex;\n            previousMultiIndex = multiPartIndexCoord;\n            prevGeomIndex = geometryIndex;\n            segmentIndex = 0;\n            return;\n          }\n          var currentSegment = lineString(\n            // @ts-expect-error: Known type conflict\n            [previousCoords, currentCoord],\n            feature2.properties\n          );\n          if (\n            // @ts-expect-error: Known type conflict\n            callback(\n              // @ts-expect-error: Known type conflict\n              currentSegment,\n              featureIndex,\n              multiFeatureIndex,\n              geometryIndex,\n              segmentIndex\n            ) === false\n          )\n            return false;\n          segmentIndex++;\n          previousCoords = currentCoord;\n        }\n      ) === false\n    )\n      return false;\n  });\n}\nfunction segmentReduce(geojson, callback, initialValue) {\n  var previousValue = initialValue;\n  var started = false;\n  segmentEach(\n    geojson,\n    function(currentSegment, featureIndex, multiFeatureIndex, geometryIndex, segmentIndex) {\n      if (started === false && initialValue === void 0)\n        previousValue = currentSegment;\n      else\n        previousValue = callback(\n          previousValue,\n          // @ts-expect-error: Known type conflict\n          currentSegment,\n          featureIndex,\n          multiFeatureIndex,\n          geometryIndex,\n          segmentIndex\n        );\n      started = true;\n    }\n  );\n  return previousValue;\n}\nfunction lineEach(geojson, callback) {\n  if (!geojson) throw new Error(\"geojson is required\");\n  flattenEach(geojson, function(feature2, featureIndex, multiFeatureIndex) {\n    if (feature2.geometry === null) return;\n    var type = feature2.geometry.type;\n    var coords = feature2.geometry.coordinates;\n    switch (type) {\n      case \"LineString\":\n        if (callback(feature2, featureIndex, multiFeatureIndex, 0, 0) === false)\n          return false;\n        break;\n      case \"Polygon\":\n        for (var geometryIndex = 0; geometryIndex < coords.length; geometryIndex++) {\n          if (\n            // @ts-expect-error: Known type conflict\n            callback(\n              // @ts-expect-error: Known type conflict\n              lineString(coords[geometryIndex], feature2.properties),\n              featureIndex,\n              multiFeatureIndex,\n              geometryIndex\n            ) === false\n          )\n            return false;\n        }\n        break;\n    }\n  });\n}\nfunction lineReduce(geojson, callback, initialValue) {\n  var previousValue = initialValue;\n  lineEach(\n    geojson,\n    function(currentLine, featureIndex, multiFeatureIndex, geometryIndex) {\n      if (featureIndex === 0 && initialValue === void 0)\n        previousValue = currentLine;\n      else\n        previousValue = callback(\n          previousValue,\n          currentLine,\n          featureIndex,\n          multiFeatureIndex,\n          geometryIndex\n        );\n    }\n  );\n  return previousValue;\n}\nfunction findSegment(geojson, options) {\n  options = options || {};\n  if (!isObject(options)) throw new Error(\"options is invalid\");\n  var featureIndex = options.featureIndex || 0;\n  var multiFeatureIndex = options.multiFeatureIndex || 0;\n  var geometryIndex = options.geometryIndex || 0;\n  var segmentIndex = options.segmentIndex || 0;\n  var properties = options.properties;\n  var geometry;\n  switch (geojson.type) {\n    case \"FeatureCollection\":\n      if (featureIndex < 0)\n        featureIndex = geojson.features.length + featureIndex;\n      properties = properties || geojson.features[featureIndex].properties;\n      geometry = geojson.features[featureIndex].geometry;\n      break;\n    case \"Feature\":\n      properties = properties || geojson.properties;\n      geometry = geojson.geometry;\n      break;\n    case \"Point\":\n    case \"MultiPoint\":\n      return null;\n    case \"LineString\":\n    case \"Polygon\":\n    case \"MultiLineString\":\n    case \"MultiPolygon\":\n      geometry = geojson;\n      break;\n    default:\n      throw new Error(\"geojson is invalid\");\n  }\n  if (geometry === null) return null;\n  var coords = geometry.coordinates;\n  switch (geometry.type) {\n    case \"Point\":\n    case \"MultiPoint\":\n      return null;\n    case \"LineString\":\n      if (segmentIndex < 0) segmentIndex = coords.length + segmentIndex - 1;\n      return lineString(\n        // @ts-expect-error: Known type conflict\n        [coords[segmentIndex], coords[segmentIndex + 1]],\n        properties,\n        options\n      );\n    case \"Polygon\":\n      if (geometryIndex < 0) geometryIndex = coords.length + geometryIndex;\n      if (segmentIndex < 0)\n        segmentIndex = coords[geometryIndex].length + segmentIndex - 1;\n      return lineString(\n        [\n          // @ts-expect-error: Known type conflict\n          coords[geometryIndex][segmentIndex],\n          // @ts-expect-error: Known type conflict\n          coords[geometryIndex][segmentIndex + 1]\n        ],\n        properties,\n        options\n      );\n    case \"MultiLineString\":\n      if (multiFeatureIndex < 0)\n        multiFeatureIndex = coords.length + multiFeatureIndex;\n      if (segmentIndex < 0)\n        segmentIndex = coords[multiFeatureIndex].length + segmentIndex - 1;\n      return lineString(\n        [\n          // @ts-expect-error: Known type conflict\n          coords[multiFeatureIndex][segmentIndex],\n          // @ts-expect-error: Known type conflict\n          coords[multiFeatureIndex][segmentIndex + 1]\n        ],\n        properties,\n        options\n      );\n    case \"MultiPolygon\":\n      if (multiFeatureIndex < 0)\n        multiFeatureIndex = coords.length + multiFeatureIndex;\n      if (geometryIndex < 0)\n        geometryIndex = coords[multiFeatureIndex].length + geometryIndex;\n      if (segmentIndex < 0)\n        segmentIndex = // @ts-expect-error: Known type conflict\n        coords[multiFeatureIndex][geometryIndex].length - segmentIndex - 1;\n      return lineString(\n        [\n          // @ts-expect-error: Known type conflict\n          coords[multiFeatureIndex][geometryIndex][segmentIndex],\n          // @ts-expect-error: Known type conflict\n          coords[multiFeatureIndex][geometryIndex][segmentIndex + 1]\n        ],\n        properties,\n        options\n      );\n  }\n  throw new Error(\"geojson is invalid\");\n}\nfunction findPoint(geojson, options) {\n  options = options || {};\n  if (!isObject(options)) throw new Error(\"options is invalid\");\n  var featureIndex = options.featureIndex || 0;\n  var multiFeatureIndex = options.multiFeatureIndex || 0;\n  var geometryIndex = options.geometryIndex || 0;\n  var coordIndex = options.coordIndex || 0;\n  var properties = options.properties;\n  var geometry;\n  switch (geojson.type) {\n    case \"FeatureCollection\":\n      if (featureIndex < 0)\n        featureIndex = geojson.features.length + featureIndex;\n      properties = properties || geojson.features[featureIndex].properties;\n      geometry = geojson.features[featureIndex].geometry;\n      break;\n    case \"Feature\":\n      properties = properties || geojson.properties;\n      geometry = geojson.geometry;\n      break;\n    case \"Point\":\n    case \"MultiPoint\":\n      return null;\n    case \"LineString\":\n    case \"Polygon\":\n    case \"MultiLineString\":\n    case \"MultiPolygon\":\n      geometry = geojson;\n      break;\n    default:\n      throw new Error(\"geojson is invalid\");\n  }\n  if (geometry === null) return null;\n  var coords = geometry.coordinates;\n  switch (geometry.type) {\n    case \"Point\":\n      return point(coords, properties, options);\n    case \"MultiPoint\":\n      if (multiFeatureIndex < 0)\n        multiFeatureIndex = coords.length + multiFeatureIndex;\n      return point(coords[multiFeatureIndex], properties, options);\n    case \"LineString\":\n      if (coordIndex < 0) coordIndex = coords.length + coordIndex;\n      return point(coords[coordIndex], properties, options);\n    case \"Polygon\":\n      if (geometryIndex < 0) geometryIndex = coords.length + geometryIndex;\n      if (coordIndex < 0)\n        coordIndex = coords[geometryIndex].length + coordIndex;\n      return point(coords[geometryIndex][coordIndex], properties, options);\n    case \"MultiLineString\":\n      if (multiFeatureIndex < 0)\n        multiFeatureIndex = coords.length + multiFeatureIndex;\n      if (coordIndex < 0)\n        coordIndex = coords[multiFeatureIndex].length + coordIndex;\n      return point(coords[multiFeatureIndex][coordIndex], properties, options);\n    case \"MultiPolygon\":\n      if (multiFeatureIndex < 0)\n        multiFeatureIndex = coords.length + multiFeatureIndex;\n      if (geometryIndex < 0)\n        geometryIndex = coords[multiFeatureIndex].length + geometryIndex;\n      if (coordIndex < 0)\n        coordIndex = coords[multiFeatureIndex][geometryIndex].length - coordIndex;\n      return point(\n        coords[multiFeatureIndex][geometryIndex][coordIndex],\n        properties,\n        options\n      );\n  }\n  throw new Error(\"geojson is invalid\");\n}\nexport {\n  coordAll,\n  coordEach,\n  coordReduce,\n  featureEach,\n  featureReduce,\n  findPoint,\n  findSegment,\n  flattenEach,\n  flattenReduce,\n  geomEach,\n  geomReduce,\n  lineEach,\n  lineReduce,\n  propEach,\n  propReduce,\n  segmentEach,\n  segmentReduce\n};\n//# sourceMappingURL=index.js.map","// index.ts\nimport { earthRadius } from \"@turf/helpers\";\nimport { geomReduce } from \"@turf/meta\";\nfunction area(geojson) {\n  return geomReduce(\n    geojson,\n    (value, geom) => {\n      return value + calculateArea(geom);\n    },\n    0\n  );\n}\nfunction calculateArea(geom) {\n  let total = 0;\n  let i;\n  switch (geom.type) {\n    case \"Polygon\":\n      return polygonArea(geom.coordinates);\n    case \"MultiPolygon\":\n      for (i = 0; i < geom.coordinates.length; i++) {\n        total += polygonArea(geom.coordinates[i]);\n      }\n      return total;\n    case \"Point\":\n    case \"MultiPoint\":\n    case \"LineString\":\n    case \"MultiLineString\":\n      return 0;\n  }\n  return 0;\n}\nfunction polygonArea(coords) {\n  let total = 0;\n  if (coords && coords.length > 0) {\n    total += Math.abs(ringArea(coords[0]));\n    for (let i = 1; i < coords.length; i++) {\n      total -= Math.abs(ringArea(coords[i]));\n    }\n  }\n  return total;\n}\nvar FACTOR = earthRadius * earthRadius / 2;\nvar PI_OVER_180 = Math.PI / 180;\nfunction ringArea(coords) {\n  const coordsLength = coords.length - 1;\n  if (coordsLength <= 2) return 0;\n  let total = 0;\n  let i = 0;\n  while (i < coordsLength) {\n    const lower = coords[i];\n    const middle = coords[i + 1 === coordsLength ? 0 : i + 1];\n    const upper = coords[i + 2 >= coordsLength ? (i + 2) % coordsLength : i + 2];\n    const lowerX = lower[0] * PI_OVER_180;\n    const middleY = middle[1] * PI_OVER_180;\n    const upperX = upper[0] * PI_OVER_180;\n    total += (upperX - lowerX) * Math.sin(middleY);\n    i++;\n  }\n  return total * FACTOR;\n}\nvar index_default = area;\nexport {\n  area,\n  index_default as default\n};\n//# sourceMappingURL=index.js.map","!function(t,i){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=i():\"function\"==typeof define&&define.amd?define(i):(t=t||self).RBush=i()}(this,function(){\"use strict\";function t(t,r,e,a,h){!function t(n,r,e,a,h){for(;a>e;){if(a-e>600){var o=a-e+1,s=r-e+1,l=Math.log(o),f=.5*Math.exp(2*l/3),u=.5*Math.sqrt(l*f*(o-f)/o)*(s-o/2<0?-1:1),m=Math.max(e,Math.floor(r-s*f/o+u)),c=Math.min(a,Math.floor(r+(o-s)*f/o+u));t(n,r,m,c,h)}var p=n[r],d=e,x=a;for(i(n,e,r),h(n[a],p)>0&&i(n,e,a);d<x;){for(i(n,d,x),d++,x--;h(n[d],p)<0;)d++;for(;h(n[x],p)>0;)x--}0===h(n[e],p)?i(n,e,x):i(n,++x,a),x<=r&&(e=x+1),r<=x&&(a=x-1)}}(t,r,e||0,a||t.length-1,h||n)}function i(t,i,n){var r=t[i];t[i]=t[n],t[n]=r}function n(t,i){return t<i?-1:t>i?1:0}var r=function(t){void 0===t&&(t=9),this._maxEntries=Math.max(4,t),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),this.clear()};function e(t,i,n){if(!n)return i.indexOf(t);for(var r=0;r<i.length;r++)if(n(t,i[r]))return r;return-1}function a(t,i){h(t,0,t.children.length,i,t)}function h(t,i,n,r,e){e||(e=p(null)),e.minX=1/0,e.minY=1/0,e.maxX=-1/0,e.maxY=-1/0;for(var a=i;a<n;a++){var h=t.children[a];o(e,t.leaf?r(h):h)}return e}function o(t,i){return t.minX=Math.min(t.minX,i.minX),t.minY=Math.min(t.minY,i.minY),t.maxX=Math.max(t.maxX,i.maxX),t.maxY=Math.max(t.maxY,i.maxY),t}function s(t,i){return t.minX-i.minX}function l(t,i){return t.minY-i.minY}function f(t){return(t.maxX-t.minX)*(t.maxY-t.minY)}function u(t){return t.maxX-t.minX+(t.maxY-t.minY)}function m(t,i){return t.minX<=i.minX&&t.minY<=i.minY&&i.maxX<=t.maxX&&i.maxY<=t.maxY}function c(t,i){return i.minX<=t.maxX&&i.minY<=t.maxY&&i.maxX>=t.minX&&i.maxY>=t.minY}function p(t){return{children:t,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function d(i,n,r,e,a){for(var h=[n,r];h.length;)if(!((r=h.pop())-(n=h.pop())<=e)){var o=n+Math.ceil((r-n)/e/2)*e;t(i,o,n,r,a),h.push(n,o,o,r)}}return r.prototype.all=function(){return this._all(this.data,[])},r.prototype.search=function(t){var i=this.data,n=[];if(!c(t,i))return n;for(var r=this.toBBox,e=[];i;){for(var a=0;a<i.children.length;a++){var h=i.children[a],o=i.leaf?r(h):h;c(t,o)&&(i.leaf?n.push(h):m(t,o)?this._all(h,n):e.push(h))}i=e.pop()}return n},r.prototype.collides=function(t){var i=this.data;if(!c(t,i))return!1;for(var n=[];i;){for(var r=0;r<i.children.length;r++){var e=i.children[r],a=i.leaf?this.toBBox(e):e;if(c(t,a)){if(i.leaf||m(t,a))return!0;n.push(e)}}i=n.pop()}return!1},r.prototype.load=function(t){if(!t||!t.length)return this;if(t.length<this._minEntries){for(var i=0;i<t.length;i++)this.insert(t[i]);return this}var n=this._build(t.slice(),0,t.length-1,0);if(this.data.children.length)if(this.data.height===n.height)this._splitRoot(this.data,n);else{if(this.data.height<n.height){var r=this.data;this.data=n,n=r}this._insert(n,this.data.height-n.height-1,!0)}else this.data=n;return this},r.prototype.insert=function(t){return t&&this._insert(t,this.data.height-1),this},r.prototype.clear=function(){return this.data=p([]),this},r.prototype.remove=function(t,i){if(!t)return this;for(var n,r,a,h=this.data,o=this.toBBox(t),s=[],l=[];h||s.length;){if(h||(h=s.pop(),r=s[s.length-1],n=l.pop(),a=!0),h.leaf){var f=e(t,h.children,i);if(-1!==f)return h.children.splice(f,1),s.push(h),this._condense(s),this}a||h.leaf||!m(h,o)?r?(n++,h=r.children[n],a=!1):h=null:(s.push(h),l.push(n),n=0,r=h,h=h.children[0])}return this},r.prototype.toBBox=function(t){return t},r.prototype.compareMinX=function(t,i){return t.minX-i.minX},r.prototype.compareMinY=function(t,i){return t.minY-i.minY},r.prototype.toJSON=function(){return this.data},r.prototype.fromJSON=function(t){return this.data=t,this},r.prototype._all=function(t,i){for(var n=[];t;)t.leaf?i.push.apply(i,t.children):n.push.apply(n,t.children),t=n.pop();return i},r.prototype._build=function(t,i,n,r){var e,h=n-i+1,o=this._maxEntries;if(h<=o)return a(e=p(t.slice(i,n+1)),this.toBBox),e;r||(r=Math.ceil(Math.log(h)/Math.log(o)),o=Math.ceil(h/Math.pow(o,r-1))),(e=p([])).leaf=!1,e.height=r;var s=Math.ceil(h/o),l=s*Math.ceil(Math.sqrt(o));d(t,i,n,l,this.compareMinX);for(var f=i;f<=n;f+=l){var u=Math.min(f+l-1,n);d(t,f,u,s,this.compareMinY);for(var m=f;m<=u;m+=s){var c=Math.min(m+s-1,u);e.children.push(this._build(t,m,c,r-1))}}return a(e,this.toBBox),e},r.prototype._chooseSubtree=function(t,i,n,r){for(;r.push(i),!i.leaf&&r.length-1!==n;){for(var e=1/0,a=1/0,h=void 0,o=0;o<i.children.length;o++){var s=i.children[o],l=f(s),u=(m=t,c=s,(Math.max(c.maxX,m.maxX)-Math.min(c.minX,m.minX))*(Math.max(c.maxY,m.maxY)-Math.min(c.minY,m.minY))-l);u<a?(a=u,e=l<e?l:e,h=s):u===a&&l<e&&(e=l,h=s)}i=h||i.children[0]}var m,c;return i},r.prototype._insert=function(t,i,n){var r=n?t:this.toBBox(t),e=[],a=this._chooseSubtree(r,this.data,i,e);for(a.children.push(t),o(a,r);i>=0&&e[i].children.length>this._maxEntries;)this._split(e,i),i--;this._adjustParentBBoxes(r,e,i)},r.prototype._split=function(t,i){var n=t[i],r=n.children.length,e=this._minEntries;this._chooseSplitAxis(n,e,r);var h=this._chooseSplitIndex(n,e,r),o=p(n.children.splice(h,n.children.length-h));o.height=n.height,o.leaf=n.leaf,a(n,this.toBBox),a(o,this.toBBox),i?t[i-1].children.push(o):this._splitRoot(n,o)},r.prototype._splitRoot=function(t,i){this.data=p([t,i]),this.data.height=t.height+1,this.data.leaf=!1,a(this.data,this.toBBox)},r.prototype._chooseSplitIndex=function(t,i,n){for(var r,e,a,o,s,l,u,m=1/0,c=1/0,p=i;p<=n-i;p++){var d=h(t,0,p,this.toBBox),x=h(t,p,n,this.toBBox),v=(e=d,a=x,o=void 0,s=void 0,l=void 0,u=void 0,o=Math.max(e.minX,a.minX),s=Math.max(e.minY,a.minY),l=Math.min(e.maxX,a.maxX),u=Math.min(e.maxY,a.maxY),Math.max(0,l-o)*Math.max(0,u-s)),M=f(d)+f(x);v<m?(m=v,r=p,c=M<c?M:c):v===m&&M<c&&(c=M,r=p)}return r||n-i},r.prototype._chooseSplitAxis=function(t,i,n){var r=t.leaf?this.compareMinX:s,e=t.leaf?this.compareMinY:l;this._allDistMargin(t,i,n,r)<this._allDistMargin(t,i,n,e)&&t.children.sort(r)},r.prototype._allDistMargin=function(t,i,n,r){t.children.sort(r);for(var e=this.toBBox,a=h(t,0,i,e),s=h(t,n-i,n,e),l=u(a)+u(s),f=i;f<n-i;f++){var m=t.children[f];o(a,t.leaf?e(m):m),l+=u(a)}for(var c=n-i-1;c>=i;c--){var p=t.children[c];o(s,t.leaf?e(p):p),l+=u(s)}return l},r.prototype._adjustParentBBoxes=function(t,i,n){for(var r=n;r>=0;r--)o(i[r],t)},r.prototype._condense=function(t){for(var i=t.length-1,n=void 0;i>=0;i--)0===t[i].children.length?i>0?(n=t[i-1].children).splice(n.indexOf(t[i]),1):this.clear():a(t[i],this.toBBox)},r});\n","\nexport default class TinyQueue {\n    constructor(data = [], compare = defaultCompare) {\n        this.data = data;\n        this.length = this.data.length;\n        this.compare = compare;\n\n        if (this.length > 0) {\n            for (let i = (this.length >> 1) - 1; i >= 0; i--) this._down(i);\n        }\n    }\n\n    push(item) {\n        this.data.push(item);\n        this.length++;\n        this._up(this.length - 1);\n    }\n\n    pop() {\n        if (this.length === 0) return undefined;\n\n        const top = this.data[0];\n        const bottom = this.data.pop();\n        this.length--;\n\n        if (this.length > 0) {\n            this.data[0] = bottom;\n            this._down(0);\n        }\n\n        return top;\n    }\n\n    peek() {\n        return this.data[0];\n    }\n\n    _up(pos) {\n        const {data, compare} = this;\n        const item = data[pos];\n\n        while (pos > 0) {\n            const parent = (pos - 1) >> 1;\n            const current = data[parent];\n            if (compare(item, current) >= 0) break;\n            data[pos] = current;\n            pos = parent;\n        }\n\n        data[pos] = item;\n    }\n\n    _down(pos) {\n        const {data, compare} = this;\n        const halfLength = this.length >> 1;\n        const item = data[pos];\n\n        while (pos < halfLength) {\n            let left = (pos << 1) + 1;\n            let best = data[left];\n            const right = left + 1;\n\n            if (right < this.length && compare(data[right], best) < 0) {\n                left = right;\n                best = data[right];\n            }\n            if (compare(best, item) >= 0) break;\n\n            data[pos] = best;\n            pos = left;\n        }\n\n        data[pos] = item;\n    }\n}\n\nfunction defaultCompare(a, b) {\n    return a < b ? -1 : a > b ? 1 : 0;\n}\n","module.exports = function pointInPolygonFlat (point, vs, start, end) {\n    var x = point[0], y = point[1];\n    var inside = false;\n    if (start === undefined) start = 0;\n    if (end === undefined) end = vs.length;\n    var len = (end-start)/2;\n    for (var i = 0, j = len - 1; i < len; j = i++) {\n        var xi = vs[start+i*2+0], yi = vs[start+i*2+1];\n        var xj = vs[start+j*2+0], yj = vs[start+j*2+1];\n        var intersect = ((yi > y) !== (yj > y))\n            && (x < (xj - xi) * (y - yi) / (yj - yi) + xi);\n        if (intersect) inside = !inside;\n    }\n    return inside;\n};\n","// ray-casting algorithm based on\n// https://wrf.ecse.rpi.edu/Research/Short_Notes/pnpoly.html\n\nmodule.exports = function pointInPolygonNested (point, vs, start, end) {\n    var x = point[0], y = point[1];\n    var inside = false;\n    if (start === undefined) start = 0;\n    if (end === undefined) end = vs.length;\n    var len = end - start;\n    for (var i = 0, j = len - 1; i < len; j = i++) {\n        var xi = vs[i+start][0], yi = vs[i+start][1];\n        var xj = vs[j+start][0], yj = vs[j+start][1];\n        var intersect = ((yi > y) !== (yj > y))\n            && (x < (xj - xi) * (y - yi) / (yj - yi) + xi);\n        if (intersect) inside = !inside;\n    }\n    return inside;\n};\n","var pointInPolygonFlat = require('./flat.js')\nvar pointInPolygonNested = require('./nested.js')\n\nmodule.exports = function pointInPolygon (point, vs, start, end) {\n    if (vs.length > 0 && Array.isArray(vs[0])) {\n        return pointInPolygonNested(point, vs, start, end);\n    } else {\n        return pointInPolygonFlat(point, vs, start, end);\n    }\n}\nmodule.exports.nested = pointInPolygonNested\nmodule.exports.flat = pointInPolygonFlat\n","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?e(exports):\"function\"==typeof define&&define.amd?define([\"exports\"],e):e((t=t||self).predicates={})}(this,function(t){\"use strict\";const e=134217729,n=33306690738754706e-32;function r(t,e,n,r,o){let f,i,u,c,s=e[0],a=r[0],d=0,l=0;a>s==a>-s?(f=s,s=e[++d]):(f=a,a=r[++l]);let p=0;if(d<t&&l<n)for(a>s==a>-s?(u=f-((i=s+f)-s),s=e[++d]):(u=f-((i=a+f)-a),a=r[++l]),f=i,0!==u&&(o[p++]=u);d<t&&l<n;)a>s==a>-s?(u=f-((i=f+s)-(c=i-f))+(s-c),s=e[++d]):(u=f-((i=f+a)-(c=i-f))+(a-c),a=r[++l]),f=i,0!==u&&(o[p++]=u);for(;d<t;)u=f-((i=f+s)-(c=i-f))+(s-c),s=e[++d],f=i,0!==u&&(o[p++]=u);for(;l<n;)u=f-((i=f+a)-(c=i-f))+(a-c),a=r[++l],f=i,0!==u&&(o[p++]=u);return 0===f&&0!==p||(o[p++]=f),p}function o(t){return new Float64Array(t)}const f=33306690738754716e-32,i=22204460492503146e-32,u=11093356479670487e-47,c=o(4),s=o(8),a=o(12),d=o(16),l=o(4);t.orient2d=function(t,o,p,b,y,h){const M=(o-h)*(p-y),x=(t-y)*(b-h),j=M-x;if(0===M||0===x||M>0!=x>0)return j;const m=Math.abs(M+x);return Math.abs(j)>=f*m?j:-function(t,o,f,p,b,y,h){let M,x,j,m,_,v,w,A,F,O,P,g,k,q,z,B,C,D;const E=t-b,G=f-b,H=o-y,I=p-y;_=(z=(A=E-(w=(v=e*E)-(v-E)))*(O=I-(F=(v=e*I)-(v-I)))-((q=E*I)-w*F-A*F-w*O))-(P=z-(C=(A=H-(w=(v=e*H)-(v-H)))*(O=G-(F=(v=e*G)-(v-G)))-((B=H*G)-w*F-A*F-w*O))),c[0]=z-(P+_)+(_-C),_=(k=q-((g=q+P)-(_=g-q))+(P-_))-(P=k-B),c[1]=k-(P+_)+(_-B),_=(D=g+P)-g,c[2]=g-(D-_)+(P-_),c[3]=D;let J=function(t,e){let n=e[0];for(let r=1;r<t;r++)n+=e[r];return n}(4,c),K=i*h;if(J>=K||-J>=K)return J;if(M=t-(E+(_=t-E))+(_-b),j=f-(G+(_=f-G))+(_-b),x=o-(H+(_=o-H))+(_-y),m=p-(I+(_=p-I))+(_-y),0===M&&0===x&&0===j&&0===m)return J;if(K=u*h+n*Math.abs(J),(J+=E*m+I*M-(H*j+G*x))>=K||-J>=K)return J;_=(z=(A=M-(w=(v=e*M)-(v-M)))*(O=I-(F=(v=e*I)-(v-I)))-((q=M*I)-w*F-A*F-w*O))-(P=z-(C=(A=x-(w=(v=e*x)-(v-x)))*(O=G-(F=(v=e*G)-(v-G)))-((B=x*G)-w*F-A*F-w*O))),l[0]=z-(P+_)+(_-C),_=(k=q-((g=q+P)-(_=g-q))+(P-_))-(P=k-B),l[1]=k-(P+_)+(_-B),_=(D=g+P)-g,l[2]=g-(D-_)+(P-_),l[3]=D;const L=r(4,c,4,l,s);_=(z=(A=E-(w=(v=e*E)-(v-E)))*(O=m-(F=(v=e*m)-(v-m)))-((q=E*m)-w*F-A*F-w*O))-(P=z-(C=(A=H-(w=(v=e*H)-(v-H)))*(O=j-(F=(v=e*j)-(v-j)))-((B=H*j)-w*F-A*F-w*O))),l[0]=z-(P+_)+(_-C),_=(k=q-((g=q+P)-(_=g-q))+(P-_))-(P=k-B),l[1]=k-(P+_)+(_-B),_=(D=g+P)-g,l[2]=g-(D-_)+(P-_),l[3]=D;const N=r(L,s,4,l,a);_=(z=(A=M-(w=(v=e*M)-(v-M)))*(O=m-(F=(v=e*m)-(v-m)))-((q=M*m)-w*F-A*F-w*O))-(P=z-(C=(A=x-(w=(v=e*x)-(v-x)))*(O=j-(F=(v=e*j)-(v-j)))-((B=x*j)-w*F-A*F-w*O))),l[0]=z-(P+_)+(_-C),_=(k=q-((g=q+P)-(_=g-q))+(P-_))-(P=k-B),l[1]=k-(P+_)+(_-B),_=(D=g+P)-g,l[2]=g-(D-_)+(P-_),l[3]=D;const Q=r(N,a,4,l,d);return d[Q-1]}(t,o,p,b,y,h,m)},t.orient2dfast=function(t,e,n,r,o,f){return(e-f)*(n-o)-(t-o)*(r-f)},Object.defineProperty(t,\"__esModule\",{value:!0})});\n","'use strict';\n\nvar RBush = require('rbush');\nvar Queue = require('tinyqueue');\nvar pointInPolygon = require('point-in-polygon');\nvar orient = require('robust-predicates/umd/orient2d.min.js').orient2d;\n\n// Fix for require issue in webpack https://github.com/mapbox/concaveman/issues/18\nif (Queue.default) {\n    Queue = Queue.default;\n}\n\nmodule.exports = concaveman;\nmodule.exports.default = concaveman;\n\nfunction concaveman(points, concavity, lengthThreshold) {\n    // a relative measure of concavity; higher value means simpler hull\n    concavity = Math.max(0, concavity === undefined ? 2 : concavity);\n\n    // when a segment goes below this length threshold, it won't be drilled down further\n    lengthThreshold = lengthThreshold || 0;\n\n    // start with a convex hull of the points\n    var hull = fastConvexHull(points);\n\n    // index the points with an R-tree\n    var tree = new RBush(16);\n    tree.toBBox = function (a) {\n        return {\n            minX: a[0],\n            minY: a[1],\n            maxX: a[0],\n            maxY: a[1]\n        };\n    };\n    tree.compareMinX = function (a, b) { return a[0] - b[0]; };\n    tree.compareMinY = function (a, b) { return a[1] - b[1]; };\n\n    tree.load(points);\n\n    // turn the convex hull into a linked list and populate the initial edge queue with the nodes\n    var queue = [];\n    for (var i = 0, last; i < hull.length; i++) {\n        var p = hull[i];\n        tree.remove(p);\n        last = insertNode(p, last);\n        queue.push(last);\n    }\n\n    // index the segments with an R-tree (for intersection checks)\n    var segTree = new RBush(16);\n    for (i = 0; i < queue.length; i++) segTree.insert(updateBBox(queue[i]));\n\n    var sqConcavity = concavity * concavity;\n    var sqLenThreshold = lengthThreshold * lengthThreshold;\n\n    // process edges one by one\n    while (queue.length) {\n        var node = queue.shift();\n        var a = node.p;\n        var b = node.next.p;\n\n        // skip the edge if it's already short enough\n        var sqLen = getSqDist(a, b);\n        if (sqLen < sqLenThreshold) continue;\n\n        var maxSqLen = sqLen / sqConcavity;\n\n        // find the best connection point for the current edge to flex inward to\n        p = findCandidate(tree, node.prev.p, a, b, node.next.next.p, maxSqLen, segTree);\n\n        // if we found a connection and it satisfies our concavity measure\n        if (p && Math.min(getSqDist(p, a), getSqDist(p, b)) <= maxSqLen) {\n            // connect the edge endpoints through this point and add 2 new edges to the queue\n            queue.push(node);\n            queue.push(insertNode(p, node));\n\n            // update point and segment indexes\n            tree.remove(p);\n            segTree.remove(node);\n            segTree.insert(updateBBox(node));\n            segTree.insert(updateBBox(node.next));\n        }\n    }\n\n    // convert the resulting hull linked list to an array of points\n    node = last;\n    var concave = [];\n    do {\n        concave.push(node.p);\n        node = node.next;\n    } while (node !== last);\n\n    concave.push(node.p);\n\n    return concave;\n}\n\nfunction findCandidate(tree, a, b, c, d, maxDist, segTree) {\n    var queue = new Queue([], compareDist);\n    var node = tree.data;\n\n    // search through the point R-tree with a depth-first search using a priority queue\n    // in the order of distance to the edge (b, c)\n    while (node) {\n        for (var i = 0; i < node.children.length; i++) {\n            var child = node.children[i];\n\n            var dist = node.leaf ? sqSegDist(child, b, c) : sqSegBoxDist(b, c, child);\n            if (dist > maxDist) continue; // skip the node if it's farther than we ever need\n\n            queue.push({\n                node: child,\n                dist: dist\n            });\n        }\n\n        while (queue.length && !queue.peek().node.children) {\n            var item = queue.pop();\n            var p = item.node;\n\n            // skip all points that are as close to adjacent edges (a,b) and (c,d),\n            // and points that would introduce self-intersections when connected\n            var d0 = sqSegDist(p, a, b);\n            var d1 = sqSegDist(p, c, d);\n            if (item.dist < d0 && item.dist < d1 &&\n                noIntersections(b, p, segTree) &&\n                noIntersections(c, p, segTree)) return p;\n        }\n\n        node = queue.pop();\n        if (node) node = node.node;\n    }\n\n    return null;\n}\n\nfunction compareDist(a, b) {\n    return a.dist - b.dist;\n}\n\n// square distance from a segment bounding box to the given one\nfunction sqSegBoxDist(a, b, bbox) {\n    if (inside(a, bbox) || inside(b, bbox)) return 0;\n    var d1 = sqSegSegDist(a[0], a[1], b[0], b[1], bbox.minX, bbox.minY, bbox.maxX, bbox.minY);\n    if (d1 === 0) return 0;\n    var d2 = sqSegSegDist(a[0], a[1], b[0], b[1], bbox.minX, bbox.minY, bbox.minX, bbox.maxY);\n    if (d2 === 0) return 0;\n    var d3 = sqSegSegDist(a[0], a[1], b[0], b[1], bbox.maxX, bbox.minY, bbox.maxX, bbox.maxY);\n    if (d3 === 0) return 0;\n    var d4 = sqSegSegDist(a[0], a[1], b[0], b[1], bbox.minX, bbox.maxY, bbox.maxX, bbox.maxY);\n    if (d4 === 0) return 0;\n    return Math.min(d1, d2, d3, d4);\n}\n\nfunction inside(a, bbox) {\n    return a[0] >= bbox.minX &&\n           a[0] <= bbox.maxX &&\n           a[1] >= bbox.minY &&\n           a[1] <= bbox.maxY;\n}\n\n// check if the edge (a,b) doesn't intersect any other edges\nfunction noIntersections(a, b, segTree) {\n    var minX = Math.min(a[0], b[0]);\n    var minY = Math.min(a[1], b[1]);\n    var maxX = Math.max(a[0], b[0]);\n    var maxY = Math.max(a[1], b[1]);\n\n    var edges = segTree.search({minX: minX, minY: minY, maxX: maxX, maxY: maxY});\n    for (var i = 0; i < edges.length; i++) {\n        if (intersects(edges[i].p, edges[i].next.p, a, b)) return false;\n    }\n    return true;\n}\n\nfunction cross(p1, p2, p3) {\n    return orient(p1[0], p1[1], p2[0], p2[1], p3[0], p3[1]);\n}\n\n// check if the edges (p1,q1) and (p2,q2) intersect\nfunction intersects(p1, q1, p2, q2) {\n    return p1 !== q2 && q1 !== p2 &&\n        cross(p1, q1, p2) > 0 !== cross(p1, q1, q2) > 0 &&\n        cross(p2, q2, p1) > 0 !== cross(p2, q2, q1) > 0;\n}\n\n// update the bounding box of a node's edge\nfunction updateBBox(node) {\n    var p1 = node.p;\n    var p2 = node.next.p;\n    node.minX = Math.min(p1[0], p2[0]);\n    node.minY = Math.min(p1[1], p2[1]);\n    node.maxX = Math.max(p1[0], p2[0]);\n    node.maxY = Math.max(p1[1], p2[1]);\n    return node;\n}\n\n// speed up convex hull by filtering out points inside quadrilateral formed by 4 extreme points\nfunction fastConvexHull(points) {\n    var left = points[0];\n    var top = points[0];\n    var right = points[0];\n    var bottom = points[0];\n\n    // find the leftmost, rightmost, topmost and bottommost points\n    for (var i = 0; i < points.length; i++) {\n        var p = points[i];\n        if (p[0] < left[0]) left = p;\n        if (p[0] > right[0]) right = p;\n        if (p[1] < top[1]) top = p;\n        if (p[1] > bottom[1]) bottom = p;\n    }\n\n    // filter out points that are inside the resulting quadrilateral\n    var cull = [left, top, right, bottom];\n    var filtered = cull.slice();\n    for (i = 0; i < points.length; i++) {\n        if (!pointInPolygon(points[i], cull)) filtered.push(points[i]);\n    }\n\n    // get convex hull around the filtered points\n    return convexHull(filtered);\n}\n\n// create a new node in a doubly linked list\nfunction insertNode(p, prev) {\n    var node = {\n        p: p,\n        prev: null,\n        next: null,\n        minX: 0,\n        minY: 0,\n        maxX: 0,\n        maxY: 0\n    };\n\n    if (!prev) {\n        node.prev = node;\n        node.next = node;\n\n    } else {\n        node.next = prev.next;\n        node.prev = prev;\n        prev.next.prev = node;\n        prev.next = node;\n    }\n    return node;\n}\n\n// square distance between 2 points\nfunction getSqDist(p1, p2) {\n\n    var dx = p1[0] - p2[0],\n        dy = p1[1] - p2[1];\n\n    return dx * dx + dy * dy;\n}\n\n// square distance from a point to a segment\nfunction sqSegDist(p, p1, p2) {\n\n    var x = p1[0],\n        y = p1[1],\n        dx = p2[0] - x,\n        dy = p2[1] - y;\n\n    if (dx !== 0 || dy !== 0) {\n\n        var t = ((p[0] - x) * dx + (p[1] - y) * dy) / (dx * dx + dy * dy);\n\n        if (t > 1) {\n            x = p2[0];\n            y = p2[1];\n\n        } else if (t > 0) {\n            x += dx * t;\n            y += dy * t;\n        }\n    }\n\n    dx = p[0] - x;\n    dy = p[1] - y;\n\n    return dx * dx + dy * dy;\n}\n\n// segment to segment distance, ported from http://geomalgorithms.com/a07-_distance.html by Dan Sunday\nfunction sqSegSegDist(x0, y0, x1, y1, x2, y2, x3, y3) {\n    var ux = x1 - x0;\n    var uy = y1 - y0;\n    var vx = x3 - x2;\n    var vy = y3 - y2;\n    var wx = x0 - x2;\n    var wy = y0 - y2;\n    var a = ux * ux + uy * uy;\n    var b = ux * vx + uy * vy;\n    var c = vx * vx + vy * vy;\n    var d = ux * wx + uy * wy;\n    var e = vx * wx + vy * wy;\n    var D = a * c - b * b;\n\n    var sc, sN, tc, tN;\n    var sD = D;\n    var tD = D;\n\n    if (D === 0) {\n        sN = 0;\n        sD = 1;\n        tN = e;\n        tD = c;\n    } else {\n        sN = b * e - c * d;\n        tN = a * e - b * d;\n        if (sN < 0) {\n            sN = 0;\n            tN = e;\n            tD = c;\n        } else if (sN > sD) {\n            sN = sD;\n            tN = e + b;\n            tD = c;\n        }\n    }\n\n    if (tN < 0.0) {\n        tN = 0.0;\n        if (-d < 0.0) sN = 0.0;\n        else if (-d > a) sN = sD;\n        else {\n            sN = -d;\n            sD = a;\n        }\n    } else if (tN > tD) {\n        tN = tD;\n        if ((-d + b) < 0.0) sN = 0;\n        else if (-d + b > a) sN = sD;\n        else {\n            sN = -d + b;\n            sD = a;\n        }\n    }\n\n    sc = sN === 0 ? 0 : sN / sD;\n    tc = tN === 0 ? 0 : tN / tD;\n\n    var cx = (1 - sc) * x0 + sc * x1;\n    var cy = (1 - sc) * y0 + sc * y1;\n    var cx2 = (1 - tc) * x2 + tc * x3;\n    var cy2 = (1 - tc) * y2 + tc * y3;\n    var dx = cx2 - cx;\n    var dy = cy2 - cy;\n\n    return dx * dx + dy * dy;\n}\n\nfunction compareByX(a, b) {\n    return a[0] === b[0] ? a[1] - b[1] : a[0] - b[0];\n}\n\nfunction convexHull(points) {\n    points.sort(compareByX);\n\n    var lower = [];\n    for (var i = 0; i < points.length; i++) {\n        while (lower.length >= 2 && cross(lower[lower.length - 2], lower[lower.length - 1], points[i]) <= 0) {\n            lower.pop();\n        }\n        lower.push(points[i]);\n    }\n\n    var upper = [];\n    for (var ii = points.length - 1; ii >= 0; ii--) {\n        while (upper.length >= 2 && cross(upper[upper.length - 2], upper[upper.length - 1], points[ii]) <= 0) {\n            upper.pop();\n        }\n        upper.push(points[ii]);\n    }\n\n    upper.pop();\n    lower.pop();\n    return lower.concat(upper);\n}\n","// index.ts\nimport { polygon } from \"@turf/helpers\";\nimport { coordEach } from \"@turf/meta\";\nimport concaveman from \"concaveman\";\nfunction convex(geojson, options = {}) {\n  options.concavity = options.concavity || Infinity;\n  const points = [];\n  coordEach(geojson, (coord) => {\n    points.push([coord[0], coord[1]]);\n  });\n  if (!points.length) {\n    return null;\n  }\n  const convexHull = concaveman(points, options.concavity);\n  if (convexHull.length > 3) {\n    return polygon([convexHull]);\n  }\n  return null;\n}\nvar index_default = convex;\nexport {\n  convex,\n  index_default as default\n};\n//# sourceMappingURL=index.js.map","// index.ts\nimport { point } from \"@turf/helpers\";\nimport { coordEach } from \"@turf/meta\";\nfunction centroid(geojson, options = {}) {\n  let xSum = 0;\n  let ySum = 0;\n  let len = 0;\n  coordEach(\n    geojson,\n    function(coord) {\n      xSum += coord[0];\n      ySum += coord[1];\n      len++;\n    },\n    true\n  );\n  return point([xSum / len, ySum / len], options.properties);\n}\nvar index_default = centroid;\nexport {\n  centroid,\n  index_default as default\n};\n//# sourceMappingURL=index.js.map","// index.ts\nimport { isNumber } from \"@turf/helpers\";\nfunction getCoord(coord) {\n  if (!coord) {\n    throw new Error(\"coord is required\");\n  }\n  if (!Array.isArray(coord)) {\n    if (coord.type === \"Feature\" && coord.geometry !== null && coord.geometry.type === \"Point\") {\n      return [...coord.geometry.coordinates];\n    }\n    if (coord.type === \"Point\") {\n      return [...coord.coordinates];\n    }\n  }\n  if (Array.isArray(coord) && coord.length >= 2 && !Array.isArray(coord[0]) && !Array.isArray(coord[1])) {\n    return [...coord];\n  }\n  throw new Error(\"coord must be GeoJSON Point or an Array of numbers\");\n}\nfunction getCoords(coords) {\n  if (Array.isArray(coords)) {\n    return coords;\n  }\n  if (coords.type === \"Feature\") {\n    if (coords.geometry !== null) {\n      return coords.geometry.coordinates;\n    }\n  } else {\n    if (coords.coordinates) {\n      return coords.coordinates;\n    }\n  }\n  throw new Error(\n    \"coords must be GeoJSON Feature, Geometry Object or an Array\"\n  );\n}\nfunction containsNumber(coordinates) {\n  if (coordinates.length > 1 && isNumber(coordinates[0]) && isNumber(coordinates[1])) {\n    return true;\n  }\n  if (Array.isArray(coordinates[0]) && coordinates[0].length) {\n    return containsNumber(coordinates[0]);\n  }\n  throw new Error(\"coordinates must only contain numbers\");\n}\nfunction geojsonType(value, type, name) {\n  if (!type || !name) {\n    throw new Error(\"type and name required\");\n  }\n  if (!value || value.type !== type) {\n    throw new Error(\n      \"Invalid input to \" + name + \": must be a \" + type + \", given \" + value.type\n    );\n  }\n}\nfunction featureOf(feature, type, name) {\n  if (!feature) {\n    throw new Error(\"No feature passed\");\n  }\n  if (!name) {\n    throw new Error(\".featureOf() requires a name\");\n  }\n  if (!feature || feature.type !== \"Feature\" || !feature.geometry) {\n    throw new Error(\n      \"Invalid input to \" + name + \", Feature with geometry required\"\n    );\n  }\n  if (!feature.geometry || feature.geometry.type !== type) {\n    throw new Error(\n      \"Invalid input to \" + name + \": must be a \" + type + \", given \" + feature.geometry.type\n    );\n  }\n}\nfunction collectionOf(featureCollection, type, name) {\n  if (!featureCollection) {\n    throw new Error(\"No featureCollection passed\");\n  }\n  if (!name) {\n    throw new Error(\".collectionOf() requires a name\");\n  }\n  if (!featureCollection || featureCollection.type !== \"FeatureCollection\") {\n    throw new Error(\n      \"Invalid input to \" + name + \", FeatureCollection required\"\n    );\n  }\n  for (const feature of featureCollection.features) {\n    if (!feature || feature.type !== \"Feature\" || !feature.geometry) {\n      throw new Error(\n        \"Invalid input to \" + name + \", Feature with geometry required\"\n      );\n    }\n    if (!feature.geometry || feature.geometry.type !== type) {\n      throw new Error(\n        \"Invalid input to \" + name + \": must be a \" + type + \", given \" + feature.geometry.type\n      );\n    }\n  }\n}\nfunction getGeom(geojson) {\n  if (geojson.type === \"Feature\") {\n    return geojson.geometry;\n  }\n  return geojson;\n}\nfunction getType(geojson, _name) {\n  if (geojson.type === \"FeatureCollection\") {\n    return \"FeatureCollection\";\n  }\n  if (geojson.type === \"GeometryCollection\") {\n    return \"GeometryCollection\";\n  }\n  if (geojson.type === \"Feature\" && geojson.geometry !== null) {\n    return geojson.geometry.type;\n  }\n  return geojson.type;\n}\nexport {\n  collectionOf,\n  containsNumber,\n  featureOf,\n  geojsonType,\n  getCoord,\n  getCoords,\n  getGeom,\n  getType\n};\n//# sourceMappingURL=index.js.map","// index.ts\nimport { convex } from \"@turf/convex\";\nimport { centroid } from \"@turf/centroid\";\nimport { point } from \"@turf/helpers\";\nimport { getType, getCoord } from \"@turf/invariant\";\nimport { coordEach } from \"@turf/meta\";\nfunction centerOfMass(geojson, options = {}) {\n  switch (getType(geojson)) {\n    case \"Point\":\n      return point(getCoord(geojson), options.properties);\n    case \"Polygon\":\n      var coords = [];\n      coordEach(geojson, function(coord) {\n        coords.push(coord);\n      });\n      var centre = centroid(geojson, { properties: options.properties });\n      var translation = centre.geometry.coordinates;\n      var sx = 0;\n      var sy = 0;\n      var sArea = 0;\n      var i, pi, pj, xi, xj, yi, yj, a;\n      var neutralizedPoints = coords.map(function(point2) {\n        return [point2[0] - translation[0], point2[1] - translation[1]];\n      });\n      for (i = 0; i < coords.length - 1; i++) {\n        pi = neutralizedPoints[i];\n        xi = pi[0];\n        yi = pi[1];\n        pj = neutralizedPoints[i + 1];\n        xj = pj[0];\n        yj = pj[1];\n        a = xi * yj - xj * yi;\n        sArea += a;\n        sx += (xi + xj) * a;\n        sy += (yi + yj) * a;\n      }\n      if (sArea === 0) {\n        return centre;\n      } else {\n        var area = sArea * 0.5;\n        var areaFactor = 1 / (6 * area);\n        return point(\n          [translation[0] + areaFactor * sx, translation[1] + areaFactor * sy],\n          options.properties\n        );\n      }\n    default:\n      var hull = convex(geojson);\n      if (hull) return centerOfMass(hull, { properties: options.properties });\n      else return centroid(geojson, { properties: options.properties });\n  }\n}\nvar index_default = centerOfMass;\nexport {\n  centerOfMass,\n  index_default as default\n};\n//# sourceMappingURL=index.js.map","import area from '@turf/area';\r\nimport centerOfMass from '@turf/center-of-mass';\r\nimport type { Feature, GeoJsonProperties, MultiPolygon, Polygon } from 'geojson';\r\n\r\nexport function getCentroidCoordinates(\r\n  multiPolygonFeature: Feature<Polygon | MultiPolygon, GeoJsonProperties>,\r\n  centerLargestPolygon = true,\r\n) {\r\n  if (multiPolygonFeature.geometry.type === 'Polygon' || centerLargestPolygon === false) {\r\n    return centerOfMass(multiPolygonFeature).geometry.coordinates;\r\n  }\r\n\r\n  if (multiPolygonFeature.geometry.type === 'MultiPolygon') {\r\n    let maxArea = 0;\r\n    let largestPolygon: Feature<Polygon, GeoJsonProperties> | null = null;\r\n\r\n    for (const coords of multiPolygonFeature.geometry.coordinates) {\r\n      const poly: Feature<Polygon, GeoJsonProperties> = {\r\n        type: 'Feature',\r\n        geometry: {\r\n          type: 'Polygon',\r\n          coordinates: coords,\r\n        },\r\n        properties: {},\r\n      };\r\n\r\n      const polyArea = area(poly);\r\n      if (polyArea > maxArea) {\r\n        maxArea = polyArea;\r\n        largestPolygon = poly;\r\n      }\r\n    }\r\n\r\n    return centerOfMass(largestPolygon).geometry.coordinates;\r\n  }\r\n\r\n  throw new Error('Unsupported geometry type');\r\n}\r\n","export const padNumberArray = (arr: number[], noOfSteps: number) => {\r\n  const arrTemp = [...arr];\r\n  while (arrTemp.length < noOfSteps) {\r\n    arrTemp.push(arrTemp[arrTemp.length - 1]);\r\n  }\r\n  return arrTemp;\r\n};\r\n\r\nexport const padStringArray = (arr: string[], noOfSteps: number) => {\r\n  const arrTemp = [...arr];\r\n  while (arrTemp.length < noOfSteps) {\r\n    arrTemp.push(arrTemp[arrTemp.length - 1]);\r\n  }\r\n  return arrTemp;\r\n};\r\n","import { format } from 'd3-format';\r\nimport * as ss from 'simple-statistics';\r\n\r\nimport { padNumberArray } from './padArray';\r\n\r\n/**\r\n * Returns a set of class break values based on Jenks natural breaks algorithm.\r\n *\r\n * If the dataset has fewer unique values than the number of steps,\r\n * it pads the array and slices out the first and last to get bins.\r\n *\r\n * @param data - Array of numeric values to classify.\r\n * @param noOfSteps - Number of classification steps (breaks).\r\n *\r\n * @returns An array of bin break values between min and max (excluding them).\r\n *\r\n * @example\r\n * getJenks([1, 2, 3, 10, 20, 30], 3); // e.g., [3, 10]\r\n */\r\n\r\nexport function getJenks(data: (number | null | undefined)[], noOfSteps: number) {\r\n  const d1 = data.filter((d) => d != null && d !== undefined).sort((a, b) => a - b);\r\n  const bins =\r\n    [...new Set(d1)].length < noOfSteps\r\n      ? padNumberArray(d1, noOfSteps).slice(1, -1)\r\n      : ss.jenks(d1, noOfSteps).slice(1, -1);\r\n  const valueArray = bins.map((d) => {\r\n    const formattedValue = parseFloat(format('.2r')(d));\r\n    if (Number.isNaN(formattedValue)) {\r\n      if (d < -1) return Math.round(d);\r\n      return d;\r\n    }\r\n    if (d !== 0 && Math.abs(d) < 1) {\r\n      return formattedValue;\r\n    } else {\r\n      return Math.round(formattedValue);\r\n    }\r\n  });\r\n  return [...new Set(valueArray)];\r\n}\r\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13],"mappings":"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"}