{"version":3,"sources":["/home/runner/work/turf/turf/packages/turf-polygon-to-line/dist/cjs/index.cjs","../../index.ts"],"names":[],"mappings":"AAAA;ACAA,wCAA+D;AAU/D,4CAAwB;AAmBxB,SAAS,aAAA,CAIP,IAAA,EACA,QAAA,EAAgC,CAAC,CAAA,EAGoB;AACrD,EAAA,MAAM,KAAA,EAAY,gCAAA,IAAY,CAAA;AAC9B,EAAA,GAAA,CAAI,CAAC,OAAA,CAAQ,WAAA,GAAc,IAAA,CAAK,KAAA,IAAS,SAAA,EAAW;AAClD,IAAA,OAAA,CAAQ,WAAA,EAAa,IAAA,CAAK,UAAA;AAAA,EAC5B;AACA,EAAA,OAAA,CAAQ,IAAA,CAAK,IAAA,EAAM;AAAA,IACjB,KAAK,SAAA;AACH,MAAA,OAAO,mBAAA,CAAoB,IAAA,EAAM,OAAO,CAAA;AAAA,IAC1C,KAAK,cAAA;AACH,MAAA,OAAO,kBAAA,CAAmB,IAAA,EAAM,OAAO,CAAA;AAAA,IACzC,OAAA;AACE,MAAA,MAAM,IAAI,KAAA,CAAM,cAAc,CAAA;AAAA,EAClC;AACF;AAKA,SAAS,mBAAA,CAIP,IAAA,EACA,QAAA,EAAgC,CAAC,CAAA,EACS;AAC1C,EAAA,MAAM,KAAA,EAAO,gCAAA,IAAY,CAAA;AACzB,EAAA,MAAM,OAAA,EAAgB,IAAA,CAAK,WAAA;AAC3B,EAAA,MAAM,WAAA,EAAkB,OAAA,CAAQ,WAAA,EAC5B,OAAA,CAAQ,WAAA,EACR,IAAA,CAAK,KAAA,IAAS,UAAA,EACZ,IAAA,CAAK,WAAA,EACL,CAAC,CAAA;AAEP,EAAA,OAAO,YAAA,CAAa,MAAA,EAAQ,UAAU,CAAA;AACxC;AAKA,SAAS,kBAAA,CAIP,SAAA,EACA,QAAA,EAA8B,CAAC,CAAA,EACqB;AACpD,EAAA,MAAM,KAAA,EAAO,gCAAA,SAAiB,CAAA;AAC9B,EAAA,MAAM,OAAA,EAAgB,IAAA,CAAK,WAAA;AAC3B,EAAA,MAAM,WAAA,EAAkB,OAAA,CAAQ,WAAA,EAC5B,OAAA,CAAQ,WAAA,EACR,SAAA,CAAU,KAAA,IAAS,UAAA,EACjB,SAAA,CAAU,WAAA,EACV,CAAC,CAAA;AAEP,EAAA,MAAM,MAAA,EAAyD,CAAC,CAAA;AAChE,EAAA,MAAA,CAAO,OAAA,CAAQ,CAAC,KAAA,EAAA,GAAU;AACxB,IAAA,KAAA,CAAM,IAAA,CAAK,YAAA,CAAa,KAAA,EAAO,UAAU,CAAC,CAAA;AAAA,EAC5C,CAAC,CAAA;AACD,EAAA,OAAO,wCAAA,KAAuB,CAAA;AAChC;AAKA,SAAS,YAAA,CACP,MAAA,EACA,UAAA,EAC0C;AAC1C,EAAA,GAAA,CAAI,MAAA,CAAO,OAAA,EAAS,CAAA,EAAG;AACrB,IAAA,OAAO,sCAAA,MAAgB,EAAQ,UAAU,CAAA;AAAA,EAC3C;AACA,EAAA,OAAO,iCAAA,MAAW,CAAO,CAAC,CAAA,EAAG,UAAU,CAAA;AACzC;AAGA,IAAO,6BAAA,EAAQ,aAAA;ADxEf;AACE;AACA;AACA;AACA;AACA;AACF,+NAAC","file":"/home/runner/work/turf/turf/packages/turf-polygon-to-line/dist/cjs/index.cjs","sourcesContent":[null,"import { featureCollection, lineString, multiLineString } from \"@turf/helpers\";\nimport {\n Feature,\n FeatureCollection,\n LineString,\n MultiLineString,\n MultiPolygon,\n Polygon,\n GeoJsonProperties,\n} from \"geojson\";\nimport { getGeom } from \"@turf/invariant\";\n\n/**\n * Converts a {@link Polygon} to {@link LineString|(Multi)LineString} or {@link MultiPolygon} to a\n * {@link FeatureCollection} of {@link LineString|(Multi)LineString}.\n *\n * @function\n * @param {Feature} poly Feature to convert\n * @param {Object} [options={}] Optional parameters\n * @param {Object} [options.properties={}] translates GeoJSON properties to Feature\n * @returns {FeatureCollection|Feature} converted (Multi)Polygon to (Multi)LineString\n * @example\n * var poly = turf.polygon([[[125, -30], [145, -30], [145, -20], [125, -20], [125, -30]]]);\n *\n * var line = turf.polygonToLine(poly);\n *\n * //addToMap\n * var addToMap = [line];\n */\nfunction polygonToLine<\n G extends Polygon | MultiPolygon,\n P extends GeoJsonProperties = GeoJsonProperties,\n>(\n poly: Feature | G,\n options: { properties?: any } = {}\n):\n | Feature\n | FeatureCollection {\n const geom: any = getGeom(poly);\n if (!options.properties && poly.type === \"Feature\") {\n options.properties = poly.properties;\n }\n switch (geom.type) {\n case \"Polygon\":\n return singlePolygonToLine(geom, options);\n case \"MultiPolygon\":\n return multiPolygonToLine(geom, options);\n default:\n throw new Error(\"invalid poly\");\n }\n}\n\n/**\n * @private\n */\nfunction singlePolygonToLine<\n G extends Polygon,\n P extends GeoJsonProperties = GeoJsonProperties,\n>(\n poly: Feature | G,\n options: { properties?: any } = {}\n): Feature {\n const geom = getGeom(poly);\n const coords: any[] = geom.coordinates;\n const properties: any = options.properties\n ? options.properties\n : poly.type === \"Feature\"\n ? poly.properties\n : {};\n\n return coordsToLine(coords, properties);\n}\n\n/**\n * @private\n */\nfunction multiPolygonToLine<\n G extends MultiPolygon,\n P extends GeoJsonProperties = GeoJsonProperties,\n>(\n multiPoly: Feature | G,\n options: { properties?: P } = {}\n): FeatureCollection {\n const geom = getGeom(multiPoly);\n const coords: any[] = geom.coordinates;\n const properties: any = options.properties\n ? options.properties\n : multiPoly.type === \"Feature\"\n ? multiPoly.properties\n : {};\n\n const lines: Array> = [];\n coords.forEach((coord) => {\n lines.push(coordsToLine(coord, properties));\n });\n return featureCollection(lines);\n}\n\n/**\n * @private\n */\nfunction coordsToLine

(\n coords: number[][][],\n properties: P\n): Feature {\n if (coords.length > 1) {\n return multiLineString(coords, properties);\n }\n return lineString(coords[0], properties);\n}\n\nexport { polygonToLine, coordsToLine, multiPolygonToLine, singlePolygonToLine };\nexport default polygonToLine;\n"]}