@sophistry/charts 0.0.0-stage → 0.0.1

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 (427) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +32 -2
  3. package/dist/3d/bar-chart3d.d.ts +56 -0
  4. package/dist/3d/bar-chart3d.d.ts.map +1 -0
  5. package/dist/3d/definitions.d.ts +38 -0
  6. package/dist/3d/definitions.d.ts.map +1 -0
  7. package/dist/3d/definitions.js +14 -0
  8. package/dist/3d/forward.d.ts +65 -0
  9. package/dist/3d/forward.d.ts.map +1 -0
  10. package/dist/3d/index.d.ts +31 -0
  11. package/dist/3d/index.d.ts.map +1 -0
  12. package/dist/3d/index.js +1 -0
  13. package/dist/3d/quiver3d.d.ts +53 -0
  14. package/dist/3d/quiver3d.d.ts.map +1 -0
  15. package/dist/3d/scatter3d.d.ts +45 -0
  16. package/dist/3d/scatter3d.d.ts.map +1 -0
  17. package/dist/3d/stem3d.d.ts +46 -0
  18. package/dist/3d/stem3d.d.ts.map +1 -0
  19. package/dist/3d/surface-grid3d.d.ts +34 -0
  20. package/dist/3d/surface-grid3d.d.ts.map +1 -0
  21. package/dist/3d/tri-surface3d.d.ts +46 -0
  22. package/dist/3d/tri-surface3d.d.ts.map +1 -0
  23. package/dist/3d/voxels3d.d.ts +26 -0
  24. package/dist/3d/voxels3d.d.ts.map +1 -0
  25. package/dist/3d/wireframe3d.d.ts +31 -0
  26. package/dist/3d/wireframe3d.d.ts.map +1 -0
  27. package/dist/band.d.ts +21 -0
  28. package/dist/band.d.ts.map +1 -0
  29. package/dist/bars/bar-chart.d.ts +144 -0
  30. package/dist/bars/bar-chart.d.ts.map +1 -0
  31. package/dist/bars/bar-labels.d.ts +117 -0
  32. package/dist/bars/bar-labels.d.ts.map +1 -0
  33. package/dist/bars/bars.d.ts +224 -0
  34. package/dist/bars/bars.d.ts.map +1 -0
  35. package/dist/bars/bullet.d.ts +158 -0
  36. package/dist/bars/bullet.d.ts.map +1 -0
  37. package/dist/bars/candlestick.d.ts +98 -0
  38. package/dist/bars/candlestick.d.ts.map +1 -0
  39. package/dist/bars/funnel.d.ts +91 -0
  40. package/dist/bars/funnel.d.ts.map +1 -0
  41. package/dist/bars/histogram.d.ts +109 -0
  42. package/dist/bars/histogram.d.ts.map +1 -0
  43. package/dist/bars/index.d.ts +23 -0
  44. package/dist/bars/index.d.ts.map +1 -0
  45. package/dist/bars/race.d.ts +29 -0
  46. package/dist/bars/race.d.ts.map +1 -0
  47. package/dist/bars/rules.d.ts +122 -0
  48. package/dist/bars/rules.d.ts.map +1 -0
  49. package/dist/bars/shared.d.ts +42 -0
  50. package/dist/bars/shared.d.ts.map +1 -0
  51. package/dist/bars/transforms.d.ts +250 -0
  52. package/dist/bars/transforms.d.ts.map +1 -0
  53. package/dist/bars/waterfall.d.ts +107 -0
  54. package/dist/bars/waterfall.d.ts.map +1 -0
  55. package/dist/batch.d.ts +143 -0
  56. package/dist/batch.d.ts.map +1 -0
  57. package/dist/channels-_Xf-p6Lx.js +56 -0
  58. package/dist/chart.d.ts +88 -0
  59. package/dist/chart.d.ts.map +1 -0
  60. package/dist/color-norm.d.ts +91 -0
  61. package/dist/color-norm.d.ts.map +1 -0
  62. package/dist/context.d.ts +112 -0
  63. package/dist/context.d.ts.map +1 -0
  64. package/dist/curves/density.d.ts +126 -0
  65. package/dist/curves/density.d.ts.map +1 -0
  66. package/dist/curves/ecdf.d.ts +73 -0
  67. package/dist/curves/ecdf.d.ts.map +1 -0
  68. package/dist/curves/fill-between.d.ts +101 -0
  69. package/dist/curves/fill-between.d.ts.map +1 -0
  70. package/dist/curves/index.d.ts +16 -0
  71. package/dist/curves/index.d.ts.map +1 -0
  72. package/dist/curves/line-plot.d.ts +105 -0
  73. package/dist/curves/line-plot.d.ts.map +1 -0
  74. package/dist/curves/regression.d.ts +125 -0
  75. package/dist/curves/regression.d.ts.map +1 -0
  76. package/dist/curves/shared.d.ts +53 -0
  77. package/dist/curves/shared.d.ts.map +1 -0
  78. package/dist/curves/stack-plot.d.ts +141 -0
  79. package/dist/curves/stack-plot.d.ts.map +1 -0
  80. package/dist/curves/stairs.d.ts +171 -0
  81. package/dist/curves/stairs.d.ts.map +1 -0
  82. package/dist/data/channels.d.ts +171 -0
  83. package/dist/data/channels.d.ts.map +1 -0
  84. package/dist/end-space.d.ts +82 -0
  85. package/dist/end-space.d.ts.map +1 -0
  86. package/dist/entries/definitions.d.ts +21 -0
  87. package/dist/entries/definitions.d.ts.map +1 -0
  88. package/dist/entries/definitions.js +6 -0
  89. package/dist/frame/band-axis.d.ts +43 -0
  90. package/dist/frame/band-axis.d.ts.map +1 -0
  91. package/dist/frame/coords.d.ts +112 -0
  92. package/dist/frame/coords.d.ts.map +1 -0
  93. package/dist/frame/fit.d.ts +171 -0
  94. package/dist/frame/fit.d.ts.map +1 -0
  95. package/dist/frame/format.d.ts +41 -0
  96. package/dist/frame/format.d.ts.map +1 -0
  97. package/dist/frame/guide-metrics.d.ts +37 -0
  98. package/dist/frame/guide-metrics.d.ts.map +1 -0
  99. package/dist/frame/guides.d.ts +68 -0
  100. package/dist/frame/guides.d.ts.map +1 -0
  101. package/dist/frame/keys.d.ts +97 -0
  102. package/dist/frame/keys.d.ts.map +1 -0
  103. package/dist/frame/layout.d.ts +146 -0
  104. package/dist/frame/layout.d.ts.map +1 -0
  105. package/dist/frame/registry.d.ts +32 -0
  106. package/dist/frame/registry.d.ts.map +1 -0
  107. package/dist/frame/reports.d.ts +54 -0
  108. package/dist/frame/reports.d.ts.map +1 -0
  109. package/dist/frame/secondary-axes.d.ts +74 -0
  110. package/dist/frame/secondary-axes.d.ts.map +1 -0
  111. package/dist/frame/secondary.d.ts +57 -0
  112. package/dist/frame/secondary.d.ts.map +1 -0
  113. package/dist/frame/tooltip-overlay.d.ts +65 -0
  114. package/dist/frame/tooltip-overlay.d.ts.map +1 -0
  115. package/dist/frame/types.d.ts +659 -0
  116. package/dist/frame/types.d.ts.map +1 -0
  117. package/dist/grids/barbs.d.ts +52 -0
  118. package/dist/grids/barbs.d.ts.map +1 -0
  119. package/dist/grids/cell-rects.d.ts +38 -0
  120. package/dist/grids/cell-rects.d.ts.map +1 -0
  121. package/dist/grids/cells.d.ts +131 -0
  122. package/dist/grids/cells.d.ts.map +1 -0
  123. package/dist/grids/contour-f.d.ts +81 -0
  124. package/dist/grids/contour-f.d.ts.map +1 -0
  125. package/dist/grids/contour-shared.d.ts +54 -0
  126. package/dist/grids/contour-shared.d.ts.map +1 -0
  127. package/dist/grids/contour.d.ts +85 -0
  128. package/dist/grids/contour.d.ts.map +1 -0
  129. package/dist/grids/dendrogram.d.ts +105 -0
  130. package/dist/grids/dendrogram.d.ts.map +1 -0
  131. package/dist/grids/heatmap.d.ts +164 -0
  132. package/dist/grids/heatmap.d.ts.map +1 -0
  133. package/dist/grids/hex-bin.d.ts +94 -0
  134. package/dist/grids/hex-bin.d.ts.map +1 -0
  135. package/dist/grids/hist2d.d.ts +108 -0
  136. package/dist/grids/hist2d.d.ts.map +1 -0
  137. package/dist/grids/imshow.d.ts +85 -0
  138. package/dist/grids/imshow.d.ts.map +1 -0
  139. package/dist/grids/index.d.ts +27 -0
  140. package/dist/grids/index.d.ts.map +1 -0
  141. package/dist/grids/pcolormesh.d.ts +91 -0
  142. package/dist/grids/pcolormesh.d.ts.map +1 -0
  143. package/dist/grids/ramp-cells.d.ts +67 -0
  144. package/dist/grids/ramp-cells.d.ts.map +1 -0
  145. package/dist/grids/tri-contour.d.ts +121 -0
  146. package/dist/grids/tri-contour.d.ts.map +1 -0
  147. package/dist/grids/tri-shared.d.ts +62 -0
  148. package/dist/grids/tri-shared.d.ts.map +1 -0
  149. package/dist/grids/tripcolor.d.ts +74 -0
  150. package/dist/grids/tripcolor.d.ts.map +1 -0
  151. package/dist/guides/colorbar.d.ts +111 -0
  152. package/dist/guides/colorbar.d.ts.map +1 -0
  153. package/dist/guides/index.d.ts +12 -0
  154. package/dist/guides/index.d.ts.map +1 -0
  155. package/dist/guides/legend.d.ts +119 -0
  156. package/dist/guides/legend.d.ts.map +1 -0
  157. package/dist/guides/nodes.d.ts +14 -0
  158. package/dist/guides/nodes.d.ts.map +1 -0
  159. package/dist/guides/size-legend.d.ts +234 -0
  160. package/dist/guides/size-legend.d.ts.map +1 -0
  161. package/dist/hierarchy/breadcrumbs.d.ts +134 -0
  162. package/dist/hierarchy/breadcrumbs.d.ts.map +1 -0
  163. package/dist/hierarchy/circle-pack.d.ts +73 -0
  164. package/dist/hierarchy/circle-pack.d.ts.map +1 -0
  165. package/dist/hierarchy/drill.d.ts +246 -0
  166. package/dist/hierarchy/drill.d.ts.map +1 -0
  167. package/dist/hierarchy/frame.d.ts +68 -0
  168. package/dist/hierarchy/frame.d.ts.map +1 -0
  169. package/dist/hierarchy/icicle.d.ts +77 -0
  170. package/dist/hierarchy/icicle.d.ts.map +1 -0
  171. package/dist/hierarchy/index.d.ts +21 -0
  172. package/dist/hierarchy/index.d.ts.map +1 -0
  173. package/dist/hierarchy/labels.d.ts +25 -0
  174. package/dist/hierarchy/labels.d.ts.map +1 -0
  175. package/dist/hierarchy/mosaic.d.ts +131 -0
  176. package/dist/hierarchy/mosaic.d.ts.map +1 -0
  177. package/dist/hierarchy/own-tooltip.d.ts +13 -0
  178. package/dist/hierarchy/own-tooltip.d.ts.map +1 -0
  179. package/dist/hierarchy/props.d.ts +14 -0
  180. package/dist/hierarchy/props.d.ts.map +1 -0
  181. package/dist/hierarchy/sankey.d.ts +133 -0
  182. package/dist/hierarchy/sankey.d.ts.map +1 -0
  183. package/dist/hierarchy/shared.d.ts +248 -0
  184. package/dist/hierarchy/shared.d.ts.map +1 -0
  185. package/dist/hierarchy/sunburst.d.ts +75 -0
  186. package/dist/hierarchy/sunburst.d.ts.map +1 -0
  187. package/dist/hierarchy/tree.d.ts +125 -0
  188. package/dist/hierarchy/tree.d.ts.map +1 -0
  189. package/dist/hierarchy/treemap.d.ts +77 -0
  190. package/dist/hierarchy/treemap.d.ts.map +1 -0
  191. package/dist/index.d.ts +30 -0
  192. package/dist/index.d.ts.map +1 -0
  193. package/dist/index.js +5 -0
  194. package/dist/item-tooltip.d.ts +34 -0
  195. package/dist/item-tooltip.d.ts.map +1 -0
  196. package/dist/join.d.ts +224 -0
  197. package/dist/join.d.ts.map +1 -0
  198. package/dist/math/3d/bar3d.d.ts +28 -0
  199. package/dist/math/3d/bar3d.d.ts.map +1 -0
  200. package/dist/math/3d/quiver3d.d.ts +27 -0
  201. package/dist/math/3d/quiver3d.d.ts.map +1 -0
  202. package/dist/math/3d/scatter3d.d.ts +16 -0
  203. package/dist/math/3d/scatter3d.d.ts.map +1 -0
  204. package/dist/math/3d/stem3d.d.ts +23 -0
  205. package/dist/math/3d/stem3d.d.ts.map +1 -0
  206. package/dist/math/3d/surfaceGrid3d.d.ts +34 -0
  207. package/dist/math/3d/surfaceGrid3d.d.ts.map +1 -0
  208. package/dist/math/3d/trisurface.d.ts +12 -0
  209. package/dist/math/3d/trisurface.d.ts.map +1 -0
  210. package/dist/math/3d/voxels.d.ts +18 -0
  211. package/dist/math/3d/voxels.d.ts.map +1 -0
  212. package/dist/math/aggregate.d.ts +69 -0
  213. package/dist/math/aggregate.d.ts.map +1 -0
  214. package/dist/math/bar.d.ts +32 -0
  215. package/dist/math/bar.d.ts.map +1 -0
  216. package/dist/math/barLabels.d.ts +84 -0
  217. package/dist/math/barLabels.d.ts.map +1 -0
  218. package/dist/math/barbs.d.ts +37 -0
  219. package/dist/math/barbs.d.ts.map +1 -0
  220. package/dist/math/boxplot.d.ts +37 -0
  221. package/dist/math/boxplot.d.ts.map +1 -0
  222. package/dist/math/breadcrumbs.d.ts +129 -0
  223. package/dist/math/breadcrumbs.d.ts.map +1 -0
  224. package/dist/math/bubble.d.ts +39 -0
  225. package/dist/math/bubble.d.ts.map +1 -0
  226. package/dist/math/bullet.d.ts +111 -0
  227. package/dist/math/bullet.d.ts.map +1 -0
  228. package/dist/math/chord.d.ts +104 -0
  229. package/dist/math/chord.d.ts.map +1 -0
  230. package/dist/math/cluster.d.ts +89 -0
  231. package/dist/math/cluster.d.ts.map +1 -0
  232. package/dist/math/contour.d.ts +49 -0
  233. package/dist/math/contour.d.ts.map +1 -0
  234. package/dist/math/contourf.d.ts +51 -0
  235. package/dist/math/contourf.d.ts.map +1 -0
  236. package/dist/math/dodge.d.ts +37 -0
  237. package/dist/math/dodge.d.ts.map +1 -0
  238. package/dist/math/ecdf.d.ts +42 -0
  239. package/dist/math/ecdf.d.ts.map +1 -0
  240. package/dist/math/errorbar.d.ts +28 -0
  241. package/dist/math/errorbar.d.ts.map +1 -0
  242. package/dist/math/eventplot.d.ts +27 -0
  243. package/dist/math/eventplot.d.ts.map +1 -0
  244. package/dist/math/facet.d.ts +91 -0
  245. package/dist/math/facet.d.ts.map +1 -0
  246. package/dist/math/fillBetween.d.ts +29 -0
  247. package/dist/math/fillBetween.d.ts.map +1 -0
  248. package/dist/math/gauge.d.ts +72 -0
  249. package/dist/math/gauge.d.ts.map +1 -0
  250. package/dist/math/hexbin.d.ts +21 -0
  251. package/dist/math/hexbin.d.ts.map +1 -0
  252. package/dist/math/hierarchy.d.ts +180 -0
  253. package/dist/math/hierarchy.d.ts.map +1 -0
  254. package/dist/math/hierarchyJoin.d.ts +60 -0
  255. package/dist/math/hierarchyJoin.d.ts.map +1 -0
  256. package/dist/math/histogram.d.ts +37 -0
  257. package/dist/math/histogram.d.ts.map +1 -0
  258. package/dist/math/histogram2d.d.ts +45 -0
  259. package/dist/math/histogram2d.d.ts.map +1 -0
  260. package/dist/math/imshow.d.ts +27 -0
  261. package/dist/math/imshow.d.ts.map +1 -0
  262. package/dist/math/index.d.ts +140 -0
  263. package/dist/math/index.d.ts.map +1 -0
  264. package/dist/math/index.js +3 -0
  265. package/dist/math/jitter.d.ts +17 -0
  266. package/dist/math/jitter.d.ts.map +1 -0
  267. package/dist/math/join.d.ts +136 -0
  268. package/dist/math/join.d.ts.map +1 -0
  269. package/dist/math/keyframes.d.ts +128 -0
  270. package/dist/math/keyframes.d.ts.map +1 -0
  271. package/dist/math/legend.d.ts +121 -0
  272. package/dist/math/legend.d.ts.map +1 -0
  273. package/dist/math/line.d.ts +54 -0
  274. package/dist/math/line.d.ts.map +1 -0
  275. package/dist/math/morph.d.ts +82 -0
  276. package/dist/math/morph.d.ts.map +1 -0
  277. package/dist/math/mosaic.d.ts +120 -0
  278. package/dist/math/mosaic.d.ts.map +1 -0
  279. package/dist/math/ordinal.d.ts +80 -0
  280. package/dist/math/ordinal.d.ts.map +1 -0
  281. package/dist/math/parallel.d.ts +39 -0
  282. package/dist/math/parallel.d.ts.map +1 -0
  283. package/dist/math/pcolormesh.d.ts +23 -0
  284. package/dist/math/pcolormesh.d.ts.map +1 -0
  285. package/dist/math/pie.d.ts +106 -0
  286. package/dist/math/pie.d.ts.map +1 -0
  287. package/dist/math/polarArea.d.ts +35 -0
  288. package/dist/math/polarArea.d.ts.map +1 -0
  289. package/dist/math/radar.d.ts +111 -0
  290. package/dist/math/radar.d.ts.map +1 -0
  291. package/dist/math/range.d.ts +99 -0
  292. package/dist/math/range.d.ts.map +1 -0
  293. package/dist/math/regression.d.ts +110 -0
  294. package/dist/math/regression.d.ts.map +1 -0
  295. package/dist/math/reveal.d.ts +64 -0
  296. package/dist/math/reveal.d.ts.map +1 -0
  297. package/dist/math/sankey.d.ts +155 -0
  298. package/dist/math/sankey.d.ts.map +1 -0
  299. package/dist/math/scatter.d.ts +15 -0
  300. package/dist/math/scatter.d.ts.map +1 -0
  301. package/dist/math/shared/binning.d.ts +24 -0
  302. package/dist/math/shared/binning.d.ts.map +1 -0
  303. package/dist/math/shared/gridCells.d.ts +42 -0
  304. package/dist/math/shared/gridCells.d.ts.map +1 -0
  305. package/dist/math/shared/gridExtent.d.ts +6 -0
  306. package/dist/math/shared/gridExtent.d.ts.map +1 -0
  307. package/dist/math/shared/pairs.d.ts +3 -0
  308. package/dist/math/shared/pairs.d.ts.map +1 -0
  309. package/dist/math/shared/polar.d.ts +24 -0
  310. package/dist/math/shared/polar.d.ts.map +1 -0
  311. package/dist/math/stack.d.ts +70 -0
  312. package/dist/math/stack.d.ts.map +1 -0
  313. package/dist/math/stackplot.d.ts +36 -0
  314. package/dist/math/stackplot.d.ts.map +1 -0
  315. package/dist/math/stairs.d.ts +18 -0
  316. package/dist/math/stairs.d.ts.map +1 -0
  317. package/dist/math/stem.d.ts +22 -0
  318. package/dist/math/stem.d.ts.map +1 -0
  319. package/dist/math/symbol.d.ts +26 -0
  320. package/dist/math/symbol.d.ts.map +1 -0
  321. package/dist/math/tree.d.ts +118 -0
  322. package/dist/math/tree.d.ts.map +1 -0
  323. package/dist/math/tricontour.d.ts +77 -0
  324. package/dist/math/tricontour.d.ts.map +1 -0
  325. package/dist/math/violin.d.ts +100 -0
  326. package/dist/math/violin.d.ts.map +1 -0
  327. package/dist/math/waffle.d.ts +49 -0
  328. package/dist/math/waffle.d.ts.map +1 -0
  329. package/dist/math/waterfall.d.ts +29 -0
  330. package/dist/math/waterfall.d.ts.map +1 -0
  331. package/dist/math-CSHNpGej.js +3648 -0
  332. package/dist/mix.d.ts +25 -0
  333. package/dist/mix.d.ts.map +1 -0
  334. package/dist/multiview/brush.d.ts +166 -0
  335. package/dist/multiview/brush.d.ts.map +1 -0
  336. package/dist/multiview/chart-group.d.ts +266 -0
  337. package/dist/multiview/chart-group.d.ts.map +1 -0
  338. package/dist/multiview/chart-link.d.ts +189 -0
  339. package/dist/multiview/chart-link.d.ts.map +1 -0
  340. package/dist/multiview/chart-zoom.d.ts +145 -0
  341. package/dist/multiview/chart-zoom.d.ts.map +1 -0
  342. package/dist/multiview/facet.d.ts +239 -0
  343. package/dist/multiview/facet.d.ts.map +1 -0
  344. package/dist/multiview/group-guides.d.ts +100 -0
  345. package/dist/multiview/group-guides.d.ts.map +1 -0
  346. package/dist/multiview/index.d.ts +18 -0
  347. package/dist/multiview/index.d.ts.map +1 -0
  348. package/dist/multiview/joint-plot.d.ts +115 -0
  349. package/dist/multiview/joint-plot.d.ts.map +1 -0
  350. package/dist/multiview/pair-plot.d.ts +154 -0
  351. package/dist/multiview/pair-plot.d.ts.map +1 -0
  352. package/dist/multiview/panels.d.ts +23 -0
  353. package/dist/multiview/panels.d.ts.map +1 -0
  354. package/dist/multiview/parallel-coordinates.d.ts +110 -0
  355. package/dist/multiview/parallel-coordinates.d.ts.map +1 -0
  356. package/dist/points/event-plot.d.ts +68 -0
  357. package/dist/points/event-plot.d.ts.map +1 -0
  358. package/dist/points/index.d.ts +20 -0
  359. package/dist/points/index.d.ts.map +1 -0
  360. package/dist/points/labels.d.ts +71 -0
  361. package/dist/points/labels.d.ts.map +1 -0
  362. package/dist/points/links.d.ts +124 -0
  363. package/dist/points/links.d.ts.map +1 -0
  364. package/dist/points/rects.d.ts +81 -0
  365. package/dist/points/rects.d.ts.map +1 -0
  366. package/dist/points/rug.d.ts +73 -0
  367. package/dist/points/rug.d.ts.map +1 -0
  368. package/dist/points/scatter.d.ts +170 -0
  369. package/dist/points/scatter.d.ts.map +1 -0
  370. package/dist/points/segment-marks.d.ts +40 -0
  371. package/dist/points/segment-marks.d.ts.map +1 -0
  372. package/dist/points/shared.d.ts +35 -0
  373. package/dist/points/shared.d.ts.map +1 -0
  374. package/dist/points/stem.d.ts +76 -0
  375. package/dist/points/stem.d.ts.map +1 -0
  376. package/dist/points/strip.d.ts +146 -0
  377. package/dist/points/strip.d.ts.map +1 -0
  378. package/dist/points/symbol-marker.d.ts +34 -0
  379. package/dist/points/symbol-marker.d.ts.map +1 -0
  380. package/dist/points/ticks.d.ts +103 -0
  381. package/dist/points/ticks.d.ts.map +1 -0
  382. package/dist/props.d.ts +127 -0
  383. package/dist/props.d.ts.map +1 -0
  384. package/dist/radial/chord.d.ts +149 -0
  385. package/dist/radial/chord.d.ts.map +1 -0
  386. package/dist/radial/gauge.d.ts +127 -0
  387. package/dist/radial/gauge.d.ts.map +1 -0
  388. package/dist/radial/index.d.ts +16 -0
  389. package/dist/radial/index.d.ts.map +1 -0
  390. package/dist/radial/pie-chart.d.ts +144 -0
  391. package/dist/radial/pie-chart.d.ts.map +1 -0
  392. package/dist/radial/polar-area-chart.d.ts +136 -0
  393. package/dist/radial/polar-area-chart.d.ts.map +1 -0
  394. package/dist/radial/radar-chart.d.ts +177 -0
  395. package/dist/radial/radar-chart.d.ts.map +1 -0
  396. package/dist/radial/radial-bar-chart.d.ts +117 -0
  397. package/dist/radial/radial-bar-chart.d.ts.map +1 -0
  398. package/dist/radial/shared.d.ts +79 -0
  399. package/dist/radial/shared.d.ts.map +1 -0
  400. package/dist/radial/waffle.d.ts +131 -0
  401. package/dist/radial/waffle.d.ts.map +1 -0
  402. package/dist/raster.d.ts +44 -0
  403. package/dist/raster.d.ts.map +1 -0
  404. package/dist/series.d.ts +72 -0
  405. package/dist/series.d.ts.map +1 -0
  406. package/dist/src-CwGo1bes.js +19221 -0
  407. package/dist/stagger.d.ts +55 -0
  408. package/dist/stagger.d.ts.map +1 -0
  409. package/dist/statistics/box-plot.d.ts +152 -0
  410. package/dist/statistics/box-plot.d.ts.map +1 -0
  411. package/dist/statistics/error-bar.d.ts +149 -0
  412. package/dist/statistics/error-bar.d.ts.map +1 -0
  413. package/dist/statistics/groups.d.ts +141 -0
  414. package/dist/statistics/groups.d.ts.map +1 -0
  415. package/dist/statistics/index.d.ts +8 -0
  416. package/dist/statistics/index.d.ts.map +1 -0
  417. package/dist/statistics/violin-plot.d.ts +144 -0
  418. package/dist/statistics/violin-plot.d.ts.map +1 -0
  419. package/dist/text-width.d.ts +10 -0
  420. package/dist/text-width.d.ts.map +1 -0
  421. package/dist/tooltip.d.ts +277 -0
  422. package/dist/tooltip.d.ts.map +1 -0
  423. package/dist/util.d.ts +34 -0
  424. package/dist/util.d.ts.map +1 -0
  425. package/dist/voxels-9lJ2TZS4.js +235 -0
  426. package/dist/wireframe3d-D157GZAq.js +345 -0
  427. package/package.json +86 -3
