@primeui/chart-core 0.0.1-alpha.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 (299) hide show
  1. package/LICENSE +23 -0
  2. package/README.md +1 -0
  3. package/dist/animations/index.d.mts +136 -0
  4. package/dist/animations/index.mjs +18 -0
  5. package/dist/annotation.utils-Bm0lOO1o.d.mts +290 -0
  6. package/dist/borderRadius.utils-Cz73LLR_.d.mts +54 -0
  7. package/dist/canvas-D4vigq47.d.mts +34 -0
  8. package/dist/canvas.utils-D2WHi2gL.d.mts +167 -0
  9. package/dist/cartesian/index.d.mts +94 -0
  10. package/dist/cartesian/index.mjs +93 -0
  11. package/dist/chunk-22ST6YPP.mjs +304 -0
  12. package/dist/chunk-2QK2KOBN.mjs +10 -0
  13. package/dist/chunk-2QRS4YQ5.mjs +18 -0
  14. package/dist/chunk-3FFJEX4A.mjs +261 -0
  15. package/dist/chunk-3IYSJ2U7.mjs +567 -0
  16. package/dist/chunk-3OZLP4I4.mjs +190 -0
  17. package/dist/chunk-3WEMHXZI.mjs +198 -0
  18. package/dist/chunk-3Z62EUJN.mjs +138 -0
  19. package/dist/chunk-4C6EVJ54.mjs +362 -0
  20. package/dist/chunk-53HW45JB.mjs +102 -0
  21. package/dist/chunk-55Y3WI6S.mjs +186 -0
  22. package/dist/chunk-5JCI2DEB.mjs +97 -0
  23. package/dist/chunk-66T4MRC5.mjs +113 -0
  24. package/dist/chunk-6HSEJLSR.mjs +376 -0
  25. package/dist/chunk-6STOLMCA.mjs +187 -0
  26. package/dist/chunk-7CMVDIOU.mjs +54 -0
  27. package/dist/chunk-7QQ6ETB4.mjs +228 -0
  28. package/dist/chunk-A6ZQZFL2.mjs +272 -0
  29. package/dist/chunk-ADKLH73T.mjs +1 -0
  30. package/dist/chunk-AGU3NG6D.mjs +22 -0
  31. package/dist/chunk-AHYIS6EB.mjs +230 -0
  32. package/dist/chunk-AP3UYWYT.mjs +4 -0
  33. package/dist/chunk-ARB5T6MP.mjs +326 -0
  34. package/dist/chunk-ARRGOEFX.mjs +585 -0
  35. package/dist/chunk-AUF4CHDP.mjs +422 -0
  36. package/dist/chunk-B4FTADAZ.mjs +561 -0
  37. package/dist/chunk-BABQKA6K.mjs +339 -0
  38. package/dist/chunk-BETFQBM2.mjs +197 -0
  39. package/dist/chunk-BKP26M4K.mjs +413 -0
  40. package/dist/chunk-BZN2QHGP.mjs +200 -0
  41. package/dist/chunk-C36VWQ7A.mjs +86 -0
  42. package/dist/chunk-CHW4RKY3.mjs +16 -0
  43. package/dist/chunk-CINXJIRR.mjs +120 -0
  44. package/dist/chunk-DN6AXQYZ.mjs +667 -0
  45. package/dist/chunk-DP2IZNN3.mjs +92 -0
  46. package/dist/chunk-DTWTCFRG.mjs +119 -0
  47. package/dist/chunk-EAMUNLRU.mjs +172 -0
  48. package/dist/chunk-EDAKJLNA.mjs +17 -0
  49. package/dist/chunk-ERVQB2VZ.mjs +59 -0
  50. package/dist/chunk-FFMT6OCO.mjs +92 -0
  51. package/dist/chunk-FHTC2YDB.mjs +102 -0
  52. package/dist/chunk-FRST55HY.mjs +16 -0
  53. package/dist/chunk-HDFGCN2F.mjs +132 -0
  54. package/dist/chunk-IEGLX7VL.mjs +42 -0
  55. package/dist/chunk-ILUWFYGY.mjs +220 -0
  56. package/dist/chunk-IXOWSEHO.mjs +114 -0
  57. package/dist/chunk-J4RI2C2G.mjs +172 -0
  58. package/dist/chunk-J65DBT4R.mjs +13 -0
  59. package/dist/chunk-JGOVWSKH.mjs +179 -0
  60. package/dist/chunk-JO7VACY2.mjs +25 -0
  61. package/dist/chunk-JWFBOPM6.mjs +122 -0
  62. package/dist/chunk-KNDZP446.mjs +895 -0
  63. package/dist/chunk-KP2TWD4Z.mjs +90 -0
  64. package/dist/chunk-KQIFO5I3.mjs +225 -0
  65. package/dist/chunk-KVDEROP6.mjs +59 -0
  66. package/dist/chunk-LKC7MZKK.mjs +87 -0
  67. package/dist/chunk-LVMDQ4OJ.mjs +305 -0
  68. package/dist/chunk-M7B3JF43.mjs +90 -0
  69. package/dist/chunk-MTGMXRNF.mjs +136 -0
  70. package/dist/chunk-N3TIT3OH.mjs +1040 -0
  71. package/dist/chunk-NHRK5KU2.mjs +890 -0
  72. package/dist/chunk-NKUYIWAP.mjs +243 -0
  73. package/dist/chunk-NPDZLYIF.mjs +238 -0
  74. package/dist/chunk-O2X6FF45.mjs +499 -0
  75. package/dist/chunk-OGJ6IIBW.mjs +176 -0
  76. package/dist/chunk-OHGCZZPZ.mjs +403 -0
  77. package/dist/chunk-OWW3K55O.mjs +351 -0
  78. package/dist/chunk-OXTFAWSK.mjs +60 -0
  79. package/dist/chunk-PLSDU3C2.mjs +890 -0
  80. package/dist/chunk-PRDVPOZX.mjs +223 -0
  81. package/dist/chunk-Q6PPVIHU.mjs +21 -0
  82. package/dist/chunk-QQBXUDM4.mjs +885 -0
  83. package/dist/chunk-QS76E3TD.mjs +111 -0
  84. package/dist/chunk-QWQ6HY4I.mjs +209 -0
  85. package/dist/chunk-R6Y3R7EW.mjs +135 -0
  86. package/dist/chunk-RBLZRT5K.mjs +190 -0
  87. package/dist/chunk-RO4N6YFS.mjs +167 -0
  88. package/dist/chunk-RQ3CKQOX.mjs +984 -0
  89. package/dist/chunk-SALTGZFR.mjs +208 -0
  90. package/dist/chunk-SANZPAJ4.mjs +14 -0
  91. package/dist/chunk-SDBPQ5CF.mjs +624 -0
  92. package/dist/chunk-SSLTFJ3U.mjs +364 -0
  93. package/dist/chunk-SXHVDJGF.mjs +77 -0
  94. package/dist/chunk-TA4MVAEX.mjs +243 -0
  95. package/dist/chunk-TAHCOZHF.mjs +1772 -0
  96. package/dist/chunk-TQ6S34QZ.mjs +152 -0
  97. package/dist/chunk-UPRXABX5.mjs +90 -0
  98. package/dist/chunk-VGLSBZDN.mjs +71 -0
  99. package/dist/chunk-VN7CKCSE.mjs +364 -0
  100. package/dist/chunk-VVI3OBPJ.mjs +524 -0
  101. package/dist/chunk-VWF57TS3.mjs +62 -0
  102. package/dist/chunk-WA3OVISZ.mjs +179 -0
  103. package/dist/chunk-WCG35U6M.mjs +964 -0
  104. package/dist/chunk-WFTX4AQJ.mjs +194 -0
  105. package/dist/chunk-WFVOQ2QZ.mjs +18 -0
  106. package/dist/chunk-WH3C3Y7P.mjs +149 -0
  107. package/dist/chunk-WPFUV7K3.mjs +488 -0
  108. package/dist/chunk-WRULPWHD.mjs +492 -0
  109. package/dist/chunk-WS64BZXT.mjs +1 -0
  110. package/dist/chunk-WY4AURRE.mjs +2419 -0
  111. package/dist/chunk-WYLILAOO.mjs +167 -0
  112. package/dist/chunk-X4D7FKUS.mjs +62 -0
  113. package/dist/chunk-X7T34OLW.mjs +139 -0
  114. package/dist/chunk-XIHBK5D3.mjs +68 -0
  115. package/dist/chunk-XQQCGFYB.mjs +50 -0
  116. package/dist/chunk-XTVE4P3L.mjs +214 -0
  117. package/dist/chunk-XUAASRXW.mjs +579 -0
  118. package/dist/chunk-Y3L3D4GQ.mjs +685 -0
  119. package/dist/chunk-YBJ56XJS.mjs +132 -0
  120. package/dist/chunk-ZQFK6CAE.mjs +1 -0
  121. package/dist/chunk-ZT2Z7ERM.mjs +874 -0
  122. package/dist/chunk-ZTL2FQEW.mjs +714 -0
  123. package/dist/circular/arc/index.d.mts +8 -0
  124. package/dist/circular/arc/index.mjs +3 -0
  125. package/dist/circular/index.d.mts +44 -0
  126. package/dist/circular/index.mjs +13 -0
  127. package/dist/collect.utils-DiKB4ciO.d.mts +12 -0
  128. package/dist/computeChartState-BTVIqwyO.d.mts +304 -0
  129. package/dist/controller-BJE1AZ3q.d.mts +82 -0
  130. package/dist/controller-BoNigQJr.d.mts +63 -0
  131. package/dist/controllers/index.d.mts +16 -0
  132. package/dist/controllers/index.mjs +110 -0
  133. package/dist/datalabel.utils-CkjGeB8S.d.mts +122 -0
  134. package/dist/decimation.utils-CcvJVhI4.d.mts +244 -0
  135. package/dist/geometry-DUUQJXVM.d.mts +60 -0
  136. package/dist/index-DseIZa1j.d.mts +167 -0
  137. package/dist/index.d.mts +88 -0
  138. package/dist/index.mjs +110 -0
  139. package/dist/orchestrator/index.d.mts +264 -0
  140. package/dist/orchestrator/index.mjs +33 -0
  141. package/dist/plugins/index.d.mts +18 -0
  142. package/dist/plugins/index.mjs +1 -0
  143. package/dist/property-animations-D433wXzz.d.mts +580 -0
  144. package/dist/property-store-NORUWFND.d.mts +17 -0
  145. package/dist/radial/index.d.mts +14 -0
  146. package/dist/radial/index.mjs +37 -0
  147. package/dist/renderers/axis/index.d.mts +39 -0
  148. package/dist/renderers/axis/index.mjs +8 -0
  149. package/dist/renderers/circular/index.d.mts +13 -0
  150. package/dist/renderers/circular/index.mjs +13 -0
  151. package/dist/renderers/index.d.mts +83 -0
  152. package/dist/renderers/index.mjs +75 -0
  153. package/dist/renderers/navigator/index.d.mts +103 -0
  154. package/dist/renderers/navigator/index.mjs +8 -0
  155. package/dist/resize.utils-D_2qm6rv.d.mts +142 -0
  156. package/dist/ring.utils-DXvrxMkU.d.mts +138 -0
  157. package/dist/scale-KFv30jqZ.d.mts +307 -0
  158. package/dist/scales-Drf8AIhL.d.mts +75 -0
  159. package/dist/series/bar/canvas/index.d.mts +8 -0
  160. package/dist/series/bar/canvas/index.mjs +10 -0
  161. package/dist/series/bar/controller/index.d.mts +105 -0
  162. package/dist/series/bar/controller/index.mjs +44 -0
  163. package/dist/series/bar/controller-canvas/index.d.mts +7 -0
  164. package/dist/series/bar/controller-canvas/index.mjs +49 -0
  165. package/dist/series/bar/controller-svg/index.d.mts +7 -0
  166. package/dist/series/bar/controller-svg/index.mjs +49 -0
  167. package/dist/series/bar/index.d.mts +60 -0
  168. package/dist/series/bar/index.mjs +13 -0
  169. package/dist/series/bar/svg/index.d.mts +8 -0
  170. package/dist/series/bar/svg/index.mjs +11 -0
  171. package/dist/series/candlestick/canvas/index.d.mts +8 -0
  172. package/dist/series/candlestick/canvas/index.mjs +8 -0
  173. package/dist/series/candlestick/controller/index.d.mts +123 -0
  174. package/dist/series/candlestick/controller/index.mjs +40 -0
  175. package/dist/series/candlestick/controller-canvas/index.d.mts +7 -0
  176. package/dist/series/candlestick/controller-canvas/index.mjs +45 -0
  177. package/dist/series/candlestick/controller-svg/index.d.mts +7 -0
  178. package/dist/series/candlestick/controller-svg/index.mjs +45 -0
  179. package/dist/series/candlestick/index.d.mts +11 -0
  180. package/dist/series/candlestick/index.mjs +10 -0
  181. package/dist/series/candlestick/svg/index.d.mts +8 -0
  182. package/dist/series/candlestick/svg/index.mjs +8 -0
  183. package/dist/series/heatmap/canvas/index.d.mts +16 -0
  184. package/dist/series/heatmap/canvas/index.mjs +9 -0
  185. package/dist/series/heatmap/controller/index.d.mts +110 -0
  186. package/dist/series/heatmap/controller/index.mjs +23 -0
  187. package/dist/series/heatmap/controller-canvas/index.d.mts +7 -0
  188. package/dist/series/heatmap/controller-canvas/index.mjs +28 -0
  189. package/dist/series/heatmap/controller-svg/index.d.mts +7 -0
  190. package/dist/series/heatmap/controller-svg/index.mjs +28 -0
  191. package/dist/series/heatmap/index.d.mts +34 -0
  192. package/dist/series/heatmap/index.mjs +13 -0
  193. package/dist/series/heatmap/svg/index.d.mts +15 -0
  194. package/dist/series/heatmap/svg/index.mjs +10 -0
  195. package/dist/series/line/canvas/index.d.mts +6 -0
  196. package/dist/series/line/canvas/index.mjs +9 -0
  197. package/dist/series/line/controller/index.d.mts +111 -0
  198. package/dist/series/line/controller/index.mjs +47 -0
  199. package/dist/series/line/controller-canvas/index.d.mts +7 -0
  200. package/dist/series/line/controller-canvas/index.mjs +54 -0
  201. package/dist/series/line/controller-svg/index.d.mts +7 -0
  202. package/dist/series/line/controller-svg/index.mjs +54 -0
  203. package/dist/series/line/index.d.mts +49 -0
  204. package/dist/series/line/index.mjs +13 -0
  205. package/dist/series/line/svg/index.d.mts +6 -0
  206. package/dist/series/line/svg/index.mjs +9 -0
  207. package/dist/series/pie/canvas/index.d.mts +8 -0
  208. package/dist/series/pie/canvas/index.mjs +10 -0
  209. package/dist/series/pie/controller/index.d.mts +174 -0
  210. package/dist/series/pie/controller/index.mjs +110 -0
  211. package/dist/series/pie/controller-canvas/index.d.mts +8 -0
  212. package/dist/series/pie/controller-canvas/index.mjs +119 -0
  213. package/dist/series/pie/controller-svg/index.d.mts +8 -0
  214. package/dist/series/pie/controller-svg/index.mjs +118 -0
  215. package/dist/series/pie/index.d.mts +59 -0
  216. package/dist/series/pie/index.mjs +15 -0
  217. package/dist/series/pie/svg/index.d.mts +6 -0
  218. package/dist/series/pie/svg/index.mjs +11 -0
  219. package/dist/series/polar/canvas/index.d.mts +6 -0
  220. package/dist/series/polar/canvas/index.mjs +7 -0
  221. package/dist/series/polar/controller/index.d.mts +102 -0
  222. package/dist/series/polar/controller/index.mjs +46 -0
  223. package/dist/series/polar/controller-canvas/index.d.mts +8 -0
  224. package/dist/series/polar/controller-canvas/index.mjs +52 -0
  225. package/dist/series/polar/controller-svg/index.d.mts +8 -0
  226. package/dist/series/polar/controller-svg/index.mjs +52 -0
  227. package/dist/series/polar/index.d.mts +25 -0
  228. package/dist/series/polar/index.mjs +16 -0
  229. package/dist/series/polar/svg/index.d.mts +10 -0
  230. package/dist/series/polar/svg/index.mjs +8 -0
  231. package/dist/series/radar/canvas/index.d.mts +6 -0
  232. package/dist/series/radar/canvas/index.mjs +8 -0
  233. package/dist/series/radar/controller/index.d.mts +121 -0
  234. package/dist/series/radar/controller/index.mjs +43 -0
  235. package/dist/series/radar/controller-canvas/index.d.mts +8 -0
  236. package/dist/series/radar/controller-canvas/index.mjs +51 -0
  237. package/dist/series/radar/controller-svg/index.d.mts +8 -0
  238. package/dist/series/radar/controller-svg/index.mjs +51 -0
  239. package/dist/series/radar/index.d.mts +40 -0
  240. package/dist/series/radar/index.mjs +13 -0
  241. package/dist/series/radar/svg/index.d.mts +12 -0
  242. package/dist/series/radar/svg/index.mjs +9 -0
  243. package/dist/series/scatter/canvas/index.d.mts +8 -0
  244. package/dist/series/scatter/canvas/index.mjs +11 -0
  245. package/dist/series/scatter/controller/index.d.mts +124 -0
  246. package/dist/series/scatter/controller/index.mjs +44 -0
  247. package/dist/series/scatter/controller-canvas/index.d.mts +7 -0
  248. package/dist/series/scatter/controller-canvas/index.mjs +51 -0
  249. package/dist/series/scatter/controller-svg/index.d.mts +7 -0
  250. package/dist/series/scatter/controller-svg/index.mjs +51 -0
  251. package/dist/series/scatter/index.d.mts +25 -0
  252. package/dist/series/scatter/index.mjs +14 -0
  253. package/dist/series/scatter/svg/index.d.mts +8 -0
  254. package/dist/series/scatter/svg/index.mjs +12 -0
  255. package/dist/series/treemap/canvas/index.d.mts +50 -0
  256. package/dist/series/treemap/canvas/index.mjs +10 -0
  257. package/dist/series/treemap/controller/index.d.mts +130 -0
  258. package/dist/series/treemap/controller/index.mjs +20 -0
  259. package/dist/series/treemap/controller-canvas/index.d.mts +7 -0
  260. package/dist/series/treemap/controller-canvas/index.mjs +25 -0
  261. package/dist/series/treemap/controller-svg/index.d.mts +7 -0
  262. package/dist/series/treemap/controller-svg/index.mjs +25 -0
  263. package/dist/series/treemap/index.d.mts +15 -0
  264. package/dist/series/treemap/index.mjs +12 -0
  265. package/dist/series/treemap/svg/index.d.mts +15 -0
  266. package/dist/series/treemap/svg/index.mjs +9 -0
  267. package/dist/slices-DtewiwJx.d.mts +72 -0
  268. package/dist/spatialIndex.utils-B_GJkotZ.d.mts +5 -0
  269. package/dist/squarify.utils-B9CQBpa1.d.mts +50 -0
  270. package/dist/stacking-CChuAcLN.d.mts +319 -0
  271. package/dist/streaming.utils-DH-g1gNP.d.mts +49 -0
  272. package/dist/sync/index.d.mts +130 -0
  273. package/dist/sync/index.mjs +5 -0
  274. package/dist/tooltip.renderer-D5wpSlBa.d.mts +210 -0
  275. package/dist/utils/color/index.d.mts +58 -0
  276. package/dist/utils/color/index.mjs +4 -0
  277. package/dist/utils/data/index.d.mts +180 -0
  278. package/dist/utils/data/index.mjs +7 -0
  279. package/dist/utils/export/index.d.mts +14 -0
  280. package/dist/utils/export/index.mjs +6 -0
  281. package/dist/utils/index.d.mts +49 -0
  282. package/dist/utils/index.mjs +29 -0
  283. package/dist/utils/interaction/index.d.mts +255 -0
  284. package/dist/utils/interaction/index.mjs +9 -0
  285. package/dist/utils/layout/index.d.mts +3 -0
  286. package/dist/utils/layout/index.mjs +10 -0
  287. package/dist/utils/math/index.d.mts +162 -0
  288. package/dist/utils/math/index.mjs +1 -0
  289. package/dist/utils/render/index.d.mts +19 -0
  290. package/dist/utils/render/index.mjs +3 -0
  291. package/dist/utils/specialized/index.d.mts +37 -0
  292. package/dist/utils/specialized/index.mjs +66 -0
  293. package/dist/utils/text/index.d.mts +39 -0
  294. package/dist/utils/text/index.mjs +8 -0
  295. package/dist/utils/theme/index.d.mts +295 -0
  296. package/dist/utils/theme/index.mjs +5 -0
  297. package/dist/utils/zoom/index.d.mts +90 -0
  298. package/dist/utils/zoom/index.mjs +3 -0
  299. package/package.json +56 -0
