{"version":3,"sources":["/home/runner/work/turf/turf/packages/turf-sample/dist/cjs/index.cjs","../../index.ts"],"names":[],"mappings":"AAAA;ACEA,wCAAkC;AAqBlC,SAAS,MAAA,CACP,EAAA,EACA,GAAA,EACsB;AACtB,EAAA,GAAA,CAAI,CAAC,EAAA,EAAI,MAAM,IAAI,KAAA,CAAM,gBAAgB,CAAA;AACzC,EAAA,GAAA,CAAI,IAAA,IAAQ,KAAA,GAAQ,IAAA,IAAQ,KAAA,CAAA,EAAW,MAAM,IAAI,KAAA,CAAM,iBAAiB,CAAA;AACxE,EAAA,GAAA,CAAI,OAAO,IAAA,IAAQ,QAAA,EAAU,MAAM,IAAI,KAAA,CAAM,sBAAsB,CAAA;AACnE,EAAA,IAAI,MAAA,EAAQ,wCAAA,iBAAkB,CAAkB,EAAA,CAAG,QAAA,EAAU,GAAG,CAAC,CAAA;AACjE,EAAA,OAAO,KAAA;AACT;AAEA,SAAS,iBAAA,CACP,GAAA,EACA,IAAA,EACA;AACA,EAAA,IAAI,SAAA,EAAW,GAAA,CAAI,KAAA,CAAM,CAAC,CAAA,EACxB,EAAA,EAAI,GAAA,CAAI,MAAA,EACR,IAAA,EAAM,EAAA,EAAI,IAAA,EACV,IAAA,EACA,KAAA;AACF,EAAA,MAAA,CAAO,CAAA,GAAA,EAAM,GAAA,EAAK;AAChB,IAAA,MAAA,EAAQ,IAAA,CAAK,KAAA,CAAA,CAAO,EAAA,EAAI,CAAA,EAAA,EAAK,IAAA,CAAK,MAAA,CAAO,CAAC,CAAA;AAC1C,IAAA,KAAA,EAAO,QAAA,CAAS,KAAK,CAAA;AACrB,IAAA,QAAA,CAAS,KAAK,EAAA,EAAI,QAAA,CAAS,CAAC,CAAA;AAC5B,IAAA,QAAA,CAAS,CAAC,EAAA,EAAI,IAAA;AAAA,EAChB;AACA,EAAA,OAAO,QAAA,CAAS,KAAA,CAAM,GAAG,CAAA;AAC3B;AAGA,IAAO,oBAAA,EAAQ,MAAA;ADjCf;AACE;AACA;AACF,+DAAC","file":"/home/runner/work/turf/turf/packages/turf-sample/dist/cjs/index.cjs","sourcesContent":[null,"// http://stackoverflow.com/questions/11935175/sampling-a-random-subset-from-an-array\nimport { Feature, FeatureCollection, Geometry, GeometryObject } from \"geojson\";\nimport { featureCollection } from \"@turf/helpers\";\n\n/**\n * Takes a {@link FeatureCollection} and returns a FeatureCollection with given number of {@link Feature|features} at random.\n *\n * @function\n * @param {FeatureCollection} featurecollection set of input features\n * @param {number} num number of features to select\n * @returns {FeatureCollection} a FeatureCollection with `n` features\n * @example\n * var points = turf.randomPoint(100, {bbox: [-80, 30, -60, 60]});\n *\n * var sample = turf.sample(points, 5);\n *\n * //addToMap\n * var addToMap = [points, sample]\n * turf.featureEach(sample, function (currentFeature) {\n * currentFeature.properties['marker-size'] = 'large';\n * currentFeature.properties['marker-color'] = '#000';\n * });\n */\nfunction sample(\n fc: FeatureCollection,\n num: number\n): FeatureCollection {\n if (!fc) throw new Error(\"fc is required\");\n if (num === null || num === undefined) throw new Error(\"num is required\");\n if (typeof num !== \"number\") throw new Error(\"num must be a number\");\n var outFC = featureCollection(getRandomSubarray(fc.features, num));\n return outFC;\n}\n\nfunction getRandomSubarray(\n arr: Feature[],\n size: number\n) {\n var shuffled = arr.slice(0),\n i = arr.length,\n min = i - size,\n temp,\n index;\n while (i-- > min) {\n index = Math.floor((i + 1) * Math.random());\n temp = shuffled[index];\n shuffled[index] = shuffled[i];\n shuffled[i] = temp;\n }\n return shuffled.slice(min);\n}\n\nexport { sample };\nexport default sample;\n"]}