@ktnpm_devops/react-component 0.17.0 → 0.18.0

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 (409) hide show
  1. package/dist/composites/CustomRangePicker/CustomRangePicker.d.ts.map +1 -1
  2. package/dist/composites/DatePickerDropdown/DatePickerDropdown.d.ts.map +1 -1
  3. package/dist/composites/FilterDropdown/FilterDropdown.d.ts.map +1 -1
  4. package/dist/composites/MultiSelectDropdown/MultiSelectDropdown.d.ts.map +1 -1
  5. package/dist/composites/SingleSelectDropdown/SingleSelectDropdown.d.ts.map +1 -1
  6. package/dist/constants.d.ts +2 -0
  7. package/dist/constants.d.ts.map +1 -1
  8. package/dist/hooks/usePanelPlacement.d.ts +24 -0
  9. package/dist/hooks/usePanelPlacement.d.ts.map +1 -0
  10. package/dist/index10.cjs +1 -1
  11. package/dist/index10.js +1 -1
  12. package/dist/index100.cjs +33 -39
  13. package/dist/index100.cjs.map +1 -1
  14. package/dist/index100.js +32 -38
  15. package/dist/index100.js.map +1 -1
  16. package/dist/index101.cjs +22 -9
  17. package/dist/index101.cjs.map +1 -1
  18. package/dist/index101.js +21 -8
  19. package/dist/index101.js.map +1 -1
  20. package/dist/index102.cjs +34 -9
  21. package/dist/index102.cjs.map +1 -1
  22. package/dist/index102.js +35 -10
  23. package/dist/index102.js.map +1 -1
  24. package/dist/index103.cjs +43 -19
  25. package/dist/index103.cjs.map +1 -1
  26. package/dist/index103.js +43 -19
  27. package/dist/index103.js.map +1 -1
  28. package/dist/index104.cjs +24 -13
  29. package/dist/index104.cjs.map +1 -1
  30. package/dist/index104.js +24 -13
  31. package/dist/index104.js.map +1 -1
  32. package/dist/index105.cjs +38 -9
  33. package/dist/index105.cjs.map +1 -1
  34. package/dist/index105.js +38 -9
  35. package/dist/index105.js.map +1 -1
  36. package/dist/index106.cjs +9 -70
  37. package/dist/index106.cjs.map +1 -1
  38. package/dist/index106.js +8 -69
  39. package/dist/index106.js.map +1 -1
  40. package/dist/index107.cjs +10 -15
  41. package/dist/index107.cjs.map +1 -1
  42. package/dist/index107.js +9 -14
  43. package/dist/index107.js.map +1 -1
  44. package/dist/index108.cjs +18 -46
  45. package/dist/index108.cjs.map +1 -1
  46. package/dist/index108.js +18 -46
  47. package/dist/index108.js.map +1 -1
  48. package/dist/index109.cjs +13 -17
  49. package/dist/index109.cjs.map +1 -1
  50. package/dist/index109.js +13 -17
  51. package/dist/index109.js.map +1 -1
  52. package/dist/index11.cjs +1 -1
  53. package/dist/index11.js +1 -1
  54. package/dist/index110.cjs +10 -36
  55. package/dist/index110.cjs.map +1 -1
  56. package/dist/index110.js +9 -35
  57. package/dist/index110.js.map +1 -1
  58. package/dist/index111.cjs +62 -47
  59. package/dist/index111.cjs.map +1 -1
  60. package/dist/index111.js +62 -47
  61. package/dist/index111.js.map +1 -1
  62. package/dist/index112.cjs +49 -34
  63. package/dist/index112.cjs.map +1 -1
  64. package/dist/index112.js +49 -34
  65. package/dist/index112.js.map +1 -1
  66. package/dist/index113.cjs +13 -7
  67. package/dist/index113.cjs.map +1 -1
  68. package/dist/index113.js +13 -7
  69. package/dist/index113.js.map +1 -1
  70. package/dist/index114.cjs +2 -17
  71. package/dist/index114.cjs.map +1 -1
  72. package/dist/index114.js +3 -18
  73. package/dist/index114.js.map +1 -1
  74. package/dist/index115.cjs +48 -40
  75. package/dist/index115.cjs.map +1 -1
  76. package/dist/index115.js +47 -39
  77. package/dist/index115.js.map +1 -1
  78. package/dist/index116.cjs +18 -70
  79. package/dist/index116.cjs.map +1 -1
  80. package/dist/index116.js +17 -69
  81. package/dist/index116.js.map +1 -1
  82. package/dist/index117.cjs +31 -52
  83. package/dist/index117.cjs.map +1 -1
  84. package/dist/index117.js +31 -52
  85. package/dist/index117.js.map +1 -1
  86. package/dist/index118.cjs +22 -15
  87. package/dist/index118.cjs.map +1 -1
  88. package/dist/index118.js +21 -14
  89. package/dist/index118.js.map +1 -1
  90. package/dist/index119.cjs +69 -21
  91. package/dist/index119.cjs.map +1 -1
  92. package/dist/index119.js +68 -20
  93. package/dist/index119.js.map +1 -1
  94. package/dist/index12.cjs +1 -1
  95. package/dist/index12.js +1 -1
  96. package/dist/index120.cjs +6 -16
  97. package/dist/index120.cjs.map +1 -1
  98. package/dist/index120.js +6 -16
  99. package/dist/index120.js.map +1 -1
  100. package/dist/index121.cjs +35 -2
  101. package/dist/index121.cjs.map +1 -1
  102. package/dist/index121.js +36 -3
  103. package/dist/index121.js.map +1 -1
  104. package/dist/index122.cjs +38 -14
  105. package/dist/index122.cjs.map +1 -1
  106. package/dist/index122.js +38 -14
  107. package/dist/index122.js.map +1 -1
  108. package/dist/index123.cjs +1 -1
  109. package/dist/index123.js +1 -1
  110. package/dist/index124.cjs +52 -13
  111. package/dist/index124.cjs.map +1 -1
  112. package/dist/index124.js +53 -14
  113. package/dist/index124.js.map +1 -1
  114. package/dist/index125.cjs +27 -54
  115. package/dist/index125.cjs.map +1 -1
  116. package/dist/index125.js +28 -55
  117. package/dist/index125.js.map +1 -1
  118. package/dist/index126.cjs +39 -21
  119. package/dist/index126.cjs.map +1 -1
  120. package/dist/index126.js +38 -20
  121. package/dist/index126.js.map +1 -1
  122. package/dist/index127.cjs +92 -33
  123. package/dist/index127.cjs.map +1 -1
  124. package/dist/index127.js +91 -32
  125. package/dist/index127.js.map +1 -1
  126. package/dist/index128.cjs +40 -1164
  127. package/dist/index128.cjs.map +1 -1
  128. package/dist/index128.js +38 -1163
  129. package/dist/index128.js.map +1 -1
  130. package/dist/index129.cjs +13 -1574
  131. package/dist/index129.cjs.map +1 -1
  132. package/dist/index129.js +12 -1574
  133. package/dist/index129.js.map +1 -1
  134. package/dist/index13.cjs +1 -1
  135. package/dist/index13.js +1 -1
  136. package/dist/index130.cjs +1161 -32
  137. package/dist/index130.cjs.map +1 -1
  138. package/dist/index130.js +1162 -32
  139. package/dist/index130.js.map +1 -1
  140. package/dist/index131.cjs +1578 -0
  141. package/dist/index131.cjs.map +1 -0
  142. package/dist/index131.js +1579 -0
  143. package/dist/index131.js.map +1 -0
  144. package/dist/index132.cjs +37 -0
  145. package/dist/index132.cjs.map +1 -0
  146. package/dist/index132.js +37 -0
  147. package/dist/index132.js.map +1 -0
  148. package/dist/index14.cjs +1 -1
  149. package/dist/index14.js +1 -1
  150. package/dist/index15.cjs +1 -1
  151. package/dist/index15.js +1 -1
  152. package/dist/index16.cjs +2 -2
  153. package/dist/index16.js +2 -2
  154. package/dist/index17.cjs +1 -1
  155. package/dist/index17.js +1 -1
  156. package/dist/index18.cjs +1 -1
  157. package/dist/index18.js +1 -1
  158. package/dist/index19.cjs +1 -1
  159. package/dist/index19.js +1 -1
  160. package/dist/index20.cjs +1 -1
  161. package/dist/index20.js +1 -1
  162. package/dist/index21.cjs +1 -1
  163. package/dist/index21.js +1 -1
  164. package/dist/index22.cjs +2 -2
  165. package/dist/index22.js +2 -2
  166. package/dist/index23.cjs +2 -2
  167. package/dist/index23.js +2 -2
  168. package/dist/index24.cjs +2 -2
  169. package/dist/index24.js +2 -2
  170. package/dist/index25.cjs +49 -35
  171. package/dist/index25.cjs.map +1 -1
  172. package/dist/index25.js +49 -35
  173. package/dist/index25.js.map +1 -1
  174. package/dist/index26.cjs +1 -1
  175. package/dist/index26.js +1 -1
  176. package/dist/index27.cjs +83 -56
  177. package/dist/index27.cjs.map +1 -1
  178. package/dist/index27.js +83 -56
  179. package/dist/index27.js.map +1 -1
  180. package/dist/index28.cjs +1 -1
  181. package/dist/index28.js +1 -1
  182. package/dist/index29.cjs +51 -39
  183. package/dist/index29.cjs.map +1 -1
  184. package/dist/index29.js +51 -39
  185. package/dist/index29.js.map +1 -1
  186. package/dist/index30.cjs +11 -11
  187. package/dist/index30.js +11 -11
  188. package/dist/index31.cjs +4 -4
  189. package/dist/index31.js +4 -4
  190. package/dist/index32.cjs +3 -3
  191. package/dist/index32.js +3 -3
  192. package/dist/index33.cjs +1 -1
  193. package/dist/index33.js +1 -1
  194. package/dist/index34.cjs +2 -2
  195. package/dist/index34.js +2 -2
  196. package/dist/index35.cjs +2 -2
  197. package/dist/index35.js +2 -2
  198. package/dist/index36.cjs +2 -2
  199. package/dist/index36.js +2 -2
  200. package/dist/index37.cjs +1 -1
  201. package/dist/index37.js +1 -1
  202. package/dist/index38.cjs +138 -62
  203. package/dist/index38.cjs.map +1 -1
  204. package/dist/index38.js +138 -62
  205. package/dist/index38.js.map +1 -1
  206. package/dist/index39.cjs +1 -1
  207. package/dist/index39.js +1 -1
  208. package/dist/index40.cjs +2 -2
  209. package/dist/index40.js +2 -2
  210. package/dist/index41.cjs +2 -2
  211. package/dist/index41.js +2 -2
  212. package/dist/index42.cjs +2 -2
  213. package/dist/index42.js +2 -2
  214. package/dist/index43.cjs +1 -1
  215. package/dist/index43.js +1 -1
  216. package/dist/index44.cjs +2 -2
  217. package/dist/index44.js +2 -2
  218. package/dist/index45.cjs +4 -4
  219. package/dist/index45.js +4 -4
  220. package/dist/index46.cjs +1 -1
  221. package/dist/index46.js +1 -1
  222. package/dist/index47.cjs +1 -1
  223. package/dist/index47.js +1 -1
  224. package/dist/index48.cjs +1 -1
  225. package/dist/index48.js +1 -1
  226. package/dist/index49.cjs +2 -2
  227. package/dist/index49.js +2 -2
  228. package/dist/index50.cjs +86 -47
  229. package/dist/index50.cjs.map +1 -1
  230. package/dist/index50.js +86 -47
  231. package/dist/index50.js.map +1 -1
  232. package/dist/index51.cjs +1 -1
  233. package/dist/index51.js +1 -1
  234. package/dist/index52.cjs +3 -3
  235. package/dist/index52.js +3 -3
  236. package/dist/index53.cjs +1 -1
  237. package/dist/index53.js +1 -1
  238. package/dist/index54.cjs +1 -1
  239. package/dist/index54.js +1 -1
  240. package/dist/index55.cjs +3 -3
  241. package/dist/index55.js +3 -3
  242. package/dist/index56.cjs +1 -1
  243. package/dist/index56.js +1 -1
  244. package/dist/index57.cjs +1 -1
  245. package/dist/index57.js +1 -1
  246. package/dist/index58.cjs +2 -2
  247. package/dist/index58.js +2 -2
  248. package/dist/index60.cjs +16 -10
  249. package/dist/index60.cjs.map +1 -1
  250. package/dist/index60.js +17 -11
  251. package/dist/index60.js.map +1 -1
  252. package/dist/index61.cjs +15 -21
  253. package/dist/index61.cjs.map +1 -1
  254. package/dist/index61.js +15 -21
  255. package/dist/index61.js.map +1 -1
  256. package/dist/index62.cjs +145 -19
  257. package/dist/index62.cjs.map +1 -1
  258. package/dist/index62.js +143 -17
  259. package/dist/index62.js.map +1 -1
  260. package/dist/index63.cjs +23 -5
  261. package/dist/index63.cjs.map +1 -1
  262. package/dist/index63.js +24 -6
  263. package/dist/index63.js.map +1 -1
  264. package/dist/index64.cjs +19 -143
  265. package/dist/index64.cjs.map +1 -1
  266. package/dist/index64.js +17 -141
  267. package/dist/index64.js.map +1 -1
  268. package/dist/index65.cjs +2 -17
  269. package/dist/index65.cjs.map +1 -1
  270. package/dist/index65.js +2 -17
  271. package/dist/index65.js.map +1 -1
  272. package/dist/index66.cjs +10 -19
  273. package/dist/index66.cjs.map +1 -1
  274. package/dist/index66.js +10 -19
  275. package/dist/index66.js.map +1 -1
  276. package/dist/index67.cjs +20 -14
  277. package/dist/index67.cjs.map +1 -1
  278. package/dist/index67.js +20 -14
  279. package/dist/index67.js.map +1 -1
  280. package/dist/index68.cjs +5 -38
  281. package/dist/index68.cjs.map +1 -1
  282. package/dist/index68.js +6 -39
  283. package/dist/index68.js.map +1 -1
  284. package/dist/index69.cjs +13 -28
  285. package/dist/index69.cjs.map +1 -1
  286. package/dist/index69.js +13 -28
  287. package/dist/index69.js.map +1 -1
  288. package/dist/index70.cjs +16 -19
  289. package/dist/index70.cjs.map +1 -1
  290. package/dist/index70.js +17 -20
  291. package/dist/index70.js.map +1 -1
  292. package/dist/index71.cjs +19 -4
  293. package/dist/index71.cjs.map +1 -1
  294. package/dist/index71.js +19 -4
  295. package/dist/index71.js.map +1 -1
  296. package/dist/index72.cjs +25 -116
  297. package/dist/index72.cjs.map +1 -1
  298. package/dist/index72.js +24 -115
  299. package/dist/index72.js.map +1 -1
  300. package/dist/index73.cjs +10 -37
  301. package/dist/index73.cjs.map +1 -1
  302. package/dist/index73.js +10 -37
  303. package/dist/index73.js.map +1 -1
  304. package/dist/index74.cjs +2 -53
  305. package/dist/index74.cjs.map +1 -1
  306. package/dist/index74.js +3 -54
  307. package/dist/index74.js.map +1 -1
  308. package/dist/index75.cjs +24 -39
  309. package/dist/index75.cjs.map +1 -1
  310. package/dist/index75.js +23 -38
  311. package/dist/index75.js.map +1 -1
  312. package/dist/index76.cjs +45 -91
  313. package/dist/index76.cjs.map +1 -1
  314. package/dist/index76.js +45 -91
  315. package/dist/index76.js.map +1 -1
  316. package/dist/index77.cjs +28 -34
  317. package/dist/index77.cjs.map +1 -1
  318. package/dist/index77.js +28 -34
  319. package/dist/index77.js.map +1 -1
  320. package/dist/index78.cjs +15 -20
  321. package/dist/index78.cjs.map +1 -1
  322. package/dist/index78.js +15 -20
  323. package/dist/index78.js.map +1 -1
  324. package/dist/index79.cjs +6 -69
  325. package/dist/index79.cjs.map +1 -1
  326. package/dist/index79.js +5 -68
  327. package/dist/index79.js.map +1 -1
  328. package/dist/index80.cjs +6 -7
  329. package/dist/index80.cjs.map +1 -1
  330. package/dist/index80.js +5 -6
  331. package/dist/index80.js.map +1 -1
  332. package/dist/index81.cjs +64 -34
  333. package/dist/index81.cjs.map +1 -1
  334. package/dist/index81.js +64 -34
  335. package/dist/index81.js.map +1 -1
  336. package/dist/index82.cjs +52 -134
  337. package/dist/index82.cjs.map +1 -1
  338. package/dist/index82.js +51 -133
  339. package/dist/index82.js.map +1 -1
  340. package/dist/index83.cjs +13 -40
  341. package/dist/index83.cjs.map +1 -1
  342. package/dist/index83.js +14 -41
  343. package/dist/index83.js.map +1 -1
  344. package/dist/index84.cjs +30 -3
  345. package/dist/index84.cjs.map +1 -1
  346. package/dist/index84.js +30 -3
  347. package/dist/index84.js.map +1 -1
  348. package/dist/index85.cjs +36 -36
  349. package/dist/index85.js +36 -36
  350. package/dist/index86.cjs +34 -28
  351. package/dist/index86.cjs.map +1 -1
  352. package/dist/index86.js +34 -28
  353. package/dist/index86.js.map +1 -1
  354. package/dist/index87.cjs +14 -2
  355. package/dist/index87.cjs.map +1 -1
  356. package/dist/index87.js +14 -2
  357. package/dist/index87.js.map +1 -1
  358. package/dist/index88.cjs +16 -16
  359. package/dist/index88.js +16 -16
  360. package/dist/index89.cjs +16 -19
  361. package/dist/index89.cjs.map +1 -1
  362. package/dist/index89.js +17 -20
  363. package/dist/index89.js.map +1 -1
  364. package/dist/index90.cjs +10 -46
  365. package/dist/index90.cjs.map +1 -1
  366. package/dist/index90.js +11 -47
  367. package/dist/index90.js.map +1 -1
  368. package/dist/index91.cjs +116 -28
  369. package/dist/index91.cjs.map +1 -1
  370. package/dist/index91.js +115 -27
  371. package/dist/index91.js.map +1 -1
  372. package/dist/index92.cjs +37 -22
  373. package/dist/index92.cjs.map +1 -1
  374. package/dist/index92.js +37 -22
  375. package/dist/index92.js.map +1 -1
  376. package/dist/index93.cjs +35 -2
  377. package/dist/index93.cjs.map +1 -1
  378. package/dist/index93.js +36 -3
  379. package/dist/index93.js.map +1 -1
  380. package/dist/index94.cjs +16 -13
  381. package/dist/index94.cjs.map +1 -1
  382. package/dist/index94.js +17 -14
  383. package/dist/index94.js.map +1 -1
  384. package/dist/index95.cjs +80 -2
  385. package/dist/index95.cjs.map +1 -1
  386. package/dist/index95.js +81 -3
  387. package/dist/index95.js.map +1 -1
  388. package/dist/index96.cjs +4 -19
  389. package/dist/index96.cjs.map +1 -1
  390. package/dist/index96.js +5 -20
  391. package/dist/index96.js.map +1 -1
  392. package/dist/index97.cjs +130 -32
  393. package/dist/index97.cjs.map +1 -1
  394. package/dist/index97.js +130 -32
  395. package/dist/index97.js.map +1 -1
  396. package/dist/index98.cjs +45 -43
  397. package/dist/index98.cjs.map +1 -1
  398. package/dist/index98.js +44 -42
  399. package/dist/index98.js.map +1 -1
  400. package/dist/index99.cjs +24 -24
  401. package/dist/index99.cjs.map +1 -1
  402. package/dist/index99.js +23 -23
  403. package/dist/index99.js.map +1 -1
  404. package/dist/style.css +42 -4
  405. package/dist/utils/clippingRect.d.ts +15 -0
  406. package/dist/utils/clippingRect.d.ts.map +1 -0
  407. package/dist/utils/clippingRect.test.d.ts +2 -0
  408. package/dist/utils/clippingRect.test.d.ts.map +1 -0
  409. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index115.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index115.js","sources":["../src/data/HeatmapMatrix/HeatmapMatrixHeader.tsx"],"sourcesContent":["import { HEATMAP_GROUPED_HEADER_ROWS } from '../../constants';\nimport type { HeatmapColumnHeaderProps, HeatmapMatrixHeaderProps } from './HeatmapMatrix.types';\nimport styles from './HeatmapMatrix.module.css';\n\nfunction ColumnHeader({ column, rowSpan }: HeatmapColumnHeaderProps) {\n return (\n <th scope=\"col\" rowSpan={rowSpan} className={styles.colh} title={column.title}>\n {column.label}\n </th>\n );\n}\n\n/**\n * Flat (one row) when `runs` is undefined, so the DOM stays as it was before column groups.\n * Grouped: the corner and ungrouped columns span both rows; each grouped run gets one\n * `scope=\"colgroup\"` header above its columns.\n */\nexport function HeatmapMatrixHeader({\n columns,\n runs,\n columnGroups,\n cornerLabel,\n}: HeatmapMatrixHeaderProps) {\n const rowSpan = runs ? HEATMAP_GROUPED_HEADER_ROWS : undefined;\n const corner = (\n <th scope=\"col\" rowSpan={rowSpan} className={styles.corner} aria-hidden={cornerLabel == null}>\n {cornerLabel}\n </th>\n );\n\n if (!runs) {\n return (\n <thead>\n <tr>\n {corner}\n {columns.map((column) => (\n <ColumnHeader key={column.key} column={column} />\n ))}\n </tr>\n </thead>\n );\n }\n\n const groupsByKey = new Map(columnGroups?.map((group) => [group.key, group]));\n const groupedColumns = runs\n .filter((run) => run.group !== undefined)\n .flatMap((run) => run.columns);\n\n return (\n <thead>\n <tr>\n {corner}\n {runs.map((run) => {\n if (run.group === undefined) {\n return run.columns.map((column) => (\n <ColumnHeader key={column.key} column={column} rowSpan={rowSpan} />\n ));\n }\n const entry = groupsByKey.get(run.group);\n return (\n <th\n key={`group-${run.start}`}\n scope=\"colgroup\"\n colSpan={run.columns.length}\n className={styles.group}\n title={entry?.title}\n >\n {entry?.label ?? run.group}\n </th>\n );\n })}\n </tr>\n <tr>\n {groupedColumns.map((column) => (\n <ColumnHeader key={column.key} column={column} />\n ))}\n </tr>\n </thead>\n );\n}\n"],"names":[],"mappings":";;;AAIA,SAAS,aAAa,EAAE,QAAQ,WAAqC;AACnE,SACE,oBAAC,MAAA,EAAG,OAAM,OAAM,SAAkB,WAAW,OAAO,MAAM,OAAO,OAAO,OACrE,UAAA,OAAO,OACV;AAEJ;AAOO,SAAS,oBAAoB;AAAA,EAClC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,GAA6B;AAC3B,QAAM,UAAU,OAAO,8BAA8B;AACrD,QAAM,SACJ,oBAAC,MAAA,EAAG,OAAM,OAAM,SAAkB,WAAW,OAAO,QAAQ,eAAa,eAAe,MACrF,UAAA,aACH;AAGF,MAAI,CAAC,MAAM;AACT,WACE,oBAAC,SAAA,EACC,UAAA,qBAAC,MAAA,EACE,UAAA;AAAA,MAAA;AAAA,MACA,QAAQ,IAAI,CAAC,+BACX,cAAA,EAA8B,OAAA,GAAZ,OAAO,GAAqB,CAChD;AAAA,IAAA,EAAA,CACH,EAAA,CACF;AAAA,EAEJ;AAEA,QAAM,cAAc,IAAI,IAAI,6CAAc,IAAI,CAAC,UAAU,CAAC,MAAM,KAAK,KAAK,EAAE;AAC5E,QAAM,iBAAiB,KACpB,OAAO,CAAC,QAAQ,IAAI,UAAU,MAAS,EACvC,QAAQ,CAAC,QAAQ,IAAI,OAAO;AAE/B,8BACG,SAAA,EACC,UAAA;AAAA,IAAA,qBAAC,MAAA,EACE,UAAA;AAAA,MAAA;AAAA,MACA,KAAK,IAAI,CAAC,QAAQ;AACjB,YAAI,IAAI,UAAU,QAAW;AAC3B,iBAAO,IAAI,QAAQ,IAAI,CAAC,WACtB,oBAAC,cAAA,EAA8B,QAAgB,QAAA,GAA5B,OAAO,GAAuC,CAClE;AAAA,QACH;AACA,cAAM,QAAQ,YAAY,IAAI,IAAI,KAAK;AACvC,eACE;AAAA,UAAC;AAAA,UAAA;AAAA,YAEC,OAAM;AAAA,YACN,SAAS,IAAI,QAAQ;AAAA,YACrB,WAAW,OAAO;AAAA,YAClB,OAAO,+BAAO;AAAA,YAEb,WAAA,+BAAO,UAAS,IAAI;AAAA,UAAA;AAAA,UANhB,SAAS,IAAI,KAAK;AAAA,QAAA;AAAA,MAS7B,CAAC;AAAA,IAAA,GACH;AAAA,IACA,oBAAC,MAAA,EACE,UAAA,eAAe,IAAI,CAAC,WACnB,oBAAC,cAAA,EAA8B,OAAA,GAAZ,OAAO,GAAqB,CAChD,EAAA,CACH;AAAA,EAAA,GACF;AAEJ;"}