@@ -0,0 +1,66 @@
1
+ export { detectStreamingUpdateKind, streamingPointsInterpolator } from '../../chunk-XQQCGFYB.mjs';
2
+ import '../../chunk-WH3C3Y7P.mjs';
3
+ export { DEFAULT_EXPORT_MENU_ITEMS, DEFAULT_EXPORT_MENU_PROPS, EXPORT_MENU_CONSTANTS, EXPORT_MENU_LABELS, HAMBURGER_ICON_PATH, ScatterDecimator, decimate, decimateKMeans, decimateLTTB, decimateMinMax, estimateExportMenuHeight, filterExportMenuItems, getExportAction, isExportMenuSeparator, resolveExportMenuPlacement, resolveExportMenuProps } from '../../chunk-OWW3K55O.mjs';
4
+ export { buildAncestorChain, buildDrilldownTree, createDrilldownState, drillInto, drillToLevel, drillToRoot, drillUp, getAncestorPath, getChildren, getDrilldownRootLabel, getLeaves, isDrilldownEnabled, isParentNode } from '../../chunk-WA3OVISZ.mjs';
5
+ export { buildQuadtree } from '../../chunk-C36VWQ7A.mjs';
6
+ export { diceLayout, resquarify, sliceDiceLayout, sliceLayout, squarify } from '../../chunk-BETFQBM2.mjs';
7
+ export { ZoomPanController } from '../../chunk-WRULPWHD.mjs';
8
+ import '../../chunk-QS76E3TD.mjs';
9
+ import '../../chunk-O2X6FF45.mjs';
10
+ import '../../chunk-SSLTFJ3U.mjs';
11
+ import { createLinearScale } from '../../chunk-RQ3CKQOX.mjs';
12
+
13
+ // src/utils/specialized/zoom.utils.ts
14
+ function isZoomed(state) {
15
+ return state.x !== null || state.y !== null;
16
+ }
17
+ function normalizeZoomState(state, originals) {
18
+ const atFullExtent = (w, domain) => {
19
+ if (!w || !domain) return false;
20
+ const range = domain[1] - domain[0];
21
+ const eps = Math.max(Math.abs(range), 1) * 1e-9;
22
+ return Math.abs(w.min - domain[0]) <= eps && Math.abs(w.max - domain[1]) <= eps;
23
+ };
24
+ const nextX = atFullExtent(state.x, originals.x) ? null : state.x;
25
+ const nextY = atFullExtent(state.y, originals.y) ? null : state.y;
26
+ if (nextX === state.x && nextY === state.y) return state;
27
+ return { x: nextX, y: nextY };
28
+ }
29
+ function createInitialZoomState() {
30
+ return { x: null, y: null };
31
+ }
32
+ function normalizeSubConfig(value, defaults) {
33
+ if (value === false) return null;
34
+ if (value === true || value === void 0) return defaults;
35
+ return { ...defaults, ...value };
36
+ }
37
+ function buildZoomScales(layoutData, zoomState) {
38
+ const isVertical = layoutData.orientation === "vertical";
39
+ const timeScale = layoutData.sharedTimeScale;
40
+ const firstValueScale = layoutData.valueScales.values().next().value;
41
+ const scatterXScale = layoutData.scatterXScales?.values().next().value;
42
+ let categoryIndexScale;
43
+ if (!timeScale && !scatterXScale) {
44
+ const origDomain = isVertical ? layoutData.originalDomains?.x : layoutData.originalDomains?.y;
45
+ const catRange = isVertical ? [layoutData.cartesianArea.x, layoutData.cartesianArea.x + layoutData.cartesianArea.width] : [layoutData.cartesianArea.y, layoutData.cartesianArea.y + layoutData.cartesianArea.height];
46
+ if (origDomain) {
47
+ const zoomAxis = isVertical ? zoomState?.x : zoomState?.y;
48
+ const activeDomain = zoomAxis ? [zoomAxis.min, zoomAxis.max] : origDomain;
49
+ const bandScale = layoutData.sharedCategoryScale;
50
+ const bandDomain = bandScale?.domain();
51
+ if (bandScale && bandDomain && bandDomain.length > 0) {
52
+ const bw = bandScale.bandwidth();
53
+ const firstPos = (bandScale(bandDomain[0]) ?? catRange[0]) + bw / 2;
54
+ const lastPos = (bandScale(bandDomain[bandDomain.length - 1]) ?? catRange[1]) + bw / 2;
55
+ categoryIndexScale = createLinearScale(activeDomain, [firstPos, lastPos]);
56
+ } else {
57
+ categoryIndexScale = createLinearScale(activeDomain, catRange);
58
+ }
59
+ }
60
+ }
61
+ const xScale = isVertical ? timeScale ?? scatterXScale ?? categoryIndexScale ?? void 0 : firstValueScale;
62
+ const yScale = isVertical ? firstValueScale : timeScale ?? scatterXScale ?? categoryIndexScale ?? void 0;
63
+ return { x: xScale, y: yScale };
64
+ }
65
+
66
+ export { buildZoomScales, createInitialZoomState, isZoomed, normalizeSubConfig, normalizeZoomState };
@@ -0,0 +1,39 @@
1
+ export { C as CHAR_WIDTH_RATIO, c as calculateWrappedTextHeight, b as calculateWrappedTextWidth, d as cleanupMeasureContext, e as clearTextWidthCache, g as createSvgTitle, f as formatCompactValue, a as formatDataLabelText, h as getTitleAnchor, i as getTitleX, j as getTitleY, o as measureFontMetrics, m as measureText, k as measureTextWidth, n as normalizeDataLabelConfig, r as renderCanvasTitle, s as setTextMeasurer, l as svgAnchorToCanvasAlign, w as wrapText } from '../../datalabel.utils-CkjGeB8S.mjs';
2
+ import { CollisionAvoidanceOptions, CollisionResult } from '@primeui/chart-types';
3
+
4
+ /**
5
+ * Resolve label collisions via sequential pipeline: auto-rotate → auto-skip.
6
+ *
7
+ * 1. If labels collide at 0° and autoRotate is enabled (horizontal axes only),
8
+ * switch to autoRotateAngle.
9
+ * 2. Find the minimum skip step so that visible labels don't overlap at the
10
+ * effective rotation.
11
+ *
12
+ * When manualRotation is set (tickRotation prop), it takes priority over
13
+ * auto-rotation — only the skip stage runs.
14
+ */
15
+ declare function resolveCollisionAvoidance(options: CollisionAvoidanceOptions): CollisionResult;
16
+ /**
17
+ * Check whether adjacent labels collide at the given rotation.
18
+ */
19
+ declare function hasCollisions(labels: string[], positions: number[], fontSize: number, fontWeight: string, fontFamily: string, rotation: number, minSpacing: number, isHorizontal?: boolean): boolean;
20
+ /**
21
+ * Calculate the axis-parallel footprint of a label at a given rotation.
22
+ *
23
+ * At rotation=0 the footprint equals the label width.
24
+ * At rotation≠0 the footprint is the projection of the rotated bounding box
25
+ * onto the axis direction: width·|cos(θ)| + height·|sin(θ)|.
26
+ */
27
+ declare function calculateLabelFootprint(labelWidth: number, fontSize: number, rotation: number): number;
28
+ /**
29
+ * Adjust text anchor and baseline for rotated data labels.
30
+ * When labels above bars are rotated, the default 'middle'/'auto' alignment
31
+ * no longer visually centers them — we need to adjust based on the rotation angle
32
+ * so labels stay aligned to bar centers and extend away from the bar.
33
+ */
34
+ declare function adjustLabelForRotation(rotation: number, textAnchor: string, baseline: string): {
35
+ textAnchor: string;
36
+ baseline: string;
37
+ };
38
+
39
+ export { adjustLabelForRotation, calculateLabelFootprint, hasCollisions, resolveCollisionAvoidance };
@@ -0,0 +1,8 @@
1
+ export { formatDataLabelText, normalizeDataLabelConfig } from '../../chunk-OXTFAWSK.mjs';
2
+ export { adjustLabelForRotation, calculateLabelFootprint, hasCollisions, resolveCollisionAvoidance } from '../../chunk-R6Y3R7EW.mjs';
3
+ export { CHAR_WIDTH_RATIO, calculateWrappedTextHeight, calculateWrappedTextWidth, cleanupMeasureContext, clearTextWidthCache, createSvgTitle, formatCompactValue, getTitleAnchor, getTitleX, getTitleY, measureFontMetrics, measureText, measureTextWidth, renderCanvasTitle, setTextMeasurer, svgAnchorToCanvasAlign, wrapText } from '../../chunk-XTVE4P3L.mjs';
4
+ import '../../chunk-NKUYIWAP.mjs';
5
+ import '../../chunk-QS76E3TD.mjs';
6
+ import '../../chunk-O2X6FF45.mjs';
7
+ import '../../chunk-SSLTFJ3U.mjs';
8
+ import '../../chunk-RQ3CKQOX.mjs';
@@ -0,0 +1,295 @@
1
+ import { GlobalFont } from '@primeui/chart-types';
2
+ import { ChartTheme } from '@primeui/chart-types/theme';
3
+
4
+ /** Default colors for light mode */
5
+ declare const LIGHT_MODE_COLORS: {
6
+ readonly text: "#000000";
7
+ readonly background: "#ffffff";
8
+ readonly surfaceBackground: "#f5f5f5";
9
+ };
10
+ /** Default colors for dark mode */
11
+ declare const DARK_MODE_COLORS: {
12
+ readonly text: "#ffffff";
13
+ readonly background: "#3f3f46";
14
+ readonly surfaceBackground: "#27272a";
15
+ };
16
+ /** Axis line and tick mark color (light mode) — mirrors `--p-chart-axis` / `--p-chart-neutral-60`. */
17
+ declare const DEFAULT_AXIS_COLOR = "#666666";
18
+ /** Grid line color (light mode) — mirrors `--p-chart-grid` / `--p-chart-neutral-10`. */
19
+ declare const DEFAULT_GRID_COLOR = "#e2e8f0";
20
+ /** Tick label text color (light mode) — mirrors `--p-chart-tick-label-color` / `--p-chart-neutral-60`. */
21
+ declare const DEFAULT_TICK_LABEL_COLOR = "#666666";
22
+ /** Axis line and tick mark color (dark mode) */
23
+ declare const DEFAULT_AXIS_COLOR_DARK = "#a1a1aa";
24
+ /** Grid line color (dark mode) */
25
+ declare const DEFAULT_GRID_COLOR_DARK = "#3f3f46";
26
+ /** Tick label text color (dark mode) */
27
+ declare const DEFAULT_TICK_LABEL_COLOR_DARK = "#a1a1aa";
28
+ /** Default font family used across all chart text */
29
+ declare const DEFAULT_FONT_FAMILY = "system-ui, sans-serif";
30
+ /** Default tick label font size (px) */
31
+ declare const DEFAULT_TICK_FONT_SIZE = 12;
32
+ /** Default axis title font size (px) */
33
+ declare const DEFAULT_TITLE_FONT_SIZE = 14;
34
+ /** Length of tick mark in pixels */
35
+ declare const DEFAULT_TICK_LENGTH = 6;
36
+ /** Padding between tick mark and label in pixels */
37
+ declare const DEFAULT_LABEL_PADDING = 8;
38
+ /** Distance from axis to title text */
39
+ declare const DEFAULT_TITLE_OFFSET = 45;
40
+ /** Chart title font size (px) — larger than axis title */
41
+ declare const DEFAULT_CHART_TITLE_FONT_SIZE = 16;
42
+ /** Padding around chart title (px) */
43
+ declare const DEFAULT_CHART_TITLE_PADDING = 10;
44
+ /** Chart caption font size (px) */
45
+ declare const DEFAULT_CHART_CAPTION_FONT_SIZE = 13;
46
+ /** Padding around chart caption (px) — asymmetric: less above, more below to separate from chart */
47
+ declare const DEFAULT_CHART_CAPTION_PADDING: {
48
+ readonly top: 8;
49
+ readonly bottom: 20;
50
+ };
51
+ /** Default chart padding on each side (px) */
52
+ declare const DEFAULT_CHART_PADDING = 10;
53
+ /** Default legend height for top/bottom position (px) */
54
+ declare const DEFAULT_LEGEND_HEIGHT = 30;
55
+ /** Default legend width for left/right position (px) */
56
+ declare const DEFAULT_LEGEND_WIDTH = 100;
57
+ /** Padding around legend (px) */
58
+ declare const DEFAULT_LEGEND_PADDING = 10;
59
+ /** Chart title text color (light mode) — mirrors `--p-chart-neutral-100`. */
60
+ declare const DEFAULT_CHART_TITLE_COLOR = "#0f172a";
61
+ /** Chart title text color (dark mode) — mirrors `--p-chart-neutral-100` dark. */
62
+ declare const DEFAULT_CHART_TITLE_COLOR_DARK = "#fafafa";
63
+ /** Chart caption text color (light mode) — mirrors `--p-chart-neutral-40`. */
64
+ declare const DEFAULT_CHART_CAPTION_COLOR = "#94a3b8";
65
+ /** Chart caption text color (dark mode) — mirrors `--p-chart-neutral-40` dark. */
66
+ declare const DEFAULT_CHART_CAPTION_COLOR_DARK = "#71717a";
67
+ /** Data label text color (light mode) — mirrors `--p-chart-neutral-80`. */
68
+ declare const DEFAULT_DATA_LABEL_COLOR = "#334155";
69
+ /** Data label text color (dark mode) — mirrors `--p-chart-neutral-80` dark. */
70
+ declare const DEFAULT_DATA_LABEL_COLOR_DARK = "#e4e4e7";
71
+ /** Annotation text color (light mode) — mirrors `--p-chart-neutral-80`. */
72
+ declare const DEFAULT_ANNOTATION_COLOR = "#334155";
73
+ /** Annotation text color (dark mode) — mirrors `--p-chart-neutral-80` dark. */
74
+ declare const DEFAULT_ANNOTATION_COLOR_DARK = "#e4e4e7";
75
+ /** Data label font size (px) */
76
+ declare const DEFAULT_DATA_LABEL_FONT_SIZE = 12;
77
+ /** Data label font family */
78
+ declare const DEFAULT_DATA_LABEL_FONT_FAMILY = "system-ui, sans-serif";
79
+ /** Bracket line color (light mode) */
80
+ declare const DEFAULT_BRACKET_COLOR = "#999";
81
+ /** Bracket line color (dark mode) */
82
+ declare const DEFAULT_BRACKET_COLOR_DARK = "#71717a";
83
+ /** Group label color (light mode) */
84
+ declare const DEFAULT_GROUP_LABEL_COLOR = "#444";
85
+ /** Group label color (dark mode) */
86
+ declare const DEFAULT_GROUP_LABEL_COLOR_DARK = "#a1a1aa";
87
+ /** Group label font size (px) */
88
+ declare const DEFAULT_GROUP_LABEL_FONT_SIZE = 11;
89
+ /** Group label font weight */
90
+ declare const DEFAULT_GROUP_LABEL_FONT_WEIGHT = 600;
91
+ /** Crosshair line color (light mode) */
92
+ declare const DEFAULT_CROSSHAIR_COLOR = "rgba(0, 0, 0, 0.5)";
93
+ /** Crosshair line color (dark mode) */
94
+ declare const DEFAULT_CROSSHAIR_COLOR_DARK = "rgba(255, 255, 255, 0.3)";
95
+ /** Reference line stroke color — mirrors `defaultLightTheme.referenceLineColor` / `--p-chart-reference-line`. */
96
+ declare const DEFAULT_REFERENCE_LINE_STROKE = "#94a3b8";
97
+ /** Reference line stroke width (px) */
98
+ declare const DEFAULT_REFERENCE_LINE_WIDTH = 1;
99
+ /** Reference band fill color — mirrors `defaultLightTheme.referenceBandFill` / `--p-chart-reference-band`.
100
+ * Alpha is baked in (`#0000001a` ≈ rgba(0,0,0,0.10)); no separate opacity multiplier needed. */
101
+ declare const DEFAULT_REFERENCE_BAND_FILL = "#0000001a";
102
+ /** Reference band fill opacity — kept for backwards compat with callers that apply it separately.
103
+ * When using theme.referenceBandFill the alpha should be baked into the hex. */
104
+ declare const DEFAULT_REFERENCE_BAND_OPACITY = 1;
105
+ /** Reference line/band label font size (px) */
106
+ declare const DEFAULT_REFERENCE_LABEL_FONT_SIZE = 11;
107
+ /** Reference line/band label font weight */
108
+ declare const DEFAULT_REFERENCE_LABEL_FONT_WEIGHT = 500;
109
+ /** Reference line/band label offset from line (px) */
110
+ declare const DEFAULT_REFERENCE_LABEL_OFFSET = 4;
111
+ /** Brightness multiplier for the hovered item */
112
+ declare const DEFAULT_HOVER_BRIGHTNESS = 1.1;
113
+ /** Opacity applied to non-hovered items when something is hovered */
114
+ declare const DEFAULT_HOVER_DIM_OPACITY = 0.6;
115
+ /** Hover point radius multiplier — hovered marker = markerSize × this value */
116
+ declare const DEFAULT_HOVER_POINT_RADIUS_MULTIPLIER = 1.3;
117
+ /** Default hover offset for bars / pie slices (px) */
118
+ declare const DEFAULT_HOVER_OFFSET = 0;
119
+ /** Line series stroke width (px) */
120
+ declare const DEFAULT_LINE_WIDTH = 2;
121
+ /** Area fill opacity (0-1) */
122
+ declare const DEFAULT_AREA_FILL_OPACITY = 0.3;
123
+ /** Default marker size for line/radar series (px) */
124
+ declare const DEFAULT_LINE_MARKER_SIZE = 4;
125
+ /** Scatter point marker size (px) */
126
+ declare const DEFAULT_SCATTER_MARKER_SIZE = 6;
127
+ /** Minimum bubble radius (px) */
128
+ declare const DEFAULT_MIN_BUBBLE_SIZE = 4;
129
+ /** Maximum bubble radius (px) */
130
+ declare const DEFAULT_MAX_BUBBLE_SIZE = 40;
131
+ /** Scatter hit detection radius (px) */
132
+ declare const DEFAULT_SCATTER_HIT_RADIUS = 10;
133
+ /** Scatter/bubble fill opacity — overlap-aware default so dense clusters read as darker areas */
134
+ declare const DEFAULT_SCATTER_FILL_OPACITY = 0.7;
135
+ /** Scatter/bubble marker border width (px) — pairs with reduced fill opacity to keep isolated points crisp */
136
+ declare const DEFAULT_SCATTER_BORDER_WIDTH = 1;
137
+ /** Above this visible-point count per series, scatter hit-test builds a quadtree on first hover instead of linear-scanning */
138
+ declare const SCATTER_SPATIAL_INDEX_THRESHOLD = 2000;
139
+ /** When `boost === 'auto'`, scatter switches into boost mode at this visible-point count per series */
140
+ declare const SCATTER_BOOST_AUTO_THRESHOLD = 50000;
141
+ /** When `boost === 'auto'`, a line series batches its markers into merged paths at this point count */
142
+ declare const LINE_BOOST_AUTO_THRESHOLD = 50000;
143
+ /** Above this visible-point count per series, the SVG renderer warns once that canvas/decimation would scale better */
144
+ declare const SCATTER_SVG_CEILING_WARNING = 10000;
145
+ /** Above this visible element count, an SVG painter warns to prefer canvas/decimation (dev-only). */
146
+ declare const SVG_ELEMENT_CEILING_WARNING = 8000;
147
+ /** Radar fill opacity (0-1) */
148
+ declare const DEFAULT_RADAR_FILL_OPACITY = 0.2;
149
+ /** Radar hit detection radius (px) */
150
+ declare const DEFAULT_RADAR_HIT_RADIUS = 15;
151
+ /** Grid subdivision levels for radar/polar charts */
152
+ declare const DEFAULT_GRID_LEVELS = 5;
153
+ /** Radar/polar axis label font size (px) */
154
+ declare const DEFAULT_RADIAL_LABEL_FONT_SIZE = 12;
155
+ /** Gap between bars in polar charts (pixels — converted to degrees per category at render time using the outer radius) */
156
+ declare const DEFAULT_POLAR_GAP_PX = 8;
157
+ /** Candlestick up (bullish) color — light mode. Mirrors `--p-chart-positive` light. */
158
+ declare const DEFAULT_CANDLESTICK_UP_COLOR = "#1eb854";
159
+ /** Candlestick down (bearish) color — light mode. Mirrors `--p-chart-negative` light. */
160
+ declare const DEFAULT_CANDLESTICK_DOWN_COLOR = "#dc2828";
161
+ /** Candlestick neutral/doji color — light mode. Mirrors `--p-chart-candle-neutral` light. */
162
+ declare const DEFAULT_CANDLESTICK_NEUTRAL_COLOR = "#6b7280";
163
+ /** Candlestick wick stroke width (px) */
164
+ declare const DEFAULT_CANDLESTICK_WICK_WIDTH = 1;
165
+ /** Treemap cell padding (px) */
166
+ declare const DEFAULT_TREEMAP_PADDING = 2;
167
+ /** Treemap group label header height (px) */
168
+ declare const DEFAULT_TREEMAP_GROUP_LABEL_HEIGHT = 18;
169
+ /** Treemap default cell fill color — mirrors `--p-chart-treemap-cell` (Studio cobalt). */
170
+ declare const DEFAULT_TREEMAP_CELL_COLOR = "#3563e9";
171
+ /** Treemap header background color — mirrors `--p-chart-treemap-header-bg`. */
172
+ declare const DEFAULT_TREEMAP_HEADER_BG = "rgba(0,0,0,0.6)";
173
+ /** Treemap header text color — mirrors `--p-chart-treemap-header-text`. */
174
+ declare const DEFAULT_TREEMAP_HEADER_TEXT_COLOR = "#FFFFFF";
175
+ /** Treemap cell border color — mirrors `--p-chart-treemap-cell-border`. */
176
+ declare const DEFAULT_TREEMAP_CELL_BORDER_COLOR = "rgba(0,0,0,0.15)";
177
+ /** Default color palette for treemap groups — same Studio hexes as `--p-chart-color-N`. */
178
+ declare const DEFAULT_TREEMAP_GROUP_COLORS: string[];
179
+ /** Navigator vertical padding (px) */
180
+ declare const DEFAULT_NAV_PADDING_Y = 4;
181
+ /** Navigator horizontal padding (px) — prevents edge points from being clipped by rounded corners */
182
+ declare const DEFAULT_NAV_PADDING_X = 6;
183
+ /** Navigator minimum selection width (px) */
184
+ declare const DEFAULT_NAV_MIN_SELECTION_WIDTH = 20;
185
+ /** Navigator handle width (px) */
186
+ declare const DEFAULT_NAV_HANDLE_WIDTH = 6;
187
+ /** Navigator grip line gap (px) */
188
+ declare const DEFAULT_NAV_GRIP_LINE_GAP = 3;
189
+ /** Navigator visual defaults */
190
+ declare const DEFAULT_NAV_STYLE: {
191
+ readonly height: 60;
192
+ readonly gap: 8;
193
+ readonly color: "#94a3b8";
194
+ readonly opacity: 0.3;
195
+ readonly selectionColor: "rgba(59,130,246,0.7)";
196
+ readonly selectionFill: "rgba(59,130,246,0.08)";
197
+ readonly maskColor: "rgba(0,0,0,0.12)";
198
+ };
199
+ /** Even-index category background fill */
200
+ declare const DEFAULT_BG_FILL_EVEN = "rgba(0,0,0,0.03)";
201
+ /** Odd-index category background fill */
202
+ declare const DEFAULT_BG_FILL_ODD = "rgba(0,0,0,0.06)";
203
+ /** Bracket tick mark size (px) */
204
+ declare const DEFAULT_BRACKET_TICK_SIZE = 5;
205
+ /** Gap between bracket line and axis (px) */
206
+ declare const DEFAULT_BRACKET_GAP = 4;
207
+ /** Height of each bracket nesting layer (px) */
208
+ declare const DEFAULT_BRACKET_DEPTH_LAYER_SIZE = 24;
209
+ /** Bracket label offset from bracket line (px) */
210
+ declare const DEFAULT_BRACKET_LABEL_OFFSET = 6;
211
+ /** Space reserved for axis title when brackets are present (px) */
212
+ declare const DEFAULT_BRACKET_AXIS_TITLE_SPACE = 30;
213
+ /** Padding between data point and its label (px) */
214
+ declare const DEFAULT_LABEL_SPACING = 6;
215
+ /** Gap between outermost tick label edge and axis title center (px) */
216
+ declare const DEFAULT_TITLE_LABEL_GAP = 16;
217
+ /** Fallback color for unresolved slice/bar colors */
218
+ declare const DEFAULT_FALLBACK_COLOR = "#808080";
219
+ /** Fallback border stroke color */
220
+ declare const DEFAULT_BORDER_COLOR = "#000";
221
+ /**
222
+ * Resolve a font size relative to the global base.
223
+ *
224
+ * Every text element has a default size (e.g. chart title = 16px, tick labels = 12px).
225
+ * When a user sets a global `fontSize` on the container, all elements scale proportionally:
226
+ *
227
+ * resolvedSize = defaultPx / 12 * globalBase
228
+ *
229
+ * Examples with `fontSize={16}`:
230
+ * - Tick labels (12px default) → 16px (1.00×)
231
+ * - Chart title (16px default) → 21px (1.33×)
232
+ * - Group labels (11px default) → 15px (0.92×)
233
+ *
234
+ * When `globalFont` is undefined or has no `size`, returns `defaultPx` unchanged.
235
+ */
236
+ declare function resolveFontSize(defaultPx: number, globalFont?: GlobalFont): number;
237
+ /**
238
+ * Resolve the font family: explicit per-element → global override → default constant.
239
+ */
240
+ declare function resolveFontFamily(elementFamily: string | undefined, globalFont?: GlobalFont): string;
241
+
242
+ /**
243
+ * Merge a user-supplied partial theme onto the default light theme. Scalar
244
+ * fields shallow-merge; `series` merges **element-wise** so
245
+ * `theme={{ series: ['#ff0000'] }}` only changes color-0 and leaves 1–9 from
246
+ * the base. Pass `undefined` for an element to keep the base color.
247
+ *
248
+ * For dark-mode usage, callers should pass a partial that targets dark hexes
249
+ * (or pass `defaultDarkTheme` directly). The library does NOT auto-detect
250
+ * dark mode — that's the bridge utility's job in user-space (see canvas
251
+ * theming guide).
252
+ */
253
+ declare function resolveTheme(userTheme: ChartTheme | undefined): Required<ChartTheme>;
254
+ /**
255
+ * Resolve the color for a specific axis index from a resolved theme.
256
+ * Falls back to the first slot, then to a safe neutral so the return is always a string.
257
+ * Renderers should call this instead of indexing `theme.axes` directly to avoid
258
+ * `string | undefined` type errors when the slot is unset.
259
+ */
260
+ declare function resolveAxisColor(theme: Required<ChartTheme>, index?: number): string;
261
+ /**
262
+ * Expand a `ChartTheme` to inline-style CSS variables. Returns an object
263
+ * suitable for spreading into a Vue `:style` or React `style` prop on the
264
+ * chart container. Undefined / unset fields are skipped — the CSS class rules
265
+ * then resolve via the active `themes/*.css` token file.
266
+ */
267
+ declare function themeToCssVars(theme: ChartTheme | undefined): Record<string, string>;
268
+ /**
269
+ * Resolve background color, optionally detecting from DOM or dark mode.
270
+ * Useful for exports where 'auto' background should detect actual theme.
271
+ *
272
+ * @param container - Container element to walk up for background detection
273
+ * @param requestedBg - Requested background ('auto' for detection, or specific color)
274
+ * @returns Resolved background color
275
+ */
276
+ declare function resolveBackgroundColor(container: HTMLElement, requestedBg: string): string;
277
+ /**
278
+ * Calculate luminance of a color (0-255 scale).
279
+ * Uses the standard formula weighted for human perception.
280
+ *
281
+ * @param r - Red component (0-255)
282
+ * @param g - Green component (0-255)
283
+ * @param b - Blue component (0-255)
284
+ * @returns Luminance value (0-255)
285
+ */
286
+ declare function calculateLuminance(r: number, g: number, b: number): number;
287
+ /**
288
+ * Determine if a color is dark based on luminance.
289
+ *
290
+ * @param color - CSS color string (hex or rgb/rgba)
291
+ * @returns True if color is dark (luminance < 128)
292
+ */
293
+ declare function isColorDark(color: string): boolean;
294
+
295
+ export { DARK_MODE_COLORS, DEFAULT_ANNOTATION_COLOR, DEFAULT_ANNOTATION_COLOR_DARK, DEFAULT_AREA_FILL_OPACITY, DEFAULT_AXIS_COLOR, DEFAULT_AXIS_COLOR_DARK, DEFAULT_BG_FILL_EVEN, DEFAULT_BG_FILL_ODD, DEFAULT_BORDER_COLOR, DEFAULT_BRACKET_AXIS_TITLE_SPACE, DEFAULT_BRACKET_COLOR, DEFAULT_BRACKET_COLOR_DARK, DEFAULT_BRACKET_DEPTH_LAYER_SIZE, DEFAULT_BRACKET_GAP, DEFAULT_BRACKET_LABEL_OFFSET, DEFAULT_BRACKET_TICK_SIZE, DEFAULT_CANDLESTICK_DOWN_COLOR, DEFAULT_CANDLESTICK_NEUTRAL_COLOR, DEFAULT_CANDLESTICK_UP_COLOR, DEFAULT_CANDLESTICK_WICK_WIDTH, DEFAULT_CHART_CAPTION_COLOR, DEFAULT_CHART_CAPTION_COLOR_DARK, DEFAULT_CHART_CAPTION_FONT_SIZE, DEFAULT_CHART_CAPTION_PADDING, DEFAULT_CHART_PADDING, DEFAULT_CHART_TITLE_COLOR, DEFAULT_CHART_TITLE_COLOR_DARK, DEFAULT_CHART_TITLE_FONT_SIZE, DEFAULT_CHART_TITLE_PADDING, DEFAULT_CROSSHAIR_COLOR, DEFAULT_CROSSHAIR_COLOR_DARK, DEFAULT_DATA_LABEL_COLOR, DEFAULT_DATA_LABEL_COLOR_DARK, DEFAULT_DATA_LABEL_FONT_FAMILY, DEFAULT_DATA_LABEL_FONT_SIZE, DEFAULT_FALLBACK_COLOR, DEFAULT_FONT_FAMILY, DEFAULT_GRID_COLOR, DEFAULT_GRID_COLOR_DARK, DEFAULT_GRID_LEVELS, DEFAULT_GROUP_LABEL_COLOR, DEFAULT_GROUP_LABEL_COLOR_DARK, DEFAULT_GROUP_LABEL_FONT_SIZE, DEFAULT_GROUP_LABEL_FONT_WEIGHT, DEFAULT_HOVER_BRIGHTNESS, DEFAULT_HOVER_DIM_OPACITY, DEFAULT_HOVER_OFFSET, DEFAULT_HOVER_POINT_RADIUS_MULTIPLIER, DEFAULT_LABEL_PADDING, DEFAULT_LABEL_SPACING, DEFAULT_LEGEND_HEIGHT, DEFAULT_LEGEND_PADDING, DEFAULT_LEGEND_WIDTH, DEFAULT_LINE_MARKER_SIZE, DEFAULT_LINE_WIDTH, DEFAULT_MAX_BUBBLE_SIZE, DEFAULT_MIN_BUBBLE_SIZE, DEFAULT_NAV_GRIP_LINE_GAP, DEFAULT_NAV_HANDLE_WIDTH, DEFAULT_NAV_MIN_SELECTION_WIDTH, DEFAULT_NAV_PADDING_X, DEFAULT_NAV_PADDING_Y, DEFAULT_NAV_STYLE, DEFAULT_POLAR_GAP_PX, DEFAULT_RADAR_FILL_OPACITY, DEFAULT_RADAR_HIT_RADIUS, DEFAULT_RADIAL_LABEL_FONT_SIZE, DEFAULT_REFERENCE_BAND_FILL, DEFAULT_REFERENCE_BAND_OPACITY, DEFAULT_REFERENCE_LABEL_FONT_SIZE, DEFAULT_REFERENCE_LABEL_FONT_WEIGHT, DEFAULT_REFERENCE_LABEL_OFFSET, DEFAULT_REFERENCE_LINE_STROKE, DEFAULT_REFERENCE_LINE_WIDTH, DEFAULT_SCATTER_BORDER_WIDTH, DEFAULT_SCATTER_FILL_OPACITY, DEFAULT_SCATTER_HIT_RADIUS, DEFAULT_SCATTER_MARKER_SIZE, DEFAULT_TICK_FONT_SIZE, DEFAULT_TICK_LABEL_COLOR, DEFAULT_TICK_LABEL_COLOR_DARK, DEFAULT_TICK_LENGTH, DEFAULT_TITLE_FONT_SIZE, DEFAULT_TITLE_LABEL_GAP, DEFAULT_TITLE_OFFSET, DEFAULT_TREEMAP_CELL_BORDER_COLOR, DEFAULT_TREEMAP_CELL_COLOR, DEFAULT_TREEMAP_GROUP_COLORS, DEFAULT_TREEMAP_GROUP_LABEL_HEIGHT, DEFAULT_TREEMAP_HEADER_BG, DEFAULT_TREEMAP_HEADER_TEXT_COLOR, DEFAULT_TREEMAP_PADDING, LIGHT_MODE_COLORS, LINE_BOOST_AUTO_THRESHOLD, SCATTER_BOOST_AUTO_THRESHOLD, SCATTER_SPATIAL_INDEX_THRESHOLD, SCATTER_SVG_CEILING_WARNING, SVG_ELEMENT_CEILING_WARNING, calculateLuminance, isColorDark, resolveAxisColor, resolveBackgroundColor, resolveFontFamily, resolveFontSize, resolveTheme, themeToCssVars };
@@ -0,0 +1,5 @@
1
+ export { DARK_MODE_COLORS, DEFAULT_ANNOTATION_COLOR, DEFAULT_ANNOTATION_COLOR_DARK, DEFAULT_AREA_FILL_OPACITY, DEFAULT_AXIS_COLOR, DEFAULT_AXIS_COLOR_DARK, DEFAULT_BG_FILL_EVEN, DEFAULT_BG_FILL_ODD, DEFAULT_BORDER_COLOR, DEFAULT_BRACKET_AXIS_TITLE_SPACE, DEFAULT_BRACKET_COLOR, DEFAULT_BRACKET_COLOR_DARK, DEFAULT_BRACKET_DEPTH_LAYER_SIZE, DEFAULT_BRACKET_GAP, DEFAULT_BRACKET_LABEL_OFFSET, DEFAULT_BRACKET_TICK_SIZE, DEFAULT_CANDLESTICK_DOWN_COLOR, DEFAULT_CANDLESTICK_NEUTRAL_COLOR, DEFAULT_CANDLESTICK_UP_COLOR, DEFAULT_CANDLESTICK_WICK_WIDTH, DEFAULT_CHART_CAPTION_COLOR, DEFAULT_CHART_CAPTION_COLOR_DARK, DEFAULT_CHART_CAPTION_FONT_SIZE, DEFAULT_CHART_CAPTION_PADDING, DEFAULT_CHART_PADDING, DEFAULT_CHART_TITLE_COLOR, DEFAULT_CHART_TITLE_COLOR_DARK, DEFAULT_CHART_TITLE_FONT_SIZE, DEFAULT_CHART_TITLE_PADDING, DEFAULT_CROSSHAIR_COLOR, DEFAULT_CROSSHAIR_COLOR_DARK, DEFAULT_DATA_LABEL_COLOR, DEFAULT_DATA_LABEL_COLOR_DARK, DEFAULT_DATA_LABEL_FONT_FAMILY, DEFAULT_DATA_LABEL_FONT_SIZE, DEFAULT_FALLBACK_COLOR, DEFAULT_FONT_FAMILY, DEFAULT_GRID_COLOR, DEFAULT_GRID_COLOR_DARK, DEFAULT_GRID_LEVELS, DEFAULT_GROUP_LABEL_COLOR, DEFAULT_GROUP_LABEL_COLOR_DARK, DEFAULT_GROUP_LABEL_FONT_SIZE, DEFAULT_GROUP_LABEL_FONT_WEIGHT, DEFAULT_HOVER_BRIGHTNESS, DEFAULT_HOVER_DIM_OPACITY, DEFAULT_HOVER_OFFSET, DEFAULT_HOVER_POINT_RADIUS_MULTIPLIER, DEFAULT_LABEL_PADDING, DEFAULT_LABEL_SPACING, DEFAULT_LEGEND_HEIGHT, DEFAULT_LEGEND_PADDING, DEFAULT_LEGEND_WIDTH, DEFAULT_LINE_MARKER_SIZE, DEFAULT_LINE_WIDTH, DEFAULT_MAX_BUBBLE_SIZE, DEFAULT_MIN_BUBBLE_SIZE, DEFAULT_NAV_GRIP_LINE_GAP, DEFAULT_NAV_HANDLE_WIDTH, DEFAULT_NAV_MIN_SELECTION_WIDTH, DEFAULT_NAV_PADDING_X, DEFAULT_NAV_PADDING_Y, DEFAULT_NAV_STYLE, DEFAULT_POLAR_GAP_PX, DEFAULT_RADAR_FILL_OPACITY, DEFAULT_RADAR_HIT_RADIUS, DEFAULT_RADIAL_LABEL_FONT_SIZE, DEFAULT_REFERENCE_BAND_FILL, DEFAULT_REFERENCE_BAND_OPACITY, DEFAULT_REFERENCE_LABEL_FONT_SIZE, DEFAULT_REFERENCE_LABEL_FONT_WEIGHT, DEFAULT_REFERENCE_LABEL_OFFSET, DEFAULT_REFERENCE_LINE_STROKE, DEFAULT_REFERENCE_LINE_WIDTH, DEFAULT_SCATTER_BORDER_WIDTH, DEFAULT_SCATTER_FILL_OPACITY, DEFAULT_SCATTER_HIT_RADIUS, DEFAULT_SCATTER_MARKER_SIZE, DEFAULT_TICK_FONT_SIZE, DEFAULT_TICK_LABEL_COLOR, DEFAULT_TICK_LABEL_COLOR_DARK, DEFAULT_TICK_LENGTH, DEFAULT_TITLE_FONT_SIZE, DEFAULT_TITLE_LABEL_GAP, DEFAULT_TITLE_OFFSET, DEFAULT_TREEMAP_CELL_BORDER_COLOR, DEFAULT_TREEMAP_CELL_COLOR, DEFAULT_TREEMAP_GROUP_COLORS, DEFAULT_TREEMAP_GROUP_LABEL_HEIGHT, DEFAULT_TREEMAP_HEADER_BG, DEFAULT_TREEMAP_HEADER_TEXT_COLOR, DEFAULT_TREEMAP_PADDING, LIGHT_MODE_COLORS, LINE_BOOST_AUTO_THRESHOLD, SCATTER_BOOST_AUTO_THRESHOLD, SCATTER_SPATIAL_INDEX_THRESHOLD, SCATTER_SVG_CEILING_WARNING, SVG_ELEMENT_CEILING_WARNING, calculateLuminance, isColorDark, resolveAxisColor, resolveBackgroundColor, resolveFontFamily, resolveFontSize, resolveTheme, themeToCssVars } from '../../chunk-NKUYIWAP.mjs';
2
+ import '../../chunk-QS76E3TD.mjs';
3
+ import '../../chunk-O2X6FF45.mjs';
4
+ import '../../chunk-SSLTFJ3U.mjs';
5
+ import '../../chunk-RQ3CKQOX.mjs';
@@ -0,0 +1,90 @@
1
+ import { CartesianLayoutData, ZoomState, LinearScale, ZoomAxisWindow, ZoomLimits, ModifierKey } from '@primeui/chart-types';
2
+ export { Z as ZoomPanController } from '../../controller-BoNigQJr.mjs';
3
+
4
+ /**
5
+ * Clamp a zoom window to limits.
6
+ * Enforces: hard min/max bounds and minimum range (max zoom depth).
7
+ *
8
+ * When originalDomain is provided, it acts as implicit hard bounds —
9
+ * the user can never zoom out beyond the original data extent, and
10
+ * an automatic minRange (originalRange / 20) prevents over-zoom-in.
11
+ */
12
+ declare function clampZoomWindow(window: ZoomAxisWindow, limits?: ZoomLimits, originalDomain?: [number, number]): ZoomAxisWindow;
13
+ /**
14
+ * Compute new domain after wheel zoom, centered on cursor position.
15
+ * zoomFactor > 1 = zoom in, < 1 = zoom out.
16
+ *
17
+ * The cursor position stays at the same data value — the domain
18
+ * contracts or expands around it proportionally.
19
+ */
20
+ declare function computeWheelZoom(currentWindow: ZoomAxisWindow, cursorDataValue: number, zoomFactor: number, limits?: ZoomLimits, originalDomain?: [number, number]): ZoomAxisWindow;
21
+ /**
22
+ * Classify a wheel event as a zoom or a pan gesture.
23
+ *
24
+ * The browser folds three physically different inputs into one `wheel` event:
25
+ * - mouse wheel → vertical deltas (any granularity, no horizontal)
26
+ * - trackpad pinch → pixel deltas with `ctrlKey` set synthetically by the browser
27
+ * - trackpad two-finger → pixel deltas, with a horizontal component when scrolling sideways
28
+ *
29
+ * Only a horizontal component (`deltaX`) reliably distinguishes a trackpad from a
30
+ * mouse, so that is the sole pan signal. A pure-vertical wheel/scroll always zooms —
31
+ * this keeps mouse-wheel zoom working regardless of how fine-grained the mouse's
32
+ * deltas are. The tradeoff is that vertical two-finger trackpad scroll zooms rather
33
+ * than pans; horizontal two-finger scroll (the natural pan gesture) and pinch still
34
+ * behave as expected.
35
+ */
36
+ declare function classifyWheelGesture(e: {
37
+ deltaX: number;
38
+ deltaY: number;
39
+ ctrlKey: boolean;
40
+ }): 'zoom' | 'pan';
41
+ /**
42
+ * Compute domain from drag selection rectangle.
43
+ * Converts two pixel positions to data values via scale.invert().
44
+ */
45
+ declare function computeDragZoomWindow(startPixel: number, endPixel: number, invert: (px: number) => number, limits?: ZoomLimits, originalDomain?: [number, number]): ZoomAxisWindow;
46
+ /**
47
+ * Compute domain after pan by pixel delta.
48
+ * Shifts the window by converting pixel delta to data delta.
49
+ */
50
+ declare function computePanDelta(currentWindow: ZoomAxisWindow, deltaPixels: number, pixelRange: number, limits?: ZoomLimits, originalDomain?: [number, number]): ZoomAxisWindow;
51
+ /**
52
+ * Check if a zoom state represents any zoom (differs from null/unzoomed).
53
+ */
54
+ declare function isZoomed(state: ZoomState): boolean;
55
+ /**
56
+ * Normalize a zoom state by snapping axis windows that match the full
57
+ * original domain to `null`. Lets `isZoomed()` return false (and UI like
58
+ * the Reset button / navigator selection disappear) after a wheel/drag
59
+ * zoom-out that reaches the original extent.
60
+ */
61
+ declare function normalizeZoomState(state: ZoomState, originals: {
62
+ x?: [number, number];
63
+ y?: [number, number];
64
+ }): ZoomState;
65
+ /**
66
+ * Check if a modifier key is currently pressed.
67
+ */
68
+ declare function isModifierKeyPressed(e: {
69
+ shiftKey: boolean;
70
+ ctrlKey: boolean;
71
+ altKey: boolean;
72
+ metaKey: boolean;
73
+ }, key?: ModifierKey): boolean;
74
+ /** Create a default (unzoomed) state */
75
+ declare function createInitialZoomState(): ZoomState;
76
+ /** Normalize boolean | config shorthand into a config object, merging with defaults */
77
+ declare function normalizeSubConfig<T extends object>(value: boolean | T | undefined, defaults: T): T | null;
78
+ /** Merge data-aware minRange from layout into user-specified zoom limits */
79
+ declare function effectiveLimit(userLimit: ZoomLimits | undefined, dataMinRange: number | undefined): ZoomLimits | undefined;
80
+ /**
81
+ * Build x/y LinearScales from layout data for the zoom system to use with invert().
82
+ * For category axes (no time/scatter), synthesizes an index-based linear scale aligned
83
+ * to actual band midpoints so pixel → category index conversion is accurate.
84
+ */
85
+ declare function buildZoomScales(layoutData: CartesianLayoutData, zoomState: ZoomState | null | undefined): {
86
+ x?: LinearScale;
87
+ y?: LinearScale;
88
+ };
89
+
90
+ export { buildZoomScales, clampZoomWindow, classifyWheelGesture, computeDragZoomWindow, computePanDelta, computeWheelZoom, createInitialZoomState, effectiveLimit, isModifierKeyPressed, isZoomed, normalizeSubConfig, normalizeZoomState };
@@ -0,0 +1,3 @@
1
+ import '../../chunk-ADKLH73T.mjs';
2
+ export { ZoomPanController, buildZoomScales, clampZoomWindow, classifyWheelGesture, computeDragZoomWindow, computePanDelta, computeWheelZoom, createInitialZoomState, effectiveLimit, isModifierKeyPressed, isZoomed, normalizeSubConfig, normalizeZoomState } from '../../chunk-WRULPWHD.mjs';
3
+ import '../../chunk-RQ3CKQOX.mjs';
package/package.json ADDED
@@ -0,0 +1,56 @@
1
+ {
2
+ "name": "@primeui/chart-core",
3
+ "version": "0.0.1-alpha.1",
4
+ "author": "PrimeTek Informatics",
5
+ "description": "Chart API for PrimeUI.",
6
+ "keywords": [
7
+ "chart",
8
+ "primeui"
9
+ ],
10
+ "license": "SEE LICENSE IN LICENSE.md",
11
+ "repository": {
12
+ "type": "git",
13
+ "url": "git+https://github.com/primefaces/primeui.git",
14
+ "directory": "packages/components/chart/chart-core"
15
+ },
16
+ "bugs": {
17
+ "url": "https://github.com/primefaces/primeui/issues"
18
+ },
19
+ "main": "./dist/index.mjs",
20
+ "exports": {
21
+ ".": {
22
+ "types": "./dist/index.d.mts",
23
+ "import": "./dist/index.mjs",
24
+ "default": "./dist/index.mjs"
25
+ },
26
+ "./*": {
27
+ "types": "./dist/*/index.d.mts",
28
+ "import": "./dist/*/index.mjs",
29
+ "default": "./dist/*/index.mjs"
30
+ }
31
+ },
32
+ "publishConfig": {
33
+ "access": "public"
34
+ },
35
+ "sideEffects": false,
36
+ "files": [
37
+ "dist",
38
+ "README.md",
39
+ "LICENSE"
40
+ ],
41
+ "dependencies": {
42
+ "@primeui/chart-types": "0.0.1-alpha.1",
43
+ "@primeui/core": "0.0.1-alpha.1"
44
+ },
45
+ "scripts": {
46
+ "build": "cross-env NODE_ENV=production INPUT_DIR=src/ OUTPUT_DIR=dist/ pnpm run build:package",
47
+ "build:dev": "cross-env NODE_ENV=development INPUT_DIR=src/ OUTPUT_DIR=dist/ pnpm run build:dev:package",
48
+ "build:package": "cross-env NODE_ENV=test pnpm run test && cross-env NODE_ENV=production NODE_OPTIONS=--max-old-space-size=8192 tsup",
49
+ "build:dev:package": "tsup --watch",
50
+ "type:check": "tsc --noEmit",
51
+ "test": "vitest run --root ../../../.. chart-core",
52
+ "dev:link": "pnpm link --global && npm link"
53
+ },
54
+ "module": "./dist/index.mjs",
55
+ "types": "./dist/index.d.mts"
56
+ }