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