package/dist/index116.cjs CHANGED
@@ -1,72 +1,20 @@
1
1
  "use strict";
2
- Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const root = "krc-root-HS837";
4
- const gapNone = "krc-gapNone-MmCvp";
5
- const gapXs = "krc-gapXs-Jketq";
6
- const gapSm = "krc-gapSm-BFLhK";
7
- const gapMd = "krc-gapMd--7IRg";
8
- const gapLg = "krc-gapLg-ehuIZ";
9
- const gapXl = "krc-gapXl-kNEyc";
10
- const alignStart = "krc-alignStart-q6fMC";
11
- const alignCenter = "krc-alignCenter-Py2Kt";
12
- const alignEnd = "krc-alignEnd-ialGn";
13
- const alignStretch = "krc-alignStretch-J-rq4";
14
- const alignBaseline = "krc-alignBaseline-Hg-4L";
15
- const justifyStart = "krc-justifyStart-tBqbD";
16
- const justifyCenter = "krc-justifyCenter-6QDaO";
17
- const justifyEnd = "krc-justifyEnd-2tbcB";
18
- const justifyBetween = "krc-justifyBetween-5W1AJ";
19
- const justifyAround = "krc-justifyAround-AMU1m";
20
- const justifyEvenly = "krc-justifyEvenly-Vj3C-";
21
- const wrap = "krc-wrap-Q4txZ";
22
- const nowrap = "krc-nowrap-BUcfT";
23
- const dirRow = "krc-dirRow-NBoPO";
24
- const dirColumn = "krc-dirColumn-gJ7qS";
25
- const styles = {
26
- root,
27
- gapNone,
28
- gapXs,
29
- gapSm,
30
- gapMd,
31
- gapLg,
32
- gapXl,
33
- alignStart,
34
- alignCenter,
35
- alignEnd,
36
- alignStretch,
37
- alignBaseline,
38
- justifyStart,
39
- justifyCenter,
40
- justifyEnd,
41
- justifyBetween,
42
- justifyAround,
43
- justifyEvenly,
44
- wrap,
45
- nowrap,
46
- dirRow,
47
- dirColumn
48
- };
49
- exports.alignBaseline = alignBaseline;
50
- exports.alignCenter = alignCenter;
51
- exports.alignEnd = alignEnd;
52
- exports.alignStart = alignStart;
53
- exports.alignStretch = alignStretch;
54
- exports.default = styles;
55
- exports.dirColumn = dirColumn;
56
- exports.dirRow = dirRow;
57
- exports.gapLg = gapLg;
58
- exports.gapMd = gapMd;
59
- exports.gapNone = gapNone;
60
- exports.gapSm = gapSm;
61
- exports.gapXl = gapXl;
62
- exports.gapXs = gapXs;
63
- exports.justifyAround = justifyAround;
64
- exports.justifyBetween = justifyBetween;
65
- exports.justifyCenter = justifyCenter;
66
- exports.justifyEnd = justifyEnd;
67
- exports.justifyEvenly = justifyEvenly;
68
- exports.justifyStart = justifyStart;
69
- exports.nowrap = nowrap;
70
- exports.root = root;
71
- exports.wrap = wrap;
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ function getColumnRuns(columns) {
4
+ const runs = [];
5
+ columns.forEach((column, index) => {
6
+ const current = runs[runs.length - 1];
7
+ if (current && current.group === column.group) {
8
+ current.columns.push(column);
9
+ } else {
10
+ runs.push({ group: column.group, start: index, columns: [column] });
11
+ }
12
+ });
13
+ return runs;
14
+ }
15
+ function hasColumnGroups(columns) {
16
+ return columns.some((column) => column.group !== void 0);
17
+ }
18
+ exports.getColumnRuns = getColumnRuns;
19
+ exports.hasColumnGroups = hasColumnGroups;
72
20
  //# sourceMappingURL=index116.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index116.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index116.cjs","sources":["../src/data/HeatmapMatrix/getColumnRuns.ts"],"sourcesContent":["import type { ColumnRun, HeatmapColumn } from './HeatmapMatrix.types';\n\n/**\n * Splits `columns` into runs of consecutive columns sharing the same `group`. Never sorts: a group\n * that appears in two non-contiguous places yields two runs, and ungrouped columns form their own\n * runs (`group` undefined).\n */\nexport function getColumnRuns(columns: HeatmapColumn[]): ColumnRun[] {\n const runs: ColumnRun[] = [];\n columns.forEach((column, index) => {\n const current = runs[runs.length - 1];\n if (current && current.group === column.group) {\n current.columns.push(column);\n } else {\n runs.push({ group: column.group, start: index, columns: [column] });\n }\n });\n return runs;\n}\n\n/** True when at least one column declares a `group`, i.e. the two-row header is needed. */\nexport function hasColumnGroups(columns: HeatmapColumn[]): boolean {\n return columns.some((column) => column.group !== undefined);\n}\n"],"names":[],"mappings":";;AAOO,SAAS,cAAc,SAAuC;AACnE,QAAM,OAAoB,CAAA;AAC1B,UAAQ,QAAQ,CAAC,QAAQ,UAAU;AACjC,UAAM,UAAU,KAAK,KAAK,SAAS,CAAC;AACpC,QAAI,WAAW,QAAQ,UAAU,OAAO,OAAO;AAC7C,cAAQ,QAAQ,KAAK,MAAM;AAAA,IAC7B,OAAO;AACL,WAAK,KAAK,EAAE,OAAO,OAAO,OAAO,OAAO,OAAO,SAAS,CAAC,MAAM,EAAA,CAAG;AAAA,IACpE;AAAA,EACF,CAAC;AACD,SAAO;AACT;AAGO,SAAS,gBAAgB,SAAmC;AACjE,SAAO,QAAQ,KAAK,CAAC,WAAW,OAAO,UAAU,MAAS;AAC5D;;;"}
