@veritone-ce/design-system 2.9.0-next.2 → 2.9.0-next.3

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 (629) hide show
  1. package/dist/cjs/bundled_modules/d3-array/src/ascending.js +9 -0
  2. package/dist/cjs/bundled_modules/d3-array/src/bisect.js +16 -0
  3. package/dist/cjs/bundled_modules/d3-array/src/bisector.js +62 -0
  4. package/dist/cjs/bundled_modules/d3-array/src/descending.js +13 -0
  5. package/dist/cjs/bundled_modules/d3-array/src/deviation.js +12 -0
  6. package/dist/cjs/bundled_modules/d3-array/src/fsum.js +45 -0
  7. package/dist/cjs/bundled_modules/d3-array/src/intersection.js +25 -0
  8. package/dist/cjs/bundled_modules/d3-array/src/max.js +26 -0
  9. package/dist/cjs/bundled_modules/d3-array/src/mean.js +25 -0
  10. package/dist/cjs/bundled_modules/d3-array/src/median.js +11 -0
  11. package/dist/cjs/bundled_modules/d3-array/src/merge.js +15 -0
  12. package/dist/cjs/bundled_modules/d3-array/src/min.js +26 -0
  13. package/dist/cjs/bundled_modules/d3-array/src/number.js +27 -0
  14. package/dist/cjs/bundled_modules/d3-array/src/permute.js +9 -0
  15. package/dist/cjs/bundled_modules/d3-array/src/quantile.js +36 -0
  16. package/dist/cjs/bundled_modules/d3-array/src/quickselect.js +59 -0
  17. package/dist/cjs/bundled_modules/d3-array/src/range.js +19 -0
  18. package/dist/cjs/bundled_modules/d3-array/src/sort.js +20 -0
  19. package/dist/cjs/bundled_modules/d3-array/src/sum.js +17 -0
  20. package/dist/cjs/bundled_modules/d3-array/src/ticks.js +63 -0
  21. package/dist/cjs/bundled_modules/d3-array/src/union.js +17 -0
  22. package/dist/cjs/bundled_modules/d3-array/src/variance.js +31 -0
  23. package/dist/cjs/bundled_modules/d3-color/src/color.js +410 -0
  24. package/dist/cjs/bundled_modules/d3-color/src/cubehelix.js +68 -0
  25. package/dist/cjs/bundled_modules/d3-color/src/define.js +17 -0
  26. package/dist/cjs/bundled_modules/d3-color/src/lab.js +124 -0
  27. package/dist/cjs/bundled_modules/d3-color/src/math.js +7 -0
  28. package/dist/cjs/bundled_modules/d3-delaunay/src/delaunay.js +254 -0
  29. package/dist/cjs/bundled_modules/d3-delaunay/src/path.js +43 -0
  30. package/dist/cjs/bundled_modules/d3-delaunay/src/polygon.js +23 -0
  31. package/dist/cjs/bundled_modules/d3-delaunay/src/voronoi.js +338 -0
  32. package/dist/cjs/bundled_modules/d3-dispatch/src/dispatch.js +88 -0
  33. package/dist/cjs/bundled_modules/d3-dsv/src/dsv.js +170 -0
  34. package/dist/cjs/bundled_modules/d3-force/src/center.js +46 -0
  35. package/dist/cjs/bundled_modules/d3-force/src/collide.js +106 -0
  36. package/dist/cjs/bundled_modules/d3-force/src/constant.js +11 -0
  37. package/dist/cjs/bundled_modules/d3-force/src/jiggle.js +9 -0
  38. package/dist/cjs/bundled_modules/d3-force/src/lcg.js +15 -0
  39. package/dist/cjs/bundled_modules/d3-force/src/link.js +123 -0
  40. package/dist/cjs/bundled_modules/d3-force/src/manyBody.js +122 -0
  41. package/dist/cjs/bundled_modules/d3-force/src/simulation.js +164 -0
  42. package/dist/cjs/bundled_modules/d3-force/src/x.js +47 -0
  43. package/dist/cjs/bundled_modules/d3-force/src/y.js +47 -0
  44. package/dist/cjs/bundled_modules/d3-format/src/defaultLocale.js +24 -0
  45. package/dist/cjs/bundled_modules/d3-format/src/exponent.js +11 -0
  46. package/dist/cjs/bundled_modules/d3-format/src/formatDecimal.js +27 -0
  47. package/dist/cjs/bundled_modules/d3-format/src/formatGroup.js +24 -0
  48. package/dist/cjs/bundled_modules/d3-format/src/formatNumerals.js +13 -0
  49. package/dist/cjs/bundled_modules/d3-format/src/formatPrefixAuto.js +22 -0
  50. package/dist/cjs/bundled_modules/d3-format/src/formatRounded.js +17 -0
  51. package/dist/cjs/bundled_modules/d3-format/src/formatSpecifier.js +54 -0
  52. package/dist/cjs/bundled_modules/d3-format/src/formatTrim.js +17 -0
  53. package/dist/cjs/bundled_modules/d3-format/src/formatTypes.js +25 -0
  54. package/dist/cjs/bundled_modules/d3-format/src/identity.js +9 -0
  55. package/dist/cjs/bundled_modules/d3-format/src/locale.js +154 -0
  56. package/dist/cjs/bundled_modules/d3-format/src/precisionFixed.js +11 -0
  57. package/dist/cjs/bundled_modules/d3-format/src/precisionPrefix.js +11 -0
  58. package/dist/cjs/bundled_modules/d3-format/src/precisionRound.js +12 -0
  59. package/dist/cjs/bundled_modules/d3-geo/src/area.js +83 -0
  60. package/dist/cjs/bundled_modules/d3-geo/src/bounds.js +185 -0
  61. package/dist/cjs/bundled_modules/d3-geo/src/cartesian.js +43 -0
  62. package/dist/cjs/bundled_modules/d3-geo/src/centroid.js +149 -0
  63. package/dist/cjs/bundled_modules/d3-geo/src/circle.js +35 -0
  64. package/dist/cjs/bundled_modules/d3-geo/src/clip/antimeridian.js +98 -0
  65. package/dist/cjs/bundled_modules/d3-geo/src/clip/buffer.js +30 -0
  66. package/dist/cjs/bundled_modules/d3-geo/src/clip/circle.js +183 -0
  67. package/dist/cjs/bundled_modules/d3-geo/src/clip/index.js +137 -0
  68. package/dist/cjs/bundled_modules/d3-geo/src/clip/line.js +65 -0
  69. package/dist/cjs/bundled_modules/d3-geo/src/clip/rectangle.js +174 -0
  70. package/dist/cjs/bundled_modules/d3-geo/src/clip/rejoin.js +109 -0
  71. package/dist/cjs/bundled_modules/d3-geo/src/compose.js +18 -0
  72. package/dist/cjs/bundled_modules/d3-geo/src/graticule.js +107 -0
  73. package/dist/cjs/bundled_modules/d3-geo/src/identity.js +7 -0
  74. package/dist/cjs/bundled_modules/d3-geo/src/math.js +57 -0
  75. package/dist/cjs/bundled_modules/d3-geo/src/noop.js +7 -0
  76. package/dist/cjs/bundled_modules/d3-geo/src/path/area.js +54 -0
  77. package/dist/cjs/bundled_modules/d3-geo/src/path/bounds.js +32 -0
  78. package/dist/cjs/bundled_modules/d3-geo/src/path/centroid.js +104 -0
  79. package/dist/cjs/bundled_modules/d3-geo/src/path/context.js +51 -0
  80. package/dist/cjs/bundled_modules/d3-geo/src/path/index.js +82 -0
  81. package/dist/cjs/bundled_modules/d3-geo/src/path/measure.js +49 -0
  82. package/dist/cjs/bundled_modules/d3-geo/src/path/string.js +92 -0
  83. package/dist/cjs/bundled_modules/d3-geo/src/pointEqual.js +11 -0
  84. package/dist/cjs/bundled_modules/d3-geo/src/polygonContains.js +80 -0
  85. package/dist/cjs/bundled_modules/d3-geo/src/projection/albers.js +16 -0
  86. package/dist/cjs/bundled_modules/d3-geo/src/projection/albersUsa.js +117 -0
  87. package/dist/cjs/bundled_modules/d3-geo/src/projection/azimuthal.js +32 -0
  88. package/dist/cjs/bundled_modules/d3-geo/src/projection/azimuthalEqualArea.js +24 -0
  89. package/dist/cjs/bundled_modules/d3-geo/src/projection/azimuthalEquidistant.js +24 -0
  90. package/dist/cjs/bundled_modules/d3-geo/src/projection/conic.js +19 -0
  91. package/dist/cjs/bundled_modules/d3-geo/src/projection/conicConformal.js +45 -0
  92. package/dist/cjs/bundled_modules/d3-geo/src/projection/conicEqualArea.js +40 -0
  93. package/dist/cjs/bundled_modules/d3-geo/src/projection/conicEquidistant.js +39 -0
  94. package/dist/cjs/bundled_modules/d3-geo/src/projection/cylindricalEqualArea.js +19 -0
  95. package/dist/cjs/bundled_modules/d3-geo/src/projection/equalEarth.js +43 -0
  96. package/dist/cjs/bundled_modules/d3-geo/src/projection/equirectangular.js +19 -0
  97. package/dist/cjs/bundled_modules/d3-geo/src/projection/fit.js +54 -0
  98. package/dist/cjs/bundled_modules/d3-geo/src/projection/gnomonic.js +23 -0
  99. package/dist/cjs/bundled_modules/d3-geo/src/projection/identity.js +91 -0
  100. package/dist/cjs/bundled_modules/d3-geo/src/projection/index.js +184 -0
  101. package/dist/cjs/bundled_modules/d3-geo/src/projection/mercator.js +60 -0
  102. package/dist/cjs/bundled_modules/d3-geo/src/projection/naturalEarth1.js +35 -0
  103. package/dist/cjs/bundled_modules/d3-geo/src/projection/orthographic.js +22 -0
  104. package/dist/cjs/bundled_modules/d3-geo/src/projection/resample.js +108 -0
  105. package/dist/cjs/bundled_modules/d3-geo/src/projection/stereographic.js +25 -0
  106. package/dist/cjs/bundled_modules/d3-geo/src/projection/transverseMercator.js +34 -0
  107. package/dist/cjs/bundled_modules/d3-geo/src/rotation.js +86 -0
  108. package/dist/cjs/bundled_modules/d3-geo/src/stream.js +75 -0
  109. package/dist/cjs/bundled_modules/d3-geo/src/transform.js +24 -0
  110. package/dist/cjs/bundled_modules/d3-geo-projection/src/math.js +28 -0
  111. package/dist/cjs/bundled_modules/d3-geo-projection/src/mollweide.js +38 -0
  112. package/dist/cjs/bundled_modules/d3-hierarchy/src/accessors.js +13 -0
  113. package/dist/cjs/bundled_modules/d3-hierarchy/src/array.js +27 -0
  114. package/dist/cjs/bundled_modules/d3-hierarchy/src/cluster.js +90 -0
  115. package/dist/cjs/bundled_modules/d3-hierarchy/src/constant.js +16 -0
  116. package/dist/cjs/bundled_modules/d3-hierarchy/src/hierarchy/ancestors.js +13 -0
  117. package/dist/cjs/bundled_modules/d3-hierarchy/src/hierarchy/count.js +18 -0
  118. package/dist/cjs/bundled_modules/d3-hierarchy/src/hierarchy/descendants.js +9 -0
  119. package/dist/cjs/bundled_modules/d3-hierarchy/src/hierarchy/each.js +13 -0
  120. package/dist/cjs/bundled_modules/d3-hierarchy/src/hierarchy/eachAfter.js +21 -0
  121. package/dist/cjs/bundled_modules/d3-hierarchy/src/hierarchy/eachBefore.js +18 -0
  122. package/dist/cjs/bundled_modules/d3-hierarchy/src/hierarchy/find.js +14 -0
  123. package/dist/cjs/bundled_modules/d3-hierarchy/src/hierarchy/index.js +99 -0
  124. package/dist/cjs/bundled_modules/d3-hierarchy/src/hierarchy/iterator.js +20 -0
  125. package/dist/cjs/bundled_modules/d3-hierarchy/src/hierarchy/leaves.js +15 -0
  126. package/dist/cjs/bundled_modules/d3-hierarchy/src/hierarchy/links.js +15 -0
  127. package/dist/cjs/bundled_modules/d3-hierarchy/src/hierarchy/path.js +36 -0
  128. package/dist/cjs/bundled_modules/d3-hierarchy/src/hierarchy/sort.js +13 -0
  129. package/dist/cjs/bundled_modules/d3-hierarchy/src/hierarchy/sum.js +15 -0
  130. package/dist/cjs/bundled_modules/d3-hierarchy/src/lcg.js +15 -0
  131. package/dist/cjs/bundled_modules/d3-hierarchy/src/pack/enclose.js +122 -0
  132. package/dist/cjs/bundled_modules/d3-hierarchy/src/pack/index.js +87 -0
  133. package/dist/cjs/bundled_modules/d3-hierarchy/src/pack/siblings.js +118 -0
  134. package/dist/cjs/bundled_modules/d3-hierarchy/src/partition.js +58 -0
  135. package/dist/cjs/bundled_modules/d3-hierarchy/src/stratify.js +151 -0
  136. package/dist/cjs/bundled_modules/d3-hierarchy/src/tree.js +243 -0
  137. package/dist/cjs/bundled_modules/d3-hierarchy/src/treemap/binary.js +52 -0
  138. package/dist/cjs/bundled_modules/d3-hierarchy/src/treemap/dice.js +18 -0
  139. package/dist/cjs/bundled_modules/d3-hierarchy/src/treemap/index.js +100 -0
  140. package/dist/cjs/bundled_modules/d3-hierarchy/src/treemap/resquarify.js +42 -0
  141. package/dist/cjs/bundled_modules/d3-hierarchy/src/treemap/round.js +12 -0
  142. package/dist/cjs/bundled_modules/d3-hierarchy/src/treemap/slice.js +18 -0
  143. package/dist/cjs/bundled_modules/d3-hierarchy/src/treemap/sliceDice.js +12 -0
  144. package/dist/cjs/bundled_modules/d3-hierarchy/src/treemap/squarify.js +74 -0
  145. package/dist/cjs/bundled_modules/d3-interpolate/src/array.js +29 -0
  146. package/dist/cjs/bundled_modules/d3-interpolate/src/basis.js +26 -0
  147. package/dist/cjs/bundled_modules/d3-interpolate/src/basisClosed.js +19 -0
  148. package/dist/cjs/bundled_modules/d3-interpolate/src/color.js +37 -0
  149. package/dist/cjs/bundled_modules/d3-interpolate/src/constant.js +7 -0
  150. package/dist/cjs/bundled_modules/d3-interpolate/src/cubehelix.js +36 -0
  151. package/dist/cjs/bundled_modules/d3-interpolate/src/date.js +12 -0
  152. package/dist/cjs/bundled_modules/d3-interpolate/src/discrete.js +12 -0
  153. package/dist/cjs/bundled_modules/d3-interpolate/src/hcl.js +28 -0
  154. package/dist/cjs/bundled_modules/d3-interpolate/src/hsl.js +28 -0
  155. package/dist/cjs/bundled_modules/d3-interpolate/src/hue.js +15 -0
  156. package/dist/cjs/bundled_modules/d3-interpolate/src/index.js +53 -0
  157. package/dist/cjs/bundled_modules/d3-interpolate/src/lab.js +22 -0
  158. package/dist/cjs/bundled_modules/d3-interpolate/src/number.js +11 -0
  159. package/dist/cjs/bundled_modules/d3-interpolate/src/numberArray.js +21 -0
  160. package/dist/cjs/bundled_modules/d3-interpolate/src/object.js +29 -0
  161. package/dist/cjs/bundled_modules/d3-interpolate/src/piecewise.js +17 -0
  162. package/dist/cjs/bundled_modules/d3-interpolate/src/quantize.js +11 -0
  163. package/dist/cjs/bundled_modules/d3-interpolate/src/rgb.js +63 -0
  164. package/dist/cjs/bundled_modules/d3-interpolate/src/round.js +11 -0
  165. package/dist/cjs/bundled_modules/d3-interpolate/src/string.js +70 -0
  166. package/dist/cjs/bundled_modules/d3-interpolate/src/transform/decompose.js +33 -0
  167. package/dist/cjs/bundled_modules/d3-interpolate/src/transform/index.js +68 -0
  168. package/dist/cjs/bundled_modules/d3-interpolate/src/transform/parse.js +23 -0
  169. package/dist/cjs/bundled_modules/d3-interpolate/src/value.js +28 -0
  170. package/dist/cjs/bundled_modules/d3-interpolate/src/zoom.js +77 -0
  171. package/dist/cjs/bundled_modules/d3-path/src/path.js +157 -0
  172. package/dist/cjs/bundled_modules/d3-quadtree/src/add.js +91 -0
  173. package/dist/cjs/bundled_modules/d3-quadtree/src/cover.js +49 -0
  174. package/dist/cjs/bundled_modules/d3-quadtree/src/data.js +13 -0
  175. package/dist/cjs/bundled_modules/d3-quadtree/src/extent.js +11 -0
  176. package/dist/cjs/bundled_modules/d3-quadtree/src/find.js +76 -0
  177. package/dist/cjs/bundled_modules/d3-quadtree/src/quad.js +13 -0
  178. package/dist/cjs/bundled_modules/d3-quadtree/src/quadtree.js +79 -0
  179. package/dist/cjs/bundled_modules/d3-quadtree/src/remove.js +69 -0
  180. package/dist/cjs/bundled_modules/d3-quadtree/src/root.js +9 -0
  181. package/dist/cjs/bundled_modules/d3-quadtree/src/size.js +13 -0
  182. package/dist/cjs/bundled_modules/d3-quadtree/src/visit.js +22 -0
  183. package/dist/cjs/bundled_modules/d3-quadtree/src/visitAfter.js +27 -0
  184. package/dist/cjs/bundled_modules/d3-quadtree/src/x.js +14 -0
  185. package/dist/cjs/bundled_modules/d3-quadtree/src/y.js +14 -0
  186. package/dist/cjs/bundled_modules/d3-scale/src/constant.js +11 -0
  187. package/dist/cjs/bundled_modules/d3-scale/src/continuous.js +136 -0
  188. package/dist/cjs/bundled_modules/d3-scale/src/diverging.js +116 -0
  189. package/dist/cjs/bundled_modules/d3-scale/src/identity.js +34 -0
  190. package/dist/cjs/bundled_modules/d3-scale/src/init.js +31 -0
  191. package/dist/cjs/bundled_modules/d3-scale/src/linear.js +77 -0
  192. package/dist/cjs/bundled_modules/d3-scale/src/log.js +148 -0
  193. package/dist/cjs/bundled_modules/d3-scale/src/nice.js +24 -0
  194. package/dist/cjs/bundled_modules/d3-scale/src/number.js +9 -0
  195. package/dist/cjs/bundled_modules/d3-scale/src/ordinal.js +53 -0
  196. package/dist/cjs/bundled_modules/d3-scale/src/pow.js +58 -0
  197. package/dist/cjs/bundled_modules/d3-scale/src/quantile.js +65 -0
  198. package/dist/cjs/bundled_modules/d3-scale/src/quantize.js +62 -0
  199. package/dist/cjs/bundled_modules/d3-scale/src/sequential.js +119 -0
  200. package/dist/cjs/bundled_modules/d3-scale/src/symlog.js +42 -0
  201. package/dist/cjs/bundled_modules/d3-scale/src/threshold.js +45 -0
  202. package/dist/cjs/bundled_modules/d3-scale/src/tickFormat.js +39 -0
  203. package/dist/cjs/bundled_modules/d3-scale/src/time.js +85 -0
  204. package/dist/cjs/bundled_modules/d3-scale/src/utcTime.js +21 -0
  205. package/dist/cjs/bundled_modules/d3-scale-chromatic/src/categorical/Accent.js +9 -0
  206. package/dist/cjs/bundled_modules/d3-scale-chromatic/src/categorical/Dark2.js +9 -0
  207. package/dist/cjs/bundled_modules/d3-scale-chromatic/src/categorical/Paired.js +9 -0
  208. package/dist/cjs/bundled_modules/d3-scale-chromatic/src/categorical/Pastel1.js +9 -0
  209. package/dist/cjs/bundled_modules/d3-scale-chromatic/src/categorical/Pastel2.js +9 -0
  210. package/dist/cjs/bundled_modules/d3-scale-chromatic/src/categorical/Set1.js +9 -0
  211. package/dist/cjs/bundled_modules/d3-scale-chromatic/src/categorical/Set2.js +9 -0
  212. package/dist/cjs/bundled_modules/d3-scale-chromatic/src/categorical/Set3.js +9 -0
  213. package/dist/cjs/bundled_modules/d3-scale-chromatic/src/categorical/category10.js +9 -0
  214. package/dist/cjs/bundled_modules/d3-scale-chromatic/src/categorical/observable10.js +9 -0
  215. package/dist/cjs/bundled_modules/d3-scale-chromatic/src/colors.js +11 -0
  216. package/dist/cjs/bundled_modules/d3-shape/src/arc.js +274 -0
  217. package/dist/cjs/bundled_modules/d3-shape/src/area.js +118 -0
  218. package/dist/cjs/bundled_modules/d3-shape/src/array.js +11 -0
  219. package/dist/cjs/bundled_modules/d3-shape/src/constant.js +11 -0
  220. package/dist/cjs/bundled_modules/d3-shape/src/curve/basis.js +59 -0
  221. package/dist/cjs/bundled_modules/d3-shape/src/curve/basisClosed.js +58 -0
  222. package/dist/cjs/bundled_modules/d3-shape/src/curve/basisOpen.js +45 -0
  223. package/dist/cjs/bundled_modules/d3-shape/src/curve/bundle.js +62 -0
  224. package/dist/cjs/bundled_modules/d3-shape/src/curve/cardinal.js +69 -0
  225. package/dist/cjs/bundled_modules/d3-shape/src/curve/cardinalClosed.js +68 -0
  226. package/dist/cjs/bundled_modules/d3-shape/src/curve/cardinalOpen.js +56 -0
  227. package/dist/cjs/bundled_modules/d3-shape/src/curve/catmullRom.js +95 -0
  228. package/dist/cjs/bundled_modules/d3-shape/src/curve/catmullRomClosed.js +80 -0
  229. package/dist/cjs/bundled_modules/d3-shape/src/curve/catmullRomOpen.js +68 -0
  230. package/dist/cjs/bundled_modules/d3-shape/src/curve/linear.js +37 -0
  231. package/dist/cjs/bundled_modules/d3-shape/src/curve/linearClosed.js +31 -0
  232. package/dist/cjs/bundled_modules/d3-shape/src/curve/monotone.js +109 -0
  233. package/dist/cjs/bundled_modules/d3-shape/src/curve/natural.js +71 -0
  234. package/dist/cjs/bundled_modules/d3-shape/src/curve/step.js +61 -0
  235. package/dist/cjs/bundled_modules/d3-shape/src/line.js +64 -0
  236. package/dist/cjs/bundled_modules/d3-shape/src/math.js +36 -0
  237. package/dist/cjs/bundled_modules/d3-shape/src/noop.js +7 -0
  238. package/dist/cjs/bundled_modules/d3-shape/src/path.js +23 -0
  239. package/dist/cjs/bundled_modules/d3-shape/src/point.js +12 -0
  240. package/dist/cjs/bundled_modules/d3-shape/src/symbol/circle.js +15 -0
  241. package/dist/cjs/bundled_modules/d3-shape/src/symbol.js +38 -0
  242. package/dist/cjs/bundled_modules/d3-time/src/day.js +41 -0
  243. package/dist/cjs/bundled_modules/d3-time/src/duration.js +17 -0
  244. package/dist/cjs/bundled_modules/d3-time/src/hour.js +31 -0
  245. package/dist/cjs/bundled_modules/d3-time/src/interval.js +73 -0
  246. package/dist/cjs/bundled_modules/d3-time/src/millisecond.js +29 -0
  247. package/dist/cjs/bundled_modules/d3-time/src/minute.js +31 -0
  248. package/dist/cjs/bundled_modules/d3-time/src/month.js +32 -0
  249. package/dist/cjs/bundled_modules/d3-time/src/second.js +18 -0
  250. package/dist/cjs/bundled_modules/d3-time/src/ticks.js +64 -0
  251. package/dist/cjs/bundled_modules/d3-time/src/week.js +73 -0
  252. package/dist/cjs/bundled_modules/d3-time/src/year.js +54 -0
  253. package/dist/cjs/bundled_modules/d3-time-format/src/defaultLocale.js +33 -0
  254. package/dist/cjs/bundled_modules/d3-time-format/src/locale.js +694 -0
  255. package/dist/cjs/bundled_modules/d3-timer/src/interval.js +23 -0
  256. package/dist/cjs/bundled_modules/d3-timer/src/timer.js +117 -0
  257. package/dist/cjs/bundled_modules/delaunator/index.js +485 -0
  258. package/dist/cjs/bundled_modules/internmap/src/index.js +66 -0
  259. package/dist/cjs/bundled_modules/json-stringify-pretty-compact/index.js +104 -0
  260. package/dist/cjs/bundled_modules/robust-predicates/esm/orient2d.js +184 -0
  261. package/dist/cjs/bundled_modules/robust-predicates/esm/util.js +95 -0
  262. package/dist/cjs/bundled_modules/topojson-client/src/feature.js +77 -0
  263. package/dist/cjs/bundled_modules/topojson-client/src/identity.js +9 -0
  264. package/dist/cjs/bundled_modules/topojson-client/src/mesh.js +60 -0
  265. package/dist/cjs/bundled_modules/topojson-client/src/reverse.js +10 -0
  266. package/dist/cjs/bundled_modules/topojson-client/src/stitch.js +79 -0
  267. package/dist/cjs/bundled_modules/topojson-client/src/transform.js +25 -0
  268. package/dist/cjs/bundled_modules/vega/build/vega.module.js +272 -0
  269. package/dist/cjs/bundled_modules/vega-canvas/build/vega-canvas.browser.js +18 -0
  270. package/dist/cjs/bundled_modules/vega-crossfilter/build/vega-crossfilter.js +676 -0
  271. package/dist/cjs/bundled_modules/vega-dataflow/build/vega-dataflow.js +2102 -0
  272. package/dist/cjs/bundled_modules/vega-embed/build/embed.js +2939 -0
  273. package/dist/cjs/bundled_modules/vega-encode/build/vega-encode.js +962 -0
  274. package/dist/cjs/bundled_modules/vega-event-selector/build/vega-event-selector.js +192 -0
  275. package/dist/cjs/bundled_modules/vega-expression/build/vega-expression.js +1615 -0
  276. package/dist/cjs/bundled_modules/vega-force/build/vega-force.js +295 -0
  277. package/dist/cjs/bundled_modules/vega-format/build/vega-format.js +201 -0
  278. package/dist/cjs/bundled_modules/vega-functions/build/vega-functions.js +842 -0
  279. package/dist/cjs/bundled_modules/vega-geo/build/vega-geo.js +1333 -0
  280. package/dist/cjs/bundled_modules/vega-hierarchy/build/vega-hierarchy.js +580 -0
  281. package/dist/cjs/bundled_modules/vega-interpreter/build/vega-interpreter.js +310 -0
  282. package/dist/cjs/bundled_modules/vega-label/build/vega-label.js +876 -0
  283. package/dist/cjs/bundled_modules/vega-lite/build/index.js +20157 -0
  284. package/dist/cjs/bundled_modules/vega-loader/build/vega-loader.browser.js +337 -0
  285. package/dist/cjs/bundled_modules/vega-parser/build/vega-parser.js +3805 -0
  286. package/dist/cjs/bundled_modules/vega-projection/build/vega-projection.js +90 -0
  287. package/dist/cjs/bundled_modules/vega-regression/build/vega-regression.js +236 -0
  288. package/dist/cjs/bundled_modules/vega-runtime/build/vega-runtime.js +588 -0
  289. package/dist/cjs/bundled_modules/vega-scale/build/vega-scale.js +846 -0
  290. package/dist/cjs/bundled_modules/vega-scenegraph/build/vega-scenegraph.js +5040 -0
  291. package/dist/cjs/bundled_modules/vega-schema-url-parser/dist/parser.modern.js +7 -0
  292. package/dist/cjs/bundled_modules/vega-selections/build/vega-selection.js +342 -0
  293. package/dist/cjs/bundled_modules/vega-statistics/build/vega-statistics.js +1193 -0
  294. package/dist/cjs/bundled_modules/vega-themes/build/index.js +853 -0
  295. package/dist/cjs/bundled_modules/vega-time/build/vega-time.js +342 -0
  296. package/dist/cjs/bundled_modules/vega-tooltip/build/index.js +353 -0
  297. package/dist/cjs/bundled_modules/vega-transforms/build/vega-transforms.js +3781 -0
  298. package/dist/cjs/bundled_modules/vega-util/build/vega-util.js +824 -0
  299. package/dist/cjs/bundled_modules/vega-view/build/vega-view.js +1306 -0
  300. package/dist/cjs/bundled_modules/vega-view-transforms/build/vega-view-transforms.js +1313 -0
  301. package/dist/cjs/bundled_modules/vega-voronoi/build/vega-voronoi.js +80 -0
  302. package/dist/cjs/bundled_modules/vega-wordcloud/build/vega-wordcloud.js +540 -0
  303. package/dist/cjs/unstable/extras/chart/BarChart.js +42 -0
  304. package/dist/cjs/unstable/extras/chart/Chart.js +100 -0
  305. package/dist/cjs/unstable/extras/chart/DistributionChart.js +84 -0
  306. package/dist/cjs/unstable/extras/chart/DonutChart.js +43 -0
  307. package/dist/cjs/unstable/extras/chart/LineChart.js +45 -0
  308. package/dist/cjs/unstable/extras/chart/PieChart.js +39 -0
  309. package/dist/cjs/unstable/extras/chart/TimelineChart.js +48 -0
  310. package/dist/cjs/unstable/extras/chart/index.js +23 -0
  311. package/dist/esm/bundled_modules/d3-array/src/ascending.js +5 -0
  312. package/dist/esm/bundled_modules/d3-array/src/bisect.js +10 -0
  313. package/dist/esm/bundled_modules/d3-array/src/bisector.js +58 -0
  314. package/dist/esm/bundled_modules/d3-array/src/descending.js +9 -0
  315. package/dist/esm/bundled_modules/d3-array/src/deviation.js +8 -0
  316. package/dist/esm/bundled_modules/d3-array/src/fsum.js +43 -0
  317. package/dist/esm/bundled_modules/d3-array/src/intersection.js +21 -0
  318. package/dist/esm/bundled_modules/d3-array/src/max.js +22 -0
  319. package/dist/esm/bundled_modules/d3-array/src/mean.js +21 -0
  320. package/dist/esm/bundled_modules/d3-array/src/median.js +7 -0
  321. package/dist/esm/bundled_modules/d3-array/src/merge.js +11 -0
  322. package/dist/esm/bundled_modules/d3-array/src/min.js +22 -0
  323. package/dist/esm/bundled_modules/d3-array/src/number.js +22 -0
  324. package/dist/esm/bundled_modules/d3-array/src/permute.js +5 -0
  325. package/dist/esm/bundled_modules/d3-array/src/quantile.js +31 -0
  326. package/dist/esm/bundled_modules/d3-array/src/quickselect.js +55 -0
  327. package/dist/esm/bundled_modules/d3-array/src/range.js +15 -0
  328. package/dist/esm/bundled_modules/d3-array/src/sort.js +17 -0
  329. package/dist/esm/bundled_modules/d3-array/src/sum.js +13 -0
  330. package/dist/esm/bundled_modules/d3-array/src/ticks.js +57 -0
  331. package/dist/esm/bundled_modules/d3-array/src/union.js +13 -0
  332. package/dist/esm/bundled_modules/d3-array/src/variance.js +27 -0
  333. package/dist/esm/bundled_modules/d3-color/src/color.js +398 -0
  334. package/dist/esm/bundled_modules/d3-color/src/cubehelix.js +63 -0
  335. package/dist/esm/bundled_modules/d3-color/src/define.js +12 -0
  336. package/dist/esm/bundled_modules/d3-color/src/lab.js +117 -0
  337. package/dist/esm/bundled_modules/d3-color/src/math.js +4 -0
  338. package/dist/esm/bundled_modules/d3-delaunay/src/delaunay.js +250 -0
  339. package/dist/esm/bundled_modules/d3-delaunay/src/path.js +39 -0
  340. package/dist/esm/bundled_modules/d3-delaunay/src/polygon.js +19 -0
  341. package/dist/esm/bundled_modules/d3-delaunay/src/voronoi.js +334 -0
  342. package/dist/esm/bundled_modules/d3-dispatch/src/dispatch.js +84 -0
  343. package/dist/esm/bundled_modules/d3-dsv/src/dsv.js +166 -0
  344. package/dist/esm/bundled_modules/d3-force/src/center.js +42 -0
  345. package/dist/esm/bundled_modules/d3-force/src/collide.js +102 -0
  346. package/dist/esm/bundled_modules/d3-force/src/constant.js +7 -0
  347. package/dist/esm/bundled_modules/d3-force/src/jiggle.js +5 -0
  348. package/dist/esm/bundled_modules/d3-force/src/lcg.js +11 -0
  349. package/dist/esm/bundled_modules/d3-force/src/link.js +119 -0
  350. package/dist/esm/bundled_modules/d3-force/src/manyBody.js +118 -0
  351. package/dist/esm/bundled_modules/d3-force/src/simulation.js +158 -0
  352. package/dist/esm/bundled_modules/d3-force/src/x.js +43 -0
  353. package/dist/esm/bundled_modules/d3-force/src/y.js +43 -0
  354. package/dist/esm/bundled_modules/d3-format/src/defaultLocale.js +20 -0
  355. package/dist/esm/bundled_modules/d3-format/src/exponent.js +7 -0
  356. package/dist/esm/bundled_modules/d3-format/src/formatDecimal.js +22 -0
  357. package/dist/esm/bundled_modules/d3-format/src/formatGroup.js +20 -0
  358. package/dist/esm/bundled_modules/d3-format/src/formatNumerals.js +9 -0
  359. package/dist/esm/bundled_modules/d3-format/src/formatPrefixAuto.js +18 -0
  360. package/dist/esm/bundled_modules/d3-format/src/formatRounded.js +13 -0
  361. package/dist/esm/bundled_modules/d3-format/src/formatSpecifier.js +49 -0
  362. package/dist/esm/bundled_modules/d3-format/src/formatTrim.js +13 -0
  363. package/dist/esm/bundled_modules/d3-format/src/formatTypes.js +21 -0
  364. package/dist/esm/bundled_modules/d3-format/src/identity.js +5 -0
  365. package/dist/esm/bundled_modules/d3-format/src/locale.js +150 -0
  366. package/dist/esm/bundled_modules/d3-format/src/precisionFixed.js +7 -0
  367. package/dist/esm/bundled_modules/d3-format/src/precisionPrefix.js +7 -0
  368. package/dist/esm/bundled_modules/d3-format/src/precisionRound.js +8 -0
  369. package/dist/esm/bundled_modules/d3-geo/src/area.js +78 -0
  370. package/dist/esm/bundled_modules/d3-geo/src/bounds.js +181 -0
  371. package/dist/esm/bundled_modules/d3-geo/src/cartesian.js +35 -0
  372. package/dist/esm/bundled_modules/d3-geo/src/centroid.js +145 -0
  373. package/dist/esm/bundled_modules/d3-geo/src/circle.js +33 -0
  374. package/dist/esm/bundled_modules/d3-geo/src/clip/antimeridian.js +94 -0
  375. package/dist/esm/bundled_modules/d3-geo/src/clip/buffer.js +26 -0
  376. package/dist/esm/bundled_modules/d3-geo/src/clip/circle.js +179 -0
  377. package/dist/esm/bundled_modules/d3-geo/src/clip/index.js +133 -0
  378. package/dist/esm/bundled_modules/d3-geo/src/clip/line.js +61 -0
  379. package/dist/esm/bundled_modules/d3-geo/src/clip/rectangle.js +170 -0
  380. package/dist/esm/bundled_modules/d3-geo/src/clip/rejoin.js +105 -0
  381. package/dist/esm/bundled_modules/d3-geo/src/compose.js +14 -0
  382. package/dist/esm/bundled_modules/d3-geo/src/graticule.js +103 -0
  383. package/dist/esm/bundled_modules/d3-geo/src/identity.js +3 -0
  384. package/dist/esm/bundled_modules/d3-geo/src/math.js +33 -0
  385. package/dist/esm/bundled_modules/d3-geo/src/noop.js +3 -0
  386. package/dist/esm/bundled_modules/d3-geo/src/path/area.js +50 -0
  387. package/dist/esm/bundled_modules/d3-geo/src/path/bounds.js +28 -0
  388. package/dist/esm/bundled_modules/d3-geo/src/path/centroid.js +100 -0
  389. package/dist/esm/bundled_modules/d3-geo/src/path/context.js +47 -0
  390. package/dist/esm/bundled_modules/d3-geo/src/path/index.js +78 -0
  391. package/dist/esm/bundled_modules/d3-geo/src/path/measure.js +45 -0
  392. package/dist/esm/bundled_modules/d3-geo/src/path/string.js +88 -0
  393. package/dist/esm/bundled_modules/d3-geo/src/pointEqual.js +7 -0
  394. package/dist/esm/bundled_modules/d3-geo/src/polygonContains.js +76 -0
  395. package/dist/esm/bundled_modules/d3-geo/src/projection/albers.js +12 -0
  396. package/dist/esm/bundled_modules/d3-geo/src/projection/albersUsa.js +113 -0
  397. package/dist/esm/bundled_modules/d3-geo/src/projection/azimuthal.js +29 -0
  398. package/dist/esm/bundled_modules/d3-geo/src/projection/azimuthalEqualArea.js +19 -0
  399. package/dist/esm/bundled_modules/d3-geo/src/projection/azimuthalEquidistant.js +19 -0
  400. package/dist/esm/bundled_modules/d3-geo/src/projection/conic.js +17 -0
  401. package/dist/esm/bundled_modules/d3-geo/src/projection/conicConformal.js +40 -0
  402. package/dist/esm/bundled_modules/d3-geo/src/projection/conicEqualArea.js +35 -0
  403. package/dist/esm/bundled_modules/d3-geo/src/projection/conicEquidistant.js +34 -0
  404. package/dist/esm/bundled_modules/d3-geo/src/projection/cylindricalEqualArea.js +17 -0
  405. package/dist/esm/bundled_modules/d3-geo/src/projection/equalEarth.js +38 -0
  406. package/dist/esm/bundled_modules/d3-geo/src/projection/equirectangular.js +14 -0
  407. package/dist/esm/bundled_modules/d3-geo/src/projection/fit.js +49 -0
  408. package/dist/esm/bundled_modules/d3-geo/src/projection/gnomonic.js +18 -0
  409. package/dist/esm/bundled_modules/d3-geo/src/projection/identity.js +87 -0
  410. package/dist/esm/bundled_modules/d3-geo/src/projection/index.js +179 -0
  411. package/dist/esm/bundled_modules/d3-geo/src/projection/mercator.js +54 -0
  412. package/dist/esm/bundled_modules/d3-geo/src/projection/naturalEarth1.js +30 -0
  413. package/dist/esm/bundled_modules/d3-geo/src/projection/orthographic.js +17 -0
  414. package/dist/esm/bundled_modules/d3-geo/src/projection/resample.js +104 -0
  415. package/dist/esm/bundled_modules/d3-geo/src/projection/stereographic.js +20 -0
  416. package/dist/esm/bundled_modules/d3-geo/src/projection/transverseMercator.js +29 -0
  417. package/dist/esm/bundled_modules/d3-geo/src/rotation.js +81 -0
  418. package/dist/esm/bundled_modules/d3-geo/src/stream.js +71 -0
  419. package/dist/esm/bundled_modules/d3-geo/src/transform.js +22 -0
  420. package/dist/esm/bundled_modules/d3-geo-projection/src/math.js +18 -0
  421. package/dist/esm/bundled_modules/d3-geo-projection/src/mollweide.js +31 -0
  422. package/dist/esm/bundled_modules/d3-hierarchy/src/accessors.js +10 -0
  423. package/dist/esm/bundled_modules/d3-hierarchy/src/array.js +22 -0
  424. package/dist/esm/bundled_modules/d3-hierarchy/src/cluster.js +86 -0
  425. package/dist/esm/bundled_modules/d3-hierarchy/src/constant.js +11 -0
  426. package/dist/esm/bundled_modules/d3-hierarchy/src/hierarchy/ancestors.js +9 -0
  427. package/dist/esm/bundled_modules/d3-hierarchy/src/hierarchy/count.js +14 -0
  428. package/dist/esm/bundled_modules/d3-hierarchy/src/hierarchy/descendants.js +5 -0
  429. package/dist/esm/bundled_modules/d3-hierarchy/src/hierarchy/each.js +9 -0
  430. package/dist/esm/bundled_modules/d3-hierarchy/src/hierarchy/eachAfter.js +17 -0
  431. package/dist/esm/bundled_modules/d3-hierarchy/src/hierarchy/eachBefore.js +14 -0
  432. package/dist/esm/bundled_modules/d3-hierarchy/src/hierarchy/find.js +10 -0
  433. package/dist/esm/bundled_modules/d3-hierarchy/src/hierarchy/index.js +93 -0
  434. package/dist/esm/bundled_modules/d3-hierarchy/src/hierarchy/iterator.js +16 -0
  435. package/dist/esm/bundled_modules/d3-hierarchy/src/hierarchy/leaves.js +11 -0
  436. package/dist/esm/bundled_modules/d3-hierarchy/src/hierarchy/links.js +11 -0
  437. package/dist/esm/bundled_modules/d3-hierarchy/src/hierarchy/path.js +32 -0
  438. package/dist/esm/bundled_modules/d3-hierarchy/src/hierarchy/sort.js +9 -0
  439. package/dist/esm/bundled_modules/d3-hierarchy/src/hierarchy/sum.js +11 -0
  440. package/dist/esm/bundled_modules/d3-hierarchy/src/lcg.js +11 -0
  441. package/dist/esm/bundled_modules/d3-hierarchy/src/pack/enclose.js +120 -0
  442. package/dist/esm/bundled_modules/d3-hierarchy/src/pack/index.js +83 -0
  443. package/dist/esm/bundled_modules/d3-hierarchy/src/pack/siblings.js +116 -0
  444. package/dist/esm/bundled_modules/d3-hierarchy/src/partition.js +54 -0
  445. package/dist/esm/bundled_modules/d3-hierarchy/src/stratify.js +147 -0
  446. package/dist/esm/bundled_modules/d3-hierarchy/src/tree.js +239 -0
  447. package/dist/esm/bundled_modules/d3-hierarchy/src/treemap/binary.js +48 -0
  448. package/dist/esm/bundled_modules/d3-hierarchy/src/treemap/dice.js +14 -0
  449. package/dist/esm/bundled_modules/d3-hierarchy/src/treemap/index.js +96 -0
  450. package/dist/esm/bundled_modules/d3-hierarchy/src/treemap/resquarify.js +38 -0
  451. package/dist/esm/bundled_modules/d3-hierarchy/src/treemap/round.js +8 -0
  452. package/dist/esm/bundled_modules/d3-hierarchy/src/treemap/slice.js +14 -0
  453. package/dist/esm/bundled_modules/d3-hierarchy/src/treemap/sliceDice.js +8 -0
  454. package/dist/esm/bundled_modules/d3-hierarchy/src/treemap/squarify.js +68 -0
  455. package/dist/esm/bundled_modules/d3-interpolate/src/array.js +24 -0
  456. package/dist/esm/bundled_modules/d3-interpolate/src/basis.js +21 -0
  457. package/dist/esm/bundled_modules/d3-interpolate/src/basisClosed.js +15 -0
  458. package/dist/esm/bundled_modules/d3-interpolate/src/color.js +31 -0
  459. package/dist/esm/bundled_modules/d3-interpolate/src/constant.js +3 -0
  460. package/dist/esm/bundled_modules/d3-interpolate/src/cubehelix.js +31 -0
  461. package/dist/esm/bundled_modules/d3-interpolate/src/date.js +8 -0
  462. package/dist/esm/bundled_modules/d3-interpolate/src/discrete.js +8 -0
  463. package/dist/esm/bundled_modules/d3-interpolate/src/hcl.js +23 -0
  464. package/dist/esm/bundled_modules/d3-interpolate/src/hsl.js +23 -0
  465. package/dist/esm/bundled_modules/d3-interpolate/src/hue.js +11 -0
  466. package/dist/esm/bundled_modules/d3-interpolate/src/index.js +21 -0
  467. package/dist/esm/bundled_modules/d3-interpolate/src/lab.js +18 -0
  468. package/dist/esm/bundled_modules/d3-interpolate/src/number.js +7 -0
  469. package/dist/esm/bundled_modules/d3-interpolate/src/numberArray.js +16 -0
  470. package/dist/esm/bundled_modules/d3-interpolate/src/object.js +25 -0
  471. package/dist/esm/bundled_modules/d3-interpolate/src/piecewise.js +13 -0
  472. package/dist/esm/bundled_modules/d3-interpolate/src/quantize.js +7 -0
  473. package/dist/esm/bundled_modules/d3-interpolate/src/rgb.js +57 -0
  474. package/dist/esm/bundled_modules/d3-interpolate/src/round.js +7 -0
  475. package/dist/esm/bundled_modules/d3-interpolate/src/string.js +66 -0
  476. package/dist/esm/bundled_modules/d3-interpolate/src/transform/decompose.js +28 -0
  477. package/dist/esm/bundled_modules/d3-interpolate/src/transform/index.js +65 -0
  478. package/dist/esm/bundled_modules/d3-interpolate/src/transform/parse.js +20 -0
  479. package/dist/esm/bundled_modules/d3-interpolate/src/value.js +24 -0
  480. package/dist/esm/bundled_modules/d3-interpolate/src/zoom.js +73 -0
  481. package/dist/esm/bundled_modules/d3-path/src/path.js +154 -0
  482. package/dist/esm/bundled_modules/d3-quadtree/src/add.js +86 -0
  483. package/dist/esm/bundled_modules/d3-quadtree/src/cover.js +45 -0
  484. package/dist/esm/bundled_modules/d3-quadtree/src/data.js +9 -0
  485. package/dist/esm/bundled_modules/d3-quadtree/src/extent.js +7 -0
  486. package/dist/esm/bundled_modules/d3-quadtree/src/find.js +72 -0
  487. package/dist/esm/bundled_modules/d3-quadtree/src/quad.js +9 -0
  488. package/dist/esm/bundled_modules/d3-quadtree/src/quadtree.js +75 -0
  489. package/dist/esm/bundled_modules/d3-quadtree/src/remove.js +64 -0
  490. package/dist/esm/bundled_modules/d3-quadtree/src/root.js +5 -0
  491. package/dist/esm/bundled_modules/d3-quadtree/src/size.js +9 -0
  492. package/dist/esm/bundled_modules/d3-quadtree/src/visit.js +18 -0
  493. package/dist/esm/bundled_modules/d3-quadtree/src/visitAfter.js +23 -0
  494. package/dist/esm/bundled_modules/d3-quadtree/src/x.js +9 -0
  495. package/dist/esm/bundled_modules/d3-quadtree/src/y.js +9 -0
  496. package/dist/esm/bundled_modules/d3-scale/src/constant.js +7 -0
  497. package/dist/esm/bundled_modules/d3-scale/src/continuous.js +129 -0
  498. package/dist/esm/bundled_modules/d3-scale/src/diverging.js +108 -0
  499. package/dist/esm/bundled_modules/d3-scale/src/identity.js +30 -0
  500. package/dist/esm/bundled_modules/d3-scale/src/init.js +28 -0
  501. package/dist/esm/bundled_modules/d3-scale/src/linear.js +72 -0
  502. package/dist/esm/bundled_modules/d3-scale/src/log.js +143 -0
  503. package/dist/esm/bundled_modules/d3-scale/src/nice.js +20 -0
  504. package/dist/esm/bundled_modules/d3-scale/src/number.js +5 -0
  505. package/dist/esm/bundled_modules/d3-scale/src/ordinal.js +48 -0
  506. package/dist/esm/bundled_modules/d3-scale/src/pow.js +52 -0
  507. package/dist/esm/bundled_modules/d3-scale/src/quantile.js +61 -0
  508. package/dist/esm/bundled_modules/d3-scale/src/quantize.js +58 -0
  509. package/dist/esm/bundled_modules/d3-scale/src/sequential.js +110 -0
  510. package/dist/esm/bundled_modules/d3-scale/src/symlog.js +37 -0
  511. package/dist/esm/bundled_modules/d3-scale/src/threshold.js +41 -0
  512. package/dist/esm/bundled_modules/d3-scale/src/tickFormat.js +35 -0
  513. package/dist/esm/bundled_modules/d3-scale/src/time.js +80 -0
  514. package/dist/esm/bundled_modules/d3-scale/src/utcTime.js +17 -0
  515. package/dist/esm/bundled_modules/d3-scale-chromatic/src/categorical/Accent.js +5 -0
  516. package/dist/esm/bundled_modules/d3-scale-chromatic/src/categorical/Dark2.js +5 -0
  517. package/dist/esm/bundled_modules/d3-scale-chromatic/src/categorical/Paired.js +5 -0
  518. package/dist/esm/bundled_modules/d3-scale-chromatic/src/categorical/Pastel1.js +5 -0
  519. package/dist/esm/bundled_modules/d3-scale-chromatic/src/categorical/Pastel2.js +5 -0
  520. package/dist/esm/bundled_modules/d3-scale-chromatic/src/categorical/Set1.js +5 -0
  521. package/dist/esm/bundled_modules/d3-scale-chromatic/src/categorical/Set2.js +5 -0
  522. package/dist/esm/bundled_modules/d3-scale-chromatic/src/categorical/Set3.js +5 -0
  523. package/dist/esm/bundled_modules/d3-scale-chromatic/src/categorical/category10.js +5 -0
  524. package/dist/esm/bundled_modules/d3-scale-chromatic/src/categorical/observable10.js +5 -0
  525. package/dist/esm/bundled_modules/d3-scale-chromatic/src/colors.js +7 -0
  526. package/dist/esm/bundled_modules/d3-shape/src/arc.js +270 -0
  527. package/dist/esm/bundled_modules/d3-shape/src/area.js +114 -0
  528. package/dist/esm/bundled_modules/d3-shape/src/array.js +7 -0
  529. package/dist/esm/bundled_modules/d3-shape/src/constant.js +7 -0
  530. package/dist/esm/bundled_modules/d3-shape/src/curve/basis.js +53 -0
  531. package/dist/esm/bundled_modules/d3-shape/src/curve/basisClosed.js +54 -0
  532. package/dist/esm/bundled_modules/d3-shape/src/curve/basisOpen.js +41 -0
  533. package/dist/esm/bundled_modules/d3-shape/src/curve/bundle.js +58 -0
  534. package/dist/esm/bundled_modules/d3-shape/src/curve/cardinal.js +63 -0
  535. package/dist/esm/bundled_modules/d3-shape/src/curve/cardinalClosed.js +63 -0
  536. package/dist/esm/bundled_modules/d3-shape/src/curve/cardinalOpen.js +51 -0
  537. package/dist/esm/bundled_modules/d3-shape/src/curve/catmullRom.js +90 -0
  538. package/dist/esm/bundled_modules/d3-shape/src/curve/catmullRomClosed.js +76 -0
  539. package/dist/esm/bundled_modules/d3-shape/src/curve/catmullRomOpen.js +64 -0
  540. package/dist/esm/bundled_modules/d3-shape/src/curve/linear.js +33 -0
  541. package/dist/esm/bundled_modules/d3-shape/src/curve/linearClosed.js +27 -0
  542. package/dist/esm/bundled_modules/d3-shape/src/curve/monotone.js +106 -0
  543. package/dist/esm/bundled_modules/d3-shape/src/curve/natural.js +67 -0
  544. package/dist/esm/bundled_modules/d3-shape/src/curve/step.js +55 -0
  545. package/dist/esm/bundled_modules/d3-shape/src/line.js +60 -0
  546. package/dist/esm/bundled_modules/d3-shape/src/math.js +22 -0
  547. package/dist/esm/bundled_modules/d3-shape/src/noop.js +3 -0
  548. package/dist/esm/bundled_modules/d3-shape/src/path.js +21 -0
  549. package/dist/esm/bundled_modules/d3-shape/src/point.js +9 -0
  550. package/dist/esm/bundled_modules/d3-shape/src/symbol/circle.js +11 -0
  551. package/dist/esm/bundled_modules/d3-shape/src/symbol.js +34 -0
  552. package/dist/esm/bundled_modules/d3-time/src/day.js +37 -0
  553. package/dist/esm/bundled_modules/d3-time/src/duration.js +9 -0
  554. package/dist/esm/bundled_modules/d3-time/src/hour.js +28 -0
  555. package/dist/esm/bundled_modules/d3-time/src/interval.js +71 -0
  556. package/dist/esm/bundled_modules/d3-time/src/millisecond.js +27 -0
  557. package/dist/esm/bundled_modules/d3-time/src/minute.js +28 -0
  558. package/dist/esm/bundled_modules/d3-time/src/month.js +29 -0
  559. package/dist/esm/bundled_modules/d3-time/src/second.js +16 -0
  560. package/dist/esm/bundled_modules/d3-time/src/ticks.js +59 -0
  561. package/dist/esm/bundled_modules/d3-time/src/week.js +58 -0
  562. package/dist/esm/bundled_modules/d3-time/src/year.js +51 -0
  563. package/dist/esm/bundled_modules/d3-time-format/src/defaultLocale.js +29 -0
  564. package/dist/esm/bundled_modules/d3-time-format/src/locale.js +690 -0
  565. package/dist/esm/bundled_modules/d3-timer/src/interval.js +19 -0
  566. package/dist/esm/bundled_modules/d3-timer/src/timer.js +112 -0
  567. package/dist/esm/bundled_modules/delaunator/index.js +481 -0
  568. package/dist/esm/bundled_modules/internmap/src/index.js +63 -0
  569. package/dist/esm/bundled_modules/json-stringify-pretty-compact/index.js +100 -0
  570. package/dist/esm/bundled_modules/robust-predicates/esm/orient2d.js +182 -0
  571. package/dist/esm/bundled_modules/robust-predicates/esm/util.js +88 -0
  572. package/dist/esm/bundled_modules/topojson-client/src/feature.js +72 -0
  573. package/dist/esm/bundled_modules/topojson-client/src/identity.js +5 -0
  574. package/dist/esm/bundled_modules/topojson-client/src/mesh.js +55 -0
  575. package/dist/esm/bundled_modules/topojson-client/src/reverse.js +6 -0
  576. package/dist/esm/bundled_modules/topojson-client/src/stitch.js +75 -0
  577. package/dist/esm/bundled_modules/topojson-client/src/transform.js +21 -0
  578. package/dist/esm/bundled_modules/vega/build/vega.module.js +38 -0
  579. package/dist/esm/bundled_modules/vega-canvas/build/vega-canvas.browser.js +14 -0
  580. package/dist/esm/bundled_modules/vega-crossfilter/build/vega-crossfilter.js +673 -0
  581. package/dist/esm/bundled_modules/vega-dataflow/build/vega-dataflow.js +2080 -0
  582. package/dist/esm/bundled_modules/vega-embed/build/embed.js +2932 -0
  583. package/dist/esm/bundled_modules/vega-encode/build/vega-encode.js +952 -0
  584. package/dist/esm/bundled_modules/vega-event-selector/build/vega-event-selector.js +190 -0
  585. package/dist/esm/bundled_modules/vega-expression/build/vega-expression.js +1597 -0
  586. package/dist/esm/bundled_modules/vega-force/build/vega-force.js +293 -0
  587. package/dist/esm/bundled_modules/vega-format/build/vega-format.js +191 -0
  588. package/dist/esm/bundled_modules/vega-functions/build/vega-functions.js +779 -0
  589. package/dist/esm/bundled_modules/vega-geo/build/vega-geo.js +1322 -0
  590. package/dist/esm/bundled_modules/vega-hierarchy/build/vega-hierarchy.js +572 -0
  591. package/dist/esm/bundled_modules/vega-interpreter/build/vega-interpreter.js +308 -0
  592. package/dist/esm/bundled_modules/vega-label/build/vega-label.js +874 -0
  593. package/dist/esm/bundled_modules/vega-lite/build/index.js +20110 -0
  594. package/dist/esm/bundled_modules/vega-loader/build/vega-loader.browser.js +328 -0
  595. package/dist/esm/bundled_modules/vega-parser/build/vega-parser.js +3783 -0
  596. package/dist/esm/bundled_modules/vega-projection/build/vega-projection.js +86 -0
  597. package/dist/esm/bundled_modules/vega-regression/build/vega-regression.js +233 -0
  598. package/dist/esm/bundled_modules/vega-runtime/build/vega-runtime.js +586 -0
  599. package/dist/esm/bundled_modules/vega-scale/build/vega-scale.js +799 -0
  600. package/dist/esm/bundled_modules/vega-scenegraph/build/vega-scenegraph.js +4982 -0
  601. package/dist/esm/bundled_modules/vega-schema-url-parser/dist/parser.modern.js +3 -0
  602. package/dist/esm/bundled_modules/vega-selections/build/vega-selection.js +336 -0
  603. package/dist/esm/bundled_modules/vega-statistics/build/vega-statistics.js +1157 -0
  604. package/dist/esm/bundled_modules/vega-themes/build/index.js +837 -0
  605. package/dist/esm/bundled_modules/vega-time/build/vega-time.js +314 -0
  606. package/dist/esm/bundled_modules/vega-tooltip/build/index.js +339 -0
  607. package/dist/esm/bundled_modules/vega-transforms/build/vega-transforms.js +3740 -0
  608. package/dist/esm/bundled_modules/vega-util/build/vega-util.js +753 -0
  609. package/dist/esm/bundled_modules/vega-view/build/vega-view.js +1304 -0
  610. package/dist/esm/bundled_modules/vega-view-transforms/build/vega-view-transforms.js +1306 -0
  611. package/dist/esm/bundled_modules/vega-voronoi/build/vega-voronoi.js +78 -0
  612. package/dist/esm/bundled_modules/vega-wordcloud/build/vega-wordcloud.js +538 -0
  613. package/dist/esm/unstable/extras/chart/BarChart.js +40 -0
  614. package/dist/esm/unstable/extras/chart/Chart.js +96 -0
  615. package/dist/esm/unstable/extras/chart/DistributionChart.js +82 -0
  616. package/dist/esm/unstable/extras/chart/DonutChart.js +41 -0
  617. package/dist/esm/unstable/extras/chart/LineChart.js +43 -0
  618. package/dist/esm/unstable/extras/chart/PieChart.js +37 -0
  619. package/dist/esm/unstable/extras/chart/TimelineChart.js +46 -0
  620. package/dist/esm/unstable/extras/chart/index.js +8 -0
  621. package/dist/types/unstable/extras/chart/BarChart.d.ts +16 -0
  622. package/dist/types/unstable/extras/chart/Chart.d.ts +33 -0
  623. package/dist/types/unstable/extras/chart/DistributionChart.d.ts +18 -0
  624. package/dist/types/unstable/extras/chart/DonutChart.d.ts +16 -0
  625. package/dist/types/unstable/extras/chart/LineChart.d.ts +16 -0
  626. package/dist/types/unstable/extras/chart/PieChart.d.ts +14 -0
  627. package/dist/types/unstable/extras/chart/TimelineChart.d.ts +15 -0
  628. package/dist/types/unstable/extras/chart/index.d.ts +15 -0
  629. package/package.json +1 -1
