@ktnpm_devops/react-component 0.1.0 → 0.2.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 (316) hide show
  1. package/README.md +16 -5
  2. package/dist/charts/CounterTimeseriesChart/CounterTimeseriesChart.d.ts +7 -0
  3. package/dist/charts/CounterTimeseriesChart/CounterTimeseriesChart.d.ts.map +1 -0
  4. package/dist/charts/CounterTimeseriesChart/CounterTimeseriesChart.types.d.ts +31 -0
  5. package/dist/charts/CounterTimeseriesChart/CounterTimeseriesChart.types.d.ts.map +1 -0
  6. package/dist/charts/CounterTimeseriesChart/index.d.ts +3 -0
  7. package/dist/charts/CounterTimeseriesChart/index.d.ts.map +1 -0
  8. package/dist/charts/CountersAnalysisCard/CountersAnalysisCard.d.ts +4 -0
  9. package/dist/charts/CountersAnalysisCard/CountersAnalysisCard.d.ts.map +1 -0
  10. package/dist/charts/CountersAnalysisCard/CountersAnalysisCard.types.d.ts +27 -0
  11. package/dist/charts/CountersAnalysisCard/CountersAnalysisCard.types.d.ts.map +1 -0
  12. package/dist/charts/CountersAnalysisCard/index.d.ts +3 -0
  13. package/dist/charts/CountersAnalysisCard/index.d.ts.map +1 -0
  14. package/dist/charts/SankeyChartCard/SankeyChartCard.d.ts +7 -0
  15. package/dist/charts/SankeyChartCard/SankeyChartCard.d.ts.map +1 -0
  16. package/dist/charts/SankeyChartCard/SankeyChartCard.types.d.ts +32 -0
  17. package/dist/charts/SankeyChartCard/SankeyChartCard.types.d.ts.map +1 -0
  18. package/dist/charts/SankeyChartCard/index.d.ts +3 -0
  19. package/dist/charts/SankeyChartCard/index.d.ts.map +1 -0
  20. package/dist/charts/StackedBarChartCard/StackedBarChartCard.d.ts +4 -0
  21. package/dist/charts/StackedBarChartCard/StackedBarChartCard.d.ts.map +1 -0
  22. package/dist/charts/StackedBarChartCard/StackedBarChartCard.types.d.ts +33 -0
  23. package/dist/charts/StackedBarChartCard/StackedBarChartCard.types.d.ts.map +1 -0
  24. package/dist/charts/StackedBarChartCard/buildChartOptions.d.ts +141 -0
  25. package/dist/charts/StackedBarChartCard/buildChartOptions.d.ts.map +1 -0
  26. package/dist/charts/StackedBarChartCard/index.d.ts +3 -0
  27. package/dist/charts/StackedBarChartCard/index.d.ts.map +1 -0
  28. package/dist/charts/TemporalTrendChartCard/TemporalTrendChartCard.d.ts +7 -0
  29. package/dist/charts/TemporalTrendChartCard/TemporalTrendChartCard.d.ts.map +1 -0
  30. package/dist/charts/TemporalTrendChartCard/TemporalTrendChartCard.types.d.ts +37 -0
  31. package/dist/charts/TemporalTrendChartCard/TemporalTrendChartCard.types.d.ts.map +1 -0
  32. package/dist/charts/TemporalTrendChartCard/index.d.ts +3 -0
  33. package/dist/charts/TemporalTrendChartCard/index.d.ts.map +1 -0
  34. package/dist/composites/Sidebar/Sidebar.d.ts +19 -0
  35. package/dist/composites/Sidebar/Sidebar.d.ts.map +1 -0
  36. package/dist/composites/Sidebar/Sidebar.types.d.ts +31 -0
  37. package/dist/composites/Sidebar/Sidebar.types.d.ts.map +1 -0
  38. package/dist/composites/Sidebar/index.d.ts +3 -0
  39. package/dist/composites/Sidebar/index.d.ts.map +1 -0
  40. package/dist/constants.d.ts +27 -0
  41. package/dist/constants.d.ts.map +1 -1
  42. package/dist/data/LiveExplorerTable/LiveExplorerTable.d.ts +7 -0
  43. package/dist/data/LiveExplorerTable/LiveExplorerTable.d.ts.map +1 -0
  44. package/dist/data/LiveExplorerTable/LiveExplorerTable.types.d.ts +63 -0
  45. package/dist/data/LiveExplorerTable/LiveExplorerTable.types.d.ts.map +1 -0
  46. package/dist/data/LiveExplorerTable/index.d.ts +3 -0
  47. package/dist/data/LiveExplorerTable/index.d.ts.map +1 -0
  48. package/dist/index.cjs +40 -15
  49. package/dist/index.cjs.map +1 -1
  50. package/dist/index.d.ts +26 -0
  51. package/dist/index.d.ts.map +1 -1
  52. package/dist/index.js +41 -16
  53. package/dist/index.js.map +1 -1
  54. package/dist/index10.cjs +4 -16
  55. package/dist/index10.cjs.map +1 -1
  56. package/dist/index10.js +4 -16
  57. package/dist/index10.js.map +1 -1
  58. package/dist/index11.cjs +16 -10
  59. package/dist/index11.cjs.map +1 -1
  60. package/dist/index11.js +16 -10
  61. package/dist/index11.js.map +1 -1
  62. package/dist/index12.cjs +10 -100
  63. package/dist/index12.cjs.map +1 -1
  64. package/dist/index12.js +11 -101
  65. package/dist/index12.js.map +1 -1
  66. package/dist/index13.cjs +87 -77
  67. package/dist/index13.cjs.map +1 -1
  68. package/dist/index13.js +88 -78
  69. package/dist/index13.js.map +1 -1
  70. package/dist/index14.cjs +20 -121
  71. package/dist/index14.cjs.map +1 -1
  72. package/dist/index14.js +20 -121
  73. package/dist/index14.js.map +1 -1
  74. package/dist/index15.cjs +89 -7
  75. package/dist/index15.cjs.map +1 -1
  76. package/dist/index15.js +91 -9
  77. package/dist/index15.js.map +1 -1
  78. package/dist/index16.cjs +151 -31
  79. package/dist/index16.cjs.map +1 -1
  80. package/dist/index16.js +152 -32
  81. package/dist/index16.js.map +1 -1
  82. package/dist/index17.cjs +124 -212
  83. package/dist/index17.cjs.map +1 -1
  84. package/dist/index17.js +125 -213
  85. package/dist/index17.js.map +1 -1
  86. package/dist/index18.cjs +110 -67
  87. package/dist/index18.cjs.map +1 -1
  88. package/dist/index18.js +110 -67
  89. package/dist/index18.js.map +1 -1
  90. package/dist/index19.cjs +17 -8
  91. package/dist/index19.cjs.map +1 -1
  92. package/dist/index19.js +18 -9
  93. package/dist/index19.js.map +1 -1
  94. package/dist/index20.cjs +7 -142
  95. package/dist/index20.cjs.map +1 -1
  96. package/dist/index20.js +9 -144
  97. package/dist/index20.js.map +1 -1
  98. package/dist/index21.cjs +131 -6
  99. package/dist/index21.cjs.map +1 -1
  100. package/dist/index21.js +132 -7
  101. package/dist/index21.js.map +1 -1
  102. package/dist/index22.cjs +38 -8
  103. package/dist/index22.cjs.map +1 -1
  104. package/dist/index22.js +39 -9
  105. package/dist/index22.js.map +1 -1
  106. package/dist/index23.cjs +226 -16
  107. package/dist/index23.cjs.map +1 -1
  108. package/dist/index23.js +225 -15
  109. package/dist/index23.js.map +1 -1
  110. package/dist/index24.cjs +36 -28
  111. package/dist/index24.cjs.map +1 -1
  112. package/dist/index24.js +35 -27
  113. package/dist/index24.js.map +1 -1
  114. package/dist/index25.cjs +79 -18
  115. package/dist/index25.cjs.map +1 -1
  116. package/dist/index25.js +78 -17
  117. package/dist/index25.js.map +1 -1
  118. package/dist/index26.cjs +154 -6
  119. package/dist/index26.cjs.map +1 -1
  120. package/dist/index26.js +153 -5
  121. package/dist/index26.js.map +1 -1
  122. package/dist/index27.cjs +10 -7
  123. package/dist/index27.cjs.map +1 -1
  124. package/dist/index27.js +9 -6
  125. package/dist/index27.js.map +1 -1
  126. package/dist/index28.cjs +19 -10
  127. package/dist/index28.cjs.map +1 -1
  128. package/dist/index28.js +18 -9
  129. package/dist/index28.js.map +1 -1
  130. package/dist/index29.cjs +78 -6
  131. package/dist/index29.cjs.map +1 -1
  132. package/dist/index29.js +77 -5
  133. package/dist/index29.js.map +1 -1
  134. package/dist/index30.cjs +143 -26
  135. package/dist/index30.cjs.map +1 -1
  136. package/dist/index30.js +143 -26
  137. package/dist/index30.js.map +1 -1
  138. package/dist/index31.cjs +106 -57
  139. package/dist/index31.cjs.map +1 -1
  140. package/dist/index31.js +105 -56
  141. package/dist/index31.js.map +1 -1
  142. package/dist/index32.cjs +8 -16
  143. package/dist/index32.cjs.map +1 -1
  144. package/dist/index32.js +7 -15
  145. package/dist/index32.js.map +1 -1
  146. package/dist/index33.cjs +218 -19
  147. package/dist/index33.cjs.map +1 -1
  148. package/dist/index33.js +217 -18
  149. package/dist/index33.js.map +1 -1
  150. package/dist/index34.cjs +10 -25
  151. package/dist/index34.cjs.map +1 -1
  152. package/dist/index34.js +9 -24
  153. package/dist/index34.js.map +1 -1
  154. package/dist/index35.cjs +15 -33
  155. package/dist/index35.cjs.map +1 -1
  156. package/dist/index35.js +15 -33
  157. package/dist/index35.js.map +1 -1
  158. package/dist/index36.cjs +10 -13
  159. package/dist/index36.cjs.map +1 -1
  160. package/dist/index36.js +11 -14
  161. package/dist/index36.js.map +1 -1
  162. package/dist/index37.cjs +17 -32
  163. package/dist/index37.cjs.map +1 -1
  164. package/dist/index37.js +18 -33
  165. package/dist/index37.js.map +1 -1
  166. package/dist/index38.cjs +67 -15
  167. package/dist/index38.cjs.map +1 -1
  168. package/dist/index38.js +66 -14
  169. package/dist/index38.js.map +1 -1
  170. package/dist/index40.cjs +9 -0
  171. package/dist/index40.cjs.map +1 -0
  172. package/dist/index40.js +9 -0
  173. package/dist/index40.js.map +1 -0
  174. package/dist/index41.cjs +18 -0
  175. package/dist/index41.cjs.map +1 -0
  176. package/dist/index41.js +18 -0
  177. package/dist/index41.js.map +1 -0
  178. package/dist/index42.cjs +21 -0
  179. package/dist/index42.cjs.map +1 -0
  180. package/dist/index42.js +21 -0
  181. package/dist/index42.js.map +1 -0
  182. package/dist/index43.cjs +12 -0
  183. package/dist/index43.cjs.map +1 -0
  184. package/dist/index43.js +12 -0
  185. package/dist/index43.js.map +1 -0
  186. package/dist/index44.cjs +30 -0
  187. package/dist/index44.cjs.map +1 -0
  188. package/dist/index44.js +30 -0
  189. package/dist/index44.js.map +1 -0
  190. package/dist/index45.cjs +9 -0
  191. package/dist/index45.cjs.map +1 -0
  192. package/dist/index45.js +9 -0
  193. package/dist/index45.js.map +1 -0
  194. package/dist/index46.cjs +9 -0
  195. package/dist/index46.cjs.map +1 -0
  196. package/dist/index46.js +9 -0
  197. package/dist/index46.js.map +1 -0
  198. package/dist/index47.cjs +60 -0
  199. package/dist/index47.cjs.map +1 -0
  200. package/dist/index47.js +60 -0
  201. package/dist/index47.js.map +1 -0
  202. package/dist/index48.cjs +36 -0
  203. package/dist/index48.cjs.map +1 -0
  204. package/dist/index48.js +36 -0
  205. package/dist/index48.js.map +1 -0
  206. package/dist/index49.cjs +60 -0
  207. package/dist/index49.cjs.map +1 -0
  208. package/dist/index49.js +60 -0
  209. package/dist/index49.js.map +1 -0
  210. package/dist/index50.cjs +45 -0
  211. package/dist/index50.cjs.map +1 -0
  212. package/dist/index50.js +45 -0
  213. package/dist/index50.js.map +1 -0
  214. package/dist/index51.cjs +45 -0
  215. package/dist/index51.cjs.map +1 -0
  216. package/dist/index51.js +45 -0
  217. package/dist/index51.js.map +1 -0
  218. package/dist/index52.cjs +42 -0
  219. package/dist/index52.cjs.map +1 -0
  220. package/dist/index52.js +42 -0
  221. package/dist/index52.js.map +1 -0
  222. package/dist/index53.cjs +36 -0
  223. package/dist/index53.cjs.map +1 -0
  224. package/dist/index53.js +36 -0
  225. package/dist/index53.js.map +1 -0
  226. package/dist/index54.cjs +21 -0
  227. package/dist/index54.cjs.map +1 -0
  228. package/dist/index54.js +21 -0
  229. package/dist/index54.js.map +1 -0
  230. package/dist/index55.cjs +57 -0
  231. package/dist/index55.cjs.map +1 -0
  232. package/dist/index55.js +57 -0
  233. package/dist/index55.js.map +1 -0
  234. package/dist/index56.cjs +136 -0
  235. package/dist/index56.cjs.map +1 -0
  236. package/dist/index56.js +136 -0
  237. package/dist/index56.js.map +1 -0
  238. package/dist/index57.cjs +48 -0
  239. package/dist/index57.cjs.map +1 -0
  240. package/dist/index57.js +48 -0
  241. package/dist/index57.js.map +1 -0
  242. package/dist/index58.cjs +24 -0
  243. package/dist/index58.cjs.map +1 -0
  244. package/dist/index58.js +24 -0
  245. package/dist/index58.js.map +1 -0
  246. package/dist/index59.cjs +27 -0
  247. package/dist/index59.cjs.map +1 -0
  248. package/dist/index59.js +27 -0
  249. package/dist/index59.js.map +1 -0
  250. package/dist/index60.cjs +42 -0
  251. package/dist/index60.cjs.map +1 -0
  252. package/dist/index60.js +42 -0
  253. package/dist/index60.js.map +1 -0
  254. package/dist/index61.cjs +18 -0
  255. package/dist/index61.cjs.map +1 -0
  256. package/dist/index61.js +18 -0
  257. package/dist/index61.js.map +1 -0
  258. package/dist/index62.cjs +24 -0
  259. package/dist/index62.cjs.map +1 -0
  260. package/dist/index62.js +24 -0
  261. package/dist/index62.js.map +1 -0
  262. package/dist/index63.cjs +21 -0
  263. package/dist/index63.cjs.map +1 -0
  264. package/dist/index63.js +21 -0
  265. package/dist/index63.js.map +1 -0
  266. package/dist/index64.cjs +24 -0
  267. package/dist/index64.cjs.map +1 -0
  268. package/dist/index64.js +24 -0
  269. package/dist/index64.js.map +1 -0
  270. package/dist/index8.cjs +14 -15
  271. package/dist/index8.cjs.map +1 -1
  272. package/dist/index8.js +15 -16
  273. package/dist/index8.js.map +1 -1
  274. package/dist/index9.cjs +15 -4
  275. package/dist/index9.cjs.map +1 -1
  276. package/dist/index9.js +15 -4
  277. package/dist/index9.js.map +1 -1
  278. package/dist/layouts/AuthLayout/AuthLayout.d.ts +4 -0
  279. package/dist/layouts/AuthLayout/AuthLayout.d.ts.map +1 -0
  280. package/dist/layouts/AuthLayout/AuthLayout.types.d.ts +10 -0
  281. package/dist/layouts/AuthLayout/AuthLayout.types.d.ts.map +1 -0
  282. package/dist/layouts/AuthLayout/index.d.ts +3 -0
  283. package/dist/layouts/AuthLayout/index.d.ts.map +1 -0
  284. package/dist/layouts/ChatLayout/ChatLayout.d.ts +7 -0
  285. package/dist/layouts/ChatLayout/ChatLayout.d.ts.map +1 -0
  286. package/dist/layouts/ChatLayout/ChatLayout.types.d.ts +19 -0
  287. package/dist/layouts/ChatLayout/ChatLayout.types.d.ts.map +1 -0
  288. package/dist/layouts/ChatLayout/index.d.ts +3 -0
  289. package/dist/layouts/ChatLayout/index.d.ts.map +1 -0
  290. package/dist/layouts/DashboardLayout/DashboardLayout.d.ts +7 -0
  291. package/dist/layouts/DashboardLayout/DashboardLayout.d.ts.map +1 -0
  292. package/dist/layouts/DashboardLayout/DashboardLayout.types.d.ts +15 -0
  293. package/dist/layouts/DashboardLayout/DashboardLayout.types.d.ts.map +1 -0
  294. package/dist/layouts/DashboardLayout/index.d.ts +3 -0
  295. package/dist/layouts/DashboardLayout/index.d.ts.map +1 -0
  296. package/dist/layouts/SettingsLayout/SettingsLayout.d.ts +4 -0
  297. package/dist/layouts/SettingsLayout/SettingsLayout.d.ts.map +1 -0
  298. package/dist/layouts/SettingsLayout/SettingsLayout.types.d.ts +11 -0
  299. package/dist/layouts/SettingsLayout/SettingsLayout.types.d.ts.map +1 -0
  300. package/dist/layouts/SettingsLayout/index.d.ts +3 -0
  301. package/dist/layouts/SettingsLayout/index.d.ts.map +1 -0
  302. package/dist/primitives/NavItem/NavItem.d.ts +4 -0
  303. package/dist/primitives/NavItem/NavItem.d.ts.map +1 -0
  304. package/dist/primitives/NavItem/NavItem.types.d.ts +23 -0
  305. package/dist/primitives/NavItem/NavItem.types.d.ts.map +1 -0
  306. package/dist/primitives/NavItem/index.d.ts +3 -0
  307. package/dist/primitives/NavItem/index.d.ts.map +1 -0
  308. package/dist/style.css +1496 -321
  309. package/dist/tokens/semantic-tokens.css +42 -1
  310. package/dist/types/chart.types.d.ts +96 -0
  311. package/dist/types/chart.types.d.ts.map +1 -0
  312. package/dist/types/index.d.ts +2 -0
  313. package/dist/types/index.d.ts.map +1 -1
  314. package/dist/types/layout.types.d.ts +35 -0
  315. package/dist/types/layout.types.d.ts.map +1 -0
  316. package/package.json +1 -1