package/dist/index116.js CHANGED
@@ -1,72 +1,20 @@
1
- const root = "krc-root-HS837";
2
- const gapNone = "krc-gapNone-MmCvp";
3
- const gapXs = "krc-gapXs-Jketq";
4
- const gapSm = "krc-gapSm-BFLhK";
5
- const gapMd = "krc-gapMd--7IRg";
6
- const gapLg = "krc-gapLg-ehuIZ";
7
- const gapXl = "krc-gapXl-kNEyc";
8
- const alignStart = "krc-alignStart-q6fMC";
9
- const alignCenter = "krc-alignCenter-Py2Kt";
10
- const alignEnd = "krc-alignEnd-ialGn";
11
- const alignStretch = "krc-alignStretch-J-rq4";
12
- const alignBaseline = "krc-alignBaseline-Hg-4L";
13
- const justifyStart = "krc-justifyStart-tBqbD";
14
- const justifyCenter = "krc-justifyCenter-6QDaO";
15
- const justifyEnd = "krc-justifyEnd-2tbcB";
16
- const justifyBetween = "krc-justifyBetween-5W1AJ";
17
- const justifyAround = "krc-justifyAround-AMU1m";
18
- const justifyEvenly = "krc-justifyEvenly-Vj3C-";
19
- const wrap = "krc-wrap-Q4txZ";
20
- const nowrap = "krc-nowrap-BUcfT";
21
- const dirRow = "krc-dirRow-NBoPO";
22
- const dirColumn = "krc-dirColumn-gJ7qS";
23
- const styles = {
24
- root,
25
- gapNone,
26
- gapXs,
27
- gapSm,
28
- gapMd,
29
- gapLg,
30
- gapXl,
31
- alignStart,
32
- alignCenter,
33
- alignEnd,
34
- alignStretch,
35
- alignBaseline,
36
- justifyStart,
37
- justifyCenter,
38
- justifyEnd,
39
- justifyBetween,
40
- justifyAround,
41
- justifyEvenly,
42
- wrap,
43
- nowrap,
44
- dirRow,
45
- dirColumn
46
- };
1
+ function getColumnRuns(columns) {
2
+ const runs = [];
3
+ columns.forEach((column, index) => {
4
+ const current = runs[runs.length - 1];
5
+ if (current && current.group === column.group) {
6
+ current.columns.push(column);
7
+ } else {
8
+ runs.push({ group: column.group, start: index, columns: [column] });
9
+ }
10
+ });
11
+ return runs;
12
+ }
13
+ function hasColumnGroups(columns) {
14
+ return columns.some((column) => column.group !== void 0);
15
+ }
47
16
  export {
48
- alignBaseline,
49
- alignCenter,
50
- alignEnd,
51
- alignStart,
52
- alignStretch,
53
- styles as default,
54
- dirColumn,
55
- dirRow,
56
- gapLg,
57
- gapMd,
58
- gapNone,
59
- gapSm,
60
- gapXl,
61
- gapXs,
62
- justifyAround,
63
- justifyBetween,
64
- justifyCenter,
65
- justifyEnd,
66
- justifyEvenly,
67
- justifyStart,
68
- nowrap,
69
- root,
70
- wrap
17
+ getColumnRuns,
18
+ hasColumnGroups
71
19
  };