@@ -0,0 +1,1322 @@
1
+ import { Transform, rederive, ingest as ingest$1, replace } from '../../vega-dataflow/build/vega-dataflow.js';
2
+ import { inherits, identity, isArray, isFunction, isNumber, accessorName, accessorFields, field, extend, constant, toSet, zero, error, array, extent, one } from '../../vega-util/build/vega-util.js';
3
+ import { bandwidthNRD as estimateBandwidth } from '../../vega-statistics/build/vega-statistics.js';
4
+ import { getProjectionPath, projectionProperties, projection } from '../../vega-projection/build/vega-projection.js';
5
+ import { canvas as domCanvas } from '../../vega-canvas/build/vega-canvas.browser.js';
6
+ import graticule from '../../d3-geo/src/graticule.js';
7
+ import max from '../../d3-array/src/max.js';
8
+ import { rgb } from '../../d3-color/src/color.js';
9
+ import { tickStep } from '../../d3-array/src/ticks.js';
10
+ import range from '../../d3-array/src/range.js';
11
+ import sum from '../../d3-array/src/sum.js';
12
+
13
+ function noop() {}
14
+ const cases = [[], [[[1.0, 1.5], [0.5, 1.0]]], [[[1.5, 1.0], [1.0, 1.5]]], [[[1.5, 1.0], [0.5, 1.0]]], [[[1.0, 0.5], [1.5, 1.0]]], [[[1.0, 1.5], [0.5, 1.0]], [[1.0, 0.5], [1.5, 1.0]]], [[[1.0, 0.5], [1.0, 1.5]]], [[[1.0, 0.5], [0.5, 1.0]]], [[[0.5, 1.0], [1.0, 0.5]]], [[[1.0, 1.5], [1.0, 0.5]]], [[[0.5, 1.0], [1.0, 0.5]], [[1.5, 1.0], [1.0, 1.5]]], [[[1.5, 1.0], [1.0, 0.5]]], [[[0.5, 1.0], [1.5, 1.0]]], [[[1.0, 1.5], [1.5, 1.0]]], [[[0.5, 1.0], [1.0, 1.5]]], []];
15
+
16
+ // Implementation adapted from d3/d3-contour. Thanks!
17
+ function contours () {
18
+ var dx = 1,
19
+ dy = 1,
20
+ smooth = smoothLinear;
21
+ function contours(values, tz) {
22
+ return tz.map(value => contour(values, value));
23
+ }
24
+
25
+ // Accumulate, smooth contour rings, assign holes to exterior rings.
26
+ // Based on https://github.com/mbostock/shapefile/blob/v0.6.2/shp/polygon.js
27
+ function contour(values, value) {
28
+ var polygons = [],
29
+ holes = [];
30
+ isorings(values, value, ring => {
31
+ smooth(ring, values, value);
32
+ if (area(ring) > 0) polygons.push([ring]);else holes.push(ring);
33
+ });
34
+ holes.forEach(hole => {
35
+ for (var i = 0, n = polygons.length, polygon; i < n; ++i) {
36
+ if (contains((polygon = polygons[i])[0], hole) !== -1) {
37
+ polygon.push(hole);
38
+ return;
39
+ }
40
+ }
41
+ });
42
+ return {
43
+ type: 'MultiPolygon',
44
+ value: value,
45
+ coordinates: polygons
46
+ };
47
+ }
48
+
49
+ // Marching squares with isolines stitched into rings.
50
+ // Based on https://github.com/topojson/topojson-client/blob/v3.0.0/src/stitch.js
51
+ function isorings(values, value, callback) {
52
+ var fragmentByStart = [],
53
+ fragmentByEnd = [],
54
+ x,
55
+ y,
56
+ t0,
57
+ t1,
58
+ t2,
59
+ t3;
60
+
61
+ // Special case for the first row (y = -1, t2 = t3 = 0).
62
+ x = y = -1;
63
+ t1 = values[0] >= value;
64
+ cases[t1 << 1].forEach(stitch);
65
+ while (++x < dx - 1) {
66
+ t0 = t1, t1 = values[x + 1] >= value;
67
+ cases[t0 | t1 << 1].forEach(stitch);
68
+ }
69
+ cases[t1 << 0].forEach(stitch);
70
+
71
+ // General case for the intermediate rows.
72
+ while (++y < dy - 1) {
73
+ x = -1;
74
+ t1 = values[y * dx + dx] >= value;
75
+ t2 = values[y * dx] >= value;
76
+ cases[t1 << 1 | t2 << 2].forEach(stitch);
77
+ while (++x < dx - 1) {
78
+ t0 = t1, t1 = values[y * dx + dx + x + 1] >= value;
79
+ t3 = t2, t2 = values[y * dx + x + 1] >= value;
80
+ cases[t0 | t1 << 1 | t2 << 2 | t3 << 3].forEach(stitch);
81
+ }
82
+ cases[t1 | t2 << 3].forEach(stitch);
83
+ }
84
+
85
+ // Special case for the last row (y = dy - 1, t0 = t1 = 0).
86
+ x = -1;
87
+ t2 = values[y * dx] >= value;
88
+ cases[t2 << 2].forEach(stitch);
89
+ while (++x < dx - 1) {
90
+ t3 = t2, t2 = values[y * dx + x + 1] >= value;
91
+ cases[t2 << 2 | t3 << 3].forEach(stitch);
92
+ }
93
+ cases[t2 << 3].forEach(stitch);
94
+ function stitch(line) {
95
+ var start = [line[0][0] + x, line[0][1] + y],
96
+ end = [line[1][0] + x, line[1][1] + y],
97
+ startIndex = index(start),
98
+ endIndex = index(end),
99
+ f,
100
+ g;
101
+ if (f = fragmentByEnd[startIndex]) {
102
+ if (g = fragmentByStart[endIndex]) {
103
+ delete fragmentByEnd[f.end];
104
+ delete fragmentByStart[g.start];
105
+ if (f === g) {
106
+ f.ring.push(end);
107
+ callback(f.ring);
108
+ } else {
109
+ fragmentByStart[f.start] = fragmentByEnd[g.end] = {
110
+ start: f.start,
111
+ end: g.end,
112
+ ring: f.ring.concat(g.ring)
113
+ };
114
+ }
115
+ } else {
116
+ delete fragmentByEnd[f.end];
117
+ f.ring.push(end);
118
+ fragmentByEnd[f.end = endIndex] = f;
119
+ }
120
+ } else if (f = fragmentByStart[endIndex]) {
121
+ if (g = fragmentByEnd[startIndex]) {
122
+ delete fragmentByStart[f.start];
123
+ delete fragmentByEnd[g.end];
124
+ if (f === g) {
125
+ f.ring.push(end);
126
+ callback(f.ring);
127
+ } else {
128
+ fragmentByStart[g.start] = fragmentByEnd[f.end] = {
129
+ start: g.start,
130
+ end: f.end,
131
+ ring: g.ring.concat(f.ring)
132
+ };
133
+ }
134
+ } else {
135
+ delete fragmentByStart[f.start];
136
+ f.ring.unshift(start);
137
+ fragmentByStart[f.start = startIndex] = f;
138
+ }
139
+ } else {
140
+ fragmentByStart[startIndex] = fragmentByEnd[endIndex] = {
141
+ start: startIndex,
142
+ end: endIndex,
143
+ ring: [start, end]
144
+ };
145
+ }
146
+ }
147
+ }
148
+ function index(point) {
149
+ return point[0] * 2 + point[1] * (dx + 1) * 4;
150
+ }
151
+ function smoothLinear(ring, values, value) {
152
+ ring.forEach(point => {
153
+ var x = point[0],
154
+ y = point[1],
155
+ xt = x | 0,
156
+ yt = y | 0,
157
+ v0,
158
+ v1 = values[yt * dx + xt];
159
+ if (x > 0 && x < dx && xt === x) {
160
+ v0 = values[yt * dx + xt - 1];
161
+ point[0] = x + (value - v0) / (v1 - v0) - 0.5;
162
+ }
163
+ if (y > 0 && y < dy && yt === y) {
164
+ v0 = values[(yt - 1) * dx + xt];
165
+ point[1] = y + (value - v0) / (v1 - v0) - 0.5;
166
+ }
167
+ });
168
+ }
169
+ contours.contour = contour;
170
+ contours.size = function (_) {
171
+ if (!arguments.length) return [dx, dy];
172
+ var _0 = Math.floor(_[0]),
173
+ _1 = Math.floor(_[1]);
174
+ if (!(_0 >= 0 && _1 >= 0)) error('invalid size');
175
+ return dx = _0, dy = _1, contours;
176
+ };
177
+ contours.smooth = function (_) {
178
+ return arguments.length ? (smooth = _ ? smoothLinear : noop, contours) : smooth === smoothLinear;
179
+ };
180
+ return contours;
181
+ }
182
+ function area(ring) {
183
+ var i = 0,
184
+ n = ring.length,
185
+ area = ring[n - 1][1] * ring[0][0] - ring[n - 1][0] * ring[0][1];
186
+ while (++i < n) area += ring[i - 1][1] * ring[i][0] - ring[i - 1][0] * ring[i][1];
187
+ return area;
188
+ }
189
+ function contains(ring, hole) {
190
+ var i = -1,
191
+ n = hole.length,
192
+ c;
193
+ while (++i < n) if (c = ringContains(ring, hole[i])) return c;
194
+ return 0;
195
+ }
196
+ function ringContains(ring, point) {
197
+ var x = point[0],
198
+ y = point[1],
199
+ contains = -1;
200
+ for (var i = 0, n = ring.length, j = n - 1; i < n; j = i++) {
201
+ var pi = ring[i],
202
+ xi = pi[0],
203
+ yi = pi[1],
204
+ pj = ring[j],
205
+ xj = pj[0],
206
+ yj = pj[1];
207
+ if (segmentContains(pi, pj, point)) return 0;
208
+ if (yi > y !== yj > y && x < (xj - xi) * (y - yi) / (yj - yi) + xi) contains = -contains;
209
+ }
210
+ return contains;
211
+ }
212
+ function segmentContains(a, b, c) {
213
+ var i;
214
+ return collinear(a, b, c) && within(a[i = +(a[0] === b[0])], c[i], b[i]);
215
+ }
216
+ function collinear(a, b, c) {
217
+ return (b[0] - a[0]) * (c[1] - a[1]) === (c[0] - a[0]) * (b[1] - a[1]);
218
+ }
219
+ function within(p, q, r) {
220
+ return p <= q && q <= r || r <= q && q <= p;
221
+ }
222
+
223
+ function quantize (k, nice, zero) {
224
+ return function (values) {
225
+ var ex = extent(values),
226
+ start = zero ? Math.min(ex[0], 0) : ex[0],
227
+ stop = ex[1],
228
+ span = stop - start,
229
+ step = nice ? tickStep(start, stop, k) : span / (k + 1);
230
+ return range(start + step, stop, step);
231
+ };
232
+ }
233
+
234
+ /**
235
+ * Generate isocontours (level sets) based on input raster grid data.
236
+ * @constructor
237
+ * @param {object} params - The parameters for this operator.
238
+ * @param {function(object): *} [params.field] - The field with raster grid
239
+ * data. If unspecified, the tuple itself is interpreted as a raster grid.
240
+ * @param {Array<number>} [params.thresholds] - Contour threshold array. If
241
+ * specified, the levels, nice, resolve, and zero parameters are ignored.
242
+ * @param {number} [params.levels] - The desired number of contour levels.
243
+ * @param {boolean} [params.nice] - Boolean flag indicating if the contour
244
+ * threshold values should be automatically aligned to "nice"
245
+ * human-friendly values. Setting this flag may cause the number of
246
+ * thresholds to deviate from the specified levels.
247
+ * @param {string} [params.resolve] - The method for resolving thresholds
248
+ * across multiple input grids. If 'independent' (the default), threshold
249
+ * calculation will be performed separately for each grid. If 'shared', a
250
+ * single set of threshold values will be used for all input grids.
251
+ * @param {boolean} [params.zero] - Boolean flag indicating if the contour
252
+ * threshold values should include zero.
253
+ * @param {boolean} [params.smooth] - Boolean flag indicating if the contour
254
+ * polygons should be smoothed using linear interpolation. The default is
255
+ * true. The parameter is ignored when using density estimation.
256
+ * @param {boolean} [params.scale] - Optional numerical value by which to
257
+ * scale the output isocontour coordinates. This parameter can be useful
258
+ * to scale the contours to match a desired output resolution.
259
+ * @param {string} [params.as='contour'] - The output field in which to store
260
+ * the generated isocontour data (default 'contour').
261
+ */
262
+ function Isocontour(params) {
263
+ Transform.call(this, null, params);
264
+ }
265
+ Isocontour.Definition = {
266
+ 'type': 'Isocontour',
267
+ 'metadata': {
268
+ 'generates': true
269
+ },
270
+ 'params': [{
271
+ 'name': 'field',
272
+ 'type': 'field'
273
+ }, {
274
+ 'name': 'thresholds',
275
+ 'type': 'number',
276
+ 'array': true
277
+ }, {
278
+ 'name': 'levels',
279
+ 'type': 'number'
280
+ }, {
281
+ 'name': 'nice',
282
+ 'type': 'boolean',
283
+ 'default': false
284
+ }, {
285
+ 'name': 'resolve',
286
+ 'type': 'enum',
287
+ 'values': ['shared', 'independent'],
288
+ 'default': 'independent'
289
+ }, {
290
+ 'name': 'zero',
291
+ 'type': 'boolean',
292
+ 'default': true
293
+ }, {
294
+ 'name': 'smooth',
295
+ 'type': 'boolean',
296
+ 'default': true
297
+ }, {
298
+ 'name': 'scale',
299
+ 'type': 'number',
300
+ 'expr': true
301
+ }, {
302
+ 'name': 'translate',
303
+ 'type': 'number',
304
+ 'array': true,
305
+ 'expr': true
306
+ }, {
307
+ 'name': 'as',
308
+ 'type': 'string',
309
+ 'null': true,
310
+ 'default': 'contour'
311
+ }]
312
+ };
313
+ inherits(Isocontour, Transform, {
314
+ transform(_, pulse) {
315
+ if (this.value && !pulse.changed() && !_.modified()) {
316
+ return pulse.StopPropagation;
317
+ }
318
+ var out = pulse.fork(pulse.NO_SOURCE | pulse.NO_FIELDS),
319
+ source = pulse.materialize(pulse.SOURCE).source,
320
+ field = _.field || identity,
321
+ contour = contours().smooth(_.smooth !== false),
322
+ tz = _.thresholds || levels(source, field, _),
323
+ as = _.as === null ? null : _.as || 'contour',
324
+ values = [];
325
+ source.forEach(t => {
326
+ const grid = field(t);
327
+
328
+ // generate contour paths in GeoJSON format
329
+ const paths = contour.size([grid.width, grid.height])(grid.values, isArray(tz) ? tz : tz(grid.values));
330
+
331
+ // adjust contour path coordinates as needed
332
+ transformPaths(paths, grid, t, _);
333
+
334
+ // ingest; copy source data properties to output
335
+ paths.forEach(p => {
336
+ values.push(rederive(t, ingest$1(as != null ? {
337
+ [as]: p
338
+ } : p)));
339
+ });
340
+ });
341
+ if (this.value) out.rem = this.value;
342
+ this.value = out.source = out.add = values;
343
+ return out;
344
+ }
345
+ });
346
+ function levels(values, f, _) {
347
+ const q = quantize(_.levels || 10, _.nice, _.zero !== false);
348
+ return _.resolve !== 'shared' ? q : q(values.map(t => max(f(t).values)));
349
+ }
350
+ function transformPaths(paths, grid, datum, _) {
351
+ let s = _.scale || grid.scale,
352
+ t = _.translate || grid.translate;
353
+ if (isFunction(s)) s = s(datum, _);
354
+ if (isFunction(t)) t = t(datum, _);
355
+ if ((s === 1 || s == null) && !t) return;
356
+ const sx = (isNumber(s) ? s : s[0]) || 1,
357
+ sy = (isNumber(s) ? s : s[1]) || 1,
358
+ tx = t && t[0] || 0,
359
+ ty = t && t[1] || 0;
360
+ paths.forEach(transform(grid, sx, sy, tx, ty));
361
+ }
362
+ function transform(grid, sx, sy, tx, ty) {
363
+ const x1 = grid.x1 || 0,
364
+ y1 = grid.y1 || 0,
365
+ flip = sx * sy < 0;
366
+ function transformPolygon(coordinates) {
367
+ coordinates.forEach(transformRing);
368
+ }
369
+ function transformRing(coordinates) {
370
+ if (flip) coordinates.reverse(); // maintain winding order
371
+ coordinates.forEach(transformPoint);
372
+ }
373
+ function transformPoint(coordinates) {
374
+ coordinates[0] = (coordinates[0] - x1) * sx + tx;
375
+ coordinates[1] = (coordinates[1] - y1) * sy + ty;
376
+ }
377
+ return function (geometry) {
378
+ geometry.coordinates.forEach(transformPolygon);
379
+ return geometry;
380
+ };
381
+ }
382
+
383
+ function radius(bw, data, f) {
384
+ const v = bw >= 0 ? bw : estimateBandwidth(data, f);
385
+ return Math.round((Math.sqrt(4 * v * v + 1) - 1) / 2);
386
+ }
387
+ function number(_) {
388
+ return isFunction(_) ? _ : constant(+_);
389
+ }
390
+
391
+ // Implementation adapted from d3/d3-contour. Thanks!
392
+ function density2D () {
393
+ var x = d => d[0],
394
+ y = d => d[1],
395
+ weight = one,
396
+ bandwidth = [-1, -1],
397
+ dx = 960,
398
+ dy = 500,
399
+ k = 2; // log2(cellSize)
400
+
401
+ function density(data, counts) {
402
+ const rx = radius(bandwidth[0], data, x) >> k,
403
+ // blur x-radius
404
+ ry = radius(bandwidth[1], data, y) >> k,
405
+ // blur y-radius
406
+ ox = rx ? rx + 2 : 0,
407
+ // x-offset padding for blur
408
+ oy = ry ? ry + 2 : 0,
409
+ // y-offset padding for blur
410
+ n = 2 * ox + (dx >> k),
411
+ // grid width
412
+ m = 2 * oy + (dy >> k),
413
+ // grid height
414
+ values0 = new Float32Array(n * m),
415
+ values1 = new Float32Array(n * m);
416
+ let values = values0;
417
+ data.forEach(d => {
418
+ const xi = ox + (+x(d) >> k),
419
+ yi = oy + (+y(d) >> k);
420
+ if (xi >= 0 && xi < n && yi >= 0 && yi < m) {
421
+ values0[xi + yi * n] += +weight(d);
422
+ }
423
+ });
424
+ if (rx > 0 && ry > 0) {
425
+ blurX(n, m, values0, values1, rx);
426
+ blurY(n, m, values1, values0, ry);
427
+ blurX(n, m, values0, values1, rx);
428
+ blurY(n, m, values1, values0, ry);
429
+ blurX(n, m, values0, values1, rx);
430
+ blurY(n, m, values1, values0, ry);
431
+ } else if (rx > 0) {
432
+ blurX(n, m, values0, values1, rx);
433
+ blurX(n, m, values1, values0, rx);
434
+ blurX(n, m, values0, values1, rx);
435
+ values = values1;
436
+ } else if (ry > 0) {
437
+ blurY(n, m, values0, values1, ry);
438
+ blurY(n, m, values1, values0, ry);
439
+ blurY(n, m, values0, values1, ry);
440
+ values = values1;
441
+ }
442
+
443
+ // scale density estimates
444
+ // density in points per square pixel or probability density
445
+ const s = counts ? Math.pow(2, -2 * k) : 1 / sum(values);
446
+ for (let i = 0, sz = n * m; i < sz; ++i) values[i] *= s;
447
+ return {
448
+ values: values,
449
+ scale: 1 << k,
450
+ width: n,
451
+ height: m,
452
+ x1: ox,
453
+ y1: oy,
454
+ x2: ox + (dx >> k),
455
+ y2: oy + (dy >> k)
456
+ };
457
+ }
458
+ density.x = function (_) {
459
+ return arguments.length ? (x = number(_), density) : x;
460
+ };
461
+ density.y = function (_) {
462
+ return arguments.length ? (y = number(_), density) : y;
463
+ };
464
+ density.weight = function (_) {
465
+ return arguments.length ? (weight = number(_), density) : weight;
466
+ };
467
+ density.size = function (_) {
468
+ if (!arguments.length) return [dx, dy];
469
+ var _0 = +_[0],
470
+ _1 = +_[1];
471
+ if (!(_0 >= 0 && _1 >= 0)) error('invalid size');
472
+ return dx = _0, dy = _1, density;
473
+ };
474
+ density.cellSize = function (_) {
475
+ if (!arguments.length) return 1 << k;
476
+ if (!((_ = +_) >= 1)) error('invalid cell size');
477
+ k = Math.floor(Math.log(_) / Math.LN2);
478
+ return density;
479
+ };
480
+ density.bandwidth = function (_) {
481
+ if (!arguments.length) return bandwidth;
482
+ _ = array(_);
483
+ if (_.length === 1) _ = [+_[0], +_[0]];
484
+ if (_.length !== 2) error('invalid bandwidth');
485
+ return bandwidth = _, density;
486
+ };
487
+ return density;
488
+ }
489
+ function blurX(n, m, source, target, r) {
490
+ const w = (r << 1) + 1;
491
+ for (let j = 0; j < m; ++j) {
492
+ for (let i = 0, sr = 0; i < n + r; ++i) {
493
+ if (i < n) {
494
+ sr += source[i + j * n];
495
+ }
496
+ if (i >= r) {
497
+ if (i >= w) {
498
+ sr -= source[i - w + j * n];
499
+ }
500
+ target[i - r + j * n] = sr / Math.min(i + 1, n - 1 + w - i, w);
501
+ }
502
+ }
503
+ }
504
+ }
505
+ function blurY(n, m, source, target, r) {
506
+ const w = (r << 1) + 1;
507
+ for (let i = 0; i < n; ++i) {
508
+ for (let j = 0, sr = 0; j < m + r; ++j) {
509
+ if (j < m) {
510
+ sr += source[i + j * n];
511
+ }
512
+ if (j >= r) {
513
+ if (j >= w) {
514
+ sr -= source[i + (j - w) * n];
515
+ }
516
+ target[i + (j - r) * n] = sr / Math.min(j + 1, m - 1 + w - j, w);
517
+ }
518
+ }
519
+ }
520
+ }
521
+
522
+ /**
523
+ * Perform 2D kernel-density estimation of point data.
524
+ * @constructor
525
+ * @param {object} params - The parameters for this operator.
526
+ * @param {Array<number>} params.size - The [width, height] extent (in
527
+ * units of input pixels) over which to perform density estimation.
528
+ * @param {function(object): number} params.x - The x-coordinate accessor.
529
+ * @param {function(object): number} params.y - The y-coordinate accessor.
530
+ * @param {function(object): number} [params.weight] - The weight accessor.
531
+ * @param {Array<function(object): *>} [params.groupby] - An array of accessors
532
+ * to groupby.
533
+ * @param {number} [params.cellSize] - Contour density calculation cell size.
534
+ * This parameter determines the level of spatial approximation. For example,
535
+ * the default value of 4 maps to 2x reductions in both x- and y- dimensions.
536
+ * A value of 1 will result in an output raster grid whose dimensions exactly
537
+ * matches the size parameter.
538
+ * @param {Array<number>} [params.bandwidth] - The KDE kernel bandwidths,
539
+ * in pixels. The input can be a two-element array specifying separate
540
+ * x and y bandwidths, or a single-element array specifying both. If the
541
+ * bandwidth is unspecified or less than zero, the bandwidth will be
542
+ * automatically determined.
543
+ * @param {boolean} [params.counts=false] - A boolean flag indicating if the
544
+ * output values should be probability estimates (false, default) or
545
+ * smoothed counts (true).
546
+ * @param {string} [params.as='grid'] - The output field in which to store
547
+ * the generated raster grid (default 'grid').
548
+ */
549
+ function KDE2D(params) {
550
+ Transform.call(this, null, params);
551
+ }
552
+ KDE2D.Definition = {
553
+ 'type': 'KDE2D',
554
+ 'metadata': {
555
+ 'generates': true
556
+ },
557
+ 'params': [{
558
+ 'name': 'size',
559
+ 'type': 'number',
560
+ 'array': true,
561
+ 'length': 2,
562
+ 'required': true
563
+ }, {
564
+ 'name': 'x',
565
+ 'type': 'field',
566
+ 'required': true
567
+ }, {
568
+ 'name': 'y',
569
+ 'type': 'field',
570
+ 'required': true
571
+ }, {
572
+ 'name': 'weight',
573
+ 'type': 'field'
574
+ }, {
575
+ 'name': 'groupby',
576
+ 'type': 'field',
577
+ 'array': true
578
+ }, {
579
+ 'name': 'cellSize',
580
+ 'type': 'number'
581
+ }, {
582
+ 'name': 'bandwidth',
583
+ 'type': 'number',
584
+ 'array': true,
585
+ 'length': 2
586
+ }, {
587
+ 'name': 'counts',
588
+ 'type': 'boolean',
589
+ 'default': false
590
+ }, {
591
+ 'name': 'as',
592
+ 'type': 'string',
593
+ 'default': 'grid'
594
+ }]
595
+ };
596
+ const PARAMS = ['x', 'y', 'weight', 'size', 'cellSize', 'bandwidth'];
597
+ function params(obj, _) {
598
+ PARAMS.forEach(param => _[param] != null ? obj[param](_[param]) : 0);
599
+ return obj;
600
+ }
601
+ inherits(KDE2D, Transform, {
602
+ transform(_, pulse) {
603
+ if (this.value && !pulse.changed() && !_.modified()) return pulse.StopPropagation;
604
+ var out = pulse.fork(pulse.NO_SOURCE | pulse.NO_FIELDS),
605
+ source = pulse.materialize(pulse.SOURCE).source,
606
+ groups = partition(source, _.groupby),
607
+ names = (_.groupby || []).map(accessorName),
608
+ kde = params(density2D(), _),
609
+ as = _.as || 'grid',
610
+ values = [];
611
+ function set(t, vals) {
612
+ for (let i = 0; i < names.length; ++i) t[names[i]] = vals[i];
613
+ return t;
614
+ }
615
+
616
+ // generate density raster grids
617
+ values = groups.map(g => ingest$1(set({
618
+ [as]: kde(g, _.counts)
619
+ }, g.dims)));
620
+ if (this.value) out.rem = this.value;
621
+ this.value = out.source = out.add = values;
622
+ return out;
623
+ }
624
+ });
625
+ function partition(data, groupby) {
626
+ var groups = [],
627
+ get = f => f(t),
628
+ map,
629
+ i,
630
+ n,
631
+ t,
632
+ k,
633
+ g;
634
+
635
+ // partition data points into groups
636
+ if (groupby == null) {
637
+ groups.push(data);
638
+ } else {
639
+ for (map = {}, i = 0, n = data.length; i < n; ++i) {
640
+ t = data[i];
641
+ k = groupby.map(get);
642
+ g = map[k];
643
+ if (!g) {
644
+ map[k] = g = [];
645
+ g.dims = k;
646
+ groups.push(g);
647
+ }
648
+ g.push(t);
649
+ }
650
+ }
651
+ return groups;
652
+ }
653
+
654
+ /**
655
+ * Generate contours based on kernel-density estimation of point data.
656
+ * @constructor
657
+ * @param {object} params - The parameters for this operator.
658
+ * @param {Array<number>} params.size - The dimensions [width, height] over which to compute contours.
659
+ * If the values parameter is provided, this must be the dimensions of the input data.
660
+ * If density estimation is performed, this is the output view dimensions in pixels.
661
+ * @param {Array<number>} [params.values] - An array of numeric values representing an
662
+ * width x height grid of values over which to compute contours. If unspecified, this
663
+ * transform will instead attempt to compute contours for the kernel density estimate
664
+ * using values drawn from data tuples in the input pulse.
665
+ * @param {function(object): number} [params.x] - The pixel x-coordinate accessor for density estimation.
666
+ * @param {function(object): number} [params.y] - The pixel y-coordinate accessor for density estimation.
667
+ * @param {function(object): number} [params.weight] - The data point weight accessor for density estimation.
668
+ * @param {number} [params.cellSize] - Contour density calculation cell size.
669
+ * @param {number} [params.bandwidth] - Kernel density estimation bandwidth.
670
+ * @param {Array<number>} [params.thresholds] - Contour threshold array. If
671
+ * this parameter is set, the count and nice parameters will be ignored.
672
+ * @param {number} [params.count] - The desired number of contours.
673
+ * @param {boolean} [params.nice] - Boolean flag indicating if the contour
674
+ * threshold values should be automatically aligned to "nice"
675
+ * human-friendly values. Setting this flag may cause the number of
676
+ * thresholds to deviate from the specified count.
677
+ * @param {boolean} [params.smooth] - Boolean flag indicating if the contour
678
+ * polygons should be smoothed using linear interpolation. The default is
679
+ * true. The parameter is ignored when using density estimation.
680
+ */
681
+ function Contour(params) {
682
+ Transform.call(this, null, params);
683
+ }
684
+ Contour.Definition = {
685
+ 'type': 'Contour',
686
+ 'metadata': {
687
+ 'generates': true
688
+ },
689
+ 'params': [{
690
+ 'name': 'size',
691
+ 'type': 'number',
692
+ 'array': true,
693
+ 'length': 2,
694
+ 'required': true
695
+ }, {
696
+ 'name': 'values',
697
+ 'type': 'number',
698
+ 'array': true
699
+ }, {
700
+ 'name': 'x',
701
+ 'type': 'field'
702
+ }, {
703
+ 'name': 'y',
704
+ 'type': 'field'
705
+ }, {
706
+ 'name': 'weight',
707
+ 'type': 'field'
708
+ }, {
709
+ 'name': 'cellSize',
710
+ 'type': 'number'
711
+ }, {
712
+ 'name': 'bandwidth',
713
+ 'type': 'number'
714
+ }, {
715
+ 'name': 'count',
716
+ 'type': 'number'
717
+ }, {
718
+ 'name': 'nice',
719
+ 'type': 'boolean',
720
+ 'default': false
721
+ }, {
722
+ 'name': 'thresholds',
723
+ 'type': 'number',
724
+ 'array': true
725
+ }, {
726
+ 'name': 'smooth',
727
+ 'type': 'boolean',
728
+ 'default': true
729
+ }]
730
+ };
731
+ inherits(Contour, Transform, {
732
+ transform(_, pulse) {
733
+ if (this.value && !pulse.changed() && !_.modified()) {
734
+ return pulse.StopPropagation;
735
+ }
736
+ var out = pulse.fork(pulse.NO_SOURCE | pulse.NO_FIELDS),
737
+ contour = contours().smooth(_.smooth !== false),
738
+ values = _.values,
739
+ thresh = _.thresholds || quantize(_.count || 10, _.nice, !!values),
740
+ size = _.size,
741
+ grid,
742
+ post;
743
+ if (!values) {
744
+ values = pulse.materialize(pulse.SOURCE).source;
745
+ grid = params(density2D(), _)(values, true);
746
+ post = transform(grid, grid.scale || 1, grid.scale || 1, 0, 0);
747
+ size = [grid.width, grid.height];
748
+ values = grid.values;
749
+ }
750
+ thresh = isArray(thresh) ? thresh : thresh(values);
751
+ values = contour.size(size)(values, thresh);
752
+ if (post) values.forEach(post);
753
+ if (this.value) out.rem = this.value;
754
+ this.value = out.source = out.add = (values || []).map(ingest$1);
755
+ return out;
756
+ }
757
+ });
758
+
759
+ const Feature = 'Feature';
760
+ const FeatureCollection = 'FeatureCollection';
761
+ const MultiPoint = 'MultiPoint';
762
+
763
+ /**
764
+ * Consolidate an array of [longitude, latitude] points or GeoJSON features
765
+ * into a combined GeoJSON object. This transform is particularly useful for
766
+ * combining geo data for a Projection's fit argument. The resulting GeoJSON
767
+ * data is available as this transform's value. Input pulses are unchanged.
768
+ * @constructor
769
+ * @param {object} params - The parameters for this operator.
770
+ * @param {Array<function(object): *>} [params.fields] - A two-element array
771
+ * of field accessors for the longitude and latitude values.
772
+ * @param {function(object): *} params.geojson - A field accessor for
773
+ * retrieving GeoJSON feature data.
774
+ */
775
+ function GeoJSON(params) {
776
+ Transform.call(this, null, params);
777
+ }
778
+ GeoJSON.Definition = {
779
+ 'type': 'GeoJSON',
780
+ 'metadata': {},
781
+ 'params': [{
782
+ 'name': 'fields',
783
+ 'type': 'field',
784
+ 'array': true,
785
+ 'length': 2
786
+ }, {
787
+ 'name': 'geojson',
788
+ 'type': 'field'
789
+ }]
790
+ };
791
+ inherits(GeoJSON, Transform, {
792
+ transform(_, pulse) {
793
+ var features = this._features,
794
+ points = this._points,
795
+ fields = _.fields,
796
+ lon = fields && fields[0],
797
+ lat = fields && fields[1],
798
+ geojson = _.geojson || !fields && identity,
799
+ flag = pulse.ADD,
800
+ mod;
801
+ mod = _.modified() || pulse.changed(pulse.REM) || pulse.modified(accessorFields(geojson)) || lon && pulse.modified(accessorFields(lon)) || lat && pulse.modified(accessorFields(lat));
802
+ if (!this.value || mod) {
803
+ flag = pulse.SOURCE;
804
+ this._features = features = [];
805
+ this._points = points = [];
806
+ }
807
+ if (geojson) {
808
+ pulse.visit(flag, t => features.push(geojson(t)));
809
+ }
810
+ if (lon && lat) {
811
+ pulse.visit(flag, t => {
812
+ var x = lon(t),
813
+ y = lat(t);
814
+ if (x != null && y != null && (x = +x) === x && (y = +y) === y) {
815
+ points.push([x, y]);
816
+ }
817
+ });
818
+ features = features.concat({
819
+ type: Feature,
820
+ geometry: {
821
+ type: MultiPoint,
822
+ coordinates: points
823
+ }
824
+ });
825
+ }
826
+ this.value = {
827
+ type: FeatureCollection,
828
+ features: features
829
+ };
830
+ }
831
+ });
832
+
833
+ /**
834
+ * Map GeoJSON data to an SVG path string.
835
+ * @constructor
836
+ * @param {object} params - The parameters for this operator.
837
+ * @param {function(number, number): *} params.projection - The cartographic
838
+ * projection to apply.
839
+ * @param {function(object): *} [params.field] - The field with GeoJSON data,
840
+ * or null if the tuple itself is a GeoJSON feature.
841
+ * @param {string} [params.as='path'] - The output field in which to store
842
+ * the generated path data (default 'path').
843
+ */
844
+ function GeoPath(params) {
845
+ Transform.call(this, null, params);
846
+ }
847
+ GeoPath.Definition = {
848
+ 'type': 'GeoPath',
849
+ 'metadata': {
850
+ 'modifies': true
851
+ },
852
+ 'params': [{
853
+ 'name': 'projection',
854
+ 'type': 'projection'
855
+ }, {
856
+ 'name': 'field',
857
+ 'type': 'field'
858
+ }, {
859
+ 'name': 'pointRadius',
860
+ 'type': 'number',
861
+ 'expr': true
862
+ }, {
863
+ 'name': 'as',
864
+ 'type': 'string',
865
+ 'default': 'path'
866
+ }]
867
+ };
868
+ inherits(GeoPath, Transform, {
869
+ transform(_, pulse) {
870
+ var out = pulse.fork(pulse.ALL),
871
+ path = this.value,
872
+ field = _.field || identity,
873
+ as = _.as || 'path',
874
+ flag = out.SOURCE;
875
+ if (!path || _.modified()) {
876
+ // parameters updated, reset and reflow
877
+ this.value = path = getProjectionPath(_.projection);
878
+ out.materialize().reflow();
879
+ } else {
880
+ flag = field === identity || pulse.modified(field.fields) ? out.ADD_MOD : out.ADD;
881
+ }
882
+ const prev = initPath(path, _.pointRadius);
883
+ out.visit(flag, t => t[as] = path(field(t)));
884
+ path.pointRadius(prev);
885
+ return out.modifies(as);
886
+ }
887
+ });
888
+ function initPath(path, pointRadius) {
889
+ const prev = path.pointRadius();
890
+ path.context(null);
891
+ if (pointRadius != null) {
892
+ path.pointRadius(pointRadius);
893
+ }
894
+ return prev;
895
+ }
896
+
897
+ /**
898
+ * Geo-code a longitude/latitude point to an x/y coordinate.
899
+ * @constructor
900
+ * @param {object} params - The parameters for this operator.
901
+ * @param {function(number, number): *} params.projection - The cartographic
902
+ * projection to apply.
903
+ * @param {Array<function(object): *>} params.fields - A two-element array of
904
+ * field accessors for the longitude and latitude values.
905
+ * @param {Array<string>} [params.as] - A two-element array of field names
906
+ * under which to store the result. Defaults to ['x','y'].
907
+ */
908
+ function GeoPoint(params) {
909
+ Transform.call(this, null, params);
910
+ }
911
+ GeoPoint.Definition = {
912
+ 'type': 'GeoPoint',
913
+ 'metadata': {
914
+ 'modifies': true
915
+ },
916
+ 'params': [{
917
+ 'name': 'projection',
918
+ 'type': 'projection',
919
+ 'required': true
920
+ }, {
921
+ 'name': 'fields',
922
+ 'type': 'field',
923
+ 'array': true,
924
+ 'required': true,
925
+ 'length': 2
926
+ }, {
927
+ 'name': 'as',
928
+ 'type': 'string',
929
+ 'array': true,
930
+ 'length': 2,
931
+ 'default': ['x', 'y']
932
+ }]
933
+ };
934
+ inherits(GeoPoint, Transform, {
935
+ transform(_, pulse) {
936
+ var proj = _.projection,
937
+ lon = _.fields[0],
938
+ lat = _.fields[1],
939
+ as = _.as || ['x', 'y'],
940
+ x = as[0],
941
+ y = as[1],
942
+ mod;
943
+ function set(t) {
944
+ const xy = proj([lon(t), lat(t)]);
945
+ if (xy) {
946
+ t[x] = xy[0];
947
+ t[y] = xy[1];
948
+ } else {
949
+ t[x] = undefined;
950
+ t[y] = undefined;
951
+ }
952
+ }
953
+ if (_.modified()) {
954
+ // parameters updated, reflow
955
+ pulse = pulse.materialize().reflow(true).visit(pulse.SOURCE, set);
956
+ } else {
957
+ mod = pulse.modified(lon.fields) || pulse.modified(lat.fields);
958
+ pulse.visit(mod ? pulse.ADD_MOD : pulse.ADD, set);
959
+ }
960
+ return pulse.modifies(as);
961
+ }
962
+ });
963
+
964
+ /**
965
+ * Annotate items with a geopath shape generator.
966
+ * @constructor
967
+ * @param {object} params - The parameters for this operator.
968
+ * @param {function(number, number): *} params.projection - The cartographic
969
+ * projection to apply.
970
+ * @param {function(object): *} [params.field] - The field with GeoJSON data,
971
+ * or null if the tuple itself is a GeoJSON feature.
972
+ * @param {string} [params.as='shape'] - The output field in which to store
973
+ * the generated path data (default 'shape').
974
+ */
975
+ function GeoShape(params) {
976
+ Transform.call(this, null, params);
977
+ }
978
+ GeoShape.Definition = {
979
+ 'type': 'GeoShape',
980
+ 'metadata': {
981
+ 'modifies': true,
982
+ 'nomod': true
983
+ },
984
+ 'params': [{
985
+ 'name': 'projection',
986
+ 'type': 'projection'
987
+ }, {
988
+ 'name': 'field',
989
+ 'type': 'field',
990
+ 'default': 'datum'
991
+ }, {
992
+ 'name': 'pointRadius',
993
+ 'type': 'number',
994
+ 'expr': true
995
+ }, {
996
+ 'name': 'as',
997
+ 'type': 'string',
998
+ 'default': 'shape'
999
+ }]
1000
+ };
1001
+ inherits(GeoShape, Transform, {
1002
+ transform(_, pulse) {
1003
+ var out = pulse.fork(pulse.ALL),
1004
+ shape = this.value,
1005
+ as = _.as || 'shape',
1006
+ flag = out.ADD;
1007
+ if (!shape || _.modified()) {
1008
+ // parameters updated, reset and reflow
1009
+ this.value = shape = shapeGenerator(getProjectionPath(_.projection), _.field || field('datum'), _.pointRadius);
1010
+ out.materialize().reflow();
1011
+ flag = out.SOURCE;
1012
+ }
1013
+ out.visit(flag, t => t[as] = shape);
1014
+ return out.modifies(as);
1015
+ }
1016
+ });
1017
+ function shapeGenerator(path, field, pointRadius) {
1018
+ const shape = pointRadius == null ? _ => path(field(_)) : _ => {
1019
+ var prev = path.pointRadius(),
1020
+ value = path.pointRadius(pointRadius)(field(_));
1021
+ path.pointRadius(prev);
1022
+ return value;
1023
+ };
1024
+ shape.context = _ => {
1025
+ path.context(_);
1026
+ return shape;
1027
+ };
1028
+ return shape;
1029
+ }
1030
+
1031
+ /**
1032
+ * GeoJSON feature generator for creating graticules.
1033
+ * @constructor
1034
+ */
1035
+ function Graticule(params) {
1036
+ Transform.call(this, [], params);
1037
+ this.generator = graticule();
1038
+ }
1039
+ Graticule.Definition = {
1040
+ 'type': 'Graticule',
1041
+ 'metadata': {
1042
+ 'changes': true,
1043
+ 'generates': true
1044
+ },
1045
+ 'params': [{
1046
+ 'name': 'extent',
1047
+ 'type': 'array',
1048
+ 'array': true,
1049
+ 'length': 2,
1050
+ 'content': {
1051
+ 'type': 'number',
1052
+ 'array': true,
1053
+ 'length': 2
1054
+ }
1055
+ }, {
1056
+ 'name': 'extentMajor',
1057
+ 'type': 'array',
1058
+ 'array': true,
1059
+ 'length': 2,
1060
+ 'content': {
1061
+ 'type': 'number',
1062
+ 'array': true,
1063
+ 'length': 2
1064
+ }
1065
+ }, {
1066
+ 'name': 'extentMinor',
1067
+ 'type': 'array',
1068
+ 'array': true,
1069
+ 'length': 2,
1070
+ 'content': {
1071
+ 'type': 'number',
1072
+ 'array': true,
1073
+ 'length': 2
1074
+ }
1075
+ }, {
1076
+ 'name': 'step',
1077
+ 'type': 'number',
1078
+ 'array': true,
1079
+ 'length': 2
1080
+ }, {
1081
+ 'name': 'stepMajor',
1082
+ 'type': 'number',
1083
+ 'array': true,
1084
+ 'length': 2,
1085
+ 'default': [90, 360]
1086
+ }, {
1087
+ 'name': 'stepMinor',
1088
+ 'type': 'number',
1089
+ 'array': true,
1090
+ 'length': 2,
1091
+ 'default': [10, 10]
1092
+ }, {
1093
+ 'name': 'precision',
1094
+ 'type': 'number',
1095
+ 'default': 2.5
1096
+ }]
1097
+ };
1098
+ inherits(Graticule, Transform, {
1099
+ transform(_, pulse) {
1100
+ var src = this.value,
1101
+ gen = this.generator,
1102
+ t;
1103
+ if (!src.length || _.modified()) {
1104
+ for (const prop in _) {
1105
+ if (isFunction(gen[prop])) {
1106
+ gen[prop](_[prop]);
1107
+ }
1108
+ }
1109
+ }
1110
+ t = gen();
1111
+ if (src.length) {
1112
+ pulse.mod.push(replace(src[0], t));
1113
+ } else {
1114
+ pulse.add.push(ingest$1(t));
1115
+ }
1116
+ src[0] = t;
1117
+ return pulse;
1118
+ }
1119
+ });
1120
+
1121
+ /**
1122
+ * Render a heatmap image for input raster grid data.
1123
+ * @constructor
1124
+ * @param {object} params - The parameters for this operator.
1125
+ * @param {function(object): *} [params.field] - The field with raster grid
1126
+ * data. If unspecified, the tuple itself is interpreted as a raster grid.
1127
+ * @param {string} [params.color] - A constant color value or function for
1128
+ * individual pixel color. If a function, it will be invoked with an input
1129
+ * object that includes $x, $y, $value, and $max fields for the grid.
1130
+ * @param {number} [params.opacity] - A constant opacity value or function for
1131
+ * individual pixel opacity. If a function, it will be invoked with an input
1132
+ * object that includes $x, $y, $value, and $max fields for the grid.
1133
+ * @param {string} [params.resolve] - The method for resolving maximum values
1134
+ * across multiple input grids. If 'independent' (the default), maximum
1135
+ * calculation will be performed separately for each grid. If 'shared',
1136
+ * a single global maximum will be used for all input grids.
1137
+ * @param {string} [params.as='image'] - The output field in which to store
1138
+ * the generated bitmap canvas images (default 'image').
1139
+ */
1140
+ function Heatmap(params) {
1141
+ Transform.call(this, null, params);
1142
+ }
1143
+ Heatmap.Definition = {
1144
+ 'type': 'heatmap',
1145
+ 'metadata': {
1146
+ 'modifies': true
1147
+ },
1148
+ 'params': [{
1149
+ 'name': 'field',
1150
+ 'type': 'field'
1151
+ }, {
1152
+ 'name': 'color',
1153
+ 'type': 'string',
1154
+ 'expr': true
1155
+ }, {
1156
+ 'name': 'opacity',
1157
+ 'type': 'number',
1158
+ 'expr': true
1159
+ }, {
1160
+ 'name': 'resolve',
1161
+ 'type': 'enum',
1162
+ 'values': ['shared', 'independent'],
1163
+ 'default': 'independent'
1164
+ }, {
1165
+ 'name': 'as',
1166
+ 'type': 'string',
1167
+ 'default': 'image'
1168
+ }]
1169
+ };
1170
+ inherits(Heatmap, Transform, {
1171
+ transform(_, pulse) {
1172
+ if (!pulse.changed() && !_.modified()) {
1173
+ return pulse.StopPropagation;
1174
+ }
1175
+ var source = pulse.materialize(pulse.SOURCE).source,
1176
+ shared = _.resolve === 'shared',
1177
+ field = _.field || identity,
1178
+ opacity = opacity_(_.opacity, _),
1179
+ color = color_(_.color, _),
1180
+ as = _.as || 'image',
1181
+ obj = {
1182
+ $x: 0,
1183
+ $y: 0,
1184
+ $value: 0,
1185
+ $max: shared ? max(source.map(t => max(field(t).values))) : 0
1186
+ };
1187
+ source.forEach(t => {
1188
+ const v = field(t);
1189
+
1190
+ // build proxy data object
1191
+ const o = extend({}, t, obj);
1192
+ // set maximum value if not globally shared
1193
+ if (!shared) o.$max = max(v.values || []);
1194
+
1195
+ // generate canvas image
1196
+ // optimize color/opacity if not pixel-dependent
1197
+ t[as] = toCanvas(v, o, color.dep ? color : constant(color(o)), opacity.dep ? opacity : constant(opacity(o)));
1198
+ });
1199
+ return pulse.reflow(true).modifies(as);
1200
+ }
1201
+ });
1202
+
1203
+ // get image color function
1204
+ function color_(color, _) {
1205
+ let f;
1206
+ if (isFunction(color)) {
1207
+ f = obj => rgb(color(obj, _));
1208
+ f.dep = dependency(color);
1209
+ } else {
1210
+ // default to mid-grey
1211
+ f = constant(rgb(color || '#888'));
1212
+ }
1213
+ return f;
1214
+ }
1215
+
1216
+ // get image opacity function
1217
+ function opacity_(opacity, _) {
1218
+ let f;
1219
+ if (isFunction(opacity)) {
1220
+ f = obj => opacity(obj, _);
1221
+ f.dep = dependency(opacity);
1222
+ } else if (opacity) {
1223
+ f = constant(opacity);
1224
+ } else {
1225
+ // default to [0, max] opacity gradient
1226
+ f = obj => obj.$value / obj.$max || 0;
1227
+ f.dep = true;
1228
+ }
1229
+ return f;
1230
+ }
1231
+
1232
+ // check if function depends on individual pixel data
1233
+ function dependency(f) {
1234
+ if (!isFunction(f)) return false;
1235
+ const set = toSet(accessorFields(f));
1236
+ return set.$x || set.$y || set.$value || set.$max;
1237
+ }
1238
+
1239
+ // render raster grid to canvas
1240
+ function toCanvas(grid, obj, color, opacity) {
1241
+ const n = grid.width,
1242
+ m = grid.height,
1243
+ x1 = grid.x1 || 0,
1244
+ y1 = grid.y1 || 0,
1245
+ x2 = grid.x2 || n,
1246
+ y2 = grid.y2 || m,
1247
+ val = grid.values,
1248
+ value = val ? i => val[i] : zero,
1249
+ can = domCanvas(x2 - x1, y2 - y1),
1250
+ ctx = can.getContext('2d'),
1251
+ img = ctx.getImageData(0, 0, x2 - x1, y2 - y1),
1252
+ pix = img.data;
1253
+ for (let j = y1, k = 0; j < y2; ++j) {
1254
+ obj.$y = j - y1;
1255
+ for (let i = x1, r = j * n; i < x2; ++i, k += 4) {
1256
+ obj.$x = i - x1;
1257
+ obj.$value = value(i + r);
1258
+ const v = color(obj);
1259
+ pix[k + 0] = v.r;
1260
+ pix[k + 1] = v.g;
1261
+ pix[k + 2] = v.b;
1262
+ pix[k + 3] = ~~(255 * opacity(obj));
1263
+ }
1264
+ }
1265
+ ctx.putImageData(img, 0, 0);
1266
+ return can;
1267
+ }
1268
+
1269
+ /**
1270
+ * Maintains a cartographic projection.
1271
+ * @constructor
1272
+ * @param {object} params - The parameters for this operator.
1273
+ */
1274
+ function Projection(params) {
1275
+ Transform.call(this, null, params);
1276
+ this.modified(true); // always treat as modified
1277
+ }
1278
+ inherits(Projection, Transform, {
1279
+ transform(_, pulse) {
1280
+ let proj = this.value;
1281
+ if (!proj || _.modified('type')) {
1282
+ this.value = proj = create(_.type);
1283
+ projectionProperties.forEach(prop => {
1284
+ if (_[prop] != null) set(proj, prop, _[prop]);
1285
+ });
1286
+ } else {
1287
+ projectionProperties.forEach(prop => {
1288
+ if (_.modified(prop)) set(proj, prop, _[prop]);
1289
+ });
1290
+ }
1291
+ if (_.pointRadius != null) proj.path.pointRadius(_.pointRadius);
1292
+ if (_.fit) fit(proj, _);
1293
+ return pulse.fork(pulse.NO_SOURCE | pulse.NO_FIELDS);
1294
+ }
1295
+ });
1296
+ function fit(proj, _) {
1297
+ const data = collectGeoJSON(_.fit);
1298
+ _.extent ? proj.fitExtent(_.extent, data) : _.size ? proj.fitSize(_.size, data) : 0;
1299
+ }
1300
+ function create(type) {
1301
+ const constructor = projection((type || 'mercator').toLowerCase());
1302
+ if (!constructor) error('Unrecognized projection type: ' + type);
1303
+ return constructor();
1304
+ }
1305
+ function set(proj, key, value) {
1306
+ if (isFunction(proj[key])) proj[key](value);
1307
+ }
1308
+ function collectGeoJSON(data) {
1309
+ data = array(data);
1310
+ return data.length === 1 ? data[0] : {
1311
+ type: FeatureCollection,
1312
+ features: data.reduce((a, f) => a.concat(featurize(f)), [])
1313
+ };
1314
+ }
1315
+ function featurize(f) {
1316
+ return f.type === FeatureCollection ? f.features : array(f).filter(d => d != null).map(d => d.type === Feature ? d : {
1317
+ type: Feature,
1318
+ geometry: d
1319
+ });
1320
+ }
1321
+
1322
+ export { Contour as contour, GeoJSON as geojson, GeoPath as geopath, GeoPoint as geopoint, GeoShape as geoshape, Graticule as graticule, Heatmap as heatmap, Isocontour as isocontour, KDE2D as kde2d, Projection as projection };