@@ -0,0 +1,57 @@
1
+ "use strict";
2
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
+ const root = "krc-root-W2sel";
4
+ const tableContainer = "krc-tableContainer-Ed3uk";
5
+ const table = "krc-table-7p0H-";
6
+ const th = "krc-th-fNmfv";
7
+ const sortable = "krc-sortable-Ve0MQ";
8
+ const thContent = "krc-thContent-BRDIL";
9
+ const sortIndicator = "krc-sortIndicator-PtGYj";
10
+ const resizeHandle = "krc-resizeHandle--St-g";
11
+ const td = "krc-td-ZVsrU";
12
+ const row = "krc-row-JivMH";
13
+ const rowClickable = "krc-rowClickable-lTgQW";
14
+ const rowSelected = "krc-rowSelected-Sv0qs";
15
+ const skeletonRow = "krc-skeletonRow-uD1y7";
16
+ const skeleton = "krc-skeleton-eeYso";
17
+ const empty = "krc-empty-xKpKS";
18
+ const loadMore = "krc-loadMore-njxDN";
19
+ const loadMoreButton = "krc-loadMoreButton-C3Q-f";
20
+ const styles = {
21
+ root,
22
+ tableContainer,
23
+ table,
24
+ th,
25
+ sortable,
26
+ thContent,
27
+ sortIndicator,
28
+ resizeHandle,
29
+ td,
30
+ row,
31
+ rowClickable,
32
+ rowSelected,
33
+ skeletonRow,
34
+ skeleton,
35
+ empty,
36
+ loadMore,
37
+ loadMoreButton
38
+ };
39
+ exports.default = styles;
40
+ exports.empty = empty;
41
+ exports.loadMore = loadMore;
42
+ exports.loadMoreButton = loadMoreButton;
43
+ exports.resizeHandle = resizeHandle;
44
+ exports.root = root;
45
+ exports.row = row;
46
+ exports.rowClickable = rowClickable;
47
+ exports.rowSelected = rowSelected;
48
+ exports.skeleton = skeleton;
49
+ exports.skeletonRow = skeletonRow;
50
+ exports.sortIndicator = sortIndicator;
51
+ exports.sortable = sortable;
52
+ exports.table = table;
53
+ exports.tableContainer = tableContainer;
54
+ exports.td = td;
55
+ exports.th = th;
56
+ exports.thContent = thContent;
57
+ //# sourceMappingURL=index55.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index55.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,57 @@
1
+ const root = "krc-root-W2sel";
2
+ const tableContainer = "krc-tableContainer-Ed3uk";
3
+ const table = "krc-table-7p0H-";
4
+ const th = "krc-th-fNmfv";
5
+ const sortable = "krc-sortable-Ve0MQ";
6
+ const thContent = "krc-thContent-BRDIL";
7
+ const sortIndicator = "krc-sortIndicator-PtGYj";
8
+ const resizeHandle = "krc-resizeHandle--St-g";
9
+ const td = "krc-td-ZVsrU";
10
+ const row = "krc-row-JivMH";
11
+ const rowClickable = "krc-rowClickable-lTgQW";
12
+ const rowSelected = "krc-rowSelected-Sv0qs";
13
+ const skeletonRow = "krc-skeletonRow-uD1y7";
14
+ const skeleton = "krc-skeleton-eeYso";
15
+ const empty = "krc-empty-xKpKS";
16
+ const loadMore = "krc-loadMore-njxDN";
17
+ const loadMoreButton = "krc-loadMoreButton-C3Q-f";
18
+ const styles = {
19
+ root,
20
+ tableContainer,
21
+ table,
22
+ th,
23
+ sortable,
24
+ thContent,
25
+ sortIndicator,
26
+ resizeHandle,
27
+ td,
28
+ row,
29
+ rowClickable,
30
+ rowSelected,
31
+ skeletonRow,
32
+ skeleton,
33
+ empty,
34
+ loadMore,
35
+ loadMoreButton
36
+ };
37
+ export {
38
+ styles as default,
39
+ empty,
40
+ loadMore,
41
+ loadMoreButton,
42
+ resizeHandle,
43
+ root,
44
+ row,
45
+ rowClickable,
46
+ rowSelected,
47
+ skeleton,
48
+ skeletonRow,
49
+ sortIndicator,
50
+ sortable,
51
+ table,
52
+ tableContainer,
53
+ td,
54
+ th,
55
+ thContent
56
+ };
57
+ //# sourceMappingURL=index55.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index55.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
+ const constants = require("./index38.cjs");
4
+ function aggregateData(data, maxCats, maxSubs, showOthers) {
5
+ const categoryMap = /* @__PURE__ */ new Map();
6
+ for (const point of data) {
7
+ const cat = point.category ?? "Unknown";
8
+ const sub = point.subCategory ?? "Default";
9
+ if (!categoryMap.has(cat)) {
10
+ categoryMap.set(cat, /* @__PURE__ */ new Map());
11
+ }
12
+ const subMap = categoryMap.get(cat);
13
+ subMap.set(sub, (subMap.get(sub) ?? 0) + point.value);
14
+ }
15
+ const sortedCategories = [...categoryMap.entries()].map(([cat, subMap]) => {
16
+ let total = 0;
17
+ for (const v of subMap.values()) total += v;
18
+ return { cat, subMap, total };
19
+ }).sort((a, b) => b.total - a.total);
20
+ const topCategories = sortedCategories.slice(0, maxCats);
21
+ const overflowCategories = sortedCategories.slice(maxCats);
22
+ if (showOthers && overflowCategories.length > 0) {
23
+ const othersMap = /* @__PURE__ */ new Map();
24
+ for (const { subMap } of overflowCategories) {
25
+ for (const [sub, val] of subMap) {
26
+ othersMap.set(sub, (othersMap.get(sub) ?? 0) + val);
27
+ }
28
+ }
29
+ let othersTotal = 0;
30
+ for (const v of othersMap.values()) othersTotal += v;
31
+ topCategories.push({ cat: "Others", subMap: othersMap, total: othersTotal });
32
+ }
33
+ const allSubCategories = /* @__PURE__ */ new Set();
34
+ for (const { subMap } of topCategories) {
35
+ for (const sub of subMap.keys()) {
36
+ allSubCategories.add(sub);
37
+ }
38
+ }
39
+ const sortedSubs = [...allSubCategories];
40
+ const limitedSubs = sortedSubs.slice(0, maxSubs);
41
+ const hasOverflowSubs = sortedSubs.length > maxSubs;
42
+ const categories = topCategories.map((entry) => entry.cat);
43
+ const series = limitedSubs.map((sub) => ({
44
+ name: sub,
45
+ values: topCategories.map((entry) => entry.subMap.get(sub) ?? 0)
46
+ }));
47
+ if (hasOverflowSubs && showOthers) {
48
+ const overflowSubs = sortedSubs.slice(maxSubs);
49
+ series.push({
50
+ name: "Other subcategories",
51
+ values: topCategories.map((entry) => {
52
+ let sum = 0;
53
+ for (const sub of overflowSubs) {
54
+ sum += entry.subMap.get(sub) ?? 0;
55
+ }
56
+ return sum;
57
+ })
58
+ });
59
+ }
60
+ return { categories, series };
61
+ }
62
+ function buildBarOption(categories, series, invertAxis, hideLegend, enableScroll) {
63
+ const categoryAxis = { type: "category", data: categories };
64
+ const valueAxis = { type: "value" };
65
+ const dataZoom = enableScroll ? [{ type: "slider", show: true, ...invertAxis ? { yAxisIndex: 0 } : { xAxisIndex: 0 } }] : [];
66
+ return {
67
+ tooltip: { trigger: "axis", axisPointer: { type: "shadow" } },
68
+ legend: { show: !hideLegend, bottom: 0, type: "scroll" },
69
+ grid: { left: "3%", right: "4%", top: "3%", bottom: hideLegend ? "3%" : "12%", containLabel: true },
70
+ xAxis: invertAxis ? valueAxis : categoryAxis,
71
+ yAxis: invertAxis ? categoryAxis : valueAxis,
72
+ dataZoom,
73
+ series: series.map((s, i) => ({
74
+ name: s.name,
75
+ type: "bar",
76
+ stack: "total",
77
+ emphasis: { focus: "series" },
78
+ data: s.values,
79
+ itemStyle: { color: constants.CHART_COLORS[i % constants.CHART_COLORS.length] }
80
+ }))
81
+ };
82
+ }
83
+ function buildPieOption(categories, series, hideLegend) {
84
+ const pieData = categories.map((cat, catIdx) => {
85
+ let total = 0;
86
+ for (const s of series) {
87
+ total += s.values[catIdx] ?? 0;
88
+ }
89
+ return { name: cat, value: total };
90
+ });
91
+ return {
92
+ tooltip: { trigger: "item" },
93
+ legend: { show: !hideLegend, bottom: 0, type: "scroll" },
94
+ series: [
95
+ {
96
+ type: "pie",
97
+ radius: ["30%", "65%"],
98
+ center: ["50%", "45%"],
99
+ data: pieData.map((d, i) => ({
100
+ ...d,
101
+ itemStyle: { color: constants.CHART_COLORS[i % constants.CHART_COLORS.length] }
102
+ })),
103
+ emphasis: { itemStyle: { shadowBlur: 10, shadowOffsetX: 0, shadowColor: "rgba(0,0,0,0.3)" } },
104
+ label: { show: true, formatter: "{b}: {d}%" }
105
+ }
106
+ ]
107
+ };
108
+ }
109
+ function buildSunburstOption(categories, series) {
110
+ const sunburstData = categories.map((cat, catIdx) => {
111
+ const children = series.map((s, sIdx) => ({
112
+ name: s.name,
113
+ value: s.values[catIdx] ?? 0,
114
+ itemStyle: { color: constants.CHART_COLORS[(catIdx * series.length + sIdx) % constants.CHART_COLORS.length] }
115
+ })).filter((child) => child.value > 0);
116
+ return { name: cat, children };
117
+ });
118
+ return {
119
+ tooltip: { trigger: "item" },
120
+ series: [
121
+ {
122
+ type: "sunburst",
123
+ data: sunburstData,
124
+ radius: ["15%", "80%"],
125
+ label: { rotate: "radial", fontSize: 10 },
126
+ itemStyle: { borderRadius: 4, borderWidth: 1 },
127
+ emphasis: { focus: "ancestor" }
128
+ }
129
+ ]
130
+ };
131
+ }
132
+ exports.aggregateData = aggregateData;
133
+ exports.buildBarOption = buildBarOption;
134
+ exports.buildPieOption = buildPieOption;
135
+ exports.buildSunburstOption = buildSunburstOption;
136
+ //# sourceMappingURL=index56.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index56.cjs","sources":["../src/charts/StackedBarChartCard/buildChartOptions.ts"],"sourcesContent":["import type { ChartSeriesPoint } from '../../types/chart.types';\nimport { CHART_COLORS } from '../../constants';\n\n/** Aggregated series data for chart rendering. */\nexport interface AggregatedChartData {\n categories: string[];\n series: { name: string; values: number[] }[];\n}\n\n/** Aggregate data points by category and subCategory, applying limits. */\nexport function aggregateData(\n data: ChartSeriesPoint[],\n maxCats: number,\n maxSubs: number,\n showOthers: boolean,\n): AggregatedChartData {\n const categoryMap = new Map<string, Map<string, number>>();\n\n for (const point of data) {\n const cat = point.category ?? 'Unknown';\n const sub = point.subCategory ?? 'Default';\n if (!categoryMap.has(cat)) {\n categoryMap.set(cat, new Map());\n }\n const subMap = categoryMap.get(cat)!;\n subMap.set(sub, (subMap.get(sub) ?? 0) + point.value);\n }\n\n const sortedCategories = [...categoryMap.entries()]\n .map(([cat, subMap]) => {\n let total = 0;\n for (const v of subMap.values()) total += v;\n return { cat, subMap, total };\n })\n .sort((a, b) => b.total - a.total);\n\n const topCategories = sortedCategories.slice(0, maxCats);\n const overflowCategories = sortedCategories.slice(maxCats);\n\n if (showOthers && overflowCategories.length > 0) {\n const othersMap = new Map<string, number>();\n for (const { subMap } of overflowCategories) {\n for (const [sub, val] of subMap) {\n othersMap.set(sub, (othersMap.get(sub) ?? 0) + val);\n }\n }\n let othersTotal = 0;\n for (const v of othersMap.values()) othersTotal += v;\n topCategories.push({ cat: 'Others', subMap: othersMap, total: othersTotal });\n }\n\n const allSubCategories = new Set<string>();\n for (const { subMap } of topCategories) {\n for (const sub of subMap.keys()) {\n allSubCategories.add(sub);\n }\n }\n\n const sortedSubs = [...allSubCategories];\n const limitedSubs = sortedSubs.slice(0, maxSubs);\n const hasOverflowSubs = sortedSubs.length > maxSubs;\n\n const categories = topCategories.map((entry) => entry.cat);\n\n const series = limitedSubs.map((sub) => ({\n name: sub,\n values: topCategories.map((entry) => entry.subMap.get(sub) ?? 0),\n }));\n\n if (hasOverflowSubs && showOthers) {\n const overflowSubs = sortedSubs.slice(maxSubs);\n series.push({\n name: 'Other subcategories',\n values: topCategories.map((entry) => {\n let sum = 0;\n for (const sub of overflowSubs) {\n sum += entry.subMap.get(sub) ?? 0;\n }\n return sum;\n }),\n });\n }\n\n return { categories, series };\n}\n\n/** Build ECharts option for stacked bar chart. */\nexport function buildBarOption(\n categories: string[],\n series: { name: string; values: number[] }[],\n invertAxis: boolean,\n hideLegend: boolean,\n enableScroll: boolean,\n) {\n const categoryAxis = { type: 'category' as const, data: categories };\n const valueAxis = { type: 'value' as const };\n\n const dataZoom = enableScroll\n ? [{ type: 'slider' as const, show: true, ...(invertAxis ? { yAxisIndex: 0 } : { xAxisIndex: 0 }) }]\n : [];\n\n return {\n tooltip: { trigger: 'axis' as const, axisPointer: { type: 'shadow' as const } },\n legend: { show: !hideLegend, bottom: 0, type: 'scroll' as const },\n grid: { left: '3%', right: '4%', top: '3%', bottom: hideLegend ? '3%' : '12%', containLabel: true },\n xAxis: invertAxis ? valueAxis : categoryAxis,\n yAxis: invertAxis ? categoryAxis : valueAxis,\n dataZoom,\n series: series.map((s, i) => ({\n name: s.name,\n type: 'bar' as const,\n stack: 'total',\n emphasis: { focus: 'series' as const },\n data: s.values,\n itemStyle: { color: CHART_COLORS[i % CHART_COLORS.length] },\n })),\n };\n}\n\n/** Build ECharts option for pie chart. */\nexport function buildPieOption(\n categories: string[],\n series: { name: string; values: number[] }[],\n hideLegend: boolean,\n) {\n const pieData = categories.map((cat, catIdx) => {\n let total = 0;\n for (const s of series) {\n total += s.values[catIdx] ?? 0;\n }\n return { name: cat, value: total };\n });\n\n return {\n tooltip: { trigger: 'item' as const },\n legend: { show: !hideLegend, bottom: 0, type: 'scroll' as const },\n series: [\n {\n type: 'pie' as const,\n radius: ['30%', '65%'],\n center: ['50%', '45%'],\n data: pieData.map((d, i) => ({\n ...d,\n itemStyle: { color: CHART_COLORS[i % CHART_COLORS.length] },\n })),\n emphasis: { itemStyle: { shadowBlur: 10, shadowOffsetX: 0, shadowColor: 'rgba(0,0,0,0.3)' } },\n label: { show: true, formatter: '{b}: {d}%' },\n },\n ],\n };\n}\n\n/** Build ECharts option for sunburst chart. */\nexport function buildSunburstOption(\n categories: string[],\n series: { name: string; values: number[] }[],\n) {\n const sunburstData = categories.map((cat, catIdx) => {\n const children = series\n .map((s, sIdx) => ({\n name: s.name,\n value: s.values[catIdx] ?? 0,\n itemStyle: { color: CHART_COLORS[(catIdx * series.length + sIdx) % CHART_COLORS.length] },\n }))\n .filter((child) => child.value > 0);\n\n return { name: cat, children };\n });\n\n return {\n tooltip: { trigger: 'item' as const },\n series: [\n {\n type: 'sunburst' as const,\n data: sunburstData,\n radius: ['15%', '80%'],\n label: { rotate: 'radial' as const, fontSize: 10 },\n itemStyle: { borderRadius: 4, borderWidth: 1 },\n emphasis: { focus: 'ancestor' as const },\n },\n ],\n };\n}\n"],"names":["CHART_COLORS"],"mappings":"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"}
@@ -0,0 +1,136 @@
1
+ import { CHART_COLORS } from "./index38.js";
2
+ function aggregateData(data, maxCats, maxSubs, showOthers) {
3
+ const categoryMap = /* @__PURE__ */ new Map();
4
+ for (const point of data) {
5
+ const cat = point.category ?? "Unknown";
6
+ const sub = point.subCategory ?? "Default";
7
+ if (!categoryMap.has(cat)) {
8
+ categoryMap.set(cat, /* @__PURE__ */ new Map());
9
+ }
10
+ const subMap = categoryMap.get(cat);
11
+ subMap.set(sub, (subMap.get(sub) ?? 0) + point.value);
12
+ }
13
+ const sortedCategories = [...categoryMap.entries()].map(([cat, subMap]) => {
14
+ let total = 0;
15
+ for (const v of subMap.values()) total += v;
16
+ return { cat, subMap, total };
17
+ }).sort((a, b) => b.total - a.total);
18
+ const topCategories = sortedCategories.slice(0, maxCats);
19
+ const overflowCategories = sortedCategories.slice(maxCats);
20
+ if (showOthers && overflowCategories.length > 0) {
21
+ const othersMap = /* @__PURE__ */ new Map();
22
+ for (const { subMap } of overflowCategories) {
23
+ for (const [sub, val] of subMap) {
24
+ othersMap.set(sub, (othersMap.get(sub) ?? 0) + val);
25
+ }
26
+ }
27
+ let othersTotal = 0;
28
+ for (const v of othersMap.values()) othersTotal += v;
29
+ topCategories.push({ cat: "Others", subMap: othersMap, total: othersTotal });
30
+ }
31
+ const allSubCategories = /* @__PURE__ */ new Set();
32
+ for (const { subMap } of topCategories) {
33
+ for (const sub of subMap.keys()) {
34
+ allSubCategories.add(sub);
35
+ }
36
+ }
37
+ const sortedSubs = [...allSubCategories];
38
+ const limitedSubs = sortedSubs.slice(0, maxSubs);
39
+ const hasOverflowSubs = sortedSubs.length > maxSubs;
40
+ const categories = topCategories.map((entry) => entry.cat);
41
+ const series = limitedSubs.map((sub) => ({
42
+ name: sub,
43
+ values: topCategories.map((entry) => entry.subMap.get(sub) ?? 0)
44
+ }));
45
+ if (hasOverflowSubs && showOthers) {
46
+ const overflowSubs = sortedSubs.slice(maxSubs);
47
+ series.push({
48
+ name: "Other subcategories",
49
+ values: topCategories.map((entry) => {
50
+ let sum = 0;
51
+ for (const sub of overflowSubs) {
52
+ sum += entry.subMap.get(sub) ?? 0;
53
+ }
54
+ return sum;
55
+ })
56
+ });
57
+ }
58
+ return { categories, series };
59
+ }
60
+ function buildBarOption(categories, series, invertAxis, hideLegend, enableScroll) {
61
+ const categoryAxis = { type: "category", data: categories };
62
+ const valueAxis = { type: "value" };
63
+ const dataZoom = enableScroll ? [{ type: "slider", show: true, ...invertAxis ? { yAxisIndex: 0 } : { xAxisIndex: 0 } }] : [];
64
+ return {
65
+ tooltip: { trigger: "axis", axisPointer: { type: "shadow" } },
66
+ legend: { show: !hideLegend, bottom: 0, type: "scroll" },
67
+ grid: { left: "3%", right: "4%", top: "3%", bottom: hideLegend ? "3%" : "12%", containLabel: true },
68
+ xAxis: invertAxis ? valueAxis : categoryAxis,
69
+ yAxis: invertAxis ? categoryAxis : valueAxis,
70
+ dataZoom,
71
+ series: series.map((s, i) => ({
72
+ name: s.name,
73
+ type: "bar",
74
+ stack: "total",
75
+ emphasis: { focus: "series" },
76
+ data: s.values,
77
+ itemStyle: { color: CHART_COLORS[i % CHART_COLORS.length] }
78
+ }))
79
+ };
80
+ }
81
+ function buildPieOption(categories, series, hideLegend) {
82
+ const pieData = categories.map((cat, catIdx) => {
83
+ let total = 0;
84
+ for (const s of series) {
85
+ total += s.values[catIdx] ?? 0;
86
+ }
87
+ return { name: cat, value: total };
88
+ });
89
+ return {
90
+ tooltip: { trigger: "item" },
91
+ legend: { show: !hideLegend, bottom: 0, type: "scroll" },
92
+ series: [
93
+ {
94
+ type: "pie",
95
+ radius: ["30%", "65%"],
96
+ center: ["50%", "45%"],
97
+ data: pieData.map((d, i) => ({
98
+ ...d,
99
+ itemStyle: { color: CHART_COLORS[i % CHART_COLORS.length] }
100
+ })),
101
+ emphasis: { itemStyle: { shadowBlur: 10, shadowOffsetX: 0, shadowColor: "rgba(0,0,0,0.3)" } },
102
+ label: { show: true, formatter: "{b}: {d}%" }
103
+ }
104
+ ]
105
+ };
106
+ }
107
+ function buildSunburstOption(categories, series) {
108
+ const sunburstData = categories.map((cat, catIdx) => {
109
+ const children = series.map((s, sIdx) => ({
110
+ name: s.name,
111
+ value: s.values[catIdx] ?? 0,
112
+ itemStyle: { color: CHART_COLORS[(catIdx * series.length + sIdx) % CHART_COLORS.length] }
113
+ })).filter((child) => child.value > 0);
114
+ return { name: cat, children };
115
+ });
116
+ return {
117
+ tooltip: { trigger: "item" },
118
+ series: [
119
+ {
120
+ type: "sunburst",
121
+ data: sunburstData,
122
+ radius: ["15%", "80%"],
123
+ label: { rotate: "radial", fontSize: 10 },
124
+ itemStyle: { borderRadius: 4, borderWidth: 1 },
125
+ emphasis: { focus: "ancestor" }
126
+ }
127
+ ]
128
+ };
129
+ }
130
+ export {
131
+ aggregateData,
132
+ buildBarOption,
133
+ buildPieOption,
134
+ buildSunburstOption
135
+ };
136
+ //# sourceMappingURL=index56.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index56.js","sources":["../src/charts/StackedBarChartCard/buildChartOptions.ts"],"sourcesContent":["import type { ChartSeriesPoint } from '../../types/chart.types';\nimport { CHART_COLORS } from '../../constants';\n\n/** Aggregated series data for chart rendering. */\nexport interface AggregatedChartData {\n categories: string[];\n series: { name: string; values: number[] }[];\n}\n\n/** Aggregate data points by category and subCategory, applying limits. */\nexport function aggregateData(\n data: ChartSeriesPoint[],\n maxCats: number,\n maxSubs: number,\n showOthers: boolean,\n): AggregatedChartData {\n const categoryMap = new Map<string, Map<string, number>>();\n\n for (const point of data) {\n const cat = point.category ?? 'Unknown';\n const sub = point.subCategory ?? 'Default';\n if (!categoryMap.has(cat)) {\n categoryMap.set(cat, new Map());\n }\n const subMap = categoryMap.get(cat)!;\n subMap.set(sub, (subMap.get(sub) ?? 0) + point.value);\n }\n\n const sortedCategories = [...categoryMap.entries()]\n .map(([cat, subMap]) => {\n let total = 0;\n for (const v of subMap.values()) total += v;\n return { cat, subMap, total };\n })\n .sort((a, b) => b.total - a.total);\n\n const topCategories = sortedCategories.slice(0, maxCats);\n const overflowCategories = sortedCategories.slice(maxCats);\n\n if (showOthers && overflowCategories.length > 0) {\n const othersMap = new Map<string, number>();\n for (const { subMap } of overflowCategories) {\n for (const [sub, val] of subMap) {\n othersMap.set(sub, (othersMap.get(sub) ?? 0) + val);\n }\n }\n let othersTotal = 0;\n for (const v of othersMap.values()) othersTotal += v;\n topCategories.push({ cat: 'Others', subMap: othersMap, total: othersTotal });\n }\n\n const allSubCategories = new Set<string>();\n for (const { subMap } of topCategories) {\n for (const sub of subMap.keys()) {\n allSubCategories.add(sub);\n }\n }\n\n const sortedSubs = [...allSubCategories];\n const limitedSubs = sortedSubs.slice(0, maxSubs);\n const hasOverflowSubs = sortedSubs.length > maxSubs;\n\n const categories = topCategories.map((entry) => entry.cat);\n\n const series = limitedSubs.map((sub) => ({\n name: sub,\n values: topCategories.map((entry) => entry.subMap.get(sub) ?? 0),\n }));\n\n if (hasOverflowSubs && showOthers) {\n const overflowSubs = sortedSubs.slice(maxSubs);\n series.push({\n name: 'Other subcategories',\n values: topCategories.map((entry) => {\n let sum = 0;\n for (const sub of overflowSubs) {\n sum += entry.subMap.get(sub) ?? 0;\n }\n return sum;\n }),\n });\n }\n\n return { categories, series };\n}\n\n/** Build ECharts option for stacked bar chart. */\nexport function buildBarOption(\n categories: string[],\n series: { name: string; values: number[] }[],\n invertAxis: boolean,\n hideLegend: boolean,\n enableScroll: boolean,\n) {\n const categoryAxis = { type: 'category' as const, data: categories };\n const valueAxis = { type: 'value' as const };\n\n const dataZoom = enableScroll\n ? [{ type: 'slider' as const, show: true, ...(invertAxis ? { yAxisIndex: 0 } : { xAxisIndex: 0 }) }]\n : [];\n\n return {\n tooltip: { trigger: 'axis' as const, axisPointer: { type: 'shadow' as const } },\n legend: { show: !hideLegend, bottom: 0, type: 'scroll' as const },\n grid: { left: '3%', right: '4%', top: '3%', bottom: hideLegend ? '3%' : '12%', containLabel: true },\n xAxis: invertAxis ? valueAxis : categoryAxis,\n yAxis: invertAxis ? categoryAxis : valueAxis,\n dataZoom,\n series: series.map((s, i) => ({\n name: s.name,\n type: 'bar' as const,\n stack: 'total',\n emphasis: { focus: 'series' as const },\n data: s.values,\n itemStyle: { color: CHART_COLORS[i % CHART_COLORS.length] },\n })),\n };\n}\n\n/** Build ECharts option for pie chart. */\nexport function buildPieOption(\n categories: string[],\n series: { name: string; values: number[] }[],\n hideLegend: boolean,\n) {\n const pieData = categories.map((cat, catIdx) => {\n let total = 0;\n for (const s of series) {\n total += s.values[catIdx] ?? 0;\n }\n return { name: cat, value: total };\n });\n\n return {\n tooltip: { trigger: 'item' as const },\n legend: { show: !hideLegend, bottom: 0, type: 'scroll' as const },\n series: [\n {\n type: 'pie' as const,\n radius: ['30%', '65%'],\n center: ['50%', '45%'],\n data: pieData.map((d, i) => ({\n ...d,\n itemStyle: { color: CHART_COLORS[i % CHART_COLORS.length] },\n })),\n emphasis: { itemStyle: { shadowBlur: 10, shadowOffsetX: 0, shadowColor: 'rgba(0,0,0,0.3)' } },\n label: { show: true, formatter: '{b}: {d}%' },\n },\n ],\n };\n}\n\n/** Build ECharts option for sunburst chart. */\nexport function buildSunburstOption(\n categories: string[],\n series: { name: string; values: number[] }[],\n) {\n const sunburstData = categories.map((cat, catIdx) => {\n const children = series\n .map((s, sIdx) => ({\n name: s.name,\n value: s.values[catIdx] ?? 0,\n itemStyle: { color: CHART_COLORS[(catIdx * series.length + sIdx) % CHART_COLORS.length] },\n }))\n .filter((child) => child.value > 0);\n\n return { name: cat, children };\n });\n\n return {\n tooltip: { trigger: 'item' as const },\n series: [\n {\n type: 'sunburst' as const,\n data: sunburstData,\n radius: ['15%', '80%'],\n label: { rotate: 'radial' as const, fontSize: 10 },\n itemStyle: { borderRadius: 4, borderWidth: 1 },\n emphasis: { focus: 'ancestor' as const },\n },\n ],\n };\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
+ const root = "krc-root-U8B4Y";
4
+ const header = "krc-header-dy6xQ";
5
+ const headerLeft = "krc-headerLeft-80jJu";
6
+ const title = "krc-title--e-Ci";
7
+ const subtitle = "krc-subtitle-63ixC";
8
+ const headerRight = "krc-headerRight-3Vuls";
9
+ const toolbar = "krc-toolbar-h6ALf";
10
+ const chartTypeToggle = "krc-chartTypeToggle-6DRWb";
11
+ const active = "krc-active-Un9q0";
12
+ const chartContainer = "krc-chartContainer-2Oz2N";
13
+ const loading = "krc-loading-hTkxl";
14
+ const error = "krc-error--F7yO";
15
+ const retryButton = "krc-retryButton-w0SS7";
16
+ const empty = "krc-empty-HWTS-";
17
+ const styles = {
18
+ root,
19
+ header,
20
+ headerLeft,
21
+ title,
22
+ subtitle,
23
+ headerRight,
24
+ toolbar,
25
+ chartTypeToggle,
26
+ active,
27
+ chartContainer,
28
+ loading,
29
+ error,
30
+ retryButton,
31
+ empty
32
+ };
33
+ exports.active = active;
34
+ exports.chartContainer = chartContainer;
35
+ exports.chartTypeToggle = chartTypeToggle;
36
+ exports.default = styles;
37
+ exports.empty = empty;
38
+ exports.error = error;
39
+ exports.header = header;
40
+ exports.headerLeft = headerLeft;
41
+ exports.headerRight = headerRight;
42
+ exports.loading = loading;
43
+ exports.retryButton = retryButton;
44
+ exports.root = root;
45
+ exports.subtitle = subtitle;
46
+ exports.title = title;
47
+ exports.toolbar = toolbar;
48
+ //# sourceMappingURL=index57.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index57.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,48 @@
1
+ const root = "krc-root-U8B4Y";
2
+ const header = "krc-header-dy6xQ";
3
+ const headerLeft = "krc-headerLeft-80jJu";
4
+ const title = "krc-title--e-Ci";
5
+ const subtitle = "krc-subtitle-63ixC";
6
+ const headerRight = "krc-headerRight-3Vuls";
7
+ const toolbar = "krc-toolbar-h6ALf";
8
+ const chartTypeToggle = "krc-chartTypeToggle-6DRWb";
9
+ const active = "krc-active-Un9q0";
10
+ const chartContainer = "krc-chartContainer-2Oz2N";
11
+ const loading = "krc-loading-hTkxl";
12
+ const error = "krc-error--F7yO";
13
+ const retryButton = "krc-retryButton-w0SS7";
14
+ const empty = "krc-empty-HWTS-";
15
+ const styles = {
16
+ root,
17
+ header,
18
+ headerLeft,
19
+ title,
20
+ subtitle,
21
+ headerRight,
22
+ toolbar,
23
+ chartTypeToggle,
24
+ active,
25
+ chartContainer,
26
+ loading,
27
+ error,
28
+ retryButton,
29
+ empty
30
+ };
31
+ export {
32
+ active,
33
+ chartContainer,
34
+ chartTypeToggle,
35
+ styles as default,
36
+ empty,
37
+ error,
38
+ header,
39
+ headerLeft,
40
+ headerRight,
41
+ loading,
42
+ retryButton,
43
+ root,
44
+ subtitle,
45
+ title,
46
+ toolbar
47
+ };
48
+ //# sourceMappingURL=index57.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index57.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
+ const root = "krc-root-jkFwM";
4
+ const sidebar = "krc-sidebar-g7vxQ";
5
+ const sidebarCollapsed = "krc-sidebarCollapsed-Xiswa";
6
+ const main = "krc-main-B4HyG";
7
+ const content = "krc-content-72sFf";
8
+ const title = "krc-title-pe-1P";
9
+ const styles = {
10
+ root,
11
+ sidebar,
12
+ sidebarCollapsed,
13
+ main,
14
+ content,
15
+ title
16
+ };
17
+ exports.content = content;
18
+ exports.default = styles;
19
+ exports.main = main;
20
+ exports.root = root;
21
+ exports.sidebar = sidebar;
22
+ exports.sidebarCollapsed = sidebarCollapsed;
23
+ exports.title = title;
24
+ //# sourceMappingURL=index58.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index58.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,24 @@
1
+ const root = "krc-root-jkFwM";
2
+ const sidebar = "krc-sidebar-g7vxQ";
3
+ const sidebarCollapsed = "krc-sidebarCollapsed-Xiswa";
4
+ const main = "krc-main-B4HyG";
5
+ const content = "krc-content-72sFf";
6
+ const title = "krc-title-pe-1P";
7
+ const styles = {
8
+ root,
9
+ sidebar,
10
+ sidebarCollapsed,
11
+ main,
12
+ content,
13
+ title
14
+ };
15
+ export {
16
+ content,
17
+ styles as default,
18
+ main,
19
+ root,
20
+ sidebar,
21
+ sidebarCollapsed,
22
+ title
23
+ };
24
+ //# sourceMappingURL=index58.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index58.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;"}
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } });
3
+ const overlay = "krc-overlay-4gFc3";
4
+ const root = "krc-root-eKDda";
5
+ const header = "krc-header-YrzLd";
6
+ const title = "krc-title-9rzEH";
7
+ const closeBtn = "krc-closeBtn-vGJ7P";
8
+ const body = "krc-body-g43Cd";
9
+ const footer = "krc-footer-JRwi5";
10
+ const styles = {
11
+ overlay,
12
+ root,
13
+ header,
14
+ title,
15
+ closeBtn,
16
+ body,
17
+ footer
18
+ };
19
+ exports.body = body;
20
+ exports.closeBtn = closeBtn;
21
+ exports.default = styles;
22
+ exports.footer = footer;
23
+ exports.header = header;
24
+ exports.overlay = overlay;
25
+ exports.root = root;
26
+ exports.title = title;
27
+ //# sourceMappingURL=index59.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index59.cjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,27 @@
1
+ const overlay = "krc-overlay-4gFc3";
2
+ const root = "krc-root-eKDda";
3
+ const header = "krc-header-YrzLd";
4
+ const title = "krc-title-9rzEH";
5
+ const closeBtn = "krc-closeBtn-vGJ7P";
6
+ const body = "krc-body-g43Cd";
7
+ const footer = "krc-footer-JRwi5";
8
+ const styles = {
9
+ overlay,
10
+ root,
11
+ header,
12
+ title,
13
+ closeBtn,
14
+ body,
15
+ footer
16
+ };
17
+ export {
18
+ body,
19
+ closeBtn,
20
+ styles as default,
21
+ footer,
22
+ header,
23
+ overlay,
24
+ root,
25
+ title
26
+ };
27
+ //# sourceMappingURL=index59.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index59.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;"}