72
20
  //# sourceMappingURL=index116.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index116.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index116.js","sources":["../src/data/HeatmapMatrix/getColumnRuns.ts"],"sourcesContent":["import type { ColumnRun, HeatmapColumn } from './HeatmapMatrix.types';\n\n/**\n * Splits `columns` into runs of consecutive columns sharing the same `group`. Never sorts: a group\n * that appears in two non-contiguous places yields two runs, and ungrouped columns form their own\n * runs (`group` undefined).\n */\nexport function getColumnRuns(columns: HeatmapColumn[]): ColumnRun[] {\n const runs: ColumnRun[] = [];\n columns.forEach((column, index) => {\n const current = runs[runs.length - 1];\n if (current && current.group === column.group) {\n current.columns.push(column);\n } else {\n runs.push({ group: column.group, start: index, columns: [column] });\n }\n });\n return runs;\n}\n\n/** True when at least one column declares a `group`, i.e. the two-row header is needed. */\nexport function hasColumnGroups(columns: HeatmapColumn[]): boolean {\n return columns.some((column) => column.group !== undefined);\n}\n"],"names":[],"mappings":"AAOO,SAAS,cAAc,SAAuC;AACnE,QAAM,OAAoB,CAAA;AAC1B,UAAQ,QAAQ,CAAC,QAAQ,UAAU;AACjC,UAAM,UAAU,KAAK,KAAK,SAAS,CAAC;AACpC,QAAI,WAAW,QAAQ,UAAU,OAAO,OAAO;AAC7C,cAAQ,QAAQ,KAAK,MAAM;AAAA,IAC7B,OAAO;AACL,WAAK,KAAK,EAAE,OAAO,OAAO,OAAO,OAAO,OAAO,SAAS,CAAC,MAAM,EAAA,CAAG;AAAA,IACpE;AAAA,EACF,CAAC;AACD,SAAO;AACT;AAGO,SAAS,gBAAgB,SAAmC;AACjE,SAAO,QAAQ,KAAK,CAAC,WAAW,OAAO,UAAU,MAAS;AAC5D;"}
