@eturnity/eturnity_reusable_components 8.13.2 → 8.13.3-EPDM-14657.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 (537) hide show
  1. package/package.json +1 -1
  2. package/src/DemoCharts.vue +424 -0
  3. package/src/TestChart.vue +241 -0
  4. package/src/assets/svgIcons/refresh.svg +3 -0
  5. package/src/assets/theme.js +16 -0
  6. package/src/components/barchart/BottomFields.vue +253 -0
  7. package/src/components/barchart/ChartControls.vue +113 -0
  8. package/src/components/barchart/SelectionBox.vue +150 -0
  9. package/src/components/barchart/composables/index.js +5 -0
  10. package/src/components/barchart/composables/useAxisCalculations.js +104 -0
  11. package/src/components/barchart/composables/useChartData.js +114 -0
  12. package/src/components/barchart/composables/useChartScroll.js +61 -0
  13. package/src/components/barchart/composables/useSelection.js +75 -0
  14. package/src/components/barchart/composables/useTooltip.js +100 -0
  15. package/src/components/barchart/index.vue +376 -0
  16. package/src/components/barchart/styles/bottomFields.js +66 -0
  17. package/src/components/barchart/styles/chart.js +259 -0
  18. package/src/components/barchart/styles/chartControls.js +59 -0
  19. package/src/components/buttons/splitButtons/index.vue +86 -0
  20. package/src/components/collapsableInfoText/index.vue +2 -2
  21. package/src/components/icon/index.vue +1 -4
  22. package/src/components/inputs/inputNumber/index.vue +14 -2
  23. package/src/helpers/isObjectEqual.js +22 -0
  24. package/src/main.js +8 -0
  25. package/src/router/dynamicRoutes.js +12 -0
  26. package/dist/main.es.js +0 -7
  27. package/dist/main.es10.js +0 -10
  28. package/dist/main.es100.js +0 -23
  29. package/dist/main.es101.js +0 -23
  30. package/dist/main.es102.js +0 -20
  31. package/dist/main.es103.js +0 -20
  32. package/dist/main.es104.js +0 -20
  33. package/dist/main.es105.js +0 -37
  34. package/dist/main.es106.js +0 -28
  35. package/dist/main.es107.js +0 -32
  36. package/dist/main.es108.js +0 -18
  37. package/dist/main.es109.js +0 -33
  38. package/dist/main.es11.js +0 -2484
  39. package/dist/main.es110.js +0 -41
  40. package/dist/main.es111.js +0 -36
  41. package/dist/main.es112.js +0 -35
  42. package/dist/main.es113.js +0 -20
  43. package/dist/main.es114.js +0 -23
  44. package/dist/main.es115.js +0 -30
  45. package/dist/main.es116.js +0 -23
  46. package/dist/main.es117.js +0 -32
  47. package/dist/main.es118.js +0 -23
  48. package/dist/main.es119.js +0 -29
  49. package/dist/main.es12.js +0 -133
  50. package/dist/main.es120.js +0 -25
  51. package/dist/main.es121.js +0 -23
  52. package/dist/main.es122.js +0 -28
  53. package/dist/main.es123.js +0 -28
  54. package/dist/main.es124.js +0 -39
  55. package/dist/main.es125.js +0 -37
  56. package/dist/main.es126.js +0 -23
  57. package/dist/main.es127.js +0 -25
  58. package/dist/main.es128.js +0 -23
  59. package/dist/main.es129.js +0 -23
  60. package/dist/main.es13.js +0 -261
  61. package/dist/main.es130.js +0 -23
  62. package/dist/main.es131.js +0 -28
  63. package/dist/main.es132.js +0 -29
  64. package/dist/main.es133.js +0 -29
  65. package/dist/main.es134.js +0 -21
  66. package/dist/main.es135.js +0 -20
  67. package/dist/main.es136.js +0 -28
  68. package/dist/main.es137.js +0 -24
  69. package/dist/main.es138.js +0 -28
  70. package/dist/main.es139.js +0 -23
  71. package/dist/main.es14.js +0 -26
  72. package/dist/main.es140.js +0 -33
  73. package/dist/main.es141.js +0 -30
  74. package/dist/main.es142.js +0 -23
  75. package/dist/main.es143.js +0 -20
  76. package/dist/main.es144.js +0 -19
  77. package/dist/main.es145.js +0 -23
  78. package/dist/main.es146.js +0 -29
  79. package/dist/main.es147.js +0 -28
  80. package/dist/main.es148.js +0 -35
  81. package/dist/main.es149.js +0 -25
  82. package/dist/main.es15.js +0 -1058
  83. package/dist/main.es150.js +0 -25
  84. package/dist/main.es151.js +0 -23
  85. package/dist/main.es152.js +0 -41
  86. package/dist/main.es153.js +0 -41
  87. package/dist/main.es154.js +0 -25
  88. package/dist/main.es155.js +0 -23
  89. package/dist/main.es156.js +0 -23
  90. package/dist/main.es157.js +0 -25
  91. package/dist/main.es158.js +0 -23
  92. package/dist/main.es159.js +0 -23
  93. package/dist/main.es16.js +0 -692
  94. package/dist/main.es160.js +0 -23
  95. package/dist/main.es161.js +0 -23
  96. package/dist/main.es162.js +0 -23
  97. package/dist/main.es163.js +0 -23
  98. package/dist/main.es164.js +0 -20
  99. package/dist/main.es165.js +0 -28
  100. package/dist/main.es166.js +0 -28
  101. package/dist/main.es167.js +0 -28
  102. package/dist/main.es168.js +0 -28
  103. package/dist/main.es169.js +0 -25
  104. package/dist/main.es17.js +0 -95
  105. package/dist/main.es170.js +0 -23
  106. package/dist/main.es171.js +0 -23
  107. package/dist/main.es172.js +0 -20
  108. package/dist/main.es173.js +0 -20
  109. package/dist/main.es174.js +0 -23
  110. package/dist/main.es175.js +0 -18
  111. package/dist/main.es176.js +0 -23
  112. package/dist/main.es177.js +0 -20
  113. package/dist/main.es178.js +0 -25
  114. package/dist/main.es179.js +0 -25
  115. package/dist/main.es18.js +0 -78
  116. package/dist/main.es180.js +0 -23
  117. package/dist/main.es181.js +0 -23
  118. package/dist/main.es182.js +0 -20
  119. package/dist/main.es183.js +0 -23
  120. package/dist/main.es184.js +0 -23
  121. package/dist/main.es185.js +0 -32
  122. package/dist/main.es186.js +0 -23
  123. package/dist/main.es187.js +0 -32
  124. package/dist/main.es188.js +0 -37
  125. package/dist/main.es189.js +0 -32
  126. package/dist/main.es19.js +0 -143
  127. package/dist/main.es190.js +0 -39
  128. package/dist/main.es191.js +0 -28
  129. package/dist/main.es192.js +0 -20
  130. package/dist/main.es193.js +0 -20
  131. package/dist/main.es194.js +0 -25
  132. package/dist/main.es195.js +0 -23
  133. package/dist/main.es196.js +0 -40
  134. package/dist/main.es197.js +0 -23
  135. package/dist/main.es198.js +0 -21
  136. package/dist/main.es199.js +0 -19
  137. package/dist/main.es2.js +0 -34
  138. package/dist/main.es20.js +0 -152
  139. package/dist/main.es200.js +0 -20
  140. package/dist/main.es201.js +0 -20
  141. package/dist/main.es202.js +0 -33
  142. package/dist/main.es203.js +0 -23
  143. package/dist/main.es204.js +0 -23
  144. package/dist/main.es205.js +0 -28
  145. package/dist/main.es206.js +0 -23
  146. package/dist/main.es207.js +0 -23
  147. package/dist/main.es208.js +0 -21
  148. package/dist/main.es209.js +0 -23
  149. package/dist/main.es21.js +0 -108
  150. package/dist/main.es210.js +0 -28
  151. package/dist/main.es211.js +0 -23
  152. package/dist/main.es212.js +0 -23
  153. package/dist/main.es213.js +0 -23
  154. package/dist/main.es214.js +0 -28
  155. package/dist/main.es215.js +0 -28
  156. package/dist/main.es216.js +0 -20
  157. package/dist/main.es217.js +0 -23
  158. package/dist/main.es218.js +0 -35
  159. package/dist/main.es219.js +0 -28
  160. package/dist/main.es22.js +0 -4
  161. package/dist/main.es220.js +0 -29
  162. package/dist/main.es221.js +0 -24
  163. package/dist/main.es222.js +0 -23
  164. package/dist/main.es223.js +0 -28
  165. package/dist/main.es224.js +0 -25
  166. package/dist/main.es225.js +0 -23
  167. package/dist/main.es226.js +0 -23
  168. package/dist/main.es227.js +0 -20
  169. package/dist/main.es228.js +0 -20
  170. package/dist/main.es229.js +0 -23
  171. package/dist/main.es23.js +0 -169
  172. package/dist/main.es230.js +0 -23
  173. package/dist/main.es231.js +0 -25
  174. package/dist/main.es232.js +0 -38
  175. package/dist/main.es233.js +0 -30
  176. package/dist/main.es234.js +0 -28
  177. package/dist/main.es235.js +0 -23
  178. package/dist/main.es236.js +0 -22
  179. package/dist/main.es237.js +0 -28
  180. package/dist/main.es238.js +0 -23
  181. package/dist/main.es239.js +0 -18
  182. package/dist/main.es24.js +0 -201
  183. package/dist/main.es240.js +0 -23
  184. package/dist/main.es241.js +0 -25
  185. package/dist/main.es242.js +0 -23
  186. package/dist/main.es243.js +0 -23
  187. package/dist/main.es244.js +0 -23
  188. package/dist/main.es245.js +0 -23
  189. package/dist/main.es246.js +0 -23
  190. package/dist/main.es247.js +0 -23
  191. package/dist/main.es248.js +0 -23
  192. package/dist/main.es249.js +0 -23
  193. package/dist/main.es25.js +0 -55
  194. package/dist/main.es250.js +0 -30
  195. package/dist/main.es251.js +0 -23
  196. package/dist/main.es252.js +0 -23
  197. package/dist/main.es253.js +0 -28
  198. package/dist/main.es254.js +0 -23
  199. package/dist/main.es255.js +0 -23
  200. package/dist/main.es256.js +0 -28
  201. package/dist/main.es257.js +0 -33
  202. package/dist/main.es258.js +0 -28
  203. package/dist/main.es259.js +0 -28
  204. package/dist/main.es26.js +0 -12
  205. package/dist/main.es260.js +0 -23
  206. package/dist/main.es261.js +0 -25
  207. package/dist/main.es262.js +0 -28
  208. package/dist/main.es263.js +0 -30
  209. package/dist/main.es264.js +0 -23
  210. package/dist/main.es265.js +0 -23
  211. package/dist/main.es266.js +0 -23
  212. package/dist/main.es267.js +0 -23
  213. package/dist/main.es268.js +0 -28
  214. package/dist/main.es269.js +0 -252
  215. package/dist/main.es27.js +0 -6
  216. package/dist/main.es270.js +0 -22
  217. package/dist/main.es271.js +0 -25
  218. package/dist/main.es272.js +0 -7
  219. package/dist/main.es273.js +0 -383
  220. package/dist/main.es274.js +0 -54
  221. package/dist/main.es275.js +0 -15
  222. package/dist/main.es276.js +0 -64
  223. package/dist/main.es277.js +0 -4
  224. package/dist/main.es278.js +0 -4
  225. package/dist/main.es279.js +0 -4
  226. package/dist/main.es28.js +0 -103
  227. package/dist/main.es280.js +0 -4
  228. package/dist/main.es281.js +0 -4
  229. package/dist/main.es282.js +0 -4
  230. package/dist/main.es283.js +0 -4
  231. package/dist/main.es284.js +0 -4
  232. package/dist/main.es285.js +0 -4
  233. package/dist/main.es286.js +0 -4
  234. package/dist/main.es287.js +0 -4
  235. package/dist/main.es288.js +0 -4
  236. package/dist/main.es289.js +0 -4
  237. package/dist/main.es29.js +0 -62
  238. package/dist/main.es290.js +0 -4
  239. package/dist/main.es291.js +0 -4
  240. package/dist/main.es292.js +0 -4
  241. package/dist/main.es293.js +0 -4
  242. package/dist/main.es294.js +0 -4
  243. package/dist/main.es295.js +0 -4
  244. package/dist/main.es296.js +0 -4
  245. package/dist/main.es297.js +0 -4
  246. package/dist/main.es298.js +0 -4
  247. package/dist/main.es299.js +0 -4
  248. package/dist/main.es3.js +0 -70
  249. package/dist/main.es30.js +0 -69
  250. package/dist/main.es300.js +0 -4
  251. package/dist/main.es301.js +0 -4
  252. package/dist/main.es302.js +0 -4
  253. package/dist/main.es303.js +0 -4
  254. package/dist/main.es304.js +0 -4
  255. package/dist/main.es305.js +0 -4
  256. package/dist/main.es306.js +0 -4
  257. package/dist/main.es307.js +0 -4
  258. package/dist/main.es308.js +0 -4
  259. package/dist/main.es309.js +0 -4
  260. package/dist/main.es31.js +0 -801
  261. package/dist/main.es310.js +0 -4
  262. package/dist/main.es311.js +0 -4
  263. package/dist/main.es312.js +0 -4
  264. package/dist/main.es313.js +0 -4
  265. package/dist/main.es314.js +0 -4
  266. package/dist/main.es315.js +0 -4
  267. package/dist/main.es316.js +0 -4
  268. package/dist/main.es317.js +0 -4
  269. package/dist/main.es318.js +0 -4
  270. package/dist/main.es319.js +0 -4
  271. package/dist/main.es32.js +0 -127
  272. package/dist/main.es320.js +0 -4
  273. package/dist/main.es321.js +0 -4
  274. package/dist/main.es322.js +0 -4
  275. package/dist/main.es323.js +0 -4
  276. package/dist/main.es324.js +0 -4
  277. package/dist/main.es325.js +0 -4
  278. package/dist/main.es326.js +0 -4
  279. package/dist/main.es327.js +0 -4
  280. package/dist/main.es328.js +0 -4
  281. package/dist/main.es329.js +0 -4
  282. package/dist/main.es33.js +0 -4
  283. package/dist/main.es330.js +0 -4
  284. package/dist/main.es331.js +0 -4
  285. package/dist/main.es332.js +0 -4
  286. package/dist/main.es333.js +0 -4
  287. package/dist/main.es334.js +0 -4
  288. package/dist/main.es335.js +0 -4
  289. package/dist/main.es336.js +0 -4
  290. package/dist/main.es337.js +0 -4
  291. package/dist/main.es338.js +0 -4
  292. package/dist/main.es339.js +0 -4
  293. package/dist/main.es34.js +0 -29
  294. package/dist/main.es340.js +0 -4
  295. package/dist/main.es341.js +0 -4
  296. package/dist/main.es342.js +0 -4
  297. package/dist/main.es343.js +0 -4
  298. package/dist/main.es344.js +0 -4
  299. package/dist/main.es345.js +0 -4
  300. package/dist/main.es346.js +0 -4
  301. package/dist/main.es347.js +0 -4
  302. package/dist/main.es348.js +0 -4
  303. package/dist/main.es349.js +0 -4
  304. package/dist/main.es35.js +0 -34
  305. package/dist/main.es350.js +0 -4
  306. package/dist/main.es351.js +0 -4
  307. package/dist/main.es352.js +0 -4
  308. package/dist/main.es353.js +0 -4
  309. package/dist/main.es354.js +0 -4
  310. package/dist/main.es355.js +0 -4
  311. package/dist/main.es356.js +0 -4
  312. package/dist/main.es357.js +0 -4
  313. package/dist/main.es358.js +0 -4
  314. package/dist/main.es359.js +0 -4
  315. package/dist/main.es36.js +0 -36
  316. package/dist/main.es360.js +0 -4
  317. package/dist/main.es361.js +0 -4
  318. package/dist/main.es362.js +0 -4
  319. package/dist/main.es363.js +0 -4
  320. package/dist/main.es364.js +0 -4
  321. package/dist/main.es365.js +0 -4
  322. package/dist/main.es366.js +0 -4
  323. package/dist/main.es367.js +0 -4
  324. package/dist/main.es368.js +0 -4
  325. package/dist/main.es369.js +0 -4
  326. package/dist/main.es37.js +0 -41
  327. package/dist/main.es370.js +0 -4
  328. package/dist/main.es371.js +0 -4
  329. package/dist/main.es372.js +0 -4
  330. package/dist/main.es373.js +0 -4
  331. package/dist/main.es374.js +0 -4
  332. package/dist/main.es375.js +0 -4
  333. package/dist/main.es376.js +0 -4
  334. package/dist/main.es377.js +0 -4
  335. package/dist/main.es378.js +0 -4
  336. package/dist/main.es379.js +0 -4
  337. package/dist/main.es38.js +0 -35
  338. package/dist/main.es380.js +0 -4
  339. package/dist/main.es381.js +0 -4
  340. package/dist/main.es382.js +0 -4
  341. package/dist/main.es383.js +0 -4
  342. package/dist/main.es384.js +0 -4
  343. package/dist/main.es385.js +0 -4
  344. package/dist/main.es386.js +0 -4
  345. package/dist/main.es387.js +0 -4
  346. package/dist/main.es388.js +0 -4
  347. package/dist/main.es389.js +0 -4
  348. package/dist/main.es39.js +0 -20
  349. package/dist/main.es390.js +0 -4
  350. package/dist/main.es391.js +0 -4
  351. package/dist/main.es392.js +0 -4
  352. package/dist/main.es393.js +0 -4
  353. package/dist/main.es394.js +0 -4
  354. package/dist/main.es395.js +0 -4
  355. package/dist/main.es396.js +0 -4
  356. package/dist/main.es397.js +0 -4
  357. package/dist/main.es398.js +0 -4
  358. package/dist/main.es399.js +0 -4
  359. package/dist/main.es4.js +0 -19
  360. package/dist/main.es40.js +0 -20
  361. package/dist/main.es400.js +0 -4
  362. package/dist/main.es401.js +0 -4
  363. package/dist/main.es402.js +0 -4
  364. package/dist/main.es403.js +0 -4
  365. package/dist/main.es404.js +0 -4
  366. package/dist/main.es405.js +0 -4
  367. package/dist/main.es406.js +0 -4
  368. package/dist/main.es407.js +0 -4
  369. package/dist/main.es408.js +0 -4
  370. package/dist/main.es409.js +0 -4
  371. package/dist/main.es41.js +0 -25
  372. package/dist/main.es410.js +0 -4
  373. package/dist/main.es411.js +0 -4
  374. package/dist/main.es412.js +0 -4
  375. package/dist/main.es413.js +0 -4
  376. package/dist/main.es414.js +0 -4
  377. package/dist/main.es415.js +0 -4
  378. package/dist/main.es416.js +0 -4
  379. package/dist/main.es417.js +0 -4
  380. package/dist/main.es418.js +0 -4
  381. package/dist/main.es419.js +0 -4
  382. package/dist/main.es42.js +0 -28
  383. package/dist/main.es420.js +0 -4
  384. package/dist/main.es421.js +0 -4
  385. package/dist/main.es422.js +0 -4
  386. package/dist/main.es423.js +0 -4
  387. package/dist/main.es424.js +0 -4
  388. package/dist/main.es425.js +0 -4
  389. package/dist/main.es426.js +0 -4
  390. package/dist/main.es427.js +0 -4
  391. package/dist/main.es428.js +0 -4
  392. package/dist/main.es429.js +0 -4
  393. package/dist/main.es43.js +0 -23
  394. package/dist/main.es430.js +0 -4
  395. package/dist/main.es431.js +0 -4
  396. package/dist/main.es432.js +0 -4
  397. package/dist/main.es433.js +0 -4
  398. package/dist/main.es434.js +0 -4
  399. package/dist/main.es435.js +0 -4
  400. package/dist/main.es436.js +0 -4
  401. package/dist/main.es437.js +0 -4
  402. package/dist/main.es438.js +0 -4
  403. package/dist/main.es439.js +0 -4
  404. package/dist/main.es44.js +0 -44
  405. package/dist/main.es440.js +0 -4
  406. package/dist/main.es441.js +0 -4
  407. package/dist/main.es442.js +0 -4
  408. package/dist/main.es443.js +0 -4
  409. package/dist/main.es444.js +0 -4
  410. package/dist/main.es445.js +0 -4
  411. package/dist/main.es446.js +0 -4
  412. package/dist/main.es447.js +0 -4
  413. package/dist/main.es448.js +0 -4
  414. package/dist/main.es449.js +0 -4
  415. package/dist/main.es45.js +0 -38
  416. package/dist/main.es450.js +0 -4
  417. package/dist/main.es451.js +0 -4
  418. package/dist/main.es452.js +0 -4
  419. package/dist/main.es453.js +0 -4
  420. package/dist/main.es454.js +0 -4
  421. package/dist/main.es455.js +0 -4
  422. package/dist/main.es456.js +0 -4
  423. package/dist/main.es457.js +0 -4
  424. package/dist/main.es458.js +0 -4
  425. package/dist/main.es459.js +0 -4
  426. package/dist/main.es46.js +0 -23
  427. package/dist/main.es460.js +0 -4
  428. package/dist/main.es461.js +0 -4
  429. package/dist/main.es462.js +0 -4
  430. package/dist/main.es463.js +0 -4
  431. package/dist/main.es464.js +0 -4
  432. package/dist/main.es465.js +0 -4
  433. package/dist/main.es466.js +0 -4
  434. package/dist/main.es467.js +0 -4
  435. package/dist/main.es468.js +0 -4
  436. package/dist/main.es469.js +0 -4
  437. package/dist/main.es47.js +0 -23
  438. package/dist/main.es470.js +0 -4
  439. package/dist/main.es471.js +0 -4
  440. package/dist/main.es472.js +0 -4
  441. package/dist/main.es473.js +0 -4
  442. package/dist/main.es474.js +0 -4
  443. package/dist/main.es475.js +0 -4
  444. package/dist/main.es476.js +0 -4
  445. package/dist/main.es477.js +0 -4
  446. package/dist/main.es478.js +0 -4
  447. package/dist/main.es479.js +0 -4
  448. package/dist/main.es48.js +0 -24
  449. package/dist/main.es480.js +0 -4
  450. package/dist/main.es481.js +0 -4
  451. package/dist/main.es482.js +0 -4
  452. package/dist/main.es483.js +0 -4
  453. package/dist/main.es484.js +0 -4
  454. package/dist/main.es485.js +0 -4
  455. package/dist/main.es486.js +0 -4
  456. package/dist/main.es487.js +0 -4
  457. package/dist/main.es488.js +0 -4
  458. package/dist/main.es489.js +0 -4
  459. package/dist/main.es49.js +0 -35
  460. package/dist/main.es490.js +0 -4
  461. package/dist/main.es491.js +0 -4
  462. package/dist/main.es492.js +0 -4
  463. package/dist/main.es493.js +0 -4
  464. package/dist/main.es494.js +0 -4
  465. package/dist/main.es495.js +0 -4
  466. package/dist/main.es496.js +0 -4
  467. package/dist/main.es497.js +0 -4
  468. package/dist/main.es498.js +0 -4
  469. package/dist/main.es499.js +0 -4
  470. package/dist/main.es5.js +0 -586
  471. package/dist/main.es50.js +0 -30
  472. package/dist/main.es500.js +0 -4
  473. package/dist/main.es501.js +0 -4
  474. package/dist/main.es502.js +0 -4
  475. package/dist/main.es503.js +0 -4
  476. package/dist/main.es504.js +0 -4
  477. package/dist/main.es505.js +0 -4
  478. package/dist/main.es506.js +0 -4
  479. package/dist/main.es507.js +0 -4
  480. package/dist/main.es508.js +0 -4
  481. package/dist/main.es509.js +0 -4
  482. package/dist/main.es51.js +0 -34
  483. package/dist/main.es510.js +0 -4
  484. package/dist/main.es511.js +0 -88
  485. package/dist/main.es52.js +0 -20
  486. package/dist/main.es53.js +0 -20
  487. package/dist/main.es54.js +0 -23
  488. package/dist/main.es55.js +0 -28
  489. package/dist/main.es56.js +0 -28
  490. package/dist/main.es57.js +0 -23
  491. package/dist/main.es58.js +0 -25
  492. package/dist/main.es59.js +0 -24
  493. package/dist/main.es6.js +0 -5872
  494. package/dist/main.es60.js +0 -23
  495. package/dist/main.es61.js +0 -23
  496. package/dist/main.es62.js +0 -23
  497. package/dist/main.es63.js +0 -23
  498. package/dist/main.es64.js +0 -23
  499. package/dist/main.es65.js +0 -20
  500. package/dist/main.es66.js +0 -23
  501. package/dist/main.es67.js +0 -23
  502. package/dist/main.es68.js +0 -21
  503. package/dist/main.es69.js +0 -20
  504. package/dist/main.es7.js +0 -1904
  505. package/dist/main.es70.js +0 -23
  506. package/dist/main.es71.js +0 -28
  507. package/dist/main.es72.js +0 -28
  508. package/dist/main.es73.js +0 -23
  509. package/dist/main.es74.js +0 -23
  510. package/dist/main.es75.js +0 -23
  511. package/dist/main.es76.js +0 -23
  512. package/dist/main.es77.js +0 -31
  513. package/dist/main.es78.js +0 -23
  514. package/dist/main.es79.js +0 -33
  515. package/dist/main.es8.js +0 -42
  516. package/dist/main.es80.js +0 -30
  517. package/dist/main.es81.js +0 -23
  518. package/dist/main.es82.js +0 -22
  519. package/dist/main.es83.js +0 -25
  520. package/dist/main.es84.js +0 -28
  521. package/dist/main.es85.js +0 -35
  522. package/dist/main.es86.js +0 -23
  523. package/dist/main.es87.js +0 -23
  524. package/dist/main.es88.js +0 -33
  525. package/dist/main.es89.js +0 -20
  526. package/dist/main.es9.js +0 -4
  527. package/dist/main.es90.js +0 -28
  528. package/dist/main.es91.js +0 -28
  529. package/dist/main.es92.js +0 -23
  530. package/dist/main.es93.js +0 -23
  531. package/dist/main.es94.js +0 -24
  532. package/dist/main.es95.js +0 -28
  533. package/dist/main.es96.js +0 -28
  534. package/dist/main.es97.js +0 -23
  535. package/dist/main.es98.js +0 -23
  536. package/dist/main.es99.js +0 -28
  537. package/dist/style.css +0 -1
