node-red-contrib-tak-registration 0.2.1 → 0.3.1

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 (1813) hide show
  1. package/README.md +20 -10
  2. package/node_modules/@turf/along/LICENSE +20 -0
  3. package/node_modules/@turf/along/README.md +69 -0
  4. package/node_modules/@turf/along/dist/es/index.js +50 -0
  5. package/node_modules/@turf/along/dist/es/package.json +1 -0
  6. package/node_modules/@turf/along/dist/js/index.d.ts +22 -0
  7. package/node_modules/@turf/along/dist/js/index.js +56 -0
  8. package/node_modules/@turf/along/package.json +95 -0
  9. package/node_modules/@turf/angle/LICENSE +20 -0
  10. package/node_modules/@turf/angle/README.md +64 -0
  11. package/node_modules/@turf/angle/dist/es/index.js +50 -0
  12. package/node_modules/@turf/angle/dist/es/package.json +1 -0
  13. package/node_modules/@turf/angle/dist/js/index.d.ts +22 -0
  14. package/node_modules/@turf/angle/dist/js/index.js +55 -0
  15. package/node_modules/@turf/angle/package.json +102 -0
  16. package/node_modules/@turf/area/LICENSE +20 -0
  17. package/node_modules/@turf/area/README.md +54 -0
  18. package/node_modules/@turf/area/dist/es/index.js +114 -0
  19. package/node_modules/@turf/area/dist/es/package.json +1 -0
  20. package/node_modules/@turf/area/dist/js/index.d.ts +17 -0
  21. package/node_modules/@turf/area/dist/js/index.js +117 -0
  22. package/node_modules/@turf/area/package.json +94 -0
  23. package/node_modules/@turf/bbox/LICENSE +20 -0
  24. package/node_modules/@turf/bbox/README.md +53 -0
  25. package/node_modules/@turf/bbox/dist/es/index.js +35 -0
  26. package/node_modules/@turf/bbox/dist/es/package.json +1 -0
  27. package/node_modules/@turf/bbox/dist/js/index.d.ts +17 -0
  28. package/node_modules/@turf/bbox/dist/js/index.js +37 -0
  29. package/node_modules/@turf/bbox/package.json +108 -0
  30. package/node_modules/@turf/bbox-clip/LICENSE +20 -0
  31. package/node_modules/@turf/bbox-clip/README.md +68 -0
  32. package/node_modules/@turf/bbox-clip/dist/es/index.js +68 -0
  33. package/node_modules/@turf/bbox-clip/dist/es/lib/lineclip.js +107 -0
  34. package/node_modules/@turf/bbox-clip/dist/es/package.json +1 -0
  35. package/node_modules/@turf/bbox-clip/dist/js/index.d.ts +20 -0
  36. package/node_modules/@turf/bbox-clip/dist/js/index.js +71 -0
  37. package/node_modules/@turf/bbox-clip/dist/js/lib/lineclip.d.ts +3 -0
  38. package/node_modules/@turf/bbox-clip/dist/js/lib/lineclip.js +111 -0
  39. package/node_modules/@turf/bbox-clip/package.json +108 -0
  40. package/node_modules/@turf/bbox-polygon/LICENSE +20 -0
  41. package/node_modules/@turf/bbox-polygon/README.md +66 -0
  42. package/node_modules/@turf/bbox-polygon/dist/es/index.js +36 -0
  43. package/node_modules/@turf/bbox-polygon/dist/es/package.json +1 -0
  44. package/node_modules/@turf/bbox-polygon/dist/js/index.d.ts +22 -0
  45. package/node_modules/@turf/bbox-polygon/dist/js/index.js +39 -0
  46. package/node_modules/@turf/bbox-polygon/package.json +92 -0
  47. package/node_modules/@turf/bearing/LICENSE +20 -0
  48. package/node_modules/@turf/bearing/README.md +67 -0
  49. package/node_modules/@turf/bearing/dist/es/index.js +57 -0
  50. package/node_modules/@turf/bearing/dist/es/package.json +1 -0
  51. package/node_modules/@turf/bearing/dist/js/index.d.ts +26 -0
  52. package/node_modules/@turf/bearing/dist/js/index.js +60 -0
  53. package/node_modules/@turf/bearing/package.json +96 -0
  54. package/node_modules/@turf/bezier-spline/LICENSE +20 -0
  55. package/node_modules/@turf/bezier-spline/README.md +79 -0
  56. package/node_modules/@turf/bezier-spline/dist/es/index.js +60 -0
  57. package/node_modules/@turf/bezier-spline/dist/es/lib/spline.js +158 -0
  58. package/node_modules/@turf/bezier-spline/dist/es/package.json +1 -0
  59. package/node_modules/@turf/bezier-spline/dist/js/index.d.ts +37 -0
  60. package/node_modules/@turf/bezier-spline/dist/js/index.js +65 -0
  61. package/node_modules/@turf/bezier-spline/dist/js/lib/spline.d.ts +62 -0
  62. package/node_modules/@turf/bezier-spline/dist/js/lib/spline.js +160 -0
  63. package/node_modules/@turf/bezier-spline/package.json +93 -0
  64. package/node_modules/@turf/boolean-clockwise/LICENSE +20 -0
  65. package/node_modules/@turf/boolean-clockwise/README.md +60 -0
  66. package/node_modules/@turf/boolean-clockwise/dist/es/index.js +30 -0
  67. package/node_modules/@turf/boolean-clockwise/dist/es/package.json +1 -0
  68. package/node_modules/@turf/boolean-clockwise/dist/js/index.d.ts +17 -0
  69. package/node_modules/@turf/boolean-clockwise/dist/js/index.js +33 -0
  70. package/node_modules/@turf/boolean-clockwise/package.json +110 -0
  71. package/node_modules/@turf/boolean-contains/LICENSE +20 -0
  72. package/node_modules/@turf/boolean-contains/README.md +63 -0
  73. package/node_modules/@turf/boolean-contains/dist/es/index.js +225 -0
  74. package/node_modules/@turf/boolean-contains/dist/es/package.json +1 -0
  75. package/node_modules/@turf/boolean-contains/dist/js/index.d.ts +46 -0
  76. package/node_modules/@turf/boolean-contains/dist/js/index.js +241 -0
  77. package/node_modules/@turf/boolean-contains/package.json +107 -0
  78. package/node_modules/@turf/boolean-crosses/LICENSE +20 -0
  79. package/node_modules/@turf/boolean-crosses/README.md +64 -0
  80. package/node_modules/@turf/boolean-crosses/dist/es/index.js +166 -0
  81. package/node_modules/@turf/boolean-crosses/dist/es/package.json +1 -0
  82. package/node_modules/@turf/boolean-crosses/dist/js/index.d.ts +21 -0
  83. package/node_modules/@turf/boolean-crosses/dist/js/index.js +171 -0
  84. package/node_modules/@turf/boolean-crosses/package.json +106 -0
  85. package/node_modules/@turf/boolean-disjoint/LICENSE +20 -0
  86. package/node_modules/@turf/boolean-disjoint/README.md +60 -0
  87. package/node_modules/@turf/boolean-disjoint/dist/es/index.js +168 -0
  88. package/node_modules/@turf/boolean-disjoint/dist/es/package.json +1 -0
  89. package/node_modules/@turf/boolean-disjoint/dist/js/index.d.ts +17 -0
  90. package/node_modules/@turf/boolean-disjoint/dist/js/index.js +173 -0
  91. package/node_modules/@turf/boolean-disjoint/package.json +106 -0
  92. package/node_modules/@turf/boolean-equal/LICENSE +20 -0
  93. package/node_modules/@turf/boolean-equal/README.md +66 -0
  94. package/node_modules/@turf/boolean-equal/dist/es/index.js +30 -0
  95. package/node_modules/@turf/boolean-equal/dist/es/package.json +1 -0
  96. package/node_modules/@turf/boolean-equal/dist/js/index.d.ts +21 -0
  97. package/node_modules/@turf/boolean-equal/dist/js/index.js +35 -0
  98. package/node_modules/@turf/boolean-equal/package.json +112 -0
  99. package/node_modules/@turf/boolean-intersects/LICENSE +20 -0
  100. package/node_modules/@turf/boolean-intersects/README.md +55 -0
  101. package/node_modules/@turf/boolean-intersects/dist/es/index.js +28 -0
  102. package/node_modules/@turf/boolean-intersects/dist/es/package.json +1 -0
  103. package/node_modules/@turf/boolean-intersects/dist/js/index.d.ts +16 -0
  104. package/node_modules/@turf/boolean-intersects/dist/js/index.js +34 -0
  105. package/node_modules/@turf/boolean-intersects/package.json +104 -0
  106. package/node_modules/@turf/boolean-overlap/LICENSE +20 -0
  107. package/node_modules/@turf/boolean-overlap/README.md +73 -0
  108. package/node_modules/@turf/boolean-overlap/dist/es/index.js +80 -0
  109. package/node_modules/@turf/boolean-overlap/dist/es/package.json +1 -0
  110. package/node_modules/@turf/boolean-overlap/dist/js/index.d.ts +23 -0
  111. package/node_modules/@turf/boolean-overlap/dist/js/index.js +86 -0
  112. package/node_modules/@turf/boolean-overlap/package.json +110 -0
  113. package/node_modules/@turf/boolean-parallel/LICENSE +20 -0
  114. package/node_modules/@turf/boolean-parallel/README.md +57 -0
  115. package/node_modules/@turf/boolean-parallel/dist/es/index.js +71 -0
  116. package/node_modules/@turf/boolean-parallel/dist/es/package.json +1 -0
  117. package/node_modules/@turf/boolean-parallel/dist/js/index.d.ts +17 -0
  118. package/node_modules/@turf/boolean-parallel/dist/js/index.js +76 -0
  119. package/node_modules/@turf/boolean-parallel/package.json +100 -0
  120. package/node_modules/@turf/boolean-point-in-polygon/LICENSE +20 -0
  121. package/node_modules/@turf/boolean-point-in-polygon/README.md +76 -0
  122. package/node_modules/@turf/boolean-point-in-polygon/dist/es/index.js +115 -0
  123. package/node_modules/@turf/boolean-point-in-polygon/dist/es/package.json +1 -0
  124. package/node_modules/@turf/boolean-point-in-polygon/dist/js/index.d.ts +28 -0
  125. package/node_modules/@turf/boolean-point-in-polygon/dist/js/index.js +118 -0
  126. package/node_modules/@turf/boolean-point-in-polygon/package.json +104 -0
  127. package/node_modules/@turf/boolean-point-on-line/LICENSE +20 -0
  128. package/node_modules/@turf/boolean-point-on-line/README.md +60 -0
  129. package/node_modules/@turf/boolean-point-on-line/dist/es/index.js +102 -0
  130. package/node_modules/@turf/boolean-point-on-line/dist/es/package.json +1 -0
  131. package/node_modules/@turf/boolean-point-on-line/dist/js/index.d.ts +23 -0
  132. package/node_modules/@turf/boolean-point-on-line/dist/js/index.js +104 -0
  133. package/node_modules/@turf/boolean-point-on-line/package.json +100 -0
  134. package/node_modules/@turf/boolean-within/LICENSE +20 -0
  135. package/node_modules/@turf/boolean-within/README.md +58 -0
  136. package/node_modules/@turf/boolean-within/dist/es/index.js +215 -0
  137. package/node_modules/@turf/boolean-within/dist/es/package.json +1 -0
  138. package/node_modules/@turf/boolean-within/dist/js/index.d.ts +20 -0
  139. package/node_modules/@turf/boolean-within/dist/js/index.js +220 -0
  140. package/node_modules/@turf/boolean-within/package.json +108 -0
  141. package/node_modules/@turf/buffer/LICENSE +20 -0
  142. package/node_modules/@turf/buffer/README.md +76 -0
  143. package/node_modules/@turf/buffer/dist/es/index.js +175 -0
  144. package/node_modules/@turf/buffer/dist/es/package.json +1 -0
  145. package/node_modules/@turf/buffer/dist/js/index.js +182 -0
  146. package/node_modules/@turf/buffer/index.d.ts +61 -0
  147. package/node_modules/@turf/buffer/package.json +112 -0
  148. package/node_modules/@turf/center/LICENSE +20 -0
  149. package/node_modules/@turf/center/README.md +71 -0
  150. package/node_modules/@turf/center/dist/es/index.js +34 -0
  151. package/node_modules/@turf/center/dist/es/package.json +1 -0
  152. package/node_modules/@turf/center/dist/js/index.d.ts +31 -0
  153. package/node_modules/@turf/center/dist/js/index.js +39 -0
  154. package/node_modules/@turf/center/package.json +101 -0
  155. package/node_modules/@turf/center-mean/LICENSE +20 -0
  156. package/node_modules/@turf/center-mean/README.md +75 -0
  157. package/node_modules/@turf/center-mean/dist/es/index.js +51 -0
  158. package/node_modules/@turf/center-mean/dist/es/package.json +1 -0
  159. package/node_modules/@turf/center-mean/dist/js/index.d.ts +35 -0
  160. package/node_modules/@turf/center-mean/dist/js/index.js +53 -0
  161. package/node_modules/@turf/center-mean/package.json +108 -0
  162. package/node_modules/@turf/center-median/LICENSE +20 -0
  163. package/node_modules/@turf/center-median/README.md +103 -0
  164. package/node_modules/@turf/center-median/dist/es/index.js +135 -0
  165. package/node_modules/@turf/center-median/dist/es/package.json +1 -0
  166. package/node_modules/@turf/center-median/dist/js/index.d.ts +62 -0
  167. package/node_modules/@turf/center-median/dist/js/index.js +140 -0
  168. package/node_modules/@turf/center-median/package.json +103 -0
  169. package/node_modules/@turf/center-of-mass/LICENSE +20 -0
  170. package/node_modules/@turf/center-of-mass/README.md +67 -0
  171. package/node_modules/@turf/center-of-mass/dist/es/index.js +81 -0
  172. package/node_modules/@turf/center-of-mass/dist/es/package.json +1 -0
  173. package/node_modules/@turf/center-of-mass/dist/js/index.d.ts +21 -0
  174. package/node_modules/@turf/center-of-mass/dist/js/index.js +86 -0
  175. package/node_modules/@turf/center-of-mass/package.json +95 -0
  176. package/node_modules/@turf/centroid/LICENSE +20 -0
  177. package/node_modules/@turf/centroid/README.md +62 -0
  178. package/node_modules/@turf/centroid/dist/es/index.js +32 -0
  179. package/node_modules/@turf/centroid/dist/es/package.json +1 -0
  180. package/node_modules/@turf/centroid/dist/js/index.d.ts +22 -0
  181. package/node_modules/@turf/centroid/dist/js/index.js +34 -0
  182. package/node_modules/@turf/centroid/package.json +101 -0
  183. package/node_modules/@turf/circle/LICENSE +20 -0
  184. package/node_modules/@turf/circle/README.md +71 -0
  185. package/node_modules/@turf/circle/dist/es/index.js +41 -0
  186. package/node_modules/@turf/circle/dist/es/package.json +1 -0
  187. package/node_modules/@turf/circle/dist/js/index.d.ts +27 -0
  188. package/node_modules/@turf/circle/dist/js/index.js +46 -0
  189. package/node_modules/@turf/circle/package.json +99 -0
  190. package/node_modules/@turf/clean-coords/LICENSE +20 -0
  191. package/node_modules/@turf/clean-coords/README.md +61 -0
  192. package/node_modules/@turf/clean-coords/dist/es/index.js +159 -0
  193. package/node_modules/@turf/clean-coords/dist/es/package.json +1 -0
  194. package/node_modules/@turf/clean-coords/dist/js/index.d.ts +22 -0
  195. package/node_modules/@turf/clean-coords/dist/js/index.js +161 -0
  196. package/node_modules/@turf/clean-coords/package.json +103 -0
  197. package/node_modules/@turf/clone/LICENSE +20 -0
  198. package/node_modules/@turf/clone/README.md +49 -0
  199. package/node_modules/@turf/clone/dist/es/index.js +157 -0
  200. package/node_modules/@turf/clone/dist/es/package.json +1 -0
  201. package/node_modules/@turf/clone/dist/js/index.d.ts +15 -0
  202. package/node_modules/@turf/clone/dist/js/index.js +159 -0
  203. package/node_modules/@turf/clone/package.json +109 -0
  204. package/node_modules/@turf/clusters/LICENSE +20 -0
  205. package/node_modules/@turf/clusters/README.md +208 -0
  206. package/node_modules/@turf/clusters/dist/es/index.js +294 -0
  207. package/node_modules/@turf/clusters/dist/es/package.json +1 -0
  208. package/node_modules/@turf/clusters/dist/js/index.d.ts +197 -0
  209. package/node_modules/@turf/clusters/dist/js/index.js +303 -0
  210. package/node_modules/@turf/clusters/package.json +98 -0
  211. package/node_modules/@turf/clusters-dbscan/LICENSE +20 -0
  212. package/node_modules/@turf/clusters-dbscan/README.md +73 -0
  213. package/node_modules/@turf/clusters-dbscan/dist/es/index.js +70 -0
  214. package/node_modules/@turf/clusters-dbscan/dist/es/package.json +1 -0
  215. package/node_modules/@turf/clusters-dbscan/dist/js/index.d.ts +35 -0
  216. package/node_modules/@turf/clusters-dbscan/dist/js/index.js +75 -0
  217. package/node_modules/@turf/clusters-dbscan/package.json +118 -0
  218. package/node_modules/@turf/clusters-kmeans/LICENSE +20 -0
  219. package/node_modules/@turf/clusters-kmeans/README.md +69 -0
  220. package/node_modules/@turf/clusters-kmeans/dist/es/index.js +57 -0
  221. package/node_modules/@turf/clusters-kmeans/dist/es/package.json +1 -0
  222. package/node_modules/@turf/clusters-kmeans/dist/js/index.d.ts +31 -0
  223. package/node_modules/@turf/clusters-kmeans/dist/js/index.js +62 -0
  224. package/node_modules/@turf/clusters-kmeans/package.json +119 -0
  225. package/node_modules/@turf/collect/LICENSE +20 -0
  226. package/node_modules/@turf/collect/README.md +73 -0
  227. package/node_modules/@turf/collect/dist/es/index.js +68 -0
  228. package/node_modules/@turf/collect/dist/es/package.json +1 -0
  229. package/node_modules/@turf/collect/dist/js/index.d.ts +33 -0
  230. package/node_modules/@turf/collect/dist/js/index.js +73 -0
  231. package/node_modules/@turf/collect/node_modules/quickselect/LICENSE +15 -0
  232. package/node_modules/@turf/collect/node_modules/quickselect/README.md +28 -0
  233. package/node_modules/@turf/collect/node_modules/quickselect/index.js +54 -0
  234. package/node_modules/@turf/collect/node_modules/quickselect/package.json +69 -0
  235. package/node_modules/@turf/collect/node_modules/quickselect/quickselect.js +63 -0
  236. package/node_modules/@turf/collect/node_modules/rbush/LICENSE +21 -0
  237. package/node_modules/@turf/collect/node_modules/rbush/README.md +291 -0
  238. package/node_modules/@turf/collect/node_modules/rbush/index.js +562 -0
  239. package/node_modules/@turf/collect/node_modules/rbush/package.json +85 -0
  240. package/node_modules/@turf/collect/node_modules/rbush/rbush.js +626 -0
  241. package/node_modules/@turf/collect/node_modules/rbush/rbush.min.js +1 -0
  242. package/node_modules/@turf/collect/package.json +101 -0
  243. package/node_modules/@turf/combine/LICENSE +20 -0
  244. package/node_modules/@turf/combine/README.md +81 -0
  245. package/node_modules/@turf/combine/dist/es/index.js +79 -0
  246. package/node_modules/@turf/combine/dist/es/package.json +1 -0
  247. package/node_modules/@turf/combine/dist/js/index.d.ts +27 -0
  248. package/node_modules/@turf/combine/dist/js/index.js +81 -0
  249. package/node_modules/@turf/combine/package.json +91 -0
  250. package/node_modules/@turf/concave/LICENSE +20 -0
  251. package/node_modules/@turf/concave/README.md +81 -0
  252. package/node_modules/@turf/concave/dist/es/index.js +83 -0
  253. package/node_modules/@turf/concave/dist/es/lib/turf-dissolve.js +71 -0
  254. package/node_modules/@turf/concave/dist/es/lib/turf-line-dissolve.js +105 -0
  255. package/node_modules/@turf/concave/dist/es/lib/turf-polygon-dissolve.js +36 -0
  256. package/node_modules/@turf/concave/dist/es/package.json +1 -0
  257. package/node_modules/@turf/concave/dist/js/index.d.ts +33 -0
  258. package/node_modules/@turf/concave/dist/js/index.js +88 -0
  259. package/node_modules/@turf/concave/dist/js/lib/turf-dissolve.d.ts +15 -0
  260. package/node_modules/@turf/concave/dist/js/lib/turf-dissolve.js +76 -0
  261. package/node_modules/@turf/concave/dist/js/lib/turf-line-dissolve.d.ts +14 -0
  262. package/node_modules/@turf/concave/dist/js/lib/turf-line-dissolve.js +110 -0
  263. package/node_modules/@turf/concave/dist/js/lib/turf-polygon-dissolve.d.ts +12 -0
  264. package/node_modules/@turf/concave/dist/js/lib/turf-polygon-dissolve.js +42 -0
  265. package/node_modules/@turf/concave/package.json +138 -0
  266. package/node_modules/@turf/convex/LICENSE +20 -0
  267. package/node_modules/@turf/convex/README.md +83 -0
  268. package/node_modules/@turf/convex/dist/es/index.js +51 -0
  269. package/node_modules/@turf/convex/dist/es/package.json +1 -0
  270. package/node_modules/@turf/convex/dist/js/index.d.ts +33 -0
  271. package/node_modules/@turf/convex/dist/js/index.js +57 -0
  272. package/node_modules/@turf/convex/package.json +94 -0
  273. package/node_modules/@turf/destination/LICENSE +20 -0
  274. package/node_modules/@turf/destination/README.md +75 -0
  275. package/node_modules/@turf/destination/dist/es/index.js +47 -0
  276. package/node_modules/@turf/destination/dist/es/package.json +1 -0
  277. package/node_modules/@turf/destination/dist/js/index.d.ts +31 -0
  278. package/node_modules/@turf/destination/dist/js/index.js +50 -0
  279. package/node_modules/@turf/destination/package.json +102 -0
  280. package/node_modules/@turf/difference/LICENSE +20 -0
  281. package/node_modules/@turf/difference/README.md +77 -0
  282. package/node_modules/@turf/difference/dist/es/index.js +53 -0
  283. package/node_modules/@turf/difference/dist/es/package.json +1 -0
  284. package/node_modules/@turf/difference/dist/js/index.js +60 -0
  285. package/node_modules/@turf/difference/index.d.ts +9 -0
  286. package/node_modules/@turf/difference/package.json +88 -0
  287. package/node_modules/@turf/dissolve/LICENSE +20 -0
  288. package/node_modules/@turf/dissolve/README.md +96 -0
  289. package/node_modules/@turf/dissolve/dist/es/index.js +81 -0
  290. package/node_modules/@turf/dissolve/dist/es/package.json +1 -0
  291. package/node_modules/@turf/dissolve/dist/js/index.js +89 -0
  292. package/node_modules/@turf/dissolve/index.d.ts +11 -0
  293. package/node_modules/@turf/dissolve/package.json +91 -0
  294. package/node_modules/@turf/distance/LICENSE +20 -0
  295. package/node_modules/@turf/distance/README.md +69 -0
  296. package/node_modules/@turf/distance/dist/es/index.js +39 -0
  297. package/node_modules/@turf/distance/dist/es/package.json +1 -0
  298. package/node_modules/@turf/distance/dist/js/index.d.ts +27 -0
  299. package/node_modules/@turf/distance/dist/js/index.js +41 -0
  300. package/node_modules/@turf/distance/package.json +109 -0
  301. package/node_modules/@turf/distance-weight/LICENSE +20 -0
  302. package/node_modules/@turf/distance-weight/README.md +64 -0
  303. package/node_modules/@turf/distance-weight/dist/es/index.js +105 -0
  304. package/node_modules/@turf/distance-weight/dist/es/package.json +1 -0
  305. package/node_modules/@turf/distance-weight/dist/js/index.d.ts +37 -0
  306. package/node_modules/@turf/distance-weight/dist/js/index.js +112 -0
  307. package/node_modules/@turf/distance-weight/package.json +99 -0
  308. package/node_modules/@turf/ellipse/LICENSE +20 -0
  309. package/node_modules/@turf/ellipse/README.md +72 -0
  310. package/node_modules/@turf/ellipse/dist/es/index.js +104 -0
  311. package/node_modules/@turf/ellipse/dist/es/package.json +1 -0
  312. package/node_modules/@turf/ellipse/dist/js/index.js +112 -0
  313. package/node_modules/@turf/ellipse/index.d.ts +15 -0
  314. package/node_modules/@turf/ellipse/package.json +101 -0
  315. package/node_modules/@turf/envelope/LICENSE +20 -0
  316. package/node_modules/@turf/envelope/README.md +61 -0
  317. package/node_modules/@turf/envelope/dist/es/index.js +26 -0
  318. package/node_modules/@turf/envelope/dist/es/package.json +1 -0
  319. package/node_modules/@turf/envelope/dist/js/index.js +34 -0
  320. package/node_modules/@turf/envelope/index.d.ts +6 -0
  321. package/node_modules/@turf/envelope/package.json +90 -0
  322. package/node_modules/@turf/explode/LICENSE +20 -0
  323. package/node_modules/@turf/explode/README.md +59 -0
  324. package/node_modules/@turf/explode/dist/es/index.js +35 -0
  325. package/node_modules/@turf/explode/dist/es/package.json +1 -0
  326. package/node_modules/@turf/explode/dist/js/index.js +38 -0
  327. package/node_modules/@turf/explode/index.d.ts +6 -0
  328. package/node_modules/@turf/explode/package.json +92 -0
  329. package/node_modules/@turf/flatten/LICENSE +20 -0
  330. package/node_modules/@turf/flatten/README.md +63 -0
  331. package/node_modules/@turf/flatten/dist/es/index.js +32 -0
  332. package/node_modules/@turf/flatten/dist/es/package.json +1 -0
  333. package/node_modules/@turf/flatten/dist/js/index.js +35 -0
  334. package/node_modules/@turf/flatten/index.d.ts +27 -0
  335. package/node_modules/@turf/flatten/package.json +100 -0
  336. package/node_modules/@turf/flip/LICENSE +20 -0
  337. package/node_modules/@turf/flip/README.md +57 -0
  338. package/node_modules/@turf/flip/dist/es/index.js +42 -0
  339. package/node_modules/@turf/flip/dist/es/package.json +1 -0
  340. package/node_modules/@turf/flip/dist/js/index.js +49 -0
  341. package/node_modules/@turf/flip/index.d.ts +8 -0
  342. package/node_modules/@turf/flip/package.json +90 -0
  343. package/node_modules/@turf/great-circle/LICENSE +20 -0
  344. package/node_modules/@turf/great-circle/README.md +74 -0
  345. package/node_modules/@turf/great-circle/dist/es/index.js +333 -0
  346. package/node_modules/@turf/great-circle/dist/es/package.json +1 -0
  347. package/node_modules/@turf/great-circle/dist/js/index.js +336 -0
  348. package/node_modules/@turf/great-circle/index.d.ts +20 -0
  349. package/node_modules/@turf/great-circle/package.json +105 -0
  350. package/node_modules/@turf/helpers/LICENSE +20 -0
  351. package/node_modules/@turf/helpers/README.md +579 -0
  352. package/node_modules/@turf/helpers/dist/es/index.js +696 -0
  353. package/node_modules/@turf/helpers/dist/es/lib/geojson.js +7 -0
  354. package/node_modules/@turf/helpers/dist/es/package.json +1 -0
  355. package/node_modules/@turf/helpers/dist/js/index.d.ts +482 -0
  356. package/node_modules/@turf/helpers/dist/js/index.js +724 -0
  357. package/node_modules/@turf/helpers/dist/js/lib/geojson.d.ts +193 -0
  358. package/node_modules/@turf/helpers/dist/js/lib/geojson.js +9 -0
  359. package/node_modules/@turf/helpers/package.json +211 -0
  360. package/node_modules/@turf/hex-grid/LICENSE +20 -0
  361. package/node_modules/@turf/hex-grid/README.md +82 -0
  362. package/node_modules/@turf/hex-grid/dist/es/index.js +157 -0
  363. package/node_modules/@turf/hex-grid/dist/es/package.json +1 -0
  364. package/node_modules/@turf/hex-grid/dist/js/index.d.ts +33 -0
  365. package/node_modules/@turf/hex-grid/dist/js/index.js +162 -0
  366. package/node_modules/@turf/hex-grid/package.json +126 -0
  367. package/node_modules/@turf/interpolate/LICENSE +20 -0
  368. package/node_modules/@turf/interpolate/README.md +74 -0
  369. package/node_modules/@turf/interpolate/dist/es/index.js +107 -0
  370. package/node_modules/@turf/interpolate/dist/es/package.json +1 -0
  371. package/node_modules/@turf/interpolate/dist/js/index.js +121 -0
  372. package/node_modules/@turf/interpolate/index.d.ts +25 -0
  373. package/node_modules/@turf/interpolate/package.json +105 -0
  374. package/node_modules/@turf/intersect/LICENSE +20 -0
  375. package/node_modules/@turf/intersect/README.md +81 -0
  376. package/node_modules/@turf/intersect/dist/es/index.js +50 -0
  377. package/node_modules/@turf/intersect/dist/es/package.json +1 -0
  378. package/node_modules/@turf/intersect/dist/js/index.d.ts +40 -0
  379. package/node_modules/@turf/intersect/dist/js/index.js +56 -0
  380. package/node_modules/@turf/intersect/package.json +96 -0
  381. package/node_modules/@turf/invariant/LICENSE +20 -0
  382. package/node_modules/@turf/invariant/README.md +202 -0
  383. package/node_modules/@turf/invariant/dist/es/index.js +223 -0
  384. package/node_modules/@turf/invariant/dist/es/package.json +1 -0
  385. package/node_modules/@turf/invariant/dist/js/index.d.ts +105 -0
  386. package/node_modules/@turf/invariant/dist/js/index.js +233 -0
  387. package/node_modules/@turf/invariant/package.json +154 -0
  388. package/node_modules/@turf/isobands/LICENSE +20 -0
  389. package/node_modules/@turf/isobands/README.md +64 -0
  390. package/node_modules/@turf/isobands/dist/es/index.js +3793 -0
  391. package/node_modules/@turf/isobands/dist/es/package.json +1 -0
  392. package/node_modules/@turf/isobands/dist/js/index.js +3804 -0
  393. package/node_modules/@turf/isobands/index.d.ts +19 -0
  394. package/node_modules/@turf/isobands/package.json +110 -0
  395. package/node_modules/@turf/isolines/LICENSE +20 -0
  396. package/node_modules/@turf/isolines/README.md +86 -0
  397. package/node_modules/@turf/isolines/dist/es/index.js +647 -0
  398. package/node_modules/@turf/isolines/dist/es/package.json +1 -0
  399. package/node_modules/@turf/isolines/dist/js/index.js +655 -0
  400. package/node_modules/@turf/isolines/index.d.ts +19 -0
  401. package/node_modules/@turf/isolines/package.json +106 -0
  402. package/node_modules/@turf/kinks/LICENSE +20 -0
  403. package/node_modules/@turf/kinks/README.md +79 -0
  404. package/node_modules/@turf/kinks/dist/es/index.js +136 -0
  405. package/node_modules/@turf/kinks/dist/es/lib/sweepline-intersections.js +288 -0
  406. package/node_modules/@turf/kinks/dist/es/package.json +1 -0
  407. package/node_modules/@turf/kinks/dist/js/index.d.ts +24 -0
  408. package/node_modules/@turf/kinks/dist/js/index.js +139 -0
  409. package/node_modules/@turf/kinks/dist/js/lib/sweepline-intersections.d.ts +2 -0
  410. package/node_modules/@turf/kinks/dist/js/lib/sweepline-intersections.js +290 -0
  411. package/node_modules/@turf/kinks/package.json +90 -0
  412. package/node_modules/@turf/length/LICENSE +20 -0
  413. package/node_modules/@turf/length/README.md +67 -0
  414. package/node_modules/@turf/length/dist/es/index.js +26 -0
  415. package/node_modules/@turf/length/dist/es/package.json +1 -0
  416. package/node_modules/@turf/length/dist/js/index.d.ts +20 -0
  417. package/node_modules/@turf/length/dist/js/index.js +32 -0
  418. package/node_modules/@turf/length/package.json +106 -0
  419. package/node_modules/@turf/line-arc/LICENSE +20 -0
  420. package/node_modules/@turf/line-arc/README.md +71 -0
  421. package/node_modules/@turf/line-arc/dist/es/index.js +70 -0
  422. package/node_modules/@turf/line-arc/dist/es/package.json +1 -0
  423. package/node_modules/@turf/line-arc/dist/js/index.d.ts +29 -0
  424. package/node_modules/@turf/line-arc/dist/js/index.js +76 -0
  425. package/node_modules/@turf/line-arc/package.json +92 -0
  426. package/node_modules/@turf/line-chunk/LICENSE +20 -0
  427. package/node_modules/@turf/line-chunk/README.md +74 -0
  428. package/node_modules/@turf/line-chunk/dist/es/index.js +87 -0
  429. package/node_modules/@turf/line-chunk/dist/es/package.json +1 -0
  430. package/node_modules/@turf/line-chunk/dist/js/index.js +95 -0
  431. package/node_modules/@turf/line-chunk/index.d.ts +25 -0
  432. package/node_modules/@turf/line-chunk/package.json +111 -0
  433. package/node_modules/@turf/line-intersect/LICENSE +20 -0
  434. package/node_modules/@turf/line-intersect/README.md +66 -0
  435. package/node_modules/@turf/line-intersect/dist/es/index.js +107 -0
  436. package/node_modules/@turf/line-intersect/dist/es/package.json +1 -0
  437. package/node_modules/@turf/line-intersect/dist/js/index.d.ts +18 -0
  438. package/node_modules/@turf/line-intersect/dist/js/index.js +112 -0
  439. package/node_modules/@turf/line-intersect/package.json +112 -0
  440. package/node_modules/@turf/line-offset/LICENSE +20 -0
  441. package/node_modules/@turf/line-offset/README.md +69 -0
  442. package/node_modules/@turf/line-offset/dist/es/index.js +243 -0
  443. package/node_modules/@turf/line-offset/dist/es/package.json +1 -0
  444. package/node_modules/@turf/line-offset/dist/js/index.js +246 -0
  445. package/node_modules/@turf/line-offset/index.d.ts +12 -0
  446. package/node_modules/@turf/line-offset/package.json +105 -0
  447. package/node_modules/@turf/line-overlap/LICENSE +20 -0
  448. package/node_modules/@turf/line-overlap/README.md +71 -0
  449. package/node_modules/@turf/line-overlap/dist/es/index.js +128 -0
  450. package/node_modules/@turf/line-overlap/dist/es/package.json +1 -0
  451. package/node_modules/@turf/line-overlap/dist/js/index.d.ts +23 -0
  452. package/node_modules/@turf/line-overlap/dist/js/index.js +133 -0
  453. package/node_modules/@turf/line-overlap/package.json +108 -0
  454. package/node_modules/@turf/line-segment/LICENSE +20 -0
  455. package/node_modules/@turf/line-segment/README.md +68 -0
  456. package/node_modules/@turf/line-segment/dist/es/index.js +93 -0
  457. package/node_modules/@turf/line-segment/dist/es/package.json +1 -0
  458. package/node_modules/@turf/line-segment/dist/js/index.d.ts +17 -0
  459. package/node_modules/@turf/line-segment/dist/js/index.js +95 -0
  460. package/node_modules/@turf/line-segment/package.json +96 -0
  461. package/node_modules/@turf/line-slice/LICENSE +20 -0
  462. package/node_modules/@turf/line-slice/README.md +74 -0
  463. package/node_modules/@turf/line-slice/dist/es/index.js +60 -0
  464. package/node_modules/@turf/line-slice/dist/es/package.json +1 -0
  465. package/node_modules/@turf/line-slice/dist/js/index.js +67 -0
  466. package/node_modules/@turf/line-slice/index.d.ts +10 -0
  467. package/node_modules/@turf/line-slice/package.json +93 -0
  468. package/node_modules/@turf/line-slice-along/LICENSE +20 -0
  469. package/node_modules/@turf/line-slice-along/README.md +72 -0
  470. package/node_modules/@turf/line-slice-along/dist/es/index.js +87 -0
  471. package/node_modules/@turf/line-slice-along/dist/es/package.json +1 -0
  472. package/node_modules/@turf/line-slice-along/dist/js/index.js +96 -0
  473. package/node_modules/@turf/line-slice-along/index.d.ts +13 -0
  474. package/node_modules/@turf/line-slice-along/package.json +90 -0
  475. package/node_modules/@turf/line-split/LICENSE +20 -0
  476. package/node_modules/@turf/line-split/README.md +57 -0
  477. package/node_modules/@turf/line-split/dist/es/index.js +215 -0
  478. package/node_modules/@turf/line-split/dist/es/package.json +1 -0
  479. package/node_modules/@turf/line-split/dist/js/index.js +228 -0
  480. package/node_modules/@turf/line-split/index.d.ts +22 -0
  481. package/node_modules/@turf/line-split/package.json +103 -0
  482. package/node_modules/@turf/line-to-polygon/LICENSE +20 -0
  483. package/node_modules/@turf/line-to-polygon/README.md +69 -0
  484. package/node_modules/@turf/line-to-polygon/dist/es/index.js +130 -0
  485. package/node_modules/@turf/line-to-polygon/dist/es/package.json +1 -0
  486. package/node_modules/@turf/line-to-polygon/dist/js/index.d.ts +27 -0
  487. package/node_modules/@turf/line-to-polygon/dist/js/index.js +135 -0
  488. package/node_modules/@turf/line-to-polygon/package.json +102 -0
  489. package/node_modules/@turf/mask/LICENSE +20 -0
  490. package/node_modules/@turf/mask/README.md +74 -0
  491. package/node_modules/@turf/mask/dist/es/index.js +79 -0
  492. package/node_modules/@turf/mask/dist/es/package.json +1 -0
  493. package/node_modules/@turf/mask/dist/js/index.js +86 -0
  494. package/node_modules/@turf/mask/index.d.ts +14 -0
  495. package/node_modules/@turf/mask/package.json +89 -0
  496. package/node_modules/@turf/meta/LICENSE +20 -0
  497. package/node_modules/@turf/meta/README.md +858 -0
  498. package/node_modules/@turf/meta/dist/es/index.js +1401 -0
  499. package/node_modules/@turf/meta/dist/es/package.json +1 -0
  500. package/node_modules/@turf/meta/dist/js/index.js +1421 -0
  501. package/node_modules/@turf/meta/index.d.ts +301 -0
  502. package/node_modules/@turf/meta/package.json +169 -0
  503. package/node_modules/@turf/midpoint/LICENSE +20 -0
  504. package/node_modules/@turf/midpoint/README.md +61 -0
  505. package/node_modules/@turf/midpoint/dist/es/index.js +31 -0
  506. package/node_modules/@turf/midpoint/dist/es/package.json +1 -0
  507. package/node_modules/@turf/midpoint/dist/js/index.js +40 -0
  508. package/node_modules/@turf/midpoint/index.d.ts +6 -0
  509. package/node_modules/@turf/midpoint/package.json +89 -0
  510. package/node_modules/@turf/moran-index/LICENSE +20 -0
  511. package/node_modules/@turf/moran-index/README.md +107 -0
  512. package/node_modules/@turf/moran-index/dist/es/index.js +133 -0
  513. package/node_modules/@turf/moran-index/dist/es/package.json +1 -0
  514. package/node_modules/@turf/moran-index/dist/js/index.d.ts +63 -0
  515. package/node_modules/@turf/moran-index/dist/js/index.js +139 -0
  516. package/node_modules/@turf/moran-index/package.json +97 -0
  517. package/node_modules/@turf/nearest-point/LICENSE +20 -0
  518. package/node_modules/@turf/nearest-point/README.md +69 -0
  519. package/node_modules/@turf/nearest-point/dist/es/index.js +49 -0
  520. package/node_modules/@turf/nearest-point/dist/es/package.json +1 -0
  521. package/node_modules/@turf/nearest-point/dist/js/index.d.ts +34 -0
  522. package/node_modules/@turf/nearest-point/dist/js/index.js +54 -0
  523. package/node_modules/@turf/nearest-point/package.json +97 -0
  524. package/node_modules/@turf/nearest-point-on-line/LICENSE +20 -0
  525. package/node_modules/@turf/nearest-point-on-line/README.md +83 -0
  526. package/node_modules/@turf/nearest-point-on-line/dist/es/index.js +88 -0
  527. package/node_modules/@turf/nearest-point-on-line/dist/es/package.json +1 -0
  528. package/node_modules/@turf/nearest-point-on-line/dist/js/index.d.ts +39 -0
  529. package/node_modules/@turf/nearest-point-on-line/dist/js/index.js +93 -0
  530. package/node_modules/@turf/nearest-point-on-line/package.json +98 -0
  531. package/node_modules/@turf/nearest-point-to-line/LICENSE +20 -0
  532. package/node_modules/@turf/nearest-point-to-line/README.md +86 -0
  533. package/node_modules/@turf/nearest-point-to-line/dist/es/index.js +91 -0
  534. package/node_modules/@turf/nearest-point-to-line/dist/es/package.json +1 -0
  535. package/node_modules/@turf/nearest-point-to-line/dist/js/index.d.ts +32 -0
  536. package/node_modules/@turf/nearest-point-to-line/dist/js/index.js +96 -0
  537. package/node_modules/@turf/nearest-point-to-line/package.json +106 -0
  538. package/node_modules/@turf/planepoint/LICENSE +20 -0
  539. package/node_modules/@turf/planepoint/README.md +79 -0
  540. package/node_modules/@turf/planepoint/dist/es/index.js +77 -0
  541. package/node_modules/@turf/planepoint/dist/es/package.json +1 -0
  542. package/node_modules/@turf/planepoint/dist/js/index.js +80 -0
  543. package/node_modules/@turf/planepoint/index.d.ts +9 -0
  544. package/node_modules/@turf/planepoint/package.json +88 -0
  545. package/node_modules/@turf/point-grid/LICENSE +20 -0
  546. package/node_modules/@turf/point-grid/README.md +80 -0
  547. package/node_modules/@turf/point-grid/dist/es/index.js +72 -0
  548. package/node_modules/@turf/point-grid/dist/es/package.json +1 -0
  549. package/node_modules/@turf/point-grid/dist/js/index.d.ts +28 -0
  550. package/node_modules/@turf/point-grid/dist/js/index.js +77 -0
  551. package/node_modules/@turf/point-grid/package.json +108 -0
  552. package/node_modules/@turf/point-on-feature/LICENSE +20 -0
  553. package/node_modules/@turf/point-on-feature/README.md +73 -0
  554. package/node_modules/@turf/point-on-feature/dist/es/index.js +149 -0
  555. package/node_modules/@turf/point-on-feature/dist/es/package.json +1 -0
  556. package/node_modules/@turf/point-on-feature/dist/js/index.js +159 -0
  557. package/node_modules/@turf/point-on-feature/index.d.ts +6 -0
  558. package/node_modules/@turf/point-on-feature/package.json +93 -0
  559. package/node_modules/@turf/point-to-line-distance/LICENSE +20 -0
  560. package/node_modules/@turf/point-to-line-distance/README.md +71 -0
  561. package/node_modules/@turf/point-to-line-distance/dist/es/index.js +106 -0
  562. package/node_modules/@turf/point-to-line-distance/dist/es/package.json +1 -0
  563. package/node_modules/@turf/point-to-line-distance/dist/js/index.d.ts +26 -0
  564. package/node_modules/@turf/point-to-line-distance/dist/js/index.js +111 -0
  565. package/node_modules/@turf/point-to-line-distance/package.json +106 -0
  566. package/node_modules/@turf/points-within-polygon/LICENSE +20 -0
  567. package/node_modules/@turf/points-within-polygon/README.md +86 -0
  568. package/node_modules/@turf/points-within-polygon/dist/es/index.js +71 -0
  569. package/node_modules/@turf/points-within-polygon/dist/es/package.json +1 -0
  570. package/node_modules/@turf/points-within-polygon/dist/js/index.js +78 -0
  571. package/node_modules/@turf/points-within-polygon/index.d.ts +21 -0
  572. package/node_modules/@turf/points-within-polygon/package.json +90 -0
  573. package/node_modules/@turf/polygon-smooth/LICENSE +20 -0
  574. package/node_modules/@turf/polygon-smooth/README.md +70 -0
  575. package/node_modules/@turf/polygon-smooth/dist/es/index.js +162 -0
  576. package/node_modules/@turf/polygon-smooth/dist/es/package.json +1 -0
  577. package/node_modules/@turf/polygon-smooth/dist/js/index.js +165 -0
  578. package/node_modules/@turf/polygon-smooth/index.d.ts +16 -0
  579. package/node_modules/@turf/polygon-smooth/package.json +95 -0
  580. package/node_modules/@turf/polygon-tangents/LICENSE +20 -0
  581. package/node_modules/@turf/polygon-tangents/README.md +67 -0
  582. package/node_modules/@turf/polygon-tangents/dist/es/index.js +147 -0
  583. package/node_modules/@turf/polygon-tangents/dist/es/package.json +1 -0
  584. package/node_modules/@turf/polygon-tangents/dist/js/index.js +156 -0
  585. package/node_modules/@turf/polygon-tangents/index.d.ts +16 -0
  586. package/node_modules/@turf/polygon-tangents/package.json +104 -0
  587. package/node_modules/@turf/polygon-to-line/LICENSE +20 -0
  588. package/node_modules/@turf/polygon-to-line/README.md +71 -0
  589. package/node_modules/@turf/polygon-to-line/dist/es/index.js +75 -0
  590. package/node_modules/@turf/polygon-to-line/dist/es/package.json +1 -0
  591. package/node_modules/@turf/polygon-to-line/dist/js/index.d.ts +37 -0
  592. package/node_modules/@turf/polygon-to-line/dist/js/index.js +81 -0
  593. package/node_modules/@turf/polygon-to-line/package.json +95 -0
  594. package/node_modules/@turf/polygonize/LICENSE +20 -0
  595. package/node_modules/@turf/polygonize/README.md +69 -0
  596. package/node_modules/@turf/polygonize/dist/es/index.js +46 -0
  597. package/node_modules/@turf/polygonize/dist/es/lib/Edge.js +77 -0
  598. package/node_modules/@turf/polygonize/dist/es/lib/EdgeRing.js +199 -0
  599. package/node_modules/@turf/polygonize/dist/es/lib/Graph.js +302 -0
  600. package/node_modules/@turf/polygonize/dist/es/lib/Node.js +93 -0
  601. package/node_modules/@turf/polygonize/dist/es/lib/util.js +66 -0
  602. package/node_modules/@turf/polygonize/dist/es/package.json +1 -0
  603. package/node_modules/@turf/polygonize/dist/js/index.d.ts +20 -0
  604. package/node_modules/@turf/polygonize/dist/js/index.js +52 -0
  605. package/node_modules/@turf/polygonize/dist/js/lib/Edge.d.ts +55 -0
  606. package/node_modules/@turf/polygonize/dist/js/lib/Edge.js +79 -0
  607. package/node_modules/@turf/polygonize/dist/js/lib/EdgeRing.d.ts +122 -0
  608. package/node_modules/@turf/polygonize/dist/js/lib/EdgeRing.js +204 -0
  609. package/node_modules/@turf/polygonize/dist/js/lib/Graph.d.ts +124 -0
  610. package/node_modules/@turf/polygonize/dist/js/lib/Graph.js +307 -0
  611. package/node_modules/@turf/polygonize/dist/js/lib/Node.d.ts +40 -0
  612. package/node_modules/@turf/polygonize/dist/js/lib/Node.js +95 -0
  613. package/node_modules/@turf/polygonize/dist/js/lib/util.d.ts +46 -0
  614. package/node_modules/@turf/polygonize/dist/js/lib/util.js +75 -0
  615. package/node_modules/@turf/polygonize/package.json +105 -0
  616. package/node_modules/@turf/projection/LICENSE +20 -0
  617. package/node_modules/@turf/projection/README.md +78 -0
  618. package/node_modules/@turf/projection/dist/es/index.js +137 -0
  619. package/node_modules/@turf/projection/dist/es/package.json +1 -0
  620. package/node_modules/@turf/projection/dist/js/index.d.ts +37 -0
  621. package/node_modules/@turf/projection/dist/js/index.js +144 -0
  622. package/node_modules/@turf/projection/package.json +113 -0
  623. package/node_modules/@turf/random/LICENSE +20 -0
  624. package/node_modules/@turf/random/README.md +129 -0
  625. package/node_modules/@turf/random/dist/es/index.js +188 -0
  626. package/node_modules/@turf/random/dist/es/package.json +1 -0
  627. package/node_modules/@turf/random/dist/js/index.d.ts +72 -0
  628. package/node_modules/@turf/random/dist/js/index.js +194 -0
  629. package/node_modules/@turf/random/package.json +88 -0
  630. package/node_modules/@turf/rectangle-grid/LICENSE +20 -0
  631. package/node_modules/@turf/rectangle-grid/README.md +60 -0
  632. package/node_modules/@turf/rectangle-grid/dist/es/index.js +77 -0
  633. package/node_modules/@turf/rectangle-grid/dist/es/package.json +1 -0
  634. package/node_modules/@turf/rectangle-grid/dist/js/index.d.ts +32 -0
  635. package/node_modules/@turf/rectangle-grid/dist/js/index.js +82 -0
  636. package/node_modules/@turf/rectangle-grid/package.json +104 -0
  637. package/node_modules/@turf/rewind/LICENSE +20 -0
  638. package/node_modules/@turf/rewind/README.md +64 -0
  639. package/node_modules/@turf/rewind/dist/es/index.js +134 -0
  640. package/node_modules/@turf/rewind/dist/es/package.json +1 -0
  641. package/node_modules/@turf/rewind/dist/js/index.js +142 -0
  642. package/node_modules/@turf/rewind/index.d.ts +12 -0
  643. package/node_modules/@turf/rewind/package.json +110 -0
  644. package/node_modules/@turf/rhumb-bearing/LICENSE +20 -0
  645. package/node_modules/@turf/rhumb-bearing/README.md +66 -0
  646. package/node_modules/@turf/rhumb-bearing/dist/es/index.js +69 -0
  647. package/node_modules/@turf/rhumb-bearing/dist/es/package.json +1 -0
  648. package/node_modules/@turf/rhumb-bearing/dist/js/index.d.ts +26 -0
  649. package/node_modules/@turf/rhumb-bearing/dist/js/index.js +71 -0
  650. package/node_modules/@turf/rhumb-bearing/package.json +112 -0
  651. package/node_modules/@turf/rhumb-destination/LICENSE +20 -0
  652. package/node_modules/@turf/rhumb-destination/README.md +73 -0
  653. package/node_modules/@turf/rhumb-destination/dist/es/index.js +86 -0
  654. package/node_modules/@turf/rhumb-destination/dist/es/package.json +1 -0
  655. package/node_modules/@turf/rhumb-destination/dist/js/index.d.ts +30 -0
  656. package/node_modules/@turf/rhumb-destination/dist/js/index.js +88 -0
  657. package/node_modules/@turf/rhumb-destination/package.json +116 -0
  658. package/node_modules/@turf/rhumb-distance/LICENSE +20 -0
  659. package/node_modules/@turf/rhumb-distance/README.md +67 -0
  660. package/node_modules/@turf/rhumb-distance/dist/es/index.js +84 -0
  661. package/node_modules/@turf/rhumb-distance/dist/es/package.json +1 -0
  662. package/node_modules/@turf/rhumb-distance/dist/js/index.d.ts +27 -0
  663. package/node_modules/@turf/rhumb-distance/dist/js/index.js +86 -0
  664. package/node_modules/@turf/rhumb-distance/package.json +113 -0
  665. package/node_modules/@turf/sample/LICENSE +20 -0
  666. package/node_modules/@turf/sample/README.md +62 -0
  667. package/node_modules/@turf/sample/dist/es/index.js +50 -0
  668. package/node_modules/@turf/sample/dist/es/package.json +1 -0
  669. package/node_modules/@turf/sample/dist/js/index.js +53 -0
  670. package/node_modules/@turf/sample/index.d.ts +9 -0
  671. package/node_modules/@turf/sample/package.json +85 -0
  672. package/node_modules/@turf/sector/LICENSE +20 -0
  673. package/node_modules/@turf/sector/README.md +74 -0
  674. package/node_modules/@turf/sector/dist/es/index.js +75 -0
  675. package/node_modules/@turf/sector/dist/es/package.json +1 -0
  676. package/node_modules/@turf/sector/dist/js/index.js +83 -0
  677. package/node_modules/@turf/sector/index.d.ts +16 -0
  678. package/node_modules/@turf/sector/package.json +91 -0
  679. package/node_modules/@turf/shortest-path/LICENSE +20 -0
  680. package/node_modules/@turf/shortest-path/README.md +86 -0
  681. package/node_modules/@turf/shortest-path/dist/es/index.js +589 -0
  682. package/node_modules/@turf/shortest-path/dist/es/package.json +1 -0
  683. package/node_modules/@turf/shortest-path/dist/js/index.js +601 -0
  684. package/node_modules/@turf/shortest-path/index.d.ts +22 -0
  685. package/node_modules/@turf/shortest-path/package.json +106 -0
  686. package/node_modules/@turf/simplify/LICENSE +20 -0
  687. package/node_modules/@turf/simplify/README.md +87 -0
  688. package/node_modules/@turf/simplify/dist/es/index.js +300 -0
  689. package/node_modules/@turf/simplify/dist/es/package.json +1 -0
  690. package/node_modules/@turf/simplify/dist/js/index.js +308 -0
  691. package/node_modules/@turf/simplify/index.d.ts +13 -0
  692. package/node_modules/@turf/simplify/package.json +104 -0
  693. package/node_modules/@turf/square/LICENSE +20 -0
  694. package/node_modules/@turf/square/README.md +51 -0
  695. package/node_modules/@turf/square/dist/es/index.js +44 -0
  696. package/node_modules/@turf/square/dist/es/package.json +1 -0
  697. package/node_modules/@turf/square/dist/js/index.js +51 -0
  698. package/node_modules/@turf/square/index.d.ts +6 -0
  699. package/node_modules/@turf/square/package.json +87 -0
  700. package/node_modules/@turf/square-grid/LICENSE +20 -0
  701. package/node_modules/@turf/square-grid/README.md +58 -0
  702. package/node_modules/@turf/square-grid/dist/es/index.js +28 -0
  703. package/node_modules/@turf/square-grid/dist/es/package.json +1 -0
  704. package/node_modules/@turf/square-grid/dist/js/index.d.ts +29 -0
  705. package/node_modules/@turf/square-grid/dist/js/index.js +34 -0
  706. package/node_modules/@turf/square-grid/package.json +95 -0
  707. package/node_modules/@turf/standard-deviational-ellipse/LICENSE +20 -0
  708. package/node_modules/@turf/standard-deviational-ellipse/README.md +94 -0
  709. package/node_modules/@turf/standard-deviational-ellipse/dist/es/index.js +151 -0
  710. package/node_modules/@turf/standard-deviational-ellipse/dist/es/package.json +1 -0
  711. package/node_modules/@turf/standard-deviational-ellipse/dist/js/index.js +160 -0
  712. package/node_modules/@turf/standard-deviational-ellipse/index.d.ts +37 -0
  713. package/node_modules/@turf/standard-deviational-ellipse/package.json +101 -0
  714. package/node_modules/@turf/tag/LICENSE +20 -0
  715. package/node_modules/@turf/tag/README.md +70 -0
  716. package/node_modules/@turf/tag/dist/es/index.js +56 -0
  717. package/node_modules/@turf/tag/dist/es/package.json +1 -0
  718. package/node_modules/@turf/tag/dist/js/index.js +64 -0
  719. package/node_modules/@turf/tag/index.d.ts +11 -0
  720. package/node_modules/@turf/tag/package.json +93 -0
  721. package/node_modules/@turf/tesselate/LICENSE +20 -0
  722. package/node_modules/@turf/tesselate/README.md +61 -0
  723. package/node_modules/@turf/tesselate/dist/es/index.js +79 -0
  724. package/node_modules/@turf/tesselate/dist/es/package.json +1 -0
  725. package/node_modules/@turf/tesselate/dist/js/index.js +86 -0
  726. package/node_modules/@turf/tesselate/index.d.ts +6 -0
  727. package/node_modules/@turf/tesselate/package.json +106 -0
  728. package/node_modules/@turf/tin/LICENSE +20 -0
  729. package/node_modules/@turf/tin/README.md +79 -0
  730. package/node_modules/@turf/tin/dist/es/index.js +240 -0
  731. package/node_modules/@turf/tin/dist/es/package.json +1 -0
  732. package/node_modules/@turf/tin/dist/js/index.d.ts +44 -0
  733. package/node_modules/@turf/tin/dist/js/index.js +243 -0
  734. package/node_modules/@turf/tin/package.json +90 -0
  735. package/node_modules/@turf/transform-rotate/LICENSE +20 -0
  736. package/node_modules/@turf/transform-rotate/README.md +67 -0
  737. package/node_modules/@turf/transform-rotate/dist/es/index.js +62 -0
  738. package/node_modules/@turf/transform-rotate/dist/es/package.json +1 -0
  739. package/node_modules/@turf/transform-rotate/dist/js/index.js +73 -0
  740. package/node_modules/@turf/transform-rotate/index.d.ts +13 -0
  741. package/node_modules/@turf/transform-rotate/package.json +107 -0
  742. package/node_modules/@turf/transform-scale/LICENSE +20 -0
  743. package/node_modules/@turf/transform-scale/README.md +66 -0
  744. package/node_modules/@turf/transform-scale/dist/es/index.js +144 -0
  745. package/node_modules/@turf/transform-scale/dist/es/package.json +1 -0
  746. package/node_modules/@turf/transform-scale/dist/js/index.js +157 -0
  747. package/node_modules/@turf/transform-scale/index.d.ts +13 -0
  748. package/node_modules/@turf/transform-scale/package.json +115 -0
  749. package/node_modules/@turf/transform-translate/LICENSE +20 -0
  750. package/node_modules/@turf/transform-translate/README.md +66 -0
  751. package/node_modules/@turf/transform-translate/dist/es/index.js +72 -0
  752. package/node_modules/@turf/transform-translate/dist/es/package.json +1 -0
  753. package/node_modules/@turf/transform-translate/dist/js/index.js +80 -0
  754. package/node_modules/@turf/transform-translate/index.d.ts +15 -0
  755. package/node_modules/@turf/transform-translate/package.json +105 -0
  756. package/node_modules/@turf/triangle-grid/LICENSE +20 -0
  757. package/node_modules/@turf/triangle-grid/README.md +72 -0
  758. package/node_modules/@turf/triangle-grid/dist/es/index.js +139 -0
  759. package/node_modules/@turf/triangle-grid/dist/es/package.json +1 -0
  760. package/node_modules/@turf/triangle-grid/dist/js/index.d.ts +28 -0
  761. package/node_modules/@turf/triangle-grid/dist/js/index.js +144 -0
  762. package/node_modules/@turf/triangle-grid/package.json +99 -0
  763. package/node_modules/@turf/truncate/LICENSE +20 -0
  764. package/node_modules/@turf/truncate/README.md +66 -0
  765. package/node_modules/@turf/truncate/dist/es/index.js +76 -0
  766. package/node_modules/@turf/truncate/dist/es/package.json +1 -0
  767. package/node_modules/@turf/truncate/dist/js/index.d.ts +30 -0
  768. package/node_modules/@turf/truncate/dist/js/index.js +78 -0
  769. package/node_modules/@turf/truncate/package.json +100 -0
  770. package/node_modules/@turf/turf/LICENSE +20 -0
  771. package/node_modules/@turf/turf/README.md +31 -0
  772. package/node_modules/@turf/turf/dist/es/index.js +118 -0
  773. package/node_modules/@turf/turf/dist/es/package.json +1 -0
  774. package/node_modules/@turf/turf/dist/js/index.js +984 -0
  775. package/node_modules/@turf/turf/index.d.ts +146 -0
  776. package/node_modules/@turf/turf/package.json +216 -0
  777. package/node_modules/@turf/turf/turf.min.js +88 -0
  778. package/node_modules/@turf/union/LICENSE +20 -0
  779. package/node_modules/@turf/union/README.md +77 -0
  780. package/node_modules/@turf/union/dist/es/index.js +46 -0
  781. package/node_modules/@turf/union/dist/es/package.json +1 -0
  782. package/node_modules/@turf/union/dist/js/index.d.ts +35 -0
  783. package/node_modules/@turf/union/dist/js/index.js +51 -0
  784. package/node_modules/@turf/union/package.json +94 -0
  785. package/node_modules/@turf/unkink-polygon/LICENSE +20 -0
  786. package/node_modules/@turf/unkink-polygon/README.md +60 -0
  787. package/node_modules/@turf/unkink-polygon/dist/es/index.js +790 -0
  788. package/node_modules/@turf/unkink-polygon/dist/es/package.json +1 -0
  789. package/node_modules/@turf/unkink-polygon/dist/js/index.js +799 -0
  790. package/node_modules/@turf/unkink-polygon/index.d.ts +13 -0
  791. package/node_modules/@turf/unkink-polygon/node_modules/quickselect/LICENSE +15 -0
  792. package/node_modules/@turf/unkink-polygon/node_modules/quickselect/README.md +28 -0
  793. package/node_modules/@turf/unkink-polygon/node_modules/quickselect/index.js +54 -0
  794. package/node_modules/@turf/unkink-polygon/node_modules/quickselect/package.json +69 -0
  795. package/node_modules/@turf/unkink-polygon/node_modules/quickselect/quickselect.js +63 -0
  796. package/node_modules/@turf/unkink-polygon/node_modules/rbush/LICENSE +21 -0
  797. package/node_modules/@turf/unkink-polygon/node_modules/rbush/README.md +291 -0
  798. package/node_modules/@turf/unkink-polygon/node_modules/rbush/index.js +562 -0
  799. package/node_modules/@turf/unkink-polygon/node_modules/rbush/package.json +85 -0
  800. package/node_modules/@turf/unkink-polygon/node_modules/rbush/rbush.js +626 -0
  801. package/node_modules/@turf/unkink-polygon/node_modules/rbush/rbush.min.js +1 -0
  802. package/node_modules/@turf/unkink-polygon/package.json +94 -0
  803. package/node_modules/@turf/voronoi/LICENSE +20 -0
  804. package/node_modules/@turf/voronoi/README.md +68 -0
  805. package/node_modules/@turf/voronoi/dist/es/index.js +66 -0
  806. package/node_modules/@turf/voronoi/dist/es/package.json +1 -0
  807. package/node_modules/@turf/voronoi/dist/js/index.js +69 -0
  808. package/node_modules/@turf/voronoi/index.d.ts +9 -0
  809. package/node_modules/@turf/voronoi/package.json +109 -0
  810. package/node_modules/@types/geojson/LICENSE +21 -0
  811. package/node_modules/@types/geojson/README.md +16 -0
  812. package/node_modules/@types/geojson/index.d.ts +175 -0
  813. package/node_modules/@types/geojson/package.json +69 -0
  814. package/node_modules/axios/CHANGELOG.md +15 -0
  815. package/node_modules/axios/README.md +1 -0
  816. package/node_modules/axios/dist/axios.js +49 -33
  817. package/node_modules/axios/dist/axios.map +1 -1
  818. package/node_modules/axios/dist/axios.min.js +1 -3
  819. package/node_modules/axios/dist/axios.min.map +1 -1
  820. package/node_modules/axios/lib/adapters/http.js +19 -3
  821. package/node_modules/axios/lib/adapters/xhr.js +2 -2
  822. package/node_modules/axios/lib/core/Axios.js +0 -7
  823. package/node_modules/axios/lib/core/transformData.js +1 -1
  824. package/node_modules/axios/lib/{defaults.js → defaults/index.js} +7 -10
  825. package/node_modules/axios/lib/defaults/transitional.js +7 -0
  826. package/node_modules/axios/lib/env/data.js +1 -1
  827. package/node_modules/axios/package.json +69 -41
  828. package/node_modules/call-bind/.eslintignore +1 -0
  829. package/node_modules/call-bind/.eslintrc +17 -0
  830. package/node_modules/call-bind/.github/FUNDING.yml +12 -0
  831. package/node_modules/call-bind/.nycrc +13 -0
  832. package/node_modules/call-bind/CHANGELOG.md +42 -0
  833. package/node_modules/call-bind/LICENSE +21 -0
  834. package/node_modules/call-bind/README.md +2 -0
  835. package/node_modules/call-bind/callBound.js +15 -0
  836. package/node_modules/call-bind/index.js +47 -0
  837. package/node_modules/call-bind/package.json +111 -0
  838. package/node_modules/call-bind/test/callBound.js +55 -0
  839. package/node_modules/call-bind/test/index.js +66 -0
  840. package/node_modules/commander/CHANGELOG.md +419 -0
  841. package/node_modules/commander/LICENSE +22 -0
  842. package/node_modules/commander/Readme.md +428 -0
  843. package/node_modules/commander/index.js +1224 -0
  844. package/node_modules/commander/package.json +71 -0
  845. package/node_modules/commander/typings/index.d.ts +310 -0
  846. package/node_modules/concaveman/.travis.yml +4 -0
  847. package/node_modules/concaveman/LICENSE +15 -0
  848. package/node_modules/concaveman/README.md +52 -0
  849. package/node_modules/concaveman/index.js +383 -0
  850. package/node_modules/concaveman/package.json +69 -0
  851. package/node_modules/d3-array/.eslintrc.json +15 -0
  852. package/node_modules/d3-array/LICENSE +27 -0
  853. package/node_modules/d3-array/README.md +382 -0
  854. package/node_modules/d3-array/dist/d3-array.js +590 -0
  855. package/node_modules/d3-array/dist/d3-array.min.js +2 -0
  856. package/node_modules/d3-array/package.json +70 -0
  857. package/node_modules/d3-array/rollup.config.js +36 -0
  858. package/node_modules/d3-array/src/array.js +4 -0
  859. package/node_modules/d3-array/src/ascending.js +3 -0
  860. package/node_modules/d3-array/src/bisect.js +7 -0
  861. package/node_modules/d3-array/src/bisector.js +33 -0
  862. package/node_modules/d3-array/src/constant.js +5 -0
  863. package/node_modules/d3-array/src/cross.js +21 -0
  864. package/node_modules/d3-array/src/descending.js +3 -0
  865. package/node_modules/d3-array/src/deviation.js +6 -0
  866. package/node_modules/d3-array/src/extent.js +37 -0
  867. package/node_modules/d3-array/src/histogram.js +75 -0
  868. package/node_modules/d3-array/src/identity.js +3 -0
  869. package/node_modules/d3-array/src/index.js +27 -0
  870. package/node_modules/d3-array/src/max.js +34 -0
  871. package/node_modules/d3-array/src/mean.js +25 -0
  872. package/node_modules/d3-array/src/median.js +28 -0
  873. package/node_modules/d3-array/src/merge.js +21 -0
  874. package/node_modules/d3-array/src/min.js +34 -0
  875. package/node_modules/d3-array/src/number.js +3 -0
  876. package/node_modules/d3-array/src/pairs.js +10 -0
  877. package/node_modules/d3-array/src/permute.js +5 -0
  878. package/node_modules/d3-array/src/quantile.js +14 -0
  879. package/node_modules/d3-array/src/range.js +13 -0
  880. package/node_modules/d3-array/src/scan.js +20 -0
  881. package/node_modules/d3-array/src/shuffle.js +14 -0
  882. package/node_modules/d3-array/src/sum.js +20 -0
  883. package/node_modules/d3-array/src/threshold/freedmanDiaconis.js +9 -0
  884. package/node_modules/d3-array/src/threshold/scott.js +5 -0
  885. package/node_modules/d3-array/src/threshold/sturges.js +3 -0
  886. package/node_modules/d3-array/src/ticks.js +51 -0
  887. package/node_modules/d3-array/src/transpose.js +15 -0
  888. package/node_modules/d3-array/src/variance.js +33 -0
  889. package/node_modules/d3-array/src/zip.js +5 -0
  890. package/node_modules/d3-array/yarn.lock +939 -0
  891. package/node_modules/d3-geo/.eslintrc +13 -0
  892. package/node_modules/d3-geo/LICENSE +48 -0
  893. package/node_modules/d3-geo/README.md +619 -0
  894. package/node_modules/d3-geo/build/d3-geo.js +2987 -0
  895. package/node_modules/d3-geo/build/d3-geo.min.js +2 -0
  896. package/node_modules/d3-geo/img/albers.png +0 -0
  897. package/node_modules/d3-geo/img/albersUsa-parameters.png +0 -0
  898. package/node_modules/d3-geo/img/albersUsa.png +0 -0
  899. package/node_modules/d3-geo/img/azimuthalEqualArea.png +0 -0
  900. package/node_modules/d3-geo/img/azimuthalEquidistant.png +0 -0
  901. package/node_modules/d3-geo/img/conicConformal.png +0 -0
  902. package/node_modules/d3-geo/img/conicEqualArea.png +0 -0
  903. package/node_modules/d3-geo/img/conicEquidistant.png +0 -0
  904. package/node_modules/d3-geo/img/equirectangular.png +0 -0
  905. package/node_modules/d3-geo/img/gnomonic.png +0 -0
  906. package/node_modules/d3-geo/img/graticule.png +0 -0
  907. package/node_modules/d3-geo/img/mercator.png +0 -0
  908. package/node_modules/d3-geo/img/naturalEarth1.png +0 -0
  909. package/node_modules/d3-geo/img/orthographic.png +0 -0
  910. package/node_modules/d3-geo/img/stereographic.png +0 -0
  911. package/node_modules/d3-geo/img/transverseMercator.png +0 -0
  912. package/node_modules/d3-geo/index.js +30 -0
  913. package/node_modules/d3-geo/package.json +72 -0
  914. package/node_modules/d3-geo/rollup.config.js +15 -0
  915. package/node_modules/d3-geo/src/adder.js +40 -0
  916. package/node_modules/d3-geo/src/area.js +74 -0
  917. package/node_modules/d3-geo/src/bounds.js +176 -0
  918. package/node_modules/d3-geo/src/cartesian.js +33 -0
  919. package/node_modules/d3-geo/src/centroid.js +140 -0
  920. package/node_modules/d3-geo/src/circle.js +72 -0
  921. package/node_modules/d3-geo/src/clip/antimeridian.js +92 -0
  922. package/node_modules/d3-geo/src/clip/buffer.js +24 -0
  923. package/node_modules/d3-geo/src/clip/circle.js +181 -0
  924. package/node_modules/d3-geo/src/clip/extent.js +187 -0
  925. package/node_modules/d3-geo/src/clip/index.js +135 -0
  926. package/node_modules/d3-geo/src/clip/line.js +59 -0
  927. package/node_modules/d3-geo/src/clip/polygon.js +101 -0
  928. package/node_modules/d3-geo/src/compose.js +12 -0
  929. package/node_modules/d3-geo/src/constant.js +5 -0
  930. package/node_modules/d3-geo/src/contains.js +84 -0
  931. package/node_modules/d3-geo/src/distance.js +10 -0
  932. package/node_modules/d3-geo/src/graticule.js +105 -0
  933. package/node_modules/d3-geo/src/identity.js +3 -0
  934. package/node_modules/d3-geo/src/interpolate.js +36 -0
  935. package/node_modules/d3-geo/src/length.js +53 -0
  936. package/node_modules/d3-geo/src/math.js +35 -0
  937. package/node_modules/d3-geo/src/noop.js +1 -0
  938. package/node_modules/d3-geo/src/path/area.js +50 -0
  939. package/node_modules/d3-geo/src/path/bounds.js +28 -0
  940. package/node_modules/d3-geo/src/path/centroid.js +100 -0
  941. package/node_modules/d3-geo/src/path/context.js +45 -0
  942. package/node_modules/d3-geo/src/path/index.js +61 -0
  943. package/node_modules/d3-geo/src/path/measure.js +45 -0
  944. package/node_modules/d3-geo/src/path/string.js +59 -0
  945. package/node_modules/d3-geo/src/pointEqual.js +5 -0
  946. package/node_modules/d3-geo/src/polygonContains.js +68 -0
  947. package/node_modules/d3-geo/src/projection/albers.js +10 -0
  948. package/node_modules/d3-geo/src/projection/albersUsa.js +103 -0
  949. package/node_modules/d3-geo/src/projection/azimuthal.js +26 -0
  950. package/node_modules/d3-geo/src/projection/azimuthalEqualArea.js +17 -0
  951. package/node_modules/d3-geo/src/projection/azimuthalEquidistant.js +17 -0
  952. package/node_modules/d3-geo/src/projection/conic.js +15 -0
  953. package/node_modules/d3-geo/src/projection/conicConformal.js +35 -0
  954. package/node_modules/d3-geo/src/projection/conicEqualArea.js +30 -0
  955. package/node_modules/d3-geo/src/projection/conicEquidistant.js +29 -0
  956. package/node_modules/d3-geo/src/projection/cylindricalEqualArea.js +15 -0
  957. package/node_modules/d3-geo/src/projection/equirectangular.js +12 -0
  958. package/node_modules/d3-geo/src/projection/fit.js +31 -0
  959. package/node_modules/d3-geo/src/projection/gnomonic.js +16 -0
  960. package/node_modules/d3-geo/src/projection/identity.js +52 -0
  961. package/node_modules/d3-geo/src/projection/index.js +106 -0
  962. package/node_modules/d3-geo/src/projection/mercator.js +52 -0
  963. package/node_modules/d3-geo/src/projection/naturalEarth1.js +28 -0
  964. package/node_modules/d3-geo/src/projection/orthographic.js +15 -0
  965. package/node_modules/d3-geo/src/projection/resample.js +102 -0
  966. package/node_modules/d3-geo/src/projection/stereographic.js +18 -0
  967. package/node_modules/d3-geo/src/projection/transverseMercator.js +27 -0
  968. package/node_modules/d3-geo/src/rotation.js +76 -0
  969. package/node_modules/d3-geo/src/stream.js +69 -0
  970. package/node_modules/d3-geo/src/transform.js +26 -0
  971. package/node_modules/d3-voronoi/.eslintrc +9 -0
  972. package/node_modules/d3-voronoi/.npmignore +3 -0
  973. package/node_modules/d3-voronoi/LICENSE +50 -0
  974. package/node_modules/d3-voronoi/README.md +160 -0
  975. package/node_modules/d3-voronoi/build/d3-voronoi.js +999 -0
  976. package/node_modules/d3-voronoi/build/d3-voronoi.min.js +2 -0
  977. package/node_modules/d3-voronoi/graph.png +0 -0
  978. package/node_modules/d3-voronoi/index.js +1 -0
  979. package/node_modules/d3-voronoi/package.json +65 -0
  980. package/node_modules/d3-voronoi/src/Beach.js +193 -0
  981. package/node_modules/d3-voronoi/src/Cell.js +126 -0
  982. package/node_modules/d3-voronoi/src/Circle.js +78 -0
  983. package/node_modules/d3-voronoi/src/Diagram.js +142 -0
  984. package/node_modules/d3-voronoi/src/Edge.js +168 -0
  985. package/node_modules/d3-voronoi/src/RedBlackTree.js +237 -0
  986. package/node_modules/d3-voronoi/src/constant.js +5 -0
  987. package/node_modules/d3-voronoi/src/point.js +7 -0
  988. package/node_modules/d3-voronoi/src/voronoi.js +48 -0
  989. package/node_modules/deep-equal/.eslintrc +22 -0
  990. package/node_modules/deep-equal/.travis.yml +12 -0
  991. package/node_modules/deep-equal/CHANGELOG.md +120 -0
  992. package/node_modules/deep-equal/LICENSE +21 -0
  993. package/node_modules/deep-equal/example/cmp.js +11 -0
  994. package/node_modules/deep-equal/index.js +112 -0
  995. package/node_modules/deep-equal/lib/is_arguments.js +1 -0
  996. package/node_modules/deep-equal/lib/keys.js +1 -0
  997. package/node_modules/deep-equal/package.json +117 -0
  998. package/node_modules/deep-equal/readme.markdown +57 -0
  999. package/node_modules/deep-equal/test/_tape.js +21 -0
  1000. package/node_modules/deep-equal/test/cmp.js +344 -0
  1001. package/node_modules/define-properties/.editorconfig +13 -0
  1002. package/node_modules/define-properties/.eslintrc +12 -0
  1003. package/node_modules/define-properties/.jscs.json +175 -0
  1004. package/node_modules/define-properties/.travis.yml +233 -0
  1005. package/node_modules/define-properties/CHANGELOG.md +44 -0
  1006. package/node_modules/define-properties/LICENSE +21 -0
  1007. package/node_modules/define-properties/README.md +86 -0
  1008. package/node_modules/define-properties/index.js +58 -0
  1009. package/node_modules/define-properties/package.json +97 -0
  1010. package/node_modules/define-properties/test/index.js +125 -0
  1011. package/node_modules/density-clustering/.jscsrc +64 -0
  1012. package/node_modules/density-clustering/.jshintrc +5 -0
  1013. package/node_modules/density-clustering/.remote-sync.json +13 -0
  1014. package/node_modules/density-clustering/CHANGELOG.md +11 -0
  1015. package/node_modules/density-clustering/LICENSE +22 -0
  1016. package/node_modules/density-clustering/README.md +171 -0
  1017. package/node_modules/density-clustering/bower.json +40 -0
  1018. package/node_modules/density-clustering/example/browser.html +20 -0
  1019. package/node_modules/density-clustering/example/dbscan.js +11 -0
  1020. package/node_modules/density-clustering/example/kmeans.js +11 -0
  1021. package/node_modules/density-clustering/example/optics.js +12 -0
  1022. package/node_modules/density-clustering/example/priorityQueue.js +12 -0
  1023. package/node_modules/density-clustering/gulpfile.js +30 -0
  1024. package/node_modules/density-clustering/lib/DBSCAN.js +236 -0
  1025. package/node_modules/density-clustering/lib/KMEANS.js +213 -0
  1026. package/node_modules/density-clustering/lib/OPTICS.js +269 -0
  1027. package/node_modules/density-clustering/lib/PriorityQueue.js +180 -0
  1028. package/node_modules/density-clustering/lib/Utils.js +37 -0
  1029. package/node_modules/density-clustering/lib/index.js +9 -0
  1030. package/node_modules/density-clustering/package.json +70 -0
  1031. package/node_modules/density-clustering/test/DBSCAN.test.js +73 -0
  1032. package/node_modules/density-clustering/test/KMEANS.test.js +70 -0
  1033. package/node_modules/density-clustering/test/OPTICS.test.js +98 -0
  1034. package/node_modules/density-clustering/test/PriorityQueue.test.js +27 -0
  1035. package/node_modules/earcut/LICENSE +15 -0
  1036. package/node_modules/earcut/README.md +246 -0
  1037. package/node_modules/earcut/dist/earcut.dev.js +690 -0
  1038. package/node_modules/earcut/dist/earcut.min.js +1 -0
  1039. package/node_modules/earcut/package.json +77 -0
  1040. package/node_modules/earcut/src/earcut.js +684 -0
  1041. package/node_modules/follow-redirects/index.js +82 -77
  1042. package/node_modules/follow-redirects/package.json +13 -13
  1043. package/node_modules/function-bind/.editorconfig +20 -0
  1044. package/node_modules/function-bind/.eslintrc +15 -0
  1045. package/node_modules/function-bind/.jscs.json +176 -0
  1046. package/node_modules/function-bind/.npmignore +22 -0
  1047. package/node_modules/function-bind/.travis.yml +168 -0
  1048. package/node_modules/function-bind/LICENSE +20 -0
  1049. package/node_modules/function-bind/README.md +48 -0
  1050. package/node_modules/function-bind/implementation.js +52 -0
  1051. package/node_modules/function-bind/index.js +5 -0
  1052. package/node_modules/function-bind/package.json +96 -0
  1053. package/node_modules/function-bind/test/.eslintrc +9 -0
  1054. package/node_modules/function-bind/test/index.js +252 -0
  1055. package/node_modules/geojson-equality/.npmignore +2 -0
  1056. package/node_modules/geojson-equality/LICENSE.md +22 -0
  1057. package/node_modules/geojson-equality/README.md +78 -0
  1058. package/node_modules/geojson-equality/dist/geojson-equality.js +295 -0
  1059. package/node_modules/geojson-equality/dist/geojson-equality.js.map +21 -0
  1060. package/node_modules/geojson-equality/dist/geojson-equality.min.js +1 -0
  1061. package/node_modules/geojson-equality/index.js +161 -0
  1062. package/node_modules/geojson-equality/package.json +74 -0
  1063. package/node_modules/geojson-equality/test/mocha.opts +1 -0
  1064. package/node_modules/geojson-equality/test/test.js +364 -0
  1065. package/node_modules/geojson-rbush/LICENSE +20 -0
  1066. package/node_modules/geojson-rbush/README.md +213 -0
  1067. package/node_modules/geojson-rbush/index.d.ts +19 -0
  1068. package/node_modules/geojson-rbush/index.js +208 -0
  1069. package/node_modules/geojson-rbush/package.json +89 -0
  1070. package/node_modules/get-intrinsic/.eslintignore +1 -0
  1071. package/node_modules/get-intrinsic/.eslintrc +43 -0
  1072. package/node_modules/get-intrinsic/.github/FUNDING.yml +12 -0
  1073. package/node_modules/get-intrinsic/.nycrc +13 -0
  1074. package/node_modules/get-intrinsic/CHANGELOG.md +64 -0
  1075. package/node_modules/get-intrinsic/LICENSE +21 -0
  1076. package/node_modules/get-intrinsic/README.md +65 -0
  1077. package/node_modules/get-intrinsic/index.js +330 -0
  1078. package/node_modules/get-intrinsic/package.json +106 -0
  1079. package/node_modules/get-intrinsic/test/GetIntrinsic.js +260 -0
  1080. package/node_modules/has/LICENSE-MIT +22 -0
  1081. package/node_modules/has/README.md +18 -0
  1082. package/node_modules/has/package.json +73 -0
  1083. package/node_modules/has/src/index.js +5 -0
  1084. package/node_modules/has/test/index.js +10 -0
  1085. package/node_modules/has-symbols/.eslintrc +11 -0
  1086. package/node_modules/has-symbols/.github/FUNDING.yml +12 -0
  1087. package/node_modules/has-symbols/.nycrc +9 -0
  1088. package/node_modules/has-symbols/CHANGELOG.md +75 -0
  1089. package/node_modules/has-symbols/LICENSE +21 -0
  1090. package/node_modules/has-symbols/README.md +46 -0
  1091. package/node_modules/has-symbols/index.js +13 -0
  1092. package/node_modules/has-symbols/package.json +127 -0
  1093. package/node_modules/has-symbols/shams.js +42 -0
  1094. package/node_modules/has-symbols/test/index.js +22 -0
  1095. package/node_modules/has-symbols/test/shams/core-js.js +28 -0
  1096. package/node_modules/has-symbols/test/shams/get-own-property-symbols.js +28 -0
  1097. package/node_modules/has-symbols/test/tests.js +56 -0
  1098. package/node_modules/has-tostringtag/.eslintrc +11 -0
  1099. package/node_modules/has-tostringtag/.github/FUNDING.yml +12 -0
  1100. package/node_modules/has-tostringtag/CHANGELOG.md +20 -0
  1101. package/node_modules/has-tostringtag/LICENSE +21 -0
  1102. package/node_modules/has-tostringtag/README.md +46 -0
  1103. package/node_modules/has-tostringtag/index.js +7 -0
  1104. package/node_modules/has-tostringtag/package.json +111 -0
  1105. package/node_modules/has-tostringtag/shams.js +7 -0
  1106. package/node_modules/has-tostringtag/test/index.js +21 -0
  1107. package/node_modules/has-tostringtag/test/shams/core-js.js +28 -0
  1108. package/node_modules/has-tostringtag/test/shams/get-own-property-symbols.js +28 -0
  1109. package/node_modules/has-tostringtag/test/tests.js +14 -0
  1110. package/node_modules/is-arguments/.editorconfig +20 -0
  1111. package/node_modules/is-arguments/.eslintignore +1 -0
  1112. package/node_modules/is-arguments/.eslintrc +10 -0
  1113. package/node_modules/is-arguments/.github/FUNDING.yml +12 -0
  1114. package/node_modules/is-arguments/.nycrc +9 -0
  1115. package/node_modules/is-arguments/CHANGELOG.md +179 -0
  1116. package/node_modules/is-arguments/LICENSE +20 -0
  1117. package/node_modules/is-arguments/README.md +47 -0
  1118. package/node_modules/is-arguments/index.js +33 -0
  1119. package/node_modules/is-arguments/package.json +116 -0
  1120. package/node_modules/is-arguments/test/index.js +44 -0
  1121. package/node_modules/is-date-object/.editorconfig +20 -0
  1122. package/node_modules/is-date-object/.eslintignore +1 -0
  1123. package/node_modules/is-date-object/.eslintrc +9 -0
  1124. package/node_modules/is-date-object/.github/FUNDING.yml +12 -0
  1125. package/node_modules/is-date-object/.nycrc +10 -0
  1126. package/node_modules/is-date-object/CHANGELOG.md +114 -0
  1127. package/node_modules/is-date-object/LICENSE +22 -0
  1128. package/node_modules/is-date-object/README.md +52 -0
  1129. package/node_modules/is-date-object/index.js +22 -0
  1130. package/node_modules/is-date-object/package.json +110 -0
  1131. package/node_modules/is-date-object/test/index.js +36 -0
  1132. package/node_modules/is-regex/.editorconfig +20 -0
  1133. package/node_modules/is-regex/.eslintignore +1 -0
  1134. package/node_modules/is-regex/.eslintrc +19 -0
  1135. package/node_modules/is-regex/.nycrc +10 -0
  1136. package/node_modules/is-regex/CHANGELOG.md +197 -0
  1137. package/node_modules/is-regex/LICENSE +20 -0
  1138. package/node_modules/is-regex/README.md +52 -0
  1139. package/node_modules/is-regex/index.js +58 -0
  1140. package/node_modules/is-regex/package.json +114 -0
  1141. package/node_modules/is-regex/test/index.js +104 -0
  1142. package/node_modules/object-assign/index.js +90 -0
  1143. package/node_modules/object-assign/license +21 -0
  1144. package/node_modules/object-assign/package.json +76 -0
  1145. package/node_modules/object-assign/readme.md +61 -0
  1146. package/node_modules/object-is/.eslintignore +1 -0
  1147. package/node_modules/object-is/.eslintrc +5 -0
  1148. package/node_modules/object-is/.nycrc +13 -0
  1149. package/node_modules/object-is/CHANGELOG.md +150 -0
  1150. package/node_modules/object-is/LICENSE +20 -0
  1151. package/node_modules/object-is/README.md +60 -0
  1152. package/node_modules/object-is/auto.js +3 -0
  1153. package/node_modules/object-is/implementation.js +19 -0
  1154. package/node_modules/object-is/index.js +18 -0
  1155. package/node_modules/object-is/package.json +114 -0
  1156. package/node_modules/object-is/polyfill.js +7 -0
  1157. package/node_modules/object-is/shim.js +14 -0
  1158. package/node_modules/object-is/test/implementation.js +12 -0
  1159. package/node_modules/object-is/test/index.js +12 -0
  1160. package/node_modules/object-is/test/shimmed.js +28 -0
  1161. package/node_modules/object-is/test/tests.js +57 -0
  1162. package/node_modules/object-keys/.editorconfig +13 -0
  1163. package/node_modules/object-keys/.eslintrc +17 -0
  1164. package/node_modules/object-keys/.travis.yml +277 -0
  1165. package/node_modules/object-keys/CHANGELOG.md +232 -0
  1166. package/node_modules/object-keys/LICENSE +21 -0
  1167. package/node_modules/object-keys/README.md +76 -0
  1168. package/node_modules/object-keys/implementation.js +122 -0
  1169. package/node_modules/object-keys/index.js +32 -0
  1170. package/node_modules/object-keys/isArguments.js +17 -0
  1171. package/node_modules/object-keys/package.json +118 -0
  1172. package/node_modules/object-keys/test/index.js +5 -0
  1173. package/node_modules/point-in-polygon/LICENSE +21 -0
  1174. package/node_modules/point-in-polygon/example/inside.js +6 -0
  1175. package/node_modules/point-in-polygon/flat.js +15 -0
  1176. package/node_modules/point-in-polygon/index.js +12 -0
  1177. package/node_modules/point-in-polygon/nested.js +18 -0
  1178. package/node_modules/point-in-polygon/package.json +61 -0
  1179. package/node_modules/point-in-polygon/readme.markdown +51 -0
  1180. package/node_modules/point-in-polygon/test/box-offset.js +24 -0
  1181. package/node_modules/point-in-polygon/test/box.js +34 -0
  1182. package/node_modules/point-in-polygon/test/flat-offset.js +24 -0
  1183. package/node_modules/point-in-polygon/test/flat.js +24 -0
  1184. package/node_modules/polygon-clipping/CHANGELOG.md +129 -0
  1185. package/node_modules/polygon-clipping/LICENSE.md +11 -0
  1186. package/node_modules/polygon-clipping/README.md +99 -0
  1187. package/node_modules/polygon-clipping/dist/polygon-clipping.cjs.js +1826 -0
  1188. package/node_modules/polygon-clipping/dist/polygon-clipping.d.ts +11 -0
  1189. package/node_modules/polygon-clipping/dist/polygon-clipping.esm.js +1820 -0
  1190. package/node_modules/polygon-clipping/dist/polygon-clipping.umd.js +2557 -0
  1191. package/node_modules/polygon-clipping/dist/polygon-clipping.umd.min.js +10 -0
  1192. package/node_modules/polygon-clipping/dist/polygon-clipping.umd.min.js.map +1 -0
  1193. package/node_modules/polygon-clipping/package.json +113 -0
  1194. package/node_modules/quickselect/LICENSE +15 -0
  1195. package/node_modules/quickselect/README.md +28 -0
  1196. package/node_modules/quickselect/index.js +54 -0
  1197. package/node_modules/quickselect/package.json +70 -0
  1198. package/node_modules/quickselect/quickselect.js +63 -0
  1199. package/node_modules/rbush/LICENSE +21 -0
  1200. package/node_modules/rbush/README.md +218 -0
  1201. package/node_modules/rbush/index.js +512 -0
  1202. package/node_modules/rbush/package.json +87 -0
  1203. package/node_modules/rbush/rbush.js +574 -0
  1204. package/node_modules/rbush/rbush.min.js +1 -0
  1205. package/node_modules/regexp.prototype.flags/.editorconfig +13 -0
  1206. package/node_modules/regexp.prototype.flags/.eslintrc +18 -0
  1207. package/node_modules/regexp.prototype.flags/.nycrc +9 -0
  1208. package/node_modules/regexp.prototype.flags/CHANGELOG.md +184 -0
  1209. package/node_modules/regexp.prototype.flags/LICENSE +22 -0
  1210. package/node_modules/regexp.prototype.flags/README.md +54 -0
  1211. package/node_modules/regexp.prototype.flags/auto.js +3 -0
  1212. package/node_modules/regexp.prototype.flags/implementation.js +33 -0
  1213. package/node_modules/regexp.prototype.flags/index.js +18 -0
  1214. package/node_modules/regexp.prototype.flags/package.json +124 -0
  1215. package/node_modules/regexp.prototype.flags/polyfill.js +36 -0
  1216. package/node_modules/regexp.prototype.flags/shim.js +26 -0
  1217. package/node_modules/regexp.prototype.flags/test/implementation.js +20 -0
  1218. package/node_modules/regexp.prototype.flags/test/index.js +17 -0
  1219. package/node_modules/regexp.prototype.flags/test/shimmed.js +47 -0
  1220. package/node_modules/regexp.prototype.flags/test/tests.js +141 -0
  1221. package/node_modules/robust-predicates/LICENSE +24 -0
  1222. package/node_modules/robust-predicates/README.md +82 -0
  1223. package/node_modules/robust-predicates/esm/incircle.js +765 -0
  1224. package/node_modules/robust-predicates/esm/insphere.js +775 -0
  1225. package/node_modules/robust-predicates/esm/orient2d.js +186 -0
  1226. package/node_modules/robust-predicates/esm/orient3d.js +462 -0
  1227. package/node_modules/robust-predicates/esm/util.js +138 -0
  1228. package/node_modules/robust-predicates/index.js +5 -0
  1229. package/node_modules/robust-predicates/package.json +95 -0
  1230. package/node_modules/robust-predicates/umd/incircle.js +910 -0
  1231. package/node_modules/robust-predicates/umd/incircle.min.js +1 -0
  1232. package/node_modules/robust-predicates/umd/insphere.js +925 -0
  1233. package/node_modules/robust-predicates/umd/insphere.min.js +1 -0
  1234. package/node_modules/robust-predicates/umd/orient2d.js +284 -0
  1235. package/node_modules/robust-predicates/umd/orient2d.min.js +1 -0
  1236. package/node_modules/robust-predicates/umd/orient3d.js +603 -0
  1237. package/node_modules/robust-predicates/umd/orient3d.min.js +1 -0
  1238. package/node_modules/robust-predicates/umd/predicates.js +2341 -0
  1239. package/node_modules/robust-predicates/umd/predicates.min.js +1 -0
  1240. package/node_modules/skmeans/.gitattributes +17 -0
  1241. package/node_modules/skmeans/.npmignore +52 -0
  1242. package/node_modules/skmeans/Gruntfile.js +49 -0
  1243. package/node_modules/skmeans/README.md +62 -0
  1244. package/node_modules/skmeans/browser.js +19 -0
  1245. package/node_modules/skmeans/dist/browser/skmeans.js +339 -0
  1246. package/node_modules/skmeans/dist/browser/skmeans.js.map +1 -0
  1247. package/node_modules/skmeans/dist/browser/skmeans.min.js +3 -0
  1248. package/node_modules/skmeans/dist/index.html +15 -0
  1249. package/node_modules/skmeans/dist/node/Gruntfile.js +49 -0
  1250. package/node_modules/skmeans/dist/node/Gruntfile.js.map +1 -0
  1251. package/node_modules/skmeans/dist/node/browser.js +19 -0
  1252. package/node_modules/skmeans/dist/node/browser.js.map +1 -0
  1253. package/node_modules/skmeans/dist/node/distance.js +39 -0
  1254. package/node_modules/skmeans/dist/node/distance.js.map +1 -0
  1255. package/node_modules/skmeans/dist/node/kinit.js +110 -0
  1256. package/node_modules/skmeans/dist/node/kinit.js.map +1 -0
  1257. package/node_modules/skmeans/dist/node/main.js +161 -0
  1258. package/node_modules/skmeans/dist/node/main.js.map +1 -0
  1259. package/node_modules/skmeans/distance.js +37 -0
  1260. package/node_modules/skmeans/kinit.js +102 -0
  1261. package/node_modules/skmeans/main.js +147 -0
  1262. package/node_modules/skmeans/package.json +68 -0
  1263. package/node_modules/skmeans/test/data/random_pts.js +1 -0
  1264. package/node_modules/skmeans/test/data/well-separated.js +1 -0
  1265. package/node_modules/skmeans/test/multi.js +15 -0
  1266. package/node_modules/skmeans/test/stats.js +65 -0
  1267. package/node_modules/skmeans/test/test.js +42 -0
  1268. package/node_modules/skmeans/test/test_rand.js +23 -0
  1269. package/node_modules/skmeans/test/test_ws.js +23 -0
  1270. package/node_modules/skmeans/test/uni.js +15 -0
  1271. package/node_modules/splaytree/Readme.md +221 -0
  1272. package/node_modules/splaytree/dist/splay.esm.js +673 -0
  1273. package/node_modules/splaytree/dist/splay.esm.js.map +1 -0
  1274. package/node_modules/splaytree/dist/splay.js +681 -0
  1275. package/node_modules/splaytree/dist/splay.js.map +1 -0
  1276. package/node_modules/splaytree/package.json +123 -0
  1277. package/node_modules/splaytree/src/index.ts +667 -0
  1278. package/node_modules/splaytree/src/node.ts +15 -0
  1279. package/node_modules/splaytree/src/types.ts +2 -0
  1280. package/node_modules/splaytree/typings/index.d.ts +82 -0
  1281. package/node_modules/splaytree/typings/node.d.ts +8 -0
  1282. package/node_modules/splaytree/typings/types.d.ts +2 -0
  1283. package/node_modules/tinyqueue/LICENSE +15 -0
  1284. package/node_modules/tinyqueue/README.md +59 -0
  1285. package/node_modules/tinyqueue/index.d.ts +11 -0
  1286. package/node_modules/tinyqueue/index.js +79 -0
  1287. package/node_modules/tinyqueue/package.json +78 -0
  1288. package/node_modules/tinyqueue/tinyqueue.js +93 -0
  1289. package/node_modules/tinyqueue/tinyqueue.min.js +1 -0
  1290. package/node_modules/topojson-client/LICENSE +13 -0
  1291. package/node_modules/topojson-client/README.md +242 -0
  1292. package/node_modules/topojson-client/bin/topo2geo +106 -0
  1293. package/node_modules/topojson-client/bin/topomerge +216 -0
  1294. package/node_modules/topojson-client/bin/topoquantize +74 -0
  1295. package/node_modules/topojson-client/dist/topojson-client.js +508 -0
  1296. package/node_modules/topojson-client/dist/topojson-client.min.js +2 -0
  1297. package/node_modules/topojson-client/package.json +77 -0
  1298. package/node_modules/topojson-client/src/bbox.js +39 -0
  1299. package/node_modules/topojson-client/src/bisect.js +9 -0
  1300. package/node_modules/topojson-client/src/feature.js +70 -0
  1301. package/node_modules/topojson-client/src/identity.js +3 -0
  1302. package/node_modules/topojson-client/src/index.js +8 -0
  1303. package/node_modules/topojson-client/src/merge.js +103 -0
  1304. package/node_modules/topojson-client/src/mesh.js +53 -0
  1305. package/node_modules/topojson-client/src/neighbors.js +45 -0
  1306. package/node_modules/topojson-client/src/quantize.js +54 -0
  1307. package/node_modules/topojson-client/src/reverse.js +4 -0
  1308. package/node_modules/topojson-client/src/stitch.js +73 -0
  1309. package/node_modules/topojson-client/src/transform.js +19 -0
  1310. package/node_modules/topojson-client/src/untransform.js +23 -0
  1311. package/node_modules/topojson-server/LICENSE +13 -0
  1312. package/node_modules/topojson-server/README.md +75 -0
  1313. package/node_modules/topojson-server/bin/geo2topo +125 -0
  1314. package/node_modules/topojson-server/dist/topojson-server.js +838 -0
  1315. package/node_modules/topojson-server/dist/topojson-server.min.js +2 -0
  1316. package/node_modules/topojson-server/package.json +75 -0
  1317. package/node_modules/topojson-server/src/bounds.js +46 -0
  1318. package/node_modules/topojson-server/src/cut.js +62 -0
  1319. package/node_modules/topojson-server/src/dedup.js +187 -0
  1320. package/node_modules/topojson-server/src/delta.js +30 -0
  1321. package/node_modules/topojson-server/src/extract.js +67 -0
  1322. package/node_modules/topojson-server/src/geometry.js +39 -0
  1323. package/node_modules/topojson-server/src/hash/hashmap.js +70 -0
  1324. package/node_modules/topojson-server/src/hash/hashset.js +53 -0
  1325. package/node_modules/topojson-server/src/hash/point-equal.js +3 -0
  1326. package/node_modules/topojson-server/src/hash/point-hash.js +13 -0
  1327. package/node_modules/topojson-server/src/index.js +1 -0
  1328. package/node_modules/topojson-server/src/join.js +116 -0
  1329. package/node_modules/topojson-server/src/object.js +1 -0
  1330. package/node_modules/topojson-server/src/prequantize.js +72 -0
  1331. package/node_modules/topojson-server/src/topology.js +80 -0
  1332. package/node_modules/turf-jsts/README.md +19 -0
  1333. package/node_modules/turf-jsts/jsts.js +18750 -0
  1334. package/node_modules/turf-jsts/jsts.min.js +1 -0
  1335. package/node_modules/turf-jsts/jsts.mjs +18742 -0
  1336. package/node_modules/turf-jsts/package.json +100 -0
  1337. package/node_modules/turf-jsts/src/Array.js +36 -0
  1338. package/node_modules/turf-jsts/src/Map.js +150 -0
  1339. package/node_modules/turf-jsts/src/Math.js +6 -0
  1340. package/node_modules/turf-jsts/src/Number.js +18 -0
  1341. package/node_modules/turf-jsts/src/extend.js +5 -0
  1342. package/node_modules/turf-jsts/src/hasInterface.js +3 -0
  1343. package/node_modules/turf-jsts/src/index.js +18 -0
  1344. package/node_modules/turf-jsts/src/inherits.js +4 -0
  1345. package/node_modules/turf-jsts/src/java/io/ByteArrayOutputStream.js +1 -0
  1346. package/node_modules/turf-jsts/src/java/io/IOException.js +1 -0
  1347. package/node_modules/turf-jsts/src/java/io/InputStream.js +1 -0
  1348. package/node_modules/turf-jsts/src/java/io/LineNumberReader.js +1 -0
  1349. package/node_modules/turf-jsts/src/java/io/OutputStream.js +1 -0
  1350. package/node_modules/turf-jsts/src/java/io/PrintStream.js +1 -0
  1351. package/node_modules/turf-jsts/src/java/io/Serializable.js +1 -0
  1352. package/node_modules/turf-jsts/src/java/io/StringReader.js +1 -0
  1353. package/node_modules/turf-jsts/src/java/io/StringWriter.js +1 -0
  1354. package/node_modules/turf-jsts/src/java/io/Writer.js +1 -0
  1355. package/node_modules/turf-jsts/src/java/lang/Character.js +4 -0
  1356. package/node_modules/turf-jsts/src/java/lang/Cloneable.js +1 -0
  1357. package/node_modules/turf-jsts/src/java/lang/Comparable.js +1 -0
  1358. package/node_modules/turf-jsts/src/java/lang/Double.js +7 -0
  1359. package/node_modules/turf-jsts/src/java/lang/Exception.js +1 -0
  1360. package/node_modules/turf-jsts/src/java/lang/IllegalArgumentException.js +8 -0
  1361. package/node_modules/turf-jsts/src/java/lang/Integer.js +14 -0
  1362. package/node_modules/turf-jsts/src/java/lang/RuntimeException.js +8 -0
  1363. package/node_modules/turf-jsts/src/java/lang/StringBuffer.js +16 -0
  1364. package/node_modules/turf-jsts/src/java/lang/System.js +15 -0
  1365. package/node_modules/turf-jsts/src/java/text/DecimalFormat.js +1 -0
  1366. package/node_modules/turf-jsts/src/java/text/DecimalFormatSymbols.js +1 -0
  1367. package/node_modules/turf-jsts/src/java/util/ArrayList.js +181 -0
  1368. package/node_modules/turf-jsts/src/java/util/Arrays.js +60 -0
  1369. package/node_modules/turf-jsts/src/java/util/Collection.js +58 -0
  1370. package/node_modules/turf-jsts/src/java/util/Collections.js +34 -0
  1371. package/node_modules/turf-jsts/src/java/util/Comparator.js +1 -0
  1372. package/node_modules/turf-jsts/src/java/util/EmptyStackException.js +15 -0
  1373. package/node_modules/turf-jsts/src/java/util/HashMap.js +61 -0
  1374. package/node_modules/turf-jsts/src/java/util/HashSet.js +151 -0
  1375. package/node_modules/turf-jsts/src/java/util/IndexOutOfBoundsException.js +15 -0
  1376. package/node_modules/turf-jsts/src/java/util/Iterator.js +24 -0
  1377. package/node_modules/turf-jsts/src/java/util/LinkedList.js +14 -0
  1378. package/node_modules/turf-jsts/src/java/util/List.js +32 -0
  1379. package/node_modules/turf-jsts/src/java/util/Map.js +53 -0
  1380. package/node_modules/turf-jsts/src/java/util/NoSuchElementException.js +15 -0
  1381. package/node_modules/turf-jsts/src/java/util/OperationNotSupported.js +15 -0
  1382. package/node_modules/turf-jsts/src/java/util/Set.js +21 -0
  1383. package/node_modules/turf-jsts/src/java/util/SortedMap.js +10 -0
  1384. package/node_modules/turf-jsts/src/java/util/SortedSet.js +11 -0
  1385. package/node_modules/turf-jsts/src/java/util/Stack.js +132 -0
  1386. package/node_modules/turf-jsts/src/java/util/TreeMap.js +246 -0
  1387. package/node_modules/turf-jsts/src/java/util/TreeSet.js +157 -0
  1388. package/node_modules/turf-jsts/src/org/locationtech/jts/JTSVersion.js +32 -0
  1389. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/Angle.js +105 -0
  1390. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/BoundaryNodeRule.js +66 -0
  1391. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/CGAlgorithms.js +194 -0
  1392. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/CGAlgorithms3D.js +65 -0
  1393. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/CGAlgorithmsDD.js +72 -0
  1394. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/Centroid.js +127 -0
  1395. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/ConvexHull.js +252 -0
  1396. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/HCoordinate.js +105 -0
  1397. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/InteriorPointArea.js +137 -0
  1398. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/InteriorPointLine.js +68 -0
  1399. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/InteriorPointPoint.js +45 -0
  1400. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/LineIntersector.js +156 -0
  1401. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/MCPointInRing.js +102 -0
  1402. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/MinimumBoundingCircle.js +170 -0
  1403. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/MinimumDiameter.js +165 -0
  1404. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/NonRobustCGAlgorithms.js +123 -0
  1405. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/NonRobustLineIntersector.js +147 -0
  1406. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/NotRepresentableException.js +13 -0
  1407. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/PointInRing.js +9 -0
  1408. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/PointLocator.js +120 -0
  1409. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/RayCrossingCounter.js +95 -0
  1410. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/RectangleLineIntersector.js +46 -0
  1411. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/RobustDeterminant.js +202 -0
  1412. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/RobustLineIntersector.js +231 -0
  1413. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/SimplePointInRing.js +19 -0
  1414. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/distance/DiscreteHausdorffDistance.js +139 -0
  1415. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/distance/DistanceToPoint.js +61 -0
  1416. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/distance/PointPairDistance.js +79 -0
  1417. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/locate/IndexedPointInAreaLocator.js +95 -0
  1418. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/locate/PointOnGeometryLocator.js +9 -0
  1419. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/locate/SimplePointInAreaLocator.js +54 -0
  1420. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/match/AreaSimilarityMeasure.js +15 -0
  1421. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/match/HausdorffSimilarityMeasure.js +27 -0
  1422. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/match/SimilarityMeasure.js +9 -0
  1423. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm/match/SimilarityMeasureCombiner.js +11 -0
  1424. package/node_modules/turf-jsts/src/org/locationtech/jts/algorithm.js +42 -0
  1425. package/node_modules/turf-jsts/src/org/locationtech/jts/densify/Densifier.js +93 -0
  1426. package/node_modules/turf-jsts/src/org/locationtech/jts/densify.js +2 -0
  1427. package/node_modules/turf-jsts/src/org/locationtech/jts/dissolve/DissolveEdgeGraph.js +14 -0
  1428. package/node_modules/turf-jsts/src/org/locationtech/jts/dissolve/DissolveHalfEdge.js +21 -0
  1429. package/node_modules/turf-jsts/src/org/locationtech/jts/dissolve/LineDissolver.js +152 -0
  1430. package/node_modules/turf-jsts/src/org/locationtech/jts/dissolve.js +4 -0
  1431. package/node_modules/turf-jsts/src/org/locationtech/jts/edgegraph/EdgeGraph.js +63 -0
  1432. package/node_modules/turf-jsts/src/org/locationtech/jts/edgegraph/EdgeGraphBuilder.js +53 -0
  1433. package/node_modules/turf-jsts/src/org/locationtech/jts/edgegraph/HalfEdge.js +143 -0
  1434. package/node_modules/turf-jsts/src/org/locationtech/jts/edgegraph/MarkHalfEdge.js +41 -0
  1435. package/node_modules/turf-jsts/src/org/locationtech/jts/edgegraph.js +5 -0
  1436. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/Coordinate.js +202 -0
  1437. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/CoordinateArrays.js +247 -0
  1438. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/CoordinateFilter.js +9 -0
  1439. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/CoordinateList.js +127 -0
  1440. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/CoordinateSequence.js +26 -0
  1441. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/CoordinateSequenceComparator.js +67 -0
  1442. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/CoordinateSequenceFactory.js +23 -0
  1443. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/CoordinateSequenceFilter.js +11 -0
  1444. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/CoordinateSequences.js +104 -0
  1445. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/Dimension.js +60 -0
  1446. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/Envelope.js +347 -0
  1447. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/Geometry.js +209 -0
  1448. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/GeometryCollection.js +216 -0
  1449. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/GeometryCollectionIterator.js +68 -0
  1450. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/GeometryComponentFilter.js +9 -0
  1451. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/GeometryFactory.js +260 -0
  1452. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/GeometryFilter.js +9 -0
  1453. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/IntersectionMatrix.js +232 -0
  1454. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/LineSegment.js +276 -0
  1455. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/LineString.js +212 -0
  1456. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/Lineal.js +8 -0
  1457. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/LinearRing.js +57 -0
  1458. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/Location.js +28 -0
  1459. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/MultiLineString.js +69 -0
  1460. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/MultiPoint.js +55 -0
  1461. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/MultiPolygon.js +66 -0
  1462. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/OctagonalEnvelope.js +278 -0
  1463. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/Point.js +145 -0
  1464. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/Polygon.js +282 -0
  1465. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/Polygonal.js +8 -0
  1466. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/PrecisionModel.js +136 -0
  1467. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/Puntal.js +8 -0
  1468. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/TopologyException.js +23 -0
  1469. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/Triangle.js +143 -0
  1470. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/impl/CoordinateArraySequence.js +152 -0
  1471. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/impl/CoordinateArraySequenceFactory.js +40 -0
  1472. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/prep/AbstractPreparedPolygonContains.js +62 -0
  1473. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/prep/BasicPreparedGeometry.js +72 -0
  1474. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/prep/PreparedGeometry.js +19 -0
  1475. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/prep/PreparedGeometryFactory.js +26 -0
  1476. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/prep/PreparedLineString.js +25 -0
  1477. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/prep/PreparedLineStringIntersects.js +39 -0
  1478. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/prep/PreparedPoint.js +14 -0
  1479. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/prep/PreparedPolygon.js +59 -0
  1480. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/prep/PreparedPolygonContains.js +21 -0
  1481. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/prep/PreparedPolygonContainsProperly.js +29 -0
  1482. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/prep/PreparedPolygonCovers.js +25 -0
  1483. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/prep/PreparedPolygonIntersects.js +30 -0
  1484. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/prep/PreparedPolygonPredicate.js +63 -0
  1485. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/util/AffineTransformation.js +445 -0
  1486. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/util/AffineTransformationBuilder.js +49 -0
  1487. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/util/AffineTransformationFactory.js +72 -0
  1488. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/util/ComponentCoordinateExtracter.js +24 -0
  1489. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/util/GeometryCollectionMapper.js +26 -0
  1490. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/util/GeometryCombiner.js +80 -0
  1491. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/util/GeometryEditor.js +156 -0
  1492. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/util/GeometryExtracter.js +36 -0
  1493. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/util/GeometryMapper.js +36 -0
  1494. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/util/GeometryTransformer.js +127 -0
  1495. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/util/LineStringExtracter.js +37 -0
  1496. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/util/LinearComponentExtracter.js +98 -0
  1497. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/util/NoninvertibleTransformationException.js +10 -0
  1498. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/util/PointExtracter.js +38 -0
  1499. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/util/PolygonExtracter.js +34 -0
  1500. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/util/ShortCircuitedGeometryVisitor.js +25 -0
  1501. package/node_modules/turf-jsts/src/org/locationtech/jts/geom/util/SineStarFactory.js +50 -0
  1502. package/node_modules/turf-jsts/src/org/locationtech/jts/geom.js +73 -0
  1503. package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/Depth.js +92 -0
  1504. package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/DirectedEdge.js +147 -0
  1505. package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/DirectedEdgeStar.js +239 -0
  1506. package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/Edge.js +193 -0
  1507. package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/EdgeEnd.js +103 -0
  1508. package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/EdgeEndStar.js +177 -0
  1509. package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/EdgeIntersection.js +55 -0
  1510. package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/EdgeIntersectionList.js +78 -0
  1511. package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/EdgeList.js +61 -0
  1512. package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/EdgeNodingValidator.js +32 -0
  1513. package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/EdgeRing.js +163 -0
  1514. package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/GeometryGraph.js +255 -0
  1515. package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/GraphComponent.js +53 -0
  1516. package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/Label.js +147 -0
  1517. package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/Node.js +95 -0
  1518. package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/NodeFactory.js +13 -0
  1519. package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/NodeMap.js +68 -0
  1520. package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/PlanarGraph.js +142 -0
  1521. package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/Position.js +16 -0
  1522. package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/Quadrant.js +60 -0
  1523. package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/TopologyLocation.js +129 -0
  1524. package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/index/EdgeSetIntersector.js +8 -0
  1525. package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/index/MonotoneChain.js +19 -0
  1526. package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/index/MonotoneChainEdge.js +83 -0
  1527. package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/index/MonotoneChainIndexer.js +41 -0
  1528. package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/index/SegmentIntersector.js +115 -0
  1529. package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/index/SimpleEdgeSetIntersector.js +53 -0
  1530. package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/index/SimpleMCSweepLineIntersector.js +101 -0
  1531. package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/index/SimpleSweepLineIntersector.js +101 -0
  1532. package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/index/SweepLineEvent.js +65 -0
  1533. package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph/index/SweepLineSegment.js +31 -0
  1534. package/node_modules/turf-jsts/src/org/locationtech/jts/geomgraph.js +34 -0
  1535. package/node_modules/turf-jsts/src/org/locationtech/jts/index/ArrayListVisitor.js +20 -0
  1536. package/node_modules/turf-jsts/src/org/locationtech/jts/index/ItemVisitor.js +9 -0
  1537. package/node_modules/turf-jsts/src/org/locationtech/jts/index/SpatialIndex.js +18 -0
  1538. package/node_modules/turf-jsts/src/org/locationtech/jts/index/bintree/Bintree.js +74 -0
  1539. package/node_modules/turf-jsts/src/org/locationtech/jts/index/bintree/Interval.js +73 -0
  1540. package/node_modules/turf-jsts/src/org/locationtech/jts/index/bintree/Key.js +46 -0
  1541. package/node_modules/turf-jsts/src/org/locationtech/jts/index/bintree/Node.js +94 -0
  1542. package/node_modules/turf-jsts/src/org/locationtech/jts/index/bintree/NodeBase.js +97 -0
  1543. package/node_modules/turf-jsts/src/org/locationtech/jts/index/bintree/Root.js +37 -0
  1544. package/node_modules/turf-jsts/src/org/locationtech/jts/index/chain/MonotoneChain.js +107 -0
  1545. package/node_modules/turf-jsts/src/org/locationtech/jts/index/chain/MonotoneChainBuilder.js +67 -0
  1546. package/node_modules/turf-jsts/src/org/locationtech/jts/index/chain/MonotoneChainOverlapAction.js +31 -0
  1547. package/node_modules/turf-jsts/src/org/locationtech/jts/index/chain/MonotoneChainSelectAction.js +25 -0
  1548. package/node_modules/turf-jsts/src/org/locationtech/jts/index/intervalrtree/IntervalRTreeBranchNode.js +31 -0
  1549. package/node_modules/turf-jsts/src/org/locationtech/jts/index/intervalrtree/IntervalRTreeLeafNode.js +24 -0
  1550. package/node_modules/turf-jsts/src/org/locationtech/jts/index/intervalrtree/IntervalRTreeNode.js +49 -0
  1551. package/node_modules/turf-jsts/src/org/locationtech/jts/index/intervalrtree/SortedPackedIntervalRTree.js +68 -0
  1552. package/node_modules/turf-jsts/src/org/locationtech/jts/index/intervalrtree.js +5 -0
  1553. package/node_modules/turf-jsts/src/org/locationtech/jts/index/kdtree/KdNode.js +68 -0
  1554. package/node_modules/turf-jsts/src/org/locationtech/jts/index/kdtree/KdNodeVisitor.js +9 -0
  1555. package/node_modules/turf-jsts/src/org/locationtech/jts/index/kdtree/KdTree.js +201 -0
  1556. package/node_modules/turf-jsts/src/org/locationtech/jts/index/kdtree.js +4 -0
  1557. package/node_modules/turf-jsts/src/org/locationtech/jts/index/quadtree/DoubleBits.js +86 -0
  1558. package/node_modules/turf-jsts/src/org/locationtech/jts/index/quadtree/IntervalSize.js +19 -0
  1559. package/node_modules/turf-jsts/src/org/locationtech/jts/index/quadtree/Key.js +57 -0
  1560. package/node_modules/turf-jsts/src/org/locationtech/jts/index/quadtree/Node.js +114 -0
  1561. package/node_modules/turf-jsts/src/org/locationtech/jts/index/quadtree/NodeBase.js +131 -0
  1562. package/node_modules/turf-jsts/src/org/locationtech/jts/index/quadtree/Quadtree.js +81 -0
  1563. package/node_modules/turf-jsts/src/org/locationtech/jts/index/quadtree/Root.js +39 -0
  1564. package/node_modules/turf-jsts/src/org/locationtech/jts/index/quadtree.js +8 -0
  1565. package/node_modules/turf-jsts/src/org/locationtech/jts/index/strtree/AbstractNode.js +45 -0
  1566. package/node_modules/turf-jsts/src/org/locationtech/jts/index/strtree/AbstractSTRtree.js +296 -0
  1567. package/node_modules/turf-jsts/src/org/locationtech/jts/index/strtree/Boundable.js +9 -0
  1568. package/node_modules/turf-jsts/src/org/locationtech/jts/index/strtree/BoundablePair.js +83 -0
  1569. package/node_modules/turf-jsts/src/org/locationtech/jts/index/strtree/GeometryItemDistance.js +15 -0
  1570. package/node_modules/turf-jsts/src/org/locationtech/jts/index/strtree/Interval.js +46 -0
  1571. package/node_modules/turf-jsts/src/org/locationtech/jts/index/strtree/ItemBoundable.js +25 -0
  1572. package/node_modules/turf-jsts/src/org/locationtech/jts/index/strtree/ItemDistance.js +9 -0
  1573. package/node_modules/turf-jsts/src/org/locationtech/jts/index/strtree/SIRtree.js +88 -0
  1574. package/node_modules/turf-jsts/src/org/locationtech/jts/index/strtree/STRtree.js +234 -0
  1575. package/node_modules/turf-jsts/src/org/locationtech/jts/index/strtree.js +11 -0
  1576. package/node_modules/turf-jsts/src/org/locationtech/jts/index/sweepline/SweepLineEvent.js +53 -0
  1577. package/node_modules/turf-jsts/src/org/locationtech/jts/index/sweepline/SweepLineIndex.js +53 -0
  1578. package/node_modules/turf-jsts/src/org/locationtech/jts/index/sweepline/SweepLineInterval.js +34 -0
  1579. package/node_modules/turf-jsts/src/org/locationtech/jts/index/sweepline/SweepLineOverlapAction.js +9 -0
  1580. package/node_modules/turf-jsts/src/org/locationtech/jts/index/sweepline.js +5 -0
  1581. package/node_modules/turf-jsts/src/org/locationtech/jts/index.js +2 -0
  1582. package/node_modules/turf-jsts/src/org/locationtech/jts/io/GeoJSONParser.js +439 -0
  1583. package/node_modules/turf-jsts/src/org/locationtech/jts/io/GeoJSONReader.js +59 -0
  1584. package/node_modules/turf-jsts/src/org/locationtech/jts/io/GeoJSONWriter.js +36 -0
  1585. package/node_modules/turf-jsts/src/org/locationtech/jts/io/OL3Parser.js +181 -0
  1586. package/node_modules/turf-jsts/src/org/locationtech/jts/io/WKTParser.js +398 -0
  1587. package/node_modules/turf-jsts/src/org/locationtech/jts/io/WKTReader.js +62 -0
  1588. package/node_modules/turf-jsts/src/org/locationtech/jts/io/WKTWriter.js +53 -0
  1589. package/node_modules/turf-jsts/src/org/locationtech/jts/io.js +8 -0
  1590. package/node_modules/turf-jsts/src/org/locationtech/jts/linearref/ExtractLineByLocation.js +69 -0
  1591. package/node_modules/turf-jsts/src/org/locationtech/jts/linearref/LengthIndexOfPoint.js +65 -0
  1592. package/node_modules/turf-jsts/src/org/locationtech/jts/linearref/LengthIndexedLine.js +86 -0
  1593. package/node_modules/turf-jsts/src/org/locationtech/jts/linearref/LengthLocationMap.js +106 -0
  1594. package/node_modules/turf-jsts/src/org/locationtech/jts/linearref/LinearGeometryBuilder.js +74 -0
  1595. package/node_modules/turf-jsts/src/org/locationtech/jts/linearref/LinearIterator.js +88 -0
  1596. package/node_modules/turf-jsts/src/org/locationtech/jts/linearref/LinearLocation.js +207 -0
  1597. package/node_modules/turf-jsts/src/org/locationtech/jts/linearref/LocationIndexOfLine.js +33 -0
  1598. package/node_modules/turf-jsts/src/org/locationtech/jts/linearref/LocationIndexOfPoint.js +68 -0
  1599. package/node_modules/turf-jsts/src/org/locationtech/jts/linearref/LocationIndexedLine.js +65 -0
  1600. package/node_modules/turf-jsts/src/org/locationtech/jts/linearref.js +11 -0
  1601. package/node_modules/turf-jsts/src/org/locationtech/jts/math/DD.js +639 -0
  1602. package/node_modules/turf-jsts/src/org/locationtech/jts/math/MathUtil.js +71 -0
  1603. package/node_modules/turf-jsts/src/org/locationtech/jts/math/Matrix.js +54 -0
  1604. package/node_modules/turf-jsts/src/org/locationtech/jts/math/Plane3D.js +41 -0
  1605. package/node_modules/turf-jsts/src/org/locationtech/jts/math/Vector2D.js +180 -0
  1606. package/node_modules/turf-jsts/src/org/locationtech/jts/math/Vector3D.js +97 -0
  1607. package/node_modules/turf-jsts/src/org/locationtech/jts/monkey.js +167 -0
  1608. package/node_modules/turf-jsts/src/org/locationtech/jts/noding/BasicSegmentString.js +46 -0
  1609. package/node_modules/turf-jsts/src/org/locationtech/jts/noding/FastNodingValidator.js +64 -0
  1610. package/node_modules/turf-jsts/src/org/locationtech/jts/noding/FastSegmentSetIntersectionFinder.js +31 -0
  1611. package/node_modules/turf-jsts/src/org/locationtech/jts/noding/InteriorIntersectionFinder.js +96 -0
  1612. package/node_modules/turf-jsts/src/org/locationtech/jts/noding/InteriorIntersectionFinderAdder.js +41 -0
  1613. package/node_modules/turf-jsts/src/org/locationtech/jts/noding/IntersectionAdder.js +90 -0
  1614. package/node_modules/turf-jsts/src/org/locationtech/jts/noding/IteratedNoder.js +54 -0
  1615. package/node_modules/turf-jsts/src/org/locationtech/jts/noding/MCIndexNoder.js +91 -0
  1616. package/node_modules/turf-jsts/src/org/locationtech/jts/noding/MCIndexSegmentSetMutualIntersector.js +88 -0
  1617. package/node_modules/turf-jsts/src/org/locationtech/jts/noding/NodableSegmentString.js +11 -0
  1618. package/node_modules/turf-jsts/src/org/locationtech/jts/noding/NodedSegmentString.js +103 -0
  1619. package/node_modules/turf-jsts/src/org/locationtech/jts/noding/Noder.js +10 -0
  1620. package/node_modules/turf-jsts/src/org/locationtech/jts/noding/NodingValidator.js +105 -0
  1621. package/node_modules/turf-jsts/src/org/locationtech/jts/noding/Octant.js +40 -0
  1622. package/node_modules/turf-jsts/src/org/locationtech/jts/noding/OrientedCoordinateArray.js +46 -0
  1623. package/node_modules/turf-jsts/src/org/locationtech/jts/noding/ScaledNoder.js +99 -0
  1624. package/node_modules/turf-jsts/src/org/locationtech/jts/noding/SegmentIntersectionDetector.js +81 -0
  1625. package/node_modules/turf-jsts/src/org/locationtech/jts/noding/SegmentIntersector.js +10 -0
  1626. package/node_modules/turf-jsts/src/org/locationtech/jts/noding/SegmentNode.js +50 -0
  1627. package/node_modules/turf-jsts/src/org/locationtech/jts/noding/SegmentNodeList.js +210 -0
  1628. package/node_modules/turf-jsts/src/org/locationtech/jts/noding/SegmentPointComparator.js +48 -0
  1629. package/node_modules/turf-jsts/src/org/locationtech/jts/noding/SegmentSetMutualIntersector.js +9 -0
  1630. package/node_modules/turf-jsts/src/org/locationtech/jts/noding/SegmentString.js +14 -0
  1631. package/node_modules/turf-jsts/src/org/locationtech/jts/noding/SegmentStringDissolver.js +58 -0
  1632. package/node_modules/turf-jsts/src/org/locationtech/jts/noding/SegmentStringUtil.js +49 -0
  1633. package/node_modules/turf-jsts/src/org/locationtech/jts/noding/SimpleNoder.js +37 -0
  1634. package/node_modules/turf-jsts/src/org/locationtech/jts/noding/SimpleSegmentSetMutualIntersector.js +35 -0
  1635. package/node_modules/turf-jsts/src/org/locationtech/jts/noding/SinglePassNoder.js +20 -0
  1636. package/node_modules/turf-jsts/src/org/locationtech/jts/noding/snapround/GeometryNoder.js +63 -0
  1637. package/node_modules/turf-jsts/src/org/locationtech/jts/noding/snapround/HotPixel.js +126 -0
  1638. package/node_modules/turf-jsts/src/org/locationtech/jts/noding/snapround/MCIndexPointSnapper.js +75 -0
  1639. package/node_modules/turf-jsts/src/org/locationtech/jts/noding/snapround/MCIndexSnapRounder.js +90 -0
  1640. package/node_modules/turf-jsts/src/org/locationtech/jts/noding/snapround/SimpleSnapRounder.js +109 -0
  1641. package/node_modules/turf-jsts/src/org/locationtech/jts/noding.js +3 -0
  1642. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/boundary/BoundaryOp.js +117 -0
  1643. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/boundary.js +2 -0
  1644. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/buffer/BufferBuilder.js +150 -0
  1645. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/buffer/BufferInputLineSimplifier.js +98 -0
  1646. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/buffer/BufferOp.js +139 -0
  1647. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/buffer/BufferParameters.js +95 -0
  1648. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/buffer/BufferSubgraph.js +151 -0
  1649. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/buffer/OffsetCurveBuilder.js +170 -0
  1650. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/buffer/OffsetCurveSetBuilder.js +122 -0
  1651. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/buffer/OffsetSegmentGenerator.js +289 -0
  1652. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/buffer/OffsetSegmentString.js +68 -0
  1653. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/buffer/RightmostEdgeFinder.js +95 -0
  1654. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/buffer/SubgraphDepthLocater.js +111 -0
  1655. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/buffer/validate/BufferCurveMaximumDistanceFinder.js +92 -0
  1656. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/buffer/validate/BufferDistanceValidator.js +107 -0
  1657. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/buffer/validate/BufferResultValidator.js +116 -0
  1658. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/buffer/validate/DistanceToPointFinder.js +61 -0
  1659. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/buffer/validate/PointPairDistance.js +75 -0
  1660. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/buffer.js +19 -0
  1661. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/distance/ConnectedElementLocationFilter.js +28 -0
  1662. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/distance/ConnectedElementPointFilter.js +27 -0
  1663. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/distance/DistanceOp.js +239 -0
  1664. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/distance/FacetSequence.js +114 -0
  1665. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/distance/FacetSequenceTreeBuilder.js +57 -0
  1666. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/distance/GeometryLocation.js +38 -0
  1667. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/distance/IndexedFacetDistance.js +45 -0
  1668. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/distance.js +8 -0
  1669. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/distance3d/AxisPlaneCoordinateSequence.js +80 -0
  1670. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/distance3d/Distance3DOp.js +312 -0
  1671. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/distance3d/PlanarPolygon3D.js +117 -0
  1672. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/distance3d.js +4 -0
  1673. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/geometrygraph/GeometryGraphOp.js +46 -0
  1674. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/geometrygraph.js +2 -0
  1675. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/issimple/IsSimpleOp.js +164 -0
  1676. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/issimple.js +2 -0
  1677. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/linemerge/EdgeString.js +46 -0
  1678. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/linemerge/LineMergeDirectedEdge.js +28 -0
  1679. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/linemerge/LineMergeEdge.js +17 -0
  1680. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/linemerge/LineMergeGraph.js +38 -0
  1681. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/linemerge/LineMerger.js +116 -0
  1682. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/linemerge/LineSequencer.js +249 -0
  1683. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/linemerge.js +7 -0
  1684. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/overlay/ConsistentPolygonRingChecker.js +74 -0
  1685. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/overlay/EdgeSetNoder.js +32 -0
  1686. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/overlay/LineBuilder.js +96 -0
  1687. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/overlay/MaximalEdgeRing.js +43 -0
  1688. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/overlay/MinimalEdgeRing.js +21 -0
  1689. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/overlay/OverlayNodeFactory.js +15 -0
  1690. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/overlay/OverlayOp.js +332 -0
  1691. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/overlay/PointBuilder.js +45 -0
  1692. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/overlay/PolygonBuilder.js +152 -0
  1693. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/overlay/snap/GeometrySnapper.js +115 -0
  1694. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/overlay/snap/LineStringSnapper.js +93 -0
  1695. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/overlay/snap/SnapIfNeededOverlayOp.js +57 -0
  1696. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/overlay/snap/SnapOverlayOp.js +73 -0
  1697. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/overlay/validate/FuzzyPointLocator.js +77 -0
  1698. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/overlay/validate/OffsetPointGenerator.js +55 -0
  1699. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/overlay/validate/OverlayResultValidator.js +88 -0
  1700. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/overlay.js +21 -0
  1701. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/polygonize/EdgeRing.js +232 -0
  1702. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/polygonize/PolygonizeDirectedEdge.js +41 -0
  1703. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/polygonize/PolygonizeEdge.js +17 -0
  1704. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/polygonize/PolygonizeGraph.js +249 -0
  1705. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/polygonize/Polygonizer.js +186 -0
  1706. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/polygonize.js +6 -0
  1707. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/predicate/RectangleContains.js +64 -0
  1708. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/predicate/RectangleIntersects.js +158 -0
  1709. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/predicate.js +3 -0
  1710. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/relate/EdgeEndBuilder.js +64 -0
  1711. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/relate/EdgeEndBundle.js +96 -0
  1712. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/relate/EdgeEndBundleStar.js +26 -0
  1713. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/relate/RelateComputer.js +172 -0
  1714. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/relate/RelateNode.js +21 -0
  1715. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/relate/RelateNodeFactory.js +15 -0
  1716. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/relate/RelateNodeGraph.js +52 -0
  1717. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/relate/RelateOp.js +109 -0
  1718. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/relate.js +9 -0
  1719. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/union/CascadedPolygonUnion.js +157 -0
  1720. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/union/PointGeometryUnion.js +47 -0
  1721. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/union/UnaryUnionOp.js +105 -0
  1722. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/union/UnionInteracting.js +75 -0
  1723. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/union/UnionOp.js +21 -0
  1724. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/union.js +6 -0
  1725. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/valid/ConnectedInteriorTester.js +121 -0
  1726. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/valid/ConsistentAreaTester.js +54 -0
  1727. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/valid/IndexedNestedRingTester.js +60 -0
  1728. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/valid/IsValidOp.js +324 -0
  1729. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/valid/QuadtreeNestedRingTester.js +61 -0
  1730. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/valid/RepeatedPointTester.js +56 -0
  1731. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/valid/SimpleNestedRingTester.js +46 -0
  1732. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/valid/SweeplineNestedRingTester.js +57 -0
  1733. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/valid/TopologyValidationError.js +48 -0
  1734. package/node_modules/turf-jsts/src/org/locationtech/jts/operation/valid.js +10 -0
  1735. package/node_modules/turf-jsts/src/org/locationtech/jts/operation.js +4 -0
  1736. package/node_modules/turf-jsts/src/org/locationtech/jts/planargraph/DirectedEdge.js +101 -0
  1737. package/node_modules/turf-jsts/src/org/locationtech/jts/planargraph/DirectedEdgeStar.js +79 -0
  1738. package/node_modules/turf-jsts/src/org/locationtech/jts/planargraph/Edge.js +51 -0
  1739. package/node_modules/turf-jsts/src/org/locationtech/jts/planargraph/GraphComponent.js +56 -0
  1740. package/node_modules/turf-jsts/src/org/locationtech/jts/planargraph/Node.js +60 -0
  1741. package/node_modules/turf-jsts/src/org/locationtech/jts/planargraph/NodeMap.js +29 -0
  1742. package/node_modules/turf-jsts/src/org/locationtech/jts/planargraph/PlanarGraph.js +100 -0
  1743. package/node_modules/turf-jsts/src/org/locationtech/jts/planargraph/Subgraph.js +43 -0
  1744. package/node_modules/turf-jsts/src/org/locationtech/jts/planargraph/algorithm/ConnectedSubgraphFinder.js +52 -0
  1745. package/node_modules/turf-jsts/src/org/locationtech/jts/precision/CommonBits.js +67 -0
  1746. package/node_modules/turf-jsts/src/org/locationtech/jts/precision/CommonBitsOp.js +63 -0
  1747. package/node_modules/turf-jsts/src/org/locationtech/jts/precision/CommonBitsRemover.js +87 -0
  1748. package/node_modules/turf-jsts/src/org/locationtech/jts/precision/CoordinatePrecisionReducerFilter.js +25 -0
  1749. package/node_modules/turf-jsts/src/org/locationtech/jts/precision/EnhancedPrecisionOp.js +116 -0
  1750. package/node_modules/turf-jsts/src/org/locationtech/jts/precision/GeometryPrecisionReducer.js +82 -0
  1751. package/node_modules/turf-jsts/src/org/locationtech/jts/precision/MinimumClearance.js +132 -0
  1752. package/node_modules/turf-jsts/src/org/locationtech/jts/precision/PrecisionReducerCoordinateOperation.js +39 -0
  1753. package/node_modules/turf-jsts/src/org/locationtech/jts/precision/SimpleMinimumClearance.js +126 -0
  1754. package/node_modules/turf-jsts/src/org/locationtech/jts/precision.js +10 -0
  1755. package/node_modules/turf-jsts/src/org/locationtech/jts/shape/GeometricShapeBuilder.js +54 -0
  1756. package/node_modules/turf-jsts/src/org/locationtech/jts/shape/fractal/KochSnowflakeBuilder.js +66 -0
  1757. package/node_modules/turf-jsts/src/org/locationtech/jts/shape/fractal/SierpinskiCarpetBuilder.js +57 -0
  1758. package/node_modules/turf-jsts/src/org/locationtech/jts/shape/random/RandomPointsBuilder.js +56 -0
  1759. package/node_modules/turf-jsts/src/org/locationtech/jts/shape/random/RandomPointsInGridBuilder.js +70 -0
  1760. package/node_modules/turf-jsts/src/org/locationtech/jts/simplify/DouglasPeuckerLineSimplifier.js +64 -0
  1761. package/node_modules/turf-jsts/src/org/locationtech/jts/simplify/DouglasPeuckerSimplifier.js +90 -0
  1762. package/node_modules/turf-jsts/src/org/locationtech/jts/simplify/LineSegmentIndex.js +63 -0
  1763. package/node_modules/turf-jsts/src/org/locationtech/jts/simplify/TaggedLineSegment.js +36 -0
  1764. package/node_modules/turf-jsts/src/org/locationtech/jts/simplify/TaggedLineString.js +78 -0
  1765. package/node_modules/turf-jsts/src/org/locationtech/jts/simplify/TaggedLineStringSimplifier.js +129 -0
  1766. package/node_modules/turf-jsts/src/org/locationtech/jts/simplify/TaggedLinesSimplifier.js +29 -0
  1767. package/node_modules/turf-jsts/src/org/locationtech/jts/simplify/TopologyPreservingSimplifier.js +88 -0
  1768. package/node_modules/turf-jsts/src/org/locationtech/jts/simplify/VWLineSimplifier.js +135 -0
  1769. package/node_modules/turf-jsts/src/org/locationtech/jts/simplify/VWSimplifier.js +90 -0
  1770. package/node_modules/turf-jsts/src/org/locationtech/jts/simplify.js +11 -0
  1771. package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/ConformingDelaunayTriangulationBuilder.js +95 -0
  1772. package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/ConformingDelaunayTriangulator.js +216 -0
  1773. package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/ConstraintEnforcementException.js +29 -0
  1774. package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/ConstraintSplitPointFinder.js +9 -0
  1775. package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/ConstraintVertex.js +34 -0
  1776. package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/ConstraintVertexFactory.js +9 -0
  1777. package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/DelaunayTriangulationBuilder.js +84 -0
  1778. package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/IncrementalDelaunayTriangulator.js +50 -0
  1779. package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/MidpointSplitPointFinder.js +16 -0
  1780. package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/NonEncroachingSplitPointFinder.js +31 -0
  1781. package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/Segment.js +96 -0
  1782. package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/SplitSegment.js +56 -0
  1783. package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/VertexTaggedGeometryDataMapper.js +48 -0
  1784. package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/VoronoiDiagramBuilder.js +77 -0
  1785. package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/quadedge/EdgeConnectedTriangleTraversal.js +39 -0
  1786. package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/quadedge/LastFoundQuadEdgeLocator.js +32 -0
  1787. package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/quadedge/LocateFailureException.js +32 -0
  1788. package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/quadedge/QuadEdge.js +146 -0
  1789. package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/quadedge/QuadEdgeLocator.js +9 -0
  1790. package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/quadedge/QuadEdgeSubdivision.js +456 -0
  1791. package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/quadedge/QuadEdgeTriangle.js +191 -0
  1792. package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/quadedge/QuadEdgeUtil.js +19 -0
  1793. package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/quadedge/TraversalVisitor.js +9 -0
  1794. package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/quadedge/TrianglePredicate.js +113 -0
  1795. package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/quadedge/TriangleVisitor.js +9 -0
  1796. package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/quadedge/Vertex.js +210 -0
  1797. package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate/quadedge.js +5 -0
  1798. package/node_modules/turf-jsts/src/org/locationtech/jts/triangulate.js +15 -0
  1799. package/node_modules/turf-jsts/src/org/locationtech/jts/util/Assert.js +53 -0
  1800. package/node_modules/turf-jsts/src/org/locationtech/jts/util/AssertionFailedException.js +19 -0
  1801. package/node_modules/turf-jsts/src/org/locationtech/jts/util/CollectionUtil.js +35 -0
  1802. package/node_modules/turf-jsts/src/org/locationtech/jts/util/CoordinateArrayFilter.js +22 -0
  1803. package/node_modules/turf-jsts/src/org/locationtech/jts/util/CoordinateCountFilter.js +19 -0
  1804. package/node_modules/turf-jsts/src/org/locationtech/jts/util/GeometricShapeFactory.js +266 -0
  1805. package/node_modules/turf-jsts/src/org/locationtech/jts/util/Memory.js +47 -0
  1806. package/node_modules/turf-jsts/src/org/locationtech/jts/util/NumberUtil.js +11 -0
  1807. package/node_modules/turf-jsts/src/org/locationtech/jts/util/ObjectCounter.js +44 -0
  1808. package/node_modules/turf-jsts/src/org/locationtech/jts/util/PriorityQueue.js +55 -0
  1809. package/node_modules/turf-jsts/src/org/locationtech/jts/util/StringUtil.js +79 -0
  1810. package/node_modules/turf-jsts/src/org/locationtech/jts/util/UniqueCoordinateArrayFilter.js +33 -0
  1811. package/package.json +21 -12
  1812. package/tak-registration.html +15 -11
  1813. package/tak-registration.js +229 -27