package/dist/index117.cjs CHANGED
@@ -1,60 +1,39 @@
1
1
  "use strict";
2
2
  Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const root = "krc-root--s1oD";
4
- const trigger = "krc-trigger-WMlNa";
5
- const active = "krc-active-O65lj";
6
- const triggerContent = "krc-triggerContent-JipmE";
7
- const chevron = "krc-chevron-J2Zsy";
8
- const label = "krc-label-lZlV-";
9
- const value = "krc-value-HsQrC";
10
- const clear = "krc-clear-bsi5j";
11
- const panel = "krc-panel--0odx";
12
- const searchContainer = "krc-searchContainer-WRS-U";
13
- const search = "krc-search-Dh3pY";
14
- const list = "krc-list-1RUtr";
15
- const noResults = "krc-noResults-Hin1U";
16
- const option = "krc-option-0mFGi";
17
- const focused = "krc-focused-0-7tE";
18
- const selected = "krc-selected-1zIqI";
19
- const optionLabel = "krc-optionLabel-pj-hL";
20
- const optionCount = "krc-optionCount-rVlCP";
3
+ const wrap = "krc-wrap-JRsc1";
4
+ const root = "krc-root-k9ocd";
5
+ const colh = "krc-colh-Fi0Kr";
6
+ const group = "krc-group-rVQPU";
7
+ const groupStart = "krc-groupStart-bu8S4";
8
+ const rowh = "krc-rowh-bTG4G";
9
+ const corner = "krc-corner-MNGJd";
10
+ const cell = "krc-cell-i0lDG";
11
+ const bad = "krc-bad-Hb1F3";
12
+ const ok = "krc-ok-hx6Lc";
13
+ const clickable = "krc-clickable-Q8fZg";
21
14
  const styles = {
15
+ wrap,
22
16
  root,
23
- trigger,
24
- active,
25
- triggerContent,
26
- chevron,
27
- label,
28
- value,
29
- clear,
30
- panel,
31
- searchContainer,
32
- search,
33
- list,
34
- noResults,
35
- option,
36
- focused,
37
- selected,
38
- optionLabel,
39
- optionCount
17
+ colh,
18
+ group,
19
+ groupStart,
20
+ rowh,
21
+ corner,
22
+ cell,
23
+ bad,
24
+ ok,
25
+ clickable
40
26
  };
41
- exports.active = active;
42
- exports.chevron = chevron;
43
- exports.clear = clear;
27
+ exports.bad = bad;
28
+ exports.cell = cell;
29
+ exports.clickable = clickable;
30
+ exports.colh = colh;
31
+ exports.corner = corner;
44
32
  exports.default = styles;
45
- exports.focused = focused;
46
- exports.label = label;
47
- exports.list = list;
48
- exports.noResults = noResults;
49
- exports.option = option;
50
- exports.optionCount = optionCount;
51
- exports.optionLabel = optionLabel;
52
- exports.panel = panel;
33
+ exports.group = group;
34
+ exports.groupStart = groupStart;
35
+ exports.ok = ok;
53
36
  exports.root = root;
54
- exports.search = search;
55
- exports.searchContainer = searchContainer;
56
- exports.selected = selected;
57
- exports.trigger = trigger;
58
- exports.triggerContent = triggerContent;
59
- exports.value = value;
37
+ exports.rowh = rowh;
38
+ exports.wrap = wrap;
60
39
  //# sourceMappingURL=index117.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index117.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index117.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/dist/index117.js CHANGED
@@ -1,60 +1,39 @@
1
- const root = "krc-root--s1oD";
2
- const trigger = "krc-trigger-WMlNa";
3
- const active = "krc-active-O65lj";
4
- const triggerContent = "krc-triggerContent-JipmE";
5
- const chevron = "krc-chevron-J2Zsy";
6
- const label = "krc-label-lZlV-";
7
- const value = "krc-value-HsQrC";
8
- const clear = "krc-clear-bsi5j";
9
- const panel = "krc-panel--0odx";
10
- const searchContainer = "krc-searchContainer-WRS-U";
11
- const search = "krc-search-Dh3pY";
12
- const list = "krc-list-1RUtr";
13
- const noResults = "krc-noResults-Hin1U";
14
- const option = "krc-option-0mFGi";
15
- const focused = "krc-focused-0-7tE";
16
- const selected = "krc-selected-1zIqI";
17
- const optionLabel = "krc-optionLabel-pj-hL";
18
- const optionCount = "krc-optionCount-rVlCP";
1
+ const wrap = "krc-wrap-JRsc1";
2
+ const root = "krc-root-k9ocd";
3
+ const colh = "krc-colh-Fi0Kr";
4
+ const group = "krc-group-rVQPU";
5
+ const groupStart = "krc-groupStart-bu8S4";
6
+ const rowh = "krc-rowh-bTG4G";
7
+ const corner = "krc-corner-MNGJd";
8
+ const cell = "krc-cell-i0lDG";
9
+ const bad = "krc-bad-Hb1F3";
10
+ const ok = "krc-ok-hx6Lc";
11
+ const clickable = "krc-clickable-Q8fZg";
19
12
  const styles = {
13
+ wrap,
20
14
  root,
21
- trigger,
22
- active,
23
- triggerContent,
24
- chevron,
25
- label,
26
- value,
27
- clear,
28
- panel,
29
- searchContainer,
30
- search,
31
- list,
32
- noResults,
33
- option,
34
- focused,
35
- selected,
36
- optionLabel,
37
- optionCount
15
+ colh,
16
+ group,
17
+ groupStart,
18
+ rowh,
19
+ corner,
20
+ cell,
21
+ bad,
22
+ ok,
23
+ clickable
38
24
  };