@@ -0,0 +1,67 @@
1
+ /**
2
+ * The plumbing the gridded colour layers share (`imshow`, `pcolormesh`,
3
+ * `hist2d`, `hexBin`): a colormap and norm over the cells' values, the
4
+ * layer's report to its chart (with its colour-bar ramp), and the cells'
5
+ * reading-order fade. Internal to the charts.
6
+ *
7
+ * Each piece is a factory called once in `setup` that returns a function to
8
+ * call in every `update`. Each step sits
9
+ * behind a last-input cache, so a frame of a reveal recomputes the fade and
10
+ * nothing else, and the colormap and norm keep their identity (the chart
11
+ * compares reports by value, colormaps and scales by identity).
12
+ */
13
+ import type { ColorRampSpec, CoordinateSystem } from "@sophistry/core";
14
+ import type { Colormap, Theme } from "@sophistry/core/themes";
15
+ import type { ColorNorm, RampScaleOptions } from "../color-norm";
16
+ import type { ChartLayer } from "../context";
17
+ import type { ChartLayerExtent } from "../frame/types";
18
+ /** What {@link createRampCells}'s function takes on each update. */
19
+ export interface RampCellsSpec<C> {
20
+ layer: ChartLayer;
21
+ coords: CoordinateSystem;
22
+ theme: Theme;
23
+ ramp: ColorRampSpec | undefined;
24
+ /** Every cell, drawn or not; keep the same array while nothing changed. */
25
+ cells: readonly C[];
26
+ value: (cell: C) => number;
27
+ /** A cell's place for reading order (any point its row shares). */
28
+ at: (cell: C) => {
29
+ x: number;
30
+ y: number;
31
+ };
32
+ norm: RampScaleOptions;
33
+ /** The values the norm's automatic range reads (same array while unchanged); defaults to every cell's value. */
34
+ domain?: readonly number[];
35
+ /** The layer's report, less `covers` and `ramp`. */
36
+ extent: Omit<ChartLayerExtent, "ramp" | "covers">;
37
+ stagger: number | undefined;
38
+ /** The layer's own `progress`, before the chart's data phase. */
39
+ progress: number | undefined;
40
+ }
41
+ /** What {@link createRampCells}'s function hands back. */
42
+ export interface RampCells<C> {
43
+ /** The cells to draw: those whose value has a place on the norm (finite; positive under `"log"`). */
44
+ cells: readonly C[];
45
+ /** A drawn cell's colour. */
46
+ fill(cell: C): string;
47
+ /** A value's place on the norm, 0..1 (non-finite when it has none). */
48
+ unitOf(value: number): number;
49
+ /** The ramp's colour at a place on the norm, 0..1. */
50
+ colorAt(unit: number): string;
51
+ /** The colormap, kept while the ramp and theme are. */
52
+ colormap: Colormap;
53
+ /** The norm, kept while the values and norm props are. */
54
+ norm: ColorNorm;
55
+ /** The layer's reveal, scaled by the chart's data phase (undefined outside a chart without `progress`). */
56
+ progress: number | undefined;
57
+ /** Whether the cells fade one after another (a stagger over more than one cell). */
58
+ staggered: boolean;
59
+ /** The `i`th drawn cell's reveal: its share of the reading-order fade when staggered. */
60
+ revealOf(i: number): number | undefined;
61
+ }
62
+ /**
63
+ * A gridded colour layer's cells, colours, report and fade. Call once, in
64
+ * `setup`; call the result in each `update` (it reports to the chart).
65
+ */
66
+ export declare function createRampCells<C>(): (spec: RampCellsSpec<C>) => RampCells<C>;
67
+ //# sourceMappingURL=ramp-cells.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ramp-cells.d.ts","sourceRoot":"","sources":["../../src/grids/ramp-cells.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAEvE,OAAO,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,KAAK,EAAE,SAAS,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAC7C,OAAO,KAAK,EAAE,gBAAgB,EAAc,MAAM,gBAAgB,CAAC;AAInE,oEAAoE;AACpE,MAAM,WAAW,aAAa,CAAC,CAAC;IAC/B,KAAK,EAAE,UAAU,CAAC;IAClB,MAAM,EAAE,gBAAgB,CAAC;IACzB,KAAK,EAAE,KAAK,CAAC;IACb,IAAI,EAAE,aAAa,GAAG,SAAS,CAAC;IAChC,2EAA2E;IAC3E,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC;IACpB,KAAK,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,MAAM,CAAC;IAC3B,mEAAmE;IACnE,EAAE,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK;QAAE,CAAC,EAAE,MAAM,CAAC;QAAC,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,IAAI,EAAE,gBAAgB,CAAC;IACvB,gHAAgH;IAChH,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAC3B,oDAAoD;IACpD,MAAM,EAAE,IAAI,CAAC,gBAAgB,EAAE,MAAM,GAAG,QAAQ,CAAC,CAAC;IAClD,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,iEAAiE;IACjE,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;CAC7B;AAED,0DAA0D;AAC1D,MAAM,WAAW,SAAS,CAAC,CAAC;IAC3B,qGAAqG;IACrG,KAAK,EAAE,SAAS,CAAC,EAAE,CAAC;IACpB,6BAA6B;IAC7B,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,MAAM,CAAC;IACtB,uEAAuE;IACvE,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,sDAAsD;IACtD,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC;IAC9B,uDAAuD;IACvD,QAAQ,EAAE,QAAQ,CAAC;IACnB,0DAA0D;IAC1D,IAAI,EAAE,SAAS,CAAC;IAChB,2GAA2G;IAC3G,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,oFAAoF;IACpF,SAAS,EAAE,OAAO,CAAC;IACnB,yFAAyF;IACzF,QAAQ,CAAC,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACxC;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,SAAS,CAAC,CAAC,CAAC,CAuE7E"}
@@ -0,0 +1,121 @@
1
+ /**
2
+ * `triContour` and `triContourF`: iso-lines and filled bands of a field
3
+ * sampled at scattered points, each drawn as one path batch. Lines draw
4
+ * along their length level by level, bands fade in, lowest first.
5
+ */
6
+ import type { ColorRampSpec } from "@sophistry/core";
7
+ import type { RampScaleProps } from "../color-norm";
8
+ import type { TriChartBaseProps } from "./tri-shared";
9
+ /**
10
+ * Props of {@link triContour}.
11
+ *
12
+ * @category Charts
13
+ */
14
+ export interface TriContourProps<T = unknown> extends TriChartBaseProps<T>, RampScaleProps {
15
+ /**
16
+ * Explicit iso-line values, or a count of evenly spaced levels strictly between the data's min
17
+ * and max (spaced along `rampScale` when set).
18
+ * @default 8
19
+ */
20
+ levels?: readonly number[] | number;
21
+ /**
22
+ * Colour ramp a level's colour is sampled from, by where it falls between the data's min and
23
+ * max: a colormap name, CSS stops or `(t) => colour`. Defaults to two theme series colours.
24
+ */
25
+ ramp?: ColorRampSpec;
26
+ /** One colour for every line, instead of the ramp. */
27
+ stroke?: string;
28
+ /** Line width. */
29
+ strokeWidth?: number;
30
+ /** Opacity 0..1. @default 1 */
31
+ opacity?: number;
32
+ /** Paint order. */
33
+ zIndex?: number;
34
+ /** Set to false to hide the lines. */
35
+ visible?: boolean;
36
+ }
37
+ /**
38
+ * Props of {@link triContourF}.
39
+ *
40
+ * @category Charts
41
+ */
42
+ export interface TriContourFProps<T = unknown> extends TriChartBaseProps<T>, RampScaleProps {
43
+ /**
44
+ * Explicit band boundaries, or a count of evenly spaced ones spanning the data's min and max
45
+ * (`N` levels make `N - 1` bands; spaced along `rampScale` when set).
46
+ * @default 8
47
+ */
48
+ levels?: readonly number[] | number;
49
+ /**
50
+ * Colour ramp a band's fill is sampled from, by its midpoint between the data's min and max.
51
+ * Defaults to two theme series colours.
52
+ */
53
+ ramp?: ColorRampSpec;
54
+ /** One fill for every band, instead of the ramp. */
55
+ fill?: string;
56
+ /** Band outline. @default "none" */
57
+ stroke?: string;
58
+ /** Outline width. */
59
+ strokeWidth?: number;
60
+ /** Opacity 0..1. @default 1 */
61
+ opacity?: number;
62
+ /** Paint order. Defaults to `UNDER_AXES_Z_INDEX` (above the grid, under the axes). */
63
+ zIndex?: number;
64
+ /** Set to false to hide the bands. */
65
+ visible?: boolean;
66
+ }
67
+ /**
68
+ * Iso-lines of a field sampled at scattered points: the points are triangulated (Delaunay, or
69
+ * your own `triangles`) and each level traced across the mesh. Revealed level by level, lowest
70
+ * first, each line along its length. Inside a `chart` or `axes`; drawn as one path batch. For
71
+ * gridded data use `contour`; for filled bands `triContourF`. See {@link tricontourLines} for
72
+ * the geometry alone.
73
+ *
74
+ * @example
75
+ * ```ts
76
+ * import { chart, triContour } from "@sophistry/charts";
77
+ *
78
+ * const samples = Array.from({ length: 40 }, (_, i) => {
79
+ * const x = Math.cos(i * 2.4) * (i / 10);
80
+ * const y = Math.sin(i * 2.4) * (i / 10);
81
+ * return { x, y, v: x * y };
82
+ * });
83
+ * chart.create({
84
+ * width: 6,
85
+ * height: 4,
86
+ * children: [triContour.create({ data: samples, x: "x", y: "y", value: "v", levels: 6 })],
87
+ * });
88
+ * ```
89
+ *
90
+ * @see https://sophistry.dev/reference/chart-catalogue/#heatmaps-and-contours
91
+ * @category Charts
92
+ */
93
+ export declare const triContour: import("@sophistry/core").Definition<TriContourProps<any>, import("@sophistry/core/internal").CompositeNode<TriContourProps<any>>, keyof TriContourProps<any>>;
94
+ /**
95
+ * Filled contours over scattered points: each triangle clipped into the bands between
96
+ * consecutive levels, one band an item, fading in lowest first. Paints under the axes by
97
+ * default (`zIndex` `UNDER_AXES_Z_INDEX`) and feeds a chart's `colorbar`. Drawn as one path
98
+ * batch. See {@link tricontourBands} for the geometry alone.
99
+ *
100
+ * @example
101
+ * ```ts
102
+ * import { chart, triContourF } from "@sophistry/charts";
103
+ *
104
+ * const samples = Array.from({ length: 40 }, (_, i) => {
105
+ * const x = Math.cos(i * 2.4) * (i / 10);
106
+ * const y = Math.sin(i * 2.4) * (i / 10);
107
+ * return { x, y, v: x * y };
108
+ * });
109
+ * chart.create({
110
+ * width: 6,
111
+ * height: 4,
112
+ * colorbar: true,
113
+ * children: [triContourF.create({ data: samples, x: "x", y: "y", value: "v", ramp: "viridis" })],
114
+ * });
115
+ * ```
116
+ *
117
+ * @see https://sophistry.dev/reference/chart-catalogue/#heatmaps-and-contours
118
+ * @category Charts
119
+ */
120
+ export declare const triContourF: import("@sophistry/core").Definition<TriContourFProps<any>, import("@sophistry/core/internal").CompositeNode<TriContourFProps<any>>, keyof TriContourFProps<any>>;
121
+ //# sourceMappingURL=tri-contour.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tri-contour.d.ts","sourceRoot":"","sources":["../../src/grids/tri-contour.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACX,aAAa,EAKb,MAAM,iBAAiB,CAAC;AAOzB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAsBpD,OAAO,KAAK,EAAE,iBAAiB,EAAa,MAAM,cAAc,CAAC;AAKjE;;;;GAIG;AACH,MAAM,WAAW,eAAe,CAAC,CAAC,GAAG,OAAO,CAC3C,SAAQ,iBAAiB,CAAC,CAAC,CAAC,EAC3B,cAAc;IACf;;;;OAIG;IACH,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAAC;IACpC;;;OAGG;IACH,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,sDAAsD;IACtD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,kBAAkB;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+BAA+B;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,mBAAmB;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sCAAsC;IACtC,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAED;;;;GAIG;AACH,MAAM,WAAW,gBAAgB,CAAC,CAAC,GAAG,OAAO,CAC5C,SAAQ,iBAAiB,CAAC,CAAC,CAAC,EAC3B,cAAc;IACf;;;;OAIG;IACH,MAAM,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,CAAC;IACpC;;;OAGG;IACH,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,oDAAoD;IACpD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oCAAoC;IACpC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qBAAqB;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,+BAA+B;IAC/B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sFAAsF;IACtF,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sCAAsC;IACtC,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAoMD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,UAAU,gKAQrB,CAAC;AAEH;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,WAAW,mKAQtB,CAAC"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Shared props and helpers of the unstructured-grid charts (`tripcolor`,
3
+ * `triContour`, `triContourF`), and the level ranks the grid contours share
4
+ * with them. Only the props type is public.
5
+ */
6
+ import type { Channel, DateSink } from "../data/channels";
7
+ import type { TriangleIndices } from "../math/tricontour";
8
+ /**
9
+ * Props every tri-chart shares: one datum per point with its position and
10
+ * value, and optionally the triangles joining the points.
11
+ *
12
+ * @see https://sophistry.dev/reference/chart-catalogue/#heatmaps-and-contours
13
+ * @category Charts
14
+ */
15
+ export interface TriChartBaseProps<T> {
16
+ /** The sample points: one datum each. */
17
+ data: readonly T[];
18
+ /** The point's x, in data units: a key of `T` or `(d, i) => number`. */
19
+ x: Channel<T, number>;
20
+ /** The point's y, in data units: a key of `T` or `(d, i) => number`. */
21
+ y: Channel<T, number>;
22
+ /** The value sampled at the point. A triangle touching a non-finite value is left out. */
23
+ value: Channel<T, number>;
24
+ /**
25
+ * The mesh, as index triples into `data` (either winding); give your own to
26
+ * leave holes or follow a non-convex outline. An index past `data` throws.
27
+ * Omitted, the points are Delaunay-triangulated.
28
+ */
29
+ triangles?: readonly TriangleIndices[];
30
+ /** Reveal, 0..1; each chart documents its own animation. @default 1 */
31
+ progress?: number;
32
+ /** Fraction of the reveal spent staggering, 0..0.95. @default 0.5 */
33
+ stagger?: number;
34
+ }
35
+ /** A tri-chart's points as plain arrays. */
36
+ export interface TriPoints {
37
+ xs: number[];
38
+ ys: number[];
39
+ zs: number[];
40
+ }
41
+ /**
42
+ * The points as plain arrays.
43
+ *
44
+ * @internal
45
+ */
46
+ export declare function triPoints<T>(props: Pick<TriChartBaseProps<T>, "data" | "x" | "y" | "value">, dates: DateSink | null): TriPoints;
47
+ /**
48
+ * The finite `[min, max]` of `values`, or `[0, 1]` when there is none.
49
+ *
50
+ * @internal
51
+ */
52
+ export declare function valueExtent(values: readonly number[]): [number, number];
53
+ /** Each level's place in ascending order (contours reveal lowest first), by level value. @internal */
54
+ export declare function levelRanks(levels: readonly number[]): Map<number, number>;
55
+ /**
56
+ * One item's share of a staggered reveal, or the whole `progress` when
57
+ * there is only one item.
58
+ *
59
+ * @internal
60
+ */
61
+ export declare function triReveal(progress: number | undefined, rank: number, count: number, stagger: number | undefined): number;
62
+ //# sourceMappingURL=tri-shared.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tri-shared.d.ts","sourceRoot":"","sources":["../../src/grids/tri-shared.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAE1D,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAG1D;;;;;;GAMG;AACH,MAAM,WAAW,iBAAiB,CAAC,CAAC;IACnC,yCAAyC;IACzC,IAAI,EAAE,SAAS,CAAC,EAAE,CAAC;IACnB,wEAAwE;IACxE,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACtB,wEAAwE;IACxE,CAAC,EAAE,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IACtB,0FAA0F;IAC1F,KAAK,EAAE,OAAO,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;IAC1B;;;;OAIG;IACH,SAAS,CAAC,EAAE,SAAS,eAAe,EAAE,CAAC;IACvC,uEAAuE;IACvE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,qEAAqE;IACrE,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAKD,4CAA4C;AAC5C,MAAM,WAAW,SAAS;IACzB,EAAE,EAAE,MAAM,EAAE,CAAC;IACb,EAAE,EAAE,MAAM,EAAE,CAAC;IACb,EAAE,EAAE,MAAM,EAAE,CAAC;CACb;AAED;;;;GAIG;AACH,wBAAgB,SAAS,CAAC,CAAC,EAC1B,KAAK,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC,CAAC,EAAE,MAAM,GAAG,GAAG,GAAG,GAAG,GAAG,OAAO,CAAC,EAC/D,KAAK,EAAE,QAAQ,GAAG,IAAI,GACpB,SAAS,CAMX;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CASvE;AAED,sGAAsG;AACtG,wBAAgB,UAAU,CAAC,MAAM,EAAE,SAAS,MAAM,EAAE,GAAG,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAGzE;AAED;;;;;GAKG;AACH,wBAAgB,SAAS,CACxB,QAAQ,EAAE,MAAM,GAAG,SAAS,EAC5B,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,MAAM,GAAG,SAAS,GACzB,MAAM,CAER"}
@@ -0,0 +1,74 @@
1
+ /**
2
+ * `tripcolor`: a pseudocolour plot over scattered points, drawn as one path
3
+ * batch (one closed triangle per face). Faces fade in as a diagonal wave
4
+ * from the top-left; tooltips resolve per face through `event.item`.
5
+ */
6
+ import type { ColorRampSpec } from "@sophistry/core";
7
+ import type { RampScaleProps } from "../color-norm";
8
+ import type { TooltipSpec } from "../tooltip";
9
+ import type { TriChartBaseProps } from "./tri-shared";
10
+ /**
11
+ * Props of {@link tripcolor}.
12
+ *
13
+ * @category Charts
14
+ */
15
+ export interface TripcolorProps<T = unknown> extends TriChartBaseProps<T>, RampScaleProps {
16
+ /**
17
+ * How a face's value becomes colour: a colormap name (`"viridis"`), CSS stops, or `(t) =>
18
+ * colour`. Defaults to the theme's ramp.
19
+ */
20
+ ramp?: ColorRampSpec;
21
+ /** Value at the bottom of the ramp. Defaults to the smallest face value. */
22
+ rampMin?: number;
23
+ /** Value at the top of the ramp. Defaults to the largest face value. */
24
+ rampMax?: number;
25
+ /** Outline of every triangle, to show the mesh. Defaults to none. */
26
+ stroke?: string;
27
+ /** Width of the mesh outline. */
28
+ strokeWidth?: number;
29
+ /**
30
+ * Opacity of the faces, 0..1.
31
+ * @default 1
32
+ */
33
+ opacity?: number;
34
+ /**
35
+ * Hover tooltip: `true` for the face's value, or `(d, i) => string` given the face's first
36
+ * corner.
37
+ */
38
+ tooltip?: TooltipSpec<T>;
39
+ /**
40
+ * Paint order; higher draws later. Defaults to `UNDER_AXES_Z_INDEX` (above the grid, under the
41
+ * axes).
42
+ */
43
+ zIndex?: number;
44
+ /** Set to false to hide the faces. */
45
+ visible?: boolean;
46
+ }
47
+ /**
48
+ * A pseudocolour plot over scattered points: the points are triangulated (Delaunay, or your own
49
+ * `triangles`) and each triangle filled with the mean of its corners' values. `stroke` outlines
50
+ * the mesh. Reveals as a diagonal wave from the top-left. Inside a `chart` or `axes`; drawn as
51
+ * one path batch. See {@link tripcolorFaces} for the faces alone.
52
+ *
53
+ * @example
54
+ * ```ts
55
+ * import { chart, tripcolor } from "@sophistry/charts";
56
+ *
57
+ * const samples = [
58
+ * { x: 0, y: 0, v: 1 },
59
+ * { x: 1, y: 0, v: 3 },
60
+ * { x: 0, y: 1, v: 2 },
61
+ * { x: 1, y: 1, v: 5 },
62
+ * ];
63
+ * chart.create({
64
+ * width: 6,
65
+ * height: 4,
66
+ * children: [tripcolor.create({ data: samples, x: "x", y: "y", value: "v", tooltip: true })],
67
+ * });
68
+ * ```
69
+ *
70
+ * @see https://sophistry.dev/reference/chart-catalogue/#heatmaps-and-contours
71
+ * @category Charts
72
+ */
73
+ export declare const tripcolor: import("@sophistry/core").Definition<TripcolorProps<any>, import("@sophistry/core/internal").CompositeNode<TripcolorProps<any>>, keyof TripcolorProps<any>>;
74
+ //# sourceMappingURL=tripcolor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tripcolor.d.ts","sourceRoot":"","sources":["../../src/grids/tripcolor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACX,aAAa,EAMb,MAAM,iBAAiB,CAAC;AAUzB,OAAO,KAAK,EAAa,cAAc,EAAE,MAAM,eAAe,CAAC;AAW/D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAG9C,OAAO,KAAK,EAAE,iBAAiB,EAAa,MAAM,cAAc,CAAC;AAGjE;;;;GAIG;AACH,MAAM,WAAW,cAAc,CAAC,CAAC,GAAG,OAAO,CAC1C,SAAQ,iBAAiB,CAAC,CAAC,CAAC,EAC3B,cAAc;IACf;;;OAGG;IACH,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,wEAAwE;IACxE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,qEAAqE;IACrE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iCAAiC;IACjC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,OAAO,CAAC,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC;IACzB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,sCAAsC;IACtC,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAiLD;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,eAAO,MAAM,SAAS,6JAmCpB,CAAC"}
@@ -0,0 +1,111 @@
1
+ /**
2
+ * `colorbar`: a ramp legend, a bar shaded low to high with ticks and numbers.
3
+ *
4
+ * The bar, each tick's line and number (keyed by value) and the title are
5
+ * kept across updates and hidden with `visible: false` when not shown; the ticks are recomputed only when the domain, scale or
6
+ * formatting change, the gradient only when the ramp or orientation do.
7
+ */
8
+ import type { Colormap, ColorRampSpec } from "@sophistry/core";
9
+ import type { Point, ScaleSpec, TickFormatterSpec } from "@sophistry/core/geometry";
10
+ /**
11
+ * Props for {@link colorbar}.
12
+ *
13
+ * @category Charts
14
+ */
15
+ export interface ColorbarProps {
16
+ /** The value range the colours span, `[low, high]`: low at the bar's start. */
17
+ domain: readonly [number, number];
18
+ /**
19
+ * The ramp: a colormap name (`"viridis"`), CSS stops, or `(t) => colour`. Defaults to the
20
+ * theme's ramp.
21
+ */
22
+ ramp?: ColorRampSpec | Colormap;
23
+ /** The bar's bottom-left corner (vertical) or top-left (horizontal). */
24
+ at: Point;
25
+ /**
26
+ * `"vertical"`: low at the bottom, numbers on the right. `"horizontal"`: low on the left,
27
+ * numbers below.
28
+ * @default "vertical"
29
+ */
30
+ orientation?: "vertical" | "horizontal";
31
+ /**
32
+ * Length of the bar along its values.
33
+ * @default 3
34
+ */
35
+ length?: number;
36
+ /**
37
+ * Thickness of the bar.
38
+ * @default 0.22
39
+ */
40
+ thickness?: number;
41
+ /** A title above the bar (vertical) or beside it (horizontal). */
42
+ label?: string;
43
+ /**
44
+ * How values map along the bar, as on an axis: `"linear"`, `"log"`, `"sqrt"`, `"symlog"`, or
45
+ * your own {@link Scale}. Ticks follow it; colour the data with the same scale.
46
+ * @default "linear"
47
+ */
48
+ scale?: ScaleSpec;
49
+ /**
50
+ * The log base when `scale` is `"log"`.
51
+ * @default 10
52
+ */
53
+ base?: number;
54
+ /**
55
+ * A diverging centre: this value sits mid-bar, each half through `scale`. Colour the data with
56
+ * the same `rampMidpoint`.
57
+ */
58
+ midpoint?: number;
59
+ /**
60
+ * How a tick's number is written, as on an axis: a function, a built-in name (`"si"`,
61
+ * `"percent"`, ...) or a format string (`",.1f"`). Defaults to the axes' formatting.
62
+ */
63
+ tickFormat?: TickFormatterSpec;
64
+ /**
65
+ * Target number of ticks.
66
+ * @default 5
67
+ */
68
+ ticks?: number;
69
+ /**
70
+ * Font size of the numbers and the title.
71
+ * @default 0.24
72
+ */
73
+ fontSize?: number;
74
+ /**
75
+ * Reveal, 0..1: the bar fades in, then its numbers.
76
+ * @default 1
77
+ */
78
+ progress?: number;
79
+ /** Paint order; higher draws later. */
80
+ zIndex?: number;
81
+ /** Set to `false` to hide the colour bar. */
82
+ visible?: boolean;
83
+ }
84
+ /**
85
+ * How wide a vertical {@link colorbar} is: the bar, its ticks and its widest number (or title).
86
+ *
87
+ * @internal
88
+ */
89
+ export declare function colorbarWidth(props: Pick<ColorbarProps, "domain" | "scale" | "base" | "midpoint" | "thickness" | "label" | "tickFormat" | "ticks" | "fontSize">, fontFamily: string): number;
90
+ /**
91
+ * A ramp legend: a bar shaded low to high with ticks and numbers, saying what each colour
92
+ * stands for. `chart` with `colorbar` draws one for its value-coloured layers; use this
93
+ * directly anywhere else.
94
+ *
95
+ * @example
96
+ * ```ts
97
+ * import { colorbar } from "@sophistry/charts";
98
+ *
99
+ * colorbar.create({
100
+ * at: { x: 4, y: -1.5 },
101
+ * domain: [0, 100],
102
+ * ramp: "viridis",
103
+ * label: "Density",
104
+ * });
105
+ * ```
106
+ *
107
+ * @see https://sophistry.dev/guides/charts/#color
108
+ * @category Charts
109
+ */
110
+ export declare const colorbar: import("@sophistry/core").Definition<ColorbarProps, import("@sophistry/core/internal").CompositeNode<ColorbarProps>, keyof ColorbarProps>;
111
+ //# sourceMappingURL=colorbar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"colorbar.d.ts","sourceRoot":"","sources":["../../src/guides/colorbar.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACX,QAAQ,EACR,aAAa,EAOb,MAAM,iBAAiB,CAAC;AAUzB,OAAO,KAAK,EAEX,KAAK,EAEL,SAAS,EAET,iBAAiB,EACjB,MAAM,0BAA0B,CAAC;AAyBlC;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC7B,+EAA+E;IAC/E,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAClC;;;OAGG;IACH,IAAI,CAAC,EAAE,aAAa,GAAG,QAAQ,CAAC;IAChC,wEAAwE;IACxE,EAAE,EAAE,KAAK,CAAC;IACV;;;;OAIG;IACH,WAAW,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;IACxC;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kEAAkE;IAClE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;;OAIG;IACH,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB;;;OAGG;IACH,IAAI,CAAC,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,UAAU,CAAC,EAAE,iBAAiB,CAAC;IAC/B;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,uCAAuC;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,6CAA6C;IAC7C,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AA0DD;;;;GAIG;AACH,wBAAgB,aAAa,CAC5B,KAAK,EAAE,IAAI,CACV,aAAa,EACX,QAAQ,GACR,OAAO,GACP,MAAM,GACN,UAAU,GACV,WAAW,GACX,OAAO,GACP,YAAY,GACZ,OAAO,GACP,UAAU,CACZ,EACD,UAAU,EAAE,MAAM,GAChB,MAAM,CAqBR;AAqBD;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,QAAQ,2IAkCnB,CAAC"}
@@ -0,0 +1,12 @@
1
+ /** Family barrel: guides. Owned by its family; re-exported from the package entry. */
2
+ export type { SecondaryXProps, SecondaryYProps, } from "../frame/secondary-axes";
3
+ export { secondaryX, secondaryY } from "../frame/secondary-axes";
4
+ export type { TooltipOverlayProps } from "../frame/tooltip-overlay";
5
+ export { layoutTooltip, tooltipOverlay } from "../frame/tooltip-overlay";
6
+ export type { ColorbarProps } from "./colorbar";
7
+ export { colorbar } from "./colorbar";
8
+ export type { LegendEntry, LegendProps, LegendTransition } from "./legend";
9
+ export { legend } from "./legend";
10
+ export type { SizeLegendProps, SizeLegendTransition } from "./size-legend";
11
+ export { sizeLegend } from "./size-legend";
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/guides/index.ts"],"names":[],"mappings":"AAAA,sFAAsF;AAGtF,YAAY,EACX,eAAe,EACf,eAAe,GACf,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACjE,YAAY,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AACzE,YAAY,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,YAAY,EAAE,WAAW,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAC3E,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,YAAY,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC"}
@@ -0,0 +1,119 @@
1
+ /**
2
+ * `legend`: a key to a chart's colours, a swatch and a name per entry.
3
+ *
4
+ * The nodes of an entry are kept for as long as the entry is listed (keyed
5
+ * by its `key`, else its label) and hidden with `visible: false` when
6
+ * not listed; the layout is measured once per change of the
7
+ * entries, title or font, not as `progress` or a transition's stages move.
8
+ */
9
+ import type { ColorInput } from "@sophistry/core/color";
10
+ import type { BandKey, Point } from "@sophistry/core/geometry";
11
+ import type { LegendMark } from "../frame/types";
12
+ import type { LegendLayout } from "../math/legend";
13
+ /**
14
+ * One legend entry.
15
+ *
16
+ * @category Charts
17
+ */
18
+ export interface LegendEntry {
19
+ /** The category this entry stands for, if any. */
20
+ key?: BandKey;
21
+ /** The entry's text. */
22
+ label: string;
23
+ /** The swatch's colour. */
24
+ color: ColorInput;
25
+ /** The swatch's shape. Defaults to a filled square. */
26
+ mark?: LegendMark;
27
+ }
28
+ /**
29
+ * A legend's keyed transition: the entries each end lists, and how far each stage has got.
30
+ * `chart` passes one while a keyed transition runs.
31
+ *
32
+ * @see https://sophistry.dev/guides/chart-animation/#data-transitions
33
+ * @category Charts
34
+ */
35
+ export interface LegendTransition {
36
+ /** The keys of the entries listed at the start. An entry without a key is at both ends. */
37
+ from: readonly BandKey[];
38
+ /** The keys of the entries listed at the end. */
39
+ to: readonly BandKey[];
40
+ /** Progress of the exit stage, 0..1. */
41
+ exit: number;
42
+ /** Progress of the update stage, 0..1. */
43
+ update: number;
44
+ /** Progress of the enter stage, 0..1. */
45
+ enter: number;
46
+ }
47
+ /**
48
+ * Props for {@link legend}.
49
+ *
50
+ * @category Charts
51
+ */
52
+ export interface LegendProps {
53
+ /** The entries, in order. */
54
+ entries: readonly LegendEntry[];
55
+ /** The legend's top-left corner, in scene units. */
56
+ at: Point;
57
+ /**
58
+ * `"column"`: one entry per row. `"row"`: side by side, wrapping at `maxWidth`.
59
+ * @default "column"
60
+ */
61
+ direction?: "column" | "row";
62
+ /** With `direction: "row"`: wrap before an entry that would run past this width. */
63
+ maxWidth?: number;
64
+ /** A title line above the entries. */
65
+ title?: string;
66
+ /**
67
+ * Font size of the labels.
68
+ * @default 0.28
69
+ */
70
+ fontSize?: number;
71
+ /**
72
+ * Reveal, 0..1: the entries fade in one after another.
73
+ * @default 1
74
+ */
75
+ progress?: number;
76
+ /** A keyed data transition in progress. See {@link LegendTransition}. */
77
+ transition?: LegendTransition;
78
+ /** Paint order; higher draws later. */
79
+ zIndex?: number;
80
+ /** Set to `false` to hide the legend. */
81
+ visible?: boolean;
82
+ }
83
+ /** Measurement options shared by {@link legend} and the frames that place one. */
84
+ export interface LegendMetrics {
85
+ direction?: "column" | "row";
86
+ maxWidth?: number;
87
+ title?: string;
88
+ fontSize?: number;
89
+ fontFamily: string;
90
+ }
91
+ /**
92
+ * Lays a legend out, its labels measured with the theme's font and swatches sized to it.
93
+ *
94
+ * @internal
95
+ */
96
+ export declare function measureLegend(entries: readonly LegendEntry[], metrics: LegendMetrics): LegendLayout;
97
+ /**
98
+ * A key to a chart's colours: a swatch and a name per entry, each swatch showing the mark it
99
+ * stands for. `chart` draws one automatically from its colour scale; use this directly for
100
+ * charts without a frame or colours assigned by hand.
101
+ *
102
+ * @example
103
+ * ```ts
104
+ * import { legend } from "@sophistry/charts";
105
+ *
106
+ * legend.create({
107
+ * at: { x: 3, y: 2 },
108
+ * entries: [
109
+ * { label: "North", color: "tomato" },
110
+ * { label: "South", color: "steelblue", mark: { line: true, symbol: "circle" } },
111
+ * ],
112
+ * });
113
+ * ```
114
+ *
115
+ * @see https://sophistry.dev/guides/charts/#series-and-legends
116
+ * @category Charts
117
+ */
118
+ export declare const legend: import("@sophistry/core").Definition<LegendProps, import("@sophistry/core/internal").CompositeNode<LegendProps>, keyof LegendProps>;
119
+ //# sourceMappingURL=legend.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"legend.d.ts","sourceRoot":"","sources":["../../src/guides/legend.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAqBH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,0BAA0B,CAAC;AAM/D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAoB,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAWrE;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC3B,kDAAkD;IAClD,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,wBAAwB;IACxB,KAAK,EAAE,MAAM,CAAC;IACd,2BAA2B;IAC3B,KAAK,EAAE,UAAU,CAAC;IAClB,uDAAuD;IACvD,IAAI,CAAC,EAAE,UAAU,CAAC;CAClB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAChC,2FAA2F;IAC3F,IAAI,EAAE,SAAS,OAAO,EAAE,CAAC;IACzB,iDAAiD;IACjD,EAAE,EAAE,SAAS,OAAO,EAAE,CAAC;IACvB,wCAAwC;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,0CAA0C;IAC1C,MAAM,EAAE,MAAM,CAAC;IACf,yCAAyC;IACzC,KAAK,EAAE,MAAM,CAAC;CACd;AAED;;;;GAIG;AACH,MAAM,WAAW,WAAW;IAC3B,6BAA6B;IAC7B,OAAO,EAAE,SAAS,WAAW,EAAE,CAAC;IAChC,oDAAoD;IACpD,EAAE,EAAE,KAAK,CAAC;IACV;;;OAGG;IACH,SAAS,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC;IAC7B,oFAAoF;IACpF,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,sCAAsC;IACtC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB;;;OAGG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yEAAyE;IACzE,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,uCAAuC;IACvC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,yCAAyC;IACzC,OAAO,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,kFAAkF;AAClF,MAAM,WAAW,aAAa;IAC7B,SAAS,CAAC,EAAE,QAAQ,GAAG,KAAK,CAAC;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;CACnB;AAOD;;;;GAIG;AACH,wBAAgB,aAAa,CAC5B,OAAO,EAAE,SAAS,WAAW,EAAE,EAC/B,OAAO,EAAE,aAAa,GACpB,YAAY,CAwBd;AAiCD;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,eAAO,MAAM,MAAM,qIA8BjB,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Small helpers the guides share for keeping child nodes across updates.
3
+ * A guide keeps its nodes for as long as what they stand for exists, hiding
4
+ * one with `visible: false` (no spec) when it is not shown, and writes only the props whose values changed. Internal to the
5
+ * guides.
6
+ */
7
+ import type { SceneNode } from "@sophistry/core";
8
+ /**
9
+ * Writes the props of `next` that differ by value from `node`'s current
10
+ * ones (points and point lists compared by structure), so a guide's update
11
+ * re-bakes only the children it moved.
12
+ */
13
+ export declare function write<P extends object>(node: SceneNode<P>, next: Partial<P>): void;
14
+ //# sourceMappingURL=nodes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nodes.d.ts","sourceRoot":"","sources":["../../src/guides/nodes.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAGjD;;;;GAIG;AACH,wBAAgB,KAAK,CAAC,CAAC,SAAS,MAAM,EACrC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,EAClB,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,GACd,IAAI,CAMN"}