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