@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,125 @@
1
+ import { ownPolygon } from './polygon-hit.js';
2
+ const color = /^#[\da-f]{6}$/i;
3
+ const finite = (n) => typeof n === 'number' && Number.isFinite(n);
4
+ const text = (s, max = 256) => typeof s === 'string' && s.length <= max;
5
+ const coordinate = (n) => finite(n) && Number.isSafeInteger(n) && Math.abs(n) <= 1_000_000;
6
+ export function ownValueColor(p) {
7
+ if (!p || typeof p.color !== 'string' || !color.test(p.color))
8
+ throw Error('Invalid tilemap color');
9
+ if (p.type === 'missing')
10
+ return { type: 'missing', color: p.color };
11
+ if (!finite(p.value))
12
+ throw Error('Invalid tilemap color value');
13
+ if (p.type === 'continuous') {
14
+ if (!finite(p.ratio) || p.ratio < 0 || p.ratio > 1 || typeof p.clamped !== 'boolean')
15
+ throw Error('Invalid continuous color');
16
+ return { type: p.type, value: p.value, ratio: p.ratio, clamped: p.clamped, color: p.color };
17
+ }
18
+ if (p.type === 'class' && text(p.classId, 128) && p.classId.length)
19
+ return { type: p.type, value: p.value, classId: p.classId, color: p.color };
20
+ if (p.type === 'unclassified')
21
+ return { type: p.type, value: p.value, color: p.color };
22
+ throw Error('Invalid tilemap color type');
23
+ }
24
+ export function ownColorAxis(axis) {
25
+ if (!axis || !color.test(axis.missingColor))
26
+ throw Error('Invalid tilemap color axis');
27
+ if (axis.type === 'continuous') {
28
+ if (!['explicit', 'source', 'none'].includes(axis.domainSource) || axis.domain !== null && (!Array.isArray(axis.domain) || axis.domain.length !== 2 || !axis.domain.every(finite) || axis.domain[0] > axis.domain[1]) || !Array.isArray(axis.stops) || axis.stops.length < 2 || axis.stops.length > 8)
29
+ throw Error('Invalid continuous color axis');
30
+ let prior = -1;
31
+ const stops = axis.stops.map(s => { if (!finite(s.at) || s.at < 0 || s.at > 1 || s.at <= prior || !color.test(s.color))
32
+ throw Error('Invalid color stop'); prior = s.at; return { at: s.at, color: s.color }; });
33
+ if (stops[0].at !== 0 || stops.at(-1).at !== 1)
34
+ throw Error('Color stops must span zero to one');
35
+ return { type: 'continuous', domain: axis.domain === null ? null : [axis.domain[0], axis.domain[1]], domainSource: axis.domainSource, stops, missingColor: axis.missingColor };
36
+ }
37
+ if (axis.type !== 'classes' || !color.test(axis.unclassifiedColor) || !Array.isArray(axis.classes) || axis.classes.length < 1 || axis.classes.length > 16)
38
+ throw Error('Invalid class color axis');
39
+ const ids = new Set();
40
+ const classes = axis.classes.map(c => { if (!text(c.id, 128) || !c.id || ids.has(c.id) || !text(c.label) || !color.test(c.color) || c.minInclusive !== undefined && !finite(c.minInclusive) || c.maxExclusive !== undefined && !finite(c.maxExclusive) || c.minInclusive !== undefined && c.maxExclusive !== undefined && c.minInclusive >= c.maxExclusive)
41
+ throw Error('Invalid color class'); ids.add(c.id); return { id: c.id, label: c.label, color: c.color, ...(c.minInclusive === undefined ? {} : { minInclusive: c.minInclusive }), ...(c.maxExclusive === undefined ? {} : { maxExclusive: c.maxExclusive }) }; });
42
+ return { type: 'classes', classes, missingColor: axis.missingColor, unclassifiedColor: axis.unclassifiedColor };
43
+ }
44
+ export function ownTilemapCells(series, scene) {
45
+ if (series.cells === undefined)
46
+ return {};
47
+ if (!['heatmap', 'tilemap'].includes(scene.family) || !Array.isArray(series.cells) || series.cells.length > (scene.family === 'heatmap' ? 4096 : 2048))
48
+ throw Error('Invalid tilemap cells');
49
+ const ids = new Set();
50
+ const cells = series.cells.map(c => {
51
+ if (!text(c.pointId) || !c.pointId || ids.has(c.pointId) || !color.test(c.color) || !finite(c.opacity) || c.opacity < 0 || c.opacity > 1)
52
+ throw Error('Invalid tilemap paint');
53
+ ids.add(c.pointId);
54
+ const g = c.geometry;
55
+ if (g?.type === 'polygon')
56
+ return { pointId: c.pointId, color: c.color, opacity: c.opacity, geometry: ownPolygon(g, scene) };
57
+ if (g?.type !== 'circle' || ![g.cx, g.cy, g.radius].every(finite) || g.radius <= 0 || g.cx - g.radius < -1e-8 || g.cy - g.radius < -1e-8 || g.cx + g.radius > scene.width + 1e-8 || g.cy + g.radius > scene.height + 1e-8)
58
+ throw Error('Invalid tilemap circle');
59
+ return { pointId: c.pointId, color: c.color, opacity: c.opacity, geometry: { type: 'circle', cx: g.cx, cy: g.cy, radius: g.radius } };
60
+ });
61
+ return { cells };
62
+ }
63
+ export function ownTilemapPoint(point, family) {
64
+ const p = point.tilemap;
65
+ if (family !== 'tilemap') {
66
+ if (p !== undefined)
67
+ throw Error('Unexpected tilemap value');
68
+ return {};
69
+ }
70
+ if (!p || !coordinate(p.sourceX) || !coordinate(p.sourceY) || p.name !== undefined && !text(p.name, 512) || p.classLabel !== undefined && !text(p.classLabel) || !point.hit || point.hit.type !== 'polygon' && point.hit.type !== 'circle')
71
+ throw Error('Invalid tilemap observation');
72
+ const mapped = ownValueColor(p.color);
73
+ if (mapped.type === 'missing' || mapped.value !== point.value || mapped.color !== point.color)
74
+ throw Error('Tilemap source/color mismatch');
75
+ return { tilemap: { sourceX: p.sourceX, sourceY: p.sourceY, ...(p.name === undefined ? {} : { name: p.name }), color: mapped, ...(p.classLabel === undefined ? {} : { classLabel: p.classLabel }) } };
76
+ }
77
+ export function ownTilemapScene(scene) {
78
+ const source = scene.tilemap;
79
+ if (scene.family !== 'tilemap') {
80
+ if (source !== undefined)
81
+ throw Error('Unexpected tilemap scene');
82
+ return {};
83
+ }
84
+ if (!source || !Array.isArray(source.data) || source.data.length > 2048 || scene.series.length > 1 || scene.observations.length > 2048)
85
+ throw Error('Unbounded tilemap scene');
86
+ const ids = new Set();
87
+ const data = source.data.map(p => {
88
+ if (!p || !p.id || !text(p.id.seriesId, 128) || !p.id.seriesId || !text(p.id.pointId) || !p.id.pointId || !coordinate(p.x) || !coordinate(p.y) || p.value !== null && !finite(p.value) || p.name !== undefined && !text(p.name, 512) || typeof p.visible !== 'boolean' || typeof p.observed !== 'boolean' || !['painted', 'noInk', 'hidden'].includes(p.geometryDecision))
89
+ throw Error('Invalid tilemap source');
90
+ const key = JSON.stringify([p.id.seriesId, p.id.pointId]);
91
+ if (ids.has(key))
92
+ throw Error('Duplicate tilemap source');
93
+ ids.add(key);
94
+ const mapped = ownValueColor(p.color);
95
+ if (p.value === null ? mapped.type !== 'missing' : mapped.type === 'missing' || mapped.value !== p.value)
96
+ throw Error('Invalid tilemap source color');
97
+ return { id: { seriesId: p.id.seriesId, pointId: p.id.pointId }, x: p.x, y: p.y, value: p.value, ...(p.name === undefined ? {} : { name: p.name }), visible: p.visible, geometryDecision: p.geometryDecision, color: mapped, observed: p.observed };
98
+ });
99
+ const l = source.layout, count = (n) => finite(n) && Number.isInteger(n) && n >= 0 && n <= 2048;
100
+ if (!l || !['noSource', 'allMissing', 'allHidden', 'noInk', 'ready'].includes(l.status) || !['hexagon', 'circle', 'diamond', 'square'].includes(l.shape) || ![l.sourceCount, l.knownCount, l.missingCount, l.paintedCellCount, l.observedCellCount, l.omittedCellCount].every(count) || l.sourceCount !== data.length || l.knownCount + l.missingCount !== l.sourceCount || l.observedCellCount !== scene.observations.length || l.paintedCellCount !== scene.series.reduce((n, s) => n + (s.cells?.length ?? 0), 0) || !finite(l.scale) || l.scale < 0)
101
+ throw Error('Invalid tilemap layout');
102
+ const b = l.bounds;
103
+ if (b !== null && (!b || ![b.x, b.y, b.width, b.height].every(finite) || b.width < 0 || b.height < 0))
104
+ throw Error('Invalid tilemap bounds');
105
+ for (const p of scene.observations)
106
+ if (!ids.has(JSON.stringify([p.id.seriesId, p.id.pointId])))
107
+ throw Error('Unmatched tilemap observation');
108
+ return { tilemap: { data, colorAxis: ownColorAxis(source.colorAxis), layout: { status: l.status, shape: l.shape, sourceCount: l.sourceCount, knownCount: l.knownCount, missingCount: l.missingCount, paintedCellCount: l.paintedCellCount, observedCellCount: l.observedCellCount, omittedCellCount: l.omittedCellCount, scale: l.scale, bounds: b === null ? null : { x: b.x, y: b.y, width: b.width, height: b.height } } } };
109
+ }
110
+ /** Exact color/opacity buckets reduce view count without quantizing source colors. */
111
+ export function tilemapCellsSvg(cells) {
112
+ const buckets = new Map();
113
+ let length = 0;
114
+ for (const c of cells) {
115
+ const key = c.color + ':' + c.opacity, bucket = buckets.get(key) ?? { color: c.color, opacity: c.opacity, parts: [] }, g = c.geometry;
116
+ const path = g.type === 'circle' ? `M${g.cx - g.radius} ${g.cy}A${g.radius} ${g.radius} 0 1 0 ${g.cx + g.radius} ${g.cy}A${g.radius} ${g.radius} 0 1 0 ${g.cx - g.radius} ${g.cy}Z` : g.vertices.map((v, i) => `${i ? 'L' : 'M'}${v.x} ${v.y}`).join('') + 'Z';
117
+ length += path.length;
118
+ if (length > 2_000_000)
119
+ throw Error('Tilemap path budget exceeded');
120
+ bucket.parts.push(path);
121
+ buckets.set(key, bucket);
122
+ }
123
+ return [...buckets.values()].map(b => `<path d="${b.parts.join('')}" fill="${b.color}" fill-opacity="${b.opacity}"/>`).join('');
124
+ }
125
+ //# sourceMappingURL=tilemap-scene.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tilemap-scene.js","sourceRoot":"","sources":["../../src/library/tilemap-scene.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { PlanFanLayout, PlanFanValue, PlanRegressionLayout, PlanRegressionValue } from '@neural-charts/core/plan';
2
+ import type { NativeScene } from './contracts.js';
3
+ export type NativeFanLayout = PlanFanLayout;
4
+ export type NativeFanValue = PlanFanValue;
5
+ export type NativeRegressionLayout = PlanRegressionLayout;
6
+ export type NativeRegressionValue = PlanRegressionValue;
7
+ export declare function ownFanValue(v: NativeFanValue): NativeFanValue;
8
+ export declare function ownFan(v: NativeFanLayout, s: NativeScene): NativeFanLayout;
9
+ export declare function ownRegressionValue(v: NativeRegressionValue): NativeRegressionValue;
10
+ export declare function ownRegression(v: NativeRegressionLayout, s: NativeScene): NativeRegressionLayout;
11
+ //# sourceMappingURL=uncertainty-scene.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uncertainty-scene.d.ts","sourceRoot":"","sources":["../../src/library/uncertainty-scene.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,aAAa,EAAC,YAAY,EAAC,oBAAoB,EAAC,mBAAmB,EAAC,MAAM,0BAA0B,CAAC;AAClH,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAChD,MAAM,MAAM,eAAe,GAAC,aAAa,CAAC;AAC1C,MAAM,MAAM,cAAc,GAAC,YAAY,CAAC;AACxC,MAAM,MAAM,sBAAsB,GAAC,oBAAoB,CAAC;AACxD,MAAM,MAAM,qBAAqB,GAAC,mBAAmB,CAAC;AACtD,wBAAgB,WAAW,CAAC,CAAC,EAAC,cAAc,GAAE,cAAc,CAK3D;AACD,wBAAgB,MAAM,CAAC,CAAC,EAAC,eAAe,EAAC,CAAC,EAAC,WAAW,GAAE,eAAe,CAQtE;AACD,wBAAgB,kBAAkB,CAAC,CAAC,EAAC,qBAAqB,GAAE,qBAAqB,CAGhF;AACD,wBAAgB,aAAa,CAAC,CAAC,EAAC,sBAAsB,EAAC,CAAC,EAAC,WAAW,GAAE,sBAAsB,CAY3F"}
@@ -0,0 +1,61 @@
1
+ export function ownFanValue(v) {
2
+ if (!v || v.type !== 'center' && v.type !== 'interval')
3
+ throw Error('Invalid uncertainty role');
4
+ if (v.type === 'center')
5
+ return Object.freeze({ type: 'center' });
6
+ if (![v.coverage, v.low, v.high].every(Number.isFinite) || v.coverage <= 0 || v.coverage >= 1 || v.low > v.high)
7
+ throw Error('Invalid uncertainty interval');
8
+ return Object.freeze({ type: 'interval', coverage: v.coverage, low: v.low, high: v.high });
9
+ }
10
+ export function ownFan(v, s) {
11
+ if (s.family !== 'fan' || !v || v.centerId !== 'center' || !Array.isArray(v.bands) || v.bands.length < 1 || v.bands.length > 6 || s.observations.length > 7168)
12
+ throw Error('Invalid uncertainty layout');
13
+ const ids = new Set(['center']);
14
+ let coverage = 0;
15
+ const bands = v.bands.map(b => { if (!b || typeof b.id !== 'string' || !b.id || b.id.length > 64 || ids.has(b.id) || typeof b.label !== 'string' || b.label.length > 200 || !Number.isFinite(b.coverage) || b.coverage <= coverage || b.coverage >= 1)
16
+ throw Error('Invalid uncertainty band'); ids.add(b.id); coverage = b.coverage; return Object.freeze({ id: b.id, label: b.label, coverage: b.coverage }); });
17
+ const byId = new Map(bands.map(b => [b.id, b]));
18
+ for (const p of s.observations) {
19
+ const f = ownFanValue(p.fan);
20
+ if (!p.group || f.type === 'center' && p.id.seriesId !== 'center' || f.type === 'interval' && (byId.get(p.id.seriesId)?.coverage !== f.coverage || p.lowValue !== f.low || p.highValue !== f.high))
21
+ throw Error('Uncertainty source ownership mismatch');
22
+ }
23
+ if (s.series.some(x => !ids.has(x.id)) || s.legend?.some(x => !ids.has(x.id)))
24
+ throw Error('Unknown uncertainty identity');
25
+ return Object.freeze({ centerId: 'center', bands: Object.freeze(bands) });
26
+ }
27
+ export function ownRegressionValue(v) {
28
+ if (!v || !['sample', 'fit'].includes(v.type) || typeof v.modelId !== 'string' || !v.modelId || v.modelId.length > 96)
29
+ throw Error('Invalid regression role');
30
+ return Object.freeze({ type: v.type, modelId: v.modelId });
31
+ }
32
+ export function ownRegression(v, s) {
33
+ if (s.family !== 'regression' || !v || v.method !== 'ordinary-least-squares' || !Array.isArray(v.models) || v.models.length > 8 || s.observations.length > 4112)
34
+ throw Error('Invalid regression layout');
35
+ const ids = new Set();
36
+ let count = 0;
37
+ const models = v.models.map(m => {
38
+ if (!m || typeof m.sourceSeriesId !== 'string' || !m.sourceSeriesId || m.sourceSeriesId.length > 96 || ids.has(m.sourceSeriesId) || m.fitSeriesId !== 'ols:' + m.sourceSeriesId || !Number.isInteger(m.sampleCount) || m.sampleCount < 0 || !Number.isInteger(m.missingCount) || m.missingCount < 0 || (count += m.sampleCount + m.missingCount) > 4096 || !['ready', 'insufficient-data', 'constant-x'].includes(m.status))
39
+ throw Error('Invalid regression source');
40
+ ids.add(m.sourceSeriesId);
41
+ if (m.status === 'ready') {
42
+ if (m.sampleCount < 2 || ![m.slope, m.intercept, m.minX, m.maxX].every(Number.isFinite) || m.minX >= m.maxX || m.rSquared !== null && (!Number.isFinite(m.rSquared) || m.rSquared < 0 || m.rSquared > 1))
43
+ throw Error('Invalid regression coefficients');
44
+ return Object.freeze({ ...m });
45
+ }
46
+ if (m.status === 'insufficient-data' && m.sampleCount >= 2 || m.status === 'constant-x' && m.sampleCount < 2)
47
+ throw Error('Invalid unavailable regression');
48
+ return Object.freeze({ sourceSeriesId: m.sourceSeriesId, fitSeriesId: m.fitSeriesId, sampleCount: m.sampleCount, missingCount: m.missingCount, status: m.status });
49
+ });
50
+ const byId = new Map(models.map(m => [m.sourceSeriesId, m]));
51
+ for (const p of s.observations) {
52
+ const f = ownRegressionValue(p.regression), m = byId.get(f.modelId);
53
+ if (!m || p.id.seriesId !== (f.type === 'sample' ? m.sourceSeriesId : m.fitSeriesId) || f.type === 'fit' && (m.status !== 'ready' || p.hit?.type !== 'polygon'))
54
+ throw Error('Regression observation ownership mismatch');
55
+ }
56
+ const seriesIds = new Set(models.flatMap(m => m.status === 'ready' ? [m.sourceSeriesId, m.fitSeriesId] : [m.sourceSeriesId]));
57
+ if (s.series.some(x => !seriesIds.has(x.id)) || s.legend?.some(x => !seriesIds.has(x.id)))
58
+ throw Error('Unknown regression series');
59
+ return Object.freeze({ method: 'ordinary-least-squares', models: Object.freeze(models) });
60
+ }
61
+ //# sourceMappingURL=uncertainty-scene.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"uncertainty-scene.js","sourceRoot":"","sources":["../../src/library/uncertainty-scene.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ import type { Observation } from './contracts.js';
2
+ export interface NativeVennHitCircle {
3
+ readonly bit: number;
4
+ readonly cx: number;
5
+ readonly cy: number;
6
+ readonly radius: number;
7
+ }
8
+ /** Exact visible set membership; construction is bounded, queries allocate no
9
+ * arrays and retain the canonical observation for stable tooltip identity. */
10
+ export declare class VennHitIndex {
11
+ private readonly width;
12
+ private readonly height;
13
+ private readonly circles;
14
+ private readonly points;
15
+ constructor(circles: readonly NativeVennHitCircle[], points: readonly Readonly<{
16
+ mask: number;
17
+ point: Observation;
18
+ }>[], width: number, height: number);
19
+ pick(x: number, y: number): Observation | null;
20
+ }
21
+ //# sourceMappingURL=venn-hit.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"venn-hit.d.ts","sourceRoot":"","sources":["../../src/library/venn-hit.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAChD,MAAM,WAAW,mBAAmB;IAAE,QAAQ,CAAC,GAAG,EAAC,MAAM,CAAC;IAAA,QAAQ,CAAC,EAAE,EAAC,MAAM,CAAC;IAAA,QAAQ,CAAC,EAAE,EAAC,MAAM,CAAC;IAAA,QAAQ,CAAC,MAAM,EAAC,MAAM,CAAC;CAAC;AACxH;8EAC8E;AAC9E,qBAAa,YAAY;IAGwF,OAAO,CAAC,QAAQ,CAAC,KAAK;IAAQ,OAAO,CAAC,QAAQ,CAAC,MAAM;IAFpK,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgC;IACxD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA+B;gBAC1C,OAAO,EAAC,SAAS,mBAAmB,EAAE,EAAC,MAAM,EAAC,SAAS,QAAQ,CAAC;QAAC,IAAI,EAAC,MAAM,CAAC;QAAA,KAAK,EAAC,WAAW,CAAA;KAAC,CAAC,EAAE,EAAkB,KAAK,EAAC,MAAM,EAAkB,MAAM,EAAC,MAAM;IAU3K,IAAI,CAAC,CAAC,EAAC,MAAM,EAAC,CAAC,EAAC,MAAM,GAAE,WAAW,GAAC,IAAI;CAKzC"}
@@ -0,0 +1,37 @@
1
+ /** Exact visible set membership; construction is bounded, queries allocate no
2
+ * arrays and retain the canonical observation for stable tooltip identity. */
3
+ export class VennHitIndex {
4
+ width;
5
+ height;
6
+ circles;
7
+ points = new Map();
8
+ constructor(circles, points, width, height) {
9
+ this.width = width;
10
+ this.height = height;
11
+ if (circles.length > 3 || points.length > 7 || !Number.isFinite(width) || !Number.isFinite(height) || width <= 0 || height <= 0)
12
+ throw Error('Invalid bounded Venn frame');
13
+ const bits = new Set();
14
+ this.circles = circles.map(c => {
15
+ if (![1, 2, 4].includes(c.bit) || bits.has(c.bit) || ![c.cx, c.cy, c.radius].every(Number.isFinite) || c.radius < 0 || c.cx - c.radius < -1e-6 || c.cx + c.radius > width + 1e-6 || c.cy - c.radius < -1e-6 || c.cy + c.radius > height + 1e-6)
16
+ throw Error('Invalid Venn circle');
17
+ bits.add(c.bit);
18
+ return { bit: c.bit, cx: c.cx, cy: c.cy, radius: c.radius };
19
+ });
20
+ const visible = [...bits].reduce((mask, bit) => mask | bit, 0);
21
+ for (const { mask, point } of points) {
22
+ if (!Number.isInteger(mask) || mask < 1 || mask > 7 || (mask & visible) !== mask || this.points.has(mask))
23
+ throw Error('Invalid Venn membership');
24
+ this.points.set(mask, point);
25
+ }
26
+ }
27
+ pick(x, y) {
28
+ if (!Number.isFinite(x) || !Number.isFinite(y) || x < 0 || y < 0 || x > this.width || y > this.height)
29
+ return null;
30
+ let mask = 0;
31
+ for (const c of this.circles)
32
+ if (c.radius > 0 && (x - c.cx) ** 2 + (y - c.cy) ** 2 <= c.radius * c.radius)
33
+ mask |= c.bit;
34
+ return this.points.get(mask) ?? null;
35
+ }
36
+ }
37
+ //# sourceMappingURL=venn-hit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"venn-hit.js","sourceRoot":"","sources":["../../src/library/venn-hit.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { PlanVennLayout, PlanVennSummary, PlanVennValue } from '@neural-charts/core/plan';
2
+ import type { NativeScene, Observation } from './contracts.js';
3
+ export interface NativeVennGeometry {
4
+ readonly data: readonly PlanVennSummary[];
5
+ readonly layout: PlanVennLayout;
6
+ }
7
+ /** Validate the measured circle roles once, including exact region anchors. */
8
+ export declare function ownVennScene(scene: NativeScene): Readonly<{
9
+ venn?: NativeVennGeometry;
10
+ }>;
11
+ export declare function ownVennPoint(point: Observation, family: NativeScene['family']): Readonly<{
12
+ venn?: PlanVennValue;
13
+ }>;
14
+ //# sourceMappingURL=venn-scene.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"venn-scene.d.ts","sourceRoot":"","sources":["../../src/library/venn-scene.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,cAAc,EAAC,eAAe,EAAC,aAAa,EAAC,MAAM,0BAA0B,CAAC;AAC3F,OAAO,KAAK,EAAC,WAAW,EAAC,WAAW,EAAC,MAAM,gBAAgB,CAAC;AAE5D,MAAM,WAAW,kBAAkB;IAAE,QAAQ,CAAC,IAAI,EAAC,SAAS,eAAe,EAAE,CAAC;IAAA,QAAQ,CAAC,MAAM,EAAC,cAAc,CAAC;CAAC;AAI9G,+EAA+E;AAC/E,wBAAgB,YAAY,CAAC,KAAK,EAAC,WAAW,GAAE,QAAQ,CAAC;IAAC,IAAI,CAAC,EAAC,kBAAkB,CAAA;CAAC,CAAC,CA6CnF;AACD,wBAAgB,YAAY,CAAC,KAAK,EAAC,WAAW,EAAC,MAAM,EAAC,WAAW,CAAC,QAAQ,CAAC,GAAE,QAAQ,CAAC;IAAC,IAAI,CAAC,EAAC,aAAa,CAAA;CAAC,CAAC,CAG3G"}
@@ -0,0 +1,84 @@
1
+ import { VennHitIndex } from './venn-hit.js';
2
+ const text = (v, max) => typeof v === 'string' && v.length > 0 && v.length <= max;
3
+ const nonnegative = (v) => typeof v === 'number' && Number.isFinite(v) && v >= 0;
4
+ const integer = (v, max) => nonnegative(v) && Number.isInteger(v) && v <= max;
5
+ /** Validate the measured circle roles once, including exact region anchors. */
6
+ export function ownVennScene(scene) {
7
+ const v = scene.venn;
8
+ if (scene.family !== 'venn') {
9
+ if (v || scene.observations.some(p => p.venn !== undefined))
10
+ throw Error('Venn metadata on another family');
11
+ return {};
12
+ }
13
+ const legend = scene.legend ?? [], layout = v?.layout;
14
+ if (!v || !layout || !Array.isArray(v.data) || legend.length > 3 || v.data.length !== (1 << legend.length) - 1 || scene.observations.length > 7 || !Array.isArray(layout.circles) || layout.circles.length > 3 || !Array.isArray(layout.errors) || layout.errors.length > 4 || !['exact', 'approximate', 'unknown', 'allZero', 'hidden', 'noSource'].includes(layout.status) || !nonnegative(layout.maxErrorRatio) || !integer(layout.objectiveEvaluations, 577) || typeof layout.budgetExhausted !== 'boolean' || !integer(layout.omittedAnchors, 7))
15
+ throw Error('Invalid bounded Venn source');
16
+ const setIds = new Set(legend.map(set => set.id));
17
+ if (setIds.size !== legend.length)
18
+ throw Error('Duplicate Venn set');
19
+ const sourceIds = new Set(), sourceMasks = new Set();
20
+ const maskOf = (sets) => legend.reduce((mask, set, index) => sets.includes(set.id) ? mask | (1 << index) : mask, 0);
21
+ const data = v.data.map(row => {
22
+ if (!row || !text(row.id?.pointId, 128) || !text(row.id?.seriesId, 128) || sourceIds.has(row.id.pointId) || !Array.isArray(row.sets) || row.sets.length < 1 || row.sets.length > 3 || new Set(row.sets).size !== row.sets.length || row.sets.some((id) => !setIds.has(id)) || row.sets[0] !== row.id.seriesId || !text(row.label, 1024) || row.value !== null && !nonnegative(row.value) || typeof row.visible !== 'boolean' || row.visible !== row.sets.every((id) => legend.find(set => set.id === id).visible))
23
+ throw Error('Invalid original Venn measurement');
24
+ const mask = maskOf(row.sets);
25
+ if (sourceMasks.has(mask))
26
+ throw Error('Duplicate Venn relation');
27
+ sourceMasks.add(mask);
28
+ sourceIds.add(row.id.pointId);
29
+ return { id: { ...row.id }, sets: [...row.sets], label: row.label, value: row.value, visible: row.visible };
30
+ });
31
+ const sourceById = new Map(data.map(row => [row.id.pointId, row])), singletons = new Map(data.filter(row => row.sets.length === 1).map(row => [row.sets[0], row]));
32
+ const circles = layout.circles.map(c => {
33
+ const index = legend.findIndex(set => set.id === c.id), source = singletons.get(c.id);
34
+ if (index < 0 || !legend[index].visible || c.bit !== 1 << index || !source || source.value === null || c.value !== source.value)
35
+ throw Error('Circle differs from original set');
36
+ return { id: c.id, bit: c.bit, cx: c.cx, cy: c.cy, radius: c.radius, value: c.value };
37
+ });
38
+ const known = data.filter(row => row.visible && row.value !== null);
39
+ if (known.length !== scene.observations.length || layout.omittedAnchors !== scene.observations.filter(p => p.venn?.geometry === 'omitted').length)
40
+ throw Error('Missing known Venn observation');
41
+ const placed = scene.observations.filter(p => p.venn?.geometry === 'placed').map(point => ({ mask: point.venn.mask, point }));
42
+ const hits = new VennHitIndex(circles, placed, scene.width, scene.height);
43
+ for (const point of scene.observations) {
44
+ const source = sourceById.get(point.id.pointId), detail = point.venn;
45
+ if (!source || !source.visible || source.value === null || source.id.seriesId !== point.id.seriesId || source.value !== point.value || !detail || detail.type !== 'inclusive-intersection' || detail.mask !== maskOf(source.sets) || !['placed', 'omitted'].includes(detail.geometry) || !Array.isArray(detail.sets) || detail.sets.length !== source.sets.length || detail.sets.some((id, i) => id !== source.sets[i]) || point.hit !== undefined)
46
+ throw Error('Venn observation differs from source');
47
+ if (detail.geometry === 'placed' && hits.pick(point.x, point.y) !== point)
48
+ throw Error('Venn anchor outside its exact region');
49
+ }
50
+ const visible = legend.filter(set => set.visible), ready = layout.status === 'exact' || layout.status === 'approximate';
51
+ if (ready && circles.length !== visible.length || !ready && circles.length || layout.status === 'exact' && layout.maxErrorRatio > 1e-7 || layout.status === 'approximate' && layout.maxErrorRatio <= 1e-7 || layout.status === 'noSource' && legend.length || layout.status === 'hidden' && visible.length || layout.status === 'unknown' && !data.some(row => row.visible && row.value === null) || layout.status === 'allZero' && known.some(row => row.value !== 0))
52
+ throw Error('Invalid Venn layout status');
53
+ if (scene.series.length !== visible.length)
54
+ throw Error('Missing visible Venn series');
55
+ for (const series of scene.series) {
56
+ const circle = circles.find(c => c.id === series.id), expected = circle && circle.radius > 0 ? 1 : 0;
57
+ if (!visible.some(set => set.id === series.id) || series.path || series.areaPath || series.nodePath || series.bars?.length || series.cells?.length || series.textGlyphs?.length || (series.circles?.length ?? 0) !== expected)
58
+ throw Error('Unsupported Venn rendering role');
59
+ const primitive = series.circles?.[0];
60
+ if (primitive && circle && (primitive.pointId !== singletons.get(series.id).id.pointId || primitive.cx !== circle.cx || primitive.cy !== circle.cy || primitive.radius !== circle.radius))
61
+ throw Error('Circle rendering differs from layout');
62
+ }
63
+ const maximum = Math.max(0, ...visible.map(set => singletons.get(set.id)?.value ?? 0));
64
+ let maxError = 0;
65
+ const errors = layout.errors.map(error => {
66
+ if (!Array.isArray(error.sets))
67
+ throw Error('Invalid Venn fit members');
68
+ const source = data.find(row => maskOf(row.sets) === maskOf(error.sets));
69
+ if (!Array.isArray(error.sets) || error.sets.length < 2 || error.sets.length > 3 || new Set(error.sets).size !== error.sets.length || error.sets.some((id) => !visible.some(set => set.id === id)) || !source || source.value !== error.expected || !nonnegative(error.actual) || !nonnegative(error.expected))
70
+ throw Error('Invalid Venn fit residual');
71
+ maxError = Math.max(maxError, maximum ? Math.abs(error.actual / maximum - error.expected / maximum) : 0);
72
+ return { sets: [...error.sets], expected: error.expected, actual: error.actual };
73
+ });
74
+ if (Math.abs(maxError - layout.maxErrorRatio) > 1e-8)
75
+ throw Error('Venn fit error differs');
76
+ return { venn: { data, layout: { ...layout, circles, errors } } };
77
+ }
78
+ export function ownVennPoint(point, family) {
79
+ if (family !== 'venn')
80
+ return {};
81
+ const v = point.venn;
82
+ return { venn: { type: v.type, sets: [...v.sets], mask: v.mask, geometry: v.geometry } };
83
+ }
84
+ //# sourceMappingURL=venn-scene.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"venn-scene.js","sourceRoot":"","sources":["../../src/library/venn-scene.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ import type { PlanWordCloudTextGlyph, PlanWordCloudLayout, PlanWordCloudSummary } from '@neural-charts/core/plan';
2
+ import type { NativeScene, NativeSeries } from './contracts.js';
3
+ export type NativeWordCloudGeometry = Readonly<{
4
+ status: 'measuring';
5
+ fontKey: string;
6
+ }> | Readonly<{
7
+ status: 'ready';
8
+ fontKey: string;
9
+ data: readonly PlanWordCloudSummary[];
10
+ layout: PlanWordCloudLayout;
11
+ }>;
12
+ /** Own glyph/source roles once; touches never measure fonts or repeat packing. */
13
+ export declare function ownWordCloud(scene: NativeScene): Readonly<{
14
+ wordcloud?: NativeWordCloudGeometry;
15
+ }>;
16
+ export declare function ownWordCloudGlyphs(series: NativeSeries): Readonly<{
17
+ textGlyphs?: readonly PlanWordCloudTextGlyph[];
18
+ }>;
19
+ //# sourceMappingURL=wordcloud-scene.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wordcloud-scene.d.ts","sourceRoot":"","sources":["../../src/library/wordcloud-scene.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAC,sBAAsB,EAAC,mBAAmB,EAAC,oBAAoB,EAAC,MAAM,0BAA0B,CAAC;AAC9G,OAAO,KAAK,EAAC,WAAW,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAE7D,MAAM,MAAM,uBAAuB,GAAC,QAAQ,CAAC;IAAC,MAAM,EAAC,WAAW,CAAC;IAAA,OAAO,EAAC,MAAM,CAAA;CAAC,CAAC,GAC9E,QAAQ,CAAC;IAAC,MAAM,EAAC,OAAO,CAAC;IAAA,OAAO,EAAC,MAAM,CAAC;IAAA,IAAI,EAAC,SAAS,oBAAoB,EAAE,CAAC;IAAA,MAAM,EAAC,mBAAmB,CAAA;CAAC,CAAC,CAAC;AAI7G,kFAAkF;AAClF,wBAAgB,YAAY,CAAC,KAAK,EAAC,WAAW,GAAE,QAAQ,CAAC;IAAC,SAAS,CAAC,EAAC,uBAAuB,CAAA;CAAC,CAAC,CA6B7F;AACD,wBAAgB,kBAAkB,CAAC,MAAM,EAAC,YAAY,GAAE,QAAQ,CAAC;IAAC,UAAU,CAAC,EAAC,SAAS,sBAAsB,EAAE,CAAA;CAAC,CAAC,CAIhH"}
@@ -0,0 +1,58 @@
1
+ const bounded = (v, max) => typeof v === 'number' && Number.isFinite(v) && v >= 0 && v <= max;
2
+ const text = (v, max) => typeof v === 'string' && v.length > 0 && v.length <= max;
3
+ const reasons = ['hidden', 'unknown', 'zero', 'budget', 'noInk', 'noSpace'];
4
+ /** Own glyph/source roles once; touches never measure fonts or repeat packing. */
5
+ export function ownWordCloud(scene) {
6
+ const source = scene.wordcloud;
7
+ if (scene.family !== 'wordcloud') {
8
+ if (source || scene.series.some(s => s.textGlyphs !== undefined))
9
+ throw Error('Text glyphs require Wordcloud');
10
+ return {};
11
+ }
12
+ if (!source || !text(source.fontKey, 512) || scene.observations.length > 128)
13
+ throw Error('Missing bounded font source');
14
+ if (source.status === 'measuring') {
15
+ if (scene.observations.length || scene.series.some(s => s.textGlyphs?.length))
16
+ throw Error('Pending text cannot be interactive');
17
+ return { wordcloud: { status: 'measuring', fontKey: source.fontKey } };
18
+ }
19
+ if (source.status !== 'ready' || !Array.isArray(source.data) || source.data.length > 2048)
20
+ throw Error('Invalid word source');
21
+ const ids = new Set();
22
+ const data = source.data.map(word => {
23
+ if (!word || !text(word.id?.pointId, 128) || !text(word.id?.seriesId, 128) || ids.has(word.id.pointId) || !text(word.text, 512) || /[\r\n\u000b\u000c\u0085\u2028\u2029]/u.test(word.text) || word.weight !== null && !bounded(word.weight, Number.MAX_VALUE))
24
+ throw Error('Invalid original word');
25
+ ids.add(word.id.pointId);
26
+ const d = word.decision;
27
+ if (!d || d.type === 'displayed' && (!bounded(d.fontSize, 128) || d.fontSize < 4 || d.rotation !== 0 && d.rotation !== 90) || d.type === 'notDisplayed' && !reasons.includes(d.reason) || d.type !== 'displayed' && d.type !== 'notDisplayed')
28
+ throw Error('Invalid word decision');
29
+ return { id: { ...word.id }, text: word.text, weight: word.weight, decision: { ...d } };
30
+ });
31
+ const l = source.layout, counts = Object.fromEntries(reasons.map(reason => [reason, data.filter(word => word.decision.type === 'notDisplayed' && word.decision.reason === reason).length]));
32
+ if (!l || l.sourceWords !== data.length || l.displayedWords !== scene.observations.length || !bounded(l.requestedWords, 128) || !bounded(l.attempts, 32768) || !bounded(l.collisionChecks, 4194304) || typeof l.budgetExhausted !== 'boolean' || reasons.some(r => l.notDisplayed?.[r] !== counts[r]) || l.emptyReason !== undefined && !['noSource', 'noEligibleWords', 'noInk', 'noSpace'].includes(l.emptyReason))
33
+ throw Error('Invalid word layout');
34
+ const byId = new Map(data.map(word => [word.id.pointId, word])), glyphIds = new Set();
35
+ for (const series of scene.series)
36
+ for (const g of series.textGlyphs ?? []) {
37
+ const original = byId.get(g.pointId);
38
+ if (!original || original.id.seriesId !== series.id || original.decision.type !== 'displayed' || glyphIds.has(g.pointId) || g.text !== original.text || g.fontKey !== source.fontKey || g.fontSize !== original.decision.fontSize || g.rotation !== original.decision.rotation)
39
+ throw Error('Glyph identity differs from source');
40
+ glyphIds.add(g.pointId);
41
+ if (!bounded(g.measured?.width, 1e6) || !bounded(g.measured?.height, 1e6) || !g.measured.width || !g.measured.height || !bounded(g.bounds?.x, scene.width) || !bounded(g.bounds?.y, scene.height) || !bounded(g.bounds?.width, scene.width) || !bounded(g.bounds?.height, scene.height) || g.bounds.x + g.bounds.width > scene.width + 1e-6 || g.bounds.y + g.bounds.height > scene.height + 1e-6 || !bounded(g.center?.x, scene.width) || !bounded(g.center?.y, scene.height) || !/^#[\da-f]{6}$/iu.test(g.color))
42
+ throw Error('Invalid measured glyph');
43
+ const point = scene.observations.find(p => p.id.pointId === g.pointId && p.id.seriesId === series.id);
44
+ if (!point || point.label !== original.text || point.value !== original.weight || point.hit?.type !== 'polygon')
45
+ throw Error('Word hit differs from source');
46
+ }
47
+ if (glyphIds.size !== scene.observations.length || data.filter(w => w.decision.type === 'displayed').length !== glyphIds.size)
48
+ throw Error('Missing text glyph');
49
+ return { wordcloud: { status: 'ready', fontKey: source.fontKey, data, layout: { ...l, notDisplayed: { ...l.notDisplayed } } } };
50
+ }
51
+ export function ownWordCloudGlyphs(series) {
52
+ if (series.textGlyphs === undefined)
53
+ return {};
54
+ if (!Array.isArray(series.textGlyphs) || series.textGlyphs.length > 128)
55
+ throw Error('Text glyph budget');
56
+ return { textGlyphs: series.textGlyphs.map(g => ({ ...g, center: { ...g.center }, measured: { ...g.measured }, bounds: { ...g.bounds } })) };
57
+ }
58
+ //# sourceMappingURL=wordcloud-scene.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wordcloud-scene.js","sourceRoot":"","sources":["../../src/library/wordcloud-scene.ts"],"names":[],"mappings":"AAKA,MAAM,OAAO,GAAC,CAAC,CAAS,EAAC,GAAU,EAAa,EAAE,CAAA,OAAO,CAAC,KAAG,QAAQ,IAAE,MAAM,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAE,CAAC,IAAE,CAAC,IAAE,CAAC,IAAE,GAAG,CAAC;AACxG,MAAM,IAAI,GAAC,CAAC,CAAS,EAAC,GAAU,EAAa,EAAE,CAAA,OAAO,CAAC,KAAG,QAAQ,IAAE,CAAC,CAAC,MAAM,GAAC,CAAC,IAAE,CAAC,CAAC,MAAM,IAAE,GAAG,CAAC;AAC9F,MAAM,OAAO,GAAC,CAAC,QAAQ,EAAC,SAAS,EAAC,MAAM,EAAC,QAAQ,EAAC,OAAO,EAAC,SAAS,CAAU,CAAC;AAC9E,kFAAkF;AAClF,MAAM,UAAU,YAAY,CAAC,KAAiB;IAC5C,MAAM,MAAM,GAAC,KAAK,CAAC,SAAS,CAAC;IAC7B,IAAG,KAAK,CAAC,MAAM,KAAG,WAAW,EAAC,CAAC;QAAA,IAAG,MAAM,IAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,UAAU,KAAG,SAAS,CAAC;YAAC,MAAM,KAAK,CAAC,+BAA+B,CAAC,CAAC;QAAA,OAAO,EAAE,CAAC;IAAA,CAAC;IACjJ,IAAG,CAAC,MAAM,IAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAC,GAAG,CAAC,IAAE,KAAK,CAAC,YAAY,CAAC,MAAM,GAAC,GAAG;QAAC,MAAM,KAAK,CAAC,6BAA6B,CAAC,CAAC;IAChH,IAAG,MAAM,CAAC,MAAM,KAAG,WAAW,EAAC,CAAC;QAC9B,IAAG,KAAK,CAAC,YAAY,CAAC,MAAM,IAAE,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,UAAU,EAAE,MAAM,CAAC;YAAC,MAAM,KAAK,CAAC,oCAAoC,CAAC,CAAC;QAC3H,OAAO,EAAC,SAAS,EAAC,EAAC,MAAM,EAAC,WAAW,EAAC,OAAO,EAAC,MAAM,CAAC,OAAO,EAAC,EAAC,CAAC;IACjE,CAAC;IACD,IAAG,MAAM,CAAC,MAAM,KAAG,OAAO,IAAE,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,IAAE,MAAM,CAAC,IAAI,CAAC,MAAM,GAAC,IAAI;QAAC,MAAM,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACpH,MAAM,GAAG,GAAC,IAAI,GAAG,EAAU,CAAC;IAC5B,MAAM,IAAI,GAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAA,EAAE;QAC/B,IAAG,CAAC,IAAI,IAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,EAAC,GAAG,CAAC,IAAE,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,QAAQ,EAAC,GAAG,CAAC,IAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,IAAE,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAC,GAAG,CAAC,IAAE,uCAAuC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAE,IAAI,CAAC,MAAM,KAAG,IAAI,IAAE,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAC,MAAM,CAAC,SAAS,CAAC;YAAC,MAAM,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC9Q,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC;QAAA,MAAM,CAAC,GAAC,IAAI,CAAC,QAAQ,CAAC;QAC/C,IAAG,CAAC,CAAC,IAAE,CAAC,CAAC,IAAI,KAAG,WAAW,IAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAC,GAAG,CAAC,IAAE,CAAC,CAAC,QAAQ,GAAC,CAAC,IAAE,CAAC,CAAC,QAAQ,KAAG,CAAC,IAAE,CAAC,CAAC,QAAQ,KAAG,EAAE,CAAC,IAAE,CAAC,CAAC,IAAI,KAAG,cAAc,IAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,IAAE,CAAC,CAAC,IAAI,KAAG,WAAW,IAAE,CAAC,CAAC,IAAI,KAAG,cAAc;YAAC,MAAM,KAAK,CAAC,uBAAuB,CAAC,CAAC;QACjP,OAAO,EAAC,EAAE,EAAC,EAAC,GAAG,IAAI,CAAC,EAAE,EAAC,EAAC,IAAI,EAAC,IAAI,CAAC,IAAI,EAAC,MAAM,EAAC,IAAI,CAAC,MAAM,EAAC,QAAQ,EAAC,EAAC,GAAG,CAAC,EAAC,EAAC,CAAC;IAC7E,CAAC,CAAC,CAAC;IACH,MAAM,CAAC,GAAC,MAAM,CAAC,MAAM,EAAC,MAAM,GAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC,GAAG,CAAC,MAAM,CAAA,EAAE,CAAA,CAAC,MAAM,EAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAA,EAAE,CAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,KAAG,cAAc,IAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAG,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;IAC5K,IAAG,CAAC,CAAC,IAAE,CAAC,CAAC,WAAW,KAAG,IAAI,CAAC,MAAM,IAAE,CAAC,CAAC,cAAc,KAAG,KAAK,CAAC,YAAY,CAAC,MAAM,IAAE,CAAC,OAAO,CAAC,CAAC,CAAC,cAAc,EAAC,GAAG,CAAC,IAAE,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAC,KAAK,CAAC,IAAE,CAAC,OAAO,CAAC,CAAC,CAAC,eAAe,EAAC,OAAO,CAAC,IAAE,OAAO,CAAC,CAAC,eAAe,KAAG,SAAS,IAAE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,YAAY,EAAE,CAAC,CAAC,CAAC,KAAG,MAAM,CAAC,CAAC,CAAC,CAAC,IAAE,CAAC,CAAC,WAAW,KAAG,SAAS,IAAE,CAAC,CAAC,UAAU,EAAC,iBAAiB,EAAC,OAAO,EAAC,SAAS,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC;QAAC,MAAM,KAAK,CAAC,qBAAqB,CAAC,CAAC;IACnZ,MAAM,IAAI,GAAC,IAAI,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAA,EAAE,CAAA,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAC,IAAI,CAAC,CAAC,CAAC,EAAC,QAAQ,GAAC,IAAI,GAAG,EAAU,CAAC;IACtF,KAAI,MAAM,MAAM,IAAI,KAAK,CAAC,MAAM;QAAC,KAAI,MAAM,CAAC,IAAI,MAAM,CAAC,UAAU,IAAE,EAAE,EAAC,CAAC;YACrE,MAAM,QAAQ,GAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YACnC,IAAG,CAAC,QAAQ,IAAE,QAAQ,CAAC,EAAE,CAAC,QAAQ,KAAG,MAAM,CAAC,EAAE,IAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,KAAG,WAAW,IAAE,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,IAAE,CAAC,CAAC,IAAI,KAAG,QAAQ,CAAC,IAAI,IAAE,CAAC,CAAC,OAAO,KAAG,MAAM,CAAC,OAAO,IAAE,CAAC,CAAC,QAAQ,KAAG,QAAQ,CAAC,QAAQ,CAAC,QAAQ,IAAE,CAAC,CAAC,QAAQ,KAAG,QAAQ,CAAC,QAAQ,CAAC,QAAQ;gBAAC,MAAM,KAAK,CAAC,oCAAoC,CAAC,CAAC;YACtS,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC;YACxB,IAAG,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,KAAK,EAAC,GAAG,CAAC,IAAE,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,EAAE,MAAM,EAAC,GAAG,CAAC,IAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,IAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,IAAE,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAC,KAAK,CAAC,KAAK,CAAC,IAAE,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAC,KAAK,CAAC,MAAM,CAAC,IAAE,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,KAAK,EAAC,KAAK,CAAC,KAAK,CAAC,IAAE,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,EAAC,KAAK,CAAC,MAAM,CAAC,IAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAC,CAAC,CAAC,MAAM,CAAC,KAAK,GAAC,KAAK,CAAC,KAAK,GAAC,IAAI,IAAE,CAAC,CAAC,MAAM,CAAC,CAAC,GAAC,CAAC,CAAC,MAAM,CAAC,MAAM,GAAC,KAAK,CAAC,MAAM,GAAC,IAAI,IAAE,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAC,KAAK,CAAC,KAAK,CAAC,IAAE,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAC,KAAK,CAAC,MAAM,CAAC,IAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;gBAAC,MAAM,KAAK,CAAC,wBAAwB,CAAC,CAAC;YAC5e,MAAM,KAAK,GAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,EAAE,CAAC,OAAO,KAAG,CAAC,CAAC,OAAO,IAAE,CAAC,CAAC,EAAE,CAAC,QAAQ,KAAG,MAAM,CAAC,EAAE,CAAC,CAAC;YAC5F,IAAG,CAAC,KAAK,IAAE,KAAK,CAAC,KAAK,KAAG,QAAQ,CAAC,IAAI,IAAE,KAAK,CAAC,KAAK,KAAG,QAAQ,CAAC,MAAM,IAAE,KAAK,CAAC,GAAG,EAAE,IAAI,KAAG,SAAS;gBAAC,MAAM,KAAK,CAAC,8BAA8B,CAAC,CAAC;QACjJ,CAAC;IACD,IAAG,QAAQ,CAAC,IAAI,KAAG,KAAK,CAAC,YAAY,CAAC,MAAM,IAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAG,WAAW,CAAC,CAAC,MAAM,KAAG,QAAQ,CAAC,IAAI;QAAC,MAAM,KAAK,CAAC,oBAAoB,CAAC,CAAC;IACrJ,OAAO,EAAC,SAAS,EAAC,EAAC,MAAM,EAAC,OAAO,EAAC,OAAO,EAAC,MAAM,CAAC,OAAO,EAAC,IAAI,EAAC,MAAM,EAAC,EAAC,GAAG,CAAC,EAAC,YAAY,EAAC,EAAC,GAAG,CAAC,CAAC,YAAY,EAAC,EAAC,EAAC,EAAC,CAAC;AACjH,CAAC;AACD,MAAM,UAAU,kBAAkB,CAAC,MAAmB;IACpD,IAAG,MAAM,CAAC,UAAU,KAAG,SAAS;QAAC,OAAO,EAAE,CAAC;IAC3C,IAAG,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,UAAU,CAAC,IAAE,MAAM,CAAC,UAAU,CAAC,MAAM,GAAC,GAAG;QAAC,MAAM,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACpG,OAAO,EAAC,UAAU,EAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAA,EAAE,CAAA,CAAC,EAAC,GAAG,CAAC,EAAC,MAAM,EAAC,EAAC,GAAG,CAAC,CAAC,MAAM,EAAC,EAAC,QAAQ,EAAC,EAAC,GAAG,CAAC,CAAC,QAAQ,EAAC,EAAC,MAAM,EAAC,EAAC,GAAG,CAAC,CAAC,MAAM,EAAC,EAAC,CAAC,CAAC,EAAC,CAAC;AAC5H,CAAC"}
@@ -0,0 +1,14 @@
1
+ import * as i0 from "@angular/core";
2
+ /** Use Angular Native's platform source, shared by all chart instances. */
3
+ export declare const CHART_ACTIVITY_ENVIRONMENT: import("@angular/core").InjectionToken<import("@ng-native/device").AppStateSource>;
4
+ export declare class ChartActivity {
5
+ private readonly source;
6
+ private readonly value;
7
+ private readonly listeners;
8
+ readonly active: import("@angular/core").Signal<boolean>;
9
+ onSuspend(listener: () => void): () => void;
10
+ constructor();
11
+ static ɵfac: i0.ɵɵFactoryDeclaration<ChartActivity, never>;
12
+ static ɵprov: i0.ɵɵInjectableDeclaration<any>;
13
+ }
14
+ //# sourceMappingURL=activity.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"activity.d.ts","sourceRoot":"","sources":["../../src/native/activity.ts"],"names":[],"mappings":";AAGA,2EAA2E;AAC3E,eAAO,MAAM,0BAA0B,oFAAgB,CAAC;AACxD,qBACa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAoC;IAC3D,OAAO,CAAC,QAAQ,CAAC,KAAK,CAA0C;IAChE,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAqB;IAC/C,QAAQ,CAAC,MAAM,0CAAyB;IACxC,SAAS,CAAC,QAAQ,EAAC,MAAI,IAAI,GAAE,MAAI,IAAI;;yCAL1B,aAAa;;CAezB"}