@undp/data-viz 1.5.4 → 1.5.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (72) hide show
  1. package/dist/BarGraph.cjs +1 -1
  2. package/dist/BarGraph.js +1 -1
  3. package/dist/BiVariateChoroplethMap.cjs +1 -1
  4. package/dist/BiVariateChoroplethMap.js +2 -2
  5. package/dist/BulletChart.cjs +1 -1
  6. package/dist/BulletChart.js +1 -1
  7. package/dist/ButterflyChart.cjs +1 -1
  8. package/dist/ButterflyChart.js +1 -1
  9. package/dist/ChoroplethMap.cjs +1 -1
  10. package/dist/ChoroplethMap.cjs.map +1 -1
  11. package/dist/ChoroplethMap.d.ts +0 -2
  12. package/dist/ChoroplethMap.js +2 -2
  13. package/dist/ChoroplethMap.js.map +1 -1
  14. package/dist/DotDensityMap.cjs +1 -1
  15. package/dist/DotDensityMap.js +2 -2
  16. package/dist/DumbbellChart.cjs +1 -1
  17. package/dist/DumbbellChart.js +1 -1
  18. package/dist/GraphEl-C6yjl1VM.cjs +2 -0
  19. package/dist/GraphEl-C6yjl1VM.cjs.map +1 -0
  20. package/dist/{GraphEl-CMWeARJ3.js → GraphEl-CqWzvOyr.js} +1 -2
  21. package/dist/GraphEl-CqWzvOyr.js.map +1 -0
  22. package/dist/GriddedGraphs.cjs +1 -1
  23. package/dist/GriddedGraphs.d.ts +1 -1
  24. package/dist/GriddedGraphs.js +1 -1
  25. package/dist/GriddedGraphsFromConfig.d.ts +1 -1
  26. package/dist/HeatMap.cjs +1 -1
  27. package/dist/HeatMap.js +1 -1
  28. package/dist/MultiGraphDashboard.d.ts +1 -1
  29. package/dist/MultiGraphDashboardFromConfig.d.ts +1 -1
  30. package/dist/PerformanceIntensiveMultiGraphDashboard.d.ts +1 -1
  31. package/dist/PerformanceIntensiveMultiGraphDashboardFromConfig.d.ts +1 -1
  32. package/dist/PerformanceIntensiveScrollStory.d.ts +1 -1
  33. package/dist/ScrollStory.d.ts +1 -1
  34. package/dist/SingleGraphDashboard.cjs +1 -1
  35. package/dist/SingleGraphDashboard.d.ts +1 -1
  36. package/dist/SingleGraphDashboard.js +1 -1
  37. package/dist/SingleGraphDashboardFromConfig.d.ts +1 -1
  38. package/dist/SingleGraphDashboardGeoHubMaps.d.ts +1 -1
  39. package/dist/SingleGraphDashboardGeoHubMapsFromConfig.d.ts +1 -1
  40. package/dist/SingleGraphDashboardThreeDGraphs.cjs +1 -1
  41. package/dist/SingleGraphDashboardThreeDGraphs.cjs.map +1 -1
  42. package/dist/SingleGraphDashboardThreeDGraphs.d.ts +1 -1
  43. package/dist/SingleGraphDashboardThreeDGraphs.js +2 -2
  44. package/dist/SingleGraphDashboardThreeDGraphs.js.map +1 -1
  45. package/dist/SingleGraphDashboardThreeDGraphsFromConfig.d.ts +1 -1
  46. package/dist/ThreeDGlobe.cjs +1 -1
  47. package/dist/ThreeDGlobe.cjs.map +1 -1
  48. package/dist/ThreeDGlobe.d.ts +2 -2
  49. package/dist/ThreeDGlobe.js +394 -333
  50. package/dist/ThreeDGlobe.js.map +1 -1
  51. package/dist/Types.d.ts +1 -1
  52. package/dist/{YAxesLabels-DSm6I5zG.js → YAxesLabels-DECkMgq8.js} +9 -8
  53. package/dist/YAxesLabels-DECkMgq8.js.map +1 -0
  54. package/dist/{YAxesLabels-CctDydGR.cjs → YAxesLabels-yRFFdx1s.cjs} +2 -2
  55. package/dist/YAxesLabels-yRFFdx1s.cjs.map +1 -0
  56. package/dist/index-9tDEUqOZ.js +752 -0
  57. package/dist/{index-qfWCwobm.js.map → index-9tDEUqOZ.js.map} +1 -1
  58. package/dist/index-CoZbeNM9.cjs +2 -0
  59. package/dist/{index-D05lK1Te.cjs.map → index-CoZbeNM9.cjs.map} +1 -1
  60. package/dist/index.d.ts +3 -5
  61. package/dist/{zoom-Bsbhil-K.cjs → zoom-BiMNsz72.cjs} +2 -2
  62. package/dist/{zoom-Bsbhil-K.cjs.map → zoom-BiMNsz72.cjs.map} +1 -1
  63. package/dist/{zoom-DAu91HKr.js → zoom-QipiAl5W.js} +2 -2
  64. package/dist/{zoom-DAu91HKr.js.map → zoom-QipiAl5W.js.map} +1 -1
  65. package/package.json +2 -1
  66. package/dist/GraphEl-BcYgMnN2.cjs +0 -2
  67. package/dist/GraphEl-BcYgMnN2.cjs.map +0 -1
  68. package/dist/GraphEl-CMWeARJ3.js.map +0 -1
  69. package/dist/YAxesLabels-CctDydGR.cjs.map +0 -1
  70. package/dist/YAxesLabels-DSm6I5zG.js.map +0 -1
  71. package/dist/index-D05lK1Te.cjs +0 -2
  72. package/dist/index-qfWCwobm.js +0 -682