@@ -0,0 +1,10 @@
1
+ !function(t,e){"object"==typeof exports&&"undefined"!=typeof module?module.exports=e():"function"==typeof define&&define.amd?define(e):(t="undefined"!=typeof globalThis?globalThis:t||self).polygonClipping=e()}(this,(function(){"use strict";function t(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function e(t,e){for(var r=0;r<e.length;r++){var n=e[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(t,n.key,n)}}function r(t,r,n){return r&&e(t.prototype,r),n&&e(t,n),t}
2
+ /**
3
+ * splaytree v3.1.0
4
+ * Fast Splay tree for Node and browser
5
+ *
6
+ * @author Alexander Milevski <info@w8r.name>
7
+ * @license MIT
8
+ * @preserve
9
+ */var n=function(t,e){this.next=null,this.key=t,this.data=e,this.left=null,this.right=null};function i(t,e){return t>e?1:t<e?-1:0}function o(t,e,r){for(var i=new n(null,null),o=i,s=i;;){var u=r(t,e.key);if(u<0){if(null===e.left)break;if(r(t,e.left.key)<0){var l=e.left;if(e.left=l.right,l.right=e,null===(e=l).left)break}s.left=e,s=e,e=e.left}else{if(!(u>0))break;if(null===e.right)break;if(r(t,e.right.key)>0){l=e.right;if(e.right=l.left,l.left=e,null===(e=l).right)break}o.right=e,o=e,e=e.right}}return o.right=e.left,s.left=e.right,e.left=i.right,e.right=i.left,e}function s(t,e,r,i){var s=new n(t,e);if(null===r)return s.left=s.right=null,s;var u=i(t,(r=o(t,r,i)).key);return u<0?(s.left=r.left,s.right=r,r.left=null):u>=0&&(s.right=r.right,s.left=r,r.right=null),s}function u(t,e,r){var n=null,i=null;if(e){var s=r((e=o(t,e,r)).key,t);0===s?(n=e.left,i=e.right):s<0?(i=e.right,e.right=null,n=e):(n=e.left,e.left=null,i=e)}return{left:n,right:i}}function l(t,e,r,n,i){if(t){n(e+(r?"└── ":"├── ")+i(t)+"\n");var o=e+(r?" ":"│ ");t.left&&l(t.left,o,!1,n,i),t.right&&l(t.right,o,!0,n,i)}}var h=function(){function t(t){void 0===t&&(t=i),this._root=null,this._size=0,this._comparator=t}return t.prototype.insert=function(t,e){return this._size++,this._root=s(t,e,this._root,this._comparator)},t.prototype.add=function(t,e){var r=new n(t,e);null===this._root&&(r.left=r.right=null,this._size++,this._root=r);var i=this._comparator,s=o(t,this._root,i),u=i(t,s.key);return 0===u?this._root=s:(u<0?(r.left=s.left,r.right=s,s.left=null):u>0&&(r.right=s.right,r.left=s,s.right=null),this._size++,this._root=r),this._root},t.prototype.remove=function(t){this._root=this._remove(t,this._root,this._comparator)},t.prototype._remove=function(t,e,r){var n;return null===e?null:0===r(t,(e=o(t,e,r)).key)?(null===e.left?n=e.right:(n=o(t,e.left,r)).right=e.right,this._size--,n):e},t.prototype.pop=function(){var t=this._root;if(t){for(;t.left;)t=t.left;return this._root=o(t.key,this._root,this._comparator),this._root=this._remove(t.key,this._root,this._comparator),{key:t.key,data:t.data}}return null},t.prototype.findStatic=function(t){for(var e=this._root,r=this._comparator;e;){var n=r(t,e.key);if(0===n)return e;e=n<0?e.left:e.right}return null},t.prototype.find=function(t){return this._root&&(this._root=o(t,this._root,this._comparator),0!==this._comparator(t,this._root.key))?null:this._root},t.prototype.contains=function(t){for(var e=this._root,r=this._comparator;e;){var n=r(t,e.key);if(0===n)return!0;e=n<0?e.left:e.right}return!1},t.prototype.forEach=function(t,e){for(var r=this._root,n=[],i=!1;!i;)null!==r?(n.push(r),r=r.left):0!==n.length?(r=n.pop(),t.call(e,r),r=r.right):i=!0;return this},t.prototype.range=function(t,e,r,n){for(var i=[],o=this._comparator,s=this._root;0!==i.length||s;)if(s)i.push(s),s=s.left;else{if(o((s=i.pop()).key,e)>0)break;if(o(s.key,t)>=0&&r.call(n,s))return this;s=s.right}return this},t.prototype.keys=function(){var t=[];return this.forEach((function(e){var r=e.key;return t.push(r)})),t},t.prototype.values=function(){var t=[];return this.forEach((function(e){var r=e.data;return t.push(r)})),t},t.prototype.min=function(){return this._root?this.minNode(this._root).key:null},t.prototype.max=function(){return this._root?this.maxNode(this._root).key:null},t.prototype.minNode=function(t){if(void 0===t&&(t=this._root),t)for(;t.left;)t=t.left;return t},t.prototype.maxNode=function(t){if(void 0===t&&(t=this._root),t)for(;t.right;)t=t.right;return t},t.prototype.at=function(t){for(var e=this._root,r=!1,n=0,i=[];!r;)if(e)i.push(e),e=e.left;else if(i.length>0){if(e=i.pop(),n===t)return e;n++,e=e.right}else r=!0;return null},t.prototype.next=function(t){var e=this._root,r=null;if(t.right){for(r=t.right;r.left;)r=r.left;return r}for(var n=this._comparator;e;){var i=n(t.key,e.key);if(0===i)break;i<0?(r=e,e=e.left):e=e.right}return r},t.prototype.prev=function(t){var e=this._root,r=null;if(null!==t.left){for(r=t.left;r.right;)r=r.right;return r}for(var n=this._comparator;e;){var i=n(t.key,e.key);if(0===i)break;i<0?e=e.left:(r=e,e=e.right)}return r},t.prototype.clear=function(){return this._root=null,this._size=0,this},t.prototype.toList=function(){return function(t){var e=t,r=[],i=!1,o=new n(null,null),s=o;for(;!i;)e?(r.push(e),e=e.left):r.length>0?e=(e=s=s.next=r.pop()).right:i=!0;return s.next=null,o.next}(this._root)},t.prototype.load=function(t,e,r){void 0===e&&(e=[]),void 0===r&&(r=!1);var i=t.length,o=this._comparator;if(r&&p(t,e,0,i-1,o),null===this._root)this._root=f(t,e,0,i),this._size=i;else{var s=function(t,e,r){var i=new n(null,null),o=i,s=t,u=e;for(;null!==s&&null!==u;)r(s.key,u.key)<0?(o.next=s,s=s.next):(o.next=u,u=u.next),o=o.next;null!==s?o.next=s:null!==u&&(o.next=u);return i.next}(this.toList(),function(t,e){for(var r=new n(null,null),i=r,o=0;o<t.length;o++)i=i.next=new n(t[o],e[o]);return i.next=null,r.next}(t,e),o);i=this._size+i,this._root=a({head:s},0,i)}return this},t.prototype.isEmpty=function(){return null===this._root},Object.defineProperty(t.prototype,"size",{get:function(){return this._size},enumerable:!0,configurable:!0}),Object.defineProperty(t.prototype,"root",{get:function(){return this._root},enumerable:!0,configurable:!0}),t.prototype.toString=function(t){void 0===t&&(t=function(t){return String(t.key)});var e=[];return l(this._root,"",!0,(function(t){return e.push(t)}),t),e.join("")},t.prototype.update=function(t,e,r){var n=this._comparator,i=u(t,this._root,n),l=i.left,h=i.right;n(t,e)<0?h=s(e,r,h,n):l=s(e,r,l,n),this._root=function(t,e,r){return null===e?t:(null===t||((e=o(t.key,e,r)).left=t),e)}(l,h,n)},t.prototype.split=function(t){return u(t,this._root,this._comparator)},t}();function f(t,e,r,i){var o=i-r;if(o>0){var s=r+Math.floor(o/2),u=t[s],l=e[s],h=new n(u,l);return h.left=f(t,e,r,s),h.right=f(t,e,s+1,i),h}return null}function a(t,e,r){var n=r-e;if(n>0){var i=e+Math.floor(n/2),o=a(t,e,i),s=t.head;return s.left=o,t.head=t.head.next,s.right=a(t,i+1,r),s}return null}function p(t,e,r,n,i){if(!(r>=n)){for(var o=t[r+n>>1],s=r-1,u=n+1;;){do{s++}while(i(t[s],o)<0);do{u--}while(i(t[u],o)>0);if(s>=u)break;var l=t[s];t[s]=t[u],t[u]=l,l=e[s],e[s]=e[u],e[u]=l}p(t,e,r,u,i),p(t,e,u+1,n,i)}}var y=function(t,e){return t.ll.x<=e.x&&e.x<=t.ur.x&&t.ll.y<=e.y&&e.y<=t.ur.y},g=function(t,e){if(e.ur.x<t.ll.x||t.ur.x<e.ll.x||e.ur.y<t.ll.y||t.ur.y<e.ll.y)return null;var r=t.ll.x<e.ll.x?e.ll.x:t.ll.x,n=t.ur.x<e.ur.x?t.ur.x:e.ur.x;return{ll:{x:r,y:t.ll.y<e.ll.y?e.ll.y:t.ll.y},ur:{x:n,y:t.ur.y<e.ur.y?t.ur.y:e.ur.y}}},v=Number.EPSILON;void 0===v&&(v=Math.pow(2,-52));var c=v*v,x=function(t,e){if(-v<t&&t<v&&-v<e&&e<v)return 0;var r=t-e;return r*r<c*t*e?0:t<e?-1:1},b=function(){function e(){t(this,e),this.reset()}return r(e,[{key:"reset",value:function(){this.xRounder=new m,this.yRounder=new m}},{key:"round",value:function(t,e){return{x:this.xRounder.round(t),y:this.yRounder.round(e)}}}]),e}(),m=function(){function e(){t(this,e),this.tree=new h,this.round(0)}return r(e,[{key:"round",value:function(t){var e=this.tree.add(t),r=this.tree.prev(e);if(null!==r&&0===x(e.key,r.key))return this.tree.remove(t),r.key;var n=this.tree.next(e);return null!==n&&0===x(e.key,n.key)?(this.tree.remove(t),n.key):t}}]),e}(),d=new b,E=function(t,e){return t.x*e.y-t.y*e.x},S=function(t,e){return t.x*e.x+t.y*e.y},_=function(t,e,r){var n={x:e.x-t.x,y:e.y-t.y},i={x:r.x-t.x,y:r.y-t.y},o=E(n,i);return x(o,0)},k=function(t){return Math.sqrt(S(t,t))},w=function(t,e,r){var n={x:e.x-t.x,y:e.y-t.y},i={x:r.x-t.x,y:r.y-t.y};return S(i,n)/k(i)/k(n)},R=function(t,e,r){return 0===e.y?null:{x:t.x+e.x/e.y*(r-t.y),y:r}},I=function(t,e,r){return 0===e.x?null:{x:r,y:t.y+e.y/e.x*(r-t.x)}},P=function(){function e(r,n){t(this,e),void 0===r.events?r.events=[this]:r.events.push(this),this.point=r,this.isLeft=n}return r(e,null,[{key:"compare",value:function(t,r){var n=e.comparePoints(t.point,r.point);return 0!==n?n:(t.point!==r.point&&t.link(r),t.isLeft!==r.isLeft?t.isLeft?1:-1:O.compare(t.segment,r.segment))}},{key:"comparePoints",value:function(t,e){return t.x<e.x?-1:t.x>e.x?1:t.y<e.y?-1:t.y>e.y?1:0}}]),r(e,[{key:"link",value:function(t){if(t.point===this.point)throw new Error("Tried to link already linked events");for(var e=t.point.events,r=0,n=e.length;r<n;r++){var i=e[r];this.point.events.push(i),i.point=this.point}this.checkForConsuming()}},{key:"checkForConsuming",value:function(){for(var t=this.point.events.length,e=0;e<t;e++){var r=this.point.events[e];if(void 0===r.segment.consumedBy)for(var n=e+1;n<t;n++){var i=this.point.events[n];void 0===i.consumedBy&&(r.otherSE.point.events===i.otherSE.point.events&&r.segment.consume(i.segment))}}}},{key:"getAvailableLinkedEvents",value:function(){for(var t=[],e=0,r=this.point.events.length;e<r;e++){var n=this.point.events[e];n!==this&&!n.segment.ringOut&&n.segment.isInResult()&&t.push(n)}return t}},{key:"getLeftmostComparator",value:function(t){var e=this,r=new Map,n=function(n){var i,o,s,u,l,h=n.otherSE;r.set(n,{sine:(i=e.point,o=t.point,s=h.point,u={x:o.x-i.x,y:o.y-i.y},l={x:s.x-i.x,y:s.y-i.y},E(l,u)/k(l)/k(u)),cosine:w(e.point,t.point,h.point)})};return function(t,e){r.has(t)||n(t),r.has(e)||n(e);var i=r.get(t),o=i.sine,s=i.cosine,u=r.get(e),l=u.sine,h=u.cosine;return o>=0&&l>=0?s<h?1:s>h?-1:0:o<0&&l<0?s<h?-1:s>h?1:0:l<o?-1:l>o?1:0}}}]),e}(),N=0,O=function(){function e(r,n,i,o){t(this,e),this.id=++N,this.leftSE=r,r.segment=this,r.otherSE=n,this.rightSE=n,n.segment=this,n.otherSE=r,this.rings=i,this.windings=o}return r(e,null,[{key:"compare",value:function(t,e){var r=t.leftSE.point.x,n=e.leftSE.point.x,i=t.rightSE.point.x,o=e.rightSE.point.x;if(o<r)return 1;if(i<n)return-1;var s=t.leftSE.point.y,u=e.leftSE.point.y,l=t.rightSE.point.y,h=e.rightSE.point.y;if(r<n){if(u<s&&u<l)return 1;if(u>s&&u>l)return-1;var f=t.comparePoint(e.leftSE.point);if(f<0)return 1;if(f>0)return-1;var a=e.comparePoint(t.rightSE.point);return 0!==a?a:-1}if(r>n){if(s<u&&s<h)return-1;if(s>u&&s>h)return 1;var p=e.comparePoint(t.leftSE.point);if(0!==p)return p;var y=t.comparePoint(e.rightSE.point);return y<0?1:y>0?-1:1}if(s<u)return-1;if(s>u)return 1;if(i<o){var g=e.comparePoint(t.rightSE.point);if(0!==g)return g}if(i>o){var v=t.comparePoint(e.rightSE.point);if(v<0)return 1;if(v>0)return-1}if(i!==o){var c=l-s,x=i-r,b=h-u,m=o-n;if(c>x&&b<m)return 1;if(c<x&&b>m)return-1}return i>o?1:i<o||l<h?-1:l>h?1:t.id<e.id?-1:t.id>e.id?1:0}}]),r(e,[{key:"replaceRightSE",value:function(t){this.rightSE=t,this.rightSE.segment=this,this.rightSE.otherSE=this.leftSE,this.leftSE.otherSE=this.rightSE}},{key:"bbox",value:function(){var t=this.leftSE.point.y,e=this.rightSE.point.y;return{ll:{x:this.leftSE.point.x,y:t<e?t:e},ur:{x:this.rightSE.point.x,y:t>e?t:e}}}},{key:"vector",value:function(){return{x:this.rightSE.point.x-this.leftSE.point.x,y:this.rightSE.point.y-this.leftSE.point.y}}},{key:"isAnEndpoint",value:function(t){return t.x===this.leftSE.point.x&&t.y===this.leftSE.point.y||t.x===this.rightSE.point.x&&t.y===this.rightSE.point.y}},{key:"comparePoint",value:function(t){if(this.isAnEndpoint(t))return 0;var e=this.leftSE.point,r=this.rightSE.point,n=this.vector();if(e.x===r.x)return t.x===e.x?0:t.x<e.x?1:-1;var i=(t.y-e.y)/n.y,o=e.x+i*n.x;if(t.x===o)return 0;var s=(t.x-e.x)/n.x,u=e.y+s*n.y;return t.y===u?0:t.y<u?-1:1}},{key:"getIntersection",value:function(t){var e=this.bbox(),r=t.bbox(),n=g(e,r);if(null===n)return null;var i=this.leftSE.point,o=this.rightSE.point,s=t.leftSE.point,u=t.rightSE.point,l=y(e,s)&&0===this.comparePoint(s),h=y(r,i)&&0===t.comparePoint(i),f=y(e,u)&&0===this.comparePoint(u),a=y(r,o)&&0===t.comparePoint(o);if(h&&l)return a&&!f?o:!a&&f?u:null;if(h)return f&&i.x===u.x&&i.y===u.y?null:i;if(l)return a&&o.x===s.x&&o.y===s.y?null:s;if(a&&f)return null;if(a)return o;if(f)return u;var p=function(t,e,r,n){if(0===e.x)return I(r,n,t.x);if(0===n.x)return I(t,e,r.x);if(0===e.y)return R(r,n,t.y);if(0===n.y)return R(t,e,r.y);var i=E(e,n);if(0==i)return null;var o={x:r.x-t.x,y:r.y-t.y},s=E(o,e)/i,u=E(o,n)/i;return{x:(t.x+u*e.x+(r.x+s*n.x))/2,y:(t.y+u*e.y+(r.y+s*n.y))/2}}(i,this.vector(),s,t.vector());return null===p?null:y(n,p)?d.round(p.x,p.y):null}},{key:"split",value:function(t){var r=[],n=void 0!==t.events,i=new P(t,!0),o=new P(t,!1),s=this.rightSE;this.replaceRightSE(o),r.push(o),r.push(i);var u=new e(i,s,this.rings.slice(),this.windings.slice());return P.comparePoints(u.leftSE.point,u.rightSE.point)>0&&u.swapEvents(),P.comparePoints(this.leftSE.point,this.rightSE.point)>0&&this.swapEvents(),n&&(i.checkForConsuming(),o.checkForConsuming()),r}},{key:"swapEvents",value:function(){var t=this.rightSE;this.rightSE=this.leftSE,this.leftSE=t,this.leftSE.isLeft=!0,this.rightSE.isLeft=!1;for(var e=0,r=this.windings.length;e<r;e++)this.windings[e]*=-1}},{key:"consume",value:function(t){for(var r=this,n=t;r.consumedBy;)r=r.consumedBy;for(;n.consumedBy;)n=n.consumedBy;var i=e.compare(r,n);if(0!==i){if(i>0){var o=r;r=n,n=o}if(r.prev===n){var s=r;r=n,n=s}for(var u=0,l=n.rings.length;u<l;u++){var h=n.rings[u],f=n.windings[u],a=r.rings.indexOf(h);-1===a?(r.rings.push(h),r.windings.push(f)):r.windings[a]+=f}n.rings=null,n.windings=null,n.consumedBy=r,n.leftSE.consumedBy=r.leftSE,n.rightSE.consumedBy=r.rightSE}}},{key:"prevInResult",value:function(){return void 0!==this._prevInResult||(this.prev?this.prev.isInResult()?this._prevInResult=this.prev:this._prevInResult=this.prev.prevInResult():this._prevInResult=null),this._prevInResult}},{key:"beforeState",value:function(){if(void 0!==this._beforeState)return this._beforeState;if(this.prev){var t=this.prev.consumedBy||this.prev;this._beforeState=t.afterState()}else this._beforeState={rings:[],windings:[],multiPolys:[]};return this._beforeState}},{key:"afterState",value:function(){if(void 0!==this._afterState)return this._afterState;var t=this.beforeState();this._afterState={rings:t.rings.slice(0),windings:t.windings.slice(0),multiPolys:[]};for(var e=this._afterState.rings,r=this._afterState.windings,n=this._afterState.multiPolys,i=0,o=this.rings.length;i<o;i++){var s=this.rings[i],u=this.windings[i],l=e.indexOf(s);-1===l?(e.push(s),r.push(u)):r[l]+=u}for(var h=[],f=[],a=0,p=e.length;a<p;a++)if(0!==r[a]){var y=e[a],g=y.poly;if(-1===f.indexOf(g))if(y.isExterior)h.push(g);else{-1===f.indexOf(g)&&f.push(g);var v=h.indexOf(y.poly);-1!==v&&h.splice(v,1)}}for(var c=0,x=h.length;c<x;c++){var b=h[c].multiPoly;-1===n.indexOf(b)&&n.push(b)}return this._afterState}},{key:"isInResult",value:function(){if(this.consumedBy)return!1;if(void 0!==this._isInResult)return this._isInResult;var t=this.beforeState().multiPolys,e=this.afterState().multiPolys;switch(F.type){case"union":var r=0===t.length,n=0===e.length;this._isInResult=r!==n;break;case"intersection":var i,o;t.length<e.length?(i=t.length,o=e.length):(i=e.length,o=t.length),this._isInResult=o===F.numMultiPolys&&i<o;break;case"xor":var s=Math.abs(t.length-e.length);this._isInResult=s%2==1;break;case"difference":var u=function(t){return 1===t.length&&t[0].isSubject};this._isInResult=u(t)!==u(e);break;default:throw new Error("Unrecognized operation type found ".concat(F.type))}return this._isInResult}}],[{key:"fromRing",value:function(t,r,n){var i,o,s,u=P.comparePoints(t,r);if(u<0)i=t,o=r,s=1;else{if(!(u>0))throw new Error("Tried to create degenerate segment at [".concat(t.x,", ").concat(t.y,"]"));i=r,o=t,s=-1}return new e(new P(i,!0),new P(o,!1),[n],[s])}}]),e}(),A=function(){function e(r,n,i){if(t(this,e),!Array.isArray(r)||0===r.length)throw new Error("Input geometry is not a valid Polygon or MultiPolygon");if(this.poly=n,this.isExterior=i,this.segments=[],"number"!=typeof r[0][0]||"number"!=typeof r[0][1])throw new Error("Input geometry is not a valid Polygon or MultiPolygon");var o=d.round(r[0][0],r[0][1]);this.bbox={ll:{x:o.x,y:o.y},ur:{x:o.x,y:o.y}};for(var s=o,u=1,l=r.length;u<l;u++){if("number"!=typeof r[u][0]||"number"!=typeof r[u][1])throw new Error("Input geometry is not a valid Polygon or MultiPolygon");var h=d.round(r[u][0],r[u][1]);h.x===s.x&&h.y===s.y||(this.segments.push(O.fromRing(s,h,this)),h.x<this.bbox.ll.x&&(this.bbox.ll.x=h.x),h.y<this.bbox.ll.y&&(this.bbox.ll.y=h.y),h.x>this.bbox.ur.x&&(this.bbox.ur.x=h.x),h.y>this.bbox.ur.y&&(this.bbox.ur.y=h.y),s=h)}o.x===s.x&&o.y===s.y||this.segments.push(O.fromRing(s,o,this))}return r(e,[{key:"getSweepEvents",value:function(){for(var t=[],e=0,r=this.segments.length;e<r;e++){var n=this.segments[e];t.push(n.leftSE),t.push(n.rightSE)}return t}}]),e}(),L=function(){function e(r,n){if(t(this,e),!Array.isArray(r))throw new Error("Input geometry is not a valid Polygon or MultiPolygon");this.exteriorRing=new A(r[0],this,!0),this.bbox={ll:{x:this.exteriorRing.bbox.ll.x,y:this.exteriorRing.bbox.ll.y},ur:{x:this.exteriorRing.bbox.ur.x,y:this.exteriorRing.bbox.ur.y}},this.interiorRings=[];for(var i=1,o=r.length;i<o;i++){var s=new A(r[i],this,!1);s.bbox.ll.x<this.bbox.ll.x&&(this.bbox.ll.x=s.bbox.ll.x),s.bbox.ll.y<this.bbox.ll.y&&(this.bbox.ll.y=s.bbox.ll.y),s.bbox.ur.x>this.bbox.ur.x&&(this.bbox.ur.x=s.bbox.ur.x),s.bbox.ur.y>this.bbox.ur.y&&(this.bbox.ur.y=s.bbox.ur.y),this.interiorRings.push(s)}this.multiPoly=n}return r(e,[{key:"getSweepEvents",value:function(){for(var t=this.exteriorRing.getSweepEvents(),e=0,r=this.interiorRings.length;e<r;e++)for(var n=this.interiorRings[e].getSweepEvents(),i=0,o=n.length;i<o;i++)t.push(n[i]);return t}}]),e}(),z=function(){function e(r,n){if(t(this,e),!Array.isArray(r))throw new Error("Input geometry is not a valid Polygon or MultiPolygon");try{"number"==typeof r[0][0][0]&&(r=[r])}catch(t){}this.polys=[],this.bbox={ll:{x:Number.POSITIVE_INFINITY,y:Number.POSITIVE_INFINITY},ur:{x:Number.NEGATIVE_INFINITY,y:Number.NEGATIVE_INFINITY}};for(var i=0,o=r.length;i<o;i++){var s=new L(r[i],this);s.bbox.ll.x<this.bbox.ll.x&&(this.bbox.ll.x=s.bbox.ll.x),s.bbox.ll.y<this.bbox.ll.y&&(this.bbox.ll.y=s.bbox.ll.y),s.bbox.ur.x>this.bbox.ur.x&&(this.bbox.ur.x=s.bbox.ur.x),s.bbox.ur.y>this.bbox.ur.y&&(this.bbox.ur.y=s.bbox.ur.y),this.polys.push(s)}this.isSubject=n}return r(e,[{key:"getSweepEvents",value:function(){for(var t=[],e=0,r=this.polys.length;e<r;e++)for(var n=this.polys[e].getSweepEvents(),i=0,o=n.length;i<o;i++)t.push(n[i]);return t}}]),e}(),B=function(){function e(r){t(this,e),this.events=r;for(var n=0,i=r.length;n<i;n++)r[n].segment.ringOut=this;this.poly=null}return r(e,null,[{key:"factory",value:function(t){for(var r=[],n=0,i=t.length;n<i;n++){var o=t[n];if(o.isInResult()&&!o.ringOut){for(var s=null,u=o.leftSE,l=o.rightSE,h=[u],f=u.point,a=[];s=u,u=l,h.push(u),u.point!==f;)for(;;){var p=u.getAvailableLinkedEvents();if(0===p.length){var y=h[0].point,g=h[h.length-1].point;throw new Error("Unable to complete output ring starting at [".concat(y.x,",")+" ".concat(y.y,"]. Last matching segment found ends at")+" [".concat(g.x,", ").concat(g.y,"]."))}if(1===p.length){l=p[0].otherSE;break}for(var v=null,c=0,x=a.length;c<x;c++)if(a[c].point===u.point){v=c;break}if(null===v){a.push({index:h.length,point:u.point});var b=u.getLeftmostComparator(s);l=p.sort(b)[0].otherSE;break}var m=a.splice(v)[0],d=h.splice(m.index);d.unshift(d[0].otherSE),r.push(new e(d.reverse()))}r.push(new e(h))}}return r}}]),r(e,[{key:"getGeom",value:function(){for(var t=this.events[0].point,e=[t],r=1,n=this.events.length-1;r<n;r++){var i=this.events[r].point,o=this.events[r+1].point;0!==_(i,t,o)&&(e.push(i),t=i)}if(1===e.length)return null;var s=e[0],u=e[1];0===_(s,t,u)&&e.shift(),e.push(e[0]);for(var l=this.isExteriorRing()?1:-1,h=this.isExteriorRing()?0:e.length-1,f=this.isExteriorRing()?e.length:-1,a=[],p=h;p!=f;p+=l)a.push([e[p].x,e[p].y]);return a}},{key:"isExteriorRing",value:function(){if(void 0===this._isExteriorRing){var t=this.enclosingRing();this._isExteriorRing=!t||!t.isExteriorRing()}return this._isExteriorRing}},{key:"enclosingRing",value:function(){return void 0===this._enclosingRing&&(this._enclosingRing=this._calcEnclosingRing()),this._enclosingRing}},{key:"_calcEnclosingRing",value:function(){for(var t=this.events[0],e=1,r=this.events.length;e<r;e++){var n=this.events[e];P.compare(t,n)>0&&(t=n)}for(var i=t.segment.prevInResult(),o=i?i.prevInResult():null;;){if(!i)return null;if(!o)return i.ringOut;if(o.ringOut!==i.ringOut)return o.ringOut.enclosingRing()!==i.ringOut?i.ringOut:i.ringOut.enclosingRing();i=o.prevInResult(),o=i?i.prevInResult():null}}}]),e}(),M=function(){function e(r){t(this,e),this.exteriorRing=r,r.poly=this,this.interiorRings=[]}return r(e,[{key:"addInterior",value:function(t){this.interiorRings.push(t),t.poly=this}},{key:"getGeom",value:function(){var t=[this.exteriorRing.getGeom()];if(null===t[0])return null;for(var e=0,r=this.interiorRings.length;e<r;e++){var n=this.interiorRings[e].getGeom();null!==n&&t.push(n)}return t}}]),e}(),G=function(){function e(r){t(this,e),this.rings=r,this.polys=this._composePolys(r)}return r(e,[{key:"getGeom",value:function(){for(var t=[],e=0,r=this.polys.length;e<r;e++){var n=this.polys[e].getGeom();null!==n&&t.push(n)}return t}},{key:"_composePolys",value:function(t){for(var e=[],r=0,n=t.length;r<n;r++){var i=t[r];if(!i.poly)if(i.isExteriorRing())e.push(new M(i));else{var o=i.enclosingRing();o.poly||e.push(new M(o)),o.poly.addInterior(i)}}return e}}]),e}(),T=function(){function e(r){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:O.compare;t(this,e),this.queue=r,this.tree=new h(n),this.segments=[]}return r(e,[{key:"process",value:function(t){var e=t.segment,r=[];if(t.consumedBy)return t.isLeft?this.queue.remove(t.otherSE):this.tree.remove(e),r;var n=t.isLeft?this.tree.insert(e):this.tree.find(e);if(!n)throw new Error("Unable to find segment #".concat(e.id," ")+"[".concat(e.leftSE.point.x,", ").concat(e.leftSE.point.y,"] -> ")+"[".concat(e.rightSE.point.x,", ").concat(e.rightSE.point.y,"] ")+"in SweepLine tree. Please submit a bug report.");for(var i=n,o=n,s=void 0,u=void 0;void 0===s;)null===(i=this.tree.prev(i))?s=null:void 0===i.key.consumedBy&&(s=i.key);for(;void 0===u;)null===(o=this.tree.next(o))?u=null:void 0===o.key.consumedBy&&(u=o.key);if(t.isLeft){var l=null;if(s){var h=s.getIntersection(e);if(null!==h&&(e.isAnEndpoint(h)||(l=h),!s.isAnEndpoint(h)))for(var f=this._splitSafely(s,h),a=0,p=f.length;a<p;a++)r.push(f[a])}var y=null;if(u){var g=u.getIntersection(e);if(null!==g&&(e.isAnEndpoint(g)||(y=g),!u.isAnEndpoint(g)))for(var v=this._splitSafely(u,g),c=0,x=v.length;c<x;c++)r.push(v[c])}if(null!==l||null!==y){var b=null;if(null===l)b=y;else if(null===y)b=l;else{b=P.comparePoints(l,y)<=0?l:y}this.queue.remove(e.rightSE),r.push(e.rightSE);for(var m=e.split(b),d=0,E=m.length;d<E;d++)r.push(m[d])}r.length>0?(this.tree.remove(e),r.push(t)):(this.segments.push(e),e.prev=s)}else{if(s&&u){var S=s.getIntersection(u);if(null!==S){if(!s.isAnEndpoint(S))for(var _=this._splitSafely(s,S),k=0,w=_.length;k<w;k++)r.push(_[k]);if(!u.isAnEndpoint(S))for(var R=this._splitSafely(u,S),I=0,N=R.length;I<N;I++)r.push(R[I])}}this.tree.remove(e)}return r}},{key:"_splitSafely",value:function(t,e){this.tree.remove(t);var r=t.rightSE;this.queue.remove(r);var n=t.split(e);return n.push(r),void 0===t.consumedBy&&this.tree.insert(t),n}}]),e}(),C="undefined"!=typeof process&&process.env.POLYGON_CLIPPING_MAX_QUEUE_SIZE||1e6,q="undefined"!=typeof process&&process.env.POLYGON_CLIPPING_MAX_SWEEPLINE_SEGMENTS||1e6,F=new(function(){function e(){t(this,e)}return r(e,[{key:"run",value:function(t,e,r){F.type=t,d.reset();for(var n=[new z(e,!0)],i=0,o=r.length;i<o;i++)n.push(new z(r[i],!1));if(F.numMultiPolys=n.length,"difference"===F.type)for(var s=n[0],u=1;u<n.length;)null!==g(n[u].bbox,s.bbox)?u++:n.splice(u,1);if("intersection"===F.type)for(var l=0,f=n.length;l<f;l++)for(var a=n[l],p=l+1,y=n.length;p<y;p++)if(null===g(a.bbox,n[p].bbox))return[];for(var v=new h(P.compare),c=0,x=n.length;c<x;c++)for(var b=n[c].getSweepEvents(),m=0,E=b.length;m<E;m++)if(v.insert(b[m]),v.size>C)throw new Error("Infinite loop when putting segment endpoints in a priority queue (queue size too big). Please file a bug report.");for(var S=new T(v),_=v.size,k=v.pop();k;){var w=k.key;if(v.size===_){var R=w.segment;throw new Error("Unable to pop() ".concat(w.isLeft?"left":"right"," SweepEvent ")+"[".concat(w.point.x,", ").concat(w.point.y,"] from segment #").concat(R.id," ")+"[".concat(R.leftSE.point.x,", ").concat(R.leftSE.point.y,"] -> ")+"[".concat(R.rightSE.point.x,", ").concat(R.rightSE.point.y,"] from queue. ")+"Please file a bug report.")}if(v.size>C)throw new Error("Infinite loop when passing sweep line over endpoints (queue size too big). Please file a bug report.");if(S.segments.length>q)throw new Error("Infinite loop when passing sweep line over endpoints (too many sweep line segments). Please file a bug report.");for(var I=S.process(w),N=0,O=I.length;N<O;N++){var A=I[N];void 0===A.consumedBy&&v.insert(A)}_=v.size,k=v.pop()}d.reset();var L=B.factory(S.segments);return new G(L).getGeom()}}]),e}());return{union:function(t){for(var e=arguments.length,r=new Array(e>1?e-1:0),n=1;n<e;n++)r[n-1]=arguments[n];return F.run("union",t,r)},intersection:function(t){for(var e=arguments.length,r=new Array(e>1?e-1:0),n=1;n<e;n++)r[n-1]=arguments[n];return F.run("intersection",t,r)},xor:function(t){for(var e=arguments.length,r=new Array(e>1?e-1:0),n=1;n<e;n++)r[n-1]=arguments[n];return F.run("xor",t,r)},difference:function(t){for(var e=arguments.length,r=new Array(e>1?e-1:0),n=1;n<e;n++)r[n-1]=arguments[n];return F.run("difference",t,r)}}}));
10
+ //# sourceMappingURL=polygon-clipping.umd.min.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"polygon-clipping.umd.min.js","sources":["../src/bbox.js","../src/flp.js","../src/rounder.js","../src/vector.js","../src/sweep-event.js","../src/segment.js","../src/geom-in.js","../src/geom-out.js","../src/sweep-line.js","../src/operation.js","../src/index.js"],"sourcesContent":["/**\n * A bounding box has the format:\n *\n * { ll: { x: xmin, y: ymin }, ur: { x: xmax, y: ymax } }\n *\n */\n\nexport const isInBbox = (bbox, point) => {\n return (\n (bbox.ll.x <= point.x) &&\n (point.x <= bbox.ur.x) &&\n (bbox.ll.y <= point.y) &&\n (point.y <= bbox.ur.y)\n )\n}\n\n/* Returns either null, or a bbox (aka an ordered pair of points)\n * If there is only one point of overlap, a bbox with identical points\n * will be returned */\nexport const getBboxOverlap = (b1, b2) => {\n // check if the bboxes overlap at all\n if (\n b2.ur.x < b1.ll.x ||\n b1.ur.x < b2.ll.x ||\n b2.ur.y < b1.ll.y ||\n b1.ur.y < b2.ll.y\n ) return null\n\n // find the middle two X values\n const lowerX = b1.ll.x < b2.ll.x ? b2.ll.x : b1.ll.x\n const upperX = b1.ur.x < b2.ur.x ? b1.ur.x : b2.ur.x\n\n // find the middle two Y values\n const lowerY = b1.ll.y < b2.ll.y ? b2.ll.y : b1.ll.y\n const upperY = b1.ur.y < b2.ur.y ? b1.ur.y : b2.ur.y\n\n // put those middle values together to get the overlap\n return { ll: { x: lowerX, y: lowerY }, ur: { x: upperX, y: upperY } }\n}\n","/* Javascript doesn't do integer math. Everything is\n * floating point with percision Number.EPSILON.\n *\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Number/EPSILON\n */\n\nlet epsilon = Number.EPSILON\n\n// IE Polyfill\nif (epsilon === undefined) epsilon = Math.pow(2, -52)\n\nconst EPSILON_SQ = epsilon * epsilon\n\n/* FLP comparator */\nexport const cmp = (a, b) => {\n // check if they're both 0\n if (-epsilon < a && a < epsilon) {\n if (-epsilon < b && b < epsilon) {\n return 0\n }\n }\n\n // check if they're flp equal\n const ab = a - b\n if (ab * ab < EPSILON_SQ * a * b) {\n return 0\n }\n\n // normal comparison\n return a < b ? -1 : 1\n}\n","import { cmp } from './flp'\nimport SplayTree from 'splaytree'\n\n/**\n * This class rounds incoming values sufficiently so that\n * floating points problems are, for the most part, avoided.\n *\n * Incoming points are have their x & y values tested against\n * all previously seen x & y values. If either is 'too close'\n * to a previously seen value, it's value is 'snapped' to the\n * previously seen value.\n *\n * All points should be rounded by this class before being\n * stored in any data structures in the rest of this algorithm.\n */\n\nclass PtRounder {\n constructor () {\n this.reset()\n }\n\n reset () {\n this.xRounder = new CoordRounder()\n this.yRounder = new CoordRounder()\n }\n\n round (x, y) {\n return {\n x: this.xRounder.round(x),\n y: this.yRounder.round(y),\n }\n }\n}\n\nclass CoordRounder {\n constructor () {\n this.tree = new SplayTree()\n // preseed with 0 so we don't end up with values < Number.EPSILON\n this.round(0)\n }\n\n // Note: this can rounds input values backwards or forwards.\n // You might ask, why not restrict this to just rounding\n // forwards? Wouldn't that allow left endpoints to always\n // remain left endpoints during splitting (never change to\n // right). No - it wouldn't, because we snap intersections\n // to endpoints (to establish independence from the segment\n // angle for t-intersections).\n round (coord) {\n const node = this.tree.add(coord)\n\n const prevNode = this.tree.prev(node)\n if (prevNode !== null && cmp(node.key, prevNode.key) === 0) {\n this.tree.remove(coord)\n return prevNode.key\n }\n\n const nextNode = this.tree.next(node)\n if (nextNode !== null && cmp(node.key, nextNode.key) === 0) {\n this.tree.remove(coord)\n return nextNode.key\n }\n\n return coord\n }\n}\n\n// singleton available by import\nconst rounder = new PtRounder()\n\nexport default rounder\n","import { cmp } from './flp'\n\n/* Cross Product of two vectors with first point at origin */\nexport const crossProduct = (a, b) => a.x * b.y - a.y * b.x\n\n/* Dot Product of two vectors with first point at origin */\nexport const dotProduct = (a, b) => a.x * b.x + a.y * b.y\n\n/* Comparator for two vectors with same starting point */\nexport const compareVectorAngles = (basePt, endPt1, endPt2) => {\n const v1 = { x: endPt1.x - basePt.x, y: endPt1.y - basePt.y }\n const v2 = { x: endPt2.x - basePt.x, y: endPt2.y - basePt.y }\n const kross = crossProduct(v1, v2)\n return cmp(kross, 0)\n}\n\nexport const length = v => Math.sqrt(dotProduct(v, v))\n\n/* Get the sine of the angle from pShared -> pAngle to pShaed -> pBase */\nexport const sineOfAngle = (pShared, pBase, pAngle) => {\n const vBase = { x: pBase.x - pShared.x, y: pBase.y - pShared.y }\n const vAngle = { x: pAngle.x - pShared.x, y: pAngle.y - pShared.y }\n return crossProduct(vAngle, vBase) / length(vAngle) / length(vBase)\n}\n\n/* Get the cosine of the angle from pShared -> pAngle to pShaed -> pBase */\nexport const cosineOfAngle = (pShared, pBase, pAngle) => {\n const vBase = { x: pBase.x - pShared.x, y: pBase.y - pShared.y }\n const vAngle = { x: pAngle.x - pShared.x, y: pAngle.y - pShared.y }\n return dotProduct(vAngle, vBase) / length(vAngle) / length(vBase)\n}\n\n/* Get the closest point on an line (defined by two points)\n * to another point. */\nexport const closestPoint = (ptA1, ptA2, ptB) => {\n if (ptA1.x === ptA2.x) return { x: ptA1.x, y: ptB.y } // vertical vector\n if (ptA1.y === ptA2.y) return { x: ptB.x, y: ptA1.y } // horizontal vector\n\n // determinne which point is further away\n // we use the further point as our base in the calculation, so that the\n // vectors are more parallel, providing more accurate dot product\n const v1 = { x: ptB.x - ptA1.x, y: ptB.y - ptA1.y }\n const v2 = { x: ptB.x - ptA2.x, y: ptB.y - ptA2.y }\n let vFar, vA, farPt\n if (dotProduct(v1, v1) > dotProduct(v2, v2)) {\n vFar = v1\n vA = { x: ptA2.x - ptA1.x, y: ptA2.y - ptA1.y }\n farPt = ptA1\n }\n else {\n vFar = v2\n vA = { x: ptA1.x - ptA2.x, y: ptA1.y - ptA2.y }\n farPt = ptA2\n }\n\n // manually test if the current point can be considered to be on the line\n // If the X coordinate was on the line, would the Y coordinate be as well?\n const xDist = (ptB.x - farPt.x) / vA.x\n if (ptB.y === farPt.y + xDist * vA.y) return ptB\n\n // If the Y coordinate was on the line, would the X coordinate be as well?\n const yDist = (ptB.y - farPt.y) / vA.y\n if (ptB.x === farPt.x + yDist * vA.x) return ptB\n\n // current point isn't exactly on line, so return closest point\n const dist = dotProduct(vA, vFar) / dotProduct(vA, vA)\n return { x: farPt.x + dist * vA.x, y: farPt.y + dist * vA.y }\n}\n\n/* Get the x coordinate where the given line (defined by a point and vector)\n * crosses the horizontal line with the given y coordiante.\n * In the case of parrallel lines (including overlapping ones) returns null. */\nexport const horizontalIntersection = (pt, v, y) => {\n if (v.y === 0) return null\n return { x: pt.x + v.x / v.y * ( y - pt.y ), y: y }\n}\n\n/* Get the y coordinate where the given line (defined by a point and vector)\n * crosses the vertical line with the given x coordiante.\n * In the case of parrallel lines (including overlapping ones) returns null. */\nexport const verticalIntersection = (pt, v, x) => {\n if (v.x === 0) return null\n return { x: x, y: pt.y + v.y / v.x * ( x - pt.x ) }\n}\n\n/* Get the intersection of two lines, each defined by a base point and a vector.\n * In the case of parrallel lines (including overlapping ones) returns null. */\nexport const intersection = (pt1, v1, pt2, v2) => {\n // take some shortcuts for vertical and horizontal lines\n // this also ensures we don't calculate an intersection and then discover\n // it's actually outside the bounding box of the line\n if (v1.x === 0) return verticalIntersection(pt2, v2, pt1.x)\n if (v2.x === 0) return verticalIntersection(pt1, v1, pt2.x)\n if (v1.y === 0) return horizontalIntersection(pt2, v2, pt1.y)\n if (v2.y === 0) return horizontalIntersection(pt1, v1, pt2.y)\n\n // General case for non-overlapping segments.\n // This algorithm is based on Schneider and Eberly.\n // http://www.cimec.org.ar/~ncalvo/Schneider_Eberly.pdf - pg 244\n\n const kross = crossProduct(v1, v2)\n if (kross == 0) return null\n\n const ve = { x: pt2.x - pt1.x, y: pt2.y - pt1.y }\n const d1 = crossProduct(ve, v1) / kross\n const d2 = crossProduct(ve, v2) / kross\n\n // take the average of the two calculations to minimize rounding error\n const x1 = pt1.x + d2 * v1.x, x2 = pt2.x + d1 * v2.x\n const y1 = pt1.y + d2 * v1.y, y2 = pt2.y + d1 * v2.y\n const x = (x1 + x2) / 2\n const y = (y1 + y2) / 2\n return { x: x, y: y }\n}\n\n/* Given a vector, return one that is perpendicular */\nexport const perpendicular = (v) => {\n return { x: -v.y, y: v.x }\n}\n","import Segment from './segment'\nimport { cosineOfAngle, sineOfAngle } from './vector'\n\nexport default class SweepEvent {\n\n // for ordering sweep events in the sweep event queue\n static compare (a, b) {\n\n // favor event with a point that the sweep line hits first\n const ptCmp = SweepEvent.comparePoints(a.point, b.point)\n if (ptCmp !== 0) return ptCmp\n\n // the points are the same, so link them if needed\n if (a.point !== b.point) a.link(b)\n\n // favor right events over left\n if (a.isLeft !== b.isLeft) return a.isLeft ? 1 : -1\n\n // we have two matching left or right endpoints\n // ordering of this case is the same as for their segments\n return Segment.compare(a.segment, b.segment)\n }\n\n // for ordering points in sweep line order\n static comparePoints (aPt, bPt) {\n if (aPt.x < bPt.x) return -1\n if (aPt.x > bPt.x) return 1\n\n if (aPt.y < bPt.y) return -1\n if (aPt.y > bPt.y) return 1\n\n return 0\n }\n\n // Warning: 'point' input will be modified and re-used (for performance)\n constructor (point, isLeft) {\n if (point.events === undefined) point.events = [this]\n else point.events.push(this)\n this.point = point\n this.isLeft = isLeft\n // this.segment, this.otherSE set by factory\n }\n\n link (other) {\n if (other.point === this.point) {\n throw new Error('Tried to link already linked events')\n }\n const otherEvents = other.point.events\n for (let i = 0, iMax = otherEvents.length; i < iMax; i++) {\n const evt = otherEvents[i]\n this.point.events.push(evt)\n evt.point = this.point\n }\n this.checkForConsuming()\n }\n\n /* Do a pass over our linked events and check to see if any pair\n * of segments match, and should be consumed. */\n checkForConsuming () {\n // FIXME: The loops in this method run O(n^2) => no good.\n // Maintain little ordered sweep event trees?\n // Can we maintaining an ordering that avoids the need\n // for the re-sorting with getLeftmostComparator in geom-out?\n\n // Compare each pair of events to see if other events also match\n const numEvents = this.point.events.length\n for (let i = 0; i < numEvents; i++) {\n const evt1 = this.point.events[i]\n if (evt1.segment.consumedBy !== undefined) continue\n for (let j = i + 1; j < numEvents; j++) {\n const evt2 = this.point.events[j]\n if (evt2.consumedBy !== undefined) continue\n if (evt1.otherSE.point.events !== evt2.otherSE.point.events) continue\n evt1.segment.consume(evt2.segment)\n }\n }\n }\n\n getAvailableLinkedEvents () {\n // point.events is always of length 2 or greater\n const events = []\n for (let i = 0, iMax = this.point.events.length; i < iMax; i++) {\n const evt = this.point.events[i]\n if (evt !== this && !evt.segment.ringOut && evt.segment.isInResult()) {\n events.push(evt)\n }\n }\n return events\n }\n\n /**\n * Returns a comparator function for sorting linked events that will\n * favor the event that will give us the smallest left-side angle.\n * All ring construction starts as low as possible heading to the right,\n * so by always turning left as sharp as possible we'll get polygons\n * without uncessary loops & holes.\n *\n * The comparator function has a compute cache such that it avoids\n * re-computing already-computed values.\n */\n getLeftmostComparator (baseEvent) {\n const cache = new Map()\n\n const fillCache = linkedEvent => {\n const nextEvent = linkedEvent.otherSE\n cache.set(linkedEvent, {\n sine: sineOfAngle(this.point, baseEvent.point, nextEvent.point),\n cosine: cosineOfAngle(this.point, baseEvent.point, nextEvent.point)\n })\n }\n\n return (a, b) => {\n if (!cache.has(a)) fillCache(a)\n if (!cache.has(b)) fillCache(b)\n\n const { sine: asine, cosine: acosine } = cache.get(a)\n const { sine: bsine, cosine: bcosine } = cache.get(b)\n\n // both on or above x-axis\n if (asine >= 0 && bsine >= 0) {\n if (acosine < bcosine) return 1\n if (acosine > bcosine) return -1\n return 0\n }\n\n // both below x-axis\n if (asine < 0 && bsine < 0) {\n if (acosine < bcosine) return -1\n if (acosine > bcosine) return 1\n return 0\n }\n\n // one above x-axis, one below\n if (bsine < asine) return -1\n if (bsine > asine) return 1\n return 0\n }\n }\n}\n","import operation from './operation'\nimport SweepEvent from './sweep-event'\nimport { isInBbox, getBboxOverlap } from './bbox'\nimport { intersection } from './vector'\nimport rounder from './rounder'\n\n// Give segments unique ID's to get consistent sorting of\n// segments and sweep events when all else is identical\nlet segmentId = 0\n\nexport default class Segment {\n\n /* This compare() function is for ordering segments in the sweep\n * line tree, and does so according to the following criteria:\n *\n * Consider the vertical line that lies an infinestimal step to the\n * right of the right-more of the two left endpoints of the input\n * segments. Imagine slowly moving a point up from negative infinity\n * in the increasing y direction. Which of the two segments will that\n * point intersect first? That segment comes 'before' the other one.\n *\n * If neither segment would be intersected by such a line, (if one\n * or more of the segments are vertical) then the line to be considered\n * is directly on the right-more of the two left inputs.\n */\n static compare (a, b) {\n\n const alx = a.leftSE.point.x\n const blx = b.leftSE.point.x\n const arx = a.rightSE.point.x\n const brx = b.rightSE.point.x\n\n // check if they're even in the same vertical plane\n if (brx < alx) return 1\n if (arx < blx) return -1\n\n const aly = a.leftSE.point.y\n const bly = b.leftSE.point.y\n const ary = a.rightSE.point.y\n const bry = b.rightSE.point.y\n\n // is left endpoint of segment B the right-more?\n if (alx < blx) {\n // are the two segments in the same horizontal plane?\n if (bly < aly && bly < ary) return 1\n if (bly > aly && bly > ary) return -1\n\n // is the B left endpoint colinear to segment A?\n const aCmpBLeft = a.comparePoint(b.leftSE.point)\n if (aCmpBLeft < 0) return 1\n if (aCmpBLeft > 0) return -1\n\n // is the A right endpoint colinear to segment B ?\n const bCmpARight = b.comparePoint(a.rightSE.point)\n if (bCmpARight !== 0) return bCmpARight\n\n // colinear segments, consider the one with left-more\n // left endpoint to be first (arbitrary?)\n return -1\n }\n\n // is left endpoint of segment A the right-more?\n if (alx > blx) {\n if (aly < bly && aly < bry) return -1\n if (aly > bly && aly > bry) return 1\n\n // is the A left endpoint colinear to segment B?\n const bCmpALeft = b.comparePoint(a.leftSE.point)\n if (bCmpALeft !== 0) return bCmpALeft\n\n // is the B right endpoint colinear to segment A?\n const aCmpBRight = a.comparePoint(b.rightSE.point)\n if (aCmpBRight < 0) return 1\n if (aCmpBRight > 0) return -1\n\n // colinear segments, consider the one with left-more\n // left endpoint to be first (arbitrary?)\n return 1\n }\n\n // if we get here, the two left endpoints are in the same\n // vertical plane, ie alx === blx\n\n // consider the lower left-endpoint to come first\n if (aly < bly) return -1\n if (aly > bly) return 1\n\n // left endpoints are identical\n // check for colinearity by using the left-more right endpoint\n\n // is the A right endpoint more left-more?\n if (arx < brx) {\n const bCmpARight = b.comparePoint(a.rightSE.point)\n if (bCmpARight !== 0) return bCmpARight\n }\n\n // is the B right endpoint more left-more?\n if (arx > brx) {\n const aCmpBRight = a.comparePoint(b.rightSE.point)\n if (aCmpBRight < 0) return 1\n if (aCmpBRight > 0) return -1\n }\n\n if (arx !== brx) {\n // are these two [almost] vertical segments with opposite orientation?\n // if so, the one with the lower right endpoint comes first\n const ay = ary - aly\n const ax = arx - alx\n const by = bry - bly\n const bx = brx - blx\n if (ay > ax && by < bx) return 1\n if (ay < ax && by > bx) return -1\n }\n\n // we have colinear segments with matching orientation\n // consider the one with more left-more right endpoint to be first\n if (arx > brx) return 1\n if (arx < brx) return -1\n\n // if we get here, two two right endpoints are in the same\n // vertical plane, ie arx === brx\n\n // consider the lower right-endpoint to come first\n if (ary < bry) return -1\n if (ary > bry) return 1\n\n // right endpoints identical as well, so the segments are idential\n // fall back on creation order as consistent tie-breaker\n if (a.id < b.id) return -1\n if (a.id > b.id) return 1\n\n // identical segment, ie a === b\n return 0\n }\n\n /* Warning: a reference to ringWindings input will be stored,\n * and possibly will be later modified */\n constructor (leftSE, rightSE, rings, windings) {\n this.id = ++segmentId\n this.leftSE = leftSE\n leftSE.segment = this\n leftSE.otherSE = rightSE\n this.rightSE = rightSE\n rightSE.segment = this\n rightSE.otherSE = leftSE\n this.rings = rings\n this.windings = windings\n // left unset for performance, set later in algorithm\n // this.ringOut, this.consumedBy, this.prev\n }\n\n static fromRing(pt1, pt2, ring) {\n let leftPt, rightPt, winding\n\n // ordering the two points according to sweep line ordering\n const cmpPts = SweepEvent.comparePoints(pt1, pt2)\n if (cmpPts < 0) {\n leftPt = pt1\n rightPt = pt2\n winding = 1\n }\n else if (cmpPts > 0) {\n leftPt = pt2\n rightPt = pt1\n winding = -1\n }\n else throw new Error(\n `Tried to create degenerate segment at [${pt1.x}, ${pt1.y}]`\n )\n\n const leftSE = new SweepEvent(leftPt, true)\n const rightSE = new SweepEvent(rightPt, false)\n return new Segment(leftSE, rightSE, [ring], [winding])\n }\n\n /* When a segment is split, the rightSE is replaced with a new sweep event */\n replaceRightSE (newRightSE) {\n this.rightSE = newRightSE\n this.rightSE.segment = this\n this.rightSE.otherSE = this.leftSE\n this.leftSE.otherSE = this.rightSE\n }\n\n bbox () {\n const y1 = this.leftSE.point.y\n const y2 = this.rightSE.point.y\n return {\n ll: { x: this.leftSE.point.x, y: y1 < y2 ? y1 : y2 },\n ur: { x: this.rightSE.point.x, y: y1 > y2 ? y1 : y2 }\n }\n }\n\n /* A vector from the left point to the right */\n vector () {\n return {\n x: this.rightSE.point.x - this.leftSE.point.x,\n y: this.rightSE.point.y - this.leftSE.point.y\n }\n }\n\n isAnEndpoint (pt) {\n return (\n (pt.x === this.leftSE.point.x && pt.y === this.leftSE.point.y) ||\n (pt.x === this.rightSE.point.x && pt.y === this.rightSE.point.y)\n )\n }\n\n /* Compare this segment with a point.\n *\n * A point P is considered to be colinear to a segment if there\n * exists a distance D such that if we travel along the segment\n * from one * endpoint towards the other a distance D, we find\n * ourselves at point P.\n *\n * Return value indicates:\n *\n * 1: point lies above the segment (to the left of vertical)\n * 0: point is colinear to segment\n * -1: point lies below the segment (to the right of vertical)\n */\n comparePoint (point) {\n if (this.isAnEndpoint(point)) return 0\n\n const lPt = this.leftSE.point\n const rPt = this.rightSE.point\n const v = this.vector()\n\n // Exactly vertical segments.\n if (lPt.x === rPt.x) {\n if (point.x === lPt.x) return 0\n return point.x < lPt.x ? 1 : -1\n }\n\n // Nearly vertical segments with an intersection.\n // Check to see where a point on the line with matching Y coordinate is.\n const yDist = (point.y - lPt.y) / v.y\n const xFromYDist = lPt.x + yDist * v.x\n if (point.x === xFromYDist) return 0\n\n // General case.\n // Check to see where a point on the line with matching X coordinate is.\n const xDist = (point.x - lPt.x) / v.x\n const yFromXDist = lPt.y + xDist * v.y\n if (point.y === yFromXDist) return 0\n return point.y < yFromXDist ? -1 : 1\n }\n\n /**\n * Given another segment, returns the first non-trivial intersection\n * between the two segments (in terms of sweep line ordering), if it exists.\n *\n * A 'non-trivial' intersection is one that will cause one or both of the\n * segments to be split(). As such, 'trivial' vs. 'non-trivial' intersection:\n *\n * * endpoint of segA with endpoint of segB --> trivial\n * * endpoint of segA with point along segB --> non-trivial\n * * endpoint of segB with point along segA --> non-trivial\n * * point along segA with point along segB --> non-trivial\n *\n * If no non-trivial intersection exists, return null\n * Else, return null.\n */\n getIntersection (other) {\n // If bboxes don't overlap, there can't be any intersections\n const tBbox = this.bbox()\n const oBbox = other.bbox()\n const bboxOverlap = getBboxOverlap(tBbox, oBbox)\n if (bboxOverlap === null) return null\n\n // We first check to see if the endpoints can be considered intersections.\n // This will 'snap' intersections to endpoints if possible, and will\n // handle cases of colinearity.\n\n const tlp = this.leftSE.point\n const trp = this.rightSE.point\n const olp = other.leftSE.point\n const orp = other.rightSE.point\n\n // does each endpoint touch the other segment?\n // note that we restrict the 'touching' definition to only allow segments\n // to touch endpoints that lie forward from where we are in the sweep line pass\n const touchesOtherLSE = isInBbox(tBbox, olp) && this.comparePoint(olp) === 0\n const touchesThisLSE = isInBbox(oBbox, tlp) && other.comparePoint(tlp) === 0\n const touchesOtherRSE = isInBbox(tBbox, orp) && this.comparePoint(orp) === 0\n const touchesThisRSE = isInBbox(oBbox, trp) && other.comparePoint(trp) === 0\n\n // do left endpoints match?\n if (touchesThisLSE && touchesOtherLSE) {\n // these two cases are for colinear segments with matching left\n // endpoints, and one segment being longer than the other\n if (touchesThisRSE && !touchesOtherRSE) return trp\n if (!touchesThisRSE && touchesOtherRSE) return orp\n // either the two segments match exactly (two trival intersections)\n // or just on their left endpoint (one trivial intersection\n return null\n }\n\n // does this left endpoint matches (other doesn't)\n if (touchesThisLSE) {\n // check for segments that just intersect on opposing endpoints\n if (touchesOtherRSE) {\n if (tlp.x === orp.x && tlp.y === orp.y) return null\n }\n // t-intersection on left endpoint\n return tlp\n }\n\n // does other left endpoint matches (this doesn't)\n if (touchesOtherLSE) {\n // check for segments that just intersect on opposing endpoints\n if (touchesThisRSE) {\n if (trp.x === olp.x && trp.y === olp.y) return null\n }\n // t-intersection on left endpoint\n return olp\n }\n\n // trivial intersection on right endpoints\n if (touchesThisRSE && touchesOtherRSE) return null\n\n // t-intersections on just one right endpoint\n if (touchesThisRSE) return trp\n if (touchesOtherRSE) return orp\n\n // None of our endpoints intersect. Look for a general intersection between\n // infinite lines laid over the segments\n const pt = intersection(tlp, this.vector(), olp, other.vector())\n\n // are the segments parrallel? Note that if they were colinear with overlap,\n // they would have an endpoint intersection and that case was already handled above\n if (pt === null) return null\n\n // is the intersection found between the lines not on the segments?\n if (!isInBbox(bboxOverlap, pt)) return null\n\n // round the the computed point if needed\n return rounder.round(pt.x, pt.y)\n }\n\n /**\n * Split the given segment into multiple segments on the given points.\n * * Each existing segment will retain its leftSE and a new rightSE will be\n * generated for it.\n * * A new segment will be generated which will adopt the original segment's\n * rightSE, and a new leftSE will be generated for it.\n * * If there are more than two points given to split on, new segments\n * in the middle will be generated with new leftSE and rightSE's.\n * * An array of the newly generated SweepEvents will be returned.\n *\n * Warning: input array of points is modified\n */\n split (point) {\n const newEvents = []\n const alreadyLinked = point.events !== undefined\n\n const newLeftSE = new SweepEvent(point, true)\n const newRightSE = new SweepEvent(point, false)\n const oldRightSE = this.rightSE\n this.replaceRightSE(newRightSE)\n newEvents.push(newRightSE)\n newEvents.push(newLeftSE)\n const newSeg = new Segment(\n newLeftSE, oldRightSE, this.rings.slice(), this.windings.slice()\n )\n\n // when splitting a nearly vertical downward-facing segment,\n // sometimes one of the resulting new segments is vertical, in which\n // case its left and right events may need to be swapped\n if (SweepEvent.comparePoints(newSeg.leftSE.point, newSeg.rightSE.point) > 0) {\n newSeg.swapEvents()\n }\n if (SweepEvent.comparePoints(this.leftSE.point, this.rightSE.point) > 0) {\n this.swapEvents()\n }\n\n // in the point we just used to create new sweep events with was already\n // linked to other events, we need to check if either of the affected\n // segments should be consumed\n if (alreadyLinked) {\n newLeftSE.checkForConsuming()\n newRightSE.checkForConsuming()\n }\n\n return newEvents\n }\n\n /* Swap which event is left and right */\n swapEvents () {\n const tmpEvt = this.rightSE\n this.rightSE = this.leftSE\n this.leftSE = tmpEvt\n this.leftSE.isLeft = true\n this.rightSE.isLeft = false\n for (let i = 0, iMax = this.windings.length; i < iMax; i++) {\n this.windings[i] *= -1\n }\n }\n\n /* Consume another segment. We take their rings under our wing\n * and mark them as consumed. Use for perfectly overlapping segments */\n consume (other) {\n let consumer = this\n let consumee = other\n while (consumer.consumedBy) consumer = consumer.consumedBy\n while (consumee.consumedBy) consumee = consumee.consumedBy\n\n const cmp = Segment.compare(consumer, consumee)\n if (cmp === 0) return // already consumed\n // the winner of the consumption is the earlier segment\n // according to sweep line ordering\n if (cmp > 0) {\n const tmp = consumer\n consumer = consumee\n consumee = tmp\n }\n\n // make sure a segment doesn't consume it's prev\n if (consumer.prev === consumee) {\n const tmp = consumer\n consumer = consumee\n consumee = tmp\n }\n\n for (let i = 0, iMax = consumee.rings.length; i < iMax; i++) {\n const ring = consumee.rings[i]\n const winding = consumee.windings[i]\n const index = consumer.rings.indexOf(ring)\n if (index === -1) {\n consumer.rings.push(ring)\n consumer.windings.push(winding)\n }\n else consumer.windings[index] += winding\n }\n consumee.rings = null\n consumee.windings = null\n consumee.consumedBy = consumer\n\n // mark sweep events consumed as to maintain ordering in sweep event queue\n consumee.leftSE.consumedBy = consumer.leftSE\n consumee.rightSE.consumedBy = consumer.rightSE\n }\n\n /* The first segment previous segment chain that is in the result */\n prevInResult () {\n if (this._prevInResult !== undefined) return this._prevInResult\n if (! this.prev) this._prevInResult = null\n else if (this.prev.isInResult()) this._prevInResult = this.prev\n else this._prevInResult = this.prev.prevInResult()\n return this._prevInResult\n }\n\n beforeState() {\n if (this._beforeState !== undefined) return this._beforeState\n if (! this.prev) this._beforeState = {\n rings: [],\n windings: [],\n multiPolys: [],\n }\n else {\n const seg = this.prev.consumedBy || this.prev\n this._beforeState = seg.afterState()\n }\n return this._beforeState\n }\n\n afterState () {\n if (this._afterState !== undefined) return this._afterState\n\n const beforeState = this.beforeState()\n this._afterState = {\n rings: beforeState.rings.slice(0),\n windings: beforeState.windings.slice(0),\n multiPolys: []\n }\n const ringsAfter = this._afterState.rings\n const windingsAfter = this._afterState.windings\n const mpsAfter = this._afterState.multiPolys\n\n // calculate ringsAfter, windingsAfter\n for (let i = 0, iMax = this.rings.length; i < iMax; i++) {\n const ring = this.rings[i]\n const winding = this.windings[i]\n const index = ringsAfter.indexOf(ring)\n if (index === -1) {\n ringsAfter.push(ring)\n windingsAfter.push(winding)\n }\n else windingsAfter[index] += winding\n }\n\n // calcualte polysAfter\n const polysAfter = []\n const polysExclude = []\n for (let i = 0, iMax = ringsAfter.length; i < iMax; i++) {\n if (windingsAfter[i] === 0) continue // non-zero rule\n const ring = ringsAfter[i]\n const poly = ring.poly\n if (polysExclude.indexOf(poly) !== -1) continue\n if (ring.isExterior) polysAfter.push(poly)\n else {\n if (polysExclude.indexOf(poly) === -1) polysExclude.push(poly)\n const index = polysAfter.indexOf(ring.poly)\n if (index !== -1) polysAfter.splice(index, 1)\n }\n }\n\n // calculate multiPolysAfter\n for (let i = 0, iMax = polysAfter.length; i < iMax; i++) {\n const mp = polysAfter[i].multiPoly\n if (mpsAfter.indexOf(mp) === -1) mpsAfter.push(mp)\n }\n\n return this._afterState\n }\n\n /* Is this segment part of the final result? */\n isInResult () {\n // if we've been consumed, we're not in the result\n if (this.consumedBy) return false\n\n if (this._isInResult !== undefined) return this._isInResult\n\n const mpsBefore = this.beforeState().multiPolys\n const mpsAfter = this.afterState().multiPolys\n\n switch (operation.type) {\n case 'union': {\n // UNION - included iff:\n // * On one side of us there is 0 poly interiors AND\n // * On the other side there is 1 or more.\n const noBefores = mpsBefore.length === 0\n const noAfters = mpsAfter.length === 0\n this._isInResult = noBefores !== noAfters\n break\n }\n\n case 'intersection': {\n // INTERSECTION - included iff:\n // * on one side of us all multipolys are rep. with poly interiors AND\n // * on the other side of us, not all multipolys are repsented\n // with poly interiors\n let least\n let most\n if (mpsBefore.length < mpsAfter.length) {\n least = mpsBefore.length\n most = mpsAfter.length\n } else {\n least = mpsAfter.length\n most = mpsBefore.length\n }\n this._isInResult = most === operation.numMultiPolys && least < most\n break\n }\n\n case 'xor': {\n // XOR - included iff:\n // * the difference between the number of multipolys represented\n // with poly interiors on our two sides is an odd number\n const diff = Math.abs(mpsBefore.length - mpsAfter.length)\n this._isInResult = diff % 2 === 1\n break\n }\n\n case 'difference': {\n // DIFFERENCE included iff:\n // * on exactly one side, we have just the subject\n const isJustSubject = mps => mps.length === 1 && mps[0].isSubject\n this._isInResult = isJustSubject(mpsBefore) !== isJustSubject(mpsAfter)\n break\n }\n\n default:\n throw new Error(`Unrecognized operation type found ${operation.type}`)\n }\n\n return this._isInResult\n }\n\n}\n","import rounder from './rounder'\nimport Segment from './segment'\n\nexport class RingIn {\n constructor (geomRing, poly, isExterior) {\n if (!Array.isArray(geomRing) || geomRing.length === 0) {\n throw new Error('Input geometry is not a valid Polygon or MultiPolygon')\n }\n\n this.poly = poly\n this.isExterior = isExterior\n this.segments = []\n\n if (typeof geomRing[0][0] !== 'number' || typeof geomRing[0][1] !== 'number') {\n throw new Error('Input geometry is not a valid Polygon or MultiPolygon')\n }\n\n const firstPoint = rounder.round(geomRing[0][0], geomRing[0][1])\n this.bbox = {\n ll: { x: firstPoint.x, y: firstPoint.y },\n ur: { x: firstPoint.x, y: firstPoint.y },\n }\n\n let prevPoint = firstPoint\n for (let i = 1, iMax = geomRing.length; i < iMax; i++) {\n if (typeof geomRing[i][0] !== 'number' || typeof geomRing[i][1] !== 'number') {\n throw new Error('Input geometry is not a valid Polygon or MultiPolygon')\n }\n let point = rounder.round(geomRing[i][0], geomRing[i][1])\n // skip repeated points\n if (point.x === prevPoint.x && point.y === prevPoint.y) continue\n this.segments.push(Segment.fromRing(prevPoint, point, this))\n if (point.x < this.bbox.ll.x) this.bbox.ll.x = point.x\n if (point.y < this.bbox.ll.y) this.bbox.ll.y = point.y\n if (point.x > this.bbox.ur.x) this.bbox.ur.x = point.x\n if (point.y > this.bbox.ur.y) this.bbox.ur.y = point.y\n prevPoint = point\n }\n // add segment from last to first if last is not the same as first\n if (firstPoint.x !== prevPoint.x || firstPoint.y !== prevPoint.y) {\n this.segments.push(Segment.fromRing(prevPoint, firstPoint, this))\n }\n }\n\n getSweepEvents () {\n const sweepEvents = []\n for (let i = 0, iMax = this.segments.length; i < iMax; i++) {\n const segment = this.segments[i]\n sweepEvents.push(segment.leftSE)\n sweepEvents.push(segment.rightSE)\n }\n return sweepEvents\n }\n}\n\nexport class PolyIn {\n constructor (geomPoly, multiPoly) {\n if (!Array.isArray(geomPoly)) {\n throw new Error('Input geometry is not a valid Polygon or MultiPolygon')\n }\n this.exteriorRing = new RingIn(geomPoly[0], this, true)\n // copy by value\n this.bbox = {\n ll: { x: this.exteriorRing.bbox.ll.x, y: this.exteriorRing.bbox.ll.y },\n ur: { x: this.exteriorRing.bbox.ur.x, y: this.exteriorRing.bbox.ur.y },\n }\n this.interiorRings = []\n for (let i = 1, iMax = geomPoly.length; i < iMax; i++) {\n const ring = new RingIn(geomPoly[i], this, false)\n if (ring.bbox.ll.x < this.bbox.ll.x) this.bbox.ll.x = ring.bbox.ll.x\n if (ring.bbox.ll.y < this.bbox.ll.y) this.bbox.ll.y = ring.bbox.ll.y\n if (ring.bbox.ur.x > this.bbox.ur.x) this.bbox.ur.x = ring.bbox.ur.x\n if (ring.bbox.ur.y > this.bbox.ur.y) this.bbox.ur.y = ring.bbox.ur.y\n this.interiorRings.push(ring)\n }\n this.multiPoly = multiPoly\n }\n\n getSweepEvents () {\n const sweepEvents = this.exteriorRing.getSweepEvents()\n for (let i = 0, iMax = this.interiorRings.length; i < iMax; i++) {\n const ringSweepEvents = this.interiorRings[i].getSweepEvents()\n for (let j = 0, jMax = ringSweepEvents.length; j < jMax; j++) {\n sweepEvents.push(ringSweepEvents[j])\n }\n }\n return sweepEvents\n }\n}\n\nexport class MultiPolyIn {\n constructor (geom, isSubject) {\n if (!Array.isArray(geom)) {\n throw new Error('Input geometry is not a valid Polygon or MultiPolygon')\n }\n\n try {\n // if the input looks like a polygon, convert it to a multipolygon\n if (typeof geom[0][0][0] === 'number') geom = [geom]\n } catch (ex) {\n // The input is either malformed or has empty arrays.\n // In either case, it will be handled later on.\n }\n\n this.polys = []\n this.bbox = {\n ll: { x: Number.POSITIVE_INFINITY, y: Number.POSITIVE_INFINITY },\n ur: { x: Number.NEGATIVE_INFINITY, y: Number.NEGATIVE_INFINITY },\n }\n for (let i = 0, iMax = geom.length; i < iMax; i++) {\n const poly = new PolyIn(geom[i], this)\n if (poly.bbox.ll.x < this.bbox.ll.x) this.bbox.ll.x = poly.bbox.ll.x\n if (poly.bbox.ll.y < this.bbox.ll.y) this.bbox.ll.y = poly.bbox.ll.y\n if (poly.bbox.ur.x > this.bbox.ur.x) this.bbox.ur.x = poly.bbox.ur.x\n if (poly.bbox.ur.y > this.bbox.ur.y) this.bbox.ur.y = poly.bbox.ur.y\n this.polys.push(poly)\n }\n this.isSubject = isSubject\n }\n\n getSweepEvents () {\n const sweepEvents = []\n for (let i = 0, iMax = this.polys.length; i < iMax; i++) {\n const polySweepEvents = this.polys[i].getSweepEvents()\n for (let j = 0, jMax = polySweepEvents.length; j < jMax; j++) {\n sweepEvents.push(polySweepEvents[j])\n }\n }\n return sweepEvents\n }\n}\n","import { compareVectorAngles } from './vector'\nimport SweepEvent from './sweep-event'\n\nexport class RingOut {\n /* Given the segments from the sweep line pass, compute & return a series\n * of closed rings from all the segments marked to be part of the result */\n static factory (allSegments) {\n const ringsOut = []\n\n for (let i = 0, iMax = allSegments.length; i < iMax; i++) {\n const segment = allSegments[i]\n if (!segment.isInResult() || segment.ringOut) continue\n\n let prevEvent = null\n let event = segment.leftSE\n let nextEvent = segment.rightSE\n const events = [event]\n\n const startingPoint = event.point\n const intersectionLEs = []\n\n /* Walk the chain of linked events to form a closed ring */\n while (true) {\n prevEvent = event\n event = nextEvent\n events.push(event)\n\n /* Is the ring complete? */\n if (event.point === startingPoint) break\n\n while (true) {\n const availableLEs = event.getAvailableLinkedEvents()\n\n /* Did we hit a dead end? This shouldn't happen. Indicates some earlier\n * part of the algorithm malfunctioned... please file a bug report. */\n if (availableLEs.length === 0) {\n const firstPt = events[0].point\n const lastPt = events[events.length - 1].point\n throw new Error(\n `Unable to complete output ring starting at [${firstPt.x},` +\n ` ${firstPt.y}]. Last matching segment found ends at` +\n ` [${lastPt.x}, ${lastPt.y}].`\n )\n }\n\n /* Only one way to go, so cotinue on the path */\n if (availableLEs.length === 1) {\n nextEvent = availableLEs[0].otherSE\n break\n }\n\n /* We must have an intersection. Check for a completed loop */\n let indexLE = null\n for (let j = 0, jMax = intersectionLEs.length; j < jMax; j++) {\n if (intersectionLEs[j].point === event.point) {\n indexLE = j\n break\n }\n }\n /* Found a completed loop. Cut that off and make a ring */\n if (indexLE !== null) {\n const intersectionLE = intersectionLEs.splice(indexLE)[0]\n const ringEvents = events.splice(intersectionLE.index)\n ringEvents.unshift(ringEvents[0].otherSE)\n ringsOut.push(new RingOut(ringEvents.reverse()))\n continue\n }\n /* register the intersection */\n intersectionLEs.push({\n index: events.length,\n point: event.point,\n })\n /* Choose the left-most option to continue the walk */\n const comparator = event.getLeftmostComparator(prevEvent)\n nextEvent = availableLEs.sort(comparator)[0].otherSE\n break\n }\n }\n\n ringsOut.push(new RingOut(events))\n }\n return ringsOut\n }\n\n constructor (events) {\n this.events = events\n for (let i = 0, iMax = events.length; i < iMax; i++) {\n events[i].segment.ringOut = this\n }\n this.poly = null\n }\n\n getGeom () {\n // Remove superfluous points (ie extra points along a straight line),\n let prevPt = this.events[0].point\n const points = [prevPt]\n for (let i = 1, iMax = this.events.length - 1; i < iMax; i++) {\n const pt = this.events[i].point\n const nextPt = this.events[i + 1].point\n if (compareVectorAngles(pt, prevPt, nextPt) === 0) continue\n points.push(pt)\n prevPt = pt\n }\n\n // ring was all (within rounding error of angle calc) colinear points\n if (points.length === 1) return null\n\n // check if the starting point is necessary\n const pt = points[0]\n const nextPt = points[1]\n if (compareVectorAngles(pt, prevPt, nextPt) === 0) points.shift()\n\n points.push(points[0])\n const step = this.isExteriorRing() ? 1 : -1\n const iStart = this.isExteriorRing() ? 0 : points.length - 1\n const iEnd = this.isExteriorRing() ? points.length : -1\n const orderedPoints = []\n for (let i = iStart; i != iEnd; i += step) orderedPoints.push([points[i].x, points[i].y])\n return orderedPoints\n }\n\n isExteriorRing () {\n if (this._isExteriorRing === undefined) {\n const enclosing = this.enclosingRing()\n this._isExteriorRing = enclosing ? ! enclosing.isExteriorRing() : true\n }\n return this._isExteriorRing\n }\n\n enclosingRing () {\n if (this._enclosingRing === undefined) {\n this._enclosingRing = this._calcEnclosingRing()\n }\n return this._enclosingRing\n }\n\n /* Returns the ring that encloses this one, if any */\n _calcEnclosingRing () {\n // start with the ealier sweep line event so that the prevSeg\n // chain doesn't lead us inside of a loop of ours\n let leftMostEvt = this.events[0]\n for (let i = 1, iMax = this.events.length; i < iMax; i++) {\n const evt = this.events[i]\n if (SweepEvent.compare(leftMostEvt, evt) > 0) leftMostEvt = evt\n }\n\n let prevSeg = leftMostEvt.segment.prevInResult()\n let prevPrevSeg = prevSeg ? prevSeg.prevInResult() : null\n\n while (true) {\n // no segment found, thus no ring can enclose us\n if (!prevSeg) return null\n\n // no segments below prev segment found, thus the ring of the prev\n // segment must loop back around and enclose us\n if (!prevPrevSeg) return prevSeg.ringOut\n\n // if the two segments are of different rings, the ring of the prev\n // segment must either loop around us or the ring of the prev prev\n // seg, which would make us and the ring of the prev peers\n if (prevPrevSeg.ringOut !== prevSeg.ringOut) {\n if (prevPrevSeg.ringOut.enclosingRing() !== prevSeg.ringOut) {\n return prevSeg.ringOut\n } else return prevSeg.ringOut.enclosingRing()\n }\n\n // two segments are from the same ring, so this was a penisula\n // of that ring. iterate downward, keep searching\n prevSeg = prevPrevSeg.prevInResult()\n prevPrevSeg = prevSeg ? prevSeg.prevInResult() : null\n }\n }\n}\n\nexport class PolyOut {\n constructor (exteriorRing) {\n this.exteriorRing = exteriorRing\n exteriorRing.poly = this\n this.interiorRings = []\n }\n\n addInterior (ring) {\n this.interiorRings.push(ring)\n ring.poly = this\n }\n\n getGeom () {\n const geom = [this.exteriorRing.getGeom()]\n // exterior ring was all (within rounding error of angle calc) colinear points\n if (geom[0] === null) return null\n for (let i = 0, iMax = this.interiorRings.length; i < iMax; i++) {\n const ringGeom = this.interiorRings[i].getGeom()\n // interior ring was all (within rounding error of angle calc) colinear points\n if (ringGeom === null) continue\n geom.push(ringGeom)\n }\n return geom\n }\n}\n\nexport class MultiPolyOut {\n constructor (rings) {\n this.rings = rings\n this.polys = this._composePolys(rings)\n }\n\n getGeom () {\n const geom = []\n for (let i = 0, iMax = this.polys.length; i < iMax; i++) {\n const polyGeom = this.polys[i].getGeom()\n // exterior ring was all (within rounding error of angle calc) colinear points\n if (polyGeom === null) continue\n geom.push(polyGeom)\n }\n return geom\n }\n\n _composePolys (rings) {\n const polys = []\n for (let i = 0, iMax = rings.length; i < iMax; i++) {\n const ring = rings[i]\n if (ring.poly) continue\n if (ring.isExteriorRing()) polys.push(new PolyOut(ring))\n else {\n const enclosingRing = ring.enclosingRing()\n if (!enclosingRing.poly) polys.push(new PolyOut(enclosingRing))\n enclosingRing.poly.addInterior(ring)\n }\n }\n return polys\n }\n}\n","import SplayTree from 'splaytree'\nimport Segment from './segment'\nimport SweepEvent from './sweep-event'\n\n/**\n * NOTE: We must be careful not to change any segments while\n * they are in the SplayTree. AFAIK, there's no way to tell\n * the tree to rebalance itself - thus before splitting\n * a segment that's in the tree, we remove it from the tree,\n * do the split, then re-insert it. (Even though splitting a\n * segment *shouldn't* change its correct position in the\n * sweep line tree, the reality is because of rounding errors,\n * it sometimes does.)\n */\n\nexport default class SweepLine {\n constructor (queue, comparator = Segment.compare) {\n this.queue = queue\n this.tree = new SplayTree(comparator)\n this.segments = []\n }\n\n process (event) {\n const segment = event.segment\n const newEvents = []\n\n // if we've already been consumed by another segment,\n // clean up our body parts and get out\n if (event.consumedBy) {\n if (event.isLeft) this.queue.remove(event.otherSE)\n else this.tree.remove(segment)\n return newEvents\n }\n\n const node = event.isLeft\n ? this.tree.insert(segment)\n : this.tree.find(segment)\n\n if (! node) throw new Error(\n `Unable to find segment #${segment.id} ` +\n `[${segment.leftSE.point.x}, ${segment.leftSE.point.y}] -> ` +\n `[${segment.rightSE.point.x}, ${segment.rightSE.point.y}] ` +\n 'in SweepLine tree. Please submit a bug report.'\n )\n\n let prevNode = node\n let nextNode = node\n let prevSeg = undefined\n let nextSeg = undefined\n\n // skip consumed segments still in tree\n while (prevSeg === undefined) {\n prevNode = this.tree.prev(prevNode)\n if (prevNode === null) prevSeg = null\n else if (prevNode.key.consumedBy === undefined) prevSeg = prevNode.key\n }\n\n // skip consumed segments still in tree\n while (nextSeg === undefined) {\n nextNode = this.tree.next(nextNode)\n if (nextNode === null) nextSeg = null\n else if (nextNode.key.consumedBy === undefined) nextSeg = nextNode.key\n }\n\n if (event.isLeft) {\n\n // Check for intersections against the previous segment in the sweep line\n let prevMySplitter = null\n if (prevSeg) {\n const prevInter = prevSeg.getIntersection(segment)\n if (prevInter !== null) {\n if (!segment.isAnEndpoint(prevInter)) prevMySplitter = prevInter\n if (!prevSeg.isAnEndpoint(prevInter)) {\n const newEventsFromSplit = this._splitSafely(prevSeg, prevInter)\n for (let i = 0, iMax = newEventsFromSplit.length; i < iMax; i++) {\n newEvents.push(newEventsFromSplit[i])\n }\n }\n }\n }\n\n // Check for intersections against the next segment in the sweep line\n let nextMySplitter = null\n if (nextSeg) {\n const nextInter = nextSeg.getIntersection(segment)\n if (nextInter !== null) {\n if (!segment.isAnEndpoint(nextInter)) nextMySplitter = nextInter\n if (!nextSeg.isAnEndpoint(nextInter)) {\n const newEventsFromSplit = this._splitSafely(nextSeg, nextInter)\n for (let i = 0, iMax = newEventsFromSplit.length; i < iMax; i++) {\n newEvents.push(newEventsFromSplit[i])\n }\n }\n }\n }\n\n // For simplicity, even if we find more than one intersection we only\n // spilt on the 'earliest' (sweep-line style) of the intersections.\n // The other intersection will be handled in a future process().\n if (prevMySplitter !== null || nextMySplitter !== null) {\n\n let mySplitter = null\n if (prevMySplitter === null) mySplitter = nextMySplitter\n else if (nextMySplitter === null) mySplitter = prevMySplitter\n else {\n const cmpSplitters = SweepEvent.comparePoints(prevMySplitter, nextMySplitter)\n mySplitter = cmpSplitters <= 0 ? prevMySplitter : nextMySplitter\n }\n\n // Rounding errors can cause changes in ordering,\n // so remove afected segments and right sweep events before splitting\n this.queue.remove(segment.rightSE)\n newEvents.push(segment.rightSE)\n\n const newEventsFromSplit = segment.split(mySplitter)\n for (let i = 0, iMax = newEventsFromSplit.length; i < iMax; i++) {\n newEvents.push(newEventsFromSplit[i])\n }\n }\n\n if (newEvents.length > 0) {\n // We found some intersections, so re-do the current event to\n // make sure sweep line ordering is totally consistent for later\n // use with the segment 'prev' pointers\n this.tree.remove(segment)\n newEvents.push(event)\n\n } else {\n // done with left event\n this.segments.push(segment)\n segment.prev = prevSeg\n }\n\n } else {\n // event.isRight\n\n // since we're about to be removed from the sweep line, check for\n // intersections between our previous and next segments\n if (prevSeg && nextSeg) {\n const inter = prevSeg.getIntersection(nextSeg)\n if (inter !== null) {\n if (!prevSeg.isAnEndpoint(inter)) {\n const newEventsFromSplit = this._splitSafely(prevSeg, inter)\n for (let i = 0, iMax = newEventsFromSplit.length; i < iMax; i++) {\n newEvents.push(newEventsFromSplit[i])\n }\n }\n if (!nextSeg.isAnEndpoint(inter)) {\n const newEventsFromSplit = this._splitSafely(nextSeg, inter)\n for (let i = 0, iMax = newEventsFromSplit.length; i < iMax; i++) {\n newEvents.push(newEventsFromSplit[i])\n }\n }\n }\n }\n\n this.tree.remove(segment)\n }\n\n return newEvents\n }\n\n /* Safely split a segment that is currently in the datastructures\n * IE - a segment other than the one that is currently being processed. */\n _splitSafely(seg, pt) {\n // Rounding errors can cause changes in ordering,\n // so remove afected segments and right sweep events before splitting\n // removeNode() doesn't work, so have re-find the seg\n // https://github.com/w8r/splay-tree/pull/5\n this.tree.remove(seg)\n const rightSE = seg.rightSE\n this.queue.remove(rightSE)\n const newEvents = seg.split(pt)\n newEvents.push(rightSE)\n // splitting can trigger consumption\n if (seg.consumedBy === undefined) this.tree.insert(seg)\n return newEvents\n }\n}\n","import SplayTree from 'splaytree'\nimport { getBboxOverlap } from './bbox'\nimport * as geomIn from './geom-in'\nimport * as geomOut from './geom-out'\nimport rounder from './rounder'\nimport SweepEvent from './sweep-event'\nimport SweepLine from './sweep-line'\n\n// Limits on iterative processes to prevent infinite loops - usually caused by floating-point math round-off errors.\nconst POLYGON_CLIPPING_MAX_QUEUE_SIZE =\n (typeof process !== 'undefined' &&\n process.env.POLYGON_CLIPPING_MAX_QUEUE_SIZE) ||\n 1000000\nconst POLYGON_CLIPPING_MAX_SWEEPLINE_SEGMENTS =\n (typeof process !== 'undefined' &&\n process.env.POLYGON_CLIPPING_MAX_SWEEPLINE_SEGMENTS) ||\n 1000000\n\nexport class Operation {\n run (type, geom, moreGeoms) {\n operation.type = type\n rounder.reset()\n\n /* Convert inputs to MultiPoly objects */\n const multipolys = [new geomIn.MultiPolyIn(geom, true)]\n for (let i = 0, iMax = moreGeoms.length; i < iMax; i++) {\n multipolys.push(new geomIn.MultiPolyIn(moreGeoms[i], false))\n }\n operation.numMultiPolys = multipolys.length\n\n /* BBox optimization for difference operation\n * If the bbox of a multipolygon that's part of the clipping doesn't\n * intersect the bbox of the subject at all, we can just drop that\n * multiploygon. */\n if (operation.type === 'difference') {\n // in place removal\n const subject = multipolys[0]\n let i = 1\n while (i < multipolys.length) {\n if (getBboxOverlap(multipolys[i].bbox, subject.bbox) !== null) i++\n else multipolys.splice(i, 1)\n }\n }\n\n /* BBox optimization for intersection operation\n * If we can find any pair of multipolygons whose bbox does not overlap,\n * then the result will be empty. */\n if (operation.type === 'intersection') {\n // TODO: this is O(n^2) in number of polygons. By sorting the bboxes,\n // it could be optimized to O(n * ln(n))\n for (let i = 0, iMax = multipolys.length; i < iMax; i++) {\n const mpA = multipolys[i]\n for (let j = i + 1, jMax = multipolys.length; j < jMax; j++) {\n if (getBboxOverlap(mpA.bbox, multipolys[j].bbox) === null) return []\n }\n }\n }\n\n /* Put segment endpoints in a priority queue */\n const queue = new SplayTree(SweepEvent.compare)\n for (let i = 0, iMax = multipolys.length; i < iMax; i++) {\n const sweepEvents = multipolys[i].getSweepEvents()\n for (let j = 0, jMax = sweepEvents.length; j < jMax; j++) {\n queue.insert(sweepEvents[j])\n\n if (queue.size > POLYGON_CLIPPING_MAX_QUEUE_SIZE) {\n // prevents an infinite loop, an otherwise common manifestation of bugs\n throw new Error(\n 'Infinite loop when putting segment endpoints in a priority queue ' +\n '(queue size too big). Please file a bug report.'\n )\n }\n }\n }\n\n /* Pass the sweep line over those endpoints */\n const sweepLine = new SweepLine(queue)\n let prevQueueSize = queue.size\n let node = queue.pop()\n while (node) {\n const evt = node.key\n if (queue.size === prevQueueSize) {\n // prevents an infinite loop, an otherwise common manifestation of bugs\n const seg = evt.segment\n throw new Error(\n `Unable to pop() ${evt.isLeft ? 'left' : 'right'} SweepEvent ` +\n `[${evt.point.x}, ${evt.point.y}] from segment #${seg.id} ` +\n `[${seg.leftSE.point.x}, ${seg.leftSE.point.y}] -> ` +\n `[${seg.rightSE.point.x}, ${seg.rightSE.point.y}] from queue. ` +\n 'Please file a bug report.'\n )\n }\n\n if (queue.size > POLYGON_CLIPPING_MAX_QUEUE_SIZE) {\n // prevents an infinite loop, an otherwise common manifestation of bugs\n throw new Error(\n 'Infinite loop when passing sweep line over endpoints ' +\n '(queue size too big). Please file a bug report.'\n )\n }\n\n if (sweepLine.segments.length > POLYGON_CLIPPING_MAX_SWEEPLINE_SEGMENTS) {\n // prevents an infinite loop, an otherwise common manifestation of bugs\n throw new Error(\n 'Infinite loop when passing sweep line over endpoints ' +\n '(too many sweep line segments). Please file a bug report.'\n )\n }\n\n const newEvents = sweepLine.process(evt)\n for (let i = 0, iMax = newEvents.length; i < iMax; i++) {\n const evt = newEvents[i]\n if (evt.consumedBy === undefined) queue.insert(evt)\n }\n prevQueueSize = queue.size\n node = queue.pop()\n }\n\n // free some memory we don't need anymore\n rounder.reset()\n\n /* Collect and compile segments we're keeping into a multipolygon */\n const ringsOut = geomOut.RingOut.factory(sweepLine.segments)\n const result = new geomOut.MultiPolyOut(ringsOut)\n return result.getGeom()\n }\n}\n\n// singleton available by import\nconst operation = new Operation()\n\nexport default operation\n","import operation from './operation'\n\nconst union = (geom, ...moreGeoms) =>\n operation.run('union', geom, moreGeoms)\n\nconst intersection = (geom, ...moreGeoms) =>\n operation.run('intersection', geom, moreGeoms)\n\nconst xor = (geom, ...moreGeoms) =>\n operation.run('xor', geom, moreGeoms)\n\nconst difference = (subjectGeom, ...clippingGeoms) =>\n operation.run('difference', subjectGeom, clippingGeoms)\n\nexport default {\n union: union,\n intersection: intersection,\n xor: xor,\n difference: difference,\n}\n"],"names":["isInBbox","bbox","point","ll","x","ur","y","getBboxOverlap","b1","b2","lowerX","upperX","epsilon","Number","EPSILON","undefined","Math","pow","EPSILON_SQ","cmp","a","b","ab","PtRounder","reset","xRounder","CoordRounder","yRounder","this","round","tree","SplayTree","coord","node","add","prevNode","prev","key","remove","nextNode","next","rounder","crossProduct","dotProduct","compareVectorAngles","basePt","endPt1","endPt2","v1","v2","kross","length","v","sqrt","cosineOfAngle","pShared","pBase","pAngle","vBase","vAngle","horizontalIntersection","pt","verticalIntersection","SweepEvent","isLeft","events","push","ptCmp","comparePoints","link","Segment","compare","segment","aPt","bPt","other","Error","otherEvents","i","iMax","evt","checkForConsuming","numEvents","evt1","consumedBy","j","evt2","otherSE","consume","ringOut","isInResult","baseEvent","cache","Map","fillCache","linkedEvent","nextEvent","set","sine","_this","cosine","has","get","asine","acosine","bsine","bcosine","segmentId","leftSE","rightSE","rings","windings","id","alx","blx","arx","brx","aly","bly","ary","bry","aCmpBLeft","comparePoint","bCmpARight","bCmpALeft","aCmpBRight","ay","ax","by","bx","newRightSE","y1","y2","isAnEndpoint","lPt","rPt","vector","yDist","xFromYDist","xDist","yFromXDist","tBbox","oBbox","bboxOverlap","tlp","trp","olp","orp","touchesOtherLSE","touchesThisLSE","touchesOtherRSE","touchesThisRSE","pt1","pt2","ve","d1","d2","intersection","newEvents","alreadyLinked","newLeftSE","oldRightSE","replaceRightSE","newSeg","slice","swapEvents","tmpEvt","consumer","consumee","tmp","ring","winding","index","indexOf","_prevInResult","prevInResult","_beforeState","seg","afterState","multiPolys","_afterState","beforeState","ringsAfter","windingsAfter","mpsAfter","polysAfter","polysExclude","poly","isExterior","splice","mp","multiPoly","_isInResult","mpsBefore","operation","type","noBefores","noAfters","least","most","numMultiPolys","diff","abs","isJustSubject","mps","isSubject","leftPt","rightPt","cmpPts","RingIn","geomRing","Array","isArray","segments","firstPoint","prevPoint","fromRing","sweepEvents","PolyIn","geomPoly","exteriorRing","interiorRings","getSweepEvents","ringSweepEvents","jMax","MultiPolyIn","geom","ex","polys","POSITIVE_INFINITY","NEGATIVE_INFINITY","polySweepEvents","RingOut","allSegments","ringsOut","prevEvent","event","startingPoint","intersectionLEs","availableLEs","getAvailableLinkedEvents","firstPt","lastPt","indexLE","comparator","getLeftmostComparator","sort","intersectionLE","ringEvents","unshift","reverse","prevPt","points","nextPt","shift","step","isExteriorRing","iStart","iEnd","orderedPoints","_isExteriorRing","enclosing","enclosingRing","_enclosingRing","_calcEnclosingRing","leftMostEvt","prevSeg","prevPrevSeg","PolyOut","getGeom","ringGeom","MultiPolyOut","_composePolys","polyGeom","addInterior","SweepLine","queue","insert","find","nextSeg","prevMySplitter","prevInter","getIntersection","newEventsFromSplit","_splitSafely","nextMySplitter","nextInter","mySplitter","split","inter","POLYGON_CLIPPING_MAX_QUEUE_SIZE","process","env","POLYGON_CLIPPING_MAX_SWEEPLINE_SEGMENTS","moreGeoms","multipolys","geomIn","subject","mpA","size","sweepLine","prevQueueSize","pop","geomOut","factory","union","run","xor","difference","subjectGeom","clippingGeoms"],"mappings":"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"}
@@ -0,0 +1,113 @@
1
+ {
2
+ "_from": "polygon-clipping@^0.15.3",
3
+ "_id": "polygon-clipping@0.15.3",
4
+ "_inBundle": false,
5
+ "_integrity": "sha512-ho0Xx5DLkgxRx/+n4O74XyJ67DcyN3Tu9bGYKsnTukGAW6ssnuak6Mwcyb1wHy9MZc9xsUWqIoiazkZB5weECg==",
6
+ "_location": "/polygon-clipping",
7
+ "_phantomChildren": {},
8
+ "_requested": {
9
+ "type": "range",
10
+ "registry": true,
11
+ "raw": "polygon-clipping@^0.15.3",
12
+ "name": "polygon-clipping",
13
+ "escapedName": "polygon-clipping",
14
+ "rawSpec": "^0.15.3",
15
+ "saveSpec": null,
16
+ "fetchSpec": "^0.15.3"
17
+ },
18
+ "_requiredBy": [
19
+ "/@turf/difference",
20
+ "/@turf/dissolve",
21
+ "/@turf/intersect",
22
+ "/@turf/mask",
23
+ "/@turf/union"
24
+ ],
25
+ "_resolved": "https://registry.npmjs.org/polygon-clipping/-/polygon-clipping-0.15.3.tgz",
26
+ "_shasum": "0215840438470ba2e9e6593625e4ea5c1087b4b7",
27
+ "_spec": "polygon-clipping@^0.15.3",
28
+ "_where": "/Users/conway/Projects/TAKreg/node_modules/@turf/difference",
29
+ "author": {
30
+ "name": "Mike Fogel",
31
+ "email": "mike@fogel.ca"
32
+ },
33
+ "browser": "dist/polygon-clipping.umd.js",
34
+ "browserslist": [
35
+ "> 0.25% or not dead"
36
+ ],
37
+ "bugs": {
38
+ "url": "https://github.com/mfogel/polygon-clipping/issues"
39
+ },
40
+ "bundleDependencies": false,
41
+ "dependencies": {
42
+ "splaytree": "^3.1.0"
43
+ },
44
+ "deprecated": false,
45
+ "description": "Apply boolean Polygon clipping operations (intersection, union, difference, xor) to your Polygons & MultiPolygons.",
46
+ "devDependencies": {
47
+ "@babel/cli": "^7.12.10",
48
+ "@babel/core": "^7.12.10",
49
+ "@babel/preset-env": "^7.12.10",
50
+ "@rollup/plugin-commonjs": "^16.0.0",
51
+ "@rollup/plugin-json": "^4.1.0",
52
+ "@rollup/plugin-node-resolve": "^10.0.0",
53
+ "@turf/difference": "^5.1.5",
54
+ "@turf/intersect": "^5.1.6",
55
+ "@turf/union": "^5.1.5",
56
+ "babel-jest": "^26.6.3",
57
+ "benchmark": "^2.1.4",
58
+ "eslint": "^7.15.0",
59
+ "eslint-plugin-vue": "^7.2.0",
60
+ "jest": "^26.6.3",
61
+ "load-json-file": "^6.2.0",
62
+ "martinez-polygon-clipping": "0.7.0",
63
+ "npm-run-all": "^4.1.5",
64
+ "rollup": "^2.35.1",
65
+ "rollup-plugin-babel": "^4.4.0",
66
+ "rollup-plugin-terser": "^7.0.2",
67
+ "rollup-plugin-vue": "^5.1.9",
68
+ "serve": "^11.3.2",
69
+ "vue-template-compiler": "^2.6.12"
70
+ },
71
+ "files": [
72
+ "dist"
73
+ ],
74
+ "homepage": "https://github.com/mfogel/polygon-clipping#readme",
75
+ "jest": {
76
+ "collectCoverage": true,
77
+ "testEnvironment": "node"
78
+ },
79
+ "keywords": [
80
+ "polygon",
81
+ "clipping",
82
+ "boolean",
83
+ "intersection",
84
+ "union",
85
+ "difference",
86
+ "xor",
87
+ "geometry",
88
+ "martinez"
89
+ ],
90
+ "license": "MIT",
91
+ "main": "dist/polygon-clipping.cjs.js",
92
+ "module": "dist/polygon-clipping.esm.js",
93
+ "name": "polygon-clipping",
94
+ "repository": {
95
+ "type": "git",
96
+ "url": "git+https://github.com/mfogel/polygon-clipping.git"
97
+ },
98
+ "scripts": {
99
+ "bench": "node bench/bench.js",
100
+ "build": "rollup -c && cp src/polygon-clipping.d.ts dist/polygon-clipping.d.ts",
101
+ "docs:build": "cd docs && rollup -c --environment NODE_ENV:production",
102
+ "docs:dev": "npm-run-all --parallel docs:start docs:watch",
103
+ "docs:lint": "cd docs && eslint --ext .js --ext .vue *config.js src/",
104
+ "docs:start": "cd docs && serve .",
105
+ "docs:watch": "cd docs && rollup -c -w",
106
+ "lint": "eslint *.config.js src/ test/ bench/",
107
+ "prepublishOnly": "npm-run-all --serial lint docs:lint test build docs:build bench",
108
+ "test": "jest",
109
+ "test:debug": "node --inspect-brk node_modules/.bin/jest --runInBand"
110
+ },
111
+ "types": "dist/polygon-clipping.d.ts",
112
+ "version": "0.15.3"
113
+ }
@@ -0,0 +1,15 @@
1
+ ISC License
2
+
3
+ Copyright (c) 2018, Vladimir Agafonkin
4
+
5
+ Permission to use, copy, modify, and/or distribute this software for any purpose
6
+ with or without fee is hereby granted, provided that the above copyright notice
7
+ and this permission notice appear in all copies.
8
+
9
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
10
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
11
+ FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
12
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS
13
+ OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
14
+ TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF
15
+ THIS SOFTWARE.
@@ -0,0 +1,28 @@
1
+ ## quickselect [![Build Status](https://travis-ci.org/mourner/quickselect.svg?branch=master)](https://travis-ci.org/mourner/quickselect)
2
+
3
+ A tiny and fast [selection algorithm](https://en.wikipedia.org/wiki/Selection_algorithm) in JavaScript
4
+ (specifically, [Floyd-Rivest selection](https://en.wikipedia.org/wiki/Floyd%E2%80%93Rivest_algorithm)).
5
+
6
+ ```js
7
+ quickselect(array, k[, left, right, compareFn]);
8
+ ```
9
+
10
+ Rearranges items so that all items in the `[left, k]` are the smallest.
11
+ The `k`-th element will have the `(k - left + 1)`-th smallest value in `[left, right]`.
12
+
13
+ - `array`: the array to partially sort (in place)
14
+ - `k`: middle index for partial sorting (as defined above)
15
+ - `left`: left index of the range to sort (`0` by default)
16
+ - `right`: right index (last index of the array by default)
17
+ - `compareFn`: compare function
18
+
19
+ Example:
20
+
21
+ ```js
22
+ var arr = [65, 28, 59, 33, 21, 56, 22, 95, 50, 12, 90, 53, 28, 77, 39];
23
+
24
+ quickselect(arr, 8);
25
+
26
+ // arr is [39, 28, 28, 33, 21, 12, 22, 50, 53, 56, 59, 65, 90, 77, 95]
27
+ // ^^ middle index
28
+ ```
@@ -0,0 +1,54 @@
1
+
2
+ export default function quickselect(arr, k, left, right, compare) {
3
+ quickselectStep(arr, k, left || 0, right || (arr.length - 1), compare || defaultCompare);
4
+ }
5
+
6
+ function quickselectStep(arr, k, left, right, compare) {
7
+
8
+ while (right > left) {
9
+ if (right - left > 600) {
10
+ var n = right - left + 1;
11
+ var m = k - left + 1;
12
+ var z = Math.log(n);
13
+ var s = 0.5 * Math.exp(2 * z / 3);
14
+ var sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1);
15
+ var newLeft = Math.max(left, Math.floor(k - m * s / n + sd));
16
+ var newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd));
17
+ quickselectStep(arr, k, newLeft, newRight, compare);
18
+ }
19
+
20
+ var t = arr[k];
21
+ var i = left;
22
+ var j = right;
23
+
24
+ swap(arr, left, k);
25
+ if (compare(arr[right], t) > 0) swap(arr, left, right);
26
+
27
+ while (i < j) {
28
+ swap(arr, i, j);
29
+ i++;
30
+ j--;
31
+ while (compare(arr[i], t) < 0) i++;
32
+ while (compare(arr[j], t) > 0) j--;
33
+ }
34
+
35
+ if (compare(arr[left], t) === 0) swap(arr, left, j);
36
+ else {
37
+ j++;
38
+ swap(arr, j, right);
39
+ }
40
+
41
+ if (j <= k) left = j + 1;
42
+ if (k <= j) right = j - 1;
43
+ }
44
+ }
45
+
46
+ function swap(arr, i, j) {
47
+ var tmp = arr[i];
48
+ arr[i] = arr[j];
49
+ arr[j] = tmp;
50
+ }
51
+
52
+ function defaultCompare(a, b) {
53
+ return a < b ? -1 : a > b ? 1 : 0;
54
+ }
@@ -0,0 +1,70 @@
1
+ {
2
+ "_from": "quickselect@^2.0.0",
3
+ "_id": "quickselect@2.0.0",
4
+ "_inBundle": false,
5
+ "_integrity": "sha512-RKJ22hX8mHe3Y6wH/N3wCM6BWtjaxIyyUIkpHOvfFnxdI4yD4tBXEBKSbriGujF6jnSVkJrffuo6vxACiSSxIw==",
6
+ "_location": "/quickselect",
7
+ "_phantomChildren": {},
8
+ "_requested": {
9
+ "type": "range",
10
+ "registry": true,
11
+ "raw": "quickselect@^2.0.0",
12
+ "name": "quickselect",
13
+ "escapedName": "quickselect",
14
+ "rawSpec": "^2.0.0",
15
+ "saveSpec": null,
16
+ "fetchSpec": "^2.0.0"
17
+ },
18
+ "_requiredBy": [
19
+ "/rbush"
20
+ ],
21
+ "_resolved": "https://registry.npmjs.org/quickselect/-/quickselect-2.0.0.tgz",
22
+ "_shasum": "f19680a486a5eefb581303e023e98faaf25dd018",
23
+ "_spec": "quickselect@^2.0.0",
24
+ "_where": "/Users/conway/Projects/TAKreg/node_modules/rbush",
25
+ "author": {
26
+ "name": "Vladimir Agafonkin"
27
+ },
28
+ "bundleDependencies": false,
29
+ "dependencies": {},
30
+ "deprecated": false,
31
+ "description": "A tiny and fast selection algorithm in JavaScript.",
32
+ "devDependencies": {
33
+ "eslint": "^4.19.1",
34
+ "eslint-config-mourner": "^2.0.3",
35
+ "esm": "^3.0.15",
36
+ "rollup": "^0.57.1",
37
+ "tape": "^4.9.0"
38
+ },
39
+ "eslintConfig": {
40
+ "extends": "mourner",
41
+ "parserOptions": {
42
+ "sourceType": "module"
43
+ }
44
+ },
45
+ "files": [
46
+ "index.js",
47
+ "quickselect.js"
48
+ ],
49
+ "keywords": [
50
+ "selection",
51
+ "algorithm",
52
+ "quickselect",
53
+ "sort",
54
+ "partial",
55
+ "floyd",
56
+ "rivest"
57
+ ],
58
+ "license": "ISC",
59
+ "main": "quickselect.js",
60
+ "module": "index.js",
61
+ "name": "quickselect",
62
+ "scripts": {
63
+ "bench": "node -r esm bench.js",
64
+ "build": "rollup -c",
65
+ "prepublishOnly": "npm run build",
66
+ "pretest": "eslint index.js test.js bench.js",
67
+ "test": "node -r esm test.js"
68
+ },
69
+ "version": "2.0.0"
70
+ }
@@ -0,0 +1,63 @@
1
+ (function (global, factory) {
2
+ typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :
3
+ typeof define === 'function' && define.amd ? define(factory) :
4
+ (global.quickselect = factory());
5
+ }(this, (function () { 'use strict';
6
+
7
+ function quickselect(arr, k, left, right, compare) {
8
+ quickselectStep(arr, k, left || 0, right || (arr.length - 1), compare || defaultCompare);
9
+ }
10
+
11
+ function quickselectStep(arr, k, left, right, compare) {
12
+
13
+ while (right > left) {
14
+ if (right - left > 600) {
15
+ var n = right - left + 1;
16
+ var m = k - left + 1;
17
+ var z = Math.log(n);
18
+ var s = 0.5 * Math.exp(2 * z / 3);
19
+ var sd = 0.5 * Math.sqrt(z * s * (n - s) / n) * (m - n / 2 < 0 ? -1 : 1);
20
+ var newLeft = Math.max(left, Math.floor(k - m * s / n + sd));
21
+ var newRight = Math.min(right, Math.floor(k + (n - m) * s / n + sd));
22
+ quickselectStep(arr, k, newLeft, newRight, compare);
23
+ }
24
+
25
+ var t = arr[k];
26
+ var i = left;
27
+ var j = right;
28
+
29
+ swap(arr, left, k);
30
+ if (compare(arr[right], t) > 0) swap(arr, left, right);
31
+
32
+ while (i < j) {
33
+ swap(arr, i, j);
34
+ i++;
35
+ j--;
36
+ while (compare(arr[i], t) < 0) i++;
37
+ while (compare(arr[j], t) > 0) j--;
38
+ }
39
+
40
+ if (compare(arr[left], t) === 0) swap(arr, left, j);
41
+ else {
42
+ j++;
43
+ swap(arr, j, right);
44
+ }
45
+
46
+ if (j <= k) left = j + 1;
47
+ if (k <= j) right = j - 1;
48
+ }
49
+ }
50
+
51
+ function swap(arr, i, j) {
52
+ var tmp = arr[i];
53
+ arr[i] = arr[j];
54
+ arr[j] = tmp;
55
+ }
56
+
57
+ function defaultCompare(a, b) {
58
+ return a < b ? -1 : a > b ? 1 : 0;
59
+ }
60
+
61
+ return quickselect;
62
+
63
+ })));