39
25
  export {
40
- active,
41
- chevron,
42
- clear,
26
+ bad,
27
+ cell,
28
+ clickable,
29
+ colh,
30
+ corner,
43
31
  styles as default,
44
- focused,
45
- label,
46
- list,
47
- noResults,
48
- option,
49
- optionCount,
50
- optionLabel,
51
- panel,
32
+ group,
33
+ groupStart,
34
+ ok,
52
35
  root,
53
- search,
54
- searchContainer,
55
- selected,
56
- trigger,
57
- triggerContent,
58
- value
36
+ rowh,
37
+ wrap
59
38
  };
60
39
  //# sourceMappingURL=index117.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index117.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index117.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;"}
package/dist/index118.cjs CHANGED
@@ -1,18 +1,25 @@
1
1
  "use strict";
2
- Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const root = "krc-root-la9-1";
4
- const logo = "krc-logo-b73UT";
5
- const card = "krc-card-1ev-q";
6
- const footer = "krc-footer-E0B15";
7
- const styles = {
8
- root,
9
- logo,
10
- card,
11
- footer
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const merge = (a, b) => a == null ? b : b == null ? a : a + b;
4
+ const pivotGroupedBars = (data) => {
5
+ const categories = /* @__PURE__ */ new Set();
6
+ const cells = /* @__PURE__ */ new Map();
7
+ for (const { category, series: series2, value } of data) {
8
+ categories.add(category);
9
+ let row = cells.get(series2);
10
+ if (!row) {
11
+ row = /* @__PURE__ */ new Map();
12
+ cells.set(series2, row);
13
+ }
14
+ row.set(category, row.has(category) ? merge(row.get(category) ?? null, value) : value);
15
+ }
16
+ const categoryList = [...categories];
17
+ const series = [...cells.entries()].map(([name, row]) => ({
18
+ name,
19
+ values: categoryList.map((category) => row.get(category) ?? null)
20
+ }));
21
+ const hasValues = series.some((s) => s.values.some((v) => v != null));
22
+ return { categories: categoryList, series, hasValues };
12
23
  };
13
- exports.card = card;
14
- exports.default = styles;
15
- exports.footer = footer;
16
- exports.logo = logo;
17
- exports.root = root;
24
+ exports.pivotGroupedBars = pivotGroupedBars;
18
25
  //# sourceMappingURL=index118.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index118.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index118.cjs","sources":["../src/charts/GroupedBarChartCard/pivotGroupedBars.ts"],"sourcesContent":["import type { GroupedBarPoint } from '../../types/chart.types';\n\n/** One series with its values aligned to `categories`; `null` is a gap. */\nexport interface PivotedSeries {\n name: string;\n values: (number | null)[];\n}\n\n/** Category × series matrix of a grouped bar chart. */\nexport interface GroupedBarPivot {\n /** First-seen order. */\n categories: string[];\n /** First-seen order. */\n series: PivotedSeries[];\n /** Whether any value is non-null — false means there is nothing to draw. */\n hasValues: boolean;\n}\n\n/** `null` adds nothing: only nulls stay a gap. */\nconst merge = (a: number | null, b: number | null) => (a == null ? b : b == null ? a : a + b);\n\n/**\n * Pivot points into a category × series matrix, keeping first-appearance order,\n * summing repeated pairs and filling missing pairs with `null` — never `0`.\n */\nexport const pivotGroupedBars = (data: GroupedBarPoint[]): GroupedBarPivot => {\n const categories = new Set<string>();\n const cells = new Map<string, Map<string, number | null>>();\n\n for (const { category, series, value } of data) {\n categories.add(category);\n let row = cells.get(series);\n if (!row) {\n row = new Map();\n cells.set(series, row);\n }\n row.set(category, row.has(category) ? merge(row.get(category) ?? null, value) : value);\n }\n\n const categoryList = [...categories];\n const series = [...cells.entries()].map(([name, row]) => ({\n name,\n values: categoryList.map((category) => row.get(category) ?? null),\n }));\n const hasValues = series.some((s) => s.values.some((v) => v != null));\n\n return { categories: categoryList, series, hasValues };\n};\n"],"names":["series"],"mappings":";;AAmBA,MAAM,QAAQ,CAAC,GAAkB,MAAsB,KAAK,OAAO,IAAI,KAAK,OAAO,IAAI,IAAI;AAMpF,MAAM,mBAAmB,CAAC,SAA6C;AAC5E,QAAM,iCAAiB,IAAA;AACvB,QAAM,4BAAY,IAAA;AAElB,aAAW,EAAE,UAAU,QAAAA,SAAQ,MAAA,KAAW,MAAM;AAC9C,eAAW,IAAI,QAAQ;AACvB,QAAI,MAAM,MAAM,IAAIA,OAAM;AAC1B,QAAI,CAAC,KAAK;AACR,gCAAU,IAAA;AACV,YAAM,IAAIA,SAAQ,GAAG;AAAA,IACvB;AACA,QAAI,IAAI,UAAU,IAAI,IAAI,QAAQ,IAAI,MAAM,IAAI,IAAI,QAAQ,KAAK,MAAM,KAAK,IAAI,KAAK;AAAA,EACvF;AAEA,QAAM,eAAe,CAAC,GAAG,UAAU;AACnC,QAAM,SAAS,CAAC,GAAG,MAAM,QAAA,CAAS,EAAE,IAAI,CAAC,CAAC,MAAM,GAAG,OAAO;AAAA,IACxD;AAAA,IACA,QAAQ,aAAa,IAAI,CAAC,aAAa,IAAI,IAAI,QAAQ,KAAK,IAAI;AAAA,EAAA,EAChE;AACF,QAAM,YAAY,OAAO,KAAK,CAAC,MAAM,EAAE,OAAO,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC;AAEpE,SAAO,EAAE,YAAY,cAAc,QAAQ,UAAA;AAC7C;;"}
package/dist/index118.js CHANGED
@@ -1,18 +1,25 @@
1
- const root = "krc-root-la9-1";
2
- const logo = "krc-logo-b73UT";
3
- const card = "krc-card-1ev-q";
4
- const footer = "krc-footer-E0B15";
5
- const styles = {
6
- root,
7
- logo,
8
- card,
9
- footer
1
+ const merge = (a, b) => a == null ? b : b == null ? a : a + b;
2
+ const pivotGroupedBars = (data) => {
3
+ const categories = /* @__PURE__ */ new Set();
4
+ const cells = /* @__PURE__ */ new Map();
5
+ for (const { category, series: series2, value } of data) {
6
+ categories.add(category);
7
+ let row = cells.get(series2);
8
+ if (!row) {
9
+ row = /* @__PURE__ */ new Map();
10
+ cells.set(series2, row);
11
+ }
12
+ row.set(category, row.has(category) ? merge(row.get(category) ?? null, value) : value);
13
+ }
14
+ const categoryList = [...categories];
15
+ const series = [...cells.entries()].map(([name, row]) => ({
16
+ name,
17
+ values: categoryList.map((category) => row.get(category) ?? null)
18
+ }));
19
+ const hasValues = series.some((s) => s.values.some((v) => v != null));
20
+ return { categories: categoryList, series, hasValues };
10
21
  };
11
22
  export {
12
- card,
13
- styles as default,
14
- footer,
15
- logo,
16
- root
23
+ pivotGroupedBars
17
24
  };
18
25
  //# sourceMappingURL=index118.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index118.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;"}
1
+ {"version":3,"file":"index118.js","sources":["../src/charts/GroupedBarChartCard/pivotGroupedBars.ts"],"sourcesContent":["import type { GroupedBarPoint } from '../../types/chart.types';\n\n/** One series with its values aligned to `categories`; `null` is a gap. */\nexport interface PivotedSeries {\n name: string;\n values: (number | null)[];\n}\n\n/** Category × series matrix of a grouped bar chart. */\nexport interface GroupedBarPivot {\n /** First-seen order. */\n categories: string[];\n /** First-seen order. */\n series: PivotedSeries[];\n /** Whether any value is non-null — false means there is nothing to draw. */\n hasValues: boolean;\n}\n\n/** `null` adds nothing: only nulls stay a gap. */\nconst merge = (a: number | null, b: number | null) => (a == null ? b : b == null ? a : a + b);\n\n/**\n * Pivot points into a category × series matrix, keeping first-appearance order,\n * summing repeated pairs and filling missing pairs with `null` — never `0`.\n */\nexport const pivotGroupedBars = (data: GroupedBarPoint[]): GroupedBarPivot => {\n const categories = new Set<string>();\n const cells = new Map<string, Map<string, number | null>>();\n\n for (const { category, series, value } of data) {\n categories.add(category);\n let row = cells.get(series);\n if (!row) {\n row = new Map();\n cells.set(series, row);\n }\n row.set(category, row.has(category) ? merge(row.get(category) ?? null, value) : value);\n }\n\n const categoryList = [...categories];\n const series = [...cells.entries()].map(([name, row]) => ({\n name,\n values: categoryList.map((category) => row.get(category) ?? null),\n }));\n const hasValues = series.some((s) => s.values.some((v) => v != null));\n\n return { categories: categoryList, series, hasValues };\n};\n"],"names":["series"],"mappings":"AAmBA,MAAM,QAAQ,CAAC,GAAkB,MAAsB,KAAK,OAAO,IAAI,KAAK,OAAO,IAAI,IAAI;AAMpF,MAAM,mBAAmB,CAAC,SAA6C;AAC5E,QAAM,iCAAiB,IAAA;AACvB,QAAM,4BAAY,IAAA;AAElB,aAAW,EAAE,UAAU,QAAAA,SAAQ,MAAA,KAAW,MAAM;AAC9C,eAAW,IAAI,QAAQ;AACvB,QAAI,MAAM,MAAM,IAAIA,OAAM;AAC1B,QAAI,CAAC,KAAK;AACR,gCAAU,IAAA;AACV,YAAM,IAAIA,SAAQ,GAAG;AAAA,IACvB;AACA,QAAI,IAAI,UAAU,IAAI,IAAI,QAAQ,IAAI,MAAM,IAAI,IAAI,QAAQ,KAAK,MAAM,KAAK,IAAI,KAAK;AAAA,EACvF;AAEA,QAAM,eAAe,CAAC,GAAG,UAAU;AACnC,QAAM,SAAS,CAAC,GAAG,MAAM,QAAA,CAAS,EAAE,IAAI,CAAC,CAAC,MAAM,GAAG,OAAO;AAAA,IACxD;AAAA,IACA,QAAQ,aAAa,IAAI,CAAC,aAAa,IAAI,IAAI,QAAQ,KAAK,IAAI;AAAA,EAAA,EAChE;AACF,QAAM,YAAY,OAAO,KAAK,CAAC,MAAM,EAAE,OAAO,KAAK,CAAC,MAAM,KAAK,IAAI,CAAC;AAEpE,SAAO,EAAE,YAAY,cAAc,QAAQ,UAAA;AAC7C;"}
package/dist/index119.cjs CHANGED
@@ -1,24 +1,72 @@
1
1
  "use strict";
2
- Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
- const root = "krc-root-rzEDE";
4
- const sidebar = "krc-sidebar-ediN2";
5
- const sidebarCollapsed = "krc-sidebarCollapsed--qs43";
6
- const main = "krc-main-E8utR";
7
- const filterBar = "krc-filterBar-O8ajX";
8
- const content = "krc-content-lY5l-";
9
- const styles = {
10
- root,
11
- sidebar,
12
- sidebarCollapsed,
13
- main,
14
- filterBar,
15
- content
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const constants = require("./index62.cjs");
4
+ const { GRID_MARGIN, AXIS_NAME_GAP } = constants.GROUPED_BAR;
5
+ const escapeHtml = (value) => value.replace(/[&<>"]/g, (char) => `&#${char.charCodeAt(0)};`);
6
+ const colorFor = (name, index, seriesColors) => (seriesColors == null ? void 0 : seriesColors[name]) ?? constants.CHART_COLORS[index % constants.CHART_COLORS.length];
7
+ const markerFor = (color) => {
8
+ const { TOOLTIP_MARKER_SIZE: size, TOOLTIP_MARKER_GAP: gap } = constants.GROUPED_BAR;
9
+ return `<span style="display:inline-block;margin-right:${gap}px;border-radius:50%;width:${size}px;height:${size}px;background-color:${escapeHtml(color)};"></span>`;
16
10
  };
17
- exports.content = content;
18
- exports.default = styles;
19
- exports.filterBar = filterBar;
20
- exports.main = main;
21
- exports.root = root;
22
- exports.sidebar = sidebar;
23
- exports.sidebarCollapsed = sidebarCollapsed;
11
+ const buildTooltipFormatter = (pivot, colors, noValueText) => (params) => {
12
+ const first = Array.isArray(params) ? params[0] : params;
13
+ const index = first == null ? void 0 : first.dataIndex;
14
+ if (index == null || index >= pivot.categories.length) return "";
15
+ const lines = [escapeHtml(pivot.categories[index])];
16
+ pivot.series.forEach((s, i) => {
17
+ const value = s.values[index];
18
+ const text = value == null ? escapeHtml(noValueText) : String(value);
19
+ lines.push(`${markerFor(colors[i])}${escapeHtml(s.name)}: ${text}`);
20
+ });
21
+ return lines.join("<br/>");
22
+ };
23
+ const buildGrid = (config) => {
24
+ const named = Boolean(config.valueLabel);
25
+ return {
26
+ left: GRID_MARGIN.BASE + (named && !config.invertAxis ? GRID_MARGIN.VALUE_NAME_Y : 0),
27
+ right: GRID_MARGIN.RIGHT,
28
+ top: GRID_MARGIN.TOP,
29
+ // Room for a horizontal value-axis name and the legend, each only when drawn.
30
+ bottom: GRID_MARGIN.BASE + (named && config.invertAxis ? GRID_MARGIN.VALUE_NAME_X : 0) + (config.hideLegend ? 0 : GRID_MARGIN.LEGEND),
31
+ containLabel: true
32
+ };
33
+ };
34
+ const buildGroupedBarOption = (pivot, config) => {
35
+ const colors = pivot.series.map((s, i) => colorFor(s.name, i, config.seriesColors));
36
+ const categoryAxis = {
37
+ type: "category",
38
+ data: pivot.categories,
39
+ // Horizontal bars read top-down, so the first category goes on top.
40
+ inverse: config.invertAxis
41
+ };
42
+ const valueAxis = {
43
+ type: "value",
44
+ name: config.valueLabel,
45
+ nameLocation: "middle",
46
+ nameGap: config.invertAxis ? AXIS_NAME_GAP.X : AXIS_NAME_GAP.Y,
47
+ // Without this a vertical axis name is drawn horizontally and eats the plot's width.
48
+ nameRotate: config.invertAxis ? 0 : 90,
49
+ minInterval: config.integerValues ? 1 : void 0
50
+ };
51
+ return {
52
+ tooltip: {
53
+ trigger: "axis",
54
+ axisPointer: { type: "shadow" },
55
+ formatter: buildTooltipFormatter(pivot, colors, config.noValueText)
56
+ },
57
+ legend: { show: !config.hideLegend, bottom: 0, type: "scroll" },
58
+ grid: buildGrid(config),
59
+ xAxis: config.invertAxis ? valueAxis : categoryAxis,
60
+ yAxis: config.invertAxis ? categoryAxis : valueAxis,
61
+ series: pivot.series.map((s, i) => ({
62
+ name: s.name,
63
+ type: "bar",
64
+ data: s.values,
65
+ barMinHeight: constants.GROUPED_BAR.MIN_BAR_HEIGHT,
66
+ itemStyle: { color: colors[i] },
67
+ emphasis: { focus: "series" }
68
+ }))
69
+ };
70
+ };
71
+ exports.buildGroupedBarOption = buildGroupedBarOption;
24
72
  //# sourceMappingURL=index119.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"index119.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index119.cjs","sources":["../src/charts/GroupedBarChartCard/buildGroupedBarOption.ts"],"sourcesContent":["import type { GroupedBarPivot } from './pivotGroupedBars';\nimport { CHART_COLORS, GROUPED_BAR } from '../../constants';\n\nexport interface GroupedBarOptionConfig {\n seriesColors?: Readonly<Record<string, string>>;\n invertAxis: boolean;\n hideLegend: boolean;\n integerValues: boolean;\n valueLabel?: string;\n /** Tooltip text for a gap. */\n noValueText: string;\n}\n\nconst { GRID_MARGIN, AXIS_NAME_GAP } = GROUPED_BAR;\n\n/** Category and series names come from consumer data and land in the tooltip's HTML. */\nconst escapeHtml = (value: string) =>\n value.replace(/[&<>\"]/g, (char) => `&#${char.charCodeAt(0)};`);\n\n/** Pinned colour first, else the palette by first-seen position. */\nconst colorFor = (name: string, index: number, seriesColors?: Readonly<Record<string, string>>) =>\n seriesColors?.[name] ?? CHART_COLORS[index % CHART_COLORS.length];\n\nconst markerFor = (color: string) => {\n const { TOOLTIP_MARKER_SIZE: size, TOOLTIP_MARKER_GAP: gap } = GROUPED_BAR;\n return `<span style=\"display:inline-block;margin-right:${gap}px;border-radius:50%;width:${size}px;height:${size}px;background-color:${escapeHtml(color)};\"></span>`;\n};\n\n/**\n * The tooltip is built from the pivot rather than from echarts' params, so every\n * series is listed in series order and a gap reads as `noValueText`, never `-`.\n */\nconst buildTooltipFormatter =\n (pivot: GroupedBarPivot, colors: string[], noValueText: string) => (params: unknown) => {\n const first = (Array.isArray(params) ? params[0] : params) as\n | { dataIndex?: number }\n | undefined;\n const index = first?.dataIndex;\n if (index == null || index >= pivot.categories.length) return '';\n\n const lines = [escapeHtml(pivot.categories[index])];\n pivot.series.forEach((s, i) => {\n const value = s.values[index];\n const text = value == null ? escapeHtml(noValueText) : String(value);\n lines.push(`${markerFor(colors[i])}${escapeHtml(s.name)}: ${text}`);\n });\n\n return lines.join('<br/>');\n };\n\nconst buildGrid = (config: GroupedBarOptionConfig) => {\n const named = Boolean(config.valueLabel);\n return {\n left: GRID_MARGIN.BASE + (named && !config.invertAxis ? GRID_MARGIN.VALUE_NAME_Y : 0),\n right: GRID_MARGIN.RIGHT,\n top: GRID_MARGIN.TOP,\n // Room for a horizontal value-axis name and the legend, each only when drawn.\n bottom:\n GRID_MARGIN.BASE +\n (named && config.invertAxis ? GRID_MARGIN.VALUE_NAME_X : 0) +\n (config.hideLegend ? 0 : GRID_MARGIN.LEGEND),\n containLabel: true,\n };\n};\n\nexport const buildGroupedBarOption = (pivot: GroupedBarPivot, config: GroupedBarOptionConfig) => {\n const colors = pivot.series.map((s, i) => colorFor(s.name, i, config.seriesColors));\n\n const categoryAxis = {\n type: 'category' as const,\n data: pivot.categories,\n // Horizontal bars read top-down, so the first category goes on top.\n inverse: config.invertAxis,\n };\n const valueAxis = {\n type: 'value' as const,\n name: config.valueLabel,\n nameLocation: 'middle' as const,\n nameGap: config.invertAxis ? AXIS_NAME_GAP.X : AXIS_NAME_GAP.Y,\n // Without this a vertical axis name is drawn horizontally and eats the plot's width.\n nameRotate: config.invertAxis ? 0 : 90,\n minInterval: config.integerValues ? 1 : undefined,\n };\n\n return {\n tooltip: {\n trigger: 'axis' as const,\n axisPointer: { type: 'shadow' as const },\n formatter: buildTooltipFormatter(pivot, colors, config.noValueText),\n },\n legend: { show: !config.hideLegend, bottom: 0, type: 'scroll' as const },\n grid: buildGrid(config),\n xAxis: config.invertAxis ? valueAxis : categoryAxis,\n yAxis: config.invertAxis ? categoryAxis : valueAxis,\n series: pivot.series.map((s, i) => ({\n name: s.name,\n type: 'bar' as const,\n data: s.values,\n barMinHeight: GROUPED_BAR.MIN_BAR_HEIGHT,\n itemStyle: { color: colors[i] },\n emphasis: { focus: 'series' as const },\n })),\n };\n};\n"],"names":["GROUPED_BAR","CHART_COLORS"],"mappings":";;;AAaA,MAAM,EAAE,aAAa,cAAA,IAAkBA,UAAAA;AAGvC,MAAM,aAAa,CAAC,UAClB,MAAM,QAAQ,WAAW,CAAC,SAAS,KAAK,KAAK,WAAW,CAAC,CAAC,GAAG;AAG/D,MAAM,WAAW,CAAC,MAAc,OAAe,kBAC7C,6CAAe,UAASC,UAAAA,aAAa,QAAQA,UAAAA,aAAa,MAAM;AAElE,MAAM,YAAY,CAAC,UAAkB;AACnC,QAAM,EAAE,qBAAqB,MAAM,oBAAoB,QAAQD,UAAAA;AAC/D,SAAO,kDAAkD,GAAG,8BAA8B,IAAI,aAAa,IAAI,uBAAuB,WAAW,KAAK,CAAC;AACzJ;AAMA,MAAM,wBACJ,CAAC,OAAwB,QAAkB,gBAAwB,CAAC,WAAoB;AACtF,QAAM,QAAS,MAAM,QAAQ,MAAM,IAAI,OAAO,CAAC,IAAI;AAGnD,QAAM,QAAQ,+BAAO;AACrB,MAAI,SAAS,QAAQ,SAAS,MAAM,WAAW,OAAQ,QAAO;AAE9D,QAAM,QAAQ,CAAC,WAAW,MAAM,WAAW,KAAK,CAAC,CAAC;AAClD,QAAM,OAAO,QAAQ,CAAC,GAAG,MAAM;AAC7B,UAAM,QAAQ,EAAE,OAAO,KAAK;AAC5B,UAAM,OAAO,SAAS,OAAO,WAAW,WAAW,IAAI,OAAO,KAAK;AACnE,UAAM,KAAK,GAAG,UAAU,OAAO,CAAC,CAAC,CAAC,GAAG,WAAW,EAAE,IAAI,CAAC,KAAK,IAAI,EAAE;AAAA,EACpE,CAAC;AAED,SAAO,MAAM,KAAK,OAAO;AAC3B;AAEF,MAAM,YAAY,CAAC,WAAmC;AACpD,QAAM,QAAQ,QAAQ,OAAO,UAAU;AACvC,SAAO;AAAA,IACL,MAAM,YAAY,QAAQ,SAAS,CAAC,OAAO,aAAa,YAAY,eAAe;AAAA,IACnF,OAAO,YAAY;AAAA,IACnB,KAAK,YAAY;AAAA;AAAA,IAEjB,QACE,YAAY,QACX,SAAS,OAAO,aAAa,YAAY,eAAe,MACxD,OAAO,aAAa,IAAI,YAAY;AAAA,IACvC,cAAc;AAAA,EAAA;AAElB;AAEO,MAAM,wBAAwB,CAAC,OAAwB,WAAmC;AAC/F,QAAM,SAAS,MAAM,OAAO,IAAI,CAAC,GAAG,MAAM,SAAS,EAAE,MAAM,GAAG,OAAO,YAAY,CAAC;AAElF,QAAM,eAAe;AAAA,IACnB,MAAM;AAAA,IACN,MAAM,MAAM;AAAA;AAAA,IAEZ,SAAS,OAAO;AAAA,EAAA;AAElB,QAAM,YAAY;AAAA,IAChB,MAAM;AAAA,IACN,MAAM,OAAO;AAAA,IACb,cAAc;AAAA,IACd,SAAS,OAAO,aAAa,cAAc,IAAI,cAAc;AAAA;AAAA,IAE7D,YAAY,OAAO,aAAa,IAAI;AAAA,IACpC,aAAa,OAAO,gBAAgB,IAAI;AAAA,EAAA;AAG1C,SAAO;AAAA,IACL,SAAS;AAAA,MACP,SAAS;AAAA,MACT,aAAa,EAAE,MAAM,SAAA;AAAA,MACrB,WAAW,sBAAsB,OAAO,QAAQ,OAAO,WAAW;AAAA,IAAA;AAAA,IAEpE,QAAQ,EAAE,MAAM,CAAC,OAAO,YAAY,QAAQ,GAAG,MAAM,SAAA;AAAA,IACrD,MAAM,UAAU,MAAM;AAAA,IACtB,OAAO,OAAO,aAAa,YAAY;AAAA,IACvC,OAAO,OAAO,aAAa,eAAe;AAAA,IAC1C,QAAQ,MAAM,OAAO,IAAI,CAAC,GAAG,OAAO;AAAA,MAClC,MAAM,EAAE;AAAA,MACR,MAAM;AAAA,MACN,MAAM,EAAE;AAAA,MACR,cAAcA,UAAAA,YAAY;AAAA,MAC1B,WAAW,EAAE,OAAO,OAAO,CAAC,EAAA;AAAA,MAC5B,UAAU,EAAE,OAAO,SAAA;AAAA,IAAkB,EACrC;AAAA,EAAA;AAEN;;"}