@@ -1 +1 @@
1
- {"version":3,"file":"index-qfWCwobm.js","sources":["../node_modules/@turf/helpers/dist/esm/index.js","../node_modules/@turf/meta/dist/esm/index.js","../node_modules/rbush/rbush.min.js","../node_modules/concaveman/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/concaveman/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"],"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.js\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 ? geojson.features[featureIndex].geometry : isFeature ? geojson.geometry : 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 (callback(\n coords,\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) === false)\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 (callback(\n coords[j],\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) === false)\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 (callback(\n coords[j][k],\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) === false)\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 (callback(\n coords[j][k][l],\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) === false)\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 (coordEach(geometry.geometries[j], callback, excludeWrapCoord) === false)\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 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 ? geojson.features[i].geometry : isFeature ? geojson.geometry : geojson;\n featureProperties = isFeatureCollection ? geojson.features[i].properties : isFeature ? geojson.properties : {};\n featureBBox = isFeatureCollection ? geojson.features[i].bbox : isFeature ? geojson.bbox : void 0;\n featureId = isFeatureCollection ? geojson.features[i].id : isFeature ? geojson.id : 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 (callback(\n null,\n featureIndex,\n featureProperties,\n featureBBox,\n featureId\n ) === false)\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 (callback(\n geometry,\n featureIndex,\n featureProperties,\n featureBBox,\n featureId\n ) === false)\n return false;\n break;\n }\n case \"GeometryCollection\": {\n for (j = 0; j < geometry.geometries.length; j++) {\n if (callback(\n geometry.geometries[j],\n featureIndex,\n featureProperties,\n featureBBox,\n featureId\n ) === false)\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 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 (callback(\n feature(geometry, properties, { bbox, id }),\n featureIndex,\n 0\n ) === false)\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 (var multiFeatureIndex = 0; multiFeatureIndex < geometry.coordinates.length; multiFeatureIndex++) {\n var coordinate = geometry.coordinates[multiFeatureIndex];\n var geom = {\n type: geomType,\n coordinates: coordinate\n };\n if (callback(feature(geom, properties), featureIndex, multiFeatureIndex) === false)\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 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 (coordEach(\n feature2,\n function(currentCoord, coordIndex, featureIndexCoord, multiPartIndexCoord, geometryIndex) {\n if (previousCoords === void 0 || featureIndex > previousFeatureIndex || multiPartIndexCoord > previousMultiIndex || geometryIndex > prevGeomIndex) {\n previousCoords = currentCoord;\n previousFeatureIndex = featureIndex;\n previousMultiIndex = multiPartIndexCoord;\n prevGeomIndex = geometryIndex;\n segmentIndex = 0;\n return;\n }\n var currentSegment = lineString(\n [previousCoords, currentCoord],\n feature2.properties\n );\n if (callback(\n currentSegment,\n featureIndex,\n multiFeatureIndex,\n geometryIndex,\n segmentIndex\n ) === false)\n return false;\n segmentIndex++;\n previousCoords = currentCoord;\n }\n ) === false)\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 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 (callback(\n lineString(coords[geometryIndex], feature2.properties),\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) === false)\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 [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 coords[geometryIndex][segmentIndex],\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 coords[multiFeatureIndex][segmentIndex],\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 = coords[multiFeatureIndex][geometryIndex].length - segmentIndex - 1;\n return lineString(\n [\n coords[multiFeatureIndex][geometryIndex][segmentIndex],\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","!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 turf_convex_default = convex;\nexport {\n convex,\n turf_convex_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 turf_centroid_default = centroid;\nexport {\n centroid,\n turf_centroid_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 turf_center_of_mass_default = centerOfMass;\nexport {\n centerOfMass,\n turf_center_of_mass_default as default\n};\n//# sourceMappingURL=index.js.map"],"names":["feature","geom","properties","options","feat","point","coordinates","isNumber","polygon","ring","j","num","coordEach","geojson","callback","excludeWrapCoord","k","l","geometry","stopG","coords","geometryMaybeCollection","wrapShrink","coordIndex","isGeometryCollection","type","isFeatureCollection","isFeature","stop","featureIndex","geomIndex","multiFeatureIndex","geometryIndex","geomType","t","i","module","this","r","e","a","h","n","o","s","f","u","m","c","p","d","x","v","M","TinyQueue","data","compare","defaultCompare","item","top","bottom","pos","parent","current","halfLength","left","best","right","b","flat","vs","start","end","y","inside","len","xi","yi","xj","yj","intersect","nested","pointInPolygonFlat","require$$0","pointInPolygonNested","require$$1","pointInPolygonModule","exports","_","w","A","F","O","P","g","q","z","B","C","D","E","G","H","I","J","K","L","N","Q","RBush","Queue","pointInPolygon","require$$2","orient","require$$3","concavemanModule","concaveman","points","concavity","lengthThreshold","hull","fastConvexHull","tree","queue","last","insertNode","segTree","updateBBox","sqConcavity","sqLenThreshold","node","sqLen","getSqDist","maxSqLen","findCandidate","concave","maxDist","compareDist","child","dist","sqSegDist","sqSegBoxDist","d0","d1","noIntersections","bbox","sqSegSegDist","d2","d3","d4","minX","minY","maxX","maxY","edges","intersects","cross","p1","p2","p3","q1","q2","cull","filtered","convexHull","prev","dx","dy","x0","y0","x1","y1","x2","y2","x3","y3","ux","uy","vx","vy","wx","wy","sc","sN","tc","tN","sD","tD","cx","cy","cx2","cy2","compareByX","lower","upper","ii","convex","coord","centroid","xSum","ySum","getCoord","getType","_name","centerOfMass","centre","translation","sx","sy","sArea","pi","pj","neutralizedPoints","point2","area","areaFactor","turf_center_of_mass_default"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12]}
1
+ {"version":3,"file":"index-9tDEUqOZ.js","sources":["../node_modules/@turf/helpers/dist/esm/index.js","../node_modules/@turf/meta/dist/esm/index.js","../node_modules/rbush/rbush.min.js","../node_modules/concaveman/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/concaveman/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"],"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.js\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 ? geojson.features[featureIndex].geometry : isFeature ? geojson.geometry : 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 (callback(\n coords,\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) === false)\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 (callback(\n coords[j],\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) === false)\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 (callback(\n coords[j][k],\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) === false)\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 (callback(\n coords[j][k][l],\n coordIndex,\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) === false)\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 (coordEach(geometry.geometries[j], callback, excludeWrapCoord) === false)\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 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 ? geojson.features[i].geometry : isFeature ? geojson.geometry : geojson;\n featureProperties = isFeatureCollection ? geojson.features[i].properties : isFeature ? geojson.properties : {};\n featureBBox = isFeatureCollection ? geojson.features[i].bbox : isFeature ? geojson.bbox : void 0;\n featureId = isFeatureCollection ? geojson.features[i].id : isFeature ? geojson.id : 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 (callback(\n null,\n featureIndex,\n featureProperties,\n featureBBox,\n featureId\n ) === false)\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 (callback(\n geometry,\n featureIndex,\n featureProperties,\n featureBBox,\n featureId\n ) === false)\n return false;\n break;\n }\n case \"GeometryCollection\": {\n for (j = 0; j < geometry.geometries.length; j++) {\n if (callback(\n geometry.geometries[j],\n featureIndex,\n featureProperties,\n featureBBox,\n featureId\n ) === false)\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 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 (callback(\n feature(geometry, properties, { bbox, id }),\n featureIndex,\n 0\n ) === false)\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 (var multiFeatureIndex = 0; multiFeatureIndex < geometry.coordinates.length; multiFeatureIndex++) {\n var coordinate = geometry.coordinates[multiFeatureIndex];\n var geom = {\n type: geomType,\n coordinates: coordinate\n };\n if (callback(feature(geom, properties), featureIndex, multiFeatureIndex) === false)\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 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 (coordEach(\n feature2,\n function(currentCoord, coordIndex, featureIndexCoord, multiPartIndexCoord, geometryIndex) {\n if (previousCoords === void 0 || featureIndex > previousFeatureIndex || multiPartIndexCoord > previousMultiIndex || geometryIndex > prevGeomIndex) {\n previousCoords = currentCoord;\n previousFeatureIndex = featureIndex;\n previousMultiIndex = multiPartIndexCoord;\n prevGeomIndex = geometryIndex;\n segmentIndex = 0;\n return;\n }\n var currentSegment = lineString(\n [previousCoords, currentCoord],\n feature2.properties\n );\n if (callback(\n currentSegment,\n featureIndex,\n multiFeatureIndex,\n geometryIndex,\n segmentIndex\n ) === false)\n return false;\n segmentIndex++;\n previousCoords = currentCoord;\n }\n ) === false)\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 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 (callback(\n lineString(coords[geometryIndex], feature2.properties),\n featureIndex,\n multiFeatureIndex,\n geometryIndex\n ) === false)\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 [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 coords[geometryIndex][segmentIndex],\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 coords[multiFeatureIndex][segmentIndex],\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 = coords[multiFeatureIndex][geometryIndex].length - segmentIndex - 1;\n return lineString(\n [\n coords[multiFeatureIndex][geometryIndex][segmentIndex],\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","!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 turf_convex_default = convex;\nexport {\n convex,\n turf_convex_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 turf_centroid_default = centroid;\nexport {\n centroid,\n turf_centroid_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 turf_center_of_mass_default = centerOfMass;\nexport {\n centerOfMass,\n turf_center_of_mass_default as default\n};\n//# sourceMappingURL=index.js.map"],"names":["earthRadius","feature","geom","properties","options","feat","point","coordinates","isNumber","polygon","ring","j","num","coordEach","geojson","callback","excludeWrapCoord","k","l","geometry","stopG","coords","geometryMaybeCollection","wrapShrink","coordIndex","isGeometryCollection","type","isFeatureCollection","isFeature","stop","featureIndex","geomIndex","multiFeatureIndex","geometryIndex","geomType","geomEach","i","featureProperties","featureBBox","featureId","geomReduce","initialValue","previousValue","currentGeometry","t","module","this","r","e","a","h","n","o","s","f","u","m","c","d","p","x","v","M","TinyQueue","data","compare","defaultCompare","item","top","bottom","pos","parent","current","halfLength","left","best","right","b","flat","vs","start","end","y","inside","len","xi","yi","xj","yj","intersect","nested","pointInPolygonFlat","require$$0","pointInPolygonNested","require$$1","pointInPolygonModule","exports","_","w","A","F","O","g","q","z","B","C","D","E","G","H","I","J","K","L","N","Q","RBush","Queue","pointInPolygon","require$$2","orient","require$$3","concavemanModule","concaveman","points","concavity","lengthThreshold","hull","fastConvexHull","tree","queue","last","insertNode","segTree","updateBBox","sqConcavity","sqLenThreshold","node","sqLen","getSqDist","maxSqLen","findCandidate","concave","maxDist","compareDist","child","dist","sqSegDist","sqSegBoxDist","d0","d1","noIntersections","bbox","sqSegSegDist","d2","d3","d4","minX","minY","maxX","maxY","edges","intersects","cross","p1","p2","p3","q1","q2","cull","filtered","convexHull","prev","dx","dy","x0","y0","x1","y1","x2","y2","x3","y3","ux","uy","vx","vy","wx","wy","sc","sN","tc","tN","sD","tD","cx","cy","cx2","cy2","compareByX","lower","upper","ii","convex","coord","centroid","xSum","ySum","getCoord","getType","_name","centerOfMass","centre","translation","sx","sy","sArea","pi","pj","neutralizedPoints","point2","area","areaFactor","turf_center_of_mass_default"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12]}
@@ -0,0 +1,2 @@
1
+ "use strict";const _r=require("./_commonjsHelpers-BH3jXuIh.cjs");var Cr=63710088e-1;function Xr(l,c,s={}){const f={type:"Feature"};return(s.id===0||s.id)&&(f.id=s.id),s.bbox&&(f.bbox=s.bbox),f.properties=c||{},f.geometry=l,f}function hr(l,c,s={}){if(!l)throw new Error("coordinates is required");if(!Array.isArray(l))throw new Error("coordinates must be an Array");if(l.length<2)throw new Error("coordinates must be at least 2 numbers long");if(!mr(l[0])||!mr(l[1]))throw new Error("coordinates must contain numbers");return Xr({type:"Point",coordinates:l},c,s)}function Sr(l,c,s={}){for(const g of l){if(g.length<4)throw new Error("Each LinearRing of a Polygon must have 4 or more Positions.");if(g[g.length-1].length!==g[0].length)throw new Error("First and last Position are not equivalent.");for(let v=0;v<g[g.length-1].length;v++)if(g[g.length-1][v]!==g[0][v])throw new Error("First and last Position are not equivalent.")}return Xr({type:"Polygon",coordinates:l},c,s)}function mr(l){return!isNaN(l)&&l!==null&&!Array.isArray(l)}function ir(l,c,s){if(l!==null)for(var f,g,v,X,B,_,E,C=0,F=0,A,L=l.type,w=L==="FeatureCollection",q=L==="Feature",H=w?l.features.length:1,$=0;$<H;$++){E=w?l.features[$].geometry:q?l.geometry:l,A=E?E.type==="GeometryCollection":!1,B=A?E.geometries.length:1;for(var t=0;t<B;t++){var i=0,r=0;if(X=A?E.geometries[t]:E,X!==null){_=X.coordinates;var e=X.type;switch(C=s&&(e==="Polygon"||e==="MultiPolygon")?1:0,e){case null:break;case"Point":if(c(_,F,$,i,r)===!1)return!1;F++,i++;break;case"LineString":case"MultiPoint":for(f=0;f<_.length;f++){if(c(_[f],F,$,i,r)===!1)return!1;F++,e==="MultiPoint"&&i++}e==="LineString"&&i++;break;case"Polygon":case"MultiLineString":for(f=0;f<_.length;f++){for(g=0;g<_[f].length-C;g++){if(c(_[f][g],F,$,i,r)===!1)return!1;F++}e==="MultiLineString"&&i++,e==="Polygon"&&r++}e==="Polygon"&&i++;break;case"MultiPolygon":for(f=0;f<_.length;f++){for(r=0,g=0;g<_[f].length;g++){for(v=0;v<_[f][g].length-C;v++){if(c(_[f][g][v],F,$,i,r)===!1)return!1;F++}r++}i++}break;case"GeometryCollection":for(f=0;f<X.geometries.length;f++)if(ir(X.geometries[f],c,s)===!1)return!1;break;default:throw new Error("Unknown Geometry Type")}}}}}function qr(l,c){var s,f,g,v,X,B,_,E,C,F,A=0,L=l.type==="FeatureCollection",w=l.type==="Feature",q=L?l.features.length:1;for(s=0;s<q;s++){for(B=L?l.features[s].geometry:w?l.geometry:l,E=L?l.features[s].properties:w?l.properties:{},C=L?l.features[s].bbox:w?l.bbox:void 0,F=L?l.features[s].id:w?l.id:void 0,_=B?B.type==="GeometryCollection":!1,X=_?B.geometries.length:1,g=0;g<X;g++){if(v=_?B.geometries[g]:B,v===null){if(c(null,A,E,C,F)===!1)return!1;continue}switch(v.type){case"Point":case"LineString":case"MultiPoint":case"Polygon":case"MultiLineString":case"MultiPolygon":{if(c(v,A,E,C,F)===!1)return!1;break}case"GeometryCollection":{for(f=0;f<v.geometries.length;f++)if(c(v.geometries[f],A,E,C,F)===!1)return!1;break}default:throw new Error("Unknown Geometry Type")}}A++}}function Ar(l,c,s){var f=s;return qr(l,function(g,v,X,B,_){v===0&&s===void 0?f=g:f=c(f,g,v,X,B,_)}),f}var ar={exports:{}},or={exports:{}},Rr=or.exports,vr;function Nr(){return vr||(vr=1,function(l,c){(function(s,f){l.exports=f()})(Rr,function(){function s(t,i,r,e,n){(function a(o,u,h,m,d){for(;m>h;){if(m-h>600){var M=m-h+1,S=u-h+1,z=Math.log(M),Y=.5*Math.exp(2*z/3),R=.5*Math.sqrt(z*Y*(M-Y)/M)*(S-M/2<0?-1:1),N=Math.max(h,Math.floor(u-S*Y/M+R)),k=Math.min(m,Math.floor(u+(M-S)*Y/M+R));a(o,u,N,k,d)}var p=o[u],y=h,x=m;for(f(o,h,u),d(o[m],p)>0&&f(o,h,m);y<x;){for(f(o,y,x),y++,x--;d(o[y],p)<0;)y++;for(;d(o[x],p)>0;)x--}d(o[h],p)===0?f(o,h,x):f(o,++x,m),x<=u&&(h=x+1),u<=x&&(m=x-1)}})(t,i,r||0,e||t.length-1,n||g)}function f(t,i,r){var e=t[i];t[i]=t[r],t[r]=e}function g(t,i){return t<i?-1:t>i?1:0}var v=function(t){t===void 0&&(t=9),this._maxEntries=Math.max(4,t),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),this.clear()};function X(t,i,r){if(!r)return i.indexOf(t);for(var e=0;e<i.length;e++)if(r(t,i[e]))return e;return-1}function B(t,i){_(t,0,t.children.length,i,t)}function _(t,i,r,e,n){n||(n=H(null)),n.minX=1/0,n.minY=1/0,n.maxX=-1/0,n.maxY=-1/0;for(var a=i;a<r;a++){var o=t.children[a];E(n,t.leaf?e(o):o)}return n}function E(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 C(t,i){return t.minX-i.minX}function F(t,i){return t.minY-i.minY}function A(t){return(t.maxX-t.minX)*(t.maxY-t.minY)}function L(t){return t.maxX-t.minX+(t.maxY-t.minY)}function w(t,i){return t.minX<=i.minX&&t.minY<=i.minY&&i.maxX<=t.maxX&&i.maxY<=t.maxY}function q(t,i){return i.minX<=t.maxX&&i.minY<=t.maxY&&i.maxX>=t.minX&&i.maxY>=t.minY}function H(t){return{children:t,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function $(t,i,r,e,n){for(var a=[i,r];a.length;)if(!((r=a.pop())-(i=a.pop())<=e)){var o=i+Math.ceil((r-i)/e/2)*e;s(t,o,i,r,n),a.push(i,o,o,r)}}return v.prototype.all=function(){return this._all(this.data,[])},v.prototype.search=function(t){var i=this.data,r=[];if(!q(t,i))return r;for(var e=this.toBBox,n=[];i;){for(var a=0;a<i.children.length;a++){var o=i.children[a],u=i.leaf?e(o):o;q(t,u)&&(i.leaf?r.push(o):w(t,u)?this._all(o,r):n.push(o))}i=n.pop()}return r},v.prototype.collides=function(t){var i=this.data;if(!q(t,i))return!1;for(var r=[];i;){for(var e=0;e<i.children.length;e++){var n=i.children[e],a=i.leaf?this.toBBox(n):n;if(q(t,a)){if(i.leaf||w(t,a))return!0;r.push(n)}}i=r.pop()}return!1},v.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 r=this._build(t.slice(),0,t.length-1,0);if(this.data.children.length)if(this.data.height===r.height)this._splitRoot(this.data,r);else{if(this.data.height<r.height){var e=this.data;this.data=r,r=e}this._insert(r,this.data.height-r.height-1,!0)}else this.data=r;return this},v.prototype.insert=function(t){return t&&this._insert(t,this.data.height-1),this},v.prototype.clear=function(){return this.data=H([]),this},v.prototype.remove=function(t,i){if(!t)return this;for(var r,e,n,a=this.data,o=this.toBBox(t),u=[],h=[];a||u.length;){if(a||(a=u.pop(),e=u[u.length-1],r=h.pop(),n=!0),a.leaf){var m=X(t,a.children,i);if(m!==-1)return a.children.splice(m,1),u.push(a),this._condense(u),this}n||a.leaf||!w(a,o)?e?(r++,a=e.children[r],n=!1):a=null:(u.push(a),h.push(r),r=0,e=a,a=a.children[0])}return this},v.prototype.toBBox=function(t){return t},v.prototype.compareMinX=function(t,i){return t.minX-i.minX},v.prototype.compareMinY=function(t,i){return t.minY-i.minY},v.prototype.toJSON=function(){return this.data},v.prototype.fromJSON=function(t){return this.data=t,this},v.prototype._all=function(t,i){for(var r=[];t;)t.leaf?i.push.apply(i,t.children):r.push.apply(r,t.children),t=r.pop();return i},v.prototype._build=function(t,i,r,e){var n,a=r-i+1,o=this._maxEntries;if(a<=o)return B(n=H(t.slice(i,r+1)),this.toBBox),n;e||(e=Math.ceil(Math.log(a)/Math.log(o)),o=Math.ceil(a/Math.pow(o,e-1))),(n=H([])).leaf=!1,n.height=e;var u=Math.ceil(a/o),h=u*Math.ceil(Math.sqrt(o));$(t,i,r,h,this.compareMinX);for(var m=i;m<=r;m+=h){var d=Math.min(m+h-1,r);$(t,m,d,u,this.compareMinY);for(var M=m;M<=d;M+=u){var S=Math.min(M+u-1,d);n.children.push(this._build(t,M,S,e-1))}}return B(n,this.toBBox),n},v.prototype._chooseSubtree=function(t,i,r,e){for(;e.push(i),!i.leaf&&e.length-1!==r;){for(var n=1/0,a=1/0,o=void 0,u=0;u<i.children.length;u++){var h=i.children[u],m=A(h),d=(M=t,S=h,(Math.max(S.maxX,M.maxX)-Math.min(S.minX,M.minX))*(Math.max(S.maxY,M.maxY)-Math.min(S.minY,M.minY))-m);d<a?(a=d,n=m<n?m:n,o=h):d===a&&m<n&&(n=m,o=h)}i=o||i.children[0]}var M,S;return i},v.prototype._insert=function(t,i,r){var e=r?t:this.toBBox(t),n=[],a=this._chooseSubtree(e,this.data,i,n);for(a.children.push(t),E(a,e);i>=0&&n[i].children.length>this._maxEntries;)this._split(n,i),i--;this._adjustParentBBoxes(e,n,i)},v.prototype._split=function(t,i){var r=t[i],e=r.children.length,n=this._minEntries;this._chooseSplitAxis(r,n,e);var a=this._chooseSplitIndex(r,n,e),o=H(r.children.splice(a,r.children.length-a));o.height=r.height,o.leaf=r.leaf,B(r,this.toBBox),B(o,this.toBBox),i?t[i-1].children.push(o):this._splitRoot(r,o)},v.prototype._splitRoot=function(t,i){this.data=H([t,i]),this.data.height=t.height+1,this.data.leaf=!1,B(this.data,this.toBBox)},v.prototype._chooseSplitIndex=function(t,i,r){for(var e,n,a,o,u,h,m,d=1/0,M=1/0,S=i;S<=r-i;S++){var z=_(t,0,S,this.toBBox),Y=_(t,S,r,this.toBBox),R=(n=z,a=Y,o=void 0,u=void 0,h=void 0,m=void 0,o=Math.max(n.minX,a.minX),u=Math.max(n.minY,a.minY),h=Math.min(n.maxX,a.maxX),m=Math.min(n.maxY,a.maxY),Math.max(0,h-o)*Math.max(0,m-u)),N=A(z)+A(Y);R<d?(d=R,e=S,M=N<M?N:M):R===d&&N<M&&(M=N,e=S)}return e||r-i},v.prototype._chooseSplitAxis=function(t,i,r){var e=t.leaf?this.compareMinX:C,n=t.leaf?this.compareMinY:F;this._allDistMargin(t,i,r,e)<this._allDistMargin(t,i,r,n)&&t.children.sort(e)},v.prototype._allDistMargin=function(t,i,r,e){t.children.sort(e);for(var n=this.toBBox,a=_(t,0,i,n),o=_(t,r-i,r,n),u=L(a)+L(o),h=i;h<r-i;h++){var m=t.children[h];E(a,t.leaf?n(m):m),u+=L(a)}for(var d=r-i-1;d>=i;d--){var M=t.children[d];E(o,t.leaf?n(M):M),u+=L(o)}return u},v.prototype._adjustParentBBoxes=function(t,i,r){for(var e=r;e>=0;e--)E(i[e],t)},v.prototype._condense=function(t){for(var i=t.length-1,r=void 0;i>=0;i--)t[i].children.length===0?i>0?(r=t[i-1].children).splice(r.indexOf(t[i]),1):this.clear():B(t[i],this.toBBox)},v})}(or)),or.exports}class Dr{constructor(c=[],s=Gr){if(this.data=c,this.length=this.data.length,this.compare=s,this.length>0)for(let f=(this.length>>1)-1;f>=0;f--)this._down(f)}push(c){this.data.push(c),this.length++,this._up(this.length-1)}pop(){if(this.length===0)return;const c=this.data[0],s=this.data.pop();return this.length--,this.length>0&&(this.data[0]=s,this._down(0)),c}peek(){return this.data[0]}_up(c){const{data:s,compare:f}=this,g=s[c];for(;c>0;){const v=c-1>>1,X=s[v];if(f(g,X)>=0)break;s[c]=X,c=v}s[c]=g}_down(c){const{data:s,compare:f}=this,g=this.length>>1,v=s[c];for(;c<g;){let X=(c<<1)+1,B=s[X];const _=X+1;if(_<this.length&&f(s[_],B)<0&&(X=_,B=s[_]),f(B,v)>=0)break;s[c]=B,c=X}s[c]=v}}function Gr(l,c){return l<c?-1:l>c?1:0}const Fr=Object.freeze(Object.defineProperty({__proto__:null,default:Dr},Symbol.toStringTag,{value:"Module"})),Or=_r.getAugmentedNamespace(Fr);var tr={exports:{}},fr,pr;function kr(){return pr||(pr=1,fr=function(c,s,f,g){var v=c[0],X=c[1],B=!1;f===void 0&&(f=0),g===void 0&&(g=s.length);for(var _=(g-f)/2,E=0,C=_-1;E<_;C=E++){var F=s[f+E*2+0],A=s[f+E*2+1],L=s[f+C*2+0],w=s[f+C*2+1],q=A>X!=w>X&&v<(L-F)*(X-A)/(w-A)+F;q&&(B=!B)}return B}),fr}var lr,gr;function Lr(){return gr||(gr=1,lr=function(c,s,f,g){var v=c[0],X=c[1],B=!1;f===void 0&&(f=0),g===void 0&&(g=s.length);for(var _=g-f,E=0,C=_-1;E<_;C=E++){var F=s[E+f][0],A=s[E+f][1],L=s[C+f][0],w=s[C+f][1],q=A>X!=w>X&&v<(L-F)*(X-A)/(w-A)+F;q&&(B=!B)}return B}),lr}var dr;function Hr(){if(dr)return tr.exports;dr=1;var l=kr(),c=Lr();return tr.exports=function(f,g,v,X){return g.length>0&&Array.isArray(g[0])?c(f,g,v,X):l(f,g,v,X)},tr.exports.nested=c,tr.exports.flat=l,tr.exports}var nr={exports:{}},$r=nr.exports,yr;function Jr(){return yr||(yr=1,function(l,c){(function(s,f){f(c)})($r,function(s){const g=33306690738754706e-32;function v(q,H,$,t,i){let r,e,n,a,o=H[0],u=t[0],h=0,m=0;u>o==u>-o?(r=o,o=H[++h]):(r=u,u=t[++m]);let d=0;if(h<q&&m<$)for(u>o==u>-o?(n=r-((e=o+r)-o),o=H[++h]):(n=r-((e=u+r)-u),u=t[++m]),r=e,n!==0&&(i[d++]=n);h<q&&m<$;)u>o==u>-o?(n=r-((e=r+o)-(a=e-r))+(o-a),o=H[++h]):(n=r-((e=r+u)-(a=e-r))+(u-a),u=t[++m]),r=e,n!==0&&(i[d++]=n);for(;h<q;)n=r-((e=r+o)-(a=e-r))+(o-a),o=H[++h],r=e,n!==0&&(i[d++]=n);for(;m<$;)n=r-((e=r+u)-(a=e-r))+(u-a),u=t[++m],r=e,n!==0&&(i[d++]=n);return r===0&&d!==0||(i[d++]=r),d}function X(q){return new Float64Array(q)}const B=33306690738754716e-32,_=22204460492503146e-32,E=11093356479670487e-47,C=X(4),F=X(8),A=X(12),L=X(16),w=X(4);s.orient2d=function(q,H,$,t,i,r){const e=(H-r)*($-i),n=(q-i)*(t-r),a=e-n;if(e===0||n===0||e>0!=n>0)return a;const o=Math.abs(e+n);return Math.abs(a)>=B*o?a:-function(u,h,m,d,M,S,z){let Y,R,N,k,p,y,x,J,O,D,P,G,U,Q,K,V,j,Z;const W=u-M,T=m-M,I=h-S,b=d-S;p=(K=(J=W-(x=(y=134217729*W)-(y-W)))*(D=b-(O=(y=134217729*b)-(y-b)))-((Q=W*b)-x*O-J*O-x*D))-(P=K-(j=(J=I-(x=(y=134217729*I)-(y-I)))*(D=T-(O=(y=134217729*T)-(y-T)))-((V=I*T)-x*O-J*O-x*D))),C[0]=K-(P+p)+(p-j),p=(U=Q-((G=Q+P)-(p=G-Q))+(P-p))-(P=U-V),C[1]=U-(P+p)+(p-V),p=(Z=G+P)-G,C[2]=G-(Z-p)+(P-p),C[3]=Z;let rr=function(Er,sr){let cr=sr[0];for(let ur=1;ur<Er;ur++)cr+=sr[ur];return cr}(4,C),er=_*z;if(rr>=er||-rr>=er||(Y=u-(W+(p=u-W))+(p-M),N=m-(T+(p=m-T))+(p-M),R=h-(I+(p=h-I))+(p-S),k=d-(b+(p=d-b))+(p-S),Y===0&&R===0&&N===0&&k===0)||(er=E*z+g*Math.abs(rr),(rr+=W*k+b*Y-(I*N+T*R))>=er||-rr>=er))return rr;p=(K=(J=Y-(x=(y=134217729*Y)-(y-Y)))*(D=b-(O=(y=134217729*b)-(y-b)))-((Q=Y*b)-x*O-J*O-x*D))-(P=K-(j=(J=R-(x=(y=134217729*R)-(y-R)))*(D=T-(O=(y=134217729*T)-(y-T)))-((V=R*T)-x*O-J*O-x*D))),w[0]=K-(P+p)+(p-j),p=(U=Q-((G=Q+P)-(p=G-Q))+(P-p))-(P=U-V),w[1]=U-(P+p)+(p-V),p=(Z=G+P)-G,w[2]=G-(Z-p)+(P-p),w[3]=Z;const wr=v(4,C,4,w,F);p=(K=(J=W-(x=(y=134217729*W)-(y-W)))*(D=k-(O=(y=134217729*k)-(y-k)))-((Q=W*k)-x*O-J*O-x*D))-(P=K-(j=(J=I-(x=(y=134217729*I)-(y-I)))*(D=N-(O=(y=134217729*N)-(y-N)))-((V=I*N)-x*O-J*O-x*D))),w[0]=K-(P+p)+(p-j),p=(U=Q-((G=Q+P)-(p=G-Q))+(P-p))-(P=U-V),w[1]=U-(P+p)+(p-V),p=(Z=G+P)-G,w[2]=G-(Z-p)+(P-p),w[3]=Z;const Br=v(wr,F,4,w,A);p=(K=(J=Y-(x=(y=134217729*Y)-(y-Y)))*(D=k-(O=(y=134217729*k)-(y-k)))-((Q=Y*k)-x*O-J*O-x*D))-(P=K-(j=(J=R-(x=(y=134217729*R)-(y-R)))*(D=N-(O=(y=134217729*N)-(y-N)))-((V=R*N)-x*O-J*O-x*D))),w[0]=K-(P+p)+(p-j),p=(U=Q-((G=Q+P)-(p=G-Q))+(P-p))-(P=U-V),w[1]=U-(P+p)+(p-V),p=(Z=G+P)-G,w[2]=G-(Z-p)+(P-p),w[3]=Z;const Pr=v(Br,A,4,w,L);return L[Pr-1]}(q,H,$,t,i,r,o)},s.orient2dfast=function(q,H,$,t,i,r){return(H-r)*($-i)-(q-i)*(t-r)},Object.defineProperty(s,"__esModule",{value:!0})})}(nr,nr.exports)),nr.exports}var xr;function Qr(){if(xr)return ar.exports;xr=1;var l=Nr(),c=Or,s=Hr(),f=Jr().orient2d;c.default&&(c=c.default),ar.exports=g,ar.exports.default=g;function g(r,e,n){e=Math.max(0,e===void 0?2:e),n=n||0;var a=L(r),o=new l(16);o.toBBox=function(x){return{minX:x[0],minY:x[1],maxX:x[0],maxY:x[1]}},o.compareMinX=function(x,J){return x[0]-J[0]},o.compareMinY=function(x,J){return x[1]-J[1]},o.load(r);for(var u=[],h=0,m;h<a.length;h++){var d=a[h];o.remove(d),m=w(d,m),u.push(m)}var M=new l(16);for(h=0;h<u.length;h++)M.insert(A(u[h]));for(var S=e*e,z=n*n;u.length;){var Y=u.shift(),R=Y.p,N=Y.next.p,k=q(R,N);if(!(k<z)){var p=k/S;d=v(o,Y.prev.p,R,N,Y.next.next.p,p,M),d&&Math.min(q(d,R),q(d,N))<=p&&(u.push(Y),u.push(w(d,Y)),o.remove(d),M.remove(Y),M.insert(A(Y)),M.insert(A(Y.next)))}}Y=m;var y=[];do y.push(Y.p),Y=Y.next;while(Y!==m);return y.push(Y.p),y}function v(r,e,n,a,o,u,h){for(var m=new c([],X),d=r.data;d;){for(var M=0;M<d.children.length;M++){var S=d.children[M],z=d.leaf?H(S,n,a):B(n,a,S);z>u||m.push({node:S,dist:z})}for(;m.length&&!m.peek().node.children;){var Y=m.pop(),R=Y.node,N=H(R,e,n),k=H(R,a,o);if(Y.dist<N&&Y.dist<k&&E(n,R,h)&&E(a,R,h))return R}d=m.pop(),d&&(d=d.node)}return null}function X(r,e){return r.dist-e.dist}function B(r,e,n){if(_(r,n)||_(e,n))return 0;var a=$(r[0],r[1],e[0],e[1],n.minX,n.minY,n.maxX,n.minY);if(a===0)return 0;var o=$(r[0],r[1],e[0],e[1],n.minX,n.minY,n.minX,n.maxY);if(o===0)return 0;var u=$(r[0],r[1],e[0],e[1],n.maxX,n.minY,n.maxX,n.maxY);if(u===0)return 0;var h=$(r[0],r[1],e[0],e[1],n.minX,n.maxY,n.maxX,n.maxY);return h===0?0:Math.min(a,o,u,h)}function _(r,e){return r[0]>=e.minX&&r[0]<=e.maxX&&r[1]>=e.minY&&r[1]<=e.maxY}function E(r,e,n){for(var a=Math.min(r[0],e[0]),o=Math.min(r[1],e[1]),u=Math.max(r[0],e[0]),h=Math.max(r[1],e[1]),m=n.search({minX:a,minY:o,maxX:u,maxY:h}),d=0;d<m.length;d++)if(F(m[d].p,m[d].next.p,r,e))return!1;return!0}function C(r,e,n){return f(r[0],r[1],e[0],e[1],n[0],n[1])}function F(r,e,n,a){return r!==a&&e!==n&&C(r,e,n)>0!=C(r,e,a)>0&&C(n,a,r)>0!=C(n,a,e)>0}function A(r){var e=r.p,n=r.next.p;return r.minX=Math.min(e[0],n[0]),r.minY=Math.min(e[1],n[1]),r.maxX=Math.max(e[0],n[0]),r.maxY=Math.max(e[1],n[1]),r}function L(r){for(var e=r[0],n=r[0],a=r[0],o=r[0],u=0;u<r.length;u++){var h=r[u];h[0]<e[0]&&(e=h),h[0]>a[0]&&(a=h),h[1]<n[1]&&(n=h),h[1]>o[1]&&(o=h)}var m=[e,n,a,o],d=m.slice();for(u=0;u<r.length;u++)s(r[u],m)||d.push(r[u]);return i(d)}function w(r,e){var n={p:r,prev:null,next:null,minX:0,minY:0,maxX:0,maxY:0};return e?(n.next=e.next,n.prev=e,e.next.prev=n,e.next=n):(n.prev=n,n.next=n),n}function q(r,e){var n=r[0]-e[0],a=r[1]-e[1];return n*n+a*a}function H(r,e,n){var a=e[0],o=e[1],u=n[0]-a,h=n[1]-o;if(u!==0||h!==0){var m=((r[0]-a)*u+(r[1]-o)*h)/(u*u+h*h);m>1?(a=n[0],o=n[1]):m>0&&(a+=u*m,o+=h*m)}return u=r[0]-a,h=r[1]-o,u*u+h*h}function $(r,e,n,a,o,u,h,m){var d=n-r,M=a-e,S=h-o,z=m-u,Y=r-o,R=e-u,N=d*d+M*M,k=d*S+M*z,p=S*S+z*z,y=d*Y+M*R,x=S*Y+z*R,J=N*p-k*k,O,D,P,G,U=J,Q=J;J===0?(D=0,U=1,G=x,Q=p):(D=k*x-p*y,G=N*x-k*y,D<0?(D=0,G=x,Q=p):D>U&&(D=U,G=x+k,Q=p)),G<0?(G=0,-y<0?D=0:-y>N?D=U:(D=-y,U=N)):G>Q&&(G=Q,-y+k<0?D=0:-y+k>N?D=U:(D=-y+k,U=N)),O=D===0?0:D/U,P=G===0?0:G/Q;var K=(1-O)*r+O*n,V=(1-O)*e+O*a,j=(1-P)*o+P*h,Z=(1-P)*u+P*m,W=j-K,T=Z-V;return W*W+T*T}function t(r,e){return r[0]===e[0]?r[1]-e[1]:r[0]-e[0]}function i(r){r.sort(t);for(var e=[],n=0;n<r.length;n++){for(;e.length>=2&&C(e[e.length-2],e[e.length-1],r[n])<=0;)e.pop();e.push(r[n])}for(var a=[],o=r.length-1;o>=0;o--){for(;a.length>=2&&C(a[a.length-2],a[a.length-1],r[o])<=0;)a.pop();a.push(r[o])}return a.pop(),e.pop(),e.concat(a)}return ar.exports}var Ur=Qr();const zr=_r.getDefaultExportFromCjs(Ur);function Kr(l,c={}){c.concavity=c.concavity||1/0;const s=[];if(ir(l,g=>{s.push([g[0],g[1]])}),!s.length)return null;const f=zr(s,c.concavity);return f.length>3?Sr([f]):null}function Mr(l,c={}){let s=0,f=0,g=0;return ir(l,function(v){s+=v[0],f+=v[1],g++},!0),hr([s/g,f/g],c.properties)}function Vr(l){if(!l)throw new Error("coord is required");if(!Array.isArray(l)){if(l.type==="Feature"&&l.geometry!==null&&l.geometry.type==="Point")return[...l.geometry.coordinates];if(l.type==="Point")return[...l.coordinates]}if(Array.isArray(l)&&l.length>=2&&!Array.isArray(l[0])&&!Array.isArray(l[1]))return[...l];throw new Error("coord must be GeoJSON Point or an Array of numbers")}function Zr(l,c){return l.type==="FeatureCollection"?"FeatureCollection":l.type==="GeometryCollection"?"GeometryCollection":l.type==="Feature"&&l.geometry!==null?l.geometry.type:l.type}function Yr(l,c={}){switch(Zr(l)){case"Point":return hr(Vr(l),c.properties);case"Polygon":var s=[];ir(l,function(r){s.push(r)});var f=Mr(l,{properties:c.properties}),g=f.geometry.coordinates,v=0,X=0,B=0,_,E,C,F,A,L,w,q,H=s.map(function(r){return[r[0]-g[0],r[1]-g[1]]});for(_=0;_<s.length-1;_++)E=H[_],F=E[0],L=E[1],C=H[_+1],A=C[0],w=C[1],q=F*w-A*L,B+=q,v+=(F+A)*q,X+=(L+w)*q;if(B===0)return f;var $=B*.5,t=1/(6*$);return hr([g[0]+t*v,g[1]+t*X],c.properties);default:var i=Kr(l);return i?Yr(i,{properties:c.properties}):Mr(l,{properties:c.properties})}}var Wr=Yr;exports.coordEach=ir;exports.earthRadius=Cr;exports.geomReduce=Ar;exports.turf_center_of_mass_default=Wr;
2
+ //# sourceMappingURL=index-CoZbeNM9.cjs.map