@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,1304 @@
1
+ import { inherits, extend, isString, isArray, isObject, isDate, toSet, error, hasOwnProperty as has, truthy, stringValue as $, debounce, array, constant } from '../../vega-util/build/vega-util.js';
2
+ import { Dataflow, transforms, asyncCallback, changeset, isChangeSet, EventStream } from '../../vega-dataflow/build/vega-dataflow.js';
3
+ import { RenderType, Scenegraph, CanvasHandler, renderModule, point } from '../../vega-scenegraph/build/vega-scenegraph.js';
4
+ import { functionContext } from '../../vega-functions/build/vega-functions.js';
5
+ import { context } from '../../vega-runtime/build/vega-runtime.js';
6
+ import { locale } from '../../vega-format/build/vega-format.js';
7
+ import interval from '../../d3-timer/src/interval.js';
8
+ import { tickStep } from '../../d3-array/src/ticks.js';
9
+
10
+ // initialize aria role and label attributes
11
+ function initializeAria(view) {
12
+ const el = view.container();
13
+ if (el) {
14
+ el.setAttribute('role', 'graphics-document');
15
+ el.setAttribute('aria-roleDescription', 'visualization');
16
+ ariaLabel(el, view.description());
17
+ }
18
+ }
19
+
20
+ // update aria-label if we have a DOM container element
21
+ function ariaLabel(el, desc) {
22
+ if (el) desc == null ? el.removeAttribute('aria-label') : el.setAttribute('aria-label', desc);
23
+ }
24
+
25
+ function background (view) {
26
+ // respond to background signal
27
+ view.add(null, _ => {
28
+ view._background = _.bg;
29
+ view._resize = 1;
30
+ return _.bg;
31
+ }, {
32
+ bg: view._signals.background
33
+ });
34
+ }
35
+
36
+ const Default = 'default';
37
+ function cursor (view) {
38
+ // get cursor signal, add to dataflow if needed
39
+ const cursor = view._signals.cursor || (view._signals.cursor = view.add({
40
+ user: Default,
41
+ item: null
42
+ }));
43
+
44
+ // evaluate cursor on each pointermove event
45
+ view.on(view.events('view', 'pointermove'), cursor, (_, event) => {
46
+ const value = cursor.value,
47
+ user = value ? isString(value) ? value : value.user : Default,
48
+ item = event.item && event.item.cursor || null;
49
+ return value && user === value.user && item == value.item ? value : {
50
+ user: user,
51
+ item: item
52
+ };
53
+ });
54
+
55
+ // when cursor signal updates, set visible cursor
56
+ view.add(null, function (_) {
57
+ let user = _.cursor,
58
+ item = this.value;
59
+ if (!isString(user)) {
60
+ item = user.item;
61
+ user = user.user;
62
+ }
63
+ setCursor(view, user && user !== Default ? user : item || user);
64
+ return item;
65
+ }, {
66
+ cursor: cursor
67
+ });
68
+ }
69
+ function setCursor(view, cursor) {
70
+ const el = view.globalCursor() ? typeof document !== 'undefined' && document.body : view.container();
71
+ if (el) {
72
+ return cursor == null ? el.style.removeProperty('cursor') : el.style.cursor = cursor;
73
+ }
74
+ }
75
+
76
+ function dataref(view, name) {
77
+ var data = view._runtime.data;
78
+ if (!has(data, name)) {
79
+ error('Unrecognized data set: ' + name);
80
+ }
81
+ return data[name];
82
+ }
83
+ function data(name, values) {
84
+ return arguments.length < 2 ? dataref(this, name).values.value : change.call(this, name, changeset().remove(truthy).insert(values));
85
+ }
86
+ function change(name, changes) {
87
+ if (!isChangeSet(changes)) {
88
+ error('Second argument to changes must be a changeset.');
89
+ }
90
+ const dataset = dataref(this, name);
91
+ dataset.modified = true;
92
+ return this.pulse(dataset.input, changes);
93
+ }
94
+ function insert(name, _) {
95
+ return change.call(this, name, changeset().insert(_));
96
+ }
97
+ function remove(name, _) {
98
+ return change.call(this, name, changeset().remove(_));
99
+ }
100
+
101
+ function width(view) {
102
+ var padding = view.padding();
103
+ return Math.max(0, view._viewWidth + padding.left + padding.right);
104
+ }
105
+ function height(view) {
106
+ var padding = view.padding();
107
+ return Math.max(0, view._viewHeight + padding.top + padding.bottom);
108
+ }
109
+ function offset(view) {
110
+ var padding = view.padding(),
111
+ origin = view._origin;
112
+ return [padding.left + origin[0], padding.top + origin[1]];
113
+ }
114
+ function resizeRenderer(view) {
115
+ var origin = offset(view),
116
+ w = width(view),
117
+ h = height(view);
118
+ view._renderer.background(view.background());
119
+ view._renderer.resize(w, h, origin);
120
+ view._handler.origin(origin);
121
+ view._resizeListeners.forEach(handler => {
122
+ try {
123
+ handler(w, h);
124
+ } catch (error) {
125
+ view.error(error);
126
+ }
127
+ });
128
+ }
129
+
130
+ /**
131
+ * Extend an event with additional view-specific methods.
132
+ * Adds a new property ('vega') to an event that provides a number
133
+ * of methods for querying information about the current interaction.
134
+ * The vega object provides the following methods:
135
+ * view - Returns the backing View instance.
136
+ * item - Returns the currently active scenegraph item (if any).
137
+ * group - Returns the currently active scenegraph group (if any).
138
+ * This method accepts a single string-typed argument indicating the name
139
+ * of the desired parent group. The scenegraph will be traversed from
140
+ * the item up towards the root to search for a matching group. If no
141
+ * argument is provided the enclosing group for the active item is
142
+ * returned, unless the item it itself a group, in which case it is
143
+ * returned directly.
144
+ * xy - Returns a two-element array containing the x and y coordinates for
145
+ * mouse or touch events. For touch events, this is based on the first
146
+ * elements in the changedTouches array. This method accepts a single
147
+ * argument: either an item instance or mark name that should serve as
148
+ * the reference coordinate system. If no argument is provided the
149
+ * top-level view coordinate system is assumed.
150
+ * x - Returns the current x-coordinate, accepts the same arguments as xy.
151
+ * y - Returns the current y-coordinate, accepts the same arguments as xy.
152
+ * @param {Event} event - The input event to extend.
153
+ * @param {Item} item - The currently active scenegraph item (if any).
154
+ * @return {Event} - The extended input event.
155
+ */
156
+ function eventExtend (view, event, item) {
157
+ var r = view._renderer,
158
+ el = r && r.canvas(),
159
+ p,
160
+ e,
161
+ translate;
162
+ if (el) {
163
+ translate = offset(view);
164
+ e = event.changedTouches ? event.changedTouches[0] : event;
165
+ p = point(e, el);
166
+ p[0] -= translate[0];
167
+ p[1] -= translate[1];
168
+ }
169
+ event.dataflow = view;
170
+ event.item = item;
171
+ event.vega = extension(view, item, p);
172
+ return event;
173
+ }
174
+ function extension(view, item, point) {
175
+ const itemGroup = item ? item.mark.marktype === 'group' ? item : item.mark.group : null;
176
+ function group(name) {
177
+ var g = itemGroup,
178
+ i;
179
+ if (name) for (i = item; i; i = i.mark.group) {
180
+ if (i.mark.name === name) {
181
+ g = i;
182
+ break;
183
+ }
184
+ }
185
+ return g && g.mark && g.mark.interactive ? g : {};
186
+ }
187
+ function xy(item) {
188
+ if (!item) return point;
189
+ if (isString(item)) item = group(item);
190
+ const p = point.slice();
191
+ while (item) {
192
+ p[0] -= item.x || 0;
193
+ p[1] -= item.y || 0;
194
+ item = item.mark && item.mark.group;
195
+ }
196
+ return p;
197
+ }
198
+ return {
199
+ view: constant(view),
200
+ item: constant(item || {}),
201
+ group: group,
202
+ xy: xy,
203
+ x: item => xy(item)[0],
204
+ y: item => xy(item)[1]
205
+ };
206
+ }
207
+
208
+ const VIEW = 'view',
209
+ TIMER = 'timer',
210
+ WINDOW = 'window',
211
+ NO_TRAP = {
212
+ trap: false
213
+ };
214
+
215
+ /**
216
+ * Initialize event handling configuration.
217
+ * @param {object} config - The configuration settings.
218
+ * @return {object}
219
+ */
220
+ function initializeEventConfig(config) {
221
+ const events = extend({
222
+ defaults: {}
223
+ }, config);
224
+ const unpack = (obj, keys) => {
225
+ keys.forEach(k => {
226
+ if (isArray(obj[k])) obj[k] = toSet(obj[k]);
227
+ });
228
+ };
229
+ unpack(events.defaults, ['prevent', 'allow']);
230
+ unpack(events, ['view', 'window', 'selector']);
231
+ return events;
232
+ }
233
+ function trackEventListener(view, sources, type, handler) {
234
+ view._eventListeners.push({
235
+ type: type,
236
+ sources: array(sources),
237
+ handler: handler
238
+ });
239
+ }
240
+ function prevent(view, type) {
241
+ var def = view._eventConfig.defaults,
242
+ prevent = def.prevent,
243
+ allow = def.allow;
244
+ return prevent === false || allow === true ? false : prevent === true || allow === false ? true : prevent ? prevent[type] : allow ? !allow[type] : view.preventDefault();
245
+ }
246
+ function permit(view, key, type) {
247
+ const rule = view._eventConfig && view._eventConfig[key];
248
+ if (rule === false || isObject(rule) && !rule[type]) {
249
+ view.warn(`Blocked ${key} ${type} event listener.`);
250
+ return false;
251
+ }
252
+ return true;
253
+ }
254
+
255
+ /**
256
+ * Create a new event stream from an event source.
257
+ * @param {object} source - The event source to monitor.
258
+ * @param {string} type - The event type.
259
+ * @param {function(object): boolean} [filter] - Event filter function.
260
+ * @return {EventStream}
261
+ */
262
+ function events(source, type, filter) {
263
+ var view = this,
264
+ s = new EventStream(filter),
265
+ send = function (e, item) {
266
+ view.runAsync(null, () => {
267
+ if (source === VIEW && prevent(view, type)) {
268
+ e.preventDefault();
269
+ }
270
+ s.receive(eventExtend(view, e, item));
271
+ });
272
+ },
273
+ sources;
274
+ if (source === TIMER) {
275
+ if (permit(view, 'timer', type)) {
276
+ view.timer(send, type);
277
+ }
278
+ } else if (source === VIEW) {
279
+ if (permit(view, 'view', type)) {
280
+ // send traps errors, so use {trap: false} option
281
+ view.addEventListener(type, send, NO_TRAP);
282
+ }
283
+ } else {
284
+ if (source === WINDOW) {
285
+ if (permit(view, 'window', type) && typeof window !== 'undefined') {
286
+ sources = [window];
287
+ }
288
+ } else if (typeof document !== 'undefined') {
289
+ if (permit(view, 'selector', type)) {
290
+ sources = Array.from(document.querySelectorAll(source));
291
+ }
292
+ }
293
+ if (!sources) {
294
+ view.warn('Can not resolve event source: ' + source);
295
+ } else {
296
+ for (var i = 0, n = sources.length; i < n; ++i) {
297
+ sources[i].addEventListener(type, send);
298
+ }
299
+ trackEventListener(view, sources, type, send);
300
+ }
301
+ }
302
+ return s;
303
+ }
304
+
305
+ function itemFilter(event) {
306
+ return event.item;
307
+ }
308
+ function markTarget(event) {
309
+ // grab upstream collector feeding the mark operator
310
+ return event.item.mark.source;
311
+ }
312
+ function invoke(name) {
313
+ return function (_, event) {
314
+ return event.vega.view().changeset().encode(event.item, name);
315
+ };
316
+ }
317
+ function hover (hoverSet, leaveSet) {
318
+ hoverSet = [hoverSet || 'hover'];
319
+ leaveSet = [leaveSet || 'update', hoverSet[0]];
320
+
321
+ // invoke hover set upon pointerover
322
+ this.on(this.events('view', 'pointerover', itemFilter), markTarget, invoke(hoverSet));
323
+
324
+ // invoke leave set upon pointerout
325
+ this.on(this.events('view', 'pointerout', itemFilter), markTarget, invoke(leaveSet));
326
+ return this;
327
+ }
328
+
329
+ /**
330
+ * Finalize a View instance that is being removed.
331
+ * Cancel any running timers.
332
+ * Remove all external event listeners.
333
+ * Remove any currently displayed tooltip.
334
+ */
335
+ function finalize () {
336
+ var tooltip = this._tooltip,
337
+ timers = this._timers,
338
+ handlers = this._handler.handlers(),
339
+ listeners = this._eventListeners,
340
+ n,
341
+ m,
342
+ e,
343
+ h,
344
+ t;
345
+ n = timers.length;
346
+ while (--n >= 0) {
347
+ timers[n].stop();
348
+ }
349
+ n = listeners.length;
350
+ while (--n >= 0) {
351
+ e = listeners[n];
352
+ m = e.sources.length;
353
+ while (--m >= 0) {
354
+ e.sources[m].removeEventListener(e.type, e.handler);
355
+ }
356
+ }
357
+ if (tooltip) {
358
+ tooltip.call(this, this._handler, null, null, null);
359
+ }
360
+
361
+ // turn off all registered handlers
362
+ n = handlers.length;
363
+ while (--n >= 0) {
364
+ t = handlers[n].type;
365
+ h = handlers[n].handler;
366
+ this._handler.off(t, h);
367
+ }
368
+ return this;
369
+ }
370
+
371
+ function element (tag, attr, text) {
372
+ const el = document.createElement(tag);
373
+ for (const key in attr) el.setAttribute(key, attr[key]);
374
+ if (text != null) el.textContent = text;
375
+ return el;
376
+ }
377
+
378
+ const BindClass = 'vega-bind',
379
+ NameClass = 'vega-bind-name',
380
+ RadioClass = 'vega-bind-radio';
381
+
382
+ /**
383
+ * Bind a signal to an external HTML input element. The resulting two-way
384
+ * binding will propagate input changes to signals, and propagate signal
385
+ * changes to the input element state. If this view instance has no parent
386
+ * element, we assume the view is headless and no bindings are created.
387
+ * @param {Element|string} el - The parent DOM element to which the input
388
+ * element should be appended as a child. If string-valued, this argument
389
+ * will be treated as a CSS selector. If null or undefined, the parent
390
+ * element of this view will be used as the element.
391
+ * @param {object} param - The binding parameters which specify the signal
392
+ * to bind to, the input element type, and type-specific configuration.
393
+ * @return {View} - This view instance.
394
+ */
395
+ function bind (view, el, binding) {
396
+ if (!el) return;
397
+ const param = binding.param;
398
+ let bind = binding.state;
399
+ if (!bind) {
400
+ bind = binding.state = {
401
+ elements: null,
402
+ active: false,
403
+ set: null,
404
+ update: value => {
405
+ if (value != view.signal(param.signal)) {
406
+ view.runAsync(null, () => {
407
+ bind.source = true;
408
+ view.signal(param.signal, value);
409
+ });
410
+ }
411
+ }
412
+ };
413
+ if (param.debounce) {
414
+ bind.update = debounce(param.debounce, bind.update);
415
+ }
416
+ }
417
+ const create = param.input == null && param.element ? target : generate;
418
+ create(bind, el, param, view);
419
+ if (!bind.active) {
420
+ view.on(view._signals[param.signal], null, () => {
421
+ bind.source ? bind.source = false : bind.set(view.signal(param.signal));
422
+ });
423
+ bind.active = true;
424
+ }
425
+ return bind;
426
+ }
427
+
428
+ /**
429
+ * Bind the signal to an external EventTarget.
430
+ */
431
+ function target(bind, node, param, view) {
432
+ const type = param.event || 'input';
433
+ const handler = () => bind.update(node.value);
434
+
435
+ // initialize signal value to external input value
436
+ view.signal(param.signal, node.value);
437
+
438
+ // listen for changes on the element
439
+ node.addEventListener(type, handler);
440
+
441
+ // register with view, so we can remove it upon finalization
442
+ trackEventListener(view, node, type, handler);
443
+
444
+ // propagate change to element
445
+ bind.set = value => {
446
+ node.value = value;
447
+ node.dispatchEvent(event(type));
448
+ };
449
+ }
450
+ function event(type) {
451
+ return typeof Event !== 'undefined' ? new Event(type) : {
452
+ type
453
+ };
454
+ }
455
+
456
+ /**
457
+ * Generate an HTML input form element and bind it to a signal.
458
+ */
459
+ function generate(bind, el, param, view) {
460
+ const value = view.signal(param.signal);
461
+ const div = element('div', {
462
+ 'class': BindClass
463
+ });
464
+ const wrapper = param.input === 'radio' ? div : div.appendChild(element('label'));
465
+ wrapper.appendChild(element('span', {
466
+ 'class': NameClass
467
+ }, param.name || param.signal));
468
+ el.appendChild(div);
469
+ let input = form;
470
+ switch (param.input) {
471
+ case 'checkbox':
472
+ input = checkbox;
473
+ break;
474
+ case 'select':
475
+ input = select;
476
+ break;
477
+ case 'radio':
478
+ input = radio;
479
+ break;
480
+ case 'range':
481
+ input = range;
482
+ break;
483
+ }
484
+ input(bind, wrapper, param, value);
485
+ }
486
+
487
+ /**
488
+ * Generates an arbitrary input form element.
489
+ * The input type is controlled via user-provided parameters.
490
+ */
491
+ function form(bind, el, param, value) {
492
+ const node = element('input');
493
+ for (const key in param) {
494
+ if (key !== 'signal' && key !== 'element') {
495
+ node.setAttribute(key === 'input' ? 'type' : key, param[key]);
496
+ }
497
+ }
498
+ node.setAttribute('name', param.signal);
499
+ node.value = value;
500
+ el.appendChild(node);
501
+ node.addEventListener('input', () => bind.update(node.value));
502
+ bind.elements = [node];
503
+ bind.set = value => node.value = value;
504
+ }
505
+
506
+ /**
507
+ * Generates a checkbox input element.
508
+ */
509
+ function checkbox(bind, el, param, value) {
510
+ const attr = {
511
+ type: 'checkbox',
512
+ name: param.signal
513
+ };
514
+ if (value) attr.checked = true;
515
+ const node = element('input', attr);
516
+ el.appendChild(node);
517
+ node.addEventListener('change', () => bind.update(node.checked));
518
+ bind.elements = [node];
519
+ bind.set = value => node.checked = !!value || null;
520
+ }
521
+
522
+ /**
523
+ * Generates a selection list input element.
524
+ */
525
+ function select(bind, el, param, value) {
526
+ const node = element('select', {
527
+ name: param.signal
528
+ }),
529
+ labels = param.labels || [];
530
+ param.options.forEach((option, i) => {
531
+ const attr = {
532
+ value: option
533
+ };
534
+ if (valuesEqual(option, value)) attr.selected = true;
535
+ node.appendChild(element('option', attr, (labels[i] || option) + ''));
536
+ });
537
+ el.appendChild(node);
538
+ node.addEventListener('change', () => {
539
+ bind.update(param.options[node.selectedIndex]);
540
+ });
541
+ bind.elements = [node];
542
+ bind.set = value => {
543
+ for (let i = 0, n = param.options.length; i < n; ++i) {
544
+ if (valuesEqual(param.options[i], value)) {
545
+ node.selectedIndex = i;
546
+ return;
547
+ }
548
+ }
549
+ };
550
+ }
551
+
552
+ /**
553
+ * Generates a radio button group.
554
+ */
555
+ function radio(bind, el, param, value) {
556
+ const group = element('span', {
557
+ 'class': RadioClass
558
+ }),
559
+ labels = param.labels || [];
560
+ el.appendChild(group);
561
+ bind.elements = param.options.map((option, i) => {
562
+ const attr = {
563
+ type: 'radio',
564
+ name: param.signal,
565
+ value: option
566
+ };
567
+ if (valuesEqual(option, value)) attr.checked = true;
568
+ const input = element('input', attr);
569
+ input.addEventListener('change', () => bind.update(option));
570
+ const label = element('label', {}, (labels[i] || option) + '');
571
+ label.prepend(input);
572
+ group.appendChild(label);
573
+ return input;
574
+ });
575
+ bind.set = value => {
576
+ const nodes = bind.elements,
577
+ n = nodes.length;
578
+ for (let i = 0; i < n; ++i) {
579
+ if (valuesEqual(nodes[i].value, value)) nodes[i].checked = true;
580
+ }
581
+ };
582
+ }
583
+
584
+ /**
585
+ * Generates a slider input element.
586
+ */
587
+ function range(bind, el, param, value) {
588
+ value = value !== undefined ? value : (+param.max + +param.min) / 2;
589
+ const max = param.max != null ? param.max : Math.max(100, +value) || 100,
590
+ min = param.min || Math.min(0, max, +value) || 0,
591
+ step = param.step || tickStep(min, max, 100);
592
+ const node = element('input', {
593
+ type: 'range',
594
+ name: param.signal,
595
+ min: min,
596
+ max: max,
597
+ step: step
598
+ });
599
+ node.value = value;
600
+ const span = element('span', {}, +value);
601
+ el.appendChild(node);
602
+ el.appendChild(span);
603
+ const update = () => {
604
+ span.textContent = node.value;
605
+ bind.update(+node.value);
606
+ };
607
+
608
+ // subscribe to both input and change
609
+ node.addEventListener('input', update);
610
+ node.addEventListener('change', update);
611
+ bind.elements = [node];
612
+ bind.set = value => {
613
+ node.value = value;
614
+ span.textContent = value;
615
+ };
616
+ }
617
+ function valuesEqual(a, b) {
618
+ return a === b || a + '' === b + '';
619
+ }
620
+
621
+ function initializeRenderer (view, r, el, constructor, scaleFactor, opt) {
622
+ r = r || new constructor(view.loader());
623
+ return r.initialize(el, width(view), height(view), offset(view), scaleFactor, opt).background(view.background());
624
+ }
625
+
626
+ function trap (view, fn) {
627
+ return !fn ? null : function () {
628
+ try {
629
+ fn.apply(this, arguments);
630
+ } catch (error) {
631
+ view.error(error);
632
+ }
633
+ };
634
+ }
635
+
636
+ function initializeHandler (view, prevHandler, el, constructor) {
637
+ // instantiate scenegraph handler
638
+ const handler = new constructor(view.loader(), trap(view, view.tooltip())).scene(view.scenegraph().root).initialize(el, offset(view), view);
639
+
640
+ // transfer event handlers
641
+ if (prevHandler) {
642
+ prevHandler.handlers().forEach(h => {
643
+ handler.on(h.type, h.handler);
644
+ });
645
+ }
646
+ return handler;
647
+ }
648
+
649
+ function initialize (el, elBind) {
650
+ const view = this,
651
+ type = view._renderType,
652
+ config = view._eventConfig.bind,
653
+ module = renderModule(type);
654
+
655
+ // containing dom element
656
+ el = view._el = el ? lookup(view, el, true) : null;
657
+
658
+ // initialize aria attributes
659
+ initializeAria(view);
660
+
661
+ // select appropriate renderer & handler
662
+ if (!module) view.error('Unrecognized renderer type: ' + type);
663
+ const Handler = module.handler || CanvasHandler,
664
+ Renderer = el ? module.renderer : module.headless;
665
+
666
+ // initialize renderer and input handler
667
+ view._renderer = !Renderer ? null : initializeRenderer(view, view._renderer, el, Renderer);
668
+ view._handler = initializeHandler(view, view._handler, el, Handler);
669
+ view._redraw = true;
670
+
671
+ // initialize signal bindings
672
+ if (el && config !== 'none') {
673
+ elBind = elBind ? view._elBind = lookup(view, elBind, true) : el.appendChild(element('form', {
674
+ 'class': 'vega-bindings'
675
+ }));
676
+ view._bind.forEach(_ => {
677
+ if (_.param.element && config !== 'container') {
678
+ _.element = lookup(view, _.param.element, !!_.param.input);
679
+ }
680
+ });
681
+ view._bind.forEach(_ => {
682
+ bind(view, _.element || elBind, _);
683
+ });
684
+ }
685
+ return view;
686
+ }
687
+ function lookup(view, el, clear) {
688
+ if (typeof el === 'string') {
689
+ if (typeof document !== 'undefined') {
690
+ el = document.querySelector(el);
691
+ if (!el) {
692
+ view.error('Signal bind element not found: ' + el);
693
+ return null;
694
+ }
695
+ } else {
696
+ view.error('DOM document instance not found.');
697
+ return null;
698
+ }
699
+ }
700
+ if (el && clear) {
701
+ try {
702
+ el.textContent = '';
703
+ } catch (e) {
704
+ el = null;
705
+ view.error(e);
706
+ }
707
+ }
708
+ return el;
709
+ }
710
+
711
+ const number = _ => +_ || 0;
712
+ const paddingObject = _ => ({
713
+ top: _,
714
+ bottom: _,
715
+ left: _,
716
+ right: _
717
+ });
718
+ function padding (_) {
719
+ return isObject(_) ? {
720
+ top: number(_.top),
721
+ bottom: number(_.bottom),
722
+ left: number(_.left),
723
+ right: number(_.right)
724
+ } : paddingObject(number(_));
725
+ }
726
+
727
+ /**
728
+ * Render the current scene in a headless fashion.
729
+ * This method is asynchronous, returning a Promise instance.
730
+ * @return {Promise} - A Promise that resolves to a renderer.
731
+ */
732
+ async function renderHeadless (view, type, scaleFactor, opt) {
733
+ const module = renderModule(type),
734
+ ctr = module && module.headless;
735
+ if (!ctr) error('Unrecognized renderer type: ' + type);
736
+ await view.runAsync();
737
+ return initializeRenderer(view, null, null, ctr, scaleFactor, opt).renderAsync(view._scenegraph.root);
738
+ }
739
+
740
+ /**
741
+ * Produce an image URL for the visualization. Depending on the type
742
+ * parameter, the generated URL contains data for either a PNG or SVG image.
743
+ * The URL can be used (for example) to download images of the visualization.
744
+ * This method is asynchronous, returning a Promise instance.
745
+ * @param {string} type - The image type. One of 'svg', 'png' or 'canvas'.
746
+ * The 'canvas' and 'png' types are synonyms for a PNG image.
747
+ * @return {Promise} - A promise that resolves to an image URL.
748
+ */
749
+ async function renderToImageURL (type, scaleFactor) {
750
+ if (type !== RenderType.Canvas && type !== RenderType.SVG && type !== RenderType.PNG) {
751
+ error('Unrecognized image type: ' + type);
752
+ }
753
+ const r = await renderHeadless(this, type, scaleFactor);
754
+ return type === RenderType.SVG ? toBlobURL(r.svg(), 'image/svg+xml') : r.canvas().toDataURL('image/png');
755
+ }
756
+ function toBlobURL(data, mime) {
757
+ const blob = new Blob([data], {
758
+ type: mime
759
+ });
760
+ return window.URL.createObjectURL(blob);
761
+ }
762
+
763
+ /**
764
+ * Produce a Canvas instance containing a rendered visualization.
765
+ * This method is asynchronous, returning a Promise instance.
766
+ * @return {Promise} - A promise that resolves to a Canvas instance.
767
+ */
768
+ async function renderToCanvas (scaleFactor, opt) {
769
+ const r = await renderHeadless(this, RenderType.Canvas, scaleFactor, opt);
770
+ return r.canvas();
771
+ }
772
+
773
+ /**
774
+ * Produce a rendered SVG string of the visualization.
775
+ * This method is asynchronous, returning a Promise instance.
776
+ * @return {Promise} - A promise that resolves to an SVG string.
777
+ */
778
+ async function renderToSVG (scaleFactor) {
779
+ const r = await renderHeadless(this, RenderType.SVG, scaleFactor);
780
+ return r.svg();
781
+ }
782
+
783
+ function runtime (view, spec, expr) {
784
+ return context(view, transforms, functionContext, expr).parse(spec);
785
+ }
786
+
787
+ function scale(name) {
788
+ var scales = this._runtime.scales;
789
+ if (!has(scales, name)) {
790
+ error('Unrecognized scale or projection: ' + name);
791
+ }
792
+ return scales[name].value;
793
+ }
794
+
795
+ var Width = 'width',
796
+ Height = 'height',
797
+ Padding = 'padding',
798
+ Skip = {
799
+ skip: true
800
+ };
801
+ function viewWidth(view, width) {
802
+ var a = view.autosize(),
803
+ p = view.padding();
804
+ return width - (a && a.contains === Padding ? p.left + p.right : 0);
805
+ }
806
+ function viewHeight(view, height) {
807
+ var a = view.autosize(),
808
+ p = view.padding();
809
+ return height - (a && a.contains === Padding ? p.top + p.bottom : 0);
810
+ }
811
+ function initializeResize(view) {
812
+ var s = view._signals,
813
+ w = s[Width],
814
+ h = s[Height],
815
+ p = s[Padding];
816
+ function resetSize() {
817
+ view._autosize = view._resize = 1;
818
+ }
819
+
820
+ // respond to width signal
821
+ view._resizeWidth = view.add(null, _ => {
822
+ view._width = _.size;
823
+ view._viewWidth = viewWidth(view, _.size);
824
+ resetSize();
825
+ }, {
826
+ size: w
827
+ });
828
+
829
+ // respond to height signal
830
+ view._resizeHeight = view.add(null, _ => {
831
+ view._height = _.size;
832
+ view._viewHeight = viewHeight(view, _.size);
833
+ resetSize();
834
+ }, {
835
+ size: h
836
+ });
837
+
838
+ // respond to padding signal
839
+ const resizePadding = view.add(null, resetSize, {
840
+ pad: p
841
+ });
842
+
843
+ // set rank to run immediately after source signal
844
+ view._resizeWidth.rank = w.rank + 1;
845
+ view._resizeHeight.rank = h.rank + 1;
846
+ resizePadding.rank = p.rank + 1;
847
+ }
848
+ function resizeView(viewWidth, viewHeight, width, height, origin, auto) {
849
+ this.runAfter(view => {
850
+ let rerun = 0;
851
+
852
+ // reset autosize flag
853
+ view._autosize = 0;
854
+
855
+ // width value changed: update signal, skip resize op
856
+ if (view.width() !== width) {
857
+ rerun = 1;
858
+ view.signal(Width, width, Skip); // set width, skip update calc
859
+ view._resizeWidth.skip(true); // skip width resize handler
860
+ }
861
+
862
+ // height value changed: update signal, skip resize op
863
+ if (view.height() !== height) {
864
+ rerun = 1;
865
+ view.signal(Height, height, Skip); // set height, skip update calc
866
+ view._resizeHeight.skip(true); // skip height resize handler
867
+ }
868
+
869
+ // view width changed: update view property, set resize flag
870
+ if (view._viewWidth !== viewWidth) {
871
+ view._resize = 1;
872
+ view._viewWidth = viewWidth;
873
+ }
874
+
875
+ // view height changed: update view property, set resize flag
876
+ if (view._viewHeight !== viewHeight) {
877
+ view._resize = 1;
878
+ view._viewHeight = viewHeight;
879
+ }
880
+
881
+ // origin changed: update view property, set resize flag
882
+ if (view._origin[0] !== origin[0] || view._origin[1] !== origin[1]) {
883
+ view._resize = 1;
884
+ view._origin = origin;
885
+ }
886
+
887
+ // run dataflow on width/height signal change
888
+ if (rerun) view.run('enter');
889
+ if (auto) view.runAfter(v => v.resize());
890
+ }, false, 1);
891
+ }
892
+
893
+ /**
894
+ * Get the current view state, consisting of signal values and/or data sets.
895
+ * @param {object} [options] - Options flags indicating which state to export.
896
+ * If unspecified, all signals and data sets will be exported.
897
+ * @param {function(string, Operator):boolean} [options.signals] - Optional
898
+ * predicate function for testing if a signal should be included in the
899
+ * exported state. If unspecified, all signals will be included, except for
900
+ * those named 'parent' or those which refer to a Transform value.
901
+ * @param {function(string, object):boolean} [options.data] - Optional
902
+ * predicate function for testing if a data set's input should be included
903
+ * in the exported state. If unspecified, all data sets that have been
904
+ * explicitly modified will be included.
905
+ * @param {boolean} [options.recurse=true] - Flag indicating if the exported
906
+ * state should recursively include state from group mark sub-contexts.
907
+ * @return {object} - An object containing the exported state values.
908
+ */
909
+ function getState(options) {
910
+ return this._runtime.getState(options || {
911
+ data: dataTest,
912
+ signals: signalTest,
913
+ recurse: true
914
+ });
915
+ }
916
+ function dataTest(name, data) {
917
+ return data.modified && isArray(data.input.value) && !name.startsWith('_:vega:_');
918
+ }
919
+ function signalTest(name, op) {
920
+ return !(name === 'parent' || op instanceof transforms.proxy);
921
+ }
922
+
923
+ /**
924
+ * Sets the current view state and updates the view by invoking run.
925
+ * @param {object} state - A state object containing signal and/or
926
+ * data set values, following the format used by the getState method.
927
+ * @return {View} - This view instance.
928
+ */
929
+ function setState(state) {
930
+ this.runAsync(null, v => {
931
+ v._trigger = false;
932
+ v._runtime.setState(state);
933
+ }, v => {
934
+ v._trigger = true;
935
+ });
936
+ return this;
937
+ }
938
+
939
+ function timer (callback, delay) {
940
+ function tick(elapsed) {
941
+ callback({
942
+ timestamp: Date.now(),
943
+ elapsed: elapsed
944
+ });
945
+ }
946
+ this._timers.push(interval(tick, delay));
947
+ }
948
+
949
+ function defaultTooltip (handler, event, item, value) {
950
+ const el = handler.element();
951
+ if (el) el.setAttribute('title', formatTooltip(value));
952
+ }
953
+ function formatTooltip(value) {
954
+ return value == null ? '' : isArray(value) ? formatArray(value) : isObject(value) && !isDate(value) ? formatObject(value) : value + '';
955
+ }
956
+ function formatObject(obj) {
957
+ return Object.keys(obj).map(key => {
958
+ const v = obj[key];
959
+ return key + ': ' + (isArray(v) ? formatArray(v) : formatValue(v));
960
+ }).join('\n');
961
+ }
962
+ function formatArray(value) {
963
+ return '[' + value.map(formatValue).join(', ') + ']';
964
+ }
965
+ function formatValue(value) {
966
+ return isArray(value) ? '[\u2026]' : isObject(value) && !isDate(value) ? '{\u2026}' : value;
967
+ }
968
+
969
+ function watchPixelRatio () {
970
+ // based on https://developer.mozilla.org/en-US/docs/Web/API/Window/devicePixelRatio#monitoring_screen_resolution_or_zoom_level_changes
971
+ if (this.renderer() === 'canvas' && this._renderer._canvas) {
972
+ let remove = null;
973
+ const updatePixelRatio = () => {
974
+ if (remove != null) {
975
+ remove();
976
+ }
977
+ const media = matchMedia(`(resolution: ${window.devicePixelRatio}dppx)`);
978
+ media.addEventListener('change', updatePixelRatio);
979
+ remove = () => {
980
+ media.removeEventListener('change', updatePixelRatio);
981
+ };
982
+ this._renderer._canvas.getContext('2d').pixelRatio = window.devicePixelRatio || 1;
983
+ this._redraw = true;
984
+ this._resize = 1;
985
+ this.resize().runAsync();
986
+ };
987
+ updatePixelRatio();
988
+ }
989
+ }
990
+
991
+ /**
992
+ * Create a new View instance from a Vega dataflow runtime specification.
993
+ * The generated View will not immediately be ready for display. Callers
994
+ * should also invoke the initialize method (e.g., to set the parent
995
+ * DOM element in browser-based deployment) and then invoke the run
996
+ * method to evaluate the dataflow graph. Rendering will automatically
997
+ * be performed upon dataflow runs.
998
+ * @constructor
999
+ * @param {object} spec - The Vega dataflow runtime specification.
1000
+ */
1001
+ function View(spec, options) {
1002
+ const view = this;
1003
+ options = options || {};
1004
+ Dataflow.call(view);
1005
+ if (options.loader) view.loader(options.loader);
1006
+ if (options.logger) view.logger(options.logger);
1007
+ if (options.logLevel != null) view.logLevel(options.logLevel);
1008
+ if (options.locale || spec.locale) {
1009
+ const loc = extend({}, spec.locale, options.locale);
1010
+ view.locale(locale(loc.number, loc.time));
1011
+ }
1012
+ view._el = null;
1013
+ view._elBind = null;
1014
+ view._renderType = options.renderer || RenderType.Canvas;
1015
+ view._scenegraph = new Scenegraph();
1016
+ const root = view._scenegraph.root;
1017
+
1018
+ // initialize renderer, handler and event management
1019
+ view._renderer = null;
1020
+ view._tooltip = options.tooltip || defaultTooltip, view._redraw = true;
1021
+ view._handler = new CanvasHandler().scene(root);
1022
+ view._globalCursor = false;
1023
+ view._preventDefault = false;
1024
+ view._timers = [];
1025
+ view._eventListeners = [];
1026
+ view._resizeListeners = [];
1027
+
1028
+ // initialize event configuration
1029
+ view._eventConfig = initializeEventConfig(spec.eventConfig);
1030
+ view.globalCursor(view._eventConfig.globalCursor);
1031
+
1032
+ // initialize dataflow graph
1033
+ const ctx = runtime(view, spec, options.expr);
1034
+ view._runtime = ctx;
1035
+ view._signals = ctx.signals;
1036
+ view._bind = (spec.bindings || []).map(_ => ({
1037
+ state: null,
1038
+ param: extend({}, _)
1039
+ }));
1040
+
1041
+ // initialize scenegraph
1042
+ if (ctx.root) ctx.root.set(root);
1043
+ root.source = ctx.data.root.input;
1044
+ view.pulse(ctx.data.root.input, view.changeset().insert(root.items));
1045
+
1046
+ // initialize view size
1047
+ view._width = view.width();
1048
+ view._height = view.height();
1049
+ view._viewWidth = viewWidth(view, view._width);
1050
+ view._viewHeight = viewHeight(view, view._height);
1051
+ view._origin = [0, 0];
1052
+ view._resize = 0;
1053
+ view._autosize = 1;
1054
+ initializeResize(view);
1055
+
1056
+ // initialize background color
1057
+ background(view);
1058
+
1059
+ // initialize cursor
1060
+ cursor(view);
1061
+
1062
+ // initialize view description
1063
+ view.description(spec.description);
1064
+
1065
+ // initialize hover proessing, if requested
1066
+ if (options.hover) view.hover();
1067
+
1068
+ // initialize DOM container(s) and renderer
1069
+ if (options.container) view.initialize(options.container, options.bind);
1070
+ if (options.watchPixelRatio) view._watchPixelRatio();
1071
+ }
1072
+ function lookupSignal(view, name) {
1073
+ return has(view._signals, name) ? view._signals[name] : error('Unrecognized signal name: ' + $(name));
1074
+ }
1075
+ function findOperatorHandler(op, handler) {
1076
+ const h = (op._targets || []).filter(op => op._update && op._update.handler === handler);
1077
+ return h.length ? h[0] : null;
1078
+ }
1079
+ function addOperatorListener(view, name, op, handler) {
1080
+ let h = findOperatorHandler(op, handler);
1081
+ if (!h) {
1082
+ h = trap(view, () => handler(name, op.value));
1083
+ h.handler = handler;
1084
+ view.on(op, null, h);
1085
+ }
1086
+ return view;
1087
+ }
1088
+ function removeOperatorListener(view, op, handler) {
1089
+ const h = findOperatorHandler(op, handler);
1090
+ if (h) op._targets.remove(h);
1091
+ return view;
1092
+ }
1093
+ inherits(View, Dataflow, {
1094
+ // -- DATAFLOW / RENDERING ----
1095
+
1096
+ async evaluate(encode, prerun, postrun) {
1097
+ // evaluate dataflow and prerun
1098
+ await Dataflow.prototype.evaluate.call(this, encode, prerun);
1099
+
1100
+ // render as needed
1101
+ if (this._redraw || this._resize) {
1102
+ try {
1103
+ if (this._renderer) {
1104
+ if (this._resize) {
1105
+ this._resize = 0;
1106
+ resizeRenderer(this);
1107
+ }
1108
+ await this._renderer.renderAsync(this._scenegraph.root);
1109
+ }
1110
+ this._redraw = false;
1111
+ } catch (e) {
1112
+ this.error(e);
1113
+ }
1114
+ }
1115
+
1116
+ // evaluate postrun
1117
+ if (postrun) asyncCallback(this, postrun);
1118
+ return this;
1119
+ },
1120
+ dirty(item) {
1121
+ this._redraw = true;
1122
+ this._renderer && this._renderer.dirty(item);
1123
+ },
1124
+ // -- GET / SET ----
1125
+
1126
+ description(text) {
1127
+ if (arguments.length) {
1128
+ const desc = text != null ? text + '' : null;
1129
+ if (desc !== this._desc) ariaLabel(this._el, this._desc = desc);
1130
+ return this;
1131
+ }
1132
+ return this._desc;
1133
+ },
1134
+ container() {
1135
+ return this._el;
1136
+ },
1137
+ scenegraph() {
1138
+ return this._scenegraph;
1139
+ },
1140
+ origin() {
1141
+ return this._origin.slice();
1142
+ },
1143
+ signal(name, value, options) {
1144
+ const op = lookupSignal(this, name);
1145
+ return arguments.length === 1 ? op.value : this.update(op, value, options);
1146
+ },
1147
+ width(_) {
1148
+ return arguments.length ? this.signal('width', _) : this.signal('width');
1149
+ },
1150
+ height(_) {
1151
+ return arguments.length ? this.signal('height', _) : this.signal('height');
1152
+ },
1153
+ padding(_) {
1154
+ return arguments.length ? this.signal('padding', padding(_)) : padding(this.signal('padding'));
1155
+ },
1156
+ autosize(_) {
1157
+ return arguments.length ? this.signal('autosize', _) : this.signal('autosize');
1158
+ },
1159
+ background(_) {
1160
+ return arguments.length ? this.signal('background', _) : this.signal('background');
1161
+ },
1162
+ renderer(type) {
1163
+ if (!arguments.length) return this._renderType;
1164
+ if (!renderModule(type)) error('Unrecognized renderer type: ' + type);
1165
+ if (type !== this._renderType) {
1166
+ this._renderType = type;
1167
+ this._resetRenderer();
1168
+ }
1169
+ return this;
1170
+ },
1171
+ tooltip(handler) {
1172
+ if (!arguments.length) return this._tooltip;
1173
+ if (handler !== this._tooltip) {
1174
+ this._tooltip = handler;
1175
+ this._resetRenderer();
1176
+ }
1177
+ return this;
1178
+ },
1179
+ loader(loader) {
1180
+ if (!arguments.length) return this._loader;
1181
+ if (loader !== this._loader) {
1182
+ Dataflow.prototype.loader.call(this, loader);
1183
+ this._resetRenderer();
1184
+ }
1185
+ return this;
1186
+ },
1187
+ resize() {
1188
+ // set flag to perform autosize
1189
+ this._autosize = 1;
1190
+ // touch autosize signal to ensure top-level ViewLayout runs
1191
+ return this.touch(lookupSignal(this, 'autosize'));
1192
+ },
1193
+ _resetRenderer() {
1194
+ if (this._renderer) {
1195
+ this._renderer = null;
1196
+ this.initialize(this._el, this._elBind);
1197
+ }
1198
+ },
1199
+ // -- SIZING ----
1200
+ _resizeView: resizeView,
1201
+ // -- EVENT HANDLING ----
1202
+
1203
+ addEventListener(type, handler, options) {
1204
+ let callback = handler;
1205
+ if (!(options && options.trap === false)) {
1206
+ // wrap callback in error handler
1207
+ callback = trap(this, handler);
1208
+ callback.raw = handler;
1209
+ }
1210
+ this._handler.on(type, callback);
1211
+ return this;
1212
+ },
1213
+ removeEventListener(type, handler) {
1214
+ var handlers = this._handler.handlers(type),
1215
+ i = handlers.length,
1216
+ h,
1217
+ t;
1218
+
1219
+ // search registered handlers, remove if match found
1220
+ while (--i >= 0) {
1221
+ t = handlers[i].type;
1222
+ h = handlers[i].handler;
1223
+ if (type === t && (handler === h || handler === h.raw)) {
1224
+ this._handler.off(t, h);
1225
+ break;
1226
+ }
1227
+ }
1228
+ return this;
1229
+ },
1230
+ addResizeListener(handler) {
1231
+ const l = this._resizeListeners;
1232
+ if (!l.includes(handler)) {
1233
+ // add handler if it isn't already registered
1234
+ // note: error trapping handled elsewhere, so
1235
+ // no need to wrap handlers here
1236
+ l.push(handler);
1237
+ }
1238
+ return this;
1239
+ },
1240
+ removeResizeListener(handler) {
1241
+ var l = this._resizeListeners,
1242
+ i = l.indexOf(handler);
1243
+ if (i >= 0) {
1244
+ l.splice(i, 1);
1245
+ }
1246
+ return this;
1247
+ },
1248
+ addSignalListener(name, handler) {
1249
+ return addOperatorListener(this, name, lookupSignal(this, name), handler);
1250
+ },
1251
+ removeSignalListener(name, handler) {
1252
+ return removeOperatorListener(this, lookupSignal(this, name), handler);
1253
+ },
1254
+ addDataListener(name, handler) {
1255
+ return addOperatorListener(this, name, dataref(this, name).values, handler);
1256
+ },
1257
+ removeDataListener(name, handler) {
1258
+ return removeOperatorListener(this, dataref(this, name).values, handler);
1259
+ },
1260
+ globalCursor(_) {
1261
+ if (arguments.length) {
1262
+ if (this._globalCursor !== !!_) {
1263
+ const prev = setCursor(this, null); // clear previous cursor
1264
+ this._globalCursor = !!_;
1265
+ if (prev) setCursor(this, prev); // swap cursor
1266
+ }
1267
+ return this;
1268
+ } else {
1269
+ return this._globalCursor;
1270
+ }
1271
+ },
1272
+ preventDefault(_) {
1273
+ if (arguments.length) {
1274
+ this._preventDefault = _;
1275
+ return this;
1276
+ } else {
1277
+ return this._preventDefault;
1278
+ }
1279
+ },
1280
+ timer,
1281
+ events,
1282
+ finalize,
1283
+ hover,
1284
+ // -- DATA ----
1285
+ data,
1286
+ change,
1287
+ insert,
1288
+ remove,
1289
+ // -- SCALES --
1290
+ scale,
1291
+ // -- INITIALIZATION ----
1292
+ initialize,
1293
+ // -- HEADLESS RENDERING ----
1294
+ toImageURL: renderToImageURL,
1295
+ toCanvas: renderToCanvas,
1296
+ toSVG: renderToSVG,
1297
+ // -- SAVE / RESTORE STATE ----
1298
+ getState,
1299
+ setState,
1300
+ // RE-RENDER ON ZOOM
1301
+ _watchPixelRatio: watchPixelRatio
1302
+ });
1303
+
1304
+ export { View };