@neural-charts/native 0.0.0-stage → 0.1.0-beta.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 (508) hide show
  1. package/README.md +58 -2
  2. package/THIRD-PARTY-NOTICES.md +15 -0
  3. package/docs/guide.md +783 -0
  4. package/library/annular-hit.d.ts +10 -0
  5. package/library/annular-hit.d.ts.map +1 -0
  6. package/library/annular-hit.js +43 -0
  7. package/library/annular-hit.js.map +1 -0
  8. package/library/chart-capabilities.d.ts +326 -0
  9. package/library/chart-capabilities.d.ts.map +1 -0
  10. package/library/chart-capabilities.js +39 -0
  11. package/library/chart-capabilities.js.map +1 -0
  12. package/library/circular-scene.d.ts +55 -0
  13. package/library/circular-scene.d.ts.map +1 -0
  14. package/library/circular-scene.js +39 -0
  15. package/library/circular-scene.js.map +1 -0
  16. package/library/comparison-render.d.ts +18 -0
  17. package/library/comparison-render.d.ts.map +1 -0
  18. package/library/comparison-render.js +33 -0
  19. package/library/comparison-render.js.map +1 -0
  20. package/library/comparison-scene.d.ts +40 -0
  21. package/library/comparison-scene.d.ts.map +1 -0
  22. package/library/comparison-scene.js +77 -0
  23. package/library/comparison-scene.js.map +1 -0
  24. package/library/composition-scene.d.ts +35 -0
  25. package/library/composition-scene.d.ts.map +1 -0
  26. package/library/composition-scene.js +55 -0
  27. package/library/composition-scene.js.map +1 -0
  28. package/library/contour-hit-index.d.ts +15 -0
  29. package/library/contour-hit-index.d.ts.map +1 -0
  30. package/library/contour-hit-index.js +75 -0
  31. package/library/contour-hit-index.js.map +1 -0
  32. package/library/contour-label-anchors.d.ts +9 -0
  33. package/library/contour-label-anchors.d.ts.map +1 -0
  34. package/library/contour-label-anchors.js +20 -0
  35. package/library/contour-label-anchors.js.map +1 -0
  36. package/library/contour-scene.d.ts +10 -0
  37. package/library/contour-scene.d.ts.map +1 -0
  38. package/library/contour-scene.js +76 -0
  39. package/library/contour-scene.js.map +1 -0
  40. package/library/contracts.d.ts +445 -0
  41. package/library/contracts.d.ts.map +1 -0
  42. package/library/contracts.js +2 -0
  43. package/library/contracts.js.map +1 -0
  44. package/library/dendrogram-scene.d.ts +7 -0
  45. package/library/dendrogram-scene.d.ts.map +1 -0
  46. package/library/dendrogram-scene.js +28 -0
  47. package/library/dendrogram-scene.js.map +1 -0
  48. package/library/empty-state.d.ts +8 -0
  49. package/library/empty-state.d.ts.map +1 -0
  50. package/library/empty-state.js +30 -0
  51. package/library/empty-state.js.map +1 -0
  52. package/library/heatmap-hit.d.ts +27 -0
  53. package/library/heatmap-hit.d.ts.map +1 -0
  54. package/library/heatmap-hit.js +56 -0
  55. package/library/heatmap-hit.js.map +1 -0
  56. package/library/heatmap-scene.d.ts +17 -0
  57. package/library/heatmap-scene.d.ts.map +1 -0
  58. package/library/heatmap-scene.js +85 -0
  59. package/library/heatmap-scene.js.map +1 -0
  60. package/library/index.d.ts +14 -0
  61. package/library/index.d.ts.map +1 -0
  62. package/library/index.js +4 -0
  63. package/library/index.js.map +1 -0
  64. package/library/interaction-content.d.ts +4 -0
  65. package/library/interaction-content.d.ts.map +1 -0
  66. package/library/interaction-content.js +28 -0
  67. package/library/interaction-content.js.map +1 -0
  68. package/library/interaction.d.ts +75 -0
  69. package/library/interaction.d.ts.map +1 -0
  70. package/library/interaction.js +523 -0
  71. package/library/interaction.js.map +1 -0
  72. package/library/marker-style.d.ts +24 -0
  73. package/library/marker-style.d.ts.map +1 -0
  74. package/library/marker-style.js +43 -0
  75. package/library/marker-style.js.map +1 -0
  76. package/library/parallel-scene.d.ts +11 -0
  77. package/library/parallel-scene.d.ts.map +1 -0
  78. package/library/parallel-scene.js +44 -0
  79. package/library/parallel-scene.js.map +1 -0
  80. package/library/path-validation.d.ts +3 -0
  81. package/library/path-validation.d.ts.map +1 -0
  82. package/library/path-validation.js +78 -0
  83. package/library/path-validation.js.map +1 -0
  84. package/library/pictorial-hit.d.ts +19 -0
  85. package/library/pictorial-hit.d.ts.map +1 -0
  86. package/library/pictorial-hit.js +73 -0
  87. package/library/pictorial-hit.js.map +1 -0
  88. package/library/pictorial-scene.d.ts +16 -0
  89. package/library/pictorial-scene.d.ts.map +1 -0
  90. package/library/pictorial-scene.js +73 -0
  91. package/library/pictorial-scene.js.map +1 -0
  92. package/library/point-label-placement.d.ts +34 -0
  93. package/library/point-label-placement.d.ts.map +1 -0
  94. package/library/point-label-placement.js +24 -0
  95. package/library/point-label-placement.js.map +1 -0
  96. package/library/polar-grid.d.ts +5 -0
  97. package/library/polar-grid.d.ts.map +1 -0
  98. package/library/polar-grid.js +28 -0
  99. package/library/polar-grid.js.map +1 -0
  100. package/library/polygon-hit.d.ts +18 -0
  101. package/library/polygon-hit.d.ts.map +1 -0
  102. package/library/polygon-hit.js +98 -0
  103. package/library/polygon-hit.js.map +1 -0
  104. package/library/profile-scene.d.ts +11 -0
  105. package/library/profile-scene.d.ts.map +1 -0
  106. package/library/profile-scene.js +51 -0
  107. package/library/profile-scene.js.map +1 -0
  108. package/library/relationship-hit-index.d.ts +12 -0
  109. package/library/relationship-hit-index.d.ts.map +1 -0
  110. package/library/relationship-hit-index.js +87 -0
  111. package/library/relationship-hit-index.js.map +1 -0
  112. package/library/relationship-scene.d.ts +12 -0
  113. package/library/relationship-scene.d.ts.map +1 -0
  114. package/library/relationship-scene.js +62 -0
  115. package/library/relationship-scene.js.map +1 -0
  116. package/library/scene-paint.d.ts +29 -0
  117. package/library/scene-paint.d.ts.map +1 -0
  118. package/library/scene-paint.js +123 -0
  119. package/library/scene-paint.js.map +1 -0
  120. package/library/scene-styles.d.ts +13 -0
  121. package/library/scene-styles.d.ts.map +1 -0
  122. package/library/scene-styles.js +135 -0
  123. package/library/scene-styles.js.map +1 -0
  124. package/library/scene.d.ts +49 -0
  125. package/library/scene.d.ts.map +1 -0
  126. package/library/scene.js +533 -0
  127. package/library/scene.js.map +1 -0
  128. package/library/temporal-hit-index.d.ts +13 -0
  129. package/library/temporal-hit-index.d.ts.map +1 -0
  130. package/library/temporal-hit-index.js +71 -0
  131. package/library/temporal-hit-index.js.map +1 -0
  132. package/library/temporal-scene.d.ts +6 -0
  133. package/library/temporal-scene.d.ts.map +1 -0
  134. package/library/temporal-scene.js +70 -0
  135. package/library/temporal-scene.js.map +1 -0
  136. package/library/tile-index.d.ts +11 -0
  137. package/library/tile-index.d.ts.map +1 -0
  138. package/library/tile-index.js +37 -0
  139. package/library/tile-index.js.map +1 -0
  140. package/library/tilemap-hit.d.ts +11 -0
  141. package/library/tilemap-hit.d.ts.map +1 -0
  142. package/library/tilemap-hit.js +63 -0
  143. package/library/tilemap-hit.js.map +1 -0
  144. package/library/tilemap-scene.d.ts +24 -0
  145. package/library/tilemap-scene.d.ts.map +1 -0
  146. package/library/tilemap-scene.js +125 -0
  147. package/library/tilemap-scene.js.map +1 -0
  148. package/library/uncertainty-scene.d.ts +11 -0
  149. package/library/uncertainty-scene.d.ts.map +1 -0
  150. package/library/uncertainty-scene.js +61 -0
  151. package/library/uncertainty-scene.js.map +1 -0
  152. package/library/venn-hit.d.ts +21 -0
  153. package/library/venn-hit.d.ts.map +1 -0
  154. package/library/venn-hit.js +37 -0
  155. package/library/venn-hit.js.map +1 -0
  156. package/library/venn-scene.d.ts +14 -0
  157. package/library/venn-scene.d.ts.map +1 -0
  158. package/library/venn-scene.js +84 -0
  159. package/library/venn-scene.js.map +1 -0
  160. package/library/wordcloud-scene.d.ts +19 -0
  161. package/library/wordcloud-scene.d.ts.map +1 -0
  162. package/library/wordcloud-scene.js +58 -0
  163. package/library/wordcloud-scene.js.map +1 -0
  164. package/native/activity.d.ts +14 -0
  165. package/native/activity.d.ts.map +1 -0
  166. package/native/activity.js +31 -0
  167. package/native/activity.js.map +1 -0
  168. package/native/bar-labels.d.ts +4 -0
  169. package/native/bar-labels.d.ts.map +1 -0
  170. package/native/bar-labels.js +16 -0
  171. package/native/bar-labels.js.map +1 -0
  172. package/native/bubble-entrance.d.ts +15 -0
  173. package/native/bubble-entrance.d.ts.map +1 -0
  174. package/native/bubble-entrance.js +27 -0
  175. package/native/bubble-entrance.js.map +1 -0
  176. package/native/chart-drilldown.d.ts +57 -0
  177. package/native/chart-drilldown.d.ts.map +1 -0
  178. package/native/chart-drilldown.js +118 -0
  179. package/native/chart-drilldown.js.map +1 -0
  180. package/native/chart-motion.d.ts +69 -0
  181. package/native/chart-motion.d.ts.map +1 -0
  182. package/native/chart-motion.js +165 -0
  183. package/native/chart-motion.js.map +1 -0
  184. package/native/chart-panels-options.d.ts +77 -0
  185. package/native/chart-panels-options.d.ts.map +1 -0
  186. package/native/chart-panels-options.js +2 -0
  187. package/native/chart-panels-options.js.map +1 -0
  188. package/native/chart-panels-state.d.ts +34 -0
  189. package/native/chart-panels-state.d.ts.map +1 -0
  190. package/native/chart-panels-state.js +198 -0
  191. package/native/chart-panels-state.js.map +1 -0
  192. package/native/chart-panels.d.ts +43 -0
  193. package/native/chart-panels.d.ts.map +1 -0
  194. package/native/chart-panels.js +107 -0
  195. package/native/chart-panels.js.map +1 -0
  196. package/native/chart-presentation.d.ts +40 -0
  197. package/native/chart-presentation.d.ts.map +1 -0
  198. package/native/chart-presentation.js +16 -0
  199. package/native/chart-presentation.js.map +1 -0
  200. package/native/chart-type.d.ts +65 -0
  201. package/native/chart-type.d.ts.map +1 -0
  202. package/native/chart-type.js +66 -0
  203. package/native/chart-type.js.map +1 -0
  204. package/native/chart.d.ts +571 -0
  205. package/native/chart.d.ts.map +1 -0
  206. package/native/chart.js +1417 -0
  207. package/native/chart.js.map +1 -0
  208. package/native/circular-options.d.ts +17 -0
  209. package/native/circular-options.d.ts.map +1 -0
  210. package/native/circular-options.js +2 -0
  211. package/native/circular-options.js.map +1 -0
  212. package/native/comparison-data.d.ts +64 -0
  213. package/native/comparison-data.d.ts.map +1 -0
  214. package/native/comparison-data.js +2 -0
  215. package/native/comparison-data.js.map +1 -0
  216. package/native/comparison-format.d.ts +16 -0
  217. package/native/comparison-format.d.ts.map +1 -0
  218. package/native/comparison-format.js +26 -0
  219. package/native/comparison-format.js.map +1 -0
  220. package/native/composition-options.d.ts +18 -0
  221. package/native/composition-options.d.ts.map +1 -0
  222. package/native/composition-options.js +2 -0
  223. package/native/composition-options.js.map +1 -0
  224. package/native/contour-data.d.ts +48 -0
  225. package/native/contour-data.d.ts.map +1 -0
  226. package/native/contour-data.js +2 -0
  227. package/native/contour-data.js.map +1 -0
  228. package/native/contour-format.d.ts +3 -0
  229. package/native/contour-format.d.ts.map +1 -0
  230. package/native/contour-format.js +11 -0
  231. package/native/contour-format.js.map +1 -0
  232. package/native/control-accessibility.d.ts +7 -0
  233. package/native/control-accessibility.d.ts.map +1 -0
  234. package/native/control-accessibility.js +9 -0
  235. package/native/control-accessibility.js.map +1 -0
  236. package/native/data-chart.d.ts +179 -0
  237. package/native/data-chart.d.ts.map +1 -0
  238. package/native/data-chart.js +415 -0
  239. package/native/data-chart.js.map +1 -0
  240. package/native/data-identities.d.ts +10 -0
  241. package/native/data-identities.d.ts.map +1 -0
  242. package/native/data-identities.js +50 -0
  243. package/native/data-identities.js.map +1 -0
  244. package/native/data-options.d.ts +566 -0
  245. package/native/data-options.d.ts.map +1 -0
  246. package/native/data-options.js +2 -0
  247. package/native/data-options.js.map +1 -0
  248. package/native/data-planning.d.ts +84 -0
  249. package/native/data-planning.d.ts.map +1 -0
  250. package/native/data-planning.js +174 -0
  251. package/native/data-planning.js.map +1 -0
  252. package/native/dendrogram-data.d.ts +27 -0
  253. package/native/dendrogram-data.d.ts.map +1 -0
  254. package/native/dendrogram-data.js +2 -0
  255. package/native/dendrogram-data.js.map +1 -0
  256. package/native/dendrogram-labels.d.ts +13 -0
  257. package/native/dendrogram-labels.d.ts.map +1 -0
  258. package/native/dendrogram-labels.js +12 -0
  259. package/native/dendrogram-labels.js.map +1 -0
  260. package/native/drilldown-options.d.ts +62 -0
  261. package/native/drilldown-options.d.ts.map +1 -0
  262. package/native/drilldown-options.js +2 -0
  263. package/native/drilldown-options.js.map +1 -0
  264. package/native/drilldown-state.d.ts +18 -0
  265. package/native/drilldown-state.d.ts.map +1 -0
  266. package/native/drilldown-state.js +130 -0
  267. package/native/drilldown-state.js.map +1 -0
  268. package/native/gauge-entrance.d.ts +8 -0
  269. package/native/gauge-entrance.d.ts.map +1 -0
  270. package/native/gauge-entrance.js +42 -0
  271. package/native/gauge-entrance.js.map +1 -0
  272. package/native/haptics.d.ts +21 -0
  273. package/native/haptics.d.ts.map +1 -0
  274. package/native/haptics.js +66 -0
  275. package/native/haptics.js.map +1 -0
  276. package/native/heatmap-data.d.ts +56 -0
  277. package/native/heatmap-data.d.ts.map +1 -0
  278. package/native/heatmap-data.js +2 -0
  279. package/native/heatmap-data.js.map +1 -0
  280. package/native/index.d.ts +26 -0
  281. package/native/index.d.ts.map +1 -0
  282. package/native/index.js +11 -0
  283. package/native/index.js.map +1 -0
  284. package/native/input-bridge.d.ts +32 -0
  285. package/native/input-bridge.d.ts.map +1 -0
  286. package/native/input-bridge.js +3 -0
  287. package/native/input-bridge.js.map +1 -0
  288. package/native/input-lease.d.ts +23 -0
  289. package/native/input-lease.d.ts.map +1 -0
  290. package/native/input-lease.js +28 -0
  291. package/native/input-lease.js.map +1 -0
  292. package/native/label-contrast.d.ts +7 -0
  293. package/native/label-contrast.d.ts.map +1 -0
  294. package/native/label-contrast.js +33 -0
  295. package/native/label-contrast.js.map +1 -0
  296. package/native/label-halo.d.ts +9 -0
  297. package/native/label-halo.d.ts.map +1 -0
  298. package/native/label-halo.js +23 -0
  299. package/native/label-halo.js.map +1 -0
  300. package/native/label-ink.d.ts +3 -0
  301. package/native/label-ink.d.ts.map +1 -0
  302. package/native/label-ink.js +6 -0
  303. package/native/label-ink.js.map +1 -0
  304. package/native/legend.d.ts +21 -0
  305. package/native/legend.d.ts.map +1 -0
  306. package/native/legend.js +66 -0
  307. package/native/legend.js.map +1 -0
  308. package/native/log-axis-labels.d.ts +6 -0
  309. package/native/log-axis-labels.d.ts.map +1 -0
  310. package/native/log-axis-labels.js +16 -0
  311. package/native/log-axis-labels.js.map +1 -0
  312. package/native/log-options.d.ts +5 -0
  313. package/native/log-options.d.ts.map +1 -0
  314. package/native/log-options.js +6 -0
  315. package/native/log-options.js.map +1 -0
  316. package/native/number-format.d.ts +5 -0
  317. package/native/number-format.d.ts.map +1 -0
  318. package/native/number-format.js +24 -0
  319. package/native/number-format.js.map +1 -0
  320. package/native/observation-format.d.ts +8 -0
  321. package/native/observation-format.d.ts.map +1 -0
  322. package/native/observation-format.js +80 -0
  323. package/native/observation-format.js.map +1 -0
  324. package/native/options-validation.d.ts +8 -0
  325. package/native/options-validation.d.ts.map +1 -0
  326. package/native/options-validation.js +612 -0
  327. package/native/options-validation.js.map +1 -0
  328. package/native/panel-viewport-contract.d.ts +15 -0
  329. package/native/panel-viewport-contract.d.ts.map +1 -0
  330. package/native/panel-viewport-contract.js +86 -0
  331. package/native/panel-viewport-contract.js.map +1 -0
  332. package/native/panel-viewport-sync.d.ts +27 -0
  333. package/native/panel-viewport-sync.d.ts.map +1 -0
  334. package/native/panel-viewport-sync.js +96 -0
  335. package/native/panel-viewport-sync.js.map +1 -0
  336. package/native/parallel-data.d.ts +49 -0
  337. package/native/parallel-data.d.ts.map +1 -0
  338. package/native/parallel-data.js +2 -0
  339. package/native/parallel-data.js.map +1 -0
  340. package/native/parallel-labels.d.ts +20 -0
  341. package/native/parallel-labels.d.ts.map +1 -0
  342. package/native/parallel-labels.js +54 -0
  343. package/native/parallel-labels.js.map +1 -0
  344. package/native/pictorial-data.d.ts +78 -0
  345. package/native/pictorial-data.d.ts.map +1 -0
  346. package/native/pictorial-data.js +2 -0
  347. package/native/pictorial-data.js.map +1 -0
  348. package/native/pictorial-format.d.ts +8 -0
  349. package/native/pictorial-format.d.ts.map +1 -0
  350. package/native/pictorial-format.js +14 -0
  351. package/native/pictorial-format.js.map +1 -0
  352. package/native/pictorial-options.d.ts +2 -0
  353. package/native/pictorial-options.d.ts.map +1 -0
  354. package/native/pictorial-options.js +61 -0
  355. package/native/pictorial-options.js.map +1 -0
  356. package/native/pictorial-paint.d.ts +19 -0
  357. package/native/pictorial-paint.d.ts.map +1 -0
  358. package/native/pictorial-paint.js +31 -0
  359. package/native/pictorial-paint.js.map +1 -0
  360. package/native/plan.d.ts +45 -0
  361. package/native/plan.d.ts.map +1 -0
  362. package/native/plan.js +109 -0
  363. package/native/plan.js.map +1 -0
  364. package/native/profile-data.d.ts +82 -0
  365. package/native/profile-data.d.ts.map +1 -0
  366. package/native/profile-data.js +2 -0
  367. package/native/profile-data.js.map +1 -0
  368. package/native/profile-labels.d.ts +5 -0
  369. package/native/profile-labels.d.ts.map +1 -0
  370. package/native/profile-labels.js +19 -0
  371. package/native/profile-labels.js.map +1 -0
  372. package/native/radial-entrance.d.ts +24 -0
  373. package/native/radial-entrance.d.ts.map +1 -0
  374. package/native/radial-entrance.js +25 -0
  375. package/native/radial-entrance.js.map +1 -0
  376. package/native/radial-layer.d.ts +26 -0
  377. package/native/radial-layer.d.ts.map +1 -0
  378. package/native/radial-layer.js +76 -0
  379. package/native/radial-layer.js.map +1 -0
  380. package/native/reference-labels.d.ts +21 -0
  381. package/native/reference-labels.d.ts.map +1 -0
  382. package/native/reference-labels.js +36 -0
  383. package/native/reference-labels.js.map +1 -0
  384. package/native/reference-options.d.ts +23 -0
  385. package/native/reference-options.d.ts.map +1 -0
  386. package/native/reference-options.js +58 -0
  387. package/native/reference-options.js.map +1 -0
  388. package/native/relationship-data.d.ts +63 -0
  389. package/native/relationship-data.d.ts.map +1 -0
  390. package/native/relationship-data.js +2 -0
  391. package/native/relationship-data.js.map +1 -0
  392. package/native/relationship-format.d.ts +13 -0
  393. package/native/relationship-format.d.ts.map +1 -0
  394. package/native/relationship-format.js +26 -0
  395. package/native/relationship-format.js.map +1 -0
  396. package/native/selection-outlines.d.ts +12 -0
  397. package/native/selection-outlines.d.ts.map +1 -0
  398. package/native/selection-outlines.js +20 -0
  399. package/native/selection-outlines.js.map +1 -0
  400. package/native/temporal-format.d.ts +29 -0
  401. package/native/temporal-format.d.ts.map +1 -0
  402. package/native/temporal-format.js +41 -0
  403. package/native/temporal-format.js.map +1 -0
  404. package/native/text-style.d.ts +16 -0
  405. package/native/text-style.d.ts.map +1 -0
  406. package/native/text-style.js +14 -0
  407. package/native/text-style.js.map +1 -0
  408. package/native/tilemap-color-axis.d.ts +23 -0
  409. package/native/tilemap-color-axis.d.ts.map +1 -0
  410. package/native/tilemap-color-axis.js +77 -0
  411. package/native/tilemap-color-axis.js.map +1 -0
  412. package/native/tilemap-data.d.ts +71 -0
  413. package/native/tilemap-data.d.ts.map +1 -0
  414. package/native/tilemap-data.js +2 -0
  415. package/native/tilemap-data.js.map +1 -0
  416. package/native/tilemap-format.d.ts +3 -0
  417. package/native/tilemap-format.d.ts.map +1 -0
  418. package/native/tilemap-format.js +14 -0
  419. package/native/tilemap-format.js.map +1 -0
  420. package/native/tilemap-selection.d.ts +12 -0
  421. package/native/tilemap-selection.d.ts.map +1 -0
  422. package/native/tilemap-selection.js +8 -0
  423. package/native/tilemap-selection.js.map +1 -0
  424. package/native/time-axis-labels.d.ts +5 -0
  425. package/native/time-axis-labels.d.ts.map +1 -0
  426. package/native/time-axis-labels.js +38 -0
  427. package/native/time-axis-labels.js.map +1 -0
  428. package/native/tooltip-layout.d.ts +16 -0
  429. package/native/tooltip-layout.d.ts.map +1 -0
  430. package/native/tooltip-layout.js +33 -0
  431. package/native/tooltip-layout.js.map +1 -0
  432. package/native/tooltip-metrics.d.ts +4 -0
  433. package/native/tooltip-metrics.d.ts.map +1 -0
  434. package/native/tooltip-metrics.js +11 -0
  435. package/native/tooltip-metrics.js.map +1 -0
  436. package/native/tooltip-motion.d.ts +35 -0
  437. package/native/tooltip-motion.d.ts.map +1 -0
  438. package/native/tooltip-motion.js +36 -0
  439. package/native/tooltip-motion.js.map +1 -0
  440. package/native/tooltip-occupancy.d.ts +21 -0
  441. package/native/tooltip-occupancy.d.ts.map +1 -0
  442. package/native/tooltip-occupancy.js +67 -0
  443. package/native/tooltip-occupancy.js.map +1 -0
  444. package/native/tooltip.d.ts +144 -0
  445. package/native/tooltip.d.ts.map +1 -0
  446. package/native/tooltip.js +146 -0
  447. package/native/tooltip.js.map +1 -0
  448. package/native/uncertainty-data.d.ts +110 -0
  449. package/native/uncertainty-data.d.ts.map +1 -0
  450. package/native/uncertainty-data.js +2 -0
  451. package/native/uncertainty-data.js.map +1 -0
  452. package/native/uncertainty-format.d.ts +3 -0
  453. package/native/uncertainty-format.d.ts.map +1 -0
  454. package/native/uncertainty-format.js +10 -0
  455. package/native/uncertainty-format.js.map +1 -0
  456. package/native/value-labels.d.ts +30 -0
  457. package/native/value-labels.d.ts.map +1 -0
  458. package/native/value-labels.js +206 -0
  459. package/native/value-labels.js.map +1 -0
  460. package/native/variwide-labels.d.ts +14 -0
  461. package/native/variwide-labels.d.ts.map +1 -0
  462. package/native/variwide-labels.js +22 -0
  463. package/native/variwide-labels.js.map +1 -0
  464. package/native/venn-data.d.ts +29 -0
  465. package/native/venn-data.d.ts.map +1 -0
  466. package/native/venn-data.js +2 -0
  467. package/native/venn-data.js.map +1 -0
  468. package/native/viewport-gestures.d.ts +32 -0
  469. package/native/viewport-gestures.d.ts.map +1 -0
  470. package/native/viewport-gestures.js +43 -0
  471. package/native/viewport-gestures.js.map +1 -0
  472. package/native/viewport-motion.d.ts +67 -0
  473. package/native/viewport-motion.d.ts.map +1 -0
  474. package/native/viewport-motion.js +182 -0
  475. package/native/viewport-motion.js.map +1 -0
  476. package/native/viewport-state.d.ts +20 -0
  477. package/native/viewport-state.d.ts.map +1 -0
  478. package/native/viewport-state.js +14 -0
  479. package/native/viewport-state.js.map +1 -0
  480. package/native/waterfall-appearance.d.ts +8 -0
  481. package/native/waterfall-appearance.d.ts.map +1 -0
  482. package/native/waterfall-appearance.js +18 -0
  483. package/native/waterfall-appearance.js.map +1 -0
  484. package/native/wordcloud-data.d.ts +40 -0
  485. package/native/wordcloud-data.d.ts.map +1 -0
  486. package/native/wordcloud-data.js +2 -0
  487. package/native/wordcloud-data.js.map +1 -0
  488. package/native/wordcloud-layer.d.ts +29 -0
  489. package/native/wordcloud-layer.d.ts.map +1 -0
  490. package/native/wordcloud-layer.js +58 -0
  491. package/native/wordcloud-layer.js.map +1 -0
  492. package/native/wordcloud-measurements.d.ts +47 -0
  493. package/native/wordcloud-measurements.d.ts.map +1 -0
  494. package/native/wordcloud-measurements.js +137 -0
  495. package/native/wordcloud-measurements.js.map +1 -0
  496. package/native/wordcloud-planning.d.ts +23 -0
  497. package/native/wordcloud-planning.d.ts.map +1 -0
  498. package/native/wordcloud-planning.js +25 -0
  499. package/native/wordcloud-planning.js.map +1 -0
  500. package/native/wordcloud-probes.d.ts +48 -0
  501. package/native/wordcloud-probes.d.ts.map +1 -0
  502. package/native/wordcloud-probes.js +111 -0
  503. package/native/wordcloud-probes.js.map +1 -0
  504. package/native/wordcloud-text-backend.d.ts +16 -0
  505. package/native/wordcloud-text-backend.d.ts.map +1 -0
  506. package/native/wordcloud-text-backend.js +3 -0
  507. package/native/wordcloud-text-backend.js.map +1 -0
  508. package/package.json +58 -4
