@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,31 @@
1
+ import { DestroyRef, Injectable, inject, signal, untracked } from '@angular/core';
2
+ import { AppState } from '@ng-native/device';
3
+ import * as i0 from "@angular/core";
4
+ /** Use Angular Native's platform source, shared by all chart instances. */
5
+ export const CHART_ACTIVITY_ENVIRONMENT = AppState.SOURCE;
6
+ export class ChartActivity {
7
+ source = inject(CHART_ACTIVITY_ENVIRONMENT);
8
+ value = signal(this.source.current() === 'active', /* @ts-ignore */
9
+ ...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
10
+ listeners = new Set();
11
+ active = this.value.asReadonly();
12
+ onSuspend(listener) { this.listeners.add(listener); return () => { this.listeners.delete(listener); }; }
13
+ constructor() {
14
+ const unsubscribe = this.source.subscribe(status => {
15
+ const active = status === 'active', suspending = this.value() && !active;
16
+ this.value.set(active);
17
+ // Native may stop rendering frames before an Angular effect can run.
18
+ if (suspending)
19
+ untracked(() => { for (const listener of this.listeners)
20
+ listener(); });
21
+ });
22
+ inject(DestroyRef).onDestroy(() => { unsubscribe(); this.listeners.clear(); });
23
+ }
24
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.3", ngImport: i0, type: ChartActivity, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
25
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.2.3", ngImport: i0, type: ChartActivity, providedIn: 'root' });
26
+ }
27
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.3", ngImport: i0, type: ChartActivity, decorators: [{
28
+ type: Injectable,
29
+ args: [{ providedIn: 'root' }]
30
+ }], ctorParameters: () => [] });
31
+ //# sourceMappingURL=activity.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activity.js","sourceRoot":"","sources":["../../src/native/activity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,UAAU,EAAC,UAAU,EAAC,MAAM,EAAC,MAAM,EAAC,SAAS,EAAC,MAAM,eAAe,CAAC;AAC5E,OAAO,EAAC,QAAQ,EAAC,MAAM,mBAAmB,CAAC;;AAE3C,2EAA2E;AAC3E,MAAM,CAAC,MAAM,0BAA0B,GAAC,QAAQ,CAAC,MAAM,CAAC;AAExD,MAAM,OAAO,aAAa;IACP,MAAM,GAAC,MAAM,CAAC,0BAA0B,CAAC,CAAC;IAC1C,KAAK,GAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,KAAG,QAAQ;8EAAC,CAAC;IAC/C,SAAS,GAAC,IAAI,GAAG,EAAY,CAAC;IACtC,MAAM,GAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;IACxC,SAAS,CAAC,QAAiB,IAAW,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAA,OAAO,GAAE,EAAE,GAAC,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAA,CAAC,CAAC,CAAA,CAAC;IAClH;QACE,MAAM,WAAW,GAAC,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,MAAM,CAAA,EAAE;YAC9C,MAAM,MAAM,GAAC,MAAM,KAAG,QAAQ,EAAC,UAAU,GAAC,IAAI,CAAC,KAAK,EAAE,IAAE,CAAC,MAAM,CAAC;YAChE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;YACvB,qEAAqE;YACrE,IAAG,UAAU;gBAAC,SAAS,CAAC,GAAE,EAAE,GAAC,KAAI,MAAM,QAAQ,IAAI,IAAI,CAAC,SAAS;oBAAC,QAAQ,EAAE,CAAC,CAAA,CAAC,CAAC,CAAC;QAClF,CAAC,CAAC,CAAC;QACH,MAAM,CAAC,UAAU,CAAC,CAAC,SAAS,CAAC,GAAE,EAAE,GAAC,WAAW,EAAE,CAAC,CAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC,CAAA,CAAC,CAAC,CAAC;IAC5E,CAAC;uGAdU,aAAa;2GAAb,aAAa,cADF,MAAM;;2FACjB,aAAa;kBADzB,UAAU;mBAAC,EAAC,UAAU,EAAC,MAAM,EAAC"}
@@ -0,0 +1,4 @@
1
+ import type { NativeScene } from '../library/contracts.js';
2
+ /** Consume Core labels as supplied. Never manufacture a second tick/layout engine. */
3
+ export declare function barCategoryLabels(scene: NativeScene): readonly import("./index.js").NativeCategoryLabel[];
4
+ //# sourceMappingURL=bar-labels.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bar-labels.d.ts","sourceRoot":"","sources":["../../src/native/bar-labels.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,yBAAyB,CAAC;AAEzD,sFAAsF;AACtF,wBAAgB,iBAAiB,CAAC,KAAK,EAAC,WAAW,uDAUlD"}
@@ -0,0 +1,16 @@
1
+ /** Consume Core labels as supplied. Never manufacture a second tick/layout engine. */
2
+ export function barCategoryLabels(scene) {
3
+ if (scene.yLabels)
4
+ return scene.yLabels;
5
+ const labels = new Map();
6
+ for (const p of scene.observations) {
7
+ if (!labels.has(p.id.pointId))
8
+ labels.set(p.id.pointId, { id: p.id.pointId, y: p.y, label: p.label });
9
+ // Dense consumers must supply bounded Core-projected labels. Keep all data available
10
+ // for touch/accessible navigation instead of mounting thousands of native Text views.
11
+ if (labels.size > 64)
12
+ return [];
13
+ }
14
+ return [...labels.values()];
15
+ }
16
+ //# sourceMappingURL=bar-labels.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bar-labels.js","sourceRoot":"","sources":["../../src/native/bar-labels.ts"],"names":[],"mappings":"AAEA,sFAAsF;AACtF,MAAM,UAAU,iBAAiB,CAAC,KAAiB;IACjD,IAAG,KAAK,CAAC,OAAO;QAAC,OAAO,KAAK,CAAC,OAAO,CAAC;IACtC,MAAM,MAAM,GAAC,IAAI,GAAG,EAA4C,CAAC;IACjE,KAAI,MAAM,CAAC,IAAI,KAAK,CAAC,YAAY,EAAC,CAAC;QACjC,IAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC;YAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,OAAO,EAAC,EAAC,EAAE,EAAC,CAAC,CAAC,EAAE,CAAC,OAAO,EAAC,CAAC,EAAC,CAAC,CAAC,CAAC,EAAC,KAAK,EAAC,CAAC,CAAC,KAAK,EAAC,CAAC,CAAC;QAC5F,qFAAqF;QACrF,sFAAsF;QACtF,IAAG,MAAM,CAAC,IAAI,GAAC,EAAE;YAAC,OAAO,EAAE,CAAC;IAC9B,CAAC;IACD,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,CAAC;AAC9B,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { NativeScene } from '../library/contracts.js';
2
+ export interface BubbleEntranceItem {
3
+ readonly id: string;
4
+ readonly left: number;
5
+ readonly top: number;
6
+ readonly size: number;
7
+ readonly drawing: string;
8
+ }
9
+ export declare function hasBubbleEntrance(scene: NativeScene): boolean;
10
+ /** Bounded presentation views; centres and radii remain the Core's projection. */
11
+ export declare function bubbleEntrance(scene: NativeScene, viewport: Readonly<{
12
+ width: number;
13
+ height: number;
14
+ }>): readonly BubbleEntranceItem[] | undefined;
15
+ //# sourceMappingURL=bubble-entrance.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bubble-entrance.d.ts","sourceRoot":"","sources":["../../src/native/bubble-entrance.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,yBAAyB,CAAC;AAIzD,MAAM,WAAW,kBAAkB;IACjC,QAAQ,CAAC,EAAE,EAAC,MAAM,CAAC;IAAA,QAAQ,CAAC,IAAI,EAAC,MAAM,CAAC;IAAA,QAAQ,CAAC,GAAG,EAAC,MAAM,CAAC;IAAA,QAAQ,CAAC,IAAI,EAAC,MAAM,CAAC;IAAA,QAAQ,CAAC,OAAO,EAAC,MAAM,CAAC;CAC1G;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAC,WAAW,GAAE,OAAO,CAK3D;AAED,kFAAkF;AAClF,wBAAgB,cAAc,CAAC,KAAK,EAAC,WAAW,EAAC,QAAQ,EAAC,QAAQ,CAAC;IAAC,KAAK,EAAC,MAAM,CAAC;IAAA,MAAM,EAAC,MAAM,CAAA;CAAC,CAAC,GAAE,SAAS,kBAAkB,EAAE,GAAC,SAAS,CAWxI"}
@@ -0,0 +1,27 @@
1
+ import { sceneTransform } from '../library/scene.js';
2
+ import { pointOverrideColor } from '../library/scene-paint.js';
3
+ export function hasBubbleEntrance(scene) {
4
+ if (scene.family !== 'bubble' && scene.family !== 'scatter' && scene.family !== 'packedbubble')
5
+ return false;
6
+ // Dense scenes retain one batched drawing rather than allocating a view per datum.
7
+ if (scene.series.some(series => series.path || series.bars?.length) || scene.series.reduce((n, series) => n + (series.circles?.length ?? 0), 0) > 32)
8
+ return false;
9
+ return scene.series.some(series => series.circles?.some(circle => circle.radius > 0));
10
+ }
11
+ /** Bounded presentation views; centres and radii remain the Core's projection. */
12
+ export function bubbleEntrance(scene, viewport) {
13
+ if (!hasBubbleEntrance(scene))
14
+ return undefined;
15
+ const t = sceneTransform(scene, viewport), items = [];
16
+ for (const series of scene.series)
17
+ for (const [index, circle] of (series.circles ?? []).entries()) {
18
+ if (circle.radius <= 0)
19
+ continue;
20
+ const radius = circle.radius * t.sx, stroke = 2 * t.sx, half = radius + stroke / 2 + 1, size = half * 2;
21
+ const color = circle.pointId === undefined ? series.color : pointOverrideColor(scene, { seriesId: series.id, pointId: circle.pointId }) ?? series.color;
22
+ items.push({ id: JSON.stringify([series.id, circle.pointId === undefined ? { index } : { id: circle.pointId }]), left: t.x + circle.cx * t.sx - half, top: t.y + circle.cy * t.sy - half, size,
23
+ drawing: `<svg xmlns="http://www.w3.org/2000/svg" width="${size}" height="${size}" viewBox="0 0 ${size} ${size}"><circle cx="${half}" cy="${half}" r="${radius}" fill="${color}" fill-opacity="0.64" stroke="${color}" stroke-width="${stroke}"/></svg>` });
24
+ }
25
+ return items.length ? items : undefined;
26
+ }
27
+ //# sourceMappingURL=bubble-entrance.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bubble-entrance.js","sourceRoot":"","sources":["../../src/native/bubble-entrance.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ import { controlAccessibilityState } from './control-accessibility.js';
2
+ import type { InteractionSnapshot } from '../library/contracts.js';
3
+ import type { NativeChartDiagnostic, NativeViewportChange } from './data-options.js';
4
+ import type { NativeChartDrilldownData, NativeChartDrilldownDiagnostic, NativeChartDrilldownInteraction, NativeChartDrilldownNavigation, NativeChartDrilldownOptionsByType } from './drilldown-options.js';
5
+ import { type DrilldownGeneration } from './drilldown-state.js';
6
+ import * as i0 from "@angular/core";
7
+ /** One actual chart at a time. Navigation is an explicit native action; point
8
+ * exploration, scrubbing and observation Next never enter a detail implicitly. */
9
+ export declare class NativeChartDrilldown<T extends NativeChartDrilldownData = NativeChartDrilldownData> {
10
+ protected readonly controlAccessibilityState: typeof controlAccessibilityState;
11
+ readonly data: import("@angular/core").InputSignal<T>;
12
+ readonly options: import("@angular/core").InputSignal<Readonly<{
13
+ appearance?: Readonly<{
14
+ locale?: "en" | "es";
15
+ theme?: "light" | "dark" | "system";
16
+ }>;
17
+ animation?: import("./data-options.js").NativeAnimationOptions;
18
+ interaction?: Pick<import("./data-options.js").NativeInteractionOptions, "haptics" | "selectionControls">;
19
+ nodes?: { readonly [N in NoInfer<T>["nodes"][number] as N["id"]]?: NativeChartDrilldownOptionsByType[N["data"]["type"]] | undefined; } | undefined;
20
+ }>>;
21
+ readonly navigationChange: import("@angular/core").OutputEmitterRef<NativeChartDrilldownNavigation>;
22
+ readonly interactionChange: import("@angular/core").OutputEmitterRef<NativeChartDrilldownInteraction>;
23
+ readonly planningError: import("@angular/core").OutputEmitterRef<NativeChartDrilldownDiagnostic>;
24
+ private readonly scheme;
25
+ private readonly prepared;
26
+ private readonly state;
27
+ private readonly generation;
28
+ private readonly activationView;
29
+ protected readonly visibility: import("@angular/core").WritableSignal<readonly string[]>;
30
+ private readonly selection;
31
+ readonly diagnostic: import("@angular/core").Signal<NativeChartDrilldownDiagnostic | null>;
32
+ readonly trail: import("@angular/core").Signal<readonly string[]>;
33
+ readonly nodeId: import("@angular/core").Signal<string | null>;
34
+ protected readonly english: import("@angular/core").Signal<boolean>;
35
+ private readonly dark;
36
+ protected readonly ink: import("@angular/core").Signal<"#E7EEF9" | "#182331">;
37
+ protected readonly controlColor: import("@angular/core").Signal<"#202E42" | "#EDF2F8">;
38
+ protected readonly trailLabel: import("@angular/core").Signal<string>;
39
+ protected readonly destination: import("@angular/core").Signal<string | undefined>;
40
+ protected readonly render: import("@angular/core").Signal<{
41
+ token: DrilldownGeneration;
42
+ data: import("./drilldown-options.js").NativeChartDrilldownChartData;
43
+ options: import("./data-options.js").NativeChartOptionGroups<"column"> | import("./data-options.js").NativeChartOptionGroups<"pie"> | import("./data-options.js").NativeChartOptionGroups<"donut"> | import("./data-options.js").NativeChartOptionGroups<"treemap"> | import("./data-options.js").NativeChartOptionGroups<"sunburst"> | import("./data-options.js").NativeChartOptionGroups<"treegraph"> | import("./data-options.js").NativeChartOptionGroups<"organization">;
44
+ }[]>;
45
+ constructor();
46
+ private accepts;
47
+ protected interact(token: DrilldownGeneration, snapshot: InteractionSnapshot): void;
48
+ protected changeVisibility(token: DrilldownGeneration, ids: readonly string[]): void;
49
+ protected changeViewport(token: DrilldownGeneration, event: NativeViewportChange): void;
50
+ protected childError(token: DrilldownGeneration, diagnostic: NativeChartDiagnostic): void;
51
+ enter(): void;
52
+ back(): void;
53
+ private navigate;
54
+ static ɵfac: i0.ɵɵFactoryDeclaration<NativeChartDrilldown<any>, never>;
55
+ static ɵcmp: i0.ɵɵComponentDeclaration<NativeChartDrilldown<any>, "neu-c-drilldown, nc-chart-drilldown", never, { "data": { "alias": "data"; "required": true; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; }, { "navigationChange": "navigationChange"; "interactionChange": "interactionChange"; "planningError": "planningError"; }, never, never, true, never>;
56
+ }
57
+ //# sourceMappingURL=chart-drilldown.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chart-drilldown.d.ts","sourceRoot":"","sources":["../../src/native/chart-drilldown.ts"],"names":[],"mappings":"AACA,OAAO,EAAC,yBAAyB,EAAC,MAAM,4BAA4B,CAAC;AAIrE,OAAO,KAAK,EAAC,mBAAmB,EAAC,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAC,qBAAqB,EAAC,oBAAoB,EAAC,MAAM,mBAAmB,CAAC;AAClF,OAAO,KAAK,EAAC,wBAAwB,EAAC,8BAA8B,EAAC,+BAA+B,EAAC,8BAA8B,EAA6B,iCAAiC,EAAC,MAAM,wBAAwB,CAAC;AACjO,OAAO,EAAkM,KAAK,mBAAmB,EAA6C,MAAM,sBAAsB,CAAC;;AAE3S;kFACkF;AAClF,qBAca,oBAAoB,CAAC,CAAC,SAAS,wBAAwB,GAAC,wBAAwB;IAC5F,SAAS,CAAC,QAAQ,CAAC,yBAAyB,mCAA2B;IACvE,QAAQ,CAAC,IAAI,yCAAqB;IAClC,QAAQ,CAAC,OAAO;;kBAZ2E,CAAC;iBAAgB,CAAC;;;;;QAYzC;IACpE,QAAQ,CAAC,gBAAgB,2EAA0C;IACnE,QAAQ,CAAC,iBAAiB,4EAA2C;IACrE,QAAQ,CAAC,aAAa,2EAA0C;IAChE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqB;IAC5C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA6D;IACtF,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA6P;IACnR,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA8C;IAGzE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAuJ;IACtL,SAAS,CAAC,QAAQ,CAAC,UAAU,4DAA6G;IAC1I,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuC;IACjE,QAAQ,CAAC,UAAU,wEAAkG;IACrH,QAAQ,CAAC,KAAK,oDAAuC;IACrD,QAAQ,CAAC,MAAM,gDAAyF;IACxG,SAAS,CAAC,QAAQ,CAAC,OAAO,0CAAwD;IAClF,OAAO,CAAC,QAAQ,CAAC,IAAI,CAA+I;IACpK,SAAS,CAAC,QAAQ,CAAC,GAAG,wDAA+C;IACrE,SAAS,CAAC,QAAQ,CAAC,YAAY,wDAA+C;IAC9E,SAAS,CAAC,QAAQ,CAAC,UAAU,yCAAmI;IAChK,SAAS,CAAC,QAAQ,CAAC,WAAW,qDAA8I;IAC5K,SAAS,CAAC,QAAQ,CAAC,MAAM;;;;SAKtB;;IAEH,OAAO,CAAC,OAAO;IACf,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAC,mBAAmB,EAAC,QAAQ,EAAC,mBAAmB,GAAE,IAAI;IAK/E,SAAS,CAAC,gBAAgB,CAAC,KAAK,EAAC,mBAAmB,EAAC,GAAG,EAAC,SAAS,MAAM,EAAE,GAAE,IAAI;IAKhF,SAAS,CAAC,cAAc,CAAC,KAAK,EAAC,mBAAmB,EAAC,KAAK,EAAC,oBAAoB,GAAE,IAAI;IAInF,SAAS,CAAC,UAAU,CAAC,KAAK,EAAC,mBAAmB,EAAC,UAAU,EAAC,qBAAqB,GAAE,IAAI;IACrF,KAAK,IAAG,IAAI;IACZ,IAAI,IAAG,IAAI;IACX,OAAO,CAAC,QAAQ;yCAlDJ,oBAAoB;2CAApB,oBAAoB;CAsDhC"}
@@ -0,0 +1,118 @@
1
+ import { Component, computed, effect, inject, input, linkedSignal, output, signal, untracked } from '@angular/core';
2
+ import { controlAccessibilityState } from './control-accessibility.js';
3
+ import { Pressable, Text, View } from '@ng-native/components';
4
+ import { ColorScheme } from '@ng-native/device';
5
+ import { NativeDataChart } from './data-chart.js';
6
+ import { backDrilldown, createDrilldownState, currentDrilldownNode, drilldownDestination, drilldownGeneration, enterDrilldown, ownDrilldownGraph, reconcileDrilldown, rememberDrilldownView, restoredDrilldownView } from './drilldown-state.js';
7
+ import * as i0 from "@angular/core";
8
+ /** One actual chart at a time. Navigation is an explicit native action; point
9
+ * exploration, scrubbing and observation Next never enter a detail implicitly. */
10
+ export class NativeChartDrilldown {
11
+ controlAccessibilityState = controlAccessibilityState;
12
+ data = input.required(/* @ts-ignore */
13
+ ...(ngDevMode ? [{ debugName: "data" }] : /* istanbul ignore next */ []));
14
+ options = input({}, /* @ts-ignore */
15
+ ...(ngDevMode ? [{ debugName: "options" }] : /* istanbul ignore next */ []));
16
+ navigationChange = output();
17
+ interactionChange = output();
18
+ planningError = output();
19
+ scheme = inject(ColorScheme);
20
+ prepared = computed(() => ownDrilldownGraph(this.data(), this.options()), /* @ts-ignore */
21
+ ...(ngDevMode ? [{ debugName: "prepared" }] : /* istanbul ignore next */ []));
22
+ state = linkedSignal({ ...(ngDevMode ? { debugName: "state" } : /* istanbul ignore next */ {}), source: this.prepared, computation: (result, previous) => result.status === 'invalid' ? null : previous?.value ? reconcileDrilldown(previous.value, result.value) : createDrilldownState(result.value) });
23
+ generation = computed(() => this.state()?.generation ?? null, /* @ts-ignore */
24
+ ...(ngDevMode ? [{ debugName: "generation" }] : /* istanbul ignore next */ []));
25
+ // Restore only when entering/re-entering a node. Live viewport events must
26
+ // never rewrite initial options and reset their own current gesture window.
27
+ activationView = linkedSignal({ ...(ngDevMode ? { debugName: "activationView" } : /* istanbul ignore next */ {}), source: this.generation, computation: () => untracked(() => { const state = this.state(); return state ? restoredDrilldownView(state) : undefined; }) });
28
+ visibility = linkedSignal(() => { this.generation(); return this.activationView()?.hiddenSeriesIds ?? []; }, /* @ts-ignore */
29
+ ...(ngDevMode ? [{ debugName: "visibility" }] : /* istanbul ignore next */ []));
30
+ selection = signal(null, /* @ts-ignore */
31
+ ...(ngDevMode ? [{ debugName: "selection" }] : /* istanbul ignore next */ []));
32
+ diagnostic = computed(() => { const result = this.prepared(); return result.status === 'invalid' ? result.error : null; }, /* @ts-ignore */
33
+ ...(ngDevMode ? [{ debugName: "diagnostic" }] : /* istanbul ignore next */ []));
34
+ trail = computed(() => this.state()?.trail ?? [], /* @ts-ignore */
35
+ ...(ngDevMode ? [{ debugName: "trail" }] : /* istanbul ignore next */ []));
36
+ nodeId = computed(() => { const state = this.state(); return state ? currentDrilldownNode(state) : null; }, /* @ts-ignore */
37
+ ...(ngDevMode ? [{ debugName: "nodeId" }] : /* istanbul ignore next */ []));
38
+ english = computed(() => this.options().appearance?.locale === 'en', /* @ts-ignore */
39
+ ...(ngDevMode ? [{ debugName: "english" }] : /* istanbul ignore next */ []));
40
+ dark = computed(() => { const theme = this.options().appearance?.theme ?? 'system'; return theme === 'system' ? this.scheme.current() === 'dark' : theme === 'dark'; }, /* @ts-ignore */
41
+ ...(ngDevMode ? [{ debugName: "dark" }] : /* istanbul ignore next */ []));
42
+ ink = computed(() => this.dark() ? '#E7EEF9' : '#182331', /* @ts-ignore */
43
+ ...(ngDevMode ? [{ debugName: "ink" }] : /* istanbul ignore next */ []));
44
+ controlColor = computed(() => this.dark() ? '#202E42' : '#EDF2F8', /* @ts-ignore */
45
+ ...(ngDevMode ? [{ debugName: "controlColor" }] : /* istanbul ignore next */ []));
46
+ trailLabel = computed(() => { const state = this.state(); return state ? state.trail.map(id => state.graph.options.get(id)?.title ?? id).join(' / ') : ''; }, /* @ts-ignore */
47
+ ...(ngDevMode ? [{ debugName: "trailLabel" }] : /* istanbul ignore next */ []));
48
+ destination = computed(() => { const state = this.state(), selection = this.selection(); return state && selection ? drilldownDestination(state, selection) : undefined; }, /* @ts-ignore */
49
+ ...(ngDevMode ? [{ debugName: "destination" }] : /* istanbul ignore next */ []));
50
+ render = computed(() => {
51
+ const state = this.state();
52
+ if (!state)
53
+ return [];
54
+ const nodeId = currentDrilldownNode(state), node = state.graph.nodes.get(nodeId), settings = state.graph.options.get(nodeId), view = this.activationView();
55
+ const options = { ...settings, ...(settings.viewport && view?.viewport ? { viewport: { ...settings.viewport, initial: view.viewport } } : {}) };
56
+ return [{ token: drilldownGeneration(state), data: node.data, options }];
57
+ }, /* @ts-ignore */
58
+ ...(ngDevMode ? [{ debugName: "render" }] : /* istanbul ignore next */ []));
59
+ constructor() { effect(() => { const error = this.diagnostic(); if (error)
60
+ this.planningError.emit(error); }); }
61
+ accepts(token) { const state = this.state(); return !!state && token.generation === state.generation && token.nodeId === currentDrilldownNode(state); }
62
+ interact(token, snapshot) {
63
+ if (!this.accepts(token))
64
+ return;
65
+ this.selection.set(snapshot.selected ? { ...token, datumId: snapshot.selected } : null);
66
+ this.interactionChange.emit({ nodeId: token.nodeId, snapshot });
67
+ }
68
+ changeVisibility(token, ids) {
69
+ if (!this.accepts(token))
70
+ return;
71
+ this.visibility.set(ids);
72
+ const state = this.state(), previous = restoredDrilldownView(state);
73
+ this.state.set(rememberDrilldownView(state, token, { hiddenSeriesIds: ids, ...(previous?.viewport ? { viewport: previous.viewport } : {}) }));
74
+ }
75
+ changeViewport(token, event) {
76
+ if (!this.accepts(token))
77
+ return;
78
+ this.state.set(rememberDrilldownView(this.state(), token, { hiddenSeriesIds: this.visibility(), viewport: event.value }));
79
+ }
80
+ childError(token, diagnostic) { if (this.accepts(token))
81
+ this.planningError.emit({ nodeId: token.nodeId, diagnostic }); }
82
+ enter() { const state = this.state(), selection = this.selection(); if (state && selection)
83
+ this.navigate(enterDrilldown(state, selection)); }
84
+ back() { const state = this.state(); if (state)
85
+ this.navigate(backDrilldown(state)); }
86
+ navigate(next) {
87
+ if (next === this.state())
88
+ return;
89
+ this.state.set(next);
90
+ this.selection.set(null);
91
+ this.navigationChange.emit({ nodeId: currentDrilldownNode(next), trail: next.trail });
92
+ }
93
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.2.3", ngImport: i0, type: NativeChartDrilldown, deps: [], target: i0.ɵɵFactoryTarget.Component });
94
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.2.3", type: NativeChartDrilldown, isStandalone: true, selector: "neu-c-drilldown, nc-chart-drilldown", inputs: { data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { navigationChange: "navigationChange", interactionChange: "interactionChange", planningError: "planningError" }, ngImport: i0, template: `@if(diagnostic();as error){<view accessibilityRole="alert" testID="chart-drilldown-error"><text>{{error.diagnostic.message}}</text></view>}@else{
95
+ <view testID="chart-drilldown-navigation" style="padding:16px;gap:12px">
96
+ <text [style.color]="ink()" accessibilityRole="header" testID="chart-drilldown-trail">{{trailLabel()}}</text>
97
+ <view style="flex-direction:row;flex-wrap:wrap;gap:8px">
98
+ <pressable testID="chart-drilldown-back" accessibilityRole="button" [accessibilityLabel]="english()?'Back to parent chart':'Volver a la gráfica anterior'" [disabled]="trail().length<2" [accessibilityState]="controlAccessibilityState(trail().length<2)" [style.opacity]="trail().length<2?0.45:1" [style.backgroundColor]="controlColor()" style="padding:12px;min-height:44px;border-radius:10px" (press)="back()"><text [style.color]="ink()">{{english()?'Back':'Volver'}}</text></pressable>
99
+ @if(destination()){<pressable testID="chart-drilldown-enter" accessibilityRole="button" [accessibilityLabel]="english()?'View selected detail':'Ver el detalle seleccionado'" [style.backgroundColor]="controlColor()" style="padding:12px;min-height:44px;border-radius:10px" (press)="enter()"><text [style.color]="ink()">{{english()?'View detail':'Ver detalle'}}</text></pressable>}
100
+ </view>
101
+ </view>
102
+ @for(context of render();track context.token.generation){<neu-c-chart [data]="context.data" [options]="context.options" [hiddenSeriesIds]="visibility()" (hiddenSeriesIdsChange)="changeVisibility(context.token,$event)" (viewportChange)="changeViewport(context.token,$event)" (interactionChange)="interact(context.token,$event)" (planningError)="childError(context.token,$event)"/>}
103
+ }`, isInline: true, styles: [":host{display:flex;flex-direction:column;align-self:stretch;min-width:0;}"], dependencies: [{ kind: "component", type: NativeDataChart, selector: "neu-c-chart, nc-chart", inputs: ["data", "options", "labelFormatters", "hiddenSeriesIds"], outputs: ["hiddenSeriesIdsChange", "interactionChange", "planningError", "viewportChange"] }, { kind: "directive", type: View, selector: "view" }, { kind: "directive", type: Text, selector: "text", inputs: ["numberOfLines", "ellipsizeMode", "selectable", "selectionColor", "allowFontScaling", "maxFontSizeMultiplier", "dynamicTypeRamp", "adjustsFontSizeToFit", "minimumFontScale", "lineBreakStrategyIOS", "textBreakStrategy", "dataDetectorType", "android_hyphenationFrequency", "pressable", "suppressHighlighting"], exportAs: ["text"] }, { kind: "directive", type: Pressable, selector: "pressable", exportAs: ["pressable"] }] });
104
+ }
105
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.2.3", ngImport: i0, type: NativeChartDrilldown, decorators: [{
106
+ type: Component,
107
+ args: [{ selector: 'neu-c-drilldown, nc-chart-drilldown', imports: [NativeDataChart, View, Text, Pressable], template: `@if(diagnostic();as error){<view accessibilityRole="alert" testID="chart-drilldown-error"><text>{{error.diagnostic.message}}</text></view>}@else{
108
+ <view testID="chart-drilldown-navigation" style="padding:16px;gap:12px">
109
+ <text [style.color]="ink()" accessibilityRole="header" testID="chart-drilldown-trail">{{trailLabel()}}</text>
110
+ <view style="flex-direction:row;flex-wrap:wrap;gap:8px">
111
+ <pressable testID="chart-drilldown-back" accessibilityRole="button" [accessibilityLabel]="english()?'Back to parent chart':'Volver a la gráfica anterior'" [disabled]="trail().length<2" [accessibilityState]="controlAccessibilityState(trail().length<2)" [style.opacity]="trail().length<2?0.45:1" [style.backgroundColor]="controlColor()" style="padding:12px;min-height:44px;border-radius:10px" (press)="back()"><text [style.color]="ink()">{{english()?'Back':'Volver'}}</text></pressable>
112
+ @if(destination()){<pressable testID="chart-drilldown-enter" accessibilityRole="button" [accessibilityLabel]="english()?'View selected detail':'Ver el detalle seleccionado'" [style.backgroundColor]="controlColor()" style="padding:12px;min-height:44px;border-radius:10px" (press)="enter()"><text [style.color]="ink()">{{english()?'View detail':'Ver detalle'}}</text></pressable>}
113
+ </view>
114
+ </view>
115
+ @for(context of render();track context.token.generation){<neu-c-chart [data]="context.data" [options]="context.options" [hiddenSeriesIds]="visibility()" (hiddenSeriesIdsChange)="changeVisibility(context.token,$event)" (viewportChange)="changeViewport(context.token,$event)" (interactionChange)="interact(context.token,$event)" (planningError)="childError(context.token,$event)"/>}
116
+ }`, styles: [":host{display:flex;flex-direction:column;align-self:stretch;min-width:0;}"] }]
117
+ }], ctorParameters: () => [], propDecorators: { data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: true }] }], options: [{ type: i0.Input, args: [{ isSignal: true, alias: "options", required: false }] }], navigationChange: [{ type: i0.Output, args: ["navigationChange"] }], interactionChange: [{ type: i0.Output, args: ["interactionChange"] }], planningError: [{ type: i0.Output, args: ["planningError"] }] } });
118
+ //# sourceMappingURL=chart-drilldown.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chart-drilldown.js","sourceRoot":"","sources":["../../src/native/chart-drilldown.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ import { sharedValue, type WorkletStyleSpec } from '@ng-native/components/reanimated';
3
+ import type { NativeScene } from '../library/contracts.js';
4
+ import type { RadialNativeStyles, RadialBrowserStyles } from './radial-layer.js';
5
+ export type MotionStyles = Readonly<{
6
+ native?: Readonly<{
7
+ clip: WorkletStyleSpec;
8
+ geometry: WorkletStyleSpec;
9
+ labels: WorkletStyleSpec;
10
+ previous?: WorkletStyleSpec;
11
+ entranceVisibility?: WorkletStyleSpec;
12
+ bubble?: WorkletStyleSpec;
13
+ radial?: RadialNativeStyles;
14
+ }>;
15
+ browser?: Readonly<{
16
+ clip: Record<string, unknown>;
17
+ geometry: Record<string, unknown>;
18
+ labels: Record<string, unknown>;
19
+ previous?: Record<string, unknown>;
20
+ entranceVisibility?: Record<string, unknown>;
21
+ bubble?: Record<string, unknown>;
22
+ radial?: RadialBrowserStyles;
23
+ }>;
24
+ }>;
25
+ export interface ChartMotion {
26
+ readonly pending?: boolean;
27
+ start(duration: number): void;
28
+ update?(duration: number): void;
29
+ stop(): void;
30
+ finish(): void;
31
+ styles(scene: NativeScene, viewport: Readonly<{
32
+ width: number;
33
+ height: number;
34
+ }>): MotionStyles;
35
+ }
36
+ export declare const CHART_MOTION_FACTORY: InjectionToken<() => ChartMotion>;
37
+ /** Presentation transforms only: the shared Core still owns all data geometry. */
38
+ export declare function motionParameters(scene: NativeScene, viewport: Readonly<{
39
+ width: number;
40
+ height: number;
41
+ }>): {
42
+ type: number;
43
+ offset: number;
44
+ width: number;
45
+ height: number;
46
+ radial: import("./radial-entrance.js").RadialEntrance | undefined;
47
+ pivotX: number;
48
+ pivotY: number;
49
+ needleAngle: number;
50
+ delayedLabels: boolean;
51
+ revealBase: number;
52
+ revealTop: number;
53
+ };
54
+ /** One progress value drives presentation bindings; no per-frame Angular/SVG work. */
55
+ export declare class NativeChartMotion implements ChartMotion {
56
+ readonly progress: ReturnType<typeof sharedValue<number>>;
57
+ private frame;
58
+ get pending(): boolean;
59
+ start(duration: number): void;
60
+ update(duration: number): void;
61
+ private animate;
62
+ stop(): void;
63
+ finish(): void;
64
+ styles(scene: NativeScene, viewport: Readonly<{
65
+ width: number;
66
+ height: number;
67
+ }>): MotionStyles;
68
+ }
69
+ //# sourceMappingURL=chart-motion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chart-motion.d.ts","sourceRoot":"","sources":["../../src/native/chart-motion.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,cAAc,EAAC,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAC,WAAW,EAAc,KAAK,gBAAgB,EAAC,MAAM,kCAAkC,CAAC;AAEhG,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,yBAAyB,CAAC;AAIzD,OAAO,KAAK,EAAC,kBAAkB,EAAC,mBAAmB,EAAC,MAAM,mBAAmB,CAAC;AAE9E,MAAM,MAAM,YAAY,GAAC,QAAQ,CAAC;IAAC,MAAM,CAAC,EAAC,QAAQ,CAAC;QAAC,IAAI,EAAC,gBAAgB,CAAC;QAAA,QAAQ,EAAC,gBAAgB,CAAC;QAAA,MAAM,EAAC,gBAAgB,CAAC;QAAA,QAAQ,CAAC,EAAC,gBAAgB,CAAC;QAAA,kBAAkB,CAAC,EAAC,gBAAgB,CAAC;QAAA,MAAM,CAAC,EAAC,gBAAgB,CAAC;QAAA,MAAM,CAAC,EAAC,kBAAkB,CAAA;KAAC,CAAC,CAAC;IAAA,OAAO,CAAC,EAAC,QAAQ,CAAC;QAAC,IAAI,EAAC,MAAM,CAAC,MAAM,EAAC,OAAO,CAAC,CAAC;QAAA,QAAQ,EAAC,MAAM,CAAC,MAAM,EAAC,OAAO,CAAC,CAAC;QAAA,MAAM,EAAC,MAAM,CAAC,MAAM,EAAC,OAAO,CAAC,CAAC;QAAA,QAAQ,CAAC,EAAC,MAAM,CAAC,MAAM,EAAC,OAAO,CAAC,CAAC;QAAA,kBAAkB,CAAC,EAAC,MAAM,CAAC,MAAM,EAAC,OAAO,CAAC,CAAC;QAAA,MAAM,CAAC,EAAC,MAAM,CAAC,MAAM,EAAC,OAAO,CAAC,CAAC;QAAA,MAAM,CAAC,EAAC,mBAAmB,CAAA;KAAC,CAAC,CAAA;CAAC,CAAC,CAAC;AAC3e,MAAM,WAAW,WAAW;IAAE,QAAQ,CAAC,OAAO,CAAC,EAAC,OAAO,CAAC;IAAA,KAAK,CAAC,QAAQ,EAAC,MAAM,GAAE,IAAI,CAAC;IAAA,MAAM,CAAC,CAAC,QAAQ,EAAC,MAAM,GAAE,IAAI,CAAC;IAAA,IAAI,IAAG,IAAI,CAAC;IAAA,MAAM,IAAG,IAAI,CAAC;IAAA,MAAM,CAAC,KAAK,EAAC,WAAW,EAAC,QAAQ,EAAC,QAAQ,CAAC;QAAC,KAAK,EAAC,MAAM,CAAC;QAAA,MAAM,EAAC,MAAM,CAAA;KAAC,CAAC,GAAE,YAAY,CAAC;CAAC;AACpO,eAAO,MAAM,oBAAoB,uBAAwB,WAAW,CAAqF,CAAC;AAE1J,kFAAkF;AAClF,wBAAgB,gBAAgB,CAAC,KAAK,EAAC,WAAW,EAAC,QAAQ,EAAC,QAAQ,CAAC;IAAC,KAAK,EAAC,MAAM,CAAC;IAAA,MAAM,EAAC,MAAM,CAAA;CAAC,CAAC;;;;;;;;;;;;EA8CjG;AAED,sFAAsF;AACtF,qBAAa,iBAAkB,YAAW,WAAW;IACnD,QAAQ,CAAC,QAAQ,EAAC,UAAU,CAAC,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC,CAAgB;IACxE,OAAO,CAAC,KAAK,CAAkB;IAC/B,IAAI,OAAO,IAAG,OAAO,CAA2B;IAChD,KAAK,CAAC,QAAQ,EAAC,MAAM,GAAE,IAAI;IAC3B,MAAM,CAAC,QAAQ,EAAC,MAAM,GAAE,IAAI;IAC5B,OAAO,CAAC,OAAO;IAKf,IAAI,IAAG,IAAI;IACX,MAAM,IAAG,IAAI;IACb,MAAM,CAAC,KAAK,EAAC,WAAW,EAAC,QAAQ,EAAC,QAAQ,CAAC;QAAC,KAAK,EAAC,MAAM,CAAC;QAAA,MAAM,EAAC,MAAM,CAAA;KAAC,CAAC,GAAE,YAAY;CA+BvF"}
@@ -0,0 +1,165 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ import { sharedValue, workletStyle } from '@ng-native/components/reanimated';
3
+ import { withTiming, cancelAnimation, Easing } from 'react-native-reanimated';
4
+ import { sceneTransform } from '../library/scene.js';
5
+ import { radialEntrance } from './radial-entrance.js';
6
+ import { hasBubbleEntrance } from './bubble-entrance.js';
7
+ export const CHART_MOTION_FACTORY = new InjectionToken('CHART_MOTION_FACTORY', { providedIn: 'root', factory: () => () => new NativeChartMotion() });
8
+ /** Presentation transforms only: the shared Core still owns all data geometry. */
9
+ export function motionParameters(scene, viewport) {
10
+ const radial = radialEntrance(scene, viewport);
11
+ const needle = scene.circular?.style === 'needle-gauge' && scene.circular.needle.to !== null ? scene.circular : undefined;
12
+ const needleAngle = needle ? (needle.needle.from - needle.needle.to) * 180 / Math.PI : 0;
13
+ const bubbles = hasBubbleEntrance(scene);
14
+ const radialGrowthFamily = scene.parallel?.coordinates === 'polar' || scene.family === 'polar' || scene.family === 'radar' || scene.family === 'windrose' || scene.family === 'radialbar';
15
+ const sectorGrowthFamily = ['variablepie', 'sunburst', 'dependencywheel', 'chord'].includes(scene.family);
16
+ let radialGrowth = radialGrowthFamily ? scene.polarGrid : undefined;
17
+ if (sectorGrowthFamily) {
18
+ let common, concentric = true;
19
+ for (const point of scene.observations) {
20
+ const hit = point.hit;
21
+ if (hit?.type !== 'sector')
22
+ continue;
23
+ if (!common)
24
+ common = hit;
25
+ else if (hit.cx !== common.cx || hit.cy !== common.cy) {
26
+ concentric = false;
27
+ break;
28
+ }
29
+ }
30
+ if (concentric)
31
+ radialGrowth = common;
32
+ }
33
+ let revealBase = 0, revealTop = Infinity;
34
+ if (scene.family === 'pictorial' && scene.pictorial) {
35
+ const t = sceneTransform(scene, viewport);
36
+ for (const glyph of scene.pictorial.glyphs)
37
+ revealBase = Math.max(revealBase, t.y + (glyph.bounds.y + glyph.bounds.height) * t.sy);
38
+ for (const point of scene.observations)
39
+ if (point.hit?.type === 'compoundPolygon')
40
+ for (const polygon of point.hit.polygons)
41
+ for (const vertex of polygon)
42
+ revealTop = Math.min(revealTop, t.y + vertex.y * t.sy);
43
+ }
44
+ const pictorialInk = Number.isFinite(revealTop) && revealTop < revealBase;
45
+ if (!pictorialInk)
46
+ revealTop = 0;
47
+ const verticalReveal = ['funnel', 'pyramid', 'treemap', 'organization'].includes(scene.family);
48
+ const delayedLabels = ['dendrogram', 'heatmap', 'venn', 'boxplot', 'errorbar', 'waterfall', 'lollipop', 'dumbbell', 'columnpyramid', 'columnrange', 'pareto', 'arcdiagram', 'treegraph'].includes(scene.family);
49
+ const type = needle ? 10 : scene.family === 'dendrogram' ? (scene.dendrogram?.orientation === 'vertical' ? 8 : 0) : scene.parallel?.coordinates === 'polar' ? 7 : ['fan', 'regression', 'flame', 'violin', 'parallel', 'contour', 'xrange', 'line', 'area', 'streamgraph', 'areaspline', 'arearange', 'areasplinerange', 'bellcurve', 'spline', 'mixed', 'boxplot', 'errorbar', 'waterfall', 'lollipop', 'dumbbell', 'columnpyramid', 'columnrange', 'pareto', 'arcdiagram', 'treegraph'].includes(scene.family) ? 0 : (scene.family === 'variwide' || scene.family === 'bullet' && scene.bulletOrientation === 'vertical' || scene.family === 'column' || scene.family === 'histogram') ? 1 : (scene.family === 'bar' || scene.family === 'bullet') ? 2 : radial ? 4 : bubbles ? 6 : pictorialInk ? 9 : verticalReveal ? 8 : radialGrowthFamily || sectorGrowthFamily ? (radialGrowth ? 7 : 5) : 5;
50
+ let offset = 0;
51
+ if (type === 1 || type === 2) {
52
+ const t = sceneTransform(scene, viewport), horizontal = type === 2;
53
+ const series = scene.series.find(s => s.bars?.some(b => b.width > 0 && b.height > 0));
54
+ const index = series?.bars?.findIndex(b => b.width > 0 && b.height > 0) ?? -1, bar = series?.bars?.[index];
55
+ // Observation order is semantic navigation order, not a geometry association.
56
+ const epsilon = Math.max(scene.width, scene.height, 1) * 1e-8;
57
+ const edge = bar ? (horizontal ? bar.x : bar.y) : 0, length = bar ? (horizontal ? bar.width : bar.height) : 0;
58
+ const center = bar ? (horizontal ? bar.y + bar.height / 2 : bar.x + bar.width / 2) : 0;
59
+ const point = bar ? scene.observations.find(p => p.id.seriesId === series?.id && Math.abs((horizontal ? p.y : p.x) - center) <= epsilon && Math.min(Math.abs((horizontal ? p.x : p.y) - edge), Math.abs((horizontal ? p.x : p.y) - edge - length)) <= epsilon) : undefined;
60
+ const endpoint = point ? (horizontal ? point.x : point.y) : undefined;
61
+ const baseline = bar ? (endpoint === undefined ? (horizontal ? edge : edge + length) : Math.abs(endpoint - edge) <= Math.abs(endpoint - edge - length) ? edge + length : edge) : 0;
62
+ offset = horizontal ? t.x + baseline * t.sx - viewport.width / 2 : t.y + baseline * t.sy - viewport.height / 2;
63
+ }
64
+ // Keep the Core-projected centre fixed while the radii grow. The native View
65
+ // transforms around its own midpoint, which need not coincide with that centre.
66
+ const pivot = needle ?? radialGrowth;
67
+ const growthTransform = pivot ? sceneTransform(scene, viewport) : undefined;
68
+ const pivotX = growthTransform && pivot ? growthTransform.x + pivot.cx * growthTransform.sx - viewport.width / 2 : 0;
69
+ const pivotY = growthTransform && pivot ? growthTransform.y + pivot.cy * growthTransform.sy - viewport.height / 2 : 0;
70
+ return { type, offset, width: viewport.width, height: viewport.height, radial, pivotX, pivotY, needleAngle, delayedLabels, revealBase, revealTop };
71
+ }
72
+ /** One progress value drives presentation bindings; no per-frame Angular/SVG work. */
73
+ export class NativeChartMotion {
74
+ progress = sharedValue(0);
75
+ frame = null;
76
+ get pending() { return this.frame !== null; }
77
+ start(duration) { this.animate(0, 1, duration); }
78
+ update(duration) { this.animate(2, 3, duration); }
79
+ animate(from, to, duration) {
80
+ if (Number.isFinite(duration) && duration <= 0) {
81
+ this.finish();
82
+ return;
83
+ }
84
+ this.stop();
85
+ this.progress.set(from);
86
+ this.frame = requestAnimationFrame(() => { this.frame = requestAnimationFrame(() => { this.frame = null; this.progress.set(withTiming(to, { duration: Math.max(0, Math.min(2000, Number.isFinite(duration) ? duration : 1100)), easing: Easing.bezier(.45, 0, .2, 1) })); }); });
87
+ }
88
+ stop() { if (this.frame !== null) {
89
+ cancelAnimationFrame(this.frame);
90
+ this.frame = null;
91
+ } cancelAnimation(this.progress); }
92
+ finish() { this.stop(); this.progress.set(1); }
93
+ styles(scene, viewport) {
94
+ const { type, offset, width, height, radial, pivotX, pivotY, needleAngle, delayedLabels, revealBase, revealTop } = motionParameters(scene, viewport);
95
+ const sweep = radial?.sweepRadians ?? 0, start = radial?.startRadians ?? 0;
96
+ return { native: {
97
+ clip: workletStyle([this.progress], p => {
98
+ 'worklet';
99
+ const alpha = p.value >= 2 ? Math.max(0, Math.min(1, p.value - 2)) : 1;
100
+ return { opacity: (type === 4 || type === 6 ? (p.value >= 1 ? 1 : 0) : 1) * alpha, transform: type === 9 ? [{ translateY: p.value < 1 ? revealBase + (revealTop - revealBase) * Math.max(0, p.value) : 0 }] : type === 8 ? [{ translateY: p.value < 1 ? -height * (1 - p.value) : 0 }] : [{ translateX: type === 0 && p.value < 1 ? -width * (1 - p.value) : 0 }] };
101
+ }),
102
+ labels: workletStyle([this.progress], p => {
103
+ 'worklet';
104
+ const alpha = p.value >= 2 ? Math.max(0, Math.min(1, p.value - 2)) : 1;
105
+ return { opacity: (type === 7 || type === 8 || type === 9 || delayedLabels ? Math.max(0, Math.min(1, (p.value - .82) / .18)) : type === 6 || type === 4 && sweep > 0 ? Math.max(0, Math.min(1, (p.value - .95) / .05)) : type === 5 ? Math.max(0, Math.min(1, p.value)) : 1) * alpha };
106
+ }),
107
+ previous: workletStyle([this.progress], p => {
108
+ 'worklet';
109
+ return { opacity: p.value >= 2 ? Math.max(0, Math.min(1, 3 - p.value)) : 0 };
110
+ }),
111
+ geometry: workletStyle([this.progress], p => {
112
+ 'worklet';
113
+ const v = Math.min(1, p.value);
114
+ if (type === 10)
115
+ return { opacity: 1, transform: [{ translateX: pivotX }, { translateY: pivotY }, { rotate: (needleAngle * (1 - v)) + 'deg' }, { translateX: -pivotX }, { translateY: -pivotY }] };
116
+ if (type === 0)
117
+ return { opacity: 1, transform: [{ translateX: width * (1 - v) }] };
118
+ if (type === 1)
119
+ return { opacity: 1, transform: [{ translateY: offset * (1 - v) }, { scaleY: v }] };
120
+ if (type === 2)
121
+ return { opacity: 1, transform: [{ translateX: offset * (1 - v) }, { scaleX: v }] };
122
+ if (type === 4)
123
+ return { opacity: 1, transform: [] };
124
+ if (type === 5)
125
+ return { opacity: v, transform: [] };
126
+ if (type === 6)
127
+ return { opacity: 1, transform: [] };
128
+ if (type === 7)
129
+ return { opacity: 1, transform: [{ translateX: pivotX * (1 - v) }, { translateY: pivotY * (1 - v) }, { scale: v }] };
130
+ if (type === 8)
131
+ return { opacity: 1, transform: [{ translateY: height * (1 - v) }] };
132
+ if (type === 9)
133
+ return { opacity: 1, transform: [{ translateY: p.value < 1 ? -(revealBase + (revealTop - revealBase) * v) : 0 }] };
134
+ return { opacity: v, transform: [] };
135
+ }),
136
+ ...(radial || type === 6 ? { entranceVisibility: workletStyle([this.progress], p => {
137
+ 'worklet';
138
+ return { opacity: p.value >= 1 ? 0 : Math.max(0, Math.min(1, p.value * 50)) };
139
+ }) } : {}),
140
+ ...(type === 6 ? { bubble: workletStyle([this.progress], p => {
141
+ 'worklet';
142
+ return { transform: [{ scale: Math.max(0, Math.min(1, p.value)) }] };
143
+ }) } : {}),
144
+ ...(radial ? { radial: {
145
+ first: workletStyle([this.progress], p => {
146
+ 'worklet';
147
+ return { transform: [{ rotate: (Math.min(Math.PI, Math.max(0, sweep * p.value)) * 180 / Math.PI) + 'deg' }] };
148
+ }),
149
+ firstCounter: workletStyle([this.progress], p => {
150
+ 'worklet';
151
+ return { transform: [{ rotate: (-(start + Math.min(Math.PI, Math.max(0, sweep * p.value))) * 180 / Math.PI) + 'deg' }] };
152
+ }),
153
+ second: workletStyle([this.progress], p => {
154
+ 'worklet';
155
+ return { transform: [{ rotate: (Math.min(Math.PI, Math.max(0, sweep * p.value - Math.PI)) * 180 / Math.PI) + 'deg' }] };
156
+ }),
157
+ secondCounter: workletStyle([this.progress], p => {
158
+ 'worklet';
159
+ return { transform: [{ rotate: (-(start + Math.min(Math.PI, Math.max(0, sweep * p.value - Math.PI))) * 180 / Math.PI) + 'deg' }] };
160
+ }),
161
+ } } : {}),
162
+ } };
163
+ }
164
+ }
165
+ //# sourceMappingURL=chart-motion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chart-motion.js","sourceRoot":"","sources":["../../src/native/chart-motion.ts"],"names":[],"mappings":"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"}