@@ -0,0 +1,253 @@
1
+ <template>
2
+ <Container :is-chart-controls-shown-in-bottom="isChartControlsShownInBottom">
3
+ <LabelsColumn :width="yAxisWidth">
4
+ <LabelRow v-for="series in props.series" :key="series.name">
5
+ {{ series.name }}
6
+ </LabelRow>
7
+ <TotalRow v-if="props.series.length && fieldMode === 'percentage'">
8
+ {{ $gettext ? $gettext('Total (%)') : 'Total (%)' }}
9
+ </TotalRow>
10
+ <TotalRow v-if="props.series.length">
11
+ {{ $gettext ? $gettext('Total (kWh)') : 'Total (kWh)' }}
12
+ </TotalRow>
13
+ </LabelsColumn>
14
+
15
+ <FieldsContainer
16
+ :class="`fields-container-${chartId}`"
17
+ @scroll="handleFieldsScroll"
18
+ >
19
+ <FieldsWrapper>
20
+ <!-- For stacked bar chart -->
21
+ <template v-if="props.series.length">
22
+ <InputRow
23
+ v-for="series in props.series"
24
+ :key="series.name"
25
+ :data-series-name="series.name"
26
+ >
27
+ <InputGroup
28
+ v-for="(item, index) in props.data"
29
+ :bar-width="barWidth"
30
+ :is-scrollable="isScrollable"
31
+ :key="index"
32
+ >
33
+ <InputNumber
34
+ :allow-negative="false"
35
+ input-height="36px"
36
+ :number-precision="0"
37
+ :min-decimals="0"
38
+ text-align="center"
39
+ :unit-name="fieldMode === 'percentage' ? '%' : ''"
40
+ :value="getDisplayValue(series.data, item.label)"
41
+ @input-blur="handleInputBlur($event, series.name, item.label)"
42
+ @input-focus="handleInputFocus(series.name, item.label)"
43
+ />
44
+ </InputGroup>
45
+ </InputRow>
46
+
47
+ <TotalInputRow v-if="fieldMode === 'percentage'">
48
+ <InputGroup
49
+ v-for="(item, index) in props.data"
50
+ :bar-width="barWidth"
51
+ :is-scrollable="isScrollable"
52
+ :key="index"
53
+ >
54
+ <InputNumber
55
+ :allow-negative="false"
56
+ input-height="36px"
57
+ :is-read-only="true"
58
+ :number-precision="0"
59
+ :min-decimals="0"
60
+ text-align="center"
61
+ :unit-name="fieldMode === 'percentage' ? '%' : ''"
62
+ :value="calculatePercentageTotal(item.label)"
63
+ />
64
+ </InputGroup>
65
+ </TotalInputRow>
66
+
67
+ <TotalInputRow>
68
+ <InputGroup
69
+ v-for="(item, index) in props.data"
70
+ :bar-width="barWidth"
71
+ :is-scrollable="isScrollable"
72
+ :key="index"
73
+ >
74
+ <InputNumber
75
+ input-height="36px"
76
+ :is-read-only="true"
77
+ :number-precision="2"
78
+ :min-decimals="0"
79
+ text-align="center"
80
+ :value="calculateTotal(item.label)"
81
+ />
82
+ </InputGroup>
83
+ </TotalInputRow>
84
+ </template>
85
+
86
+ <!-- For simple bar chart -->
87
+ <template v-else>
88
+ <InputRow>
89
+ <InputGroup
90
+ v-for="(item, index) in props.data"
91
+ :bar-width="barWidth"
92
+ :is-scrollable="isScrollable"
93
+ :key="index"
94
+ >
95
+ <InputNumber
96
+ input-height="36px"
97
+ :min-decimals="0"
98
+ :number-precision="2"
99
+ text-align="center"
100
+ :value="item.value"
101
+ @input-blur="handleInputBlur($event, null, item.label)"
102
+ @input-focus="handleInputFocus(null, item.label)"
103
+ />
104
+ </InputGroup>
105
+ </InputRow>
106
+ </template>
107
+ </FieldsWrapper>
108
+ </FieldsContainer>
109
+ </Container>
110
+ </template>
111
+
112
+ <script setup>
113
+ import { ref } from 'vue'
114
+ import InputNumber from '../inputs/inputNumber'
115
+
116
+ import {
117
+ Container,
118
+ LabelsColumn,
119
+ LabelRow,
120
+ TotalRow,
121
+ FieldsContainer,
122
+ FieldsWrapper,
123
+ InputRow,
124
+ TotalInputRow,
125
+ InputGroup,
126
+ } from './styles/bottomFields'
127
+
128
+ const props = defineProps({
129
+ chartId: {
130
+ type: String,
131
+ required: true,
132
+ },
133
+ data: {
134
+ type: Array,
135
+ required: true,
136
+ },
137
+ series: {
138
+ type: Array,
139
+ required: true,
140
+ },
141
+ barWidth: {
142
+ type: Number,
143
+ required: true,
144
+ },
145
+ yAxisWidth: {
146
+ type: String,
147
+ required: true,
148
+ },
149
+ isScrollable: {
150
+ type: Boolean,
151
+ default: false,
152
+ },
153
+ isChartControlsShownInBottom: {
154
+ type: Boolean,
155
+ default: false,
156
+ },
157
+ fieldMode: {
158
+ type: String,
159
+ default: 'absolute',
160
+ validator: (value) => ['absolute', 'percentage'].includes(value),
161
+ },
162
+ })
163
+
164
+ const emit = defineEmits([
165
+ 'sync-scroll',
166
+ 'input-blur',
167
+ 'input-focus',
168
+ 'input-blur-all',
169
+ ])
170
+
171
+ const focusedInput = ref(null)
172
+
173
+ const handleInputFocus = (seriesName, label) => {
174
+ focusedInput.value = { seriesName, label }
175
+ emit('input-focus', { seriesName, label })
176
+ }
177
+
178
+ const calculateTotal = (label) => {
179
+ return props.series.reduce((sum, series) => {
180
+ const value = series.data.find((d) => d.label === label)?.value || 0
181
+ return sum + value
182
+ }, 0)
183
+ }
184
+
185
+ const syncScroll = (scrollLeft) => {
186
+ const container = document.querySelector(
187
+ `.fields-container-${props.chartId}`
188
+ )
189
+ if (container) {
190
+ container.scrollLeft = scrollLeft
191
+ }
192
+ }
193
+ const getDisplayValue = (seriesData, label) => {
194
+ if (props.fieldMode === 'absolute') {
195
+ return seriesData.find((d) => d.label === label)?.value || ''
196
+ }
197
+
198
+ const value = seriesData.find((d) => d.label === label)?.value || 0
199
+ const total = calculateTotal(label)
200
+ return total ? Number(((value / total) * 100).toFixed(0)) : 0
201
+ }
202
+
203
+ const calculatePercentageTotal = (label) => {
204
+ return props.series.reduce((sum, series) => {
205
+ const value = series.data.find((d) => d.label === label)?.value || 0
206
+ const total = calculateTotal(label)
207
+ const percentage = total ? Number(((value / total) * 100).toFixed(0)) : 0
208
+ return sum + percentage
209
+ }, 0)
210
+ }
211
+
212
+ const handleInputBlur = (_value, seriesName, label) => {
213
+ let value = Number(_value)
214
+
215
+ if (props.fieldMode === 'percentage') {
216
+ const total = calculateTotal(label)
217
+ value = (value / 100) * total
218
+ }
219
+
220
+ const payload = seriesName ? { seriesName, label, value } : { label, value }
221
+ emit('input-blur', payload)
222
+ focusedInput.value = null
223
+
224
+ // Check if the related target (element receiving focus) is another input in our chart
225
+ const relatedTarget = document.activeElement
226
+ const currentChartContainer = document.querySelector(
227
+ `.fields-container-${props.chartId}`
228
+ )
229
+ const isMovingToAnotherInput =
230
+ currentChartContainer?.contains(relatedTarget) &&
231
+ relatedTarget?.classList.contains('input-number')
232
+
233
+ if (!isMovingToAnotherInput) {
234
+ emit('input-blur-all')
235
+ } else {
236
+ // If moving to another input, trigger focus event manually
237
+ const seriesName =
238
+ relatedTarget.closest('[data-series-name]')?.dataset.seriesName
239
+ const label = relatedTarget.closest('[data-label]')?.dataset.label
240
+ if (seriesName && label) {
241
+ handleInputFocus(seriesName, label)
242
+ }
243
+ }
244
+ }
245
+
246
+ const handleFieldsScroll = (event) => {
247
+ emit('sync-scroll', event.target.scrollLeft)
248
+ }
249
+
250
+ defineExpose({
251
+ syncScroll,
252
+ })
253
+ </script>
@@ -0,0 +1,113 @@
1
+ <template>
2
+ <Container>
3
+ <LegendAndControlsWrapper :leftMargin="yAxisWidth">
4
+ <LeftSection>
5
+ <SplitButtonsContainer
6
+ v-if="splitButtonOptions.length"
7
+ :position="position"
8
+ >
9
+ <SplitButtons
10
+ :modelValue="selectedSplitButton"
11
+ :options="splitButtonOptions"
12
+ @click="handleSplitButtonClick"
13
+ />
14
+ </SplitButtonsContainer>
15
+ </LeftSection>
16
+
17
+ <LegendGroups v-if="isLegendShown">
18
+ <LegendRow
19
+ v-for="(row, rowIndex) in groupedSeries"
20
+ :key="rowIndex"
21
+ :rowIndex="rowIndex"
22
+ >
23
+ <LegendItem v-for="(series, index) in row" :key="series.name">
24
+ <LegendColor
25
+ :gradientFrom="
26
+ reversedColors[rowIndex * legendsItemPerRow + index].from
27
+ "
28
+ :gradientTo="
29
+ reversedColors[rowIndex * legendsItemPerRow + index].to
30
+ "
31
+ />
32
+ <LegendText>{{ series.name }}</LegendText>
33
+ </LegendItem>
34
+ </LegendRow>
35
+ </LegendGroups>
36
+ </LegendAndControlsWrapper>
37
+ </Container>
38
+ </template>
39
+
40
+ <script setup>
41
+ import { computed } from 'vue'
42
+
43
+ import SplitButtons from '../buttons/splitButtons'
44
+
45
+ import {
46
+ Container,
47
+ LegendAndControlsWrapper,
48
+ LeftSection,
49
+ SplitButtonsContainer,
50
+ LegendGroups,
51
+ LegendRow,
52
+ LegendItem,
53
+ LegendColor,
54
+ LegendText,
55
+ } from './styles/chartControls'
56
+
57
+ const props = defineProps({
58
+ position: {
59
+ type: String,
60
+ required: true,
61
+ },
62
+ yAxisWidth: {
63
+ type: String,
64
+ required: true,
65
+ },
66
+ series: {
67
+ type: Array,
68
+ default: () => [],
69
+ },
70
+ stackedColors: {
71
+ type: Function,
72
+ required: true,
73
+ },
74
+ splitButtonOptions: {
75
+ type: Array,
76
+ default: () => [],
77
+ },
78
+ selectedSplitButton: {
79
+ type: String,
80
+ default: '',
81
+ },
82
+ isLegendShown: {
83
+ type: Boolean,
84
+ default: false,
85
+ },
86
+ legendsItemPerRow: {
87
+ type: Number,
88
+ required: true,
89
+ },
90
+ })
91
+
92
+ const emit = defineEmits(['select-split-button'])
93
+
94
+ const reversedColors = computed(() =>
95
+ [...props.stackedColors(props.series.length)].reverse()
96
+ )
97
+
98
+ const groupedSeries = computed(() => {
99
+ const { series, legendsItemPerRow } = props
100
+
101
+ return series.reduce((groups, item, index) => {
102
+ const groupIndex = Math.floor(index / legendsItemPerRow)
103
+ groups[groupIndex] = groups[groupIndex] || []
104
+ groups[groupIndex].push(item)
105
+
106
+ return groups
107
+ }, [])
108
+ })
109
+
110
+ const handleSplitButtonClick = (value) => {
111
+ emit('select-split-button', value)
112
+ }
113
+ </script>
@@ -0,0 +1,150 @@
1
+ <template>
2
+ <SelectionBoxWrapper
3
+ :transform="`translateX(${position}px)`"
4
+ :width="boxWidth + 'px'"
5
+ @mousedown="startDrag"
6
+ />
7
+ </template>
8
+
9
+ <script setup>
10
+ import { ref, computed, onMounted } from 'vue'
11
+ import styled from 'vue3-styled-components'
12
+
13
+ const SelectionBoxWrapper = styled('div', {
14
+ width: String,
15
+ transform: String,
16
+ })`
17
+ position: absolute;
18
+ height: 100%;
19
+ background: rgba(151, 71, 255, 0.1);
20
+ cursor: grab;
21
+ z-index: 0;
22
+ pointer-events: auto;
23
+ width: ${(props) => props.width};
24
+ transform: ${(props) => props.transform};
25
+ &:active {
26
+ cursor: grabbing;
27
+ }
28
+ `
29
+
30
+ const props = defineProps({
31
+ barsToShow: {
32
+ type: Number,
33
+ required: true,
34
+ },
35
+ barWidth: {
36
+ type: Number,
37
+ required: true,
38
+ },
39
+ totalBars: {
40
+ type: Number,
41
+ required: true,
42
+ },
43
+ gap: {
44
+ type: Number,
45
+ default: 8,
46
+ },
47
+ containerWidth: {
48
+ type: Number,
49
+ required: true,
50
+ },
51
+ isScrollable: {
52
+ type: Boolean,
53
+ required: true,
54
+ },
55
+ })
56
+
57
+ // Padding applied to the selection box
58
+ const PADDING = 6
59
+
60
+ const emit = defineEmits(['update-selection', 'drag-end'])
61
+
62
+ // Statess
63
+ const position = ref(0)
64
+ const isDragging = ref(false)
65
+ const currentSelection = ref({ startIndex: 0, endIndex: props.barsToShow })
66
+
67
+ // Variables for tracking drag state
68
+ let startX = 0
69
+ let startPos = 0
70
+
71
+ const actualBarWidth = computed(() => {
72
+ if (props.isScrollable) {
73
+ return props.barWidth
74
+ }
75
+
76
+ return props.containerWidth / props.totalBars
77
+ })
78
+
79
+ const boxWidth = computed(() => {
80
+ if (props.isScrollable) {
81
+ return (
82
+ (props.barWidth + props.gap) * props.barsToShow -
83
+ props.gap +
84
+ PADDING * 2
85
+ )
86
+ }
87
+
88
+ return actualBarWidth.value * props.barsToShow
89
+ })
90
+
91
+ const calculateSelection = () => {
92
+ if (props.isScrollable) {
93
+ const startIndex = Math.floor(
94
+ (position.value + PADDING) / (props.barWidth + props.gap)
95
+ )
96
+ const endIndex = Math.min(startIndex + props.barsToShow, props.totalBars)
97
+ return { startIndex, endIndex }
98
+ }
99
+
100
+ const boxStart = position.value
101
+ const boxEnd = position.value + boxWidth.value
102
+ const sectionWidth = props.containerWidth / props.totalBars
103
+
104
+ const startIndex = Math.round(boxStart / sectionWidth)
105
+ const endIndex = Math.min(
106
+ Math.round(boxEnd / sectionWidth),
107
+ props.totalBars
108
+ )
109
+ return { startIndex, endIndex }
110
+ }
111
+
112
+ const startDrag = (e) => {
113
+ isDragging.value = true
114
+ startX = e.clientX
115
+ startPos = position.value
116
+
117
+ document.addEventListener('mousemove', handleDrag)
118
+ document.addEventListener('mouseup', stopDrag)
119
+ }
120
+
121
+ const handleDrag = (e) => {
122
+ if (!isDragging.value) return
123
+
124
+ const delta = e.clientX - startX
125
+ const newPosition = startPos + delta
126
+
127
+ // Constrain position within valid bounds
128
+ const maxPosition = props.containerWidth - boxWidth.value + PADDING * 2
129
+ position.value = Math.max(-PADDING, Math.min(newPosition, maxPosition))
130
+
131
+ // Update current selection and emit event
132
+ currentSelection.value = calculateSelection()
133
+ emit('update-selection', currentSelection.value)
134
+ }
135
+
136
+ const stopDrag = () => {
137
+ isDragging.value = false
138
+ document.removeEventListener('mousemove', handleDrag)
139
+ document.removeEventListener('mouseup', stopDrag)
140
+
141
+ emit('update-selection', currentSelection.value)
142
+ emit('drag-end')
143
+ }
144
+
145
+ onMounted(() => {
146
+ // Ensure we start with valid selection indices
147
+ currentSelection.value = { startIndex: 0, endIndex: props.barsToShow }
148
+ emit('update-selection', currentSelection.value)
149
+ })
150
+ </script>
@@ -0,0 +1,5 @@
1
+ export { useTooltip } from './useTooltip'
2
+ export { useChartData } from './useChartData'
3
+ export { useAxisCalculations } from './useAxisCalculations'
4
+ export { useSelection } from './useSelection'
5
+ export { useChartScroll } from './useChartScroll'
@@ -0,0 +1,104 @@
1
+ import { computed } from 'vue'
2
+
3
+ export function useAxisCalculations(props, maxValue) {
4
+ const findNiceNumber = (value) => {
5
+ // Handle 0 or negative values
6
+ if (value <= 0) return 0
7
+
8
+ if (value < 1) {
9
+ return Math.ceil(value * 10) / 10
10
+ }
11
+
12
+ const exponent = Math.floor(Math.log10(value))
13
+ const factor = Math.pow(10, exponent)
14
+ const normalized = value / factor
15
+
16
+ const niceNumbers = [
17
+ 1.0, 1.2, 1.5, 1.6, 2.0, 2.5, 3.0, 4.0, 5.0, 6.0, 8.0, 10.0,
18
+ ]
19
+ const niceNormalized = niceNumbers.find((n) => n >= normalized) || 10.0
20
+
21
+ return niceNormalized * factor
22
+ }
23
+
24
+ // Calculate max value with padding, rounded to nice numbers
25
+ const paddedMaxValue = computed(() => {
26
+ const rawMax = maxValue.value
27
+ const withPadding = rawMax * 1.1
28
+ const niceNumber = findNiceNumber(withPadding)
29
+
30
+ return niceNumber
31
+ })
32
+
33
+ const calculateStepSize = (max) => {
34
+ const preferredDivisions = [5, 6, 7, 8, 9, 10]
35
+
36
+ for (const divisions of preferredDivisions) {
37
+ const roughStep = max / divisions
38
+ const niceStep = findNiceNumber(roughStep)
39
+
40
+ const numCompleteSteps = Math.floor(max / niceStep)
41
+ const actualMax = niceStep * numCompleteSteps
42
+
43
+ // Only use this step size if it gets us close to our target max
44
+ // and gives us the right number of ticks
45
+ if (
46
+ actualMax >= max * 0.95 && // Within 5% of target max
47
+ numCompleteSteps + 1 >= 5 &&
48
+ numCompleteSteps + 1 <= 10
49
+ ) {
50
+ return niceStep
51
+ }
52
+ }
53
+
54
+ // If no perfect match found, use max/6
55
+ return findNiceNumber(max / 6)
56
+ }
57
+
58
+ const yAxisLabels = computed(() => {
59
+ const max = paddedMaxValue.value
60
+
61
+ if (max === 0) {
62
+ return [0]
63
+ }
64
+
65
+ const stepSize = calculateStepSize(max)
66
+ const labels = []
67
+
68
+ // Generate labels including 0 up to numSteps
69
+ const numSteps = Math.floor(max / stepSize)
70
+ for (let i = 0; i <= numSteps; i++) {
71
+ labels.push(i * stepSize)
72
+ }
73
+
74
+ // Ensure we always have at least 2 labels (0 and max)
75
+ if (labels.length < 2) {
76
+ labels.push(max)
77
+ }
78
+
79
+ return labels
80
+ })
81
+
82
+ const yAxisHeight = computed(() => {
83
+ return '100%'
84
+ })
85
+
86
+ const yAxisWidth = computed(() => {
87
+ return !!props.yAxisTitle || props.isBottomFieldsShown ? '70px' : '60px'
88
+ })
89
+
90
+ const isChartControlsShown = (position) => {
91
+ return (
92
+ props.chartControlsPosition === position &&
93
+ (props.isLegendShown || props.splitButtonOptions.length)
94
+ )
95
+ }
96
+
97
+ return {
98
+ yAxisLabels,
99
+ yAxisHeight,
100
+ yAxisWidth,
101
+ isChartControlsShown,
102
+ paddedMaxValue,
103
+ }
104
+ }