@@ -0,0 +1,523 @@
1
+ import { AnnularSectorHitIndex } from './annular-hit.js';
2
+ import { HeatmapHitIndex } from './heatmap-hit.js';
3
+ import { VennHitIndex } from './venn-hit.js';
4
+ import { ContourHitIndex } from './contour-hit-index.js';
5
+ import { relationshipFamily } from './relationship-scene.js';
6
+ import { PictorialHitIndex } from './pictorial-hit.js';
7
+ import { TilemapHitIndex } from './tilemap-hit.js';
8
+ import { RelationshipHitIndex } from './relationship-hit-index.js';
9
+ import { polygonObservation, sankeyObservation } from './polygon-hit.js';
10
+ import { identityKey } from './contracts.js';
11
+ import { ownScene, sceneInteractionKey } from './scene.js';
12
+ import { TileIndex } from './tile-index.js';
13
+ import { TemporalHitIndex } from './temporal-hit-index.js';
14
+ /** Platform-free interaction owner. No scales, domains, Angular or native dependencies. */
15
+ export class NativeChartSession {
16
+ clock;
17
+ haptics;
18
+ contentMode;
19
+ currentScene;
20
+ get scene() { return this.currentScene; }
21
+ positions = new Map();
22
+ semanticGroups = new Map();
23
+ sharedCache;
24
+ sharedOrder;
25
+ groupPositions = new Map();
26
+ groups;
27
+ listener;
28
+ lastEmitted;
29
+ active = null;
30
+ selected = null;
31
+ scrubbing = false;
32
+ pinned = false;
33
+ pending = null;
34
+ frame = null;
35
+ destroyed = false;
36
+ hapticState = { busy: false };
37
+ touchTolerance = 0;
38
+ hitCells = new Map();
39
+ glyphCircles = new Map();
40
+ glyphPoints = [];
41
+ maximumGlyphRadius = 1;
42
+ pictorial;
43
+ tilemap;
44
+ relationships;
45
+ annular;
46
+ radial;
47
+ radialOrigin;
48
+ radialPhase;
49
+ cellSize = 128;
50
+ tiles;
51
+ temporal;
52
+ contours;
53
+ venn;
54
+ heatmap;
55
+ constructor(scene, clock, haptics, listener, initialSelection = null, contentMode = 'point', initialGroup) {
56
+ this.clock = clock;
57
+ this.haptics = haptics;
58
+ this.contentMode = contentMode;
59
+ this.currentScene = ownScene(scene);
60
+ this.pictorial = scene.family === 'pictorial' ? new PictorialHitIndex(this.scene.observations.map(point => ({ point, ...(point.hit?.type === 'compoundPolygon' ? { hit: point.hit } : {}) })), scene.width, scene.height) : null;
61
+ this.tilemap = scene.family === 'tilemap' || scene.family === 'wordcloud' ? new TilemapHitIndex(this.scene.observations, scene.width, scene.height) : null;
62
+ this.heatmap = this.scene.heatmap ? new HeatmapHitIndex(this.scene.heatmap.layout.rows, this.scene.heatmap.layout.columns, this.scene.heatmap.data, this.scene.observations, scene.width, scene.height) : null;
63
+ this.venn = scene.venn ? new VennHitIndex(this.scene.venn.layout.circles, this.scene.observations.filter(point => point.venn?.geometry === 'placed').map(point => ({ mask: point.venn.mask, point })), scene.width, scene.height) : null;
64
+ this.contours = scene.family === 'contour' ? new ContourHitIndex(this.currentScene) : null;
65
+ this.temporal = ['regression', 'flame', 'violin', 'bullet', 'variwide', 'xrange', 'timeline'].includes(scene.family) ? new TemporalHitIndex(this.currentScene, scene.family === 'bullet' || scene.family === 'variwide') : null;
66
+ if (scene.family === 'lollipop' || scene.family === 'dumbbell') {
67
+ for (const series of this.scene.series)
68
+ for (const circle of series.circles ?? []) {
69
+ if (circle.pointId === undefined)
70
+ continue;
71
+ const key = identityKey({ seriesId: series.id, pointId: circle.pointId }), circles = this.glyphCircles.get(key) ?? [];
72
+ circles.push(circle);
73
+ this.glyphCircles.set(key, circles);
74
+ this.maximumGlyphRadius = Math.max(this.maximumGlyphRadius, circle.radius);
75
+ }
76
+ this.glyphPoints = this.scene.observations.filter(p => !!p.stem || this.glyphCircles.has(identityKey(p.id))).sort((a, b) => a.x - b.x);
77
+ }
78
+ this.tiles = (scene.family === 'treemap' || scene.family === 'organization') ? new TileIndex(this.currentScene) : null;
79
+ if (contentMode === 'shared' && (!['fan', 'parallel', 'bullet', 'streamgraph', 'lollipop', 'dumbbell', 'columnpyramid', 'boxplot', 'errorbar', 'arearange', 'areasplinerange', 'columnrange', 'pareto', 'line', 'area', 'streamgraph', 'areaspline', 'spline', 'mixed', 'column', 'bar'].includes(scene.family) || scene.observations.some(p => !p.group)))
80
+ throw new Error('Shared tooltip requires semantic groups on line, column or bar observations');
81
+ this.scene.observations.forEach((p, i) => this.positions.set(identityKey(p.id), i));
82
+ const initial = initialSelection ? this.point(initialSelection) : null;
83
+ this.active = initial;
84
+ this.selected = initial?.id ?? null;
85
+ this.listener = listener;
86
+ const groups = new Map();
87
+ for (const p of ['fan', 'bullet', 'streamgraph', 'lollipop', 'dumbbell', 'columnpyramid', 'boxplot', 'errorbar', 'arearange', 'areasplinerange', 'columnrange', 'histogram', 'bellcurve', 'pareto', 'waterfall', 'line', 'area', 'streamgraph', 'areaspline', 'spline', 'mixed', 'column', 'bar'].includes(this.scene.family) ? this.scene.observations : []) {
88
+ const coordinate = contentMode === 'shared' ? p.group.coordinate : (this.scene.family === 'bar' || this.scene.family === 'bullet' && this.scene.bulletOrientation === 'horizontal') ? p.y : p.x;
89
+ const bucket = groups.get(coordinate) ?? [];
90
+ bucket.push(p);
91
+ groups.set(coordinate, bucket);
92
+ }
93
+ this.groups = [...groups].sort(([a], [b]) => a - b).map(([coordinate, points]) => ({ coordinate, points }));
94
+ const semantic = new Map();
95
+ if (contentMode === 'shared')
96
+ for (const point of this.scene.observations) {
97
+ if (!point.group)
98
+ continue;
99
+ const rows = semantic.get(point.group.key) ?? [];
100
+ rows.push(point);
101
+ semantic.set(point.group.key, rows);
102
+ }
103
+ const order = new Map((scene.legend ?? scene.series).map((s, i) => [s.id, i]));
104
+ for (const [key, points] of semantic)
105
+ this.semanticGroups.set(key, Object.freeze(points.sort((a, b) => order.get(a.id.seriesId) - order.get(b.id.seriesId))));
106
+ this.sharedOrder = [...this.semanticGroups.values()].map(points => points[0]).sort((a, b) => a.group.coordinate - b.group.coordinate);
107
+ this.sharedOrder.forEach((p, i) => this.groupPositions.set(p.group.key, i));
108
+ if (contentMode === 'shared' && initialGroup) {
109
+ const restored = this.semanticGroups.get(initialGroup)?.[0];
110
+ if (restored) {
111
+ this.active = restored;
112
+ this.selected = restored.id;
113
+ }
114
+ }
115
+ this.relationships = relationshipFamily(scene.family) ? new RelationshipHitIndex(scene) : null;
116
+ this.annular = scene.family === 'windrose' || scene.family === 'radialbar' ? new AnnularSectorHitIndex(this.scene.observations) : null;
117
+ this.radial = scene.family === 'variablepie' || scene.family === 'polar' || scene.family === 'pie' || scene.family === 'donut' || scene.family === 'gauge'
118
+ ? this.scene.observations.filter(p => p.hit?.type === 'sector' && p.hit.end > p.hit.start && p.hit.radius > p.hit.innerRadius).sort((a, b) => (a.hit.type === 'sector' ? a.hit.start : 0) - (b.hit.type === 'sector' ? b.hit.start : 0)) : [];
119
+ const firstSector = this.radial[0]?.hit;
120
+ this.radialOrigin = firstSector?.type === 'sector' ? firstSector.start : 0;
121
+ this.radialPhase = (this.radialOrigin % (Math.PI * 2) + Math.PI * 2) % (Math.PI * 2);
122
+ // Bubble hit regions are indexed once. A touch only examines the cell under the finger.
123
+ if ((scene.family === 'vector' || scene.family === 'windbarb' || scene.family === 'networkgraph' || scene.family === 'packedbubble' || scene.family === 'treegraph' || scene.family === 'polygon' || scene.family === 'dendrogram' || scene.family === 'parallel' || scene.family === 'radar' || scene.family === 'bubble' || scene.family === 'scatter'))
124
+ for (const p of this.scene.observations) {
125
+ const h = p.hit;
126
+ if (!h || h.type !== 'circle' || h.radius <= 0)
127
+ continue;
128
+ for (let x = Math.max(0, Math.floor((h.cx - h.radius) / this.cellSize)); x <= Math.min(Math.floor(this.scene.width / this.cellSize), Math.floor((h.cx + h.radius) / this.cellSize)); x++)
129
+ for (let y = Math.max(0, Math.floor((h.cy - h.radius) / this.cellSize)); y <= Math.min(Math.floor(this.scene.height / this.cellSize), Math.floor((h.cy + h.radius) / this.cellSize)); y++) {
130
+ const key = x + ',' + y;
131
+ const points = this.hitCells.get(key) ?? [];
132
+ points.push(p);
133
+ this.hitCells.set(key, points);
134
+ }
135
+ }
136
+ }
137
+ get snapshot() { const shared = this.shared(); return Object.freeze({ active: this.active, selected: this.selected, scrubbing: this.scrubbing, ...(shared ? { shared } : {}), ...(this.pinned ? { pinned: true } : {}) }); }
138
+ /** Freeze the last displayed observation, dropping any queued exploration. No new haptic. */
139
+ setPinned(value) {
140
+ if (this.destroyed)
141
+ return false;
142
+ if (value === this.pinned)
143
+ return this.pinned;
144
+ if (value && !this.active)
145
+ return false;
146
+ this.cancelFrame();
147
+ this.pending = null;
148
+ this.scrubbing = false;
149
+ if (value)
150
+ this.selected = this.active.id;
151
+ this.pinned = value;
152
+ this.emit();
153
+ return this.pinned;
154
+ }
155
+ shared() {
156
+ const group = this.contentMode === 'shared' ? this.active?.group : undefined;
157
+ if (!group)
158
+ return undefined;
159
+ if (this.sharedCache?.key === group.key)
160
+ return this.sharedCache;
161
+ const points = Object.freeze((this.semanticGroups.get(group.key) ?? []).map(p => this.point(p.id))), bySeries = new Map(points.map(p => [p.id.seriesId, p]));
162
+ const order = new Map((this.scene.legend ?? this.scene.series).map((s, i) => [s.id, i]));
163
+ const series = this.scene.family === 'mixed' || this.scene.family === 'fan' ? [...this.scene.series].sort((a, b) => order.get(a.id) - order.get(b.id)) : this.scene.series;
164
+ return this.sharedCache = Object.freeze({ ...group, points, rows: Object.freeze(series.map(s => Object.freeze({ seriesId: s.id, name: s.name, color: s.color, point: bySeries.get(s.id) ?? null }))) });
165
+ }
166
+ /** Safe presentation revisions share immutable geometry and index order. */
167
+ updatePresentation(input) {
168
+ if (this.destroyed)
169
+ return false;
170
+ const scene = ownScene(input);
171
+ if (scene === this.currentScene)
172
+ return true;
173
+ if (sceneInteractionKey(scene) !== sceneInteractionKey(this.scene))
174
+ return false;
175
+ const id = this.active?.id;
176
+ this.currentScene = scene;
177
+ this.sharedCache = undefined;
178
+ this.active = id ? this.point(id) : null;
179
+ this.emit();
180
+ return true;
181
+ }
182
+ point(id) { const index = this.positions.get(identityKey(id)); return index === undefined ? null : this.scene.observations[index] ?? null; }
183
+ /** Repeating a tap closes the same observation; an exploration gesture never toggles it. */
184
+ tap(x, y, tolerance = 0) {
185
+ if (this.destroyed || this.pinned || !Number.isFinite(x) || !Number.isFinite(y))
186
+ return;
187
+ this.touchTolerance = Number.isFinite(tolerance) ? Math.max(0, Math.min(256, tolerance)) : 0;
188
+ const next = this.nearest(x, y);
189
+ const previous = this.selected ? this.point(this.selected) : null;
190
+ if (!this.scrubbing && next && previous && (this.contentMode === 'shared' ? next.group?.key === previous.group?.key : next.id.seriesId === previous.id.seriesId && next.id.pointId === previous.id.pointId)) {
191
+ this.clear();
192
+ return;
193
+ }
194
+ this.begin(x, y, tolerance);
195
+ this.end(true);
196
+ }
197
+ begin(x, y, tolerance = 0) {
198
+ if (this.destroyed || this.pinned || !Number.isFinite(x) || !Number.isFinite(y))
199
+ return;
200
+ this.cancelFrame();
201
+ this.pending = null;
202
+ this.scrubbing = true;
203
+ this.touchTolerance = Number.isFinite(tolerance) ? Math.max(0, Math.min(256, tolerance)) : 0;
204
+ this.setActive(this.nearest(x, y));
205
+ }
206
+ move(x, y) {
207
+ if (this.destroyed || this.pinned || !this.scrubbing || !Number.isFinite(x) || !Number.isFinite(y))
208
+ return;
209
+ if (this.pending) {
210
+ this.pending.x = x;
211
+ this.pending.y = y;
212
+ }
213
+ else
214
+ this.pending = { x, y };
215
+ if (this.frame === null)
216
+ this.frame = this.clock.request(() => {
217
+ this.frame = null;
218
+ this.flush();
219
+ });
220
+ }
221
+ end(commit) {
222
+ if (this.destroyed || this.pinned || !this.scrubbing)
223
+ return;
224
+ this.cancelFrame();
225
+ if (commit) {
226
+ this.flush();
227
+ this.selected = this.active?.id ?? null;
228
+ }
229
+ else {
230
+ this.pending = null;
231
+ this.active = this.selected ? this.point(this.selected) : null;
232
+ }
233
+ this.scrubbing = false;
234
+ this.emit();
235
+ }
236
+ get navigationPoints() {
237
+ return this.contentMode === 'shared' ? this.sharedOrder : this.scene.observations;
238
+ }
239
+ get navigationIndex() {
240
+ if (!this.active)
241
+ return undefined;
242
+ return this.contentMode === 'shared' ? this.groupPositions.get(this.active.group.key) : this.positions.get(identityKey(this.active.id));
243
+ }
244
+ /** The slider range counts navigation stops, including shared groups rather than their rows. */
245
+ get navigationRange() {
246
+ const max = this.navigationPoints.length;
247
+ return max ? { min: 1, max, now: (this.navigationIndex ?? 0) + 1 } : { min: 0, max: 0, now: 0 };
248
+ }
249
+ /** Native adjustable, keyboard and explicit buttons share the same datum model. */
250
+ step(direction) {
251
+ if (this.destroyed || this.pinned || this.scene.observations.length === 0)
252
+ return;
253
+ this.cancelFrame();
254
+ this.pending = null;
255
+ this.scrubbing = false;
256
+ const points = this.navigationPoints;
257
+ let index;
258
+ if (direction === 'first')
259
+ index = 0;
260
+ else if (direction === 'last')
261
+ index = points.length - 1;
262
+ else {
263
+ const current = this.navigationIndex ?? (direction === 1 ? -1 : points.length);
264
+ index = Math.max(0, Math.min(points.length - 1, current + direction));
265
+ }
266
+ const next = this.point(points[index].id);
267
+ this.selected = next.id;
268
+ this.setActive(next);
269
+ }
270
+ clear() {
271
+ if (this.destroyed)
272
+ return;
273
+ this.cancelFrame();
274
+ this.pending = null;
275
+ this.scrubbing = false;
276
+ this.pinned = false;
277
+ this.active = null;
278
+ this.selected = null;
279
+ this.emit();
280
+ }
281
+ destroy() {
282
+ if (this.destroyed)
283
+ return;
284
+ this.destroyed = true;
285
+ this.tiles?.destroy();
286
+ this.temporal?.destroy();
287
+ this.glyphCircles.clear();
288
+ this.glyphPoints = [];
289
+ this.pinned = false;
290
+ this.lastEmitted = undefined;
291
+ this.cancelFrame();
292
+ this.pending = null;
293
+ this.listener = null;
294
+ this.active = null;
295
+ this.selected = null;
296
+ this.hitCells.clear();
297
+ this.positions.clear();
298
+ this.semanticGroups.clear();
299
+ this.groupPositions.clear();
300
+ this.sharedCache = undefined;
301
+ }
302
+ cancelFrame() { if (this.frame !== null)
303
+ this.clock.cancel(this.frame); this.frame = null; }
304
+ flush() { const p = this.pending; this.pending = null; if (p && !this.destroyed)
305
+ this.setActive(this.nearest(p.x, p.y, true)); }
306
+ nearest(x, y, continuous = false) {
307
+ if (x < 0 || y < 0 || x > this.scene.width || y > this.scene.height)
308
+ return null;
309
+ if (this.pictorial) {
310
+ const hit = this.pictorial.pick(x, y);
311
+ return hit ? this.point(hit.point.id) : null;
312
+ }
313
+ if (this.heatmap) {
314
+ const hit = this.heatmap.pick(x, y);
315
+ return hit.type === 'known' ? this.point(hit.point.id) : continuous && hit.type === 'gap' ? this.active : null;
316
+ }
317
+ if (this.venn) {
318
+ const point = this.venn.pick(x, y);
319
+ return point ? this.point(point.id) : continuous ? this.active : null;
320
+ }
321
+ if (this.tilemap) {
322
+ const point = this.tilemap.pick(x, y);
323
+ return point ? this.point(point.id) : continuous && this.scene.family === 'wordcloud' ? this.active : null;
324
+ }
325
+ if (this.contours) {
326
+ const point = this.contours.pick(x, y, this.touchTolerance);
327
+ return point ? this.point(point.id) : (continuous ? this.active : null);
328
+ }
329
+ if (this.temporal)
330
+ return this.temporal.pick(x, y, this.touchTolerance) ?? (continuous ? this.active : null);
331
+ if (['sankey', 'treegraph', 'organization', 'networkgraph', 'packedbubble'].includes(this.scene.family)) {
332
+ const plot = this.scene.clip;
333
+ if (plot && (x < plot.x || x > plot.x + plot.width || y < plot.y || y > plot.y + plot.height))
334
+ return null;
335
+ }
336
+ if (this.scene.family === 'sunburst') {
337
+ let selected = null, deepest = -1;
338
+ for (const point of this.scene.observations) {
339
+ const hit = point.hit;
340
+ if (hit?.type !== 'sector' || hit.radius <= hit.innerRadius)
341
+ continue;
342
+ const radius = Math.hypot(x - hit.cx, y - hit.cy), angle = Math.atan2(x - hit.cx, hit.cy - y), delta = ((angle - hit.start) % (Math.PI * 2) + Math.PI * 2) % (Math.PI * 2);
343
+ if (radius >= hit.innerRadius && radius <= hit.radius && delta <= hit.end - hit.start + 1e-10 && hit.innerRadius > deepest) {
344
+ selected = point;
345
+ deepest = hit.innerRadius;
346
+ }
347
+ }
348
+ return selected;
349
+ }
350
+ if (this.scene.family === 'item') {
351
+ let selected = null, score = Infinity;
352
+ for (const series of this.scene.series)
353
+ for (const circle of series.circles ?? []) {
354
+ if (circle.pointId === undefined)
355
+ continue;
356
+ const distance = (x - circle.cx) ** 2 + (y - circle.cy) ** 2, radius = Math.max(circle.radius, this.touchTolerance);
357
+ if (distance <= radius * radius && distance < score) {
358
+ selected = { seriesId: series.id, pointId: circle.pointId };
359
+ score = distance;
360
+ }
361
+ }
362
+ return selected ? this.point(selected) : null;
363
+ }
364
+ if (this.scene.family === 'lollipop' || this.scene.family === 'dumbbell')
365
+ return this.nearestGlyph(x, y);
366
+ if (this.tiles)
367
+ return this.tiles.pick(x, y);
368
+ if (this.relationships)
369
+ return this.relationships.pick(x, y, this.touchTolerance) ?? (continuous ? this.active : null);
370
+ if (this.scene.family === 'sankey')
371
+ return sankeyObservation(this.scene.observations, x, y) ?? (continuous ? this.active : null);
372
+ if (this.scene.family === 'funnel' || this.scene.family === 'pyramid')
373
+ return polygonObservation(this.scene.observations, x, y);
374
+ if ((this.scene.family === 'vector' || this.scene.family === 'windbarb' || this.scene.family === 'networkgraph' || this.scene.family === 'packedbubble' || this.scene.family === 'treegraph' || this.scene.family === 'polygon' || this.scene.family === 'dendrogram' || this.scene.family === 'parallel' || this.scene.family === 'radar' || this.scene.family === 'bubble' || this.scene.family === 'scatter')) {
375
+ const candidates = new Set();
376
+ for (let cx = Math.floor((x - this.touchTolerance) / this.cellSize); cx <= Math.floor((x + this.touchTolerance) / this.cellSize); cx++)
377
+ for (let cy = Math.floor((y - this.touchTolerance) / this.cellSize); cy <= Math.floor((y + this.touchTolerance) / this.cellSize); cy++)
378
+ for (const p of this.hitCells.get(cx + ',' + cy) ?? [])
379
+ candidates.add(p);
380
+ let best = null, score = Infinity;
381
+ for (const p of candidates) {
382
+ const h = p.hit;
383
+ if (h.type !== 'circle')
384
+ continue;
385
+ const distance = (x - h.cx) ** 2 + (y - h.cy) ** 2;
386
+ if (distance <= Math.max(h.radius, this.touchTolerance) ** 2 && distance < score) {
387
+ best = p;
388
+ score = distance;
389
+ }
390
+ }
391
+ return best ? this.point(best.id) : null;
392
+ }
393
+ if (this.annular) {
394
+ const point = this.annular.pick(x, y);
395
+ return point ? this.point(point.id) : null;
396
+ }
397
+ if (this.radial.length) {
398
+ // Shared-frame sectors allow a binary angular lookup, independent of the slice count.
399
+ const first = this.radial[0], h = first.hit;
400
+ if (h.type !== 'sector')
401
+ return null;
402
+ const radius = Math.hypot(x - h.cx, y - h.cy), angle = (Math.atan2(x - h.cx, h.cy - y) + Math.PI * 2) % (Math.PI * 2);
403
+ const position = this.radialOrigin + (angle - this.radialPhase + Math.PI * 2) % (Math.PI * 2);
404
+ let low = 0, high = this.radial.length;
405
+ while (low < high) {
406
+ const mid = (low + high) >>> 1;
407
+ const region = this.radial[mid].hit;
408
+ if (region.type === 'sector' && region.start <= position)
409
+ low = mid + 1;
410
+ else
411
+ high = mid;
412
+ }
413
+ const point = this.radial[Math.max(0, low - 1)], region = point.hit;
414
+ if (region.type === 'sector') {
415
+ const relative = position - region.start;
416
+ return radius >= region.innerRadius && radius <= region.radius && relative >= -1e-10 && relative <= region.end - region.start + 1e-10 ? this.point(point.id) : null;
417
+ }
418
+ return null;
419
+ }
420
+ if (['variablepie', 'polar', 'pie', 'donut', 'gauge'].includes(this.scene.family))
421
+ return null;
422
+ if (this.groups.length === 0)
423
+ return null;
424
+ const target = this.scene.family === 'bar' ? y : x;
425
+ let low = 0, high = this.groups.length;
426
+ while (low < high) {
427
+ const mid = (low + high) >>> 1;
428
+ if (this.groups[mid].coordinate < target)
429
+ low = mid + 1;
430
+ else
431
+ high = mid;
432
+ }
433
+ const left = this.groups[Math.max(0, low - 1)];
434
+ const right = this.groups[Math.min(low, this.groups.length - 1)];
435
+ const group = Math.abs(target - left.coordinate) <= Math.abs(target - right.coordinate) ? left : right;
436
+ if (this.scene.stackGroups || this.scene.family === 'columnrange' || this.scene.family === 'boxplot' || this.scene.family === 'errorbar' || this.scene.family === 'columnpyramid') {
437
+ const precise = polygonObservation(left.points, x, y) ?? (left === right ? null : polygonObservation(right.points, x, y));
438
+ // Taps require a painted target. Continuous exploration follows the nearest
439
+ // semantic group through the whitespace between boxes/ranges instead of
440
+ // destroying and recreating the tooltip at every gap.
441
+ if (precise || !continuous)
442
+ return precise;
443
+ }
444
+ const other = this.scene.family === 'bar' ? x : y;
445
+ if (this.contentMode === 'shared')
446
+ return this.semanticGroups.get(group.points[0].group.key)?.[0] ?? null;
447
+ return group.points.reduce((best, p) => {
448
+ const distance = Math.abs((this.scene.family === 'bar' ? p.x : p.y) - other), current = Math.abs((this.scene.family === 'bar' ? best.x : best.y) - other);
449
+ // Supplied bands paint below scalar lines. At the same anchor, touch the
450
+ // visible line rather than the interval's compatible midpoint. Semantic
451
+ // navigation order and shared-tooltip grouping remain source ordered.
452
+ if (this.scene.mixedRanges && Math.abs(distance - current) <= Math.max(1, this.scene.height) * 1e-10) {
453
+ // Treat rounding noise symmetrically: a later interval cannot displace
454
+ // a scalar already chosen at the same visible anchor.
455
+ return p.lowValue === undefined ? p : best;
456
+ }
457
+ return distance < current ? p : best;
458
+ });
459
+ }
460
+ nearestGlyph(x, y) {
461
+ const reach = Math.max(this.maximumGlyphRadius, this.touchTolerance), points = this.glyphPoints;
462
+ let low = 0, high = points.length;
463
+ while (low < high) {
464
+ const mid = (low + high) >>> 1;
465
+ if (points[mid].x < x - reach)
466
+ low = mid + 1;
467
+ else
468
+ high = mid;
469
+ }
470
+ let best = null, score = Infinity;
471
+ for (let i = low; i < points.length && points[i].x <= x + reach; i++) {
472
+ const point = points[i];
473
+ for (const circle of this.glyphCircles.get(identityKey(point.id)) ?? []) {
474
+ const distance = (x - circle.cx) ** 2 + (y - circle.cy) ** 2, radius = Math.max(circle.radius, this.touchTolerance);
475
+ if (distance <= radius * radius && distance < score) {
476
+ best = point;
477
+ score = distance;
478
+ }
479
+ }
480
+ const stem = point.stem;
481
+ if (stem) {
482
+ const first = Math.min(stem.startY, stem.endY), last = Math.max(stem.startY, stem.endY), dy = y < first ? first - y : y > last ? y - last : 0, distance = (x - stem.x) ** 2 + dy * dy, radius = Math.max(1, this.touchTolerance);
483
+ if (distance <= radius * radius && distance < score) {
484
+ best = point;
485
+ score = distance;
486
+ }
487
+ }
488
+ }
489
+ return best;
490
+ }
491
+ setActive(point) {
492
+ if (point !== this.active)
493
+ point = point ? this.point(point.id) : null;
494
+ const changed = this.contentMode === 'shared' ? point?.group?.key !== this.active?.group?.key : point !== this.active;
495
+ this.active = point;
496
+ const hapticState = this.hapticState;
497
+ if (changed && point && !hapticState.busy) {
498
+ try {
499
+ if (this.haptics.allowed()) {
500
+ hapticState.busy = true;
501
+ // A stalled platform promise may outlive the chart. Its completion
502
+ // needs only this gate, never the session or its component owner.
503
+ void Promise.resolve(this.haptics.selection()).catch(() => { }).finally(() => { hapticState.busy = false; });
504
+ }
505
+ }
506
+ catch {
507
+ hapticState.busy = false;
508
+ }
509
+ }
510
+ this.emit();
511
+ }
512
+ emit() {
513
+ if (!this.listener)
514
+ return;
515
+ const previous = this.lastEmitted, shared = this.shared();
516
+ if (previous && previous.active === this.active && previous.selected === this.selected && previous.scrubbing === this.scrubbing && !!previous.pinned === this.pinned && previous.shared === shared)
517
+ return;
518
+ const next = this.snapshot;
519
+ this.lastEmitted = next;
520
+ this.listener(next);
521
+ }
522
+ }
523
+ //# sourceMappingURL=interaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"interaction.js","sourceRoot":"","sources":["../../src/library/interaction.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import type { NativeMarkerShape, NativeMarkerStyle } from './contracts.js';
2
+ export type ResolvedMarkerStyle = Readonly<{
3
+ shape: NativeMarkerShape;
4
+ fillColor: string | undefined;
5
+ borderColor: string | undefined;
6
+ borderWidth: number;
7
+ }>;
8
+ /** Constant-size presentation validation. It never projects data or changes hit targets. */
9
+ export declare function resolveMarkerStyle(input: NativeMarkerStyle | undefined): ResolvedMarkerStyle;
10
+ export declare function sameMarkerStyle(a: ResolvedMarkerStyle, b: ResolvedMarkerStyle): boolean;
11
+ /** Geometry here is the display symbol around an already projected point. */
12
+ export declare function markerSvg(x: number, y: number, diameter: number, pointColor: string, style: ResolvedMarkerStyle): string;
13
+ /** Bounded point clouds keep every source symbol while batching by paint, not by SVG node. */
14
+ export declare function markerBatchSvg(points: readonly Readonly<{
15
+ x: number;
16
+ y: number;
17
+ color: string;
18
+ }>[], transform: Readonly<{
19
+ x: number;
20
+ y: number;
21
+ sx: number;
22
+ sy: number;
23
+ }>, diameter: number, style: ResolvedMarkerStyle): string;
24
+ //# sourceMappingURL=marker-style.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"marker-style.d.ts","sourceRoot":"","sources":["../../src/library/marker-style.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,iBAAiB,EAAC,iBAAiB,EAAC,MAAM,gBAAgB,CAAC;AAExE,MAAM,MAAM,mBAAmB,GAAC,QAAQ,CAAC;IAAC,KAAK,EAAC,iBAAiB,CAAC;IAAA,SAAS,EAAC,MAAM,GAAC,SAAS,CAAC;IAAA,WAAW,EAAC,MAAM,GAAC,SAAS,CAAC;IAAA,WAAW,EAAC,MAAM,CAAA;CAAC,CAAC,CAAC;AAI/I,4FAA4F;AAC5F,wBAAgB,kBAAkB,CAAC,KAAK,EAAC,iBAAiB,GAAC,SAAS,GAAE,mBAAmB,CASxF;AACD,wBAAgB,eAAe,CAAC,CAAC,EAAC,mBAAmB,EAAC,CAAC,EAAC,mBAAmB,GAAE,OAAO,CAEnF;AACD,6EAA6E;AAC7E,wBAAgB,SAAS,CAAC,CAAC,EAAC,MAAM,EAAC,CAAC,EAAC,MAAM,EAAC,QAAQ,EAAC,MAAM,EAAC,UAAU,EAAC,MAAM,EAAC,KAAK,EAAC,mBAAmB,GAAE,MAAM,CAM9G;AAED,8FAA8F;AAC9F,wBAAgB,cAAc,CAAC,MAAM,EAAC,SAAS,QAAQ,CAAC;IAAC,CAAC,EAAC,MAAM,CAAC;IAAA,CAAC,EAAC,MAAM,CAAC;IAAA,KAAK,EAAC,MAAM,CAAA;CAAC,CAAC,EAAE,EAAC,SAAS,EAAC,QAAQ,CAAC;IAAC,CAAC,EAAC,MAAM,CAAC;IAAA,CAAC,EAAC,MAAM,CAAC;IAAA,EAAE,EAAC,MAAM,CAAC;IAAA,EAAE,EAAC,MAAM,CAAA;CAAC,CAAC,EAAC,QAAQ,EAAC,MAAM,EAAC,KAAK,EAAC,mBAAmB,GAAE,MAAM,CAOxM"}