{"version":3,"sources":["/home/runner/work/turf/turf/packages/turf-tag/dist/cjs/index.cjs","../../index.ts"],"names":[],"mappings":"AAAA;ACCA,uEAAsC;AACtC,oCAAsB;AACtB,kCAA4B;AAqC5B,SAAS,GAAA,CACP,MAAA,EACA,QAAA,EACA,KAAA,EACA,QAAA,EAC0B;AAE1B,EAAA,OAAA,EAAS,0BAAA,MAAY,CAAA;AACrB,EAAA,SAAA,EAAW,0BAAA,QAAc,CAAA;AACzB,EAAA,+BAAA,MAAY,EAAQ,QAAA,CAAU,EAAA,EAAI;AAChC,IAAA,GAAA,CAAI,CAAC,EAAA,CAAG,UAAA,EAAY,EAAA,CAAG,WAAA,EAAa,CAAC,CAAA;AACrC,IAAA,+BAAA,QAAY,EAAU,QAAA,CAAU,IAAA,EAAM;AACpC,MAAA,GAAA,CAAI,EAAA,CAAG,WAAA,GAAc,IAAA,CAAK,UAAA,EAAY;AACpC,QAAA,GAAA,CAAI,EAAA,CAAG,UAAA,CAAW,QAAQ,EAAA,IAAM,KAAA,CAAA,EAAW;AACzC,UAAA,GAAA,CAAI,0DAAA,EAAsB,EAAI,IAAI,CAAA;AAChC,YAAA,EAAA,CAAG,UAAA,CAAW,QAAQ,EAAA,EAAI,IAAA,CAAK,UAAA,CAAW,KAAK,CAAA;AAAA,QACnD;AAAA,MACF;AAAA,IACF,CAAC,CAAA;AAAA,EACH,CAAC,CAAA;AACD,EAAA,OAAO,MAAA;AACT;AAGA,IAAO,cAAA,EAAQ,GAAA;AD3Cf;AACE;AACA;AACF,mDAAC","file":"/home/runner/work/turf/turf/packages/turf-tag/dist/cjs/index.cjs","sourcesContent":[null,"import { Point, FeatureCollection, Polygon, MultiPolygon } from \"geojson\";\nimport { booleanPointInPolygon } from \"@turf/boolean-point-in-polygon\";\nimport { clone } from \"@turf/clone\";\nimport { featureEach } from \"@turf/meta\";\n\n/**\n * Takes a set of {@link Point|points} and a set of {@link Polygon|polygons} and/or {@link MultiPolygon|multipolygons} and performs a spatial join.\n *\n * @function\n * @param {FeatureCollection<Point>} points input points\n * @param {FeatureCollection<Polygon|MultiPolygon>} polygons input (multi)polygons\n * @param {string} field property in `polygons` to add to joined {<Point>} features\n * @param {string} outField property in `points` in which to store joined property from `polygons`\n * @returns {FeatureCollection<Point>} points with `containingPolyId` property containing values from `polyId`\n * @example\n * var pt1 = turf.point([-77, 44]);\n * var pt2 = turf.point([-77, 38]);\n * var poly1 = turf.polygon([[\n *   [-81, 41],\n *   [-81, 47],\n *   [-72, 47],\n *   [-72, 41],\n *   [-81, 41]\n * ]], {pop: 3000});\n * var poly2 = turf.polygon([[\n *   [-81, 35],\n *   [-81, 41],\n *   [-72, 41],\n *   [-72, 35],\n *   [-81, 35]\n * ]], {pop: 1000});\n *\n * var points = turf.featureCollection([pt1, pt2]);\n * var polygons = turf.featureCollection([poly1, poly2]);\n *\n * var tagged = turf.tag(points, polygons, 'pop', 'population');\n *\n * //addToMap\n * var addToMap = [tagged, polygons]\n */\nfunction tag(\n  points: FeatureCollection<Point>,\n  polygons: FeatureCollection<Polygon | MultiPolygon>,\n  field: string,\n  outField: string\n): FeatureCollection<Point> {\n  // prevent mutations\n  points = clone(points);\n  polygons = clone(polygons);\n  featureEach(points, function (pt) {\n    if (!pt.properties) pt.properties = {};\n    featureEach(polygons, function (poly) {\n      if (pt.properties && poly.properties) {\n        if (pt.properties[outField] === undefined) {\n          if (booleanPointInPolygon(pt, poly))\n            pt.properties[outField] = poly.properties[field];\n        }\n      }\n    });\n  });\n  return points;\n}\n\nexport { tag };\nexport default tag;\n"]}