@undp/data-viz 1.2.8 → 1.3.0

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 (496) hide show
  1. package/dist/AreaChart.d.ts +224 -0
  2. package/dist/AreaChart.js +2 -0
  3. package/dist/AreaChart.js.map +1 -0
  4. package/dist/Axis-BlyBRMNw.cjs +2 -0
  5. package/dist/Axis-BlyBRMNw.cjs.map +1 -0
  6. package/dist/Axis-CvK-w3E2.js +44 -0
  7. package/dist/Axis-CvK-w3E2.js.map +1 -0
  8. package/dist/AxisTitle-BY8MI9jC.cjs +2 -0
  9. package/dist/AxisTitle-BY8MI9jC.cjs.map +1 -0
  10. package/dist/AxisTitle-BeMxcw5I.js +21 -0
  11. package/dist/AxisTitle-BeMxcw5I.js.map +1 -0
  12. package/dist/BarGraph.d.ts +460 -0
  13. package/dist/BarGraph.js +2 -0
  14. package/dist/BarGraph.js.map +1 -0
  15. package/dist/BasicStatCard.d.ts +106 -0
  16. package/dist/BasicStatCard.js +2 -0
  17. package/dist/BasicStatCard.js.map +1 -0
  18. package/dist/BeeSwarmChart.d.ts +189 -0
  19. package/dist/BeeSwarmChart.js +2 -0
  20. package/dist/BeeSwarmChart.js.map +1 -0
  21. package/dist/BiVariateChoroplethMap.d.ts +189 -0
  22. package/dist/BiVariateChoroplethMap.js +2 -0
  23. package/dist/BiVariateChoroplethMap.js.map +1 -0
  24. package/dist/BulletChart.d.ts +219 -0
  25. package/dist/BulletChart.js +2 -0
  26. package/dist/BulletChart.js.map +1 -0
  27. package/dist/ButterflyChart.d.ts +201 -0
  28. package/dist/ButterflyChart.js +2 -0
  29. package/dist/ButterflyChart.js.map +1 -0
  30. package/dist/ChoroplethMap.d.ts +190 -0
  31. package/dist/ChoroplethMap.js +2 -0
  32. package/dist/ChoroplethMap.js.map +1 -0
  33. package/dist/CirclePackingGraph.d.ts +161 -0
  34. package/dist/CirclePackingGraph.js +2 -0
  35. package/dist/CirclePackingGraph.js.map +1 -0
  36. package/dist/ColorLegend.d.ts +17 -0
  37. package/dist/ColorLegend.js +2 -0
  38. package/dist/ColorLegend.js.map +1 -0
  39. package/dist/ColorLegendWithMouseOver.d.ts +16 -0
  40. package/dist/ColorLegendWithMouseOver.js +2 -0
  41. package/dist/ColorLegendWithMouseOver.js.map +1 -0
  42. package/dist/Colors.d.ts +174 -0
  43. package/dist/Colors.js +2 -0
  44. package/dist/Colors.js.map +1 -0
  45. package/dist/CopyTextButton.d.ts +13 -0
  46. package/dist/CopyTextButton.js +17 -0
  47. package/dist/CopyTextButton.js.map +1 -0
  48. package/dist/CsvDownloadButton.d.ts +22 -0
  49. package/dist/CsvDownloadButton.js +23 -0
  50. package/dist/CsvDownloadButton.js.map +1 -0
  51. package/dist/DataCards.d.ts +131 -0
  52. package/dist/DataCards.js +2 -0
  53. package/dist/DataCards.js.map +1 -0
  54. package/dist/DataTable.d.ts +122 -0
  55. package/dist/DataTable.js +2 -0
  56. package/dist/DataTable.js.map +1 -0
  57. package/dist/DifferenceLineChart.d.ts +237 -0
  58. package/dist/DifferenceLineChart.js +2 -0
  59. package/dist/DifferenceLineChart.js.map +1 -0
  60. package/dist/DonutChart.d.ts +148 -0
  61. package/dist/DonutChart.js +2 -0
  62. package/dist/DonutChart.js.map +1 -0
  63. package/dist/DotDensityMap.d.ts +191 -0
  64. package/dist/DotDensityMap.js +2 -0
  65. package/dist/DotDensityMap.js.map +1 -0
  66. package/dist/DropdownSelect-CuzV7gdj.cjs +29 -0
  67. package/dist/DropdownSelect-CuzV7gdj.cjs.map +1 -0
  68. package/dist/DropdownSelect-DmZsXrhY.js +2698 -0
  69. package/dist/DropdownSelect-DmZsXrhY.js.map +1 -0
  70. package/dist/DualAxisLineChart.d.ts +180 -0
  71. package/dist/DualAxisLineChart.js +2 -0
  72. package/dist/DualAxisLineChart.js.map +1 -0
  73. package/dist/DumbbellChart.d.ts +224 -0
  74. package/dist/DumbbellChart.js +2 -0
  75. package/dist/DumbbellChart.js.map +1 -0
  76. package/dist/EmptyState-BQguKAp5.cjs +2 -0
  77. package/dist/EmptyState-BQguKAp5.cjs.map +1 -0
  78. package/dist/EmptyState-b2Ln487i.js +22 -0
  79. package/dist/EmptyState-b2Ln487i.js.map +1 -0
  80. package/dist/ExcelDownloadButton.d.ts +22 -0
  81. package/dist/ExcelDownloadButton.js +2 -0
  82. package/dist/ExcelDownloadButton.js.map +1 -0
  83. package/dist/FootNote.d.ts +12 -0
  84. package/dist/FootNote.js +2 -0
  85. package/dist/FootNote.js.map +1 -0
  86. package/dist/GeoHubCompareMaps.d.ts +103 -0
  87. package/dist/GeoHubCompareMaps.js +2 -0
  88. package/dist/GeoHubCompareMaps.js.map +1 -0
  89. package/dist/GeoHubMap.d.ts +118 -0
  90. package/dist/GeoHubMap.js +2 -0
  91. package/dist/GeoHubMap.js.map +1 -0
  92. package/dist/GeoHubMapWithLayerSelection.d.ts +117 -0
  93. package/dist/GeoHubMapWithLayerSelection.js +2 -0
  94. package/dist/GeoHubMapWithLayerSelection.js.map +1 -0
  95. package/dist/GraphDescription.d.ts +12 -0
  96. package/dist/GraphDescription.js +2 -0
  97. package/dist/GraphDescription.js.map +1 -0
  98. package/dist/GraphFooter.d.ts +24 -0
  99. package/dist/GraphFooter.js +2 -0
  100. package/dist/GraphFooter.js.map +1 -0
  101. package/dist/GraphHeader.d.ts +22 -0
  102. package/dist/GraphHeader.js +2 -0
  103. package/dist/GraphHeader.js.map +1 -0
  104. package/dist/GraphTitle.d.ts +13 -0
  105. package/dist/GraphTitle.js +2 -0
  106. package/dist/GraphTitle.js.map +1 -0
  107. package/dist/GriddedGraphs.d.ts +540 -0
  108. package/dist/GriddedGraphs.js +2 -0
  109. package/dist/GriddedGraphs.js.map +1 -0
  110. package/dist/GriddedGraphsFromConfig.d.ts +543 -0
  111. package/dist/GriddedGraphsFromConfig.js +2 -0
  112. package/dist/GriddedGraphsFromConfig.js.map +1 -0
  113. package/dist/HeatMap.d.ts +166 -0
  114. package/dist/HeatMap.js +2 -0
  115. package/dist/HeatMap.js.map +1 -0
  116. package/dist/Histogram.d.ts +165 -0
  117. package/dist/Histogram.js +2 -0
  118. package/dist/Histogram.js.map +1 -0
  119. package/dist/ImageDownloadButton.d.ts +15 -0
  120. package/dist/ImageDownloadButton.js +2 -0
  121. package/dist/ImageDownloadButton.js.map +1 -0
  122. package/dist/LineChartWithConfidenceInterval.d.ts +250 -0
  123. package/dist/LineChartWithConfidenceInterval.js +2 -0
  124. package/dist/LineChartWithConfidenceInterval.js.map +1 -0
  125. package/dist/LinearColorLegend.d.ts +13 -0
  126. package/dist/LinearColorLegend.js +2 -0
  127. package/dist/LinearColorLegend.js.map +1 -0
  128. package/dist/Modal-C9txyGOk.js +723 -0
  129. package/dist/Modal-C9txyGOk.js.map +1 -0
  130. package/dist/Modal-cQF2UQIa.cjs +46 -0
  131. package/dist/Modal-cQF2UQIa.cjs.map +1 -0
  132. package/dist/MultiGraphDashboard.d.ts +558 -0
  133. package/dist/MultiGraphDashboard.js +2 -0
  134. package/dist/MultiGraphDashboard.js.map +1 -0
  135. package/dist/MultiGraphDashboardFromConfig.d.ts +562 -0
  136. package/dist/MultiGraphDashboardFromConfig.js +2 -0
  137. package/dist/MultiGraphDashboardFromConfig.js.map +1 -0
  138. package/dist/MultiGraphDashboardWideToLongFormat.d.ts +128 -0
  139. package/dist/MultiGraphDashboardWideToLongFormat.js +2 -0
  140. package/dist/MultiGraphDashboardWideToLongFormat.js.map +1 -0
  141. package/dist/MultiGraphDashboardWideToLongFormatFromConfig.d.ts +133 -0
  142. package/dist/MultiGraphDashboardWideToLongFormatFromConfig.js +2 -0
  143. package/dist/MultiGraphDashboardWideToLongFormatFromConfig.js.map +1 -0
  144. package/dist/MultiLineAltChart.d.ts +244 -0
  145. package/dist/MultiLineAltChart.js +2 -0
  146. package/dist/MultiLineAltChart.js.map +1 -0
  147. package/dist/MultiLineChart.d.ts +246 -0
  148. package/dist/MultiLineChart.js +2 -0
  149. package/dist/MultiLineChart.js.map +1 -0
  150. package/dist/ParetoChart.d.ts +178 -0
  151. package/dist/ParetoChart.js +2 -0
  152. package/dist/ParetoChart.js.map +1 -0
  153. package/dist/RadarChart.d.ts +176 -0
  154. package/dist/RadarChart.js +2 -0
  155. package/dist/RadarChart.js.map +1 -0
  156. package/dist/ReferenceLine-BgDdQbDI.js +129 -0
  157. package/dist/ReferenceLine-BgDdQbDI.js.map +1 -0
  158. package/dist/ReferenceLine-Bsb5jeE4.cjs +2 -0
  159. package/dist/ReferenceLine-Bsb5jeE4.cjs.map +1 -0
  160. package/dist/RegressionLine-BfpCuD7B.cjs +2 -0
  161. package/dist/RegressionLine-BfpCuD7B.cjs.map +1 -0
  162. package/dist/RegressionLine-cSljpHaE.js +49 -0
  163. package/dist/RegressionLine-cSljpHaE.js.map +1 -0
  164. package/dist/SVGDownloadButton.d.ts +15 -0
  165. package/dist/SVGDownloadButton.js +2 -0
  166. package/dist/SVGDownloadButton.js.map +1 -0
  167. package/dist/SankeyChart.d.ts +178 -0
  168. package/dist/SankeyChart.js +2 -0
  169. package/dist/SankeyChart.js.map +1 -0
  170. package/dist/ScatterPlot.d.ts +266 -0
  171. package/dist/ScatterPlot.js +2 -0
  172. package/dist/ScatterPlot.js.map +1 -0
  173. package/dist/ScrollStory.d.ts +491 -0
  174. package/dist/ScrollStory.js +2 -0
  175. package/dist/ScrollStory.js.map +1 -0
  176. package/dist/SimpleLineChart.d.ts +230 -0
  177. package/dist/SimpleLineChart.js +2 -0
  178. package/dist/SimpleLineChart.js.map +1 -0
  179. package/dist/SingleGraphDashboard.d.ts +545 -0
  180. package/dist/SingleGraphDashboard.js +2 -0
  181. package/dist/SingleGraphDashboard.js.map +1 -0
  182. package/dist/SingleGraphDashboardFromConfig.d.ts +547 -0
  183. package/dist/SingleGraphDashboardFromConfig.js +2 -0
  184. package/dist/SingleGraphDashboardFromConfig.js.map +1 -0
  185. package/dist/SlopeChart.d.ts +167 -0
  186. package/dist/SlopeChart.js +2 -0
  187. package/dist/SlopeChart.js.map +1 -0
  188. package/dist/Source.d.ts +16 -0
  189. package/dist/Source.js +2 -0
  190. package/dist/Source.js.map +1 -0
  191. package/dist/SparkLine.d.ts +139 -0
  192. package/dist/SparkLine.js +2 -0
  193. package/dist/SparkLine.js.map +1 -0
  194. package/dist/Spinner-DN3s4S0H.js +17 -0
  195. package/dist/Spinner-DN3s4S0H.js.map +1 -0
  196. package/dist/Spinner-UmN-KPe9.cjs +2 -0
  197. package/dist/Spinner-UmN-KPe9.cjs.map +1 -0
  198. package/dist/StatCardFromData.d.ts +115 -0
  199. package/dist/StatCardFromData.js +2 -0
  200. package/dist/StatCardFromData.js.map +1 -0
  201. package/dist/StripChart.d.ts +178 -0
  202. package/dist/StripChart.js +2 -0
  203. package/dist/StripChart.js.map +1 -0
  204. package/dist/ThreeDGlobe.d.ts +158 -0
  205. package/dist/ThreeDGlobe.js +2 -0
  206. package/dist/ThreeDGlobe.js.map +1 -0
  207. package/dist/ThresholdColorLegendWithMouseOver.d.ts +16 -0
  208. package/dist/ThresholdColorLegendWithMouseOver.js +2 -0
  209. package/dist/ThresholdColorLegendWithMouseOver.js.map +1 -0
  210. package/dist/Tooltip-BM18N_3l.cjs +2 -0
  211. package/dist/Tooltip-BM18N_3l.cjs.map +1 -0
  212. package/dist/Tooltip-CzZ1wFyF.js +47 -0
  213. package/dist/Tooltip-CzZ1wFyF.js.map +1 -0
  214. package/dist/TreeMapGraph.d.ts +158 -0
  215. package/dist/TreeMapGraph.js +2 -0
  216. package/dist/TreeMapGraph.js.map +1 -0
  217. package/dist/Types.d.ts +883 -0
  218. package/dist/Types.js +2 -0
  219. package/dist/Types.js.map +1 -0
  220. package/dist/Typography-CDR-DAHH.cjs +2 -0
  221. package/dist/Typography-CDR-DAHH.cjs.map +1 -0
  222. package/dist/Typography-XJoSE-By.js +58 -0
  223. package/dist/Typography-XJoSE-By.js.map +1 -0
  224. package/dist/UnitChart.d.ts +132 -0
  225. package/dist/UnitChart.js +2 -0
  226. package/dist/UnitChart.js.map +1 -0
  227. package/dist/XAxesLabels-C9REbQQs.cjs +2 -0
  228. package/dist/XAxesLabels-C9REbQQs.cjs.map +1 -0
  229. package/dist/XAxesLabels-DVw7Lvuz.js +58 -0
  230. package/dist/XAxesLabels-DVw7Lvuz.js.map +1 -0
  231. package/dist/XTicksAndGridLines-CUefTINd.js +57 -0
  232. package/dist/XTicksAndGridLines-CUefTINd.js.map +1 -0
  233. package/dist/XTicksAndGridLines-DuK35ROS.cjs +2 -0
  234. package/dist/XTicksAndGridLines-DuK35ROS.cjs.map +1 -0
  235. package/dist/YAxesLabels-CYVY053X.js +53 -0
  236. package/dist/YAxesLabels-CYVY053X.js.map +1 -0
  237. package/dist/YAxesLabels-DhBdLk3Z.cjs +2 -0
  238. package/dist/YAxesLabels-DhBdLk3Z.cjs.map +1 -0
  239. package/dist/YTicksAndGridLines-BJRXuBdC.js +57 -0
  240. package/dist/YTicksAndGridLines-BJRXuBdC.js.map +1 -0
  241. package/dist/YTicksAndGridLines-CtLvzExe.cjs +2 -0
  242. package/dist/YTicksAndGridLines-CtLvzExe.cjs.map +1 -0
  243. package/dist/_commonjsHelpers-DKOUU3wS.cjs +2 -0
  244. package/dist/_commonjsHelpers-DKOUU3wS.cjs.map +1 -0
  245. package/dist/_commonjsHelpers-DaMA6jEr.js +9 -0
  246. package/dist/_commonjsHelpers-DaMA6jEr.js.map +1 -0
  247. package/dist/area-BE2wo7fv.js +53 -0
  248. package/dist/area-BE2wo7fv.js.map +1 -0
  249. package/dist/area-D3Qx7k7K.cjs +2 -0
  250. package/dist/area-D3Qx7k7K.cjs.map +1 -0
  251. package/dist/array-B7TkkRH0.js +89 -0
  252. package/dist/array-B7TkkRH0.js.map +1 -0
  253. package/dist/array-DKbXV8lR.cjs +2 -0
  254. package/dist/array-DKbXV8lR.cjs.map +1 -0
  255. package/dist/band-BEjh2CHI.js +47 -0
  256. package/dist/band-BEjh2CHI.js.map +1 -0
  257. package/dist/band-CAApY4Pd.cjs +2 -0
  258. package/dist/band-CAApY4Pd.cjs.map +1 -0
  259. package/dist/checkIfMultiple-CaefP4X2.js +2264 -0
  260. package/dist/checkIfMultiple-CaefP4X2.js.map +1 -0
  261. package/dist/checkIfMultiple-D3h8to1T.cjs +12 -0
  262. package/dist/checkIfMultiple-D3h8to1T.cjs.map +1 -0
  263. package/dist/checkIfNullOrUndefined.d.ts +15 -0
  264. package/dist/checkIfNullOrUndefined.js +2 -0
  265. package/dist/checkIfNullOrUndefined.js.map +1 -0
  266. package/dist/customArea-B47Ew5cT.cjs +2 -0
  267. package/dist/customArea-B47Ew5cT.cjs.map +1 -0
  268. package/dist/customArea-I3MsoqIl.js +176 -0
  269. package/dist/customArea-I3MsoqIl.js.map +1 -0
  270. package/dist/defaultLocale-BEa-49Qz.js +172 -0
  271. package/dist/defaultLocale-BEa-49Qz.js.map +1 -0
  272. package/dist/defaultLocale-DIVzfLaQ.cjs +2 -0
  273. package/dist/defaultLocale-DIVzfLaQ.cjs.map +1 -0
  274. package/dist/delaunay-C1uAf38t.js +684 -0
  275. package/dist/delaunay-C1uAf38t.js.map +1 -0
  276. package/dist/delaunay-rcy0HhZi.cjs +2 -0
  277. package/dist/delaunay-rcy0HhZi.cjs.map +1 -0
  278. package/dist/ensureCompleteData-BBDZbDCE.js +102 -0
  279. package/dist/ensureCompleteData-BBDZbDCE.js.map +1 -0
  280. package/dist/ensureCompleteData-DqWQ2Zbi.cjs +2 -0
  281. package/dist/ensureCompleteData-DqWQ2Zbi.cjs.map +1 -0
  282. package/dist/excelDownload.d.ts +31 -0
  283. package/dist/excelDownload.js +2 -0
  284. package/dist/excelDownload.js.map +1 -0
  285. package/dist/fetchAndParseData.d.ts +84 -0
  286. package/dist/fetchAndParseData.js +16 -0
  287. package/dist/fetchAndParseData.js.map +1 -0
  288. package/dist/filterData-B8ocT57s.js +14 -0
  289. package/dist/filterData-B8ocT57s.js.map +1 -0
  290. package/dist/filterData-DN6py7y_.cjs +2 -0
  291. package/dist/filterData-DN6py7y_.cjs.map +1 -0
  292. package/dist/generateCodes.d.ts +25 -0
  293. package/dist/generateCodes.js +2 -0
  294. package/dist/generateCodes.js.map +1 -0
  295. package/dist/generateRandomString-B5zBiJzS.cjs +2 -0
  296. package/dist/generateRandomString-B5zBiJzS.cjs.map +1 -0
  297. package/dist/generateRandomString-za3IQGfQ.js +11 -0
  298. package/dist/generateRandomString-za3IQGfQ.js.map +1 -0
  299. package/dist/getJenks.d.ts +17 -0
  300. package/dist/getJenks.js +2 -0
  301. package/dist/getJenks.js.map +1 -0
  302. package/dist/getPercentileValue.d.ts +13 -0
  303. package/dist/getPercentileValue.js +2 -0
  304. package/dist/getPercentileValue.js.map +1 -0
  305. package/dist/getQueryParamsFromLink.d.ts +18 -0
  306. package/dist/getQueryParamsFromLink.js +2 -0
  307. package/dist/getQueryParamsFromLink.js.map +1 -0
  308. package/dist/getSchema.d.ts +3256 -0
  309. package/dist/getSchema.js +2 -0
  310. package/dist/getSchema.js.map +1 -0
  311. package/dist/getSliderMarks-CWajGCGq.js +719 -0
  312. package/dist/getSliderMarks-CWajGCGq.js.map +1 -0
  313. package/dist/getSliderMarks-DDJ1CdhL.cjs +6 -0
  314. package/dist/getSliderMarks-DDJ1CdhL.cjs.map +1 -0
  315. package/dist/getTextColorBasedOnBgColor.d.ts +13 -0
  316. package/dist/getTextColorBasedOnBgColor.js +2 -0
  317. package/dist/getTextColorBasedOnBgColor.js.map +1 -0
  318. package/dist/getUniqValue.d.ts +18 -0
  319. package/dist/getUniqValue.js +2 -0
  320. package/dist/getUniqValue.js.map +1 -0
  321. package/dist/graphList.d.ts +9 -0
  322. package/dist/graphList.js +2 -0
  323. package/dist/graphList.js.map +1 -0
  324. package/dist/imageDownload.d.ts +16 -0
  325. package/dist/imageDownload.js +3 -0
  326. package/dist/imageDownload.js.map +1 -0
  327. package/dist/index-01r5X3Gr-9jE0ObrK.cjs +2 -0
  328. package/dist/index-01r5X3Gr-9jE0ObrK.cjs.map +1 -0
  329. package/dist/index-01r5X3Gr-kH7FxQ7P.js +451 -0
  330. package/dist/index-01r5X3Gr-kH7FxQ7P.js.map +1 -0
  331. package/dist/index-27yTRcko.js +35 -0
  332. package/dist/index-27yTRcko.js.map +1 -0
  333. package/dist/index-B0rbzOoC.cjs +2 -0
  334. package/dist/index-B0rbzOoC.cjs.map +1 -0
  335. package/dist/index-BGMGC-HN.cjs +22 -0
  336. package/dist/index-BGMGC-HN.cjs.map +1 -0
  337. package/dist/index-BHm2KTjD-2e-Fu8L-.js +702 -0
  338. package/dist/index-BHm2KTjD-2e-Fu8L-.js.map +1 -0
  339. package/dist/index-BHm2KTjD-D8FylaKc.cjs +44 -0
  340. package/dist/index-BHm2KTjD-D8FylaKc.cjs.map +1 -0
  341. package/dist/index-BIPNFFja.js +506 -0
  342. package/dist/index-BIPNFFja.js.map +1 -0
  343. package/dist/index-BLizQDlg.js +658 -0
  344. package/dist/index-BLizQDlg.js.map +1 -0
  345. package/dist/index-BXns0-ng.cjs +2 -0
  346. package/dist/index-BXns0-ng.cjs.map +1 -0
  347. package/dist/index-BYroABPm.cjs +2 -0
  348. package/dist/index-BYroABPm.cjs.map +1 -0
  349. package/dist/index-BczVvEBZ.cjs +2 -0
  350. package/dist/index-BczVvEBZ.cjs.map +1 -0
  351. package/dist/index-BzeLQvXk.cjs +2 -0
  352. package/dist/index-BzeLQvXk.cjs.map +1 -0
  353. package/dist/index-C1rRk_50.js +273 -0
  354. package/dist/index-C1rRk_50.js.map +1 -0
  355. package/dist/index-C21TvELx.cjs +2 -0
  356. package/dist/index-C21TvELx.cjs.map +1 -0
  357. package/dist/index-CEc_9zWy.cjs +2 -0
  358. package/dist/index-CEc_9zWy.cjs.map +1 -0
  359. package/dist/index-CZbIGs8q.cjs +2 -0
  360. package/dist/index-CZbIGs8q.cjs.map +1 -0
  361. package/dist/index-CaAIPGZo.js +631 -0
  362. package/dist/index-CaAIPGZo.js.map +1 -0
  363. package/dist/index-CbVeVrla.cjs +2 -0
  364. package/dist/index-CbVeVrla.cjs.map +1 -0
  365. package/dist/index-CqzhBPuO-CfQywbdq.js +41 -0
  366. package/dist/index-CqzhBPuO-CfQywbdq.js.map +1 -0
  367. package/dist/index-CqzhBPuO-raKZqS7l.cjs +2 -0
  368. package/dist/index-CqzhBPuO-raKZqS7l.cjs.map +1 -0
  369. package/dist/index-D7ltPi18.js +26 -0
  370. package/dist/index-D7ltPi18.js.map +1 -0
  371. package/dist/index-DSnvdkHZ.js +495 -0
  372. package/dist/index-DSnvdkHZ.js.map +1 -0
  373. package/dist/index-DXmF_0ez.js +308 -0
  374. package/dist/index-DXmF_0ez.js.map +1 -0
  375. package/dist/index-Db-Yg_Ud.js +120 -0
  376. package/dist/index-Db-Yg_Ud.js.map +1 -0
  377. package/dist/index-Ds0uHjK9.cjs +2 -0
  378. package/dist/index-Ds0uHjK9.cjs.map +1 -0
  379. package/dist/index-DxagiOHo.js +707 -0
  380. package/dist/index-DxagiOHo.js.map +1 -0
  381. package/dist/index-DzdwZ2OA.js +77 -0
  382. package/dist/index-DzdwZ2OA.js.map +1 -0
  383. package/dist/index-UV9hjG_S.js +53 -0
  384. package/dist/index-UV9hjG_S.js.map +1 -0
  385. package/dist/index-a2C2Bqn2.cjs +10 -0
  386. package/dist/index-a2C2Bqn2.cjs.map +1 -0
  387. package/dist/index.js +1 -52488
  388. package/dist/index.js.map +1 -1
  389. package/dist/init-BhZylTFx.js +63 -0
  390. package/dist/init-BhZylTFx.js.map +1 -0
  391. package/dist/init-DU0ybBc_.cjs +2 -0
  392. package/dist/init-DU0ybBc_.cjs.map +1 -0
  393. package/dist/line-CPfhohvF.js +68 -0
  394. package/dist/line-CPfhohvF.js.map +1 -0
  395. package/dist/line-DHV4JwCR.cjs +2 -0
  396. package/dist/line-DHV4JwCR.cjs.map +1 -0
  397. package/dist/linear-BVckp9RD.cjs +2 -0
  398. package/dist/linear-BVckp9RD.cjs.map +1 -0
  399. package/dist/linear-DUdu7l2G.js +221 -0
  400. package/dist/linear-DUdu7l2G.js.map +1 -0
  401. package/dist/numberFormattingFunction.d.ts +22 -0
  402. package/dist/numberFormattingFunction.js +2 -0
  403. package/dist/numberFormattingFunction.js.map +1 -0
  404. package/dist/ordinal-BOeNbyae.cjs +2 -0
  405. package/dist/ordinal-BOeNbyae.cjs.map +1 -0
  406. package/dist/ordinal-w9Lu4Stb.js +62 -0
  407. package/dist/ordinal-w9Lu4Stb.js.map +1 -0
  408. package/dist/parse-DlCRUFh_.js +2768 -0
  409. package/dist/parse-DlCRUFh_.js.map +1 -0
  410. package/dist/parse-hMnG_lRV.cjs +2 -0
  411. package/dist/parse-hMnG_lRV.cjs.map +1 -0
  412. package/dist/pointer-CWRWOsrb.js +23 -0
  413. package/dist/pointer-CWRWOsrb.js.map +1 -0
  414. package/dist/pointer-Dkq5NV1q.cjs +2 -0
  415. package/dist/pointer-Dkq5NV1q.cjs.map +1 -0
  416. package/dist/pow-B5-jkdHU.cjs +2 -0
  417. package/dist/pow-B5-jkdHU.cjs.map +1 -0
  418. package/dist/pow-e8zx3AQJ.js +35 -0
  419. package/dist/pow-e8zx3AQJ.js.map +1 -0
  420. package/dist/removeOutliers.d.ts +16 -0
  421. package/dist/removeOutliers.js +2 -0
  422. package/dist/removeOutliers.js.map +1 -0
  423. package/dist/select-Bnfk0lJx.cjs +2 -0
  424. package/dist/select-Bnfk0lJx.cjs.map +1 -0
  425. package/dist/select-DKy99ogv.js +584 -0
  426. package/dist/select-DKy99ogv.js.map +1 -0
  427. package/dist/simple-statistics-flVzqVtt.js +65 -0
  428. package/dist/simple-statistics-flVzqVtt.js.map +1 -0
  429. package/dist/simple-statistics-xm8c0LQQ.cjs +2 -0
  430. package/dist/simple-statistics-xm8c0LQQ.cjs.map +1 -0
  431. package/dist/step-BZ3C8QFW.cjs +2 -0
  432. package/dist/step-BZ3C8QFW.cjs.map +1 -0
  433. package/dist/step-BrDul-H4.js +119 -0
  434. package/dist/step-BrDul-H4.js.map +1 -0
  435. package/dist/string-B8KlVSPX.js +364 -0
  436. package/dist/string-B8KlVSPX.js.map +1 -0
  437. package/dist/string-CRoCZCYa.cjs +2 -0
  438. package/dist/string-CRoCZCYa.cjs.map +1 -0
  439. package/dist/string2HTML-BX0oNw83.js +758 -0
  440. package/dist/string2HTML-BX0oNw83.js.map +1 -0
  441. package/dist/string2HTML-X4ZYX5jI.cjs +3 -0
  442. package/dist/string2HTML-X4ZYX5jI.cjs.map +1 -0
  443. package/dist/style.css +1 -1
  444. package/dist/svgDownload.d.ts +16 -0
  445. package/dist/svgDownload.js +2 -0
  446. package/dist/svgDownload.js.map +1 -0
  447. package/dist/threshold-DFfqcDMa.js +23 -0
  448. package/dist/threshold-DFfqcDMa.js.map +1 -0
  449. package/dist/threshold-DNsSUf8Q.cjs +2 -0
  450. package/dist/threshold-DNsSUf8Q.cjs.map +1 -0
  451. package/dist/time-Byw_jYQ7.cjs +2 -0
  452. package/dist/time-Byw_jYQ7.cjs.map +1 -0
  453. package/dist/time-BzJP5SPC.js +715 -0
  454. package/dist/time-BzJP5SPC.js.map +1 -0
  455. package/dist/timer-B39XOBYL.js +124 -0
  456. package/dist/timer-B39XOBYL.js.map +1 -0
  457. package/dist/timer-CKyBCVzT.cjs +2 -0
  458. package/dist/timer-CKyBCVzT.cjs.map +1 -0
  459. package/dist/toConsumableArray-BSMMWi3w-Cu4vcE-m.js +139 -0
  460. package/dist/toConsumableArray-BSMMWi3w-Cu4vcE-m.js.map +1 -0
  461. package/dist/toConsumableArray-BSMMWi3w-DJL7-zAp.cjs +4 -0
  462. package/dist/toConsumableArray-BSMMWi3w-DJL7-zAp.cjs.map +1 -0
  463. package/dist/transformColumnsToArray.d.ts +38 -0
  464. package/dist/transformColumnsToArray.js +2 -0
  465. package/dist/transformColumnsToArray.js.map +1 -0
  466. package/dist/transformDataForAggregation.d.ts +38 -0
  467. package/dist/transformDataForAggregation.js +2 -0
  468. package/dist/transformDataForAggregation.js.map +1 -0
  469. package/dist/transformDataForGraph.d.ts +47 -0
  470. package/dist/transformDataForGraph.js +2 -0
  471. package/dist/transformDataForGraph.js.map +1 -0
  472. package/dist/transformDataForGraphFromFile.d.ts +66 -0
  473. package/dist/transformDataForGraphFromFile.js +2 -0
  474. package/dist/transformDataForGraphFromFile.js.map +1 -0
  475. package/dist/use-in-view-CZPXmTZM.js +4645 -0
  476. package/dist/use-in-view-CZPXmTZM.js.map +1 -0
  477. package/dist/use-in-view-Dl1CsAIo.cjs +2 -0
  478. package/dist/use-in-view-Dl1CsAIo.cjs.map +1 -0
  479. package/dist/validateSchema.d.ts +68 -0
  480. package/dist/validateSchema.js +2 -0
  481. package/dist/validateSchema.js.map +1 -0
  482. package/dist/x-Dft9NVe_-DcB7wtv5.js +61 -0
  483. package/dist/x-Dft9NVe_-DcB7wtv5.js.map +1 -0
  484. package/dist/x-Dft9NVe_-LeyJu02C.cjs +27 -0
  485. package/dist/x-Dft9NVe_-LeyJu02C.cjs.map +1 -0
  486. package/dist/y-D0sAaVii.js +421 -0
  487. package/dist/y-D0sAaVii.js.map +1 -0
  488. package/dist/y-QcCbqrzx.cjs +2 -0
  489. package/dist/y-QcCbqrzx.cjs.map +1 -0
  490. package/dist/zoom-Lo7IAUfC.cjs +2 -0
  491. package/dist/zoom-Lo7IAUfC.cjs.map +1 -0
  492. package/dist/zoom-_lqdiGoI.js +1983 -0
  493. package/dist/zoom-_lqdiGoI.js.map +1 -0
  494. package/package.json +415 -4
  495. package/dist/index.cjs +0 -68
  496. package/dist/index.cjs.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"zoom-Lo7IAUfC.cjs","sources":["../node_modules/d3-array/src/fsum.js","../node_modules/d3-array/src/merge.js","../node_modules/d3-interpolate/src/transform/decompose.js","../node_modules/d3-interpolate/src/transform/parse.js","../node_modules/d3-interpolate/src/transform/index.js","../node_modules/d3-interpolate/src/zoom.js","../node_modules/d3-timer/src/timeout.js","../node_modules/@turf/helpers/dist/esm/index.js","../node_modules/@turf/meta/dist/esm/index.js","../node_modules/@turf/bbox/dist/esm/index.js","../node_modules/@turf/centroid/dist/esm/index.js","../node_modules/d3-geo/src/math.js","../node_modules/d3-geo/src/noop.js","../node_modules/d3-geo/src/stream.js","../node_modules/d3-geo/src/cartesian.js","../node_modules/d3-geo/src/compose.js","../node_modules/d3-geo/src/rotation.js","../node_modules/d3-geo/src/circle.js","../node_modules/d3-geo/src/clip/buffer.js","../node_modules/d3-geo/src/pointEqual.js","../node_modules/d3-geo/src/clip/rejoin.js","../node_modules/d3-geo/src/polygonContains.js","../node_modules/d3-geo/src/clip/index.js","../node_modules/d3-geo/src/clip/antimeridian.js","../node_modules/d3-geo/src/clip/circle.js","../node_modules/d3-geo/src/clip/line.js","../node_modules/d3-geo/src/clip/rectangle.js","../node_modules/d3-geo/src/identity.js","../node_modules/d3-geo/src/path/bounds.js","../node_modules/d3-geo/src/transform.js","../node_modules/d3-geo/src/projection/fit.js","../node_modules/d3-geo/src/projection/resample.js","../node_modules/d3-geo/src/projection/index.js","../node_modules/d3-geo/src/projection/conic.js","../node_modules/d3-geo/src/projection/cylindricalEqualArea.js","../node_modules/d3-geo/src/projection/conicEqualArea.js","../node_modules/d3-geo/src/projection/albers.js","../node_modules/d3-geo/src/projection/albersUsa.js","../node_modules/d3-geo/src/projection/azimuthal.js","../node_modules/d3-geo/src/projection/mercator.js","../node_modules/d3-geo/src/projection/equalEarth.js","../node_modules/d3-geo/src/projection/naturalEarth1.js","../node_modules/d3-geo/src/projection/orthographic.js","../node_modules/d3-drag/src/noevent.js","../node_modules/d3-drag/src/nodrag.js","../node_modules/d3-transition/src/transition/schedule.js","../node_modules/d3-transition/src/interrupt.js","../node_modules/d3-transition/src/selection/interrupt.js","../node_modules/d3-transition/src/transition/tween.js","../node_modules/d3-transition/src/transition/interpolate.js","../node_modules/d3-transition/src/transition/attr.js","../node_modules/d3-transition/src/transition/attrTween.js","../node_modules/d3-transition/src/transition/delay.js","../node_modules/d3-transition/src/transition/duration.js","../node_modules/d3-transition/src/transition/ease.js","../node_modules/d3-transition/src/transition/easeVarying.js","../node_modules/d3-transition/src/transition/filter.js","../node_modules/d3-transition/src/transition/merge.js","../node_modules/d3-transition/src/transition/on.js","../node_modules/d3-transition/src/transition/remove.js","../node_modules/d3-transition/src/transition/select.js","../node_modules/d3-transition/src/transition/selectAll.js","../node_modules/d3-transition/src/transition/selection.js","../node_modules/d3-transition/src/transition/style.js","../node_modules/d3-transition/src/transition/styleTween.js","../node_modules/d3-transition/src/transition/text.js","../node_modules/d3-transition/src/transition/textTween.js","../node_modules/d3-transition/src/transition/transition.js","../node_modules/d3-transition/src/transition/end.js","../node_modules/d3-transition/src/transition/index.js","../node_modules/d3-ease/src/cubic.js","../node_modules/d3-transition/src/selection/transition.js","../node_modules/d3-transition/src/selection/index.js","../node_modules/d3-zoom/src/constant.js","../node_modules/d3-zoom/src/event.js","../node_modules/d3-zoom/src/transform.js","../node_modules/d3-zoom/src/noevent.js","../node_modules/d3-zoom/src/zoom.js"],"sourcesContent":["// https://github.com/python/cpython/blob/a74eea238f5baba15797e2e8b570d153bc8690a7/Modules/mathmodule.c#L1423\nexport class Adder {\n constructor() {\n this._partials = new Float64Array(32);\n this._n = 0;\n }\n add(x) {\n const p = this._partials;\n let i = 0;\n for (let j = 0; j < this._n && j < 32; j++) {\n const y = p[j],\n hi = x + y,\n lo = Math.abs(x) < Math.abs(y) ? x - (hi - y) : y - (hi - x);\n if (lo) p[i++] = lo;\n x = hi;\n }\n p[i] = x;\n this._n = i + 1;\n return this;\n }\n valueOf() {\n const p = this._partials;\n let n = this._n, x, y, lo, hi = 0;\n if (n > 0) {\n hi = p[--n];\n while (n > 0) {\n x = hi;\n y = p[--n];\n hi = x + y;\n lo = y - (hi - x);\n if (lo) break;\n }\n if (n > 0 && ((lo < 0 && p[n - 1] < 0) || (lo > 0 && p[n - 1] > 0))) {\n y = lo * 2;\n x = hi + y;\n if (y == x - hi) hi = x;\n }\n }\n return hi;\n }\n}\n\nexport function fsum(values, valueof) {\n const adder = new Adder();\n if (valueof === undefined) {\n for (let value of values) {\n if (value = +value) {\n adder.add(value);\n }\n }\n } else {\n let index = -1;\n for (let value of values) {\n if (value = +valueof(value, ++index, values)) {\n adder.add(value);\n }\n }\n }\n return +adder;\n}\n\nexport function fcumsum(values, valueof) {\n const adder = new Adder();\n let index = -1;\n return Float64Array.from(values, valueof === undefined\n ? v => adder.add(+v || 0)\n : v => adder.add(+valueof(v, ++index, values) || 0)\n );\n}\n","function* flatten(arrays) {\n for (const array of arrays) {\n yield* array;\n }\n}\n\nexport default function merge(arrays) {\n return Array.from(flatten(arrays));\n}\n","var degrees = 180 / Math.PI;\n\nexport var identity = {\n translateX: 0,\n translateY: 0,\n rotate: 0,\n skewX: 0,\n scaleX: 1,\n scaleY: 1\n};\n\nexport default function(a, b, c, d, e, f) {\n var scaleX, scaleY, skewX;\n if (scaleX = Math.sqrt(a * a + b * b)) a /= scaleX, b /= scaleX;\n if (skewX = a * c + b * d) c -= a * skewX, d -= b * skewX;\n if (scaleY = Math.sqrt(c * c + d * d)) c /= scaleY, d /= scaleY, skewX /= scaleY;\n if (a * d < b * c) a = -a, b = -b, skewX = -skewX, scaleX = -scaleX;\n return {\n translateX: e,\n translateY: f,\n rotate: Math.atan2(b, a) * degrees,\n skewX: Math.atan(skewX) * degrees,\n scaleX: scaleX,\n scaleY: scaleY\n };\n}\n","import decompose, {identity} from \"./decompose.js\";\n\nvar svgNode;\n\n/* eslint-disable no-undef */\nexport function parseCss(value) {\n const m = new (typeof DOMMatrix === \"function\" ? DOMMatrix : WebKitCSSMatrix)(value + \"\");\n return m.isIdentity ? identity : decompose(m.a, m.b, m.c, m.d, m.e, m.f);\n}\n\nexport function parseSvg(value) {\n if (value == null) return identity;\n if (!svgNode) svgNode = document.createElementNS(\"http://www.w3.org/2000/svg\", \"g\");\n svgNode.setAttribute(\"transform\", value);\n if (!(value = svgNode.transform.baseVal.consolidate())) return identity;\n value = value.matrix;\n return decompose(value.a, value.b, value.c, value.d, value.e, value.f);\n}\n","import number from \"../number.js\";\nimport {parseCss, parseSvg} from \"./parse.js\";\n\nfunction interpolateTransform(parse, pxComma, pxParen, degParen) {\n\n function pop(s) {\n return s.length ? s.pop() + \" \" : \"\";\n }\n\n function translate(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(\"translate(\", null, pxComma, null, pxParen);\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb || yb) {\n s.push(\"translate(\" + xb + pxComma + yb + pxParen);\n }\n }\n\n function rotate(a, b, s, q) {\n if (a !== b) {\n if (a - b > 180) b += 360; else if (b - a > 180) a += 360; // shortest path\n q.push({i: s.push(pop(s) + \"rotate(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"rotate(\" + b + degParen);\n }\n }\n\n function skewX(a, b, s, q) {\n if (a !== b) {\n q.push({i: s.push(pop(s) + \"skewX(\", null, degParen) - 2, x: number(a, b)});\n } else if (b) {\n s.push(pop(s) + \"skewX(\" + b + degParen);\n }\n }\n\n function scale(xa, ya, xb, yb, s, q) {\n if (xa !== xb || ya !== yb) {\n var i = s.push(pop(s) + \"scale(\", null, \",\", null, \")\");\n q.push({i: i - 4, x: number(xa, xb)}, {i: i - 2, x: number(ya, yb)});\n } else if (xb !== 1 || yb !== 1) {\n s.push(pop(s) + \"scale(\" + xb + \",\" + yb + \")\");\n }\n }\n\n return function(a, b) {\n var s = [], // string constants and placeholders\n q = []; // number interpolators\n a = parse(a), b = parse(b);\n translate(a.translateX, a.translateY, b.translateX, b.translateY, s, q);\n rotate(a.rotate, b.rotate, s, q);\n skewX(a.skewX, b.skewX, s, q);\n scale(a.scaleX, a.scaleY, b.scaleX, b.scaleY, s, q);\n a = b = null; // gc\n return function(t) {\n var i = -1, n = q.length, o;\n while (++i < n) s[(o = q[i]).i] = o.x(t);\n return s.join(\"\");\n };\n };\n}\n\nexport var interpolateTransformCss = interpolateTransform(parseCss, \"px, \", \"px)\", \"deg)\");\nexport var interpolateTransformSvg = interpolateTransform(parseSvg, \", \", \")\", \")\");\n","var epsilon2 = 1e-12;\n\nfunction cosh(x) {\n return ((x = Math.exp(x)) + 1 / x) / 2;\n}\n\nfunction sinh(x) {\n return ((x = Math.exp(x)) - 1 / x) / 2;\n}\n\nfunction tanh(x) {\n return ((x = Math.exp(2 * x)) - 1) / (x + 1);\n}\n\nexport default (function zoomRho(rho, rho2, rho4) {\n\n // p0 = [ux0, uy0, w0]\n // p1 = [ux1, uy1, w1]\n function zoom(p0, p1) {\n var ux0 = p0[0], uy0 = p0[1], w0 = p0[2],\n ux1 = p1[0], uy1 = p1[1], w1 = p1[2],\n dx = ux1 - ux0,\n dy = uy1 - uy0,\n d2 = dx * dx + dy * dy,\n i,\n S;\n\n // Special case for u0 ≅ u1.\n if (d2 < epsilon2) {\n S = Math.log(w1 / w0) / rho;\n i = function(t) {\n return [\n ux0 + t * dx,\n uy0 + t * dy,\n w0 * Math.exp(rho * t * S)\n ];\n }\n }\n\n // General case.\n else {\n var d1 = Math.sqrt(d2),\n b0 = (w1 * w1 - w0 * w0 + rho4 * d2) / (2 * w0 * rho2 * d1),\n b1 = (w1 * w1 - w0 * w0 - rho4 * d2) / (2 * w1 * rho2 * d1),\n r0 = Math.log(Math.sqrt(b0 * b0 + 1) - b0),\n r1 = Math.log(Math.sqrt(b1 * b1 + 1) - b1);\n S = (r1 - r0) / rho;\n i = function(t) {\n var s = t * S,\n coshr0 = cosh(r0),\n u = w0 / (rho2 * d1) * (coshr0 * tanh(rho * s + r0) - sinh(r0));\n return [\n ux0 + u * dx,\n uy0 + u * dy,\n w0 * coshr0 / cosh(rho * s + r0)\n ];\n }\n }\n\n i.duration = S * 1000 * rho / Math.SQRT2;\n\n return i;\n }\n\n zoom.rho = function(_) {\n var _1 = Math.max(1e-3, +_), _2 = _1 * _1, _4 = _2 * _2;\n return zoomRho(_1, _2, _4);\n };\n\n return zoom;\n})(Math.SQRT2, 2, 4);\n","import {Timer} from \"./timer.js\";\n\nexport default function(callback, delay, time) {\n var t = new Timer;\n delay = delay == null ? 0 : +delay;\n t.restart(elapsed => {\n t.stop();\n callback(elapsed + delay);\n }, delay, time);\n return t;\n}\n","// 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","// index.ts\nimport { coordEach } from \"@turf/meta\";\nfunction bbox(geojson, options = {}) {\n if (geojson.bbox != null && true !== options.recompute) {\n return geojson.bbox;\n }\n const result = [Infinity, Infinity, -Infinity, -Infinity];\n coordEach(geojson, (coord) => {\n if (result[0] > coord[0]) {\n result[0] = coord[0];\n }\n if (result[1] > coord[1]) {\n result[1] = coord[1];\n }\n if (result[2] < coord[0]) {\n result[2] = coord[0];\n }\n if (result[3] < coord[1]) {\n result[3] = coord[1];\n }\n });\n return result;\n}\nvar turf_bbox_default = bbox;\nexport {\n bbox,\n turf_bbox_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","export var epsilon = 1e-6;\nexport var epsilon2 = 1e-12;\nexport var pi = Math.PI;\nexport var halfPi = pi / 2;\nexport var quarterPi = pi / 4;\nexport var tau = pi * 2;\n\nexport var degrees = 180 / pi;\nexport var radians = pi / 180;\n\nexport var abs = Math.abs;\nexport var atan = Math.atan;\nexport var atan2 = Math.atan2;\nexport var cos = Math.cos;\nexport var ceil = Math.ceil;\nexport var exp = Math.exp;\nexport var floor = Math.floor;\nexport var hypot = Math.hypot;\nexport var log = Math.log;\nexport var pow = Math.pow;\nexport var sin = Math.sin;\nexport var sign = Math.sign || function(x) { return x > 0 ? 1 : x < 0 ? -1 : 0; };\nexport var sqrt = Math.sqrt;\nexport var tan = Math.tan;\n\nexport function acos(x) {\n return x > 1 ? 0 : x < -1 ? pi : Math.acos(x);\n}\n\nexport function asin(x) {\n return x > 1 ? halfPi : x < -1 ? -halfPi : Math.asin(x);\n}\n\nexport function haversin(x) {\n return (x = sin(x / 2)) * x;\n}\n","export default function noop() {}\n","function streamGeometry(geometry, stream) {\n if (geometry && streamGeometryType.hasOwnProperty(geometry.type)) {\n streamGeometryType[geometry.type](geometry, stream);\n }\n}\n\nvar streamObjectType = {\n Feature: function(object, stream) {\n streamGeometry(object.geometry, stream);\n },\n FeatureCollection: function(object, stream) {\n var features = object.features, i = -1, n = features.length;\n while (++i < n) streamGeometry(features[i].geometry, stream);\n }\n};\n\nvar streamGeometryType = {\n Sphere: function(object, stream) {\n stream.sphere();\n },\n Point: function(object, stream) {\n object = object.coordinates;\n stream.point(object[0], object[1], object[2]);\n },\n MultiPoint: function(object, stream) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) object = coordinates[i], stream.point(object[0], object[1], object[2]);\n },\n LineString: function(object, stream) {\n streamLine(object.coordinates, stream, 0);\n },\n MultiLineString: function(object, stream) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) streamLine(coordinates[i], stream, 0);\n },\n Polygon: function(object, stream) {\n streamPolygon(object.coordinates, stream);\n },\n MultiPolygon: function(object, stream) {\n var coordinates = object.coordinates, i = -1, n = coordinates.length;\n while (++i < n) streamPolygon(coordinates[i], stream);\n },\n GeometryCollection: function(object, stream) {\n var geometries = object.geometries, i = -1, n = geometries.length;\n while (++i < n) streamGeometry(geometries[i], stream);\n }\n};\n\nfunction streamLine(coordinates, stream, closed) {\n var i = -1, n = coordinates.length - closed, coordinate;\n stream.lineStart();\n while (++i < n) coordinate = coordinates[i], stream.point(coordinate[0], coordinate[1], coordinate[2]);\n stream.lineEnd();\n}\n\nfunction streamPolygon(coordinates, stream) {\n var i = -1, n = coordinates.length;\n stream.polygonStart();\n while (++i < n) streamLine(coordinates[i], stream, 1);\n stream.polygonEnd();\n}\n\nexport default function(object, stream) {\n if (object && streamObjectType.hasOwnProperty(object.type)) {\n streamObjectType[object.type](object, stream);\n } else {\n streamGeometry(object, stream);\n }\n}\n","import {asin, atan2, cos, sin, sqrt} from \"./math.js\";\n\nexport function spherical(cartesian) {\n return [atan2(cartesian[1], cartesian[0]), asin(cartesian[2])];\n}\n\nexport function cartesian(spherical) {\n var lambda = spherical[0], phi = spherical[1], cosPhi = cos(phi);\n return [cosPhi * cos(lambda), cosPhi * sin(lambda), sin(phi)];\n}\n\nexport function cartesianDot(a, b) {\n return a[0] * b[0] + a[1] * b[1] + a[2] * b[2];\n}\n\nexport function cartesianCross(a, b) {\n return [a[1] * b[2] - a[2] * b[1], a[2] * b[0] - a[0] * b[2], a[0] * b[1] - a[1] * b[0]];\n}\n\n// TODO return a\nexport function cartesianAddInPlace(a, b) {\n a[0] += b[0], a[1] += b[1], a[2] += b[2];\n}\n\nexport function cartesianScale(vector, k) {\n return [vector[0] * k, vector[1] * k, vector[2] * k];\n}\n\n// TODO return d\nexport function cartesianNormalizeInPlace(d) {\n var l = sqrt(d[0] * d[0] + d[1] * d[1] + d[2] * d[2]);\n d[0] /= l, d[1] /= l, d[2] /= l;\n}\n","export default function(a, b) {\n\n function compose(x, y) {\n return x = a(x, y), b(x[0], x[1]);\n }\n\n if (a.invert && b.invert) compose.invert = function(x, y) {\n return x = b.invert(x, y), x && a.invert(x[0], x[1]);\n };\n\n return compose;\n}\n","import compose from \"./compose.js\";\nimport {abs, asin, atan2, cos, degrees, pi, radians, sin, tau} from \"./math.js\";\n\nfunction rotationIdentity(lambda, phi) {\n if (abs(lambda) > pi) lambda -= Math.round(lambda / tau) * tau;\n return [lambda, phi];\n}\n\nrotationIdentity.invert = rotationIdentity;\n\nexport function rotateRadians(deltaLambda, deltaPhi, deltaGamma) {\n return (deltaLambda %= tau) ? (deltaPhi || deltaGamma ? compose(rotationLambda(deltaLambda), rotationPhiGamma(deltaPhi, deltaGamma))\n : rotationLambda(deltaLambda))\n : (deltaPhi || deltaGamma ? rotationPhiGamma(deltaPhi, deltaGamma)\n : rotationIdentity);\n}\n\nfunction forwardRotationLambda(deltaLambda) {\n return function(lambda, phi) {\n lambda += deltaLambda;\n if (abs(lambda) > pi) lambda -= Math.round(lambda / tau) * tau;\n return [lambda, phi];\n };\n}\n\nfunction rotationLambda(deltaLambda) {\n var rotation = forwardRotationLambda(deltaLambda);\n rotation.invert = forwardRotationLambda(-deltaLambda);\n return rotation;\n}\n\nfunction rotationPhiGamma(deltaPhi, deltaGamma) {\n var cosDeltaPhi = cos(deltaPhi),\n sinDeltaPhi = sin(deltaPhi),\n cosDeltaGamma = cos(deltaGamma),\n sinDeltaGamma = sin(deltaGamma);\n\n function rotation(lambda, phi) {\n var cosPhi = cos(phi),\n x = cos(lambda) * cosPhi,\n y = sin(lambda) * cosPhi,\n z = sin(phi),\n k = z * cosDeltaPhi + x * sinDeltaPhi;\n return [\n atan2(y * cosDeltaGamma - k * sinDeltaGamma, x * cosDeltaPhi - z * sinDeltaPhi),\n asin(k * cosDeltaGamma + y * sinDeltaGamma)\n ];\n }\n\n rotation.invert = function(lambda, phi) {\n var cosPhi = cos(phi),\n x = cos(lambda) * cosPhi,\n y = sin(lambda) * cosPhi,\n z = sin(phi),\n k = z * cosDeltaGamma - y * sinDeltaGamma;\n return [\n atan2(y * cosDeltaGamma + z * sinDeltaGamma, x * cosDeltaPhi + k * sinDeltaPhi),\n asin(k * cosDeltaPhi - x * sinDeltaPhi)\n ];\n };\n\n return rotation;\n}\n\nexport default function(rotate) {\n rotate = rotateRadians(rotate[0] * radians, rotate[1] * radians, rotate.length > 2 ? rotate[2] * radians : 0);\n\n function forward(coordinates) {\n coordinates = rotate(coordinates[0] * radians, coordinates[1] * radians);\n return coordinates[0] *= degrees, coordinates[1] *= degrees, coordinates;\n }\n\n forward.invert = function(coordinates) {\n coordinates = rotate.invert(coordinates[0] * radians, coordinates[1] * radians);\n return coordinates[0] *= degrees, coordinates[1] *= degrees, coordinates;\n };\n\n return forward;\n}\n","import {cartesian, cartesianNormalizeInPlace, spherical} from \"./cartesian.js\";\nimport constant from \"./constant.js\";\nimport {acos, cos, degrees, epsilon, radians, sin, tau} from \"./math.js\";\nimport {rotateRadians} from \"./rotation.js\";\n\n// Generates a circle centered at [0°, 0°], with a given radius and precision.\nexport function circleStream(stream, radius, delta, direction, t0, t1) {\n if (!delta) return;\n var cosRadius = cos(radius),\n sinRadius = sin(radius),\n step = direction * delta;\n if (t0 == null) {\n t0 = radius + direction * tau;\n t1 = radius - step / 2;\n } else {\n t0 = circleRadius(cosRadius, t0);\n t1 = circleRadius(cosRadius, t1);\n if (direction > 0 ? t0 < t1 : t0 > t1) t0 += direction * tau;\n }\n for (var point, t = t0; direction > 0 ? t > t1 : t < t1; t -= step) {\n point = spherical([cosRadius, -sinRadius * cos(t), -sinRadius * sin(t)]);\n stream.point(point[0], point[1]);\n }\n}\n\n// Returns the signed angle of a cartesian point relative to [cosRadius, 0, 0].\nfunction circleRadius(cosRadius, point) {\n point = cartesian(point), point[0] -= cosRadius;\n cartesianNormalizeInPlace(point);\n var radius = acos(-point[1]);\n return ((-point[2] < 0 ? -radius : radius) + tau - epsilon) % tau;\n}\n\nexport default function() {\n var center = constant([0, 0]),\n radius = constant(90),\n precision = constant(2),\n ring,\n rotate,\n stream = {point: point};\n\n function point(x, y) {\n ring.push(x = rotate(x, y));\n x[0] *= degrees, x[1] *= degrees;\n }\n\n function circle() {\n var c = center.apply(this, arguments),\n r = radius.apply(this, arguments) * radians,\n p = precision.apply(this, arguments) * radians;\n ring = [];\n rotate = rotateRadians(-c[0] * radians, -c[1] * radians, 0).invert;\n circleStream(stream, r, p, 1);\n c = {type: \"Polygon\", coordinates: [ring]};\n ring = rotate = null;\n return c;\n }\n\n circle.center = function(_) {\n return arguments.length ? (center = typeof _ === \"function\" ? _ : constant([+_[0], +_[1]]), circle) : center;\n };\n\n circle.radius = function(_) {\n return arguments.length ? (radius = typeof _ === \"function\" ? _ : constant(+_), circle) : radius;\n };\n\n circle.precision = function(_) {\n return arguments.length ? (precision = typeof _ === \"function\" ? _ : constant(+_), circle) : precision;\n };\n\n return circle;\n}\n","import noop from \"../noop.js\";\n\nexport default function() {\n var lines = [],\n line;\n return {\n point: function(x, y, m) {\n line.push([x, y, m]);\n },\n lineStart: function() {\n lines.push(line = []);\n },\n lineEnd: noop,\n rejoin: function() {\n if (lines.length > 1) lines.push(lines.pop().concat(lines.shift()));\n },\n result: function() {\n var result = lines;\n lines = [];\n line = null;\n return result;\n }\n };\n}\n","import {abs, epsilon} from \"./math.js\";\n\nexport default function(a, b) {\n return abs(a[0] - b[0]) < epsilon && abs(a[1] - b[1]) < epsilon;\n}\n","import pointEqual from \"../pointEqual.js\";\nimport {epsilon} from \"../math.js\";\n\nfunction Intersection(point, points, other, entry) {\n this.x = point;\n this.z = points;\n this.o = other; // another intersection\n this.e = entry; // is an entry?\n this.v = false; // visited\n this.n = this.p = null; // next & previous\n}\n\n// A generalized polygon clipping algorithm: given a polygon that has been cut\n// into its visible line segments, and rejoins the segments by interpolating\n// along the clip edge.\nexport default function(segments, compareIntersection, startInside, interpolate, stream) {\n var subject = [],\n clip = [],\n i,\n n;\n\n segments.forEach(function(segment) {\n if ((n = segment.length - 1) <= 0) return;\n var n, p0 = segment[0], p1 = segment[n], x;\n\n if (pointEqual(p0, p1)) {\n if (!p0[2] && !p1[2]) {\n stream.lineStart();\n for (i = 0; i < n; ++i) stream.point((p0 = segment[i])[0], p0[1]);\n stream.lineEnd();\n return;\n }\n // handle degenerate cases by moving the point\n p1[0] += 2 * epsilon;\n }\n\n subject.push(x = new Intersection(p0, segment, null, true));\n clip.push(x.o = new Intersection(p0, null, x, false));\n subject.push(x = new Intersection(p1, segment, null, false));\n clip.push(x.o = new Intersection(p1, null, x, true));\n });\n\n if (!subject.length) return;\n\n clip.sort(compareIntersection);\n link(subject);\n link(clip);\n\n for (i = 0, n = clip.length; i < n; ++i) {\n clip[i].e = startInside = !startInside;\n }\n\n var start = subject[0],\n points,\n point;\n\n while (1) {\n // Find first unvisited intersection.\n var current = start,\n isSubject = true;\n while (current.v) if ((current = current.n) === start) return;\n points = current.z;\n stream.lineStart();\n do {\n current.v = current.o.v = true;\n if (current.e) {\n if (isSubject) {\n for (i = 0, n = points.length; i < n; ++i) stream.point((point = points[i])[0], point[1]);\n } else {\n interpolate(current.x, current.n.x, 1, stream);\n }\n current = current.n;\n } else {\n if (isSubject) {\n points = current.p.z;\n for (i = points.length - 1; i >= 0; --i) stream.point((point = points[i])[0], point[1]);\n } else {\n interpolate(current.x, current.p.x, -1, stream);\n }\n current = current.p;\n }\n current = current.o;\n points = current.z;\n isSubject = !isSubject;\n } while (!current.v);\n stream.lineEnd();\n }\n}\n\nfunction link(array) {\n if (!(n = array.length)) return;\n var n,\n i = 0,\n a = array[0],\n b;\n while (++i < n) {\n a.n = b = array[i];\n b.p = a;\n a = b;\n }\n a.n = b = array[0];\n b.p = a;\n}\n","import {Adder} from \"d3-array\";\nimport {cartesian, cartesianCross, cartesianNormalizeInPlace} from \"./cartesian.js\";\nimport {abs, asin, atan2, cos, epsilon, epsilon2, halfPi, pi, quarterPi, sign, sin, tau} from \"./math.js\";\n\nfunction longitude(point) {\n return abs(point[0]) <= pi ? point[0] : sign(point[0]) * ((abs(point[0]) + pi) % tau - pi);\n}\n\nexport default function(polygon, point) {\n var lambda = longitude(point),\n phi = point[1],\n sinPhi = sin(phi),\n normal = [sin(lambda), -cos(lambda), 0],\n angle = 0,\n winding = 0;\n\n var sum = new Adder();\n\n if (sinPhi === 1) phi = halfPi + epsilon;\n else if (sinPhi === -1) phi = -halfPi - epsilon;\n\n for (var i = 0, n = polygon.length; i < n; ++i) {\n if (!(m = (ring = polygon[i]).length)) continue;\n var ring,\n m,\n point0 = ring[m - 1],\n lambda0 = longitude(point0),\n phi0 = point0[1] / 2 + quarterPi,\n sinPhi0 = sin(phi0),\n cosPhi0 = cos(phi0);\n\n for (var j = 0; j < m; ++j, lambda0 = lambda1, sinPhi0 = sinPhi1, cosPhi0 = cosPhi1, point0 = point1) {\n var point1 = ring[j],\n lambda1 = longitude(point1),\n phi1 = point1[1] / 2 + quarterPi,\n sinPhi1 = sin(phi1),\n cosPhi1 = cos(phi1),\n delta = lambda1 - lambda0,\n sign = delta >= 0 ? 1 : -1,\n absDelta = sign * delta,\n antimeridian = absDelta > pi,\n k = sinPhi0 * sinPhi1;\n\n sum.add(atan2(k * sign * sin(absDelta), cosPhi0 * cosPhi1 + k * cos(absDelta)));\n angle += antimeridian ? delta + sign * tau : delta;\n\n // Are the longitudes either side of the point’s meridian (lambda),\n // and are the latitudes smaller than the parallel (phi)?\n if (antimeridian ^ lambda0 >= lambda ^ lambda1 >= lambda) {\n var arc = cartesianCross(cartesian(point0), cartesian(point1));\n cartesianNormalizeInPlace(arc);\n var intersection = cartesianCross(normal, arc);\n cartesianNormalizeInPlace(intersection);\n var phiArc = (antimeridian ^ delta >= 0 ? -1 : 1) * asin(intersection[2]);\n if (phi > phiArc || phi === phiArc && (arc[0] || arc[1])) {\n winding += antimeridian ^ delta >= 0 ? 1 : -1;\n }\n }\n }\n }\n\n // First, determine whether the South pole is inside or outside:\n //\n // It is inside if:\n // * the polygon winds around it in a clockwise direction.\n // * the polygon does not (cumulatively) wind around it, but has a negative\n // (counter-clockwise) area.\n //\n // Second, count the (signed) number of times a segment crosses a lambda\n // from the point to the South pole. If it is zero, then the point is the\n // same side as the South pole.\n\n return (angle < -epsilon || angle < epsilon && sum < -epsilon2) ^ (winding & 1);\n}\n","import clipBuffer from \"./buffer.js\";\nimport clipRejoin from \"./rejoin.js\";\nimport {epsilon, halfPi} from \"../math.js\";\nimport polygonContains from \"../polygonContains.js\";\nimport {merge} from \"d3-array\";\n\nexport default function(pointVisible, clipLine, interpolate, start) {\n return function(sink) {\n var line = clipLine(sink),\n ringBuffer = clipBuffer(),\n ringSink = clipLine(ringBuffer),\n polygonStarted = false,\n polygon,\n segments,\n ring;\n\n var clip = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function() {\n clip.point = pointRing;\n clip.lineStart = ringStart;\n clip.lineEnd = ringEnd;\n segments = [];\n polygon = [];\n },\n polygonEnd: function() {\n clip.point = point;\n clip.lineStart = lineStart;\n clip.lineEnd = lineEnd;\n segments = merge(segments);\n var startInside = polygonContains(polygon, start);\n if (segments.length) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n clipRejoin(segments, compareIntersection, startInside, interpolate, sink);\n } else if (startInside) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n sink.lineStart();\n interpolate(null, null, 1, sink);\n sink.lineEnd();\n }\n if (polygonStarted) sink.polygonEnd(), polygonStarted = false;\n segments = polygon = null;\n },\n sphere: function() {\n sink.polygonStart();\n sink.lineStart();\n interpolate(null, null, 1, sink);\n sink.lineEnd();\n sink.polygonEnd();\n }\n };\n\n function point(lambda, phi) {\n if (pointVisible(lambda, phi)) sink.point(lambda, phi);\n }\n\n function pointLine(lambda, phi) {\n line.point(lambda, phi);\n }\n\n function lineStart() {\n clip.point = pointLine;\n line.lineStart();\n }\n\n function lineEnd() {\n clip.point = point;\n line.lineEnd();\n }\n\n function pointRing(lambda, phi) {\n ring.push([lambda, phi]);\n ringSink.point(lambda, phi);\n }\n\n function ringStart() {\n ringSink.lineStart();\n ring = [];\n }\n\n function ringEnd() {\n pointRing(ring[0][0], ring[0][1]);\n ringSink.lineEnd();\n\n var clean = ringSink.clean(),\n ringSegments = ringBuffer.result(),\n i, n = ringSegments.length, m,\n segment,\n point;\n\n ring.pop();\n polygon.push(ring);\n ring = null;\n\n if (!n) return;\n\n // No intersections.\n if (clean & 1) {\n segment = ringSegments[0];\n if ((m = segment.length - 1) > 0) {\n if (!polygonStarted) sink.polygonStart(), polygonStarted = true;\n sink.lineStart();\n for (i = 0; i < m; ++i) sink.point((point = segment[i])[0], point[1]);\n sink.lineEnd();\n }\n return;\n }\n\n // Rejoin connected segments.\n // TODO reuse ringBuffer.rejoin()?\n if (n > 1 && clean & 2) ringSegments.push(ringSegments.pop().concat(ringSegments.shift()));\n\n segments.push(ringSegments.filter(validSegment));\n }\n\n return clip;\n };\n}\n\nfunction validSegment(segment) {\n return segment.length > 1;\n}\n\n// Intersections are sorted along the clip edge. For both antimeridian cutting\n// and circle clipping, the same comparison is used.\nfunction compareIntersection(a, b) {\n return ((a = a.x)[0] < 0 ? a[1] - halfPi - epsilon : halfPi - a[1])\n - ((b = b.x)[0] < 0 ? b[1] - halfPi - epsilon : halfPi - b[1]);\n}\n","import clip from \"./index.js\";\nimport {abs, atan, cos, epsilon, halfPi, pi, sin} from \"../math.js\";\n\nexport default clip(\n function() { return true; },\n clipAntimeridianLine,\n clipAntimeridianInterpolate,\n [-pi, -halfPi]\n);\n\n// Takes a line and cuts into visible segments. Return values: 0 - there were\n// intersections or the line was empty; 1 - no intersections; 2 - there were\n// intersections, and the first and last segments should be rejoined.\nfunction clipAntimeridianLine(stream) {\n var lambda0 = NaN,\n phi0 = NaN,\n sign0 = NaN,\n clean; // no intersections\n\n return {\n lineStart: function() {\n stream.lineStart();\n clean = 1;\n },\n point: function(lambda1, phi1) {\n var sign1 = lambda1 > 0 ? pi : -pi,\n delta = abs(lambda1 - lambda0);\n if (abs(delta - pi) < epsilon) { // line crosses a pole\n stream.point(lambda0, phi0 = (phi0 + phi1) / 2 > 0 ? halfPi : -halfPi);\n stream.point(sign0, phi0);\n stream.lineEnd();\n stream.lineStart();\n stream.point(sign1, phi0);\n stream.point(lambda1, phi0);\n clean = 0;\n } else if (sign0 !== sign1 && delta >= pi) { // line crosses antimeridian\n if (abs(lambda0 - sign0) < epsilon) lambda0 -= sign0 * epsilon; // handle degeneracies\n if (abs(lambda1 - sign1) < epsilon) lambda1 -= sign1 * epsilon;\n phi0 = clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1);\n stream.point(sign0, phi0);\n stream.lineEnd();\n stream.lineStart();\n stream.point(sign1, phi0);\n clean = 0;\n }\n stream.point(lambda0 = lambda1, phi0 = phi1);\n sign0 = sign1;\n },\n lineEnd: function() {\n stream.lineEnd();\n lambda0 = phi0 = NaN;\n },\n clean: function() {\n return 2 - clean; // if intersections, rejoin first and last segments\n }\n };\n}\n\nfunction clipAntimeridianIntersect(lambda0, phi0, lambda1, phi1) {\n var cosPhi0,\n cosPhi1,\n sinLambda0Lambda1 = sin(lambda0 - lambda1);\n return abs(sinLambda0Lambda1) > epsilon\n ? atan((sin(phi0) * (cosPhi1 = cos(phi1)) * sin(lambda1)\n - sin(phi1) * (cosPhi0 = cos(phi0)) * sin(lambda0))\n / (cosPhi0 * cosPhi1 * sinLambda0Lambda1))\n : (phi0 + phi1) / 2;\n}\n\nfunction clipAntimeridianInterpolate(from, to, direction, stream) {\n var phi;\n if (from == null) {\n phi = direction * halfPi;\n stream.point(-pi, phi);\n stream.point(0, phi);\n stream.point(pi, phi);\n stream.point(pi, 0);\n stream.point(pi, -phi);\n stream.point(0, -phi);\n stream.point(-pi, -phi);\n stream.point(-pi, 0);\n stream.point(-pi, phi);\n } else if (abs(from[0] - to[0]) > epsilon) {\n var lambda = from[0] < to[0] ? pi : -pi;\n phi = direction * lambda / 2;\n stream.point(-lambda, phi);\n stream.point(0, phi);\n stream.point(lambda, phi);\n } else {\n stream.point(to[0], to[1]);\n }\n}\n","import {cartesian, cartesianAddInPlace, cartesianCross, cartesianDot, cartesianScale, spherical} from \"../cartesian.js\";\nimport {circleStream} from \"../circle.js\";\nimport {abs, cos, epsilon, pi, radians, sqrt} from \"../math.js\";\nimport pointEqual from \"../pointEqual.js\";\nimport clip from \"./index.js\";\n\nexport default function(radius) {\n var cr = cos(radius),\n delta = 2 * radians,\n smallRadius = cr > 0,\n notHemisphere = abs(cr) > epsilon; // TODO optimise for this common case\n\n function interpolate(from, to, direction, stream) {\n circleStream(stream, radius, delta, direction, from, to);\n }\n\n function visible(lambda, phi) {\n return cos(lambda) * cos(phi) > cr;\n }\n\n // Takes a line and cuts into visible segments. Return values used for polygon\n // clipping: 0 - there were intersections or the line was empty; 1 - no\n // intersections 2 - there were intersections, and the first and last segments\n // should be rejoined.\n function clipLine(stream) {\n var point0, // previous point\n c0, // code for previous point\n v0, // visibility of previous point\n v00, // visibility of first point\n clean; // no intersections\n return {\n lineStart: function() {\n v00 = v0 = false;\n clean = 1;\n },\n point: function(lambda, phi) {\n var point1 = [lambda, phi],\n point2,\n v = visible(lambda, phi),\n c = smallRadius\n ? v ? 0 : code(lambda, phi)\n : v ? code(lambda + (lambda < 0 ? pi : -pi), phi) : 0;\n if (!point0 && (v00 = v0 = v)) stream.lineStart();\n if (v !== v0) {\n point2 = intersect(point0, point1);\n if (!point2 || pointEqual(point0, point2) || pointEqual(point1, point2))\n point1[2] = 1;\n }\n if (v !== v0) {\n clean = 0;\n if (v) {\n // outside going in\n stream.lineStart();\n point2 = intersect(point1, point0);\n stream.point(point2[0], point2[1]);\n } else {\n // inside going out\n point2 = intersect(point0, point1);\n stream.point(point2[0], point2[1], 2);\n stream.lineEnd();\n }\n point0 = point2;\n } else if (notHemisphere && point0 && smallRadius ^ v) {\n var t;\n // If the codes for two points are different, or are both zero,\n // and there this segment intersects with the small circle.\n if (!(c & c0) && (t = intersect(point1, point0, true))) {\n clean = 0;\n if (smallRadius) {\n stream.lineStart();\n stream.point(t[0][0], t[0][1]);\n stream.point(t[1][0], t[1][1]);\n stream.lineEnd();\n } else {\n stream.point(t[1][0], t[1][1]);\n stream.lineEnd();\n stream.lineStart();\n stream.point(t[0][0], t[0][1], 3);\n }\n }\n }\n if (v && (!point0 || !pointEqual(point0, point1))) {\n stream.point(point1[0], point1[1]);\n }\n point0 = point1, v0 = v, c0 = c;\n },\n lineEnd: function() {\n if (v0) stream.lineEnd();\n point0 = null;\n },\n // Rejoin first and last segments if there were intersections and the first\n // and last points were visible.\n clean: function() {\n return clean | ((v00 && v0) << 1);\n }\n };\n }\n\n // Intersects the great circle between a and b with the clip circle.\n function intersect(a, b, two) {\n var pa = cartesian(a),\n pb = cartesian(b);\n\n // We have two planes, n1.p = d1 and n2.p = d2.\n // Find intersection line p(t) = c1 n1 + c2 n2 + t (n1 ⨯ n2).\n var n1 = [1, 0, 0], // normal\n n2 = cartesianCross(pa, pb),\n n2n2 = cartesianDot(n2, n2),\n n1n2 = n2[0], // cartesianDot(n1, n2),\n determinant = n2n2 - n1n2 * n1n2;\n\n // Two polar points.\n if (!determinant) return !two && a;\n\n var c1 = cr * n2n2 / determinant,\n c2 = -cr * n1n2 / determinant,\n n1xn2 = cartesianCross(n1, n2),\n A = cartesianScale(n1, c1),\n B = cartesianScale(n2, c2);\n cartesianAddInPlace(A, B);\n\n // Solve |p(t)|^2 = 1.\n var u = n1xn2,\n w = cartesianDot(A, u),\n uu = cartesianDot(u, u),\n t2 = w * w - uu * (cartesianDot(A, A) - 1);\n\n if (t2 < 0) return;\n\n var t = sqrt(t2),\n q = cartesianScale(u, (-w - t) / uu);\n cartesianAddInPlace(q, A);\n q = spherical(q);\n\n if (!two) return q;\n\n // Two intersection points.\n var lambda0 = a[0],\n lambda1 = b[0],\n phi0 = a[1],\n phi1 = b[1],\n z;\n\n if (lambda1 < lambda0) z = lambda0, lambda0 = lambda1, lambda1 = z;\n\n var delta = lambda1 - lambda0,\n polar = abs(delta - pi) < epsilon,\n meridian = polar || delta < epsilon;\n\n if (!polar && phi1 < phi0) z = phi0, phi0 = phi1, phi1 = z;\n\n // Check that the first point is between a and b.\n if (meridian\n ? polar\n ? phi0 + phi1 > 0 ^ q[1] < (abs(q[0] - lambda0) < epsilon ? phi0 : phi1)\n : phi0 <= q[1] && q[1] <= phi1\n : delta > pi ^ (lambda0 <= q[0] && q[0] <= lambda1)) {\n var q1 = cartesianScale(u, (-w + t) / uu);\n cartesianAddInPlace(q1, A);\n return [q, spherical(q1)];\n }\n }\n\n // Generates a 4-bit vector representing the location of a point relative to\n // the small circle's bounding box.\n function code(lambda, phi) {\n var r = smallRadius ? radius : pi - radius,\n code = 0;\n if (lambda < -r) code |= 1; // left\n else if (lambda > r) code |= 2; // right\n if (phi < -r) code |= 4; // below\n else if (phi > r) code |= 8; // above\n return code;\n }\n\n return clip(visible, clipLine, interpolate, smallRadius ? [0, -radius] : [-pi, radius - pi]);\n}\n","export default function(a, b, x0, y0, x1, y1) {\n var ax = a[0],\n ay = a[1],\n bx = b[0],\n by = b[1],\n t0 = 0,\n t1 = 1,\n dx = bx - ax,\n dy = by - ay,\n r;\n\n r = x0 - ax;\n if (!dx && r > 0) return;\n r /= dx;\n if (dx < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dx > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n\n r = x1 - ax;\n if (!dx && r < 0) return;\n r /= dx;\n if (dx < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dx > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n\n r = y0 - ay;\n if (!dy && r > 0) return;\n r /= dy;\n if (dy < 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n } else if (dy > 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n }\n\n r = y1 - ay;\n if (!dy && r < 0) return;\n r /= dy;\n if (dy < 0) {\n if (r > t1) return;\n if (r > t0) t0 = r;\n } else if (dy > 0) {\n if (r < t0) return;\n if (r < t1) t1 = r;\n }\n\n if (t0 > 0) a[0] = ax + t0 * dx, a[1] = ay + t0 * dy;\n if (t1 < 1) b[0] = ax + t1 * dx, b[1] = ay + t1 * dy;\n return true;\n}\n","import {abs, epsilon} from \"../math.js\";\nimport clipBuffer from \"./buffer.js\";\nimport clipLine from \"./line.js\";\nimport clipRejoin from \"./rejoin.js\";\nimport {merge} from \"d3-array\";\n\nvar clipMax = 1e9, clipMin = -clipMax;\n\n// TODO Use d3-polygon’s polygonContains here for the ring check?\n// TODO Eliminate duplicate buffering in clipBuffer and polygon.push?\n\nexport default function clipRectangle(x0, y0, x1, y1) {\n\n function visible(x, y) {\n return x0 <= x && x <= x1 && y0 <= y && y <= y1;\n }\n\n function interpolate(from, to, direction, stream) {\n var a = 0, a1 = 0;\n if (from == null\n || (a = corner(from, direction)) !== (a1 = corner(to, direction))\n || comparePoint(from, to) < 0 ^ direction > 0) {\n do stream.point(a === 0 || a === 3 ? x0 : x1, a > 1 ? y1 : y0);\n while ((a = (a + direction + 4) % 4) !== a1);\n } else {\n stream.point(to[0], to[1]);\n }\n }\n\n function corner(p, direction) {\n return abs(p[0] - x0) < epsilon ? direction > 0 ? 0 : 3\n : abs(p[0] - x1) < epsilon ? direction > 0 ? 2 : 1\n : abs(p[1] - y0) < epsilon ? direction > 0 ? 1 : 0\n : direction > 0 ? 3 : 2; // abs(p[1] - y1) < epsilon\n }\n\n function compareIntersection(a, b) {\n return comparePoint(a.x, b.x);\n }\n\n function comparePoint(a, b) {\n var ca = corner(a, 1),\n cb = corner(b, 1);\n return ca !== cb ? ca - cb\n : ca === 0 ? b[1] - a[1]\n : ca === 1 ? a[0] - b[0]\n : ca === 2 ? a[1] - b[1]\n : b[0] - a[0];\n }\n\n return function(stream) {\n var activeStream = stream,\n bufferStream = clipBuffer(),\n segments,\n polygon,\n ring,\n x__, y__, v__, // first point\n x_, y_, v_, // previous point\n first,\n clean;\n\n var clipStream = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: polygonStart,\n polygonEnd: polygonEnd\n };\n\n function point(x, y) {\n if (visible(x, y)) activeStream.point(x, y);\n }\n\n function polygonInside() {\n var winding = 0;\n\n for (var i = 0, n = polygon.length; i < n; ++i) {\n for (var ring = polygon[i], j = 1, m = ring.length, point = ring[0], a0, a1, b0 = point[0], b1 = point[1]; j < m; ++j) {\n a0 = b0, a1 = b1, point = ring[j], b0 = point[0], b1 = point[1];\n if (a1 <= y1) { if (b1 > y1 && (b0 - a0) * (y1 - a1) > (b1 - a1) * (x0 - a0)) ++winding; }\n else { if (b1 <= y1 && (b0 - a0) * (y1 - a1) < (b1 - a1) * (x0 - a0)) --winding; }\n }\n }\n\n return winding;\n }\n\n // Buffer geometry within a polygon and then clip it en masse.\n function polygonStart() {\n activeStream = bufferStream, segments = [], polygon = [], clean = true;\n }\n\n function polygonEnd() {\n var startInside = polygonInside(),\n cleanInside = clean && startInside,\n visible = (segments = merge(segments)).length;\n if (cleanInside || visible) {\n stream.polygonStart();\n if (cleanInside) {\n stream.lineStart();\n interpolate(null, null, 1, stream);\n stream.lineEnd();\n }\n if (visible) {\n clipRejoin(segments, compareIntersection, startInside, interpolate, stream);\n }\n stream.polygonEnd();\n }\n activeStream = stream, segments = polygon = ring = null;\n }\n\n function lineStart() {\n clipStream.point = linePoint;\n if (polygon) polygon.push(ring = []);\n first = true;\n v_ = false;\n x_ = y_ = NaN;\n }\n\n // TODO rather than special-case polygons, simply handle them separately.\n // Ideally, coincident intersection points should be jittered to avoid\n // clipping issues.\n function lineEnd() {\n if (segments) {\n linePoint(x__, y__);\n if (v__ && v_) bufferStream.rejoin();\n segments.push(bufferStream.result());\n }\n clipStream.point = point;\n if (v_) activeStream.lineEnd();\n }\n\n function linePoint(x, y) {\n var v = visible(x, y);\n if (polygon) ring.push([x, y]);\n if (first) {\n x__ = x, y__ = y, v__ = v;\n first = false;\n if (v) {\n activeStream.lineStart();\n activeStream.point(x, y);\n }\n } else {\n if (v && v_) activeStream.point(x, y);\n else {\n var a = [x_ = Math.max(clipMin, Math.min(clipMax, x_)), y_ = Math.max(clipMin, Math.min(clipMax, y_))],\n b = [x = Math.max(clipMin, Math.min(clipMax, x)), y = Math.max(clipMin, Math.min(clipMax, y))];\n if (clipLine(a, b, x0, y0, x1, y1)) {\n if (!v_) {\n activeStream.lineStart();\n activeStream.point(a[0], a[1]);\n }\n activeStream.point(b[0], b[1]);\n if (!v) activeStream.lineEnd();\n clean = false;\n } else if (v) {\n activeStream.lineStart();\n activeStream.point(x, y);\n clean = false;\n }\n }\n }\n x_ = x, y_ = y, v_ = v;\n }\n\n return clipStream;\n };\n}\n","export default x => x;\n","import noop from \"../noop.js\";\n\nvar x0 = Infinity,\n y0 = x0,\n x1 = -x0,\n y1 = x1;\n\nvar boundsStream = {\n point: boundsPoint,\n lineStart: noop,\n lineEnd: noop,\n polygonStart: noop,\n polygonEnd: noop,\n result: function() {\n var bounds = [[x0, y0], [x1, y1]];\n x1 = y1 = -(y0 = x0 = Infinity);\n return bounds;\n }\n};\n\nfunction boundsPoint(x, y) {\n if (x < x0) x0 = x;\n if (x > x1) x1 = x;\n if (y < y0) y0 = y;\n if (y > y1) y1 = y;\n}\n\nexport default boundsStream;\n","export default function(methods) {\n return {\n stream: transformer(methods)\n };\n}\n\nexport function transformer(methods) {\n return function(stream) {\n var s = new TransformStream;\n for (var key in methods) s[key] = methods[key];\n s.stream = stream;\n return s;\n };\n}\n\nfunction TransformStream() {}\n\nTransformStream.prototype = {\n constructor: TransformStream,\n point: function(x, y) { this.stream.point(x, y); },\n sphere: function() { this.stream.sphere(); },\n lineStart: function() { this.stream.lineStart(); },\n lineEnd: function() { this.stream.lineEnd(); },\n polygonStart: function() { this.stream.polygonStart(); },\n polygonEnd: function() { this.stream.polygonEnd(); }\n};\n","import {default as geoStream} from \"../stream.js\";\nimport boundsStream from \"../path/bounds.js\";\n\nfunction fit(projection, fitBounds, object) {\n var clip = projection.clipExtent && projection.clipExtent();\n projection.scale(150).translate([0, 0]);\n if (clip != null) projection.clipExtent(null);\n geoStream(object, projection.stream(boundsStream));\n fitBounds(boundsStream.result());\n if (clip != null) projection.clipExtent(clip);\n return projection;\n}\n\nexport function fitExtent(projection, extent, object) {\n return fit(projection, function(b) {\n var w = extent[1][0] - extent[0][0],\n h = extent[1][1] - extent[0][1],\n k = Math.min(w / (b[1][0] - b[0][0]), h / (b[1][1] - b[0][1])),\n x = +extent[0][0] + (w - k * (b[1][0] + b[0][0])) / 2,\n y = +extent[0][1] + (h - k * (b[1][1] + b[0][1])) / 2;\n projection.scale(150 * k).translate([x, y]);\n }, object);\n}\n\nexport function fitSize(projection, size, object) {\n return fitExtent(projection, [[0, 0], size], object);\n}\n\nexport function fitWidth(projection, width, object) {\n return fit(projection, function(b) {\n var w = +width,\n k = w / (b[1][0] - b[0][0]),\n x = (w - k * (b[1][0] + b[0][0])) / 2,\n y = -k * b[0][1];\n projection.scale(150 * k).translate([x, y]);\n }, object);\n}\n\nexport function fitHeight(projection, height, object) {\n return fit(projection, function(b) {\n var h = +height,\n k = h / (b[1][1] - b[0][1]),\n x = -k * b[0][0],\n y = (h - k * (b[1][1] + b[0][1])) / 2;\n projection.scale(150 * k).translate([x, y]);\n }, object);\n}\n","import {cartesian} from \"../cartesian.js\";\nimport {abs, asin, atan2, cos, epsilon, radians, sqrt} from \"../math.js\";\nimport {transformer} from \"../transform.js\";\n\nvar maxDepth = 16, // maximum depth of subdivision\n cosMinDistance = cos(30 * radians); // cos(minimum angular distance)\n\nexport default function(project, delta2) {\n return +delta2 ? resample(project, delta2) : resampleNone(project);\n}\n\nfunction resampleNone(project) {\n return transformer({\n point: function(x, y) {\n x = project(x, y);\n this.stream.point(x[0], x[1]);\n }\n });\n}\n\nfunction resample(project, delta2) {\n\n function resampleLineTo(x0, y0, lambda0, a0, b0, c0, x1, y1, lambda1, a1, b1, c1, depth, stream) {\n var dx = x1 - x0,\n dy = y1 - y0,\n d2 = dx * dx + dy * dy;\n if (d2 > 4 * delta2 && depth--) {\n var a = a0 + a1,\n b = b0 + b1,\n c = c0 + c1,\n m = sqrt(a * a + b * b + c * c),\n phi2 = asin(c /= m),\n lambda2 = abs(abs(c) - 1) < epsilon || abs(lambda0 - lambda1) < epsilon ? (lambda0 + lambda1) / 2 : atan2(b, a),\n p = project(lambda2, phi2),\n x2 = p[0],\n y2 = p[1],\n dx2 = x2 - x0,\n dy2 = y2 - y0,\n dz = dy * dx2 - dx * dy2;\n if (dz * dz / d2 > delta2 // perpendicular projected distance\n || abs((dx * dx2 + dy * dy2) / d2 - 0.5) > 0.3 // midpoint close to an end\n || a0 * a1 + b0 * b1 + c0 * c1 < cosMinDistance) { // angular distance\n resampleLineTo(x0, y0, lambda0, a0, b0, c0, x2, y2, lambda2, a /= m, b /= m, c, depth, stream);\n stream.point(x2, y2);\n resampleLineTo(x2, y2, lambda2, a, b, c, x1, y1, lambda1, a1, b1, c1, depth, stream);\n }\n }\n }\n return function(stream) {\n var lambda00, x00, y00, a00, b00, c00, // first point\n lambda0, x0, y0, a0, b0, c0; // previous point\n\n var resampleStream = {\n point: point,\n lineStart: lineStart,\n lineEnd: lineEnd,\n polygonStart: function() { stream.polygonStart(); resampleStream.lineStart = ringStart; },\n polygonEnd: function() { stream.polygonEnd(); resampleStream.lineStart = lineStart; }\n };\n\n function point(x, y) {\n x = project(x, y);\n stream.point(x[0], x[1]);\n }\n\n function lineStart() {\n x0 = NaN;\n resampleStream.point = linePoint;\n stream.lineStart();\n }\n\n function linePoint(lambda, phi) {\n var c = cartesian([lambda, phi]), p = project(lambda, phi);\n resampleLineTo(x0, y0, lambda0, a0, b0, c0, x0 = p[0], y0 = p[1], lambda0 = lambda, a0 = c[0], b0 = c[1], c0 = c[2], maxDepth, stream);\n stream.point(x0, y0);\n }\n\n function lineEnd() {\n resampleStream.point = point;\n stream.lineEnd();\n }\n\n function ringStart() {\n lineStart();\n resampleStream.point = ringPoint;\n resampleStream.lineEnd = ringEnd;\n }\n\n function ringPoint(lambda, phi) {\n linePoint(lambda00 = lambda, phi), x00 = x0, y00 = y0, a00 = a0, b00 = b0, c00 = c0;\n resampleStream.point = linePoint;\n }\n\n function ringEnd() {\n resampleLineTo(x0, y0, lambda0, a0, b0, c0, x00, y00, lambda00, a00, b00, c00, maxDepth, stream);\n resampleStream.lineEnd = lineEnd;\n lineEnd();\n }\n\n return resampleStream;\n };\n}\n","import clipAntimeridian from \"../clip/antimeridian.js\";\nimport clipCircle from \"../clip/circle.js\";\nimport clipRectangle from \"../clip/rectangle.js\";\nimport compose from \"../compose.js\";\nimport identity from \"../identity.js\";\nimport {cos, degrees, radians, sin, sqrt} from \"../math.js\";\nimport {rotateRadians} from \"../rotation.js\";\nimport {transformer} from \"../transform.js\";\nimport {fitExtent, fitSize, fitWidth, fitHeight} from \"./fit.js\";\nimport resample from \"./resample.js\";\n\nvar transformRadians = transformer({\n point: function(x, y) {\n this.stream.point(x * radians, y * radians);\n }\n});\n\nfunction transformRotate(rotate) {\n return transformer({\n point: function(x, y) {\n var r = rotate(x, y);\n return this.stream.point(r[0], r[1]);\n }\n });\n}\n\nfunction scaleTranslate(k, dx, dy, sx, sy) {\n function transform(x, y) {\n x *= sx; y *= sy;\n return [dx + k * x, dy - k * y];\n }\n transform.invert = function(x, y) {\n return [(x - dx) / k * sx, (dy - y) / k * sy];\n };\n return transform;\n}\n\nfunction scaleTranslateRotate(k, dx, dy, sx, sy, alpha) {\n if (!alpha) return scaleTranslate(k, dx, dy, sx, sy);\n var cosAlpha = cos(alpha),\n sinAlpha = sin(alpha),\n a = cosAlpha * k,\n b = sinAlpha * k,\n ai = cosAlpha / k,\n bi = sinAlpha / k,\n ci = (sinAlpha * dy - cosAlpha * dx) / k,\n fi = (sinAlpha * dx + cosAlpha * dy) / k;\n function transform(x, y) {\n x *= sx; y *= sy;\n return [a * x - b * y + dx, dy - b * x - a * y];\n }\n transform.invert = function(x, y) {\n return [sx * (ai * x - bi * y + ci), sy * (fi - bi * x - ai * y)];\n };\n return transform;\n}\n\nexport default function projection(project) {\n return projectionMutator(function() { return project; })();\n}\n\nexport function projectionMutator(projectAt) {\n var project,\n k = 150, // scale\n x = 480, y = 250, // translate\n lambda = 0, phi = 0, // center\n deltaLambda = 0, deltaPhi = 0, deltaGamma = 0, rotate, // pre-rotate\n alpha = 0, // post-rotate angle\n sx = 1, // reflectX\n sy = 1, // reflectX\n theta = null, preclip = clipAntimeridian, // pre-clip angle\n x0 = null, y0, x1, y1, postclip = identity, // post-clip extent\n delta2 = 0.5, // precision\n projectResample,\n projectTransform,\n projectRotateTransform,\n cache,\n cacheStream;\n\n function projection(point) {\n return projectRotateTransform(point[0] * radians, point[1] * radians);\n }\n\n function invert(point) {\n point = projectRotateTransform.invert(point[0], point[1]);\n return point && [point[0] * degrees, point[1] * degrees];\n }\n\n projection.stream = function(stream) {\n return cache && cacheStream === stream ? cache : cache = transformRadians(transformRotate(rotate)(preclip(projectResample(postclip(cacheStream = stream)))));\n };\n\n projection.preclip = function(_) {\n return arguments.length ? (preclip = _, theta = undefined, reset()) : preclip;\n };\n\n projection.postclip = function(_) {\n return arguments.length ? (postclip = _, x0 = y0 = x1 = y1 = null, reset()) : postclip;\n };\n\n projection.clipAngle = function(_) {\n return arguments.length ? (preclip = +_ ? clipCircle(theta = _ * radians) : (theta = null, clipAntimeridian), reset()) : theta * degrees;\n };\n\n projection.clipExtent = function(_) {\n return arguments.length ? (postclip = _ == null ? (x0 = y0 = x1 = y1 = null, identity) : clipRectangle(x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1]), reset()) : x0 == null ? null : [[x0, y0], [x1, y1]];\n };\n\n projection.scale = function(_) {\n return arguments.length ? (k = +_, recenter()) : k;\n };\n\n projection.translate = function(_) {\n return arguments.length ? (x = +_[0], y = +_[1], recenter()) : [x, y];\n };\n\n projection.center = function(_) {\n return arguments.length ? (lambda = _[0] % 360 * radians, phi = _[1] % 360 * radians, recenter()) : [lambda * degrees, phi * degrees];\n };\n\n projection.rotate = function(_) {\n return arguments.length ? (deltaLambda = _[0] % 360 * radians, deltaPhi = _[1] % 360 * radians, deltaGamma = _.length > 2 ? _[2] % 360 * radians : 0, recenter()) : [deltaLambda * degrees, deltaPhi * degrees, deltaGamma * degrees];\n };\n\n projection.angle = function(_) {\n return arguments.length ? (alpha = _ % 360 * radians, recenter()) : alpha * degrees;\n };\n\n projection.reflectX = function(_) {\n return arguments.length ? (sx = _ ? -1 : 1, recenter()) : sx < 0;\n };\n\n projection.reflectY = function(_) {\n return arguments.length ? (sy = _ ? -1 : 1, recenter()) : sy < 0;\n };\n\n projection.precision = function(_) {\n return arguments.length ? (projectResample = resample(projectTransform, delta2 = _ * _), reset()) : sqrt(delta2);\n };\n\n projection.fitExtent = function(extent, object) {\n return fitExtent(projection, extent, object);\n };\n\n projection.fitSize = function(size, object) {\n return fitSize(projection, size, object);\n };\n\n projection.fitWidth = function(width, object) {\n return fitWidth(projection, width, object);\n };\n\n projection.fitHeight = function(height, object) {\n return fitHeight(projection, height, object);\n };\n\n function recenter() {\n var center = scaleTranslateRotate(k, 0, 0, sx, sy, alpha).apply(null, project(lambda, phi)),\n transform = scaleTranslateRotate(k, x - center[0], y - center[1], sx, sy, alpha);\n rotate = rotateRadians(deltaLambda, deltaPhi, deltaGamma);\n projectTransform = compose(project, transform);\n projectRotateTransform = compose(rotate, projectTransform);\n projectResample = resample(projectTransform, delta2);\n return reset();\n }\n\n function reset() {\n cache = cacheStream = null;\n return projection;\n }\n\n return function() {\n project = projectAt.apply(this, arguments);\n projection.invert = project.invert && invert;\n return recenter();\n };\n}\n","import {degrees, pi, radians} from \"../math.js\";\nimport {projectionMutator} from \"./index.js\";\n\nexport function conicProjection(projectAt) {\n var phi0 = 0,\n phi1 = pi / 3,\n m = projectionMutator(projectAt),\n p = m(phi0, phi1);\n\n p.parallels = function(_) {\n return arguments.length ? m(phi0 = _[0] * radians, phi1 = _[1] * radians) : [phi0 * degrees, phi1 * degrees];\n };\n\n return p;\n}\n","import {asin, cos, sin} from \"../math.js\";\n\nexport function cylindricalEqualAreaRaw(phi0) {\n var cosPhi0 = cos(phi0);\n\n function forward(lambda, phi) {\n return [lambda * cosPhi0, sin(phi) / cosPhi0];\n }\n\n forward.invert = function(x, y) {\n return [x / cosPhi0, asin(y * cosPhi0)];\n };\n\n return forward;\n}\n","import {abs, asin, atan2, cos, epsilon, pi, sign, sin, sqrt} from \"../math.js\";\nimport {conicProjection} from \"./conic.js\";\nimport {cylindricalEqualAreaRaw} from \"./cylindricalEqualArea.js\";\n\nexport function conicEqualAreaRaw(y0, y1) {\n var sy0 = sin(y0), n = (sy0 + sin(y1)) / 2;\n\n // Are the parallels symmetrical around the Equator?\n if (abs(n) < epsilon) return cylindricalEqualAreaRaw(y0);\n\n var c = 1 + sy0 * (2 * n - sy0), r0 = sqrt(c) / n;\n\n function project(x, y) {\n var r = sqrt(c - 2 * n * sin(y)) / n;\n return [r * sin(x *= n), r0 - r * cos(x)];\n }\n\n project.invert = function(x, y) {\n var r0y = r0 - y,\n l = atan2(x, abs(r0y)) * sign(r0y);\n if (r0y * n < 0)\n l -= pi * sign(x) * sign(r0y);\n return [l / n, asin((c - (x * x + r0y * r0y) * n * n) / (2 * n))];\n };\n\n return project;\n}\n\nexport default function() {\n return conicProjection(conicEqualAreaRaw)\n .scale(155.424)\n .center([0, 33.6442]);\n}\n","import conicEqualArea from \"./conicEqualArea.js\";\n\nexport default function() {\n return conicEqualArea()\n .parallels([29.5, 45.5])\n .scale(1070)\n .translate([480, 250])\n .rotate([96, 0])\n .center([-0.6, 38.7]);\n}\n","import {epsilon} from \"../math.js\";\nimport albers from \"./albers.js\";\nimport conicEqualArea from \"./conicEqualArea.js\";\nimport {fitExtent, fitSize, fitWidth, fitHeight} from \"./fit.js\";\n\n// The projections must have mutually exclusive clip regions on the sphere,\n// as this will avoid emitting interleaving lines and polygons.\nfunction multiplex(streams) {\n var n = streams.length;\n return {\n point: function(x, y) { var i = -1; while (++i < n) streams[i].point(x, y); },\n sphere: function() { var i = -1; while (++i < n) streams[i].sphere(); },\n lineStart: function() { var i = -1; while (++i < n) streams[i].lineStart(); },\n lineEnd: function() { var i = -1; while (++i < n) streams[i].lineEnd(); },\n polygonStart: function() { var i = -1; while (++i < n) streams[i].polygonStart(); },\n polygonEnd: function() { var i = -1; while (++i < n) streams[i].polygonEnd(); }\n };\n}\n\n// A composite projection for the United States, configured by default for\n// 960×500. The projection also works quite well at 960×600 if you change the\n// scale to 1285 and adjust the translate accordingly. The set of standard\n// parallels for each region comes from USGS, which is published here:\n// http://egsc.usgs.gov/isb/pubs/MapProjections/projections.html#albers\nexport default function() {\n var cache,\n cacheStream,\n lower48 = albers(), lower48Point,\n alaska = conicEqualArea().rotate([154, 0]).center([-2, 58.5]).parallels([55, 65]), alaskaPoint, // EPSG:3338\n hawaii = conicEqualArea().rotate([157, 0]).center([-3, 19.9]).parallels([8, 18]), hawaiiPoint, // ESRI:102007\n point, pointStream = {point: function(x, y) { point = [x, y]; }};\n\n function albersUsa(coordinates) {\n var x = coordinates[0], y = coordinates[1];\n return point = null,\n (lower48Point.point(x, y), point)\n || (alaskaPoint.point(x, y), point)\n || (hawaiiPoint.point(x, y), point);\n }\n\n albersUsa.invert = function(coordinates) {\n var k = lower48.scale(),\n t = lower48.translate(),\n x = (coordinates[0] - t[0]) / k,\n y = (coordinates[1] - t[1]) / k;\n return (y >= 0.120 && y < 0.234 && x >= -0.425 && x < -0.214 ? alaska\n : y >= 0.166 && y < 0.234 && x >= -0.214 && x < -0.115 ? hawaii\n : lower48).invert(coordinates);\n };\n\n albersUsa.stream = function(stream) {\n return cache && cacheStream === stream ? cache : cache = multiplex([lower48.stream(cacheStream = stream), alaska.stream(stream), hawaii.stream(stream)]);\n };\n\n albersUsa.precision = function(_) {\n if (!arguments.length) return lower48.precision();\n lower48.precision(_), alaska.precision(_), hawaii.precision(_);\n return reset();\n };\n\n albersUsa.scale = function(_) {\n if (!arguments.length) return lower48.scale();\n lower48.scale(_), alaska.scale(_ * 0.35), hawaii.scale(_);\n return albersUsa.translate(lower48.translate());\n };\n\n albersUsa.translate = function(_) {\n if (!arguments.length) return lower48.translate();\n var k = lower48.scale(), x = +_[0], y = +_[1];\n\n lower48Point = lower48\n .translate(_)\n .clipExtent([[x - 0.455 * k, y - 0.238 * k], [x + 0.455 * k, y + 0.238 * k]])\n .stream(pointStream);\n\n alaskaPoint = alaska\n .translate([x - 0.307 * k, y + 0.201 * k])\n .clipExtent([[x - 0.425 * k + epsilon, y + 0.120 * k + epsilon], [x - 0.214 * k - epsilon, y + 0.234 * k - epsilon]])\n .stream(pointStream);\n\n hawaiiPoint = hawaii\n .translate([x - 0.205 * k, y + 0.212 * k])\n .clipExtent([[x - 0.214 * k + epsilon, y + 0.166 * k + epsilon], [x - 0.115 * k - epsilon, y + 0.234 * k - epsilon]])\n .stream(pointStream);\n\n return reset();\n };\n\n albersUsa.fitExtent = function(extent, object) {\n return fitExtent(albersUsa, extent, object);\n };\n\n albersUsa.fitSize = function(size, object) {\n return fitSize(albersUsa, size, object);\n };\n\n albersUsa.fitWidth = function(width, object) {\n return fitWidth(albersUsa, width, object);\n };\n\n albersUsa.fitHeight = function(height, object) {\n return fitHeight(albersUsa, height, object);\n };\n\n function reset() {\n cache = cacheStream = null;\n return albersUsa;\n }\n\n return albersUsa.scale(1070);\n}\n","import {asin, atan2, cos, sin, sqrt} from \"../math.js\";\n\nexport function azimuthalRaw(scale) {\n return function(x, y) {\n var cx = cos(x),\n cy = cos(y),\n k = scale(cx * cy);\n if (k === Infinity) return [2, 0];\n return [\n k * cy * sin(x),\n k * sin(y)\n ];\n }\n}\n\nexport function azimuthalInvert(angle) {\n return function(x, y) {\n var z = sqrt(x * x + y * y),\n c = angle(z),\n sc = sin(c),\n cc = cos(c);\n return [\n atan2(x * sc, z * cc),\n asin(z && y * sc / z)\n ];\n }\n}\n","import {atan, exp, halfPi, log, pi, tan, tau} from \"../math.js\";\nimport rotation from \"../rotation.js\";\nimport projection from \"./index.js\";\n\nexport function mercatorRaw(lambda, phi) {\n return [lambda, log(tan((halfPi + phi) / 2))];\n}\n\nmercatorRaw.invert = function(x, y) {\n return [x, 2 * atan(exp(y)) - halfPi];\n};\n\nexport default function() {\n return mercatorProjection(mercatorRaw)\n .scale(961 / tau);\n}\n\nexport function mercatorProjection(project) {\n var m = projection(project),\n center = m.center,\n scale = m.scale,\n translate = m.translate,\n clipExtent = m.clipExtent,\n x0 = null, y0, x1, y1; // clip extent\n\n m.scale = function(_) {\n return arguments.length ? (scale(_), reclip()) : scale();\n };\n\n m.translate = function(_) {\n return arguments.length ? (translate(_), reclip()) : translate();\n };\n\n m.center = function(_) {\n return arguments.length ? (center(_), reclip()) : center();\n };\n\n m.clipExtent = function(_) {\n return arguments.length ? ((_ == null ? x0 = y0 = x1 = y1 = null : (x0 = +_[0][0], y0 = +_[0][1], x1 = +_[1][0], y1 = +_[1][1])), reclip()) : x0 == null ? null : [[x0, y0], [x1, y1]];\n };\n\n function reclip() {\n var k = pi * scale(),\n t = m(rotation(m.rotate()).invert([0, 0]));\n return clipExtent(x0 == null\n ? [[t[0] - k, t[1] - k], [t[0] + k, t[1] + k]] : project === mercatorRaw\n ? [[Math.max(t[0] - k, x0), y0], [Math.min(t[0] + k, x1), y1]]\n : [[x0, Math.max(t[1] - k, y0)], [x1, Math.min(t[1] + k, y1)]]);\n }\n\n return reclip();\n}\n","import projection from \"./index.js\";\nimport {abs, asin, cos, epsilon2, sin, sqrt} from \"../math.js\";\n\nvar A1 = 1.340264,\n A2 = -0.081106,\n A3 = 0.000893,\n A4 = 0.003796,\n M = sqrt(3) / 2,\n iterations = 12;\n\nexport function equalEarthRaw(lambda, phi) {\n var l = asin(M * sin(phi)), l2 = l * l, l6 = l2 * l2 * l2;\n return [\n lambda * cos(l) / (M * (A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2))),\n l * (A1 + A2 * l2 + l6 * (A3 + A4 * l2))\n ];\n}\n\nequalEarthRaw.invert = function(x, y) {\n var l = y, l2 = l * l, l6 = l2 * l2 * l2;\n for (var i = 0, delta, fy, fpy; i < iterations; ++i) {\n fy = l * (A1 + A2 * l2 + l6 * (A3 + A4 * l2)) - y;\n fpy = A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2);\n l -= delta = fy / fpy, l2 = l * l, l6 = l2 * l2 * l2;\n if (abs(delta) < epsilon2) break;\n }\n return [\n M * x * (A1 + 3 * A2 * l2 + l6 * (7 * A3 + 9 * A4 * l2)) / cos(l),\n asin(sin(l) / M)\n ];\n};\n\nexport default function() {\n return projection(equalEarthRaw)\n .scale(177.158);\n}\n","import projection from \"./index.js\";\nimport {abs, epsilon} from \"../math.js\";\n\nexport function naturalEarth1Raw(lambda, phi) {\n var phi2 = phi * phi, phi4 = phi2 * phi2;\n return [\n lambda * (0.8707 - 0.131979 * phi2 + phi4 * (-0.013791 + phi4 * (0.003971 * phi2 - 0.001529 * phi4))),\n phi * (1.007226 + phi2 * (0.015085 + phi4 * (-0.044475 + 0.028874 * phi2 - 0.005916 * phi4)))\n ];\n}\n\nnaturalEarth1Raw.invert = function(x, y) {\n var phi = y, i = 25, delta;\n do {\n var phi2 = phi * phi, phi4 = phi2 * phi2;\n phi -= delta = (phi * (1.007226 + phi2 * (0.015085 + phi4 * (-0.044475 + 0.028874 * phi2 - 0.005916 * phi4))) - y) /\n (1.007226 + phi2 * (0.015085 * 3 + phi4 * (-0.044475 * 7 + 0.028874 * 9 * phi2 - 0.005916 * 11 * phi4)));\n } while (abs(delta) > epsilon && --i > 0);\n return [\n x / (0.8707 + (phi2 = phi * phi) * (-0.131979 + phi2 * (-0.013791 + phi2 * phi2 * phi2 * (0.003971 - 0.001529 * phi2)))),\n phi\n ];\n};\n\nexport default function() {\n return projection(naturalEarth1Raw)\n .scale(175.295);\n}\n","import {asin, cos, epsilon, sin} from \"../math.js\";\nimport {azimuthalInvert} from \"./azimuthal.js\";\nimport projection from \"./index.js\";\n\nexport function orthographicRaw(x, y) {\n return [cos(y) * sin(x), sin(y)];\n}\n\northographicRaw.invert = azimuthalInvert(asin);\n\nexport default function() {\n return projection(orthographicRaw)\n .scale(249.5)\n .clipAngle(90 + epsilon);\n}\n","// These are typically used in conjunction with noevent to ensure that we can\n// preventDefault on the event.\nexport const nonpassive = {passive: false};\nexport const nonpassivecapture = {capture: true, passive: false};\n\nexport function nopropagation(event) {\n event.stopImmediatePropagation();\n}\n\nexport default function(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","import {select} from \"d3-selection\";\nimport noevent, {nonpassivecapture} from \"./noevent.js\";\n\nexport default function(view) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", noevent, nonpassivecapture);\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", noevent, nonpassivecapture);\n } else {\n root.__noselect = root.style.MozUserSelect;\n root.style.MozUserSelect = \"none\";\n }\n}\n\nexport function yesdrag(view, noclick) {\n var root = view.document.documentElement,\n selection = select(view).on(\"dragstart.drag\", null);\n if (noclick) {\n selection.on(\"click.drag\", noevent, nonpassivecapture);\n setTimeout(function() { selection.on(\"click.drag\", null); }, 0);\n }\n if (\"onselectstart\" in root) {\n selection.on(\"selectstart.drag\", null);\n } else {\n root.style.MozUserSelect = root.__noselect;\n delete root.__noselect;\n }\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {timer, timeout} from \"d3-timer\";\n\nvar emptyOn = dispatch(\"start\", \"end\", \"cancel\", \"interrupt\");\nvar emptyTween = [];\n\nexport var CREATED = 0;\nexport var SCHEDULED = 1;\nexport var STARTING = 2;\nexport var STARTED = 3;\nexport var RUNNING = 4;\nexport var ENDING = 5;\nexport var ENDED = 6;\n\nexport default function(node, name, id, index, group, timing) {\n var schedules = node.__transition;\n if (!schedules) node.__transition = {};\n else if (id in schedules) return;\n create(node, id, {\n name: name,\n index: index, // For context during callback.\n group: group, // For context during callback.\n on: emptyOn,\n tween: emptyTween,\n time: timing.time,\n delay: timing.delay,\n duration: timing.duration,\n ease: timing.ease,\n timer: null,\n state: CREATED\n });\n}\n\nexport function init(node, id) {\n var schedule = get(node, id);\n if (schedule.state > CREATED) throw new Error(\"too late; already scheduled\");\n return schedule;\n}\n\nexport function set(node, id) {\n var schedule = get(node, id);\n if (schedule.state > STARTED) throw new Error(\"too late; already running\");\n return schedule;\n}\n\nexport function get(node, id) {\n var schedule = node.__transition;\n if (!schedule || !(schedule = schedule[id])) throw new Error(\"transition not found\");\n return schedule;\n}\n\nfunction create(node, id, self) {\n var schedules = node.__transition,\n tween;\n\n // Initialize the self timer when the transition is created.\n // Note the actual delay is not known until the first callback!\n schedules[id] = self;\n self.timer = timer(schedule, 0, self.time);\n\n function schedule(elapsed) {\n self.state = SCHEDULED;\n self.timer.restart(start, self.delay, self.time);\n\n // If the elapsed delay is less than our first sleep, start immediately.\n if (self.delay <= elapsed) start(elapsed - self.delay);\n }\n\n function start(elapsed) {\n var i, j, n, o;\n\n // If the state is not SCHEDULED, then we previously errored on start.\n if (self.state !== SCHEDULED) return stop();\n\n for (i in schedules) {\n o = schedules[i];\n if (o.name !== self.name) continue;\n\n // While this element already has a starting transition during this frame,\n // defer starting an interrupting transition until that transition has a\n // chance to tick (and possibly end); see d3/d3-transition#54!\n if (o.state === STARTED) return timeout(start);\n\n // Interrupt the active transition, if any.\n if (o.state === RUNNING) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"interrupt\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n\n // Cancel any pre-empted transitions.\n else if (+i < id) {\n o.state = ENDED;\n o.timer.stop();\n o.on.call(\"cancel\", node, node.__data__, o.index, o.group);\n delete schedules[i];\n }\n }\n\n // Defer the first tick to end of the current frame; see d3/d3#1576.\n // Note the transition may be canceled after start and before the first tick!\n // Note this must be scheduled before the start event; see d3/d3-transition#16!\n // Assuming this is successful, subsequent callbacks go straight to tick.\n timeout(function() {\n if (self.state === STARTED) {\n self.state = RUNNING;\n self.timer.restart(tick, self.delay, self.time);\n tick(elapsed);\n }\n });\n\n // Dispatch the start event.\n // Note this must be done before the tween are initialized.\n self.state = STARTING;\n self.on.call(\"start\", node, node.__data__, self.index, self.group);\n if (self.state !== STARTING) return; // interrupted\n self.state = STARTED;\n\n // Initialize the tween, deleting null tween.\n tween = new Array(n = self.tween.length);\n for (i = 0, j = -1; i < n; ++i) {\n if (o = self.tween[i].value.call(node, node.__data__, self.index, self.group)) {\n tween[++j] = o;\n }\n }\n tween.length = j + 1;\n }\n\n function tick(elapsed) {\n var t = elapsed < self.duration ? self.ease.call(null, elapsed / self.duration) : (self.timer.restart(stop), self.state = ENDING, 1),\n i = -1,\n n = tween.length;\n\n while (++i < n) {\n tween[i].call(node, t);\n }\n\n // Dispatch the end event.\n if (self.state === ENDING) {\n self.on.call(\"end\", node, node.__data__, self.index, self.group);\n stop();\n }\n }\n\n function stop() {\n self.state = ENDED;\n self.timer.stop();\n delete schedules[id];\n for (var i in schedules) return; // eslint-disable-line no-unused-vars\n delete node.__transition;\n }\n}\n","import {STARTING, ENDING, ENDED} from \"./transition/schedule.js\";\n\nexport default function(node, name) {\n var schedules = node.__transition,\n schedule,\n active,\n empty = true,\n i;\n\n if (!schedules) return;\n\n name = name == null ? null : name + \"\";\n\n for (i in schedules) {\n if ((schedule = schedules[i]).name !== name) { empty = false; continue; }\n active = schedule.state > STARTING && schedule.state < ENDING;\n schedule.state = ENDED;\n schedule.timer.stop();\n schedule.on.call(active ? \"interrupt\" : \"cancel\", node, node.__data__, schedule.index, schedule.group);\n delete schedules[i];\n }\n\n if (empty) delete node.__transition;\n}\n","import interrupt from \"../interrupt.js\";\n\nexport default function(name) {\n return this.each(function() {\n interrupt(this, name);\n });\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction tweenRemove(id, name) {\n var tween0, tween1;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = tween0 = tween;\n for (var i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1 = tween1.slice();\n tween1.splice(i, 1);\n break;\n }\n }\n }\n\n schedule.tween = tween1;\n };\n}\n\nfunction tweenFunction(id, name, value) {\n var tween0, tween1;\n if (typeof value !== \"function\") throw new Error;\n return function() {\n var schedule = set(this, id),\n tween = schedule.tween;\n\n // If this node shared tween with the previous node,\n // just assign the updated shared tween and we’re done!\n // Otherwise, copy-on-write.\n if (tween !== tween0) {\n tween1 = (tween0 = tween).slice();\n for (var t = {name: name, value: value}, i = 0, n = tween1.length; i < n; ++i) {\n if (tween1[i].name === name) {\n tween1[i] = t;\n break;\n }\n }\n if (i === n) tween1.push(t);\n }\n\n schedule.tween = tween1;\n };\n}\n\nexport default function(name, value) {\n var id = this._id;\n\n name += \"\";\n\n if (arguments.length < 2) {\n var tween = get(this.node(), id).tween;\n for (var i = 0, n = tween.length, t; i < n; ++i) {\n if ((t = tween[i]).name === name) {\n return t.value;\n }\n }\n return null;\n }\n\n return this.each((value == null ? tweenRemove : tweenFunction)(id, name, value));\n}\n\nexport function tweenValue(transition, name, value) {\n var id = transition._id;\n\n transition.each(function() {\n var schedule = set(this, id);\n (schedule.value || (schedule.value = {}))[name] = value.apply(this, arguments);\n });\n\n return function(node) {\n return get(node, id).value[name];\n };\n}\n","import {color} from \"d3-color\";\nimport {interpolateNumber, interpolateRgb, interpolateString} from \"d3-interpolate\";\n\nexport default function(a, b) {\n var c;\n return (typeof b === \"number\" ? interpolateNumber\n : b instanceof color ? interpolateRgb\n : (c = color(b)) ? (b = c, interpolateRgb)\n : interpolateString)(a, b);\n}\n","import {interpolateTransformSvg as interpolateTransform} from \"d3-interpolate\";\nimport {namespace} from \"d3-selection\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction attrRemove(name) {\n return function() {\n this.removeAttribute(name);\n };\n}\n\nfunction attrRemoveNS(fullname) {\n return function() {\n this.removeAttributeNS(fullname.space, fullname.local);\n };\n}\n\nfunction attrConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttribute(name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrConstantNS(fullname, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = this.getAttributeNS(fullname.space, fullname.local);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction attrFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttribute(name);\n string0 = this.getAttribute(name);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction attrFunctionNS(fullname, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0, value1 = value(this), string1;\n if (value1 == null) return void this.removeAttributeNS(fullname.space, fullname.local);\n string0 = this.getAttributeNS(fullname.space, fullname.local);\n string1 = value1 + \"\";\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nexport default function(name, value) {\n var fullname = namespace(name), i = fullname === \"transform\" ? interpolateTransform : interpolate;\n return this.attrTween(name, typeof value === \"function\"\n ? (fullname.local ? attrFunctionNS : attrFunction)(fullname, i, tweenValue(this, \"attr.\" + name, value))\n : value == null ? (fullname.local ? attrRemoveNS : attrRemove)(fullname)\n : (fullname.local ? attrConstantNS : attrConstant)(fullname, i, value));\n}\n","import {namespace} from \"d3-selection\";\n\nfunction attrInterpolate(name, i) {\n return function(t) {\n this.setAttribute(name, i.call(this, t));\n };\n}\n\nfunction attrInterpolateNS(fullname, i) {\n return function(t) {\n this.setAttributeNS(fullname.space, fullname.local, i.call(this, t));\n };\n}\n\nfunction attrTweenNS(fullname, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolateNS(fullname, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nfunction attrTween(name, value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && attrInterpolate(name, i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value) {\n var key = \"attr.\" + name;\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n var fullname = namespace(name);\n return this.tween(key, (fullname.local ? attrTweenNS : attrTween)(fullname, value));\n}\n","import {get, init} from \"./schedule.js\";\n\nfunction delayFunction(id, value) {\n return function() {\n init(this, id).delay = +value.apply(this, arguments);\n };\n}\n\nfunction delayConstant(id, value) {\n return value = +value, function() {\n init(this, id).delay = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? delayFunction\n : delayConstant)(id, value))\n : get(this.node(), id).delay;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction durationFunction(id, value) {\n return function() {\n set(this, id).duration = +value.apply(this, arguments);\n };\n}\n\nfunction durationConstant(id, value) {\n return value = +value, function() {\n set(this, id).duration = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each((typeof value === \"function\"\n ? durationFunction\n : durationConstant)(id, value))\n : get(this.node(), id).duration;\n}\n","import {get, set} from \"./schedule.js\";\n\nfunction easeConstant(id, value) {\n if (typeof value !== \"function\") throw new Error;\n return function() {\n set(this, id).ease = value;\n };\n}\n\nexport default function(value) {\n var id = this._id;\n\n return arguments.length\n ? this.each(easeConstant(id, value))\n : get(this.node(), id).ease;\n}\n","import {set} from \"./schedule.js\";\n\nfunction easeVarying(id, value) {\n return function() {\n var v = value.apply(this, arguments);\n if (typeof v !== \"function\") throw new Error;\n set(this, id).ease = v;\n };\n}\n\nexport default function(value) {\n if (typeof value !== \"function\") throw new Error;\n return this.each(easeVarying(this._id, value));\n}\n","import {matcher} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\n\nexport default function(match) {\n if (typeof match !== \"function\") match = matcher(match);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = [], node, i = 0; i < n; ++i) {\n if ((node = group[i]) && match.call(node, node.__data__, i, group)) {\n subgroup.push(node);\n }\n }\n }\n\n return new Transition(subgroups, this._parents, this._name, this._id);\n}\n","import {Transition} from \"./index.js\";\n\nexport default function(transition) {\n if (transition._id !== this._id) throw new Error;\n\n for (var groups0 = this._groups, groups1 = transition._groups, m0 = groups0.length, m1 = groups1.length, m = Math.min(m0, m1), merges = new Array(m0), j = 0; j < m; ++j) {\n for (var group0 = groups0[j], group1 = groups1[j], n = group0.length, merge = merges[j] = new Array(n), node, i = 0; i < n; ++i) {\n if (node = group0[i] || group1[i]) {\n merge[i] = node;\n }\n }\n }\n\n for (; j < m0; ++j) {\n merges[j] = groups0[j];\n }\n\n return new Transition(merges, this._parents, this._name, this._id);\n}\n","import {get, set, init} from \"./schedule.js\";\n\nfunction start(name) {\n return (name + \"\").trim().split(/^|\\s+/).every(function(t) {\n var i = t.indexOf(\".\");\n if (i >= 0) t = t.slice(0, i);\n return !t || t === \"start\";\n });\n}\n\nfunction onFunction(id, name, listener) {\n var on0, on1, sit = start(name) ? init : set;\n return function() {\n var schedule = sit(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) (on1 = (on0 = on).copy()).on(name, listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, listener) {\n var id = this._id;\n\n return arguments.length < 2\n ? get(this.node(), id).on.on(name)\n : this.each(onFunction(id, name, listener));\n}\n","function removeFunction(id) {\n return function() {\n var parent = this.parentNode;\n for (var i in this.__transition) if (+i !== id) return;\n if (parent) parent.removeChild(this);\n };\n}\n\nexport default function() {\n return this.on(\"end.remove\", removeFunction(this._id));\n}\n","import {selector} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selector(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = new Array(m), j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, subgroup = subgroups[j] = new Array(n), node, subnode, i = 0; i < n; ++i) {\n if ((node = group[i]) && (subnode = select.call(node, node.__data__, i, group))) {\n if (\"__data__\" in node) subnode.__data__ = node.__data__;\n subgroup[i] = subnode;\n schedule(subgroup[i], name, id, i, subgroup, get(node, id));\n }\n }\n }\n\n return new Transition(subgroups, this._parents, name, id);\n}\n","import {selectorAll} from \"d3-selection\";\nimport {Transition} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function(select) {\n var name = this._name,\n id = this._id;\n\n if (typeof select !== \"function\") select = selectorAll(select);\n\n for (var groups = this._groups, m = groups.length, subgroups = [], parents = [], j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n for (var children = select.call(node, node.__data__, i, group), child, inherit = get(node, id), k = 0, l = children.length; k < l; ++k) {\n if (child = children[k]) {\n schedule(child, name, id, k, children, inherit);\n }\n }\n subgroups.push(children);\n parents.push(node);\n }\n }\n }\n\n return new Transition(subgroups, parents, name, id);\n}\n","import {selection} from \"d3-selection\";\n\nvar Selection = selection.prototype.constructor;\n\nexport default function() {\n return new Selection(this._groups, this._parents);\n}\n","import {interpolateTransformCss as interpolateTransform} from \"d3-interpolate\";\nimport {style} from \"d3-selection\";\nimport {set} from \"./schedule.js\";\nimport {tweenValue} from \"./tween.js\";\nimport interpolate from \"./interpolate.js\";\n\nfunction styleNull(name, interpolate) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n string1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, string10 = string1);\n };\n}\n\nfunction styleRemove(name) {\n return function() {\n this.style.removeProperty(name);\n };\n}\n\nfunction styleConstant(name, interpolate, value1) {\n var string00,\n string1 = value1 + \"\",\n interpolate0;\n return function() {\n var string0 = style(this, name);\n return string0 === string1 ? null\n : string0 === string00 ? interpolate0\n : interpolate0 = interpolate(string00 = string0, value1);\n };\n}\n\nfunction styleFunction(name, interpolate, value) {\n var string00,\n string10,\n interpolate0;\n return function() {\n var string0 = style(this, name),\n value1 = value(this),\n string1 = value1 + \"\";\n if (value1 == null) string1 = value1 = (this.style.removeProperty(name), style(this, name));\n return string0 === string1 ? null\n : string0 === string00 && string1 === string10 ? interpolate0\n : (string10 = string1, interpolate0 = interpolate(string00 = string0, value1));\n };\n}\n\nfunction styleMaybeRemove(id, name) {\n var on0, on1, listener0, key = \"style.\" + name, event = \"end.\" + key, remove;\n return function() {\n var schedule = set(this, id),\n on = schedule.on,\n listener = schedule.value[key] == null ? remove || (remove = styleRemove(name)) : undefined;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0 || listener0 !== listener) (on1 = (on0 = on).copy()).on(event, listener0 = listener);\n\n schedule.on = on1;\n };\n}\n\nexport default function(name, value, priority) {\n var i = (name += \"\") === \"transform\" ? interpolateTransform : interpolate;\n return value == null ? this\n .styleTween(name, styleNull(name, i))\n .on(\"end.style.\" + name, styleRemove(name))\n : typeof value === \"function\" ? this\n .styleTween(name, styleFunction(name, i, tweenValue(this, \"style.\" + name, value)))\n .each(styleMaybeRemove(this._id, name))\n : this\n .styleTween(name, styleConstant(name, i, value), priority)\n .on(\"end.style.\" + name, null);\n}\n","function styleInterpolate(name, i, priority) {\n return function(t) {\n this.style.setProperty(name, i.call(this, t), priority);\n };\n}\n\nfunction styleTween(name, value, priority) {\n var t, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t = (i0 = i) && styleInterpolate(name, i, priority);\n return t;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(name, value, priority) {\n var key = \"style.\" + (name += \"\");\n if (arguments.length < 2) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, styleTween(name, value, priority == null ? \"\" : priority));\n}\n","import {tweenValue} from \"./tween.js\";\n\nfunction textConstant(value) {\n return function() {\n this.textContent = value;\n };\n}\n\nfunction textFunction(value) {\n return function() {\n var value1 = value(this);\n this.textContent = value1 == null ? \"\" : value1;\n };\n}\n\nexport default function(value) {\n return this.tween(\"text\", typeof value === \"function\"\n ? textFunction(tweenValue(this, \"text\", value))\n : textConstant(value == null ? \"\" : value + \"\"));\n}\n","function textInterpolate(i) {\n return function(t) {\n this.textContent = i.call(this, t);\n };\n}\n\nfunction textTween(value) {\n var t0, i0;\n function tween() {\n var i = value.apply(this, arguments);\n if (i !== i0) t0 = (i0 = i) && textInterpolate(i);\n return t0;\n }\n tween._value = value;\n return tween;\n}\n\nexport default function(value) {\n var key = \"text\";\n if (arguments.length < 1) return (key = this.tween(key)) && key._value;\n if (value == null) return this.tween(key, null);\n if (typeof value !== \"function\") throw new Error;\n return this.tween(key, textTween(value));\n}\n","import {Transition, newId} from \"./index.js\";\nimport schedule, {get} from \"./schedule.js\";\n\nexport default function() {\n var name = this._name,\n id0 = this._id,\n id1 = newId();\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n var inherit = get(node, id0);\n schedule(node, name, id1, i, group, {\n time: inherit.time + inherit.delay + inherit.duration,\n delay: 0,\n duration: inherit.duration,\n ease: inherit.ease\n });\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id1);\n}\n","import {set} from \"./schedule.js\";\n\nexport default function() {\n var on0, on1, that = this, id = that._id, size = that.size();\n return new Promise(function(resolve, reject) {\n var cancel = {value: reject},\n end = {value: function() { if (--size === 0) resolve(); }};\n\n that.each(function() {\n var schedule = set(this, id),\n on = schedule.on;\n\n // If this node shared a dispatch with the previous node,\n // just assign the updated shared dispatch and we’re done!\n // Otherwise, copy-on-write.\n if (on !== on0) {\n on1 = (on0 = on).copy();\n on1._.cancel.push(cancel);\n on1._.interrupt.push(cancel);\n on1._.end.push(end);\n }\n\n schedule.on = on1;\n });\n\n // The selection was empty, resolve end immediately\n if (size === 0) resolve();\n });\n}\n","import {selection} from \"d3-selection\";\nimport transition_attr from \"./attr.js\";\nimport transition_attrTween from \"./attrTween.js\";\nimport transition_delay from \"./delay.js\";\nimport transition_duration from \"./duration.js\";\nimport transition_ease from \"./ease.js\";\nimport transition_easeVarying from \"./easeVarying.js\";\nimport transition_filter from \"./filter.js\";\nimport transition_merge from \"./merge.js\";\nimport transition_on from \"./on.js\";\nimport transition_remove from \"./remove.js\";\nimport transition_select from \"./select.js\";\nimport transition_selectAll from \"./selectAll.js\";\nimport transition_selection from \"./selection.js\";\nimport transition_style from \"./style.js\";\nimport transition_styleTween from \"./styleTween.js\";\nimport transition_text from \"./text.js\";\nimport transition_textTween from \"./textTween.js\";\nimport transition_transition from \"./transition.js\";\nimport transition_tween from \"./tween.js\";\nimport transition_end from \"./end.js\";\n\nvar id = 0;\n\nexport function Transition(groups, parents, name, id) {\n this._groups = groups;\n this._parents = parents;\n this._name = name;\n this._id = id;\n}\n\nexport default function transition(name) {\n return selection().transition(name);\n}\n\nexport function newId() {\n return ++id;\n}\n\nvar selection_prototype = selection.prototype;\n\nTransition.prototype = transition.prototype = {\n constructor: Transition,\n select: transition_select,\n selectAll: transition_selectAll,\n selectChild: selection_prototype.selectChild,\n selectChildren: selection_prototype.selectChildren,\n filter: transition_filter,\n merge: transition_merge,\n selection: transition_selection,\n transition: transition_transition,\n call: selection_prototype.call,\n nodes: selection_prototype.nodes,\n node: selection_prototype.node,\n size: selection_prototype.size,\n empty: selection_prototype.empty,\n each: selection_prototype.each,\n on: transition_on,\n attr: transition_attr,\n attrTween: transition_attrTween,\n style: transition_style,\n styleTween: transition_styleTween,\n text: transition_text,\n textTween: transition_textTween,\n remove: transition_remove,\n tween: transition_tween,\n delay: transition_delay,\n duration: transition_duration,\n ease: transition_ease,\n easeVarying: transition_easeVarying,\n end: transition_end,\n [Symbol.iterator]: selection_prototype[Symbol.iterator]\n};\n","export function cubicIn(t) {\n return t * t * t;\n}\n\nexport function cubicOut(t) {\n return --t * t * t + 1;\n}\n\nexport function cubicInOut(t) {\n return ((t *= 2) <= 1 ? t * t * t : (t -= 2) * t * t + 2) / 2;\n}\n","import {Transition, newId} from \"../transition/index.js\";\nimport schedule from \"../transition/schedule.js\";\nimport {easeCubicInOut} from \"d3-ease\";\nimport {now} from \"d3-timer\";\n\nvar defaultTiming = {\n time: null, // Set on use.\n delay: 0,\n duration: 250,\n ease: easeCubicInOut\n};\n\nfunction inherit(node, id) {\n var timing;\n while (!(timing = node.__transition) || !(timing = timing[id])) {\n if (!(node = node.parentNode)) {\n throw new Error(`transition ${id} not found`);\n }\n }\n return timing;\n}\n\nexport default function(name) {\n var id,\n timing;\n\n if (name instanceof Transition) {\n id = name._id, name = name._name;\n } else {\n id = newId(), (timing = defaultTiming).time = now(), name = name == null ? null : name + \"\";\n }\n\n for (var groups = this._groups, m = groups.length, j = 0; j < m; ++j) {\n for (var group = groups[j], n = group.length, node, i = 0; i < n; ++i) {\n if (node = group[i]) {\n schedule(node, name, id, i, group, timing || inherit(node, id));\n }\n }\n }\n\n return new Transition(groups, this._parents, name, id);\n}\n","import {selection} from \"d3-selection\";\nimport selection_interrupt from \"./interrupt.js\";\nimport selection_transition from \"./transition.js\";\n\nselection.prototype.interrupt = selection_interrupt;\nselection.prototype.transition = selection_transition;\n","export default x => () => x;\n","export default function ZoomEvent(type, {\n sourceEvent,\n target,\n transform,\n dispatch\n}) {\n Object.defineProperties(this, {\n type: {value: type, enumerable: true, configurable: true},\n sourceEvent: {value: sourceEvent, enumerable: true, configurable: true},\n target: {value: target, enumerable: true, configurable: true},\n transform: {value: transform, enumerable: true, configurable: true},\n _: {value: dispatch}\n });\n}\n","export function Transform(k, x, y) {\n this.k = k;\n this.x = x;\n this.y = y;\n}\n\nTransform.prototype = {\n constructor: Transform,\n scale: function(k) {\n return k === 1 ? this : new Transform(this.k * k, this.x, this.y);\n },\n translate: function(x, y) {\n return x === 0 & y === 0 ? this : new Transform(this.k, this.x + this.k * x, this.y + this.k * y);\n },\n apply: function(point) {\n return [point[0] * this.k + this.x, point[1] * this.k + this.y];\n },\n applyX: function(x) {\n return x * this.k + this.x;\n },\n applyY: function(y) {\n return y * this.k + this.y;\n },\n invert: function(location) {\n return [(location[0] - this.x) / this.k, (location[1] - this.y) / this.k];\n },\n invertX: function(x) {\n return (x - this.x) / this.k;\n },\n invertY: function(y) {\n return (y - this.y) / this.k;\n },\n rescaleX: function(x) {\n return x.copy().domain(x.range().map(this.invertX, this).map(x.invert, x));\n },\n rescaleY: function(y) {\n return y.copy().domain(y.range().map(this.invertY, this).map(y.invert, y));\n },\n toString: function() {\n return \"translate(\" + this.x + \",\" + this.y + \") scale(\" + this.k + \")\";\n }\n};\n\nexport var identity = new Transform(1, 0, 0);\n\ntransform.prototype = Transform.prototype;\n\nexport default function transform(node) {\n while (!node.__zoom) if (!(node = node.parentNode)) return identity;\n return node.__zoom;\n}\n","export function nopropagation(event) {\n event.stopImmediatePropagation();\n}\n\nexport default function(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n}\n","import {dispatch} from \"d3-dispatch\";\nimport {dragDisable, dragEnable} from \"d3-drag\";\nimport {interpolateZoom} from \"d3-interpolate\";\nimport {select, pointer} from \"d3-selection\";\nimport {interrupt} from \"d3-transition\";\nimport constant from \"./constant.js\";\nimport ZoomEvent from \"./event.js\";\nimport {Transform, identity} from \"./transform.js\";\nimport noevent, {nopropagation} from \"./noevent.js\";\n\n// Ignore right-click, since that should open the context menu.\n// except for pinch-to-zoom, which is sent as a wheel+ctrlKey event\nfunction defaultFilter(event) {\n return (!event.ctrlKey || event.type === 'wheel') && !event.button;\n}\n\nfunction defaultExtent() {\n var e = this;\n if (e instanceof SVGElement) {\n e = e.ownerSVGElement || e;\n if (e.hasAttribute(\"viewBox\")) {\n e = e.viewBox.baseVal;\n return [[e.x, e.y], [e.x + e.width, e.y + e.height]];\n }\n return [[0, 0], [e.width.baseVal.value, e.height.baseVal.value]];\n }\n return [[0, 0], [e.clientWidth, e.clientHeight]];\n}\n\nfunction defaultTransform() {\n return this.__zoom || identity;\n}\n\nfunction defaultWheelDelta(event) {\n return -event.deltaY * (event.deltaMode === 1 ? 0.05 : event.deltaMode ? 1 : 0.002) * (event.ctrlKey ? 10 : 1);\n}\n\nfunction defaultTouchable() {\n return navigator.maxTouchPoints || (\"ontouchstart\" in this);\n}\n\nfunction defaultConstrain(transform, extent, translateExtent) {\n var dx0 = transform.invertX(extent[0][0]) - translateExtent[0][0],\n dx1 = transform.invertX(extent[1][0]) - translateExtent[1][0],\n dy0 = transform.invertY(extent[0][1]) - translateExtent[0][1],\n dy1 = transform.invertY(extent[1][1]) - translateExtent[1][1];\n return transform.translate(\n dx1 > dx0 ? (dx0 + dx1) / 2 : Math.min(0, dx0) || Math.max(0, dx1),\n dy1 > dy0 ? (dy0 + dy1) / 2 : Math.min(0, dy0) || Math.max(0, dy1)\n );\n}\n\nexport default function() {\n var filter = defaultFilter,\n extent = defaultExtent,\n constrain = defaultConstrain,\n wheelDelta = defaultWheelDelta,\n touchable = defaultTouchable,\n scaleExtent = [0, Infinity],\n translateExtent = [[-Infinity, -Infinity], [Infinity, Infinity]],\n duration = 250,\n interpolate = interpolateZoom,\n listeners = dispatch(\"start\", \"zoom\", \"end\"),\n touchstarting,\n touchfirst,\n touchending,\n touchDelay = 500,\n wheelDelay = 150,\n clickDistance2 = 0,\n tapDistance = 10;\n\n function zoom(selection) {\n selection\n .property(\"__zoom\", defaultTransform)\n .on(\"wheel.zoom\", wheeled, {passive: false})\n .on(\"mousedown.zoom\", mousedowned)\n .on(\"dblclick.zoom\", dblclicked)\n .filter(touchable)\n .on(\"touchstart.zoom\", touchstarted)\n .on(\"touchmove.zoom\", touchmoved)\n .on(\"touchend.zoom touchcancel.zoom\", touchended)\n .style(\"-webkit-tap-highlight-color\", \"rgba(0,0,0,0)\");\n }\n\n zoom.transform = function(collection, transform, point, event) {\n var selection = collection.selection ? collection.selection() : collection;\n selection.property(\"__zoom\", defaultTransform);\n if (collection !== selection) {\n schedule(collection, transform, point, event);\n } else {\n selection.interrupt().each(function() {\n gesture(this, arguments)\n .event(event)\n .start()\n .zoom(null, typeof transform === \"function\" ? transform.apply(this, arguments) : transform)\n .end();\n });\n }\n };\n\n zoom.scaleBy = function(selection, k, p, event) {\n zoom.scaleTo(selection, function() {\n var k0 = this.__zoom.k,\n k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return k0 * k1;\n }, p, event);\n };\n\n zoom.scaleTo = function(selection, k, p, event) {\n zoom.transform(selection, function() {\n var e = extent.apply(this, arguments),\n t0 = this.__zoom,\n p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p,\n p1 = t0.invert(p0),\n k1 = typeof k === \"function\" ? k.apply(this, arguments) : k;\n return constrain(translate(scale(t0, k1), p0, p1), e, translateExtent);\n }, p, event);\n };\n\n zoom.translateBy = function(selection, x, y, event) {\n zoom.transform(selection, function() {\n return constrain(this.__zoom.translate(\n typeof x === \"function\" ? x.apply(this, arguments) : x,\n typeof y === \"function\" ? y.apply(this, arguments) : y\n ), extent.apply(this, arguments), translateExtent);\n }, null, event);\n };\n\n zoom.translateTo = function(selection, x, y, p, event) {\n zoom.transform(selection, function() {\n var e = extent.apply(this, arguments),\n t = this.__zoom,\n p0 = p == null ? centroid(e) : typeof p === \"function\" ? p.apply(this, arguments) : p;\n return constrain(identity.translate(p0[0], p0[1]).scale(t.k).translate(\n typeof x === \"function\" ? -x.apply(this, arguments) : -x,\n typeof y === \"function\" ? -y.apply(this, arguments) : -y\n ), e, translateExtent);\n }, p, event);\n };\n\n function scale(transform, k) {\n k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], k));\n return k === transform.k ? transform : new Transform(k, transform.x, transform.y);\n }\n\n function translate(transform, p0, p1) {\n var x = p0[0] - p1[0] * transform.k, y = p0[1] - p1[1] * transform.k;\n return x === transform.x && y === transform.y ? transform : new Transform(transform.k, x, y);\n }\n\n function centroid(extent) {\n return [(+extent[0][0] + +extent[1][0]) / 2, (+extent[0][1] + +extent[1][1]) / 2];\n }\n\n function schedule(transition, transform, point, event) {\n transition\n .on(\"start.zoom\", function() { gesture(this, arguments).event(event).start(); })\n .on(\"interrupt.zoom end.zoom\", function() { gesture(this, arguments).event(event).end(); })\n .tween(\"zoom\", function() {\n var that = this,\n args = arguments,\n g = gesture(that, args).event(event),\n e = extent.apply(that, args),\n p = point == null ? centroid(e) : typeof point === \"function\" ? point.apply(that, args) : point,\n w = Math.max(e[1][0] - e[0][0], e[1][1] - e[0][1]),\n a = that.__zoom,\n b = typeof transform === \"function\" ? transform.apply(that, args) : transform,\n i = interpolate(a.invert(p).concat(w / a.k), b.invert(p).concat(w / b.k));\n return function(t) {\n if (t === 1) t = b; // Avoid rounding error on end.\n else { var l = i(t), k = w / l[2]; t = new Transform(k, p[0] - l[0] * k, p[1] - l[1] * k); }\n g.zoom(null, t);\n };\n });\n }\n\n function gesture(that, args, clean) {\n return (!clean && that.__zooming) || new Gesture(that, args);\n }\n\n function Gesture(that, args) {\n this.that = that;\n this.args = args;\n this.active = 0;\n this.sourceEvent = null;\n this.extent = extent.apply(that, args);\n this.taps = 0;\n }\n\n Gesture.prototype = {\n event: function(event) {\n if (event) this.sourceEvent = event;\n return this;\n },\n start: function() {\n if (++this.active === 1) {\n this.that.__zooming = this;\n this.emit(\"start\");\n }\n return this;\n },\n zoom: function(key, transform) {\n if (this.mouse && key !== \"mouse\") this.mouse[1] = transform.invert(this.mouse[0]);\n if (this.touch0 && key !== \"touch\") this.touch0[1] = transform.invert(this.touch0[0]);\n if (this.touch1 && key !== \"touch\") this.touch1[1] = transform.invert(this.touch1[0]);\n this.that.__zoom = transform;\n this.emit(\"zoom\");\n return this;\n },\n end: function() {\n if (--this.active === 0) {\n delete this.that.__zooming;\n this.emit(\"end\");\n }\n return this;\n },\n emit: function(type) {\n var d = select(this.that).datum();\n listeners.call(\n type,\n this.that,\n new ZoomEvent(type, {\n sourceEvent: this.sourceEvent,\n target: zoom,\n type,\n transform: this.that.__zoom,\n dispatch: listeners\n }),\n d\n );\n }\n };\n\n function wheeled(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var g = gesture(this, args).event(event),\n t = this.__zoom,\n k = Math.max(scaleExtent[0], Math.min(scaleExtent[1], t.k * Math.pow(2, wheelDelta.apply(this, arguments)))),\n p = pointer(event);\n\n // If the mouse is in the same location as before, reuse it.\n // If there were recent wheel events, reset the wheel idle timeout.\n if (g.wheel) {\n if (g.mouse[0][0] !== p[0] || g.mouse[0][1] !== p[1]) {\n g.mouse[1] = t.invert(g.mouse[0] = p);\n }\n clearTimeout(g.wheel);\n }\n\n // If this wheel event won’t trigger a transform change, ignore it.\n else if (t.k === k) return;\n\n // Otherwise, capture the mouse point and location at the start.\n else {\n g.mouse = [p, t.invert(p)];\n interrupt(this);\n g.start();\n }\n\n noevent(event);\n g.wheel = setTimeout(wheelidled, wheelDelay);\n g.zoom(\"mouse\", constrain(translate(scale(t, k), g.mouse[0], g.mouse[1]), g.extent, translateExtent));\n\n function wheelidled() {\n g.wheel = null;\n g.end();\n }\n }\n\n function mousedowned(event, ...args) {\n if (touchending || !filter.apply(this, arguments)) return;\n var currentTarget = event.currentTarget,\n g = gesture(this, args, true).event(event),\n v = select(event.view).on(\"mousemove.zoom\", mousemoved, true).on(\"mouseup.zoom\", mouseupped, true),\n p = pointer(event, currentTarget),\n x0 = event.clientX,\n y0 = event.clientY;\n\n dragDisable(event.view);\n nopropagation(event);\n g.mouse = [p, this.__zoom.invert(p)];\n interrupt(this);\n g.start();\n\n function mousemoved(event) {\n noevent(event);\n if (!g.moved) {\n var dx = event.clientX - x0, dy = event.clientY - y0;\n g.moved = dx * dx + dy * dy > clickDistance2;\n }\n g.event(event)\n .zoom(\"mouse\", constrain(translate(g.that.__zoom, g.mouse[0] = pointer(event, currentTarget), g.mouse[1]), g.extent, translateExtent));\n }\n\n function mouseupped(event) {\n v.on(\"mousemove.zoom mouseup.zoom\", null);\n dragEnable(event.view, g.moved);\n noevent(event);\n g.event(event).end();\n }\n }\n\n function dblclicked(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var t0 = this.__zoom,\n p0 = pointer(event.changedTouches ? event.changedTouches[0] : event, this),\n p1 = t0.invert(p0),\n k1 = t0.k * (event.shiftKey ? 0.5 : 2),\n t1 = constrain(translate(scale(t0, k1), p0, p1), extent.apply(this, args), translateExtent);\n\n noevent(event);\n if (duration > 0) select(this).transition().duration(duration).call(schedule, t1, p0, event);\n else select(this).call(zoom.transform, t1, p0, event);\n }\n\n function touchstarted(event, ...args) {\n if (!filter.apply(this, arguments)) return;\n var touches = event.touches,\n n = touches.length,\n g = gesture(this, args, event.changedTouches.length === n).event(event),\n started, i, t, p;\n\n nopropagation(event);\n for (i = 0; i < n; ++i) {\n t = touches[i], p = pointer(t, this);\n p = [p, this.__zoom.invert(p), t.identifier];\n if (!g.touch0) g.touch0 = p, started = true, g.taps = 1 + !!touchstarting;\n else if (!g.touch1 && g.touch0[2] !== p[2]) g.touch1 = p, g.taps = 0;\n }\n\n if (touchstarting) touchstarting = clearTimeout(touchstarting);\n\n if (started) {\n if (g.taps < 2) touchfirst = p[0], touchstarting = setTimeout(function() { touchstarting = null; }, touchDelay);\n interrupt(this);\n g.start();\n }\n }\n\n function touchmoved(event, ...args) {\n if (!this.__zooming) return;\n var g = gesture(this, args).event(event),\n touches = event.changedTouches,\n n = touches.length, i, t, p, l;\n\n noevent(event);\n for (i = 0; i < n; ++i) {\n t = touches[i], p = pointer(t, this);\n if (g.touch0 && g.touch0[2] === t.identifier) g.touch0[0] = p;\n else if (g.touch1 && g.touch1[2] === t.identifier) g.touch1[0] = p;\n }\n t = g.that.__zoom;\n if (g.touch1) {\n var p0 = g.touch0[0], l0 = g.touch0[1],\n p1 = g.touch1[0], l1 = g.touch1[1],\n dp = (dp = p1[0] - p0[0]) * dp + (dp = p1[1] - p0[1]) * dp,\n dl = (dl = l1[0] - l0[0]) * dl + (dl = l1[1] - l0[1]) * dl;\n t = scale(t, Math.sqrt(dp / dl));\n p = [(p0[0] + p1[0]) / 2, (p0[1] + p1[1]) / 2];\n l = [(l0[0] + l1[0]) / 2, (l0[1] + l1[1]) / 2];\n }\n else if (g.touch0) p = g.touch0[0], l = g.touch0[1];\n else return;\n\n g.zoom(\"touch\", constrain(translate(t, p, l), g.extent, translateExtent));\n }\n\n function touchended(event, ...args) {\n if (!this.__zooming) return;\n var g = gesture(this, args).event(event),\n touches = event.changedTouches,\n n = touches.length, i, t;\n\n nopropagation(event);\n if (touchending) clearTimeout(touchending);\n touchending = setTimeout(function() { touchending = null; }, touchDelay);\n for (i = 0; i < n; ++i) {\n t = touches[i];\n if (g.touch0 && g.touch0[2] === t.identifier) delete g.touch0;\n else if (g.touch1 && g.touch1[2] === t.identifier) delete g.touch1;\n }\n if (g.touch1 && !g.touch0) g.touch0 = g.touch1, delete g.touch1;\n if (g.touch0) g.touch0[1] = this.__zoom.invert(g.touch0[0]);\n else {\n g.end();\n // If this was a dbltap, reroute to the (optional) dblclick.zoom handler.\n if (g.taps === 2) {\n t = pointer(t, this);\n if (Math.hypot(touchfirst[0] - t[0], touchfirst[1] - t[1]) < tapDistance) {\n var p = select(this).on(\"dblclick.zoom\");\n if (p) p.apply(this, arguments);\n }\n }\n }\n }\n\n zoom.wheelDelta = function(_) {\n return arguments.length ? (wheelDelta = typeof _ === \"function\" ? _ : constant(+_), zoom) : wheelDelta;\n };\n\n zoom.filter = function(_) {\n return arguments.length ? (filter = typeof _ === \"function\" ? _ : constant(!!_), zoom) : filter;\n };\n\n zoom.touchable = function(_) {\n return arguments.length ? (touchable = typeof _ === \"function\" ? _ : constant(!!_), zoom) : touchable;\n };\n\n zoom.extent = function(_) {\n return arguments.length ? (extent = typeof _ === \"function\" ? _ : constant([[+_[0][0], +_[0][1]], [+_[1][0], +_[1][1]]]), zoom) : extent;\n };\n\n zoom.scaleExtent = function(_) {\n return arguments.length ? (scaleExtent[0] = +_[0], scaleExtent[1] = +_[1], zoom) : [scaleExtent[0], scaleExtent[1]];\n };\n\n zoom.translateExtent = function(_) {\n return arguments.length ? (translateExtent[0][0] = +_[0][0], translateExtent[1][0] = +_[1][0], translateExtent[0][1] = +_[0][1], translateExtent[1][1] = +_[1][1], zoom) : [[translateExtent[0][0], translateExtent[0][1]], [translateExtent[1][0], translateExtent[1][1]]];\n };\n\n zoom.constrain = function(_) {\n return arguments.length ? (constrain = _, zoom) : constrain;\n };\n\n zoom.duration = function(_) {\n return arguments.length ? (duration = +_, zoom) : duration;\n };\n\n zoom.interpolate = function(_) {\n return arguments.length ? (interpolate = _, zoom) : interpolate;\n };\n\n zoom.on = function() {\n var value = listeners.on.apply(listeners, arguments);\n return value === listeners ? zoom : value;\n };\n\n zoom.clickDistance = function(_) {\n return arguments.length ? (clickDistance2 = (_ = +_) * _, zoom) : Math.sqrt(clickDistance2);\n };\n\n zoom.tapDistance = function(_) {\n return arguments.length ? (tapDistance = +_, zoom) : tapDistance;\n };\n\n return zoom;\n}\n"],"names":["Adder","x","p","j","y","hi","lo","n","flatten","arrays","array","merge","degrees","identity","decompose","a","b","c","d","e","f","scaleX","scaleY","skewX","svgNode","parseCss","value","m","parseSvg","interpolateTransform","parse","pxComma","pxParen","degParen","pop","s","translate","xa","ya","xb","yb","q","i","number","rotate","scale","t","o","interpolateTransformCss","interpolateTransformSvg","epsilon2","cosh","sinh","tanh","interpolateZoom","zoomRho","rho","rho2","rho4","zoom","p0","p1","ux0","uy0","w0","ux1","uy1","w1","dx","dy","d2","S","d1","b0","b1","r0","r1","coshr0","u","_","_1","_2","_4","timeout","callback","delay","time","Timer","elapsed","feature","geom","properties","options","feat","point","coordinates","isNumber","num","coordEach","geojson","excludeWrapCoord","k","l","geometry","stopG","coords","geometryMaybeCollection","wrapShrink","coordIndex","isGeometryCollection","type","isFeatureCollection","isFeature","stop","featureIndex","geomIndex","multiFeatureIndex","geometryIndex","geomType","bbox","result","coord","turf_bbox_default","centroid","xSum","ySum","len","turf_centroid_default","epsilon","pi","halfPi","quarterPi","tau","radians","abs","atan","atan2","cos","exp","log","sin","sign","sqrt","tan","acos","asin","noop","streamGeometry","stream","streamGeometryType","streamObjectType","object","features","streamLine","streamPolygon","geometries","closed","coordinate","geoStream","spherical","cartesian","lambda","phi","cosPhi","cartesianDot","cartesianCross","cartesianAddInPlace","cartesianScale","vector","cartesianNormalizeInPlace","compose","rotationIdentity","rotateRadians","deltaLambda","deltaPhi","deltaGamma","rotationLambda","rotationPhiGamma","forwardRotationLambda","rotation","cosDeltaPhi","sinDeltaPhi","cosDeltaGamma","sinDeltaGamma","z","forward","circleStream","radius","delta","direction","t0","t1","cosRadius","sinRadius","step","circleRadius","clipBuffer","lines","line","pointEqual","Intersection","points","other","entry","clipRejoin","segments","compareIntersection","startInside","interpolate","subject","clip","segment","link","start","current","isSubject","longitude","polygonContains","polygon","sinPhi","normal","angle","winding","sum","ring","point0","lambda0","phi0","sinPhi0","cosPhi0","lambda1","sinPhi1","cosPhi1","point1","phi1","absDelta","antimeridian","arc","intersection","phiArc","pointVisible","clipLine","sink","ringBuffer","ringSink","polygonStarted","lineStart","lineEnd","pointRing","ringStart","ringEnd","pointLine","clean","ringSegments","validSegment","clipAntimeridian","clipAntimeridianLine","clipAntimeridianInterpolate","sign0","sign1","clipAntimeridianIntersect","sinLambda0Lambda1","from","to","clipCircle","cr","smallRadius","notHemisphere","visible","c0","v0","v00","point2","v","code","intersect","two","pa","pb","n1","n2","n2n2","n1n2","determinant","c1","c2","n1xn2","A","B","w","uu","t2","polar","meridian","q1","r","x0","y0","x1","y1","ax","ay","bx","by","clipMax","clipMin","clipRectangle","a1","corner","comparePoint","ca","cb","activeStream","bufferStream","x__","y__","v__","x_","y_","v_","first","clipStream","polygonStart","polygonEnd","polygonInside","a0","cleanInside","linePoint","identity$1","boundsStream","boundsPoint","bounds","transformer","methods","TransformStream","key","fit","projection","fitBounds","fitExtent","extent","h","fitSize","size","fitWidth","width","fitHeight","height","maxDepth","cosMinDistance","resample","project","delta2","resampleNone","resampleLineTo","depth","phi2","lambda2","x2","y2","dx2","dy2","dz","lambda00","x00","y00","a00","b00","c00","resampleStream","ringPoint","transformRadians","transformRotate","scaleTranslate","sx","sy","transform","scaleTranslateRotate","alpha","cosAlpha","sinAlpha","ai","bi","ci","fi","projectionMutator","projectAt","theta","preclip","postclip","projectResample","projectTransform","projectRotateTransform","cache","cacheStream","invert","reset","recenter","center","conicProjection","cylindricalEqualAreaRaw","conicEqualAreaRaw","sy0","r0y","conicEqualArea","albers","multiplex","streams","geoAlbersUsa","lower48","lower48Point","alaska","alaskaPoint","hawaii","hawaiiPoint","pointStream","albersUsa","azimuthalInvert","sc","cc","mercatorRaw","geoMercator","mercatorProjection","clipExtent","reclip","A1","A2","A3","A4","M","iterations","equalEarthRaw","l2","l6","fy","fpy","geoEqualEarth","naturalEarth1Raw","phi4","geoNaturalEarth1","orthographicRaw","geoOrthographic","nonpassivecapture","noevent$1","event","dragDisable","view","root","selection","select","noevent","yesdrag","noclick","emptyOn","dispatch","emptyTween","CREATED","SCHEDULED","STARTING","STARTED","RUNNING","ENDING","ENDED","schedule","node","name","id","index","group","timing","schedules","create","init","get","set","self","tween","timer","tick","interrupt","active","empty","selection_interrupt","tweenRemove","tween0","tween1","tweenFunction","transition_tween","tweenValue","transition","interpolateNumber","color","interpolateRgb","interpolateString","attrRemove","attrRemoveNS","fullname","attrConstant","value1","string00","string1","interpolate0","string0","attrConstantNS","attrFunction","string10","attrFunctionNS","transition_attr","namespace","attrInterpolate","attrInterpolateNS","attrTweenNS","i0","attrTween","transition_attrTween","delayFunction","delayConstant","transition_delay","durationFunction","durationConstant","transition_duration","easeConstant","transition_ease","easeVarying","transition_easeVarying","transition_filter","match","matcher","groups","subgroups","subgroup","Transition","transition_merge","groups0","groups1","m0","m1","merges","group0","group1","onFunction","listener","on0","on1","sit","on","transition_on","removeFunction","parent","transition_remove","transition_select","selector","subnode","transition_selectAll","selectorAll","parents","children","child","inherit","Selection","transition_selection","styleNull","style","styleRemove","styleConstant","styleFunction","styleMaybeRemove","listener0","remove","transition_style","priority","styleInterpolate","styleTween","transition_styleTween","textConstant","textFunction","transition_text","textInterpolate","textTween","transition_textTween","transition_transition","id0","id1","newId","transition_end","that","resolve","reject","cancel","end","selection_prototype","cubicInOut","defaultTiming","easeCubicInOut","selection_transition","now","constant","ZoomEvent","sourceEvent","target","Transform","location","nopropagation","defaultFilter","defaultExtent","defaultTransform","defaultWheelDelta","defaultTouchable","defaultConstrain","translateExtent","dx0","dx1","dy0","dy1","filter","constrain","wheelDelta","touchable","scaleExtent","duration","listeners","touchstarting","touchfirst","touchending","touchDelay","wheelDelay","clickDistance2","tapDistance","wheeled","mousedowned","dblclicked","touchstarted","touchmoved","touchended","collection","gesture","k0","k1","args","g","Gesture","pointer","wheelidled","currentTarget","mousemoved","mouseupped","dragEnable","touches","started","l0","l1","dp","dl"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77]}