@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,1313 @@
1
+ 'use strict';
2
+
3
+ var vegaDataflow = require('../../vega-dataflow/build/vega-dataflow.js');
4
+ var vegaScenegraph = require('../../vega-scenegraph/build/vega-scenegraph.js');
5
+ var vegaUtil = require('../../vega-util/build/vega-util.js');
6
+
7
+ const Top = 'top';
8
+ const Left = 'left';
9
+ const Right = 'right';
10
+ const Bottom = 'bottom';
11
+ const TopLeft = 'top-left';
12
+ const TopRight = 'top-right';
13
+ const BottomLeft = 'bottom-left';
14
+ const BottomRight = 'bottom-right';
15
+ const Start = 'start';
16
+ const Middle = 'middle';
17
+ const End = 'end';
18
+ const X = 'x';
19
+ const Y = 'y';
20
+ const Group = 'group';
21
+ const AxisRole = 'axis';
22
+ const TitleRole = 'title';
23
+ const FrameRole = 'frame';
24
+ const ScopeRole = 'scope';
25
+ const LegendRole = 'legend';
26
+ const RowHeader = 'row-header';
27
+ const RowFooter = 'row-footer';
28
+ const RowTitle = 'row-title';
29
+ const ColHeader = 'column-header';
30
+ const ColFooter = 'column-footer';
31
+ const ColTitle = 'column-title';
32
+ const Padding = 'padding';
33
+ const Symbols = 'symbol';
34
+ const Fit = 'fit';
35
+ const FitX = 'fit-x';
36
+ const FitY = 'fit-y';
37
+ const Pad = 'pad';
38
+ const None = 'none';
39
+ const All = 'all';
40
+ const Each = 'each';
41
+ const Flush = 'flush';
42
+ const Column = 'column';
43
+ const Row = 'row';
44
+
45
+ /**
46
+ * Calculate bounding boxes for scenegraph items.
47
+ * @constructor
48
+ * @param {object} params - The parameters for this operator.
49
+ * @param {object} params.mark - The scenegraph mark instance to bound.
50
+ */
51
+ function Bound(params) {
52
+ vegaDataflow.Transform.call(this, null, params);
53
+ }
54
+ vegaUtil.inherits(Bound, vegaDataflow.Transform, {
55
+ transform(_, pulse) {
56
+ const view = pulse.dataflow,
57
+ mark = _.mark,
58
+ type = mark.marktype,
59
+ entry = vegaScenegraph.Marks[type],
60
+ bound = entry.bound;
61
+ let markBounds = mark.bounds,
62
+ rebound;
63
+ if (entry.nested) {
64
+ // multi-item marks have a single bounds instance
65
+ if (mark.items.length) view.dirty(mark.items[0]);
66
+ markBounds = boundItem(mark, bound);
67
+ mark.items.forEach(item => {
68
+ item.bounds.clear().union(markBounds);
69
+ });
70
+ } else if (type === Group || _.modified()) {
71
+ // operator parameters modified -> re-bound all items
72
+ // updates group bounds in response to modified group content
73
+ pulse.visit(pulse.MOD, item => view.dirty(item));
74
+ markBounds.clear();
75
+ mark.items.forEach(item => markBounds.union(boundItem(item, bound)));
76
+
77
+ // force reflow for axes/legends/titles to propagate any layout changes
78
+ switch (mark.role) {
79
+ case AxisRole:
80
+ case LegendRole:
81
+ case TitleRole:
82
+ pulse.reflow();
83
+ }
84
+ } else {
85
+ // incrementally update bounds, re-bound mark as needed
86
+ rebound = pulse.changed(pulse.REM);
87
+ pulse.visit(pulse.ADD, item => {
88
+ markBounds.union(boundItem(item, bound));
89
+ });
90
+ pulse.visit(pulse.MOD, item => {
91
+ rebound = rebound || markBounds.alignsWith(item.bounds);
92
+ view.dirty(item);
93
+ markBounds.union(boundItem(item, bound));
94
+ });
95
+ if (rebound) {
96
+ markBounds.clear();
97
+ mark.items.forEach(item => markBounds.union(item.bounds));
98
+ }
99
+ }
100
+
101
+ // ensure mark bounds do not exceed any clipping region
102
+ vegaScenegraph.boundClip(mark);
103
+ return pulse.modifies('bounds');
104
+ }
105
+ });
106
+ function boundItem(item, bound, opt) {
107
+ return bound(item.bounds.clear(), item, opt);
108
+ }
109
+
110
+ const COUNTER_NAME = ':vega_identifier:';
111
+
112
+ /**
113
+ * Adds a unique identifier to all added tuples.
114
+ * This transform creates a new signal that serves as an id counter.
115
+ * As a result, the id counter is shared across all instances of this
116
+ * transform, generating unique ids across multiple data streams. In
117
+ * addition, this signal value can be included in a snapshot of the
118
+ * dataflow state, enabling correct resumption of id allocation.
119
+ * @constructor
120
+ * @param {object} params - The parameters for this operator.
121
+ * @param {string} params.as - The field name for the generated identifier.
122
+ */
123
+ function Identifier(params) {
124
+ vegaDataflow.Transform.call(this, 0, params);
125
+ }
126
+ Identifier.Definition = {
127
+ 'type': 'Identifier',
128
+ 'metadata': {
129
+ 'modifies': true
130
+ },
131
+ 'params': [{
132
+ 'name': 'as',
133
+ 'type': 'string',
134
+ 'required': true
135
+ }]
136
+ };
137
+ vegaUtil.inherits(Identifier, vegaDataflow.Transform, {
138
+ transform(_, pulse) {
139
+ const counter = getCounter(pulse.dataflow),
140
+ as = _.as;
141
+ let id = counter.value;
142
+ pulse.visit(pulse.ADD, t => t[as] = t[as] || ++id);
143
+ counter.set(this.value = id);
144
+ return pulse;
145
+ }
146
+ });
147
+ function getCounter(view) {
148
+ return view._signals[COUNTER_NAME] || (view._signals[COUNTER_NAME] = view.add(0));
149
+ }
150
+
151
+ /**
152
+ * Bind scenegraph items to a scenegraph mark instance.
153
+ * @constructor
154
+ * @param {object} params - The parameters for this operator.
155
+ * @param {object} params.markdef - The mark definition for creating the mark.
156
+ * This is an object of legal scenegraph mark properties which *must* include
157
+ * the 'marktype' property.
158
+ */
159
+ function Mark(params) {
160
+ vegaDataflow.Transform.call(this, null, params);
161
+ }
162
+ vegaUtil.inherits(Mark, vegaDataflow.Transform, {
163
+ transform(_, pulse) {
164
+ let mark = this.value;
165
+
166
+ // acquire mark on first invocation, bind context and group
167
+ if (!mark) {
168
+ mark = pulse.dataflow.scenegraph().mark(_.markdef, lookup$1(_), _.index);
169
+ mark.group.context = _.context;
170
+ if (!_.context.group) _.context.group = mark.group;
171
+ mark.source = this.source; // point to upstream collector
172
+ mark.clip = _.clip;
173
+ mark.interactive = _.interactive;
174
+ this.value = mark;
175
+ }
176
+
177
+ // initialize entering items
178
+ const Init = mark.marktype === Group ? vegaScenegraph.GroupItem : vegaScenegraph.Item;
179
+ pulse.visit(pulse.ADD, item => Init.call(item, mark));
180
+
181
+ // update clipping and/or interactive status
182
+ if (_.modified('clip') || _.modified('interactive')) {
183
+ mark.clip = _.clip;
184
+ mark.interactive = !!_.interactive;
185
+ mark.zdirty = true; // force scenegraph re-eval
186
+ pulse.reflow();
187
+ }
188
+
189
+ // bind items array to scenegraph mark
190
+ mark.items = pulse.source;
191
+ return pulse;
192
+ }
193
+ });
194
+ function lookup$1(_) {
195
+ const g = _.groups,
196
+ p = _.parent;
197
+ return g && g.size === 1 ? g.get(Object.keys(g.object)[0]) : g && p ? g.lookup(p) : null;
198
+ }
199
+
200
+ /**
201
+ * Analyze items for overlap, changing opacity to hide items with
202
+ * overlapping bounding boxes. This transform will preserve at least
203
+ * two items (e.g., first and last) even if overlap persists.
204
+ * @param {object} params - The parameters for this operator.
205
+ * @param {function(*,*): number} [params.sort] - A comparator
206
+ * function for sorting items.
207
+ * @param {object} [params.method] - The overlap removal method to apply.
208
+ * One of 'parity' (default, hide every other item until there is no
209
+ * more overlap) or 'greedy' (sequentially scan and hide and items that
210
+ * overlap with the last visible item).
211
+ * @param {object} [params.boundScale] - A scale whose range should be used
212
+ * to bound the items. Items exceeding the bounds of the scale range
213
+ * will be treated as overlapping. If null or undefined, no bounds check
214
+ * will be applied.
215
+ * @param {object} [params.boundOrient] - The orientation of the scale
216
+ * (top, bottom, left, or right) used to bound items. This parameter is
217
+ * ignored if boundScale is null or undefined.
218
+ * @param {object} [params.boundTolerance] - The tolerance in pixels for
219
+ * bound inclusion testing (default 1). This specifies by how many pixels
220
+ * an item's bounds may exceed the scale range bounds and not be culled.
221
+ * @constructor
222
+ */
223
+ function Overlap(params) {
224
+ vegaDataflow.Transform.call(this, null, params);
225
+ }
226
+ const methods = {
227
+ parity: items => items.filter((item, i) => i % 2 ? item.opacity = 0 : 1),
228
+ greedy: (items, sep) => {
229
+ let a;
230
+ return items.filter((b, i) => !i || !intersect(a.bounds, b.bounds, sep) ? (a = b, 1) : b.opacity = 0);
231
+ }
232
+ };
233
+
234
+ // compute bounding box intersection
235
+ // including padding pixels of separation
236
+ const intersect = (a, b, sep) => sep > Math.max(b.x1 - a.x2, a.x1 - b.x2, b.y1 - a.y2, a.y1 - b.y2);
237
+ const hasOverlap = (items, pad) => {
238
+ for (var i = 1, n = items.length, a = items[0].bounds, b; i < n; a = b, ++i) {
239
+ if (intersect(a, b = items[i].bounds, pad)) return true;
240
+ }
241
+ };
242
+ const hasBounds = item => {
243
+ const b = item.bounds;
244
+ return b.width() > 1 && b.height() > 1;
245
+ };
246
+ const boundTest = (scale, orient, tolerance) => {
247
+ var range = scale.range(),
248
+ b = new vegaScenegraph.Bounds();
249
+ if (orient === Top || orient === Bottom) {
250
+ b.set(range[0], -Infinity, range[1], +Infinity);
251
+ } else {
252
+ b.set(-Infinity, range[0], +Infinity, range[1]);
253
+ }
254
+ b.expand(tolerance || 1);
255
+ return item => b.encloses(item.bounds);
256
+ };
257
+
258
+ // reset all items to be fully opaque
259
+ const reset = source => {
260
+ source.forEach(item => item.opacity = 1);
261
+ return source;
262
+ };
263
+
264
+ // add all tuples to mod, fork pulse if parameters were modified
265
+ // fork prevents cross-stream tuple pollution (e.g., pulse from scale)
266
+ const reflow = (pulse, _) => pulse.reflow(_.modified()).modifies('opacity');
267
+ vegaUtil.inherits(Overlap, vegaDataflow.Transform, {
268
+ transform(_, pulse) {
269
+ const reduce = methods[_.method] || methods.parity,
270
+ sep = _.separation || 0;
271
+ let source = pulse.materialize(pulse.SOURCE).source,
272
+ items,
273
+ test;
274
+ if (!source || !source.length) return;
275
+ if (!_.method) {
276
+ // early exit if method is falsy
277
+ if (_.modified('method')) {
278
+ reset(source);
279
+ pulse = reflow(pulse, _);
280
+ }
281
+ return pulse;
282
+ }
283
+
284
+ // skip labels with no content
285
+ source = source.filter(hasBounds);
286
+
287
+ // early exit, nothing to do
288
+ if (!source.length) return;
289
+ if (_.sort) {
290
+ source = source.slice().sort(_.sort);
291
+ }
292
+ items = reset(source);
293
+ pulse = reflow(pulse, _);
294
+ if (items.length >= 3 && hasOverlap(items, sep)) {
295
+ do {
296
+ items = reduce(items, sep);
297
+ } while (items.length >= 3 && hasOverlap(items, sep));
298
+ if (items.length < 3 && !vegaUtil.peek(source).opacity) {
299
+ if (items.length > 1) vegaUtil.peek(items).opacity = 0;
300
+ vegaUtil.peek(source).opacity = 1;
301
+ }
302
+ }
303
+ if (_.boundScale && _.boundTolerance >= 0) {
304
+ test = boundTest(_.boundScale, _.boundOrient, +_.boundTolerance);
305
+ source.forEach(item => {
306
+ if (!test(item)) item.opacity = 0;
307
+ });
308
+ }
309
+
310
+ // re-calculate mark bounds
311
+ const bounds = items[0].mark.bounds.clear();
312
+ source.forEach(item => {
313
+ if (item.opacity) bounds.union(item.bounds);
314
+ });
315
+ return pulse;
316
+ }
317
+ });
318
+
319
+ /**
320
+ * Queue modified scenegraph items for rendering.
321
+ * @constructor
322
+ */
323
+ function Render(params) {
324
+ vegaDataflow.Transform.call(this, null, params);
325
+ }
326
+ vegaUtil.inherits(Render, vegaDataflow.Transform, {
327
+ transform(_, pulse) {
328
+ const view = pulse.dataflow;
329
+ pulse.visit(pulse.ALL, item => view.dirty(item));
330
+
331
+ // set z-index dirty flag as needed
332
+ if (pulse.fields && pulse.fields['zindex']) {
333
+ const item = pulse.source && pulse.source[0];
334
+ if (item) item.mark.zdirty = true;
335
+ }
336
+ }
337
+ });
338
+
339
+ const tempBounds = new vegaScenegraph.Bounds();
340
+ function set(item, property, value) {
341
+ return item[property] === value ? 0 : (item[property] = value, 1);
342
+ }
343
+
344
+ function isYAxis(mark) {
345
+ var orient = mark.items[0].orient;
346
+ return orient === Left || orient === Right;
347
+ }
348
+ function axisIndices(datum) {
349
+ let index = +datum.grid;
350
+ return [datum.ticks ? index++ : -1,
351
+ // ticks index
352
+ datum.labels ? index++ : -1,
353
+ // labels index
354
+ index + +datum.domain // title index
355
+ ];
356
+ }
357
+ function axisLayout(view, axis, width, height) {
358
+ var item = axis.items[0],
359
+ datum = item.datum,
360
+ delta = item.translate != null ? item.translate : 0.5,
361
+ orient = item.orient,
362
+ indices = axisIndices(datum),
363
+ range = item.range,
364
+ offset = item.offset,
365
+ position = item.position,
366
+ minExtent = item.minExtent,
367
+ maxExtent = item.maxExtent,
368
+ title = datum.title && item.items[indices[2]].items[0],
369
+ titlePadding = item.titlePadding,
370
+ bounds = item.bounds,
371
+ dl = title && vegaScenegraph.multiLineOffset(title),
372
+ x = 0,
373
+ y = 0,
374
+ i,
375
+ s;
376
+ tempBounds.clear().union(bounds);
377
+ bounds.clear();
378
+ if ((i = indices[0]) > -1) bounds.union(item.items[i].bounds);
379
+ if ((i = indices[1]) > -1) bounds.union(item.items[i].bounds);
380
+
381
+ // position axis group and title
382
+ switch (orient) {
383
+ case Top:
384
+ x = position || 0;
385
+ y = -offset;
386
+ s = Math.max(minExtent, Math.min(maxExtent, -bounds.y1));
387
+ bounds.add(0, -s).add(range, 0);
388
+ if (title) axisTitleLayout(view, title, s, titlePadding, dl, 0, -1, bounds);
389
+ break;
390
+ case Left:
391
+ x = -offset;
392
+ y = position || 0;
393
+ s = Math.max(minExtent, Math.min(maxExtent, -bounds.x1));
394
+ bounds.add(-s, 0).add(0, range);
395
+ if (title) axisTitleLayout(view, title, s, titlePadding, dl, 1, -1, bounds);
396
+ break;
397
+ case Right:
398
+ x = width + offset;
399
+ y = position || 0;
400
+ s = Math.max(minExtent, Math.min(maxExtent, bounds.x2));
401
+ bounds.add(0, 0).add(s, range);
402
+ if (title) axisTitleLayout(view, title, s, titlePadding, dl, 1, 1, bounds);
403
+ break;
404
+ case Bottom:
405
+ x = position || 0;
406
+ y = height + offset;
407
+ s = Math.max(minExtent, Math.min(maxExtent, bounds.y2));
408
+ bounds.add(0, 0).add(range, s);
409
+ if (title) axisTitleLayout(view, title, s, titlePadding, 0, 0, 1, bounds);
410
+ break;
411
+ default:
412
+ x = item.x;
413
+ y = item.y;
414
+ }
415
+
416
+ // update bounds
417
+ vegaScenegraph.boundStroke(bounds.translate(x, y), item);
418
+ if (set(item, 'x', x + delta) | set(item, 'y', y + delta)) {
419
+ item.bounds = tempBounds;
420
+ view.dirty(item);
421
+ item.bounds = bounds;
422
+ view.dirty(item);
423
+ }
424
+ return item.mark.bounds.clear().union(bounds);
425
+ }
426
+ function axisTitleLayout(view, title, offset, pad, dl, isYAxis, sign, bounds) {
427
+ const b = title.bounds;
428
+ if (title.auto) {
429
+ const v = sign * (offset + dl + pad);
430
+ let dx = 0,
431
+ dy = 0;
432
+ view.dirty(title);
433
+ isYAxis ? dx = (title.x || 0) - (title.x = v) : dy = (title.y || 0) - (title.y = v);
434
+ title.mark.bounds.clear().union(b.translate(-dx, -dy));
435
+ view.dirty(title);
436
+ }
437
+ bounds.union(b);
438
+ }
439
+
440
+ // aggregation functions for grid margin determination
441
+ const min = (a, b) => Math.floor(Math.min(a, b));
442
+ const max = (a, b) => Math.ceil(Math.max(a, b));
443
+ function gridLayoutGroups(group) {
444
+ var groups = group.items,
445
+ n = groups.length,
446
+ i = 0,
447
+ mark,
448
+ items;
449
+ const views = {
450
+ marks: [],
451
+ rowheaders: [],
452
+ rowfooters: [],
453
+ colheaders: [],
454
+ colfooters: [],
455
+ rowtitle: null,
456
+ coltitle: null
457
+ };
458
+
459
+ // layout axes, gather legends, collect bounds
460
+ for (; i < n; ++i) {
461
+ mark = groups[i];
462
+ items = mark.items;
463
+ if (mark.marktype === Group) {
464
+ switch (mark.role) {
465
+ case AxisRole:
466
+ case LegendRole:
467
+ case TitleRole:
468
+ break;
469
+ case RowHeader:
470
+ views.rowheaders.push(...items);
471
+ break;
472
+ case RowFooter:
473
+ views.rowfooters.push(...items);
474
+ break;
475
+ case ColHeader:
476
+ views.colheaders.push(...items);
477
+ break;
478
+ case ColFooter:
479
+ views.colfooters.push(...items);
480
+ break;
481
+ case RowTitle:
482
+ views.rowtitle = items[0];
483
+ break;
484
+ case ColTitle:
485
+ views.coltitle = items[0];
486
+ break;
487
+ default:
488
+ views.marks.push(...items);
489
+ }
490
+ }
491
+ }
492
+ return views;
493
+ }
494
+ function bboxFlush(item) {
495
+ return new vegaScenegraph.Bounds().set(0, 0, item.width || 0, item.height || 0);
496
+ }
497
+ function bboxFull(item) {
498
+ const b = item.bounds.clone();
499
+ return b.empty() ? b.set(0, 0, 0, 0) : b.translate(-(item.x || 0), -(item.y || 0));
500
+ }
501
+ function get(opt, key, d) {
502
+ const v = vegaUtil.isObject(opt) ? opt[key] : opt;
503
+ return v != null ? v : d !== undefined ? d : 0;
504
+ }
505
+ function offsetValue(v) {
506
+ return v < 0 ? Math.ceil(-v) : 0;
507
+ }
508
+ function gridLayout(view, groups, opt) {
509
+ var dirty = !opt.nodirty,
510
+ bbox = opt.bounds === Flush ? bboxFlush : bboxFull,
511
+ bounds = tempBounds.set(0, 0, 0, 0),
512
+ alignCol = get(opt.align, Column),
513
+ alignRow = get(opt.align, Row),
514
+ padCol = get(opt.padding, Column),
515
+ padRow = get(opt.padding, Row),
516
+ ncols = opt.columns || groups.length,
517
+ nrows = ncols <= 0 ? 1 : Math.ceil(groups.length / ncols),
518
+ n = groups.length,
519
+ xOffset = Array(n),
520
+ xExtent = Array(ncols),
521
+ xMax = 0,
522
+ yOffset = Array(n),
523
+ yExtent = Array(nrows),
524
+ yMax = 0,
525
+ dx = Array(n),
526
+ dy = Array(n),
527
+ boxes = Array(n),
528
+ m,
529
+ i,
530
+ c,
531
+ r,
532
+ b,
533
+ g,
534
+ px,
535
+ py,
536
+ x,
537
+ y,
538
+ offset;
539
+ for (i = 0; i < ncols; ++i) xExtent[i] = 0;
540
+ for (i = 0; i < nrows; ++i) yExtent[i] = 0;
541
+
542
+ // determine offsets for each group
543
+ for (i = 0; i < n; ++i) {
544
+ g = groups[i];
545
+ b = boxes[i] = bbox(g);
546
+ g.x = g.x || 0;
547
+ dx[i] = 0;
548
+ g.y = g.y || 0;
549
+ dy[i] = 0;
550
+ c = i % ncols;
551
+ r = ~~(i / ncols);
552
+ xMax = Math.max(xMax, px = Math.ceil(b.x2));
553
+ yMax = Math.max(yMax, py = Math.ceil(b.y2));
554
+ xExtent[c] = Math.max(xExtent[c], px);
555
+ yExtent[r] = Math.max(yExtent[r], py);
556
+ xOffset[i] = padCol + offsetValue(b.x1);
557
+ yOffset[i] = padRow + offsetValue(b.y1);
558
+ if (dirty) view.dirty(groups[i]);
559
+ }
560
+
561
+ // set initial alignment offsets
562
+ for (i = 0; i < n; ++i) {
563
+ if (i % ncols === 0) xOffset[i] = 0;
564
+ if (i < ncols) yOffset[i] = 0;
565
+ }
566
+
567
+ // enforce column alignment constraints
568
+ if (alignCol === Each) {
569
+ for (c = 1; c < ncols; ++c) {
570
+ for (offset = 0, i = c; i < n; i += ncols) {
571
+ if (offset < xOffset[i]) offset = xOffset[i];
572
+ }
573
+ for (i = c; i < n; i += ncols) {
574
+ xOffset[i] = offset + xExtent[c - 1];
575
+ }
576
+ }
577
+ } else if (alignCol === All) {
578
+ for (offset = 0, i = 0; i < n; ++i) {
579
+ if (i % ncols && offset < xOffset[i]) offset = xOffset[i];
580
+ }
581
+ for (i = 0; i < n; ++i) {
582
+ if (i % ncols) xOffset[i] = offset + xMax;
583
+ }
584
+ } else {
585
+ for (alignCol = false, c = 1; c < ncols; ++c) {
586
+ for (i = c; i < n; i += ncols) {
587
+ xOffset[i] += xExtent[c - 1];
588
+ }
589
+ }
590
+ }
591
+
592
+ // enforce row alignment constraints
593
+ if (alignRow === Each) {
594
+ for (r = 1; r < nrows; ++r) {
595
+ for (offset = 0, i = r * ncols, m = i + ncols; i < m; ++i) {
596
+ if (offset < yOffset[i]) offset = yOffset[i];
597
+ }
598
+ for (i = r * ncols; i < m; ++i) {
599
+ yOffset[i] = offset + yExtent[r - 1];
600
+ }
601
+ }
602
+ } else if (alignRow === All) {
603
+ for (offset = 0, i = ncols; i < n; ++i) {
604
+ if (offset < yOffset[i]) offset = yOffset[i];
605
+ }
606
+ for (i = ncols; i < n; ++i) {
607
+ yOffset[i] = offset + yMax;
608
+ }
609
+ } else {
610
+ for (alignRow = false, r = 1; r < nrows; ++r) {
611
+ for (i = r * ncols, m = i + ncols; i < m; ++i) {
612
+ yOffset[i] += yExtent[r - 1];
613
+ }
614
+ }
615
+ }
616
+
617
+ // perform horizontal grid layout
618
+ for (x = 0, i = 0; i < n; ++i) {
619
+ x = xOffset[i] + (i % ncols ? x : 0);
620
+ dx[i] += x - groups[i].x;
621
+ }
622
+
623
+ // perform vertical grid layout
624
+ for (c = 0; c < ncols; ++c) {
625
+ for (y = 0, i = c; i < n; i += ncols) {
626
+ y += yOffset[i];
627
+ dy[i] += y - groups[i].y;
628
+ }
629
+ }
630
+
631
+ // perform horizontal centering
632
+ if (alignCol && get(opt.center, Column) && nrows > 1) {
633
+ for (i = 0; i < n; ++i) {
634
+ b = alignCol === All ? xMax : xExtent[i % ncols];
635
+ x = b - boxes[i].x2 - groups[i].x - dx[i];
636
+ if (x > 0) dx[i] += x / 2;
637
+ }
638
+ }
639
+
640
+ // perform vertical centering
641
+ if (alignRow && get(opt.center, Row) && ncols !== 1) {
642
+ for (i = 0; i < n; ++i) {
643
+ b = alignRow === All ? yMax : yExtent[~~(i / ncols)];
644
+ y = b - boxes[i].y2 - groups[i].y - dy[i];
645
+ if (y > 0) dy[i] += y / 2;
646
+ }
647
+ }
648
+
649
+ // position grid relative to anchor
650
+ for (i = 0; i < n; ++i) {
651
+ bounds.union(boxes[i].translate(dx[i], dy[i]));
652
+ }
653
+ x = get(opt.anchor, X);
654
+ y = get(opt.anchor, Y);
655
+ switch (get(opt.anchor, Column)) {
656
+ case End:
657
+ x -= bounds.width();
658
+ break;
659
+ case Middle:
660
+ x -= bounds.width() / 2;
661
+ }
662
+ switch (get(opt.anchor, Row)) {
663
+ case End:
664
+ y -= bounds.height();
665
+ break;
666
+ case Middle:
667
+ y -= bounds.height() / 2;
668
+ }
669
+ x = Math.round(x);
670
+ y = Math.round(y);
671
+
672
+ // update mark positions, bounds, dirty
673
+ bounds.clear();
674
+ for (i = 0; i < n; ++i) {
675
+ groups[i].mark.bounds.clear();
676
+ }
677
+ for (i = 0; i < n; ++i) {
678
+ g = groups[i];
679
+ g.x += dx[i] += x;
680
+ g.y += dy[i] += y;
681
+ bounds.union(g.mark.bounds.union(g.bounds.translate(dx[i], dy[i])));
682
+ if (dirty) view.dirty(g);
683
+ }
684
+ return bounds;
685
+ }
686
+ function trellisLayout(view, group, opt) {
687
+ var views = gridLayoutGroups(group),
688
+ groups = views.marks,
689
+ bbox = opt.bounds === Flush ? boundFlush : boundFull,
690
+ off = opt.offset,
691
+ ncols = opt.columns || groups.length,
692
+ nrows = ncols <= 0 ? 1 : Math.ceil(groups.length / ncols),
693
+ cells = nrows * ncols,
694
+ x,
695
+ y,
696
+ x2,
697
+ y2,
698
+ anchor,
699
+ band,
700
+ offset;
701
+
702
+ // -- initial grid layout
703
+ const bounds = gridLayout(view, groups, opt);
704
+ if (bounds.empty()) bounds.set(0, 0, 0, 0); // empty grid
705
+
706
+ // -- layout grid headers and footers --
707
+
708
+ // perform row header layout
709
+ if (views.rowheaders) {
710
+ band = get(opt.headerBand, Row, null);
711
+ x = layoutHeaders(view, views.rowheaders, groups, ncols, nrows, -get(off, 'rowHeader'), min, 0, bbox, 'x1', 0, ncols, 1, band);
712
+ }
713
+
714
+ // perform column header layout
715
+ if (views.colheaders) {
716
+ band = get(opt.headerBand, Column, null);
717
+ y = layoutHeaders(view, views.colheaders, groups, ncols, ncols, -get(off, 'columnHeader'), min, 1, bbox, 'y1', 0, 1, ncols, band);
718
+ }
719
+
720
+ // perform row footer layout
721
+ if (views.rowfooters) {
722
+ band = get(opt.footerBand, Row, null);
723
+ x2 = layoutHeaders(view, views.rowfooters, groups, ncols, nrows, get(off, 'rowFooter'), max, 0, bbox, 'x2', ncols - 1, ncols, 1, band);
724
+ }
725
+
726
+ // perform column footer layout
727
+ if (views.colfooters) {
728
+ band = get(opt.footerBand, Column, null);
729
+ y2 = layoutHeaders(view, views.colfooters, groups, ncols, ncols, get(off, 'columnFooter'), max, 1, bbox, 'y2', cells - ncols, 1, ncols, band);
730
+ }
731
+
732
+ // perform row title layout
733
+ if (views.rowtitle) {
734
+ anchor = get(opt.titleAnchor, Row);
735
+ offset = get(off, 'rowTitle');
736
+ offset = anchor === End ? x2 + offset : x - offset;
737
+ band = get(opt.titleBand, Row, 0.5);
738
+ layoutTitle(view, views.rowtitle, offset, 0, bounds, band);
739
+ }
740
+
741
+ // perform column title layout
742
+ if (views.coltitle) {
743
+ anchor = get(opt.titleAnchor, Column);
744
+ offset = get(off, 'columnTitle');
745
+ offset = anchor === End ? y2 + offset : y - offset;
746
+ band = get(opt.titleBand, Column, 0.5);
747
+ layoutTitle(view, views.coltitle, offset, 1, bounds, band);
748
+ }
749
+ }
750
+ function boundFlush(item, field) {
751
+ return field === 'x1' ? item.x || 0 : field === 'y1' ? item.y || 0 : field === 'x2' ? (item.x || 0) + (item.width || 0) : field === 'y2' ? (item.y || 0) + (item.height || 0) : undefined;
752
+ }
753
+ function boundFull(item, field) {
754
+ return item.bounds[field];
755
+ }
756
+ function layoutHeaders(view, headers, groups, ncols, limit, offset, agg, isX, bound, bf, start, stride, back, band) {
757
+ var n = groups.length,
758
+ init = 0,
759
+ edge = 0,
760
+ i,
761
+ j,
762
+ k,
763
+ m,
764
+ b,
765
+ h,
766
+ g,
767
+ x,
768
+ y;
769
+
770
+ // if no groups, early exit and return 0
771
+ if (!n) return init;
772
+
773
+ // compute margin
774
+ for (i = start; i < n; i += stride) {
775
+ if (groups[i]) init = agg(init, bound(groups[i], bf));
776
+ }
777
+
778
+ // if no headers, return margin calculation
779
+ if (!headers.length) return init;
780
+
781
+ // check if number of headers exceeds number of rows or columns
782
+ if (headers.length > limit) {
783
+ view.warn('Grid headers exceed limit: ' + limit);
784
+ headers = headers.slice(0, limit);
785
+ }
786
+
787
+ // apply offset
788
+ init += offset;
789
+
790
+ // clear mark bounds for all headers
791
+ for (j = 0, m = headers.length; j < m; ++j) {
792
+ view.dirty(headers[j]);
793
+ headers[j].mark.bounds.clear();
794
+ }
795
+
796
+ // layout each header
797
+ for (i = start, j = 0, m = headers.length; j < m; ++j, i += stride) {
798
+ h = headers[j];
799
+ b = h.mark.bounds;
800
+
801
+ // search for nearest group to align to
802
+ // necessary if table has empty cells
803
+ for (k = i; k >= 0 && (g = groups[k]) == null; k -= back);
804
+
805
+ // assign coordinates and update bounds
806
+ if (isX) {
807
+ x = band == null ? g.x : Math.round(g.bounds.x1 + band * g.bounds.width());
808
+ y = init;
809
+ } else {
810
+ x = init;
811
+ y = band == null ? g.y : Math.round(g.bounds.y1 + band * g.bounds.height());
812
+ }
813
+ b.union(h.bounds.translate(x - (h.x || 0), y - (h.y || 0)));
814
+ h.x = x;
815
+ h.y = y;
816
+ view.dirty(h);
817
+
818
+ // update current edge of layout bounds
819
+ edge = agg(edge, b[bf]);
820
+ }
821
+ return edge;
822
+ }
823
+ function layoutTitle(view, g, offset, isX, bounds, band) {
824
+ if (!g) return;
825
+ view.dirty(g);
826
+
827
+ // compute title coordinates
828
+ var x = offset,
829
+ y = offset;
830
+ isX ? x = Math.round(bounds.x1 + band * bounds.width()) : y = Math.round(bounds.y1 + band * bounds.height());
831
+
832
+ // assign coordinates and update bounds
833
+ g.bounds.translate(x - (g.x || 0), y - (g.y || 0));
834
+ g.mark.bounds.clear().union(g.bounds);
835
+ g.x = x;
836
+ g.y = y;
837
+
838
+ // queue title for redraw
839
+ view.dirty(g);
840
+ }
841
+
842
+ // utility for looking up legend layout configuration
843
+ function lookup(config, orient) {
844
+ const opt = config[orient] || {};
845
+ return (key, d) => opt[key] != null ? opt[key] : config[key] != null ? config[key] : d;
846
+ }
847
+
848
+ // if legends specify offset directly, use the maximum specified value
849
+ function offsets(legends, value) {
850
+ let max = -Infinity;
851
+ legends.forEach(item => {
852
+ if (item.offset != null) max = Math.max(max, item.offset);
853
+ });
854
+ return max > -Infinity ? max : value;
855
+ }
856
+ function legendParams(g, orient, config, xb, yb, w, h) {
857
+ const _ = lookup(config, orient),
858
+ offset = offsets(g, _('offset', 0)),
859
+ anchor = _('anchor', Start),
860
+ mult = anchor === End ? 1 : anchor === Middle ? 0.5 : 0;
861
+ const p = {
862
+ align: Each,
863
+ bounds: _('bounds', Flush),
864
+ columns: _('direction') === 'vertical' ? 1 : g.length,
865
+ padding: _('margin', 8),
866
+ center: _('center'),
867
+ nodirty: true
868
+ };
869
+ switch (orient) {
870
+ case Left:
871
+ p.anchor = {
872
+ x: Math.floor(xb.x1) - offset,
873
+ column: End,
874
+ y: mult * (h || xb.height() + 2 * xb.y1),
875
+ row: anchor
876
+ };
877
+ break;
878
+ case Right:
879
+ p.anchor = {
880
+ x: Math.ceil(xb.x2) + offset,
881
+ y: mult * (h || xb.height() + 2 * xb.y1),
882
+ row: anchor
883
+ };
884
+ break;
885
+ case Top:
886
+ p.anchor = {
887
+ y: Math.floor(yb.y1) - offset,
888
+ row: End,
889
+ x: mult * (w || yb.width() + 2 * yb.x1),
890
+ column: anchor
891
+ };
892
+ break;
893
+ case Bottom:
894
+ p.anchor = {
895
+ y: Math.ceil(yb.y2) + offset,
896
+ x: mult * (w || yb.width() + 2 * yb.x1),
897
+ column: anchor
898
+ };
899
+ break;
900
+ case TopLeft:
901
+ p.anchor = {
902
+ x: offset,
903
+ y: offset
904
+ };
905
+ break;
906
+ case TopRight:
907
+ p.anchor = {
908
+ x: w - offset,
909
+ y: offset,
910
+ column: End
911
+ };
912
+ break;
913
+ case BottomLeft:
914
+ p.anchor = {
915
+ x: offset,
916
+ y: h - offset,
917
+ row: End
918
+ };
919
+ break;
920
+ case BottomRight:
921
+ p.anchor = {
922
+ x: w - offset,
923
+ y: h - offset,
924
+ column: End,
925
+ row: End
926
+ };
927
+ break;
928
+ }
929
+ return p;
930
+ }
931
+ function legendLayout(view, legend) {
932
+ var item = legend.items[0],
933
+ datum = item.datum,
934
+ orient = item.orient,
935
+ bounds = item.bounds,
936
+ x = item.x,
937
+ y = item.y,
938
+ w,
939
+ h;
940
+
941
+ // cache current bounds for later comparison
942
+ item._bounds ? item._bounds.clear().union(bounds) : item._bounds = bounds.clone();
943
+ bounds.clear();
944
+
945
+ // adjust legend to accommodate padding and title
946
+ legendGroupLayout(view, item, item.items[0].items[0]);
947
+
948
+ // aggregate bounds to determine size, and include origin
949
+ bounds = legendBounds(item, bounds);
950
+ w = 2 * item.padding;
951
+ h = 2 * item.padding;
952
+ if (!bounds.empty()) {
953
+ w = Math.ceil(bounds.width() + w);
954
+ h = Math.ceil(bounds.height() + h);
955
+ }
956
+ if (datum.type === Symbols) {
957
+ legendEntryLayout(item.items[0].items[0].items[0].items);
958
+ }
959
+ if (orient !== None) {
960
+ item.x = x = 0;
961
+ item.y = y = 0;
962
+ }
963
+ item.width = w;
964
+ item.height = h;
965
+ vegaScenegraph.boundStroke(bounds.set(x, y, x + w, y + h), item);
966
+ item.mark.bounds.clear().union(bounds);
967
+ return item;
968
+ }
969
+ function legendBounds(item, b) {
970
+ // aggregate item bounds
971
+ item.items.forEach(_ => b.union(_.bounds));
972
+
973
+ // anchor to legend origin
974
+ b.x1 = item.padding;
975
+ b.y1 = item.padding;
976
+ return b;
977
+ }
978
+ function legendGroupLayout(view, item, entry) {
979
+ var pad = item.padding,
980
+ ex = pad - entry.x,
981
+ ey = pad - entry.y;
982
+ if (!item.datum.title) {
983
+ if (ex || ey) translate(view, entry, ex, ey);
984
+ } else {
985
+ var title = item.items[1].items[0],
986
+ anchor = title.anchor,
987
+ tpad = item.titlePadding || 0,
988
+ tx = pad - title.x,
989
+ ty = pad - title.y;
990
+ switch (title.orient) {
991
+ case Left:
992
+ ex += Math.ceil(title.bounds.width()) + tpad;
993
+ break;
994
+ case Right:
995
+ case Bottom:
996
+ break;
997
+ default:
998
+ ey += title.bounds.height() + tpad;
999
+ }
1000
+ if (ex || ey) translate(view, entry, ex, ey);
1001
+ switch (title.orient) {
1002
+ case Left:
1003
+ ty += legendTitleOffset(item, entry, title, anchor, 1, 1);
1004
+ break;
1005
+ case Right:
1006
+ tx += legendTitleOffset(item, entry, title, End, 0, 0) + tpad;
1007
+ ty += legendTitleOffset(item, entry, title, anchor, 1, 1);
1008
+ break;
1009
+ case Bottom:
1010
+ tx += legendTitleOffset(item, entry, title, anchor, 0, 0);
1011
+ ty += legendTitleOffset(item, entry, title, End, -1, 0, 1) + tpad;
1012
+ break;
1013
+ default:
1014
+ tx += legendTitleOffset(item, entry, title, anchor, 0, 0);
1015
+ }
1016
+ if (tx || ty) translate(view, title, tx, ty);
1017
+
1018
+ // translate legend if title pushes into negative coordinates
1019
+ if ((tx = Math.round(title.bounds.x1 - pad)) < 0) {
1020
+ translate(view, entry, -tx, 0);
1021
+ translate(view, title, -tx, 0);
1022
+ }
1023
+ }
1024
+ }
1025
+ function legendTitleOffset(item, entry, title, anchor, y, lr, noBar) {
1026
+ const grad = item.datum.type !== 'symbol',
1027
+ vgrad = title.datum.vgrad,
1028
+ e = grad && (lr || !vgrad) && !noBar ? entry.items[0] : entry,
1029
+ s = e.bounds[y ? 'y2' : 'x2'] - item.padding,
1030
+ u = vgrad && lr ? s : 0,
1031
+ v = vgrad && lr ? 0 : s,
1032
+ o = y <= 0 ? 0 : vegaScenegraph.multiLineOffset(title);
1033
+ return Math.round(anchor === Start ? u : anchor === End ? v - o : 0.5 * (s - o));
1034
+ }
1035
+ function translate(view, item, dx, dy) {
1036
+ item.x += dx;
1037
+ item.y += dy;
1038
+ item.bounds.translate(dx, dy);
1039
+ item.mark.bounds.translate(dx, dy);
1040
+ view.dirty(item);
1041
+ }
1042
+ function legendEntryLayout(entries) {
1043
+ // get max widths for each column
1044
+ const widths = entries.reduce((w, g) => {
1045
+ w[g.column] = Math.max(g.bounds.x2 - g.x, w[g.column] || 0);
1046
+ return w;
1047
+ }, {});
1048
+
1049
+ // set dimensions of legend entry groups
1050
+ entries.forEach(g => {
1051
+ g.width = widths[g.column];
1052
+ g.height = g.bounds.y2 - g.y;
1053
+ });
1054
+ }
1055
+
1056
+ function titleLayout(view, mark, width, height, viewBounds) {
1057
+ var group = mark.items[0],
1058
+ frame = group.frame,
1059
+ orient = group.orient,
1060
+ anchor = group.anchor,
1061
+ offset = group.offset,
1062
+ padding = group.padding,
1063
+ title = group.items[0].items[0],
1064
+ subtitle = group.items[1] && group.items[1].items[0],
1065
+ end = orient === Left || orient === Right ? height : width,
1066
+ start = 0,
1067
+ x = 0,
1068
+ y = 0,
1069
+ sx = 0,
1070
+ sy = 0,
1071
+ pos;
1072
+ if (frame !== Group) {
1073
+ orient === Left ? (start = viewBounds.y2, end = viewBounds.y1) : orient === Right ? (start = viewBounds.y1, end = viewBounds.y2) : (start = viewBounds.x1, end = viewBounds.x2);
1074
+ } else if (orient === Left) {
1075
+ start = height, end = 0;
1076
+ }
1077
+ pos = anchor === Start ? start : anchor === End ? end : (start + end) / 2;
1078
+ if (subtitle && subtitle.text) {
1079
+ // position subtitle
1080
+ switch (orient) {
1081
+ case Top:
1082
+ case Bottom:
1083
+ sy = title.bounds.height() + padding;
1084
+ break;
1085
+ case Left:
1086
+ sx = title.bounds.width() + padding;
1087
+ break;
1088
+ case Right:
1089
+ sx = -title.bounds.width() - padding;
1090
+ break;
1091
+ }
1092
+ tempBounds.clear().union(subtitle.bounds);
1093
+ tempBounds.translate(sx - (subtitle.x || 0), sy - (subtitle.y || 0));
1094
+ if (set(subtitle, 'x', sx) | set(subtitle, 'y', sy)) {
1095
+ view.dirty(subtitle);
1096
+ subtitle.bounds.clear().union(tempBounds);
1097
+ subtitle.mark.bounds.clear().union(tempBounds);
1098
+ view.dirty(subtitle);
1099
+ }
1100
+ tempBounds.clear().union(subtitle.bounds);
1101
+ } else {
1102
+ tempBounds.clear();
1103
+ }
1104
+ tempBounds.union(title.bounds);
1105
+
1106
+ // position title group
1107
+ switch (orient) {
1108
+ case Top:
1109
+ x = pos;
1110
+ y = viewBounds.y1 - tempBounds.height() - offset;
1111
+ break;
1112
+ case Left:
1113
+ x = viewBounds.x1 - tempBounds.width() - offset;
1114
+ y = pos;
1115
+ break;
1116
+ case Right:
1117
+ x = viewBounds.x2 + tempBounds.width() + offset;
1118
+ y = pos;
1119
+ break;
1120
+ case Bottom:
1121
+ x = pos;
1122
+ y = viewBounds.y2 + offset;
1123
+ break;
1124
+ default:
1125
+ x = group.x;
1126
+ y = group.y;
1127
+ }
1128
+ if (set(group, 'x', x) | set(group, 'y', y)) {
1129
+ tempBounds.translate(x, y);
1130
+ view.dirty(group);
1131
+ group.bounds.clear().union(tempBounds);
1132
+ mark.bounds.clear().union(tempBounds);
1133
+ view.dirty(group);
1134
+ }
1135
+ return group.bounds;
1136
+ }
1137
+
1138
+ /**
1139
+ * Layout view elements such as axes and legends.
1140
+ * Also performs size adjustments.
1141
+ * @constructor
1142
+ * @param {object} params - The parameters for this operator.
1143
+ * @param {object} params.mark - Scenegraph mark of groups to layout.
1144
+ */
1145
+ function ViewLayout(params) {
1146
+ vegaDataflow.Transform.call(this, null, params);
1147
+ }
1148
+ vegaUtil.inherits(ViewLayout, vegaDataflow.Transform, {
1149
+ transform(_, pulse) {
1150
+ const view = pulse.dataflow;
1151
+ _.mark.items.forEach(group => {
1152
+ if (_.layout) trellisLayout(view, group, _.layout);
1153
+ layoutGroup(view, group, _);
1154
+ });
1155
+ return shouldReflow(_.mark.group) ? pulse.reflow() : pulse;
1156
+ }
1157
+ });
1158
+ function shouldReflow(group) {
1159
+ // We typically should reflow if layout is invoked (#2568), as child items
1160
+ // may have resized and reflow ensures group bounds are re-calculated.
1161
+ // However, legend entries have a special exception to avoid instability.
1162
+ // For example, if a selected legend symbol gains a stroke on hover,
1163
+ // we don't want to re-position subsequent elements in the legend.
1164
+ return group && group.mark.role !== 'legend-entry';
1165
+ }
1166
+ function layoutGroup(view, group, _) {
1167
+ var items = group.items,
1168
+ width = Math.max(0, group.width || 0),
1169
+ height = Math.max(0, group.height || 0),
1170
+ viewBounds = new vegaScenegraph.Bounds().set(0, 0, width, height),
1171
+ xBounds = viewBounds.clone(),
1172
+ yBounds = viewBounds.clone(),
1173
+ legends = [],
1174
+ title,
1175
+ mark,
1176
+ orient,
1177
+ b,
1178
+ i,
1179
+ n;
1180
+
1181
+ // layout axes, gather legends, collect bounds
1182
+ for (i = 0, n = items.length; i < n; ++i) {
1183
+ mark = items[i];
1184
+ switch (mark.role) {
1185
+ case AxisRole:
1186
+ b = isYAxis(mark) ? xBounds : yBounds;
1187
+ b.union(axisLayout(view, mark, width, height));
1188
+ break;
1189
+ case TitleRole:
1190
+ title = mark;
1191
+ break;
1192
+ case LegendRole:
1193
+ legends.push(legendLayout(view, mark));
1194
+ break;
1195
+ case FrameRole:
1196
+ case ScopeRole:
1197
+ case RowHeader:
1198
+ case RowFooter:
1199
+ case RowTitle:
1200
+ case ColHeader:
1201
+ case ColFooter:
1202
+ case ColTitle:
1203
+ xBounds.union(mark.bounds);
1204
+ yBounds.union(mark.bounds);
1205
+ break;
1206
+ default:
1207
+ viewBounds.union(mark.bounds);
1208
+ }
1209
+ }
1210
+
1211
+ // layout legends, adjust viewBounds
1212
+ if (legends.length) {
1213
+ // group legends by orient
1214
+ const l = {};
1215
+ legends.forEach(item => {
1216
+ orient = item.orient || Right;
1217
+ if (orient !== None) (l[orient] || (l[orient] = [])).push(item);
1218
+ });
1219
+
1220
+ // perform grid layout for each orient group
1221
+ for (const orient in l) {
1222
+ const g = l[orient];
1223
+ gridLayout(view, g, legendParams(g, orient, _.legends, xBounds, yBounds, width, height));
1224
+ }
1225
+
1226
+ // update view bounds
1227
+ legends.forEach(item => {
1228
+ const b = item.bounds;
1229
+ if (!b.equals(item._bounds)) {
1230
+ item.bounds = item._bounds;
1231
+ view.dirty(item); // dirty previous location
1232
+ item.bounds = b;
1233
+ view.dirty(item);
1234
+ }
1235
+ if (_.autosize && (_.autosize.type === Fit || _.autosize.type === FitX || _.autosize.type === FitY)) {
1236
+ // For autosize fit, incorporate the orthogonal dimension only.
1237
+ // Legends that overrun the chart area will then be clipped;
1238
+ // otherwise the chart area gets reduced to nothing!
1239
+ switch (item.orient) {
1240
+ case Left:
1241
+ case Right:
1242
+ viewBounds.add(b.x1, 0).add(b.x2, 0);
1243
+ break;
1244
+ case Top:
1245
+ case Bottom:
1246
+ viewBounds.add(0, b.y1).add(0, b.y2);
1247
+ }
1248
+ } else {
1249
+ viewBounds.union(b);
1250
+ }
1251
+ });
1252
+ }
1253
+
1254
+ // combine bounding boxes
1255
+ viewBounds.union(xBounds).union(yBounds);
1256
+
1257
+ // layout title, adjust bounds
1258
+ if (title) {
1259
+ viewBounds.union(titleLayout(view, title, width, height, viewBounds));
1260
+ }
1261
+
1262
+ // override aggregated view bounds if content is clipped
1263
+ if (group.clip) {
1264
+ viewBounds.set(0, 0, group.width || 0, group.height || 0);
1265
+ }
1266
+
1267
+ // perform size adjustment
1268
+ viewSizeLayout(view, group, viewBounds, _);
1269
+ }
1270
+ function viewSizeLayout(view, group, viewBounds, _) {
1271
+ const auto = _.autosize || {},
1272
+ type = auto.type;
1273
+ if (view._autosize < 1 || !type) return;
1274
+ let viewWidth = view._width,
1275
+ viewHeight = view._height,
1276
+ width = Math.max(0, group.width || 0),
1277
+ left = Math.max(0, Math.ceil(-viewBounds.x1)),
1278
+ height = Math.max(0, group.height || 0),
1279
+ top = Math.max(0, Math.ceil(-viewBounds.y1));
1280
+ const right = Math.max(0, Math.ceil(viewBounds.x2 - width)),
1281
+ bottom = Math.max(0, Math.ceil(viewBounds.y2 - height));
1282
+ if (auto.contains === Padding) {
1283
+ const padding = view.padding();
1284
+ viewWidth -= padding.left + padding.right;
1285
+ viewHeight -= padding.top + padding.bottom;
1286
+ }
1287
+ if (type === None) {
1288
+ left = 0;
1289
+ top = 0;
1290
+ width = viewWidth;
1291
+ height = viewHeight;
1292
+ } else if (type === Fit) {
1293
+ width = Math.max(0, viewWidth - left - right);
1294
+ height = Math.max(0, viewHeight - top - bottom);
1295
+ } else if (type === FitX) {
1296
+ width = Math.max(0, viewWidth - left - right);
1297
+ viewHeight = height + top + bottom;
1298
+ } else if (type === FitY) {
1299
+ viewWidth = width + left + right;
1300
+ height = Math.max(0, viewHeight - top - bottom);
1301
+ } else if (type === Pad) {
1302
+ viewWidth = width + left + right;
1303
+ viewHeight = height + top + bottom;
1304
+ }
1305
+ view._resizeView(viewWidth, viewHeight, width, height, [left, top], auto.resize);
1306
+ }
1307
+
1308
+ exports.bound = Bound;
1309
+ exports.identifier = Identifier;
1310
+ exports.mark = Mark;
1311
+ exports.overlap = Overlap;
1312
+ exports.render = Render;
1313
+ exports.viewlayout = ViewLayout;