@eturnity/eturnity_reusable_components 8.7.5-EPDM-12729.2 → 8.7.5-EPDM-6306.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 (538) hide show
  1. package/package.json +2 -3
  2. package/src/Test.vue +76 -12
  3. package/src/assets/svgIcons/clickable_info.svg +2 -2
  4. package/src/assets/svgIcons/module.svg +2 -2
  5. package/src/assets/svgIcons/optimizer.svg +5 -2
  6. package/src/components/buttons/buttonIcon/index.vue +6 -31
  7. package/src/components/infoText/index.vue +38 -163
  8. package/src/components/inputs/checkbox/index.vue +2 -11
  9. package/src/components/inputs/inputNumber/index.vue +64 -78
  10. package/src/components/modals/modal/index.vue +12 -13
  11. package/src/components/stringDesign/DropdownMenu/index.vue +1009 -0
  12. package/src/components/tabsHeader/index.vue +59 -71
  13. package/src/helpers/numberConverter.js +1 -1
  14. package/dist/main.es.js +0 -7
  15. package/dist/main.es10.js +0 -10
  16. package/dist/main.es100.js +0 -23
  17. package/dist/main.es101.js +0 -23
  18. package/dist/main.es102.js +0 -20
  19. package/dist/main.es103.js +0 -20
  20. package/dist/main.es104.js +0 -20
  21. package/dist/main.es105.js +0 -37
  22. package/dist/main.es106.js +0 -28
  23. package/dist/main.es107.js +0 -32
  24. package/dist/main.es108.js +0 -18
  25. package/dist/main.es109.js +0 -33
  26. package/dist/main.es11.js +0 -2484
  27. package/dist/main.es110.js +0 -41
  28. package/dist/main.es111.js +0 -36
  29. package/dist/main.es112.js +0 -35
  30. package/dist/main.es113.js +0 -20
  31. package/dist/main.es114.js +0 -23
  32. package/dist/main.es115.js +0 -30
  33. package/dist/main.es116.js +0 -23
  34. package/dist/main.es117.js +0 -32
  35. package/dist/main.es118.js +0 -23
  36. package/dist/main.es119.js +0 -29
  37. package/dist/main.es12.js +0 -133
  38. package/dist/main.es120.js +0 -25
  39. package/dist/main.es121.js +0 -23
  40. package/dist/main.es122.js +0 -28
  41. package/dist/main.es123.js +0 -28
  42. package/dist/main.es124.js +0 -39
  43. package/dist/main.es125.js +0 -37
  44. package/dist/main.es126.js +0 -23
  45. package/dist/main.es127.js +0 -25
  46. package/dist/main.es128.js +0 -23
  47. package/dist/main.es129.js +0 -23
  48. package/dist/main.es13.js +0 -261
  49. package/dist/main.es130.js +0 -23
  50. package/dist/main.es131.js +0 -28
  51. package/dist/main.es132.js +0 -29
  52. package/dist/main.es133.js +0 -29
  53. package/dist/main.es134.js +0 -21
  54. package/dist/main.es135.js +0 -20
  55. package/dist/main.es136.js +0 -28
  56. package/dist/main.es137.js +0 -24
  57. package/dist/main.es138.js +0 -28
  58. package/dist/main.es139.js +0 -23
  59. package/dist/main.es14.js +0 -26
  60. package/dist/main.es140.js +0 -33
  61. package/dist/main.es141.js +0 -30
  62. package/dist/main.es142.js +0 -23
  63. package/dist/main.es143.js +0 -20
  64. package/dist/main.es144.js +0 -19
  65. package/dist/main.es145.js +0 -23
  66. package/dist/main.es146.js +0 -29
  67. package/dist/main.es147.js +0 -28
  68. package/dist/main.es148.js +0 -35
  69. package/dist/main.es149.js +0 -25
  70. package/dist/main.es15.js +0 -1058
  71. package/dist/main.es150.js +0 -25
  72. package/dist/main.es151.js +0 -23
  73. package/dist/main.es152.js +0 -41
  74. package/dist/main.es153.js +0 -41
  75. package/dist/main.es154.js +0 -25
  76. package/dist/main.es155.js +0 -23
  77. package/dist/main.es156.js +0 -23
  78. package/dist/main.es157.js +0 -25
  79. package/dist/main.es158.js +0 -23
  80. package/dist/main.es159.js +0 -23
  81. package/dist/main.es16.js +0 -692
  82. package/dist/main.es160.js +0 -23
  83. package/dist/main.es161.js +0 -23
  84. package/dist/main.es162.js +0 -23
  85. package/dist/main.es163.js +0 -23
  86. package/dist/main.es164.js +0 -20
  87. package/dist/main.es165.js +0 -28
  88. package/dist/main.es166.js +0 -28
  89. package/dist/main.es167.js +0 -28
  90. package/dist/main.es168.js +0 -28
  91. package/dist/main.es169.js +0 -25
  92. package/dist/main.es17.js +0 -95
  93. package/dist/main.es170.js +0 -23
  94. package/dist/main.es171.js +0 -23
  95. package/dist/main.es172.js +0 -20
  96. package/dist/main.es173.js +0 -20
  97. package/dist/main.es174.js +0 -23
  98. package/dist/main.es175.js +0 -18
  99. package/dist/main.es176.js +0 -23
  100. package/dist/main.es177.js +0 -20
  101. package/dist/main.es178.js +0 -25
  102. package/dist/main.es179.js +0 -25
  103. package/dist/main.es18.js +0 -78
  104. package/dist/main.es180.js +0 -23
  105. package/dist/main.es181.js +0 -23
  106. package/dist/main.es182.js +0 -20
  107. package/dist/main.es183.js +0 -23
  108. package/dist/main.es184.js +0 -23
  109. package/dist/main.es185.js +0 -32
  110. package/dist/main.es186.js +0 -23
  111. package/dist/main.es187.js +0 -32
  112. package/dist/main.es188.js +0 -37
  113. package/dist/main.es189.js +0 -32
  114. package/dist/main.es19.js +0 -143
  115. package/dist/main.es190.js +0 -39
  116. package/dist/main.es191.js +0 -28
  117. package/dist/main.es192.js +0 -20
  118. package/dist/main.es193.js +0 -20
  119. package/dist/main.es194.js +0 -25
  120. package/dist/main.es195.js +0 -23
  121. package/dist/main.es196.js +0 -40
  122. package/dist/main.es197.js +0 -23
  123. package/dist/main.es198.js +0 -21
  124. package/dist/main.es199.js +0 -19
  125. package/dist/main.es2.js +0 -34
  126. package/dist/main.es20.js +0 -152
  127. package/dist/main.es200.js +0 -20
  128. package/dist/main.es201.js +0 -20
  129. package/dist/main.es202.js +0 -33
  130. package/dist/main.es203.js +0 -23
  131. package/dist/main.es204.js +0 -23
  132. package/dist/main.es205.js +0 -28
  133. package/dist/main.es206.js +0 -23
  134. package/dist/main.es207.js +0 -23
  135. package/dist/main.es208.js +0 -21
  136. package/dist/main.es209.js +0 -23
  137. package/dist/main.es21.js +0 -108
  138. package/dist/main.es210.js +0 -28
  139. package/dist/main.es211.js +0 -23
  140. package/dist/main.es212.js +0 -23
  141. package/dist/main.es213.js +0 -23
  142. package/dist/main.es214.js +0 -28
  143. package/dist/main.es215.js +0 -28
  144. package/dist/main.es216.js +0 -20
  145. package/dist/main.es217.js +0 -23
  146. package/dist/main.es218.js +0 -35
  147. package/dist/main.es219.js +0 -28
  148. package/dist/main.es22.js +0 -4
  149. package/dist/main.es220.js +0 -29
  150. package/dist/main.es221.js +0 -24
  151. package/dist/main.es222.js +0 -23
  152. package/dist/main.es223.js +0 -28
  153. package/dist/main.es224.js +0 -25
  154. package/dist/main.es225.js +0 -23
  155. package/dist/main.es226.js +0 -23
  156. package/dist/main.es227.js +0 -20
  157. package/dist/main.es228.js +0 -20
  158. package/dist/main.es229.js +0 -23
  159. package/dist/main.es23.js +0 -169
  160. package/dist/main.es230.js +0 -23
  161. package/dist/main.es231.js +0 -25
  162. package/dist/main.es232.js +0 -38
  163. package/dist/main.es233.js +0 -30
  164. package/dist/main.es234.js +0 -28
  165. package/dist/main.es235.js +0 -23
  166. package/dist/main.es236.js +0 -22
  167. package/dist/main.es237.js +0 -28
  168. package/dist/main.es238.js +0 -23
  169. package/dist/main.es239.js +0 -18
  170. package/dist/main.es24.js +0 -201
  171. package/dist/main.es240.js +0 -23
  172. package/dist/main.es241.js +0 -25
  173. package/dist/main.es242.js +0 -23
  174. package/dist/main.es243.js +0 -23
  175. package/dist/main.es244.js +0 -23
  176. package/dist/main.es245.js +0 -23
  177. package/dist/main.es246.js +0 -23
  178. package/dist/main.es247.js +0 -23
  179. package/dist/main.es248.js +0 -23
  180. package/dist/main.es249.js +0 -23
  181. package/dist/main.es25.js +0 -55
  182. package/dist/main.es250.js +0 -30
  183. package/dist/main.es251.js +0 -23
  184. package/dist/main.es252.js +0 -23
  185. package/dist/main.es253.js +0 -28
  186. package/dist/main.es254.js +0 -23
  187. package/dist/main.es255.js +0 -23
  188. package/dist/main.es256.js +0 -28
  189. package/dist/main.es257.js +0 -33
  190. package/dist/main.es258.js +0 -28
  191. package/dist/main.es259.js +0 -28
  192. package/dist/main.es26.js +0 -12
  193. package/dist/main.es260.js +0 -23
  194. package/dist/main.es261.js +0 -25
  195. package/dist/main.es262.js +0 -28
  196. package/dist/main.es263.js +0 -30
  197. package/dist/main.es264.js +0 -23
  198. package/dist/main.es265.js +0 -23
  199. package/dist/main.es266.js +0 -23
  200. package/dist/main.es267.js +0 -23
  201. package/dist/main.es268.js +0 -28
  202. package/dist/main.es269.js +0 -252
  203. package/dist/main.es27.js +0 -6
  204. package/dist/main.es270.js +0 -22
  205. package/dist/main.es271.js +0 -25
  206. package/dist/main.es272.js +0 -7
  207. package/dist/main.es273.js +0 -383
  208. package/dist/main.es274.js +0 -54
  209. package/dist/main.es275.js +0 -15
  210. package/dist/main.es276.js +0 -64
  211. package/dist/main.es277.js +0 -4
  212. package/dist/main.es278.js +0 -4
  213. package/dist/main.es279.js +0 -4
  214. package/dist/main.es28.js +0 -103
  215. package/dist/main.es280.js +0 -4
  216. package/dist/main.es281.js +0 -4
  217. package/dist/main.es282.js +0 -4
  218. package/dist/main.es283.js +0 -4
  219. package/dist/main.es284.js +0 -4
  220. package/dist/main.es285.js +0 -4
  221. package/dist/main.es286.js +0 -4
  222. package/dist/main.es287.js +0 -4
  223. package/dist/main.es288.js +0 -4
  224. package/dist/main.es289.js +0 -4
  225. package/dist/main.es29.js +0 -62
  226. package/dist/main.es290.js +0 -4
  227. package/dist/main.es291.js +0 -4
  228. package/dist/main.es292.js +0 -4
  229. package/dist/main.es293.js +0 -4
  230. package/dist/main.es294.js +0 -4
  231. package/dist/main.es295.js +0 -4
  232. package/dist/main.es296.js +0 -4
  233. package/dist/main.es297.js +0 -4
  234. package/dist/main.es298.js +0 -4
  235. package/dist/main.es299.js +0 -4
  236. package/dist/main.es3.js +0 -70
  237. package/dist/main.es30.js +0 -69
  238. package/dist/main.es300.js +0 -4
  239. package/dist/main.es301.js +0 -4
  240. package/dist/main.es302.js +0 -4
  241. package/dist/main.es303.js +0 -4
  242. package/dist/main.es304.js +0 -4
  243. package/dist/main.es305.js +0 -4
  244. package/dist/main.es306.js +0 -4
  245. package/dist/main.es307.js +0 -4
  246. package/dist/main.es308.js +0 -4
  247. package/dist/main.es309.js +0 -4
  248. package/dist/main.es31.js +0 -801
  249. package/dist/main.es310.js +0 -4
  250. package/dist/main.es311.js +0 -4
  251. package/dist/main.es312.js +0 -4
  252. package/dist/main.es313.js +0 -4
  253. package/dist/main.es314.js +0 -4
  254. package/dist/main.es315.js +0 -4
  255. package/dist/main.es316.js +0 -4
  256. package/dist/main.es317.js +0 -4
  257. package/dist/main.es318.js +0 -4
  258. package/dist/main.es319.js +0 -4
  259. package/dist/main.es32.js +0 -127
  260. package/dist/main.es320.js +0 -4
  261. package/dist/main.es321.js +0 -4
  262. package/dist/main.es322.js +0 -4
  263. package/dist/main.es323.js +0 -4
  264. package/dist/main.es324.js +0 -4
  265. package/dist/main.es325.js +0 -4
  266. package/dist/main.es326.js +0 -4
  267. package/dist/main.es327.js +0 -4
  268. package/dist/main.es328.js +0 -4
  269. package/dist/main.es329.js +0 -4
  270. package/dist/main.es33.js +0 -4
  271. package/dist/main.es330.js +0 -4
  272. package/dist/main.es331.js +0 -4
  273. package/dist/main.es332.js +0 -4
  274. package/dist/main.es333.js +0 -4
  275. package/dist/main.es334.js +0 -4
  276. package/dist/main.es335.js +0 -4
  277. package/dist/main.es336.js +0 -4
  278. package/dist/main.es337.js +0 -4
  279. package/dist/main.es338.js +0 -4
  280. package/dist/main.es339.js +0 -4
  281. package/dist/main.es34.js +0 -29
  282. package/dist/main.es340.js +0 -4
  283. package/dist/main.es341.js +0 -4
  284. package/dist/main.es342.js +0 -4
  285. package/dist/main.es343.js +0 -4
  286. package/dist/main.es344.js +0 -4
  287. package/dist/main.es345.js +0 -4
  288. package/dist/main.es346.js +0 -4
  289. package/dist/main.es347.js +0 -4
  290. package/dist/main.es348.js +0 -4
  291. package/dist/main.es349.js +0 -4
  292. package/dist/main.es35.js +0 -34
  293. package/dist/main.es350.js +0 -4
  294. package/dist/main.es351.js +0 -4
  295. package/dist/main.es352.js +0 -4
  296. package/dist/main.es353.js +0 -4
  297. package/dist/main.es354.js +0 -4
  298. package/dist/main.es355.js +0 -4
  299. package/dist/main.es356.js +0 -4
  300. package/dist/main.es357.js +0 -4
  301. package/dist/main.es358.js +0 -4
  302. package/dist/main.es359.js +0 -4
  303. package/dist/main.es36.js +0 -36
  304. package/dist/main.es360.js +0 -4
  305. package/dist/main.es361.js +0 -4
  306. package/dist/main.es362.js +0 -4
  307. package/dist/main.es363.js +0 -4
  308. package/dist/main.es364.js +0 -4
  309. package/dist/main.es365.js +0 -4
  310. package/dist/main.es366.js +0 -4
  311. package/dist/main.es367.js +0 -4
  312. package/dist/main.es368.js +0 -4
  313. package/dist/main.es369.js +0 -4
  314. package/dist/main.es37.js +0 -41
  315. package/dist/main.es370.js +0 -4
  316. package/dist/main.es371.js +0 -4
  317. package/dist/main.es372.js +0 -4
  318. package/dist/main.es373.js +0 -4
  319. package/dist/main.es374.js +0 -4
  320. package/dist/main.es375.js +0 -4
  321. package/dist/main.es376.js +0 -4
  322. package/dist/main.es377.js +0 -4
  323. package/dist/main.es378.js +0 -4
  324. package/dist/main.es379.js +0 -4
  325. package/dist/main.es38.js +0 -35
  326. package/dist/main.es380.js +0 -4
  327. package/dist/main.es381.js +0 -4
  328. package/dist/main.es382.js +0 -4
  329. package/dist/main.es383.js +0 -4
  330. package/dist/main.es384.js +0 -4
  331. package/dist/main.es385.js +0 -4
  332. package/dist/main.es386.js +0 -4
  333. package/dist/main.es387.js +0 -4
  334. package/dist/main.es388.js +0 -4
  335. package/dist/main.es389.js +0 -4
  336. package/dist/main.es39.js +0 -20
  337. package/dist/main.es390.js +0 -4
  338. package/dist/main.es391.js +0 -4
  339. package/dist/main.es392.js +0 -4
  340. package/dist/main.es393.js +0 -4
  341. package/dist/main.es394.js +0 -4
  342. package/dist/main.es395.js +0 -4
  343. package/dist/main.es396.js +0 -4
  344. package/dist/main.es397.js +0 -4
  345. package/dist/main.es398.js +0 -4
  346. package/dist/main.es399.js +0 -4
  347. package/dist/main.es4.js +0 -19
  348. package/dist/main.es40.js +0 -20
  349. package/dist/main.es400.js +0 -4
  350. package/dist/main.es401.js +0 -4
  351. package/dist/main.es402.js +0 -4
  352. package/dist/main.es403.js +0 -4
  353. package/dist/main.es404.js +0 -4
  354. package/dist/main.es405.js +0 -4
  355. package/dist/main.es406.js +0 -4
  356. package/dist/main.es407.js +0 -4
  357. package/dist/main.es408.js +0 -4
  358. package/dist/main.es409.js +0 -4
  359. package/dist/main.es41.js +0 -25
  360. package/dist/main.es410.js +0 -4
  361. package/dist/main.es411.js +0 -4
  362. package/dist/main.es412.js +0 -4
  363. package/dist/main.es413.js +0 -4
  364. package/dist/main.es414.js +0 -4
  365. package/dist/main.es415.js +0 -4
  366. package/dist/main.es416.js +0 -4
  367. package/dist/main.es417.js +0 -4
  368. package/dist/main.es418.js +0 -4
  369. package/dist/main.es419.js +0 -4
  370. package/dist/main.es42.js +0 -28
  371. package/dist/main.es420.js +0 -4
  372. package/dist/main.es421.js +0 -4
  373. package/dist/main.es422.js +0 -4
  374. package/dist/main.es423.js +0 -4
  375. package/dist/main.es424.js +0 -4
  376. package/dist/main.es425.js +0 -4
  377. package/dist/main.es426.js +0 -4
  378. package/dist/main.es427.js +0 -4
  379. package/dist/main.es428.js +0 -4
  380. package/dist/main.es429.js +0 -4
  381. package/dist/main.es43.js +0 -23
  382. package/dist/main.es430.js +0 -4
  383. package/dist/main.es431.js +0 -4
  384. package/dist/main.es432.js +0 -4
  385. package/dist/main.es433.js +0 -4
  386. package/dist/main.es434.js +0 -4
  387. package/dist/main.es435.js +0 -4
  388. package/dist/main.es436.js +0 -4
  389. package/dist/main.es437.js +0 -4
  390. package/dist/main.es438.js +0 -4
  391. package/dist/main.es439.js +0 -4
  392. package/dist/main.es44.js +0 -44
  393. package/dist/main.es440.js +0 -4
  394. package/dist/main.es441.js +0 -4
  395. package/dist/main.es442.js +0 -4
  396. package/dist/main.es443.js +0 -4
  397. package/dist/main.es444.js +0 -4
  398. package/dist/main.es445.js +0 -4
  399. package/dist/main.es446.js +0 -4
  400. package/dist/main.es447.js +0 -4
  401. package/dist/main.es448.js +0 -4
  402. package/dist/main.es449.js +0 -4
  403. package/dist/main.es45.js +0 -38
  404. package/dist/main.es450.js +0 -4
  405. package/dist/main.es451.js +0 -4
  406. package/dist/main.es452.js +0 -4
  407. package/dist/main.es453.js +0 -4
  408. package/dist/main.es454.js +0 -4
  409. package/dist/main.es455.js +0 -4
  410. package/dist/main.es456.js +0 -4
  411. package/dist/main.es457.js +0 -4
  412. package/dist/main.es458.js +0 -4
  413. package/dist/main.es459.js +0 -4
  414. package/dist/main.es46.js +0 -23
  415. package/dist/main.es460.js +0 -4
  416. package/dist/main.es461.js +0 -4
  417. package/dist/main.es462.js +0 -4
  418. package/dist/main.es463.js +0 -4
  419. package/dist/main.es464.js +0 -4
  420. package/dist/main.es465.js +0 -4
  421. package/dist/main.es466.js +0 -4
  422. package/dist/main.es467.js +0 -4
  423. package/dist/main.es468.js +0 -4
  424. package/dist/main.es469.js +0 -4
  425. package/dist/main.es47.js +0 -23
  426. package/dist/main.es470.js +0 -4
  427. package/dist/main.es471.js +0 -4
  428. package/dist/main.es472.js +0 -4
  429. package/dist/main.es473.js +0 -4
  430. package/dist/main.es474.js +0 -4
  431. package/dist/main.es475.js +0 -4
  432. package/dist/main.es476.js +0 -4
  433. package/dist/main.es477.js +0 -4
  434. package/dist/main.es478.js +0 -4
  435. package/dist/main.es479.js +0 -4
  436. package/dist/main.es48.js +0 -24
  437. package/dist/main.es480.js +0 -4
  438. package/dist/main.es481.js +0 -4
  439. package/dist/main.es482.js +0 -4
  440. package/dist/main.es483.js +0 -4
  441. package/dist/main.es484.js +0 -4
  442. package/dist/main.es485.js +0 -4
  443. package/dist/main.es486.js +0 -4
  444. package/dist/main.es487.js +0 -4
  445. package/dist/main.es488.js +0 -4
  446. package/dist/main.es489.js +0 -4
  447. package/dist/main.es49.js +0 -35
  448. package/dist/main.es490.js +0 -4
  449. package/dist/main.es491.js +0 -4
  450. package/dist/main.es492.js +0 -4
  451. package/dist/main.es493.js +0 -4
  452. package/dist/main.es494.js +0 -4
  453. package/dist/main.es495.js +0 -4
  454. package/dist/main.es496.js +0 -4
  455. package/dist/main.es497.js +0 -4
  456. package/dist/main.es498.js +0 -4
  457. package/dist/main.es499.js +0 -4
  458. package/dist/main.es5.js +0 -586
  459. package/dist/main.es50.js +0 -30
  460. package/dist/main.es500.js +0 -4
  461. package/dist/main.es501.js +0 -4
  462. package/dist/main.es502.js +0 -4
  463. package/dist/main.es503.js +0 -4
  464. package/dist/main.es504.js +0 -4
  465. package/dist/main.es505.js +0 -4
  466. package/dist/main.es506.js +0 -4
  467. package/dist/main.es507.js +0 -4
  468. package/dist/main.es508.js +0 -4
  469. package/dist/main.es509.js +0 -4
  470. package/dist/main.es51.js +0 -34
  471. package/dist/main.es510.js +0 -4
  472. package/dist/main.es511.js +0 -88
  473. package/dist/main.es52.js +0 -20
  474. package/dist/main.es53.js +0 -20
  475. package/dist/main.es54.js +0 -23
  476. package/dist/main.es55.js +0 -28
  477. package/dist/main.es56.js +0 -28
  478. package/dist/main.es57.js +0 -23
  479. package/dist/main.es58.js +0 -25
  480. package/dist/main.es59.js +0 -24
  481. package/dist/main.es6.js +0 -5872
  482. package/dist/main.es60.js +0 -23
  483. package/dist/main.es61.js +0 -23
  484. package/dist/main.es62.js +0 -23
  485. package/dist/main.es63.js +0 -23
  486. package/dist/main.es64.js +0 -23
  487. package/dist/main.es65.js +0 -20
  488. package/dist/main.es66.js +0 -23
  489. package/dist/main.es67.js +0 -23
  490. package/dist/main.es68.js +0 -21
  491. package/dist/main.es69.js +0 -20
  492. package/dist/main.es7.js +0 -1904
  493. package/dist/main.es70.js +0 -23
  494. package/dist/main.es71.js +0 -28
  495. package/dist/main.es72.js +0 -28
  496. package/dist/main.es73.js +0 -23
  497. package/dist/main.es74.js +0 -23
  498. package/dist/main.es75.js +0 -23
  499. package/dist/main.es76.js +0 -23
  500. package/dist/main.es77.js +0 -31
  501. package/dist/main.es78.js +0 -23
  502. package/dist/main.es79.js +0 -33
  503. package/dist/main.es8.js +0 -42
  504. package/dist/main.es80.js +0 -30
  505. package/dist/main.es81.js +0 -23
  506. package/dist/main.es82.js +0 -22
  507. package/dist/main.es83.js +0 -25
  508. package/dist/main.es84.js +0 -28
  509. package/dist/main.es85.js +0 -35
  510. package/dist/main.es86.js +0 -23
  511. package/dist/main.es87.js +0 -23
  512. package/dist/main.es88.js +0 -33
  513. package/dist/main.es89.js +0 -20
  514. package/dist/main.es9.js +0 -4
  515. package/dist/main.es90.js +0 -28
  516. package/dist/main.es91.js +0 -28
  517. package/dist/main.es92.js +0 -23
  518. package/dist/main.es93.js +0 -23
  519. package/dist/main.es94.js +0 -24
  520. package/dist/main.es95.js +0 -28
  521. package/dist/main.es96.js +0 -28
  522. package/dist/main.es97.js +0 -23
  523. package/dist/main.es98.js +0 -23
  524. package/dist/main.es99.js +0 -28
  525. package/dist/style.css +0 -1
  526. package/src/assets/svgIcons/checkmark_white.svg +0 -4
  527. package/src/assets/svgIcons/clickable_info_white.svg +0 -5
  528. package/src/assets/svgIcons/erase_white.svg +0 -4
  529. package/src/assets/svgIcons/question_mark.svg +0 -3
  530. package/src/assets/svgIcons/question_mark_white.svg +0 -4
  531. package/src/assets/svgIcons/reorder_string.svg +0 -3
  532. package/src/assets/svgIcons/switch_polarity.svg +0 -5
  533. package/src/assets/svgIcons/transparent_warning.svg +0 -4
  534. package/src/assets/svgIcons/warning_triangle.svg +0 -3
  535. package/src/assets/svgIcons/warning_triangle_white.svg +0 -5
  536. package/src/components/infoLabel/index.vue +0 -63
  537. package/src/components/panelRangeInfo/index.vue +0 -196
  538. /package/src/assets/svgIcons/{close.svg → close_for_modals,_tool_tips.svg} +0 -0
@@ -0,0 +1,1009 @@
1
+ <template>
2
+ <PageContainer>
3
+ <PageTitleContainer data-id="string_design_expand_collapse_section">
4
+ <SectionTitleText>{{ $gettext('inverters') }}</SectionTitleText>
5
+ <ButtonIcon
6
+ custom-color="black"
7
+ :icon-name="hasExpandedSection ? 'collapse_all' : 'expand_all'"
8
+ :text="$gettext(hasExpandedSection ? 'collapse_all' : 'expand_all')"
9
+ @click="toggleAllSections"
10
+ />
11
+ </PageTitleContainer>
12
+ <SectionContainer
13
+ v-for="(item, index) in dataListToDisplay"
14
+ :key="item.inverterId"
15
+ >
16
+ <TopContainer>
17
+ <LeftContainer>
18
+ <TitleContainer>
19
+ <IconWrapper
20
+ v-if="item.type != 'optimizer'"
21
+ size="32px"
22
+ @click="toggleSection(item.inverterId)"
23
+ >
24
+ <RCIcon
25
+ v-if="isItemCollapsible(item)"
26
+ color="white"
27
+ :name="isExpanded(item.inverterId) ? 'arrow_up' : 'arrow_down'"
28
+ size="10px"
29
+ />
30
+ <IconPlaceholder v-else />
31
+ </IconWrapper>
32
+ <TextContainer
33
+ :is-archived="
34
+ item.statusActive === false && !!item.companyComponentLibraryId
35
+ "
36
+ :style="{ marginLeft: item.type == 'optimizer' ? '32px' : '0' }"
37
+ >
38
+ <TitleText :title="item.model">
39
+ {{
40
+ (item.type === 'optimizer' || !hasExpandedSection) &&
41
+ item.quantity
42
+ ? item.quantity + ' x'
43
+ : ''
44
+ }}
45
+ {{ item.model }}
46
+ <InfoTextWrapper>
47
+ <RCInfoText
48
+ v-if="
49
+ item.statusActive === false &&
50
+ item.companyComponentLibraryId
51
+ "
52
+ button-type="error"
53
+ :text="
54
+ $gettext(
55
+ `Component has been archived and shouldn't be used`
56
+ )
57
+ "
58
+ />
59
+ </InfoTextWrapper>
60
+ </TitleText>
61
+ <TitleSubText>
62
+ <span>{{ item.brandName }}</span>
63
+ <template
64
+ v-if="itemHasStrings(item) || item.type === 'optimizer'"
65
+ >
66
+ <ContainerValue
67
+ v-if="
68
+ item.getkWp() > 1 &&
69
+ item.type !== 'optimizer' &&
70
+ hasExpandedSection
71
+ "
72
+ >
73
+ |
74
+ {{
75
+ numberToString({
76
+ value: item.getkWp(),
77
+ numberPrecision: 2,
78
+ })
79
+ }}
80
+ kWp
81
+ </ContainerValue>
82
+ <ContainerValue
83
+ v-else-if="item.type !== 'optimizer' && hasExpandedSection"
84
+ >
85
+ |
86
+ {{
87
+ numberToString({
88
+ value: 1000 * item.getkWp(),
89
+ numberPrecision: 2,
90
+ minDecimals: 2,
91
+ })
92
+ }}
93
+ Wp
94
+ </ContainerValue>
95
+ </template>
96
+ </TitleSubText>
97
+ </TextContainer>
98
+ </TitleContainer>
99
+ <MarkersContainer>
100
+ <MarkerItem
101
+ v-if="item.mppts.length && hasExpandedSection"
102
+ :background-color="isTargetRatioInRange(item) ? 'green' : 'red'"
103
+ >{{
104
+ numberToString({
105
+ value: 100 * item.getTargetRatio(),
106
+ numberPrecision: 0,
107
+ minDecimals: 0,
108
+ })
109
+ }}%
110
+ </MarkerItem>
111
+ <MarkerItem v-if="item.hasTemplate && !item.isLoading">
112
+ <span
113
+ :title="
114
+ item.companyProductTemplateName
115
+ ? item.companyProductTemplateName
116
+ : $gettext('no_template_selected')
117
+ "
118
+ >
119
+ {{
120
+ item.companyProductTemplateName
121
+ ? item.companyProductTemplateName
122
+ : $gettext('no_template_selected')
123
+ }}
124
+ </span>
125
+ </MarkerItem>
126
+ <MarkerItem>
127
+ <RCIcon color="white" :name="getIconName(item)" size="14px" />
128
+ <MarkerText :title="getTypeName(item.type)">
129
+ {{ getTypeName(item.type) }}
130
+ </MarkerText>
131
+ </MarkerItem>
132
+ <MarkerItem
133
+ v-if="item.type !== 'optimizer' && item.type !== 'storage'"
134
+ :title="$gettext('AC power is the nominal AC output power.')"
135
+ >
136
+ {{
137
+ numberToString({
138
+ value: item.pacKw,
139
+ numberPrecision: getNumberPrecision(item.pacKw),
140
+ minDecimals: 0,
141
+ })
142
+ }}
143
+ {{ $gettext('kWAC') }}
144
+ </MarkerItem>
145
+ <MarkerItem
146
+ v-if="
147
+ (!itemHasStrings(item) || !hasExpandedSection) &&
148
+ item.type !== 'storage'
149
+ "
150
+ :title="$gettext('The DC power is the maximum DC input power.')"
151
+ >
152
+ {{
153
+ numberToString({
154
+ value: item.inputMaxPowerKw,
155
+ numberPrecision: getNumberPrecision(item.inputMaxPowerKw),
156
+ minDecimals: 0,
157
+ })
158
+ }}
159
+ {{ $gettext('kWDC') }}
160
+ </MarkerItem>
161
+ <MarkerItem
162
+ v-if="item.type == 'storage'"
163
+ :title="$gettext('charging_ac_power_kva_marker_title')"
164
+ >
165
+ {{
166
+ numberToString({
167
+ value: item.chargingAcPowerKva,
168
+ numberPrecision: getNumberPrecision(item.chargingAcPowerKva),
169
+ minDecimals: 0,
170
+ })
171
+ }}
172
+ {{ $gettext('kWAC') }}
173
+ </MarkerItem>
174
+ </MarkersContainer>
175
+ <IconsContainer>
176
+ <IconWrapper
177
+ v-if="nonOptimizerInverterCount > 1 || item.type === 'optimizer'"
178
+ @click="
179
+ !item.isLoading && hasGroupedInverters(item)
180
+ ? $emit('on-delete-grouped', item)
181
+ : $emit('on-delete', item)
182
+ "
183
+ >
184
+ <RCIcon
185
+ :color="item.isLoading ? 'grey' : 'red'"
186
+ :cursor="item.isLoading ? 'not-allowed' : 'pointer'"
187
+ :is-disabled="item.isLoading"
188
+ name="delete"
189
+ size="14px"
190
+ />
191
+ </IconWrapper>
192
+ <IconWrapper @click="!item.isLoading && $emit('on-edit', item)">
193
+ <RCIcon
194
+ :color="item.isLoading ? 'grey' : 'white'"
195
+ :cursor="item.isLoading ? 'not-allowed' : 'pointer'"
196
+ :is-disabled="item.isLoading"
197
+ name="edit_button"
198
+ size="14px"
199
+ />
200
+ </IconWrapper>
201
+ <IconWrapper @click="$emit('on-datasheet', item)">
202
+ <RCIcon
203
+ color="white"
204
+ cursor="pointer"
205
+ name="document"
206
+ size="14px"
207
+ />
208
+ </IconWrapper>
209
+ </IconsContainer>
210
+ </LeftContainer>
211
+ <SortingContainer v-if="dataListToDisplay.length > 1">
212
+ <SortingIconWrapper
213
+ :data-test-id="'move_up_' + index"
214
+ :is-disabled="index === 0"
215
+ @click="index > 0 && handleMoveClick('up', index, item)"
216
+ >
217
+ <RCIcon
218
+ :color="index === 0 ? 'grey6' : 'grey3'"
219
+ :cursor="index === 0 ? 'not-allowed' : 'pointer'"
220
+ name="move_up"
221
+ size="14px"
222
+ />
223
+ </SortingIconWrapper>
224
+ <SortingIconWrapper
225
+ :data-test-id="'move_down_' + index"
226
+ :is-disabled="index === dataListToDisplay.length - 1"
227
+ @click="
228
+ index < dataListToDisplay.length - 1 &&
229
+ handleMoveClick('down', index, item)
230
+ "
231
+ >
232
+ <RCIcon
233
+ :color="
234
+ index === dataListToDisplay.length - 1 ? 'grey6' : 'grey3'
235
+ "
236
+ :cursor="
237
+ index === dataListToDisplay.length - 1
238
+ ? 'not-allowed'
239
+ : 'pointer'
240
+ "
241
+ :is-disabled="index === dataListToDisplay.length - 1"
242
+ name="move_down"
243
+ size="14px"
244
+ />
245
+ </SortingIconWrapper>
246
+ </SortingContainer>
247
+ </TopContainer>
248
+ <BoxContainer
249
+ v-for="mppt in item.mppts"
250
+ v-show="isExpanded(item.inverterId)"
251
+ :key="mppt.mpptId"
252
+ >
253
+ <BoxTitleWrapper>
254
+ <IconWrapper
255
+ v-if="itemHasStrings(item)"
256
+ margin-left="4px"
257
+ size="8px"
258
+ @click="toggleMppt(mppt.mpptId)"
259
+ >
260
+ <RCIcon
261
+ color="white"
262
+ cursor="pointer"
263
+ :name="isMpptExpanded(mppt.mpptId) ? 'arrow_up' : 'arrow_down'"
264
+ size="10px"
265
+ />
266
+ </IconWrapper>
267
+ <BoxTitleText>{{ mppt.name }}</BoxTitleText>
268
+ <BoxIconsContainer>
269
+ <BoxIconWrapper>
270
+ <RCIcon
271
+ color="white"
272
+ cursor="pointer"
273
+ name="string_design"
274
+ size="11px"
275
+ />
276
+ <div>
277
+ {{ mppt.strings.length }}/{{ mppt.getNumberOfTerminals() }}
278
+ </div>
279
+ </BoxIconWrapper>
280
+ <BoxIconWrapper>
281
+ <RCIcon
282
+ color="white"
283
+ cursor="pointer"
284
+ name="panels_tool"
285
+ size="11px"
286
+ />
287
+ <div>{{ getNumberOfMpptModules(mppt.strings) }}</div>
288
+ </BoxIconWrapper>
289
+ </BoxIconsContainer>
290
+ </BoxTitleWrapper>
291
+
292
+ <div v-show="isMpptExpanded(mppt.mpptId) && itemHasStrings(item)">
293
+ <StringBox v-for="string in mppt.strings" :key="string.id">
294
+ <StringColorContainer :background-color="string.color" />
295
+ <StringContainer>
296
+ <div>{{ string.name }}</div>
297
+ <StringIconContainer>
298
+ <div>{{ string.modules.length }}</div>
299
+ <RCIcon color="white" name="module" size="14px" />
300
+ </StringIconContainer>
301
+ </StringContainer>
302
+ </StringBox>
303
+ </div>
304
+ </BoxContainer>
305
+ <template v-if="availableMPPTData(item)">
306
+ <BoxContainer
307
+ v-for="availableItem in availableMPPTData(item)"
308
+ v-show="isExpanded(item.inverterId)"
309
+ :key="availableItem.mpptId"
310
+ >
311
+ <BoxTitleWrapper>
312
+ <IconWrapper
313
+ v-if="itemHasStrings(item)"
314
+ margin-left="4px"
315
+ size="8px"
316
+ @click="toggleMppt(availableItem.mpptId)"
317
+ >
318
+ <RCIcon
319
+ color="white"
320
+ cursor="pointer"
321
+ :name="
322
+ isMpptExpanded(availableItem.mpptId)
323
+ ? 'arrow_up'
324
+ : 'arrow_down'
325
+ "
326
+ size="10px"
327
+ />
328
+ </IconWrapper>
329
+ <BoxTitleText>{{ availableItem.name }}</BoxTitleText>
330
+ <BoxIconsContainer>
331
+ <BoxIconWrapper>
332
+ <RCIcon
333
+ color="white"
334
+ cursor="pointer"
335
+ name="string_design"
336
+ size="11px"
337
+ />
338
+ <div>0/{{ availableItem.numberOfTerminals }}</div>
339
+ </BoxIconWrapper>
340
+ <BoxIconWrapper>
341
+ <RCIcon
342
+ color="white"
343
+ cursor="pointer"
344
+ name="panels_tool"
345
+ size="11px"
346
+ />
347
+ <div>0</div>
348
+ </BoxIconWrapper>
349
+ </BoxIconsContainer>
350
+ </BoxTitleWrapper>
351
+ <EmptyStringBox
352
+ v-show="
353
+ isMpptExpanded(availableItem.mpptId) && itemHasStrings(item)
354
+ "
355
+ />
356
+ </BoxContainer>
357
+ </template>
358
+ <BoxContainer
359
+ v-if="item.storageSystem && Object.keys(item.storageSystem).length > 0"
360
+ v-show="isExpanded(item.inverterId)"
361
+ :key="item.storageSystem.storage_system_id"
362
+ >
363
+ <BoxTitleWrapper>
364
+ <IconWrapper
365
+ margin-left="4px"
366
+ size="8px"
367
+ @click="toggleMppt(item.storageSystem.storage_system_id)"
368
+ >
369
+ <RCIcon
370
+ color="white"
371
+ cursor="pointer"
372
+ :name="
373
+ isMpptExpanded(item.storageSystem.storage_system_id)
374
+ ? 'arrow_up'
375
+ : 'arrow_down'
376
+ "
377
+ size="10px"
378
+ />
379
+ </IconWrapper>
380
+ <BoxTitleText>{{ $gettext('battery') }}</BoxTitleText>
381
+ </BoxTitleWrapper>
382
+ <div v-show="isMpptExpanded(item.storageSystem.storage_system_id)">
383
+ <BatteryBox>
384
+ <RCIcon color="white" name="battery" size="14px" />
385
+ <BatteryDetailsContainer>
386
+ <BatteryType>{{ item.storageSystem.brand_name }}</BatteryType>
387
+ <BatteryModel>{{ item.storageSystem.model }}</BatteryModel>
388
+ </BatteryDetailsContainer>
389
+ <BatteryValue>
390
+ {{
391
+ numberToString({
392
+ value: item.storageSystem.nominal_capacity_kWh,
393
+ numberPrecision: 2,
394
+ minDecimals: 0,
395
+ })
396
+ }}
397
+ kWh
398
+ </BatteryValue>
399
+ </BatteryBox>
400
+ </div>
401
+ </BoxContainer>
402
+ </SectionContainer>
403
+ <DividerContainer v-if="batteryData.length" />
404
+ <UnassignedContainer v-if="batteryData.length">
405
+ <SectionTitleText>{{ $gettext('battery_information') }}</SectionTitleText>
406
+ <BatteryBox
407
+ v-for="battery in batteryData"
408
+ :key="battery.id"
409
+ :is-unassigned="true"
410
+ >
411
+ <RCIcon color="black" name="battery" size="14px" />
412
+ <BatteryDetailsContainer>
413
+ <UnassignedType>{{ battery.brand_name }}</UnassignedType>
414
+ <UnassignedModel>{{ battery.model }}</UnassignedModel>
415
+ </BatteryDetailsContainer>
416
+ <BatteryValue>
417
+ {{
418
+ numberToString({
419
+ value: battery.nominal_capacity_kWh,
420
+ numberPrecision: 2,
421
+ minDecimals: 0,
422
+ })
423
+ }}
424
+ kWh
425
+ </BatteryValue>
426
+ </BatteryBox>
427
+ </UnassignedContainer>
428
+ </PageContainer>
429
+ </template>
430
+
431
+ <script>
432
+ // import DropdownMenu from '@eturnity/eturnity_reusable_components/src/components/stringDesign/DropdownMenu'
433
+ import styled from 'vue3-styled-components'
434
+ import RCIcon from '../../icon'
435
+ import ButtonIcon from '../../buttons/buttonIcon'
436
+ import { numberToString } from '../../../helpers/numberConverter'
437
+ import RCInfoText from '../../infoText'
438
+ const PageContainer = styled.div`
439
+ position: relative;
440
+ `
441
+
442
+ const SectionContainer = styled.div`
443
+ &:not(:last-child) {
444
+ margin-bottom: 8px;
445
+ }
446
+ background-color: ${(props) => props.theme.colors.black};
447
+ padding: 8px;
448
+ border-radius: 4px;
449
+ color: ${(props) => props.theme.colors.white};
450
+ `
451
+
452
+ const TitleContainer = styled.div`
453
+ display: flex;
454
+ align-items: center;
455
+ gap: 4px;
456
+ `
457
+
458
+ const IconsContainer = styled.div`
459
+ display: flex;
460
+ align-items: center;
461
+ margin-left: 32px;
462
+ margin-top: 4px;
463
+ `
464
+ const textContainerAttr = { isArchived: Boolean }
465
+ const TextContainer = styled('div', textContainerAttr)`
466
+ display: grid;
467
+ color: ${(props) => (props.isArchived ? props.theme.colors.red : 'white')};
468
+ `
469
+ const InfoTextWrapper = styled.div`
470
+ display: flex;
471
+ align-items: center;
472
+ justify-content: center;
473
+ padding-left: 8px;
474
+ `
475
+ const TitleText = styled.div`
476
+ font-size: 14px;
477
+ white-space: nowrap;
478
+ overflow: hidden;
479
+ text-overflow: ellipsis;
480
+ display: flex;
481
+ `
482
+
483
+ const TitleSubText = styled.div`
484
+ font-size: 12px;
485
+ display: flex;
486
+ gap: 4px;
487
+ `
488
+
489
+ const MarkersContainer = styled.div`
490
+ display: flex;
491
+ flex-wrap: wrap;
492
+ gap: 8px;
493
+ margin: 4px 0 2px 32px;
494
+ align-items: end;
495
+ `
496
+
497
+ const MarkerAttrs = { backgroundColor: String }
498
+ const MarkerItem = styled('div', MarkerAttrs)`
499
+ display: flex;
500
+ gap: 5px;
501
+ align-items: center;
502
+ padding: 2px 7px;
503
+ border-radius: 4px;
504
+ background-color: ${(props) =>
505
+ props.backgroundColor
506
+ ? props.theme.colors[props.backgroundColor]
507
+ : props.theme.colors.grey6};
508
+ font-size: 11px;
509
+ color: ${(props) => props.theme.colors.white};
510
+ & > span {
511
+ overflow: hidden;
512
+ white-space: nowrap;
513
+ text-overflow: ellipsis;
514
+ max-width: 11ch;
515
+ }
516
+ `
517
+
518
+ const MarkerText = styled.div`
519
+ max-width: 11ch;
520
+ white-space: nowrap;
521
+ overflow: hidden;
522
+ text-overflow: ellipsis;
523
+ `
524
+
525
+ const ContainerValue = styled.div`
526
+ font-size: 12px;
527
+ `
528
+
529
+ const IconAttrs = {
530
+ size: { type: String, default: '32px' },
531
+ marginLeft: String,
532
+ }
533
+ const IconWrapper = styled('div', IconAttrs)`
534
+ display: flex;
535
+ align-items: center;
536
+ justify-content: center;
537
+ border-radius: 4px;
538
+ cursor: pointer;
539
+ width: ${(props) => props.size};
540
+ height: ${(props) => props.size};
541
+ margin-left: ${(props) => props.marginLeft};
542
+ &:hover {
543
+ background: ${(props) =>
544
+ props.marginLeft ? 'transparent' : 'rgba(255, 255, 255, 0.1)'};
545
+ }
546
+
547
+ &:active {
548
+ background: rgba(255, 255, 255, 0.2);
549
+ }
550
+ `
551
+
552
+ const BoxContainer = styled.div`
553
+ border-radius: 4px;
554
+ background: ${(props) => props.theme.colors.grey6};
555
+ padding: 8px;
556
+ margin-top: 8px;
557
+ margin-left: 30px;
558
+ `
559
+
560
+ const BoxTitleWrapper = styled.div`
561
+ display: flex;
562
+ align-items: center;
563
+ gap: 8px;
564
+ `
565
+
566
+ const BoxTitleText = styled.div`
567
+ font-size: 13px;
568
+ `
569
+
570
+ const BoxIconsContainer = styled.div`
571
+ display: flex;
572
+ gap: 8px;
573
+ align-items: center;
574
+ margin-left: auto;
575
+ font-size: 11px;
576
+ `
577
+
578
+ const BoxIconWrapper = styled.div`
579
+ display: flex;
580
+ align-items: center;
581
+ justify-content: center;
582
+ gap: 4px;
583
+ padding: 4px;
584
+ `
585
+
586
+ const StringBox = styled.div`
587
+ display: grid;
588
+ grid-template-columns: auto 1fr;
589
+ margin-top: 8px;
590
+ border-radius: 4px;
591
+ border: 1px solid ${(props) => props.theme.colors.grey3};
592
+ `
593
+
594
+ const StringContainer = styled.div`
595
+ display: flex;
596
+ justify-content: space-between;
597
+ gap: 8px;
598
+ padding: 8px;
599
+ font-size: 11px;
600
+ `
601
+
602
+ const StringColorAttrs = { backgroundColor: String }
603
+ const StringColorContainer = styled('div', StringColorAttrs)`
604
+ background-color: ${(props) => props.backgroundColor};
605
+ width: 22px;
606
+ min-height: 100%;
607
+ border-top-left-radius: 2px;
608
+ border-bottom-left-radius: 2px;
609
+ `
610
+
611
+ const StringIconContainer = styled.div`
612
+ display: flex;
613
+ align-items: center;
614
+ justify-content: center;
615
+ gap: 2px;
616
+ padding: 0 4px;
617
+ `
618
+
619
+ const PageTitleContainer = styled.div`
620
+ position: sticky;
621
+ top: 0;
622
+ background-color: ${(props) => props.theme.colors.black};
623
+ z-index: 99;
624
+ padding: 8px;
625
+ display: flex;
626
+ justify-content: space-between;
627
+ align-items: center;
628
+ padding-bottom: 8px;
629
+ `
630
+
631
+ const SectionTitleText = styled.div`
632
+ font-size: 14px;
633
+ font-weight: 700;
634
+ color: ${(props) => props.theme.colors.white};
635
+ `
636
+
637
+ const BatteryBoxAttrs = { isUnassigned: Boolean }
638
+ const BatteryBox = styled('div', BatteryBoxAttrs)`
639
+ display: flex;
640
+ align-items: center;
641
+ gap: 8px;
642
+ border: 1px solid ${(props) => props.theme.colors.white};
643
+ border-radius: 4px;
644
+ padding: 8px;
645
+ margin-top: 8px;
646
+ background-color: ${(props) =>
647
+ props.isUnassigned ? props.theme.colors.grey2 : ''};
648
+ `
649
+
650
+ const BatteryDetailsContainer = styled.div`
651
+ display: flex;
652
+ flex-direction: column;
653
+ gap: 4px;
654
+ `
655
+
656
+ const BatteryType = styled.div`
657
+ font-size: 11px;
658
+ `
659
+
660
+ const BatteryModel = styled.div`
661
+ font-size: 10px;
662
+ `
663
+
664
+ const BatteryValue = styled.div`
665
+ font-size: 10px;
666
+ align-self: flex-end;
667
+ margin-left: auto;
668
+ `
669
+ const TopContainer = styled.div`
670
+ display: flex;
671
+ justify-content: space-between;
672
+ `
673
+
674
+ const LeftContainer = styled.div``
675
+
676
+ const SortingContainer = styled.div`
677
+ display: flex;
678
+ flex-direction: column;
679
+ align-items: center;
680
+ `
681
+
682
+ const SortingIconWrapperAttrs = { isDisabled: Boolean }
683
+ const SortingIconWrapper = styled('div', SortingIconWrapperAttrs)`
684
+ cursor: ${(props) => (props.isDisabled ? 'not-allowed' : 'pointer')};
685
+ width: 30px;
686
+ height: 30px;
687
+ display: flex;
688
+ align-items: center;
689
+ justify-content: center;
690
+
691
+ &:hover {
692
+ background-color: ${(props) =>
693
+ props.isDisabled ? 'transparent' : 'rgba(255, 255, 255, 0.1)'};
694
+ border-radius: 4px;
695
+ }
696
+ `
697
+
698
+ const UnassignedContainer = styled.div`
699
+ margin-top: 8px;
700
+ `
701
+
702
+ const DividerContainer = styled.div`
703
+ height: 0.5px;
704
+ width: 100%;
705
+ background-color: ${(props) => props.theme.colors.grey4};
706
+ opacity: 0.6;
707
+ `
708
+
709
+ const UnassignedType = styled.div`
710
+ font-size: 12px;
711
+ line-height: 150%;
712
+ `
713
+
714
+ const UnassignedModel = styled.div`
715
+ font-size: 10px;
716
+ line-height: 150%;
717
+ `
718
+
719
+ const IconPlaceholder = styled.div`
720
+ width: 32px;
721
+ `
722
+
723
+ const EmptyStringBox = styled.div`
724
+ border: 0.8px dashed ${(props) => props.theme.colors.black};
725
+ border-radius: 4px;
726
+ padding: 8px 8px 8px 0;
727
+ height: 32px;
728
+ width: 233px;
729
+ margin-top: 8px;
730
+ `
731
+
732
+ export default {
733
+ name: 'DropdownMenu',
734
+ components: {
735
+ InfoTextWrapper,
736
+ RCInfoText,
737
+ SectionContainer,
738
+ TitleContainer,
739
+ IconsContainer,
740
+ TextContainer,
741
+ TitleText,
742
+ TitleSubText,
743
+ RCIcon,
744
+ MarkersContainer,
745
+ MarkerItem,
746
+ ContainerValue,
747
+ IconWrapper,
748
+ BoxContainer,
749
+ BoxTitleWrapper,
750
+ BoxTitleText,
751
+ BoxIconsContainer,
752
+ BoxIconWrapper,
753
+ StringBox,
754
+ StringContainer,
755
+ StringColorContainer,
756
+ StringIconContainer,
757
+ PageTitleContainer,
758
+ SectionTitleText,
759
+ ButtonIcon,
760
+ PageContainer,
761
+ BatteryBox,
762
+ BatteryDetailsContainer,
763
+ BatteryType,
764
+ BatteryModel,
765
+ BatteryValue,
766
+ TopContainer,
767
+ LeftContainer,
768
+ SortingContainer,
769
+ SortingIconWrapper,
770
+ UnassignedContainer,
771
+ DividerContainer,
772
+ UnassignedType,
773
+ UnassignedModel,
774
+ IconPlaceholder,
775
+ EmptyStringBox,
776
+ MarkerText,
777
+ },
778
+ props: {
779
+ dataList: {
780
+ required: true,
781
+ type: Array,
782
+ },
783
+ batteryData: {
784
+ required: true,
785
+ type: Array,
786
+ },
787
+ inverterParameters: {
788
+ required: true,
789
+ type: Object,
790
+ },
791
+ isPvAndBatteryActive: {
792
+ required: false,
793
+ type: Boolean,
794
+ },
795
+ },
796
+ emits: ['on-edit', 'on-move', 'on-delete', 'on-delete-grouped'],
797
+ data() {
798
+ return {
799
+ expandedInverters: [],
800
+ expandedMppts: [],
801
+ numberToString,
802
+ }
803
+ },
804
+ computed: {
805
+ dataListToDisplay() {
806
+ let data = this.hasExpandedSection
807
+ ? this.dataList
808
+ : this.compressedDataList
809
+ return data.sort((a, b) => a.lineNr - b.lineNr)
810
+ },
811
+ hasExpandedSection() {
812
+ return this.expandedInverters.length > 0
813
+ },
814
+ hasStringsOrStorage() {
815
+ return this.dataList.some((item) => {
816
+ return (
817
+ item.mppts.some((mppt) => mppt.strings.length > 0) ||
818
+ (item.storageSystem && Object.keys(item.storageSystem).length > 0)
819
+ )
820
+ })
821
+ },
822
+ nonOptimizerInverterCount() {
823
+ return this.dataList.filter((item) => item.type !== 'optimizer').length
824
+ },
825
+ compressedDataList() {
826
+ return this.dataList.reduce((acc, item) => {
827
+ if (item.type == 'optimizer') {
828
+ acc.push(item)
829
+ return acc
830
+ }
831
+ const existingInverter = acc.find((inverter) => {
832
+ return inverter.componentId == item.componentId
833
+ })
834
+ if (!existingInverter) {
835
+ acc.push(item)
836
+ item.quantity = 1
837
+ } else {
838
+ existingInverter.quantity++
839
+ }
840
+ return acc
841
+ }, [])
842
+ },
843
+ },
844
+ created() {
845
+ // Expand all items on creation
846
+ if (this.hasStringsOrStorage) {
847
+ this.expandedInverters = this.dataList.map((item) => item.inverterId)
848
+ this.expandedMppts = this.dataList.flatMap((item) => {
849
+ const availableMppts = this.availableMPPTData(item)
850
+ return [
851
+ ...item.mppts.map((mppt) => mppt.mpptId),
852
+ ...(item.storageSystem
853
+ ? [item.storageSystem.storage_system_id]
854
+ : []),
855
+ ...(availableMppts?.map((mppt) => mppt.mpptId) || []),
856
+ ]
857
+ })
858
+ }
859
+ },
860
+ methods: {
861
+ hasGroupedInverters(item) {
862
+ return item.type != 'optimizer' && item.quantity > 1
863
+ },
864
+ isTargetRatioInRange(inverter) {
865
+ const currentTargetRatio = inverter.getTargetRatio()
866
+ return (
867
+ this.inverterParameters.target_power_ratio - 20 <=
868
+ 100 * currentTargetRatio &&
869
+ this.inverterParameters.target_power_ratio + 20 >=
870
+ 100 * currentTargetRatio
871
+ )
872
+ },
873
+ getNumberPrecision(value) {
874
+ if (typeof value === 'string') {
875
+ value = Number(value)
876
+ }
877
+ if (value < 10) {
878
+ return 2
879
+ } else if (value >= 10 && value < 100) {
880
+ return 1
881
+ } else {
882
+ return 0
883
+ }
884
+ },
885
+ getNumberOfMpptModules(strings) {
886
+ return strings.reduce((acc, curr) => acc + curr.modules.length, 0)
887
+ },
888
+ availableMPPTData(item) {
889
+ if (item.type === 'optimizer' || item.type === 'storage') {
890
+ return []
891
+ }
892
+ const existingTrackerNumbers = item.mppts.map(
893
+ (mppt) => mppt.trackerNumber
894
+ )
895
+ const filteredAvailableMPPTs = item.availableMPPTs.filter(
896
+ (mppt) => !existingTrackerNumbers.includes(mppt.tracker_number)
897
+ )
898
+
899
+ let mpptData = []
900
+ filteredAvailableMPPTs.forEach((mppt) => {
901
+ mpptData.push({
902
+ mpptId:
903
+ 'available_mppt_' +
904
+ item.companyComponentLibraryId +
905
+ '_' +
906
+ mppt.tracker_number,
907
+ numberOfTerminals: mppt.number_of_terminals,
908
+ name:
909
+ 'MPPT ' +
910
+ (item.mppts.length + filteredAvailableMPPTs.indexOf(mppt) + 1),
911
+ })
912
+ })
913
+ return mpptData
914
+ },
915
+ isExpanded(id) {
916
+ return this.expandedInverters.includes(id)
917
+ },
918
+ isMpptExpanded(id) {
919
+ return this.expandedMppts.includes(id)
920
+ },
921
+ toggleSection(id) {
922
+ const index = this.expandedInverters.indexOf(id)
923
+ if (index === -1) {
924
+ this.expandedInverters.push(id)
925
+ } else {
926
+ this.expandedInverters.splice(index, 1)
927
+ }
928
+ },
929
+ toggleMppt(id) {
930
+ const index = this.expandedMppts.indexOf(id)
931
+ if (index === -1) {
932
+ this.expandedMppts.push(id)
933
+ } else {
934
+ this.expandedMppts.splice(index, 1)
935
+ }
936
+ },
937
+ toggleAllSections() {
938
+ if (this.hasExpandedSection) {
939
+ this.expandedInverters = []
940
+ this.expandedMppts = []
941
+ } else {
942
+ this.expandedInverters = this.dataList.map((item) => item.inverterId)
943
+ this.expandedMppts = this.dataList.flatMap((item) => {
944
+ const hasStrings = !!item.getStrings().length
945
+ return [
946
+ ...(hasStrings ? item.mppts.map((mppt) => mppt.mpptId) : []),
947
+ ...(item.storageSystem
948
+ ? [item.storageSystem.storage_system_id]
949
+ : []),
950
+ ]
951
+ })
952
+ }
953
+ },
954
+ isItemCollapsible(item) {
955
+ return (
956
+ item.mppts.some((mppt) => mppt.strings.length > 0) ||
957
+ (item.storageSystem && Object.keys(item.storageSystem).length > 0) ||
958
+ item.availableMPPTs.length
959
+ )
960
+ },
961
+ itemHasStrings(item) {
962
+ return item.mppts.some((mppt) => mppt.strings.length > 0)
963
+ },
964
+ getTypeName(type) {
965
+ const value = type.toLowerCase()
966
+ switch (value) {
967
+ case 'pv':
968
+ return this.$gettext('PV')
969
+ case 'pv_storage':
970
+ return this.$gettext('hybrid')
971
+ case 'storage':
972
+ return this.$gettext('battery')
973
+ case 'optimizer':
974
+ return this.$gettext('inverter_type_optimizer')
975
+ default:
976
+ return this.$gettext('PV')
977
+ }
978
+ },
979
+ getIconName(item) {
980
+ const value =
981
+ item.type === 'pv_storage'
982
+ ? item.iconName.technology_choice
983
+ : item.type
984
+ switch (value) {
985
+ case 'photovoltaics':
986
+ return 'pv'
987
+ case 'pv':
988
+ return 'pv'
989
+ case 'storage':
990
+ return 'battery'
991
+ case 'battery':
992
+ return 'battery'
993
+ case 'optimizer':
994
+ return 'optimizer'
995
+ default:
996
+ return 'pv'
997
+ }
998
+ },
999
+ handleMoveClick(direction, index, item) {
1000
+ this.$emit('on-move', {
1001
+ direction: direction,
1002
+ index: index,
1003
+ item: item,
1004
+ isExpanded: this.hasExpandedSection,
1005
+ })
1006
+ },
1007
+ },
1008
+ }
1009
+ </script>