bitboss-ui 2.0.23 → 2.0.25

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 (491) hide show
  1. package/dist/index.js +138 -140
  2. package/dist/index10.js +78 -8
  3. package/dist/{index101.js → index100.js} +2 -3
  4. package/dist/{index103.js → index102.js} +2 -3
  5. package/dist/index104.js +289 -0
  6. package/dist/{index107.js → index106.js} +8 -9
  7. package/dist/{index109.js → index108.js} +2 -3
  8. package/dist/index11.js +35 -75
  9. package/dist/{index111.js → index110.js} +2 -3
  10. package/dist/{index113.js → index112.js} +2 -3
  11. package/dist/{index115.js → index114.js} +2 -3
  12. package/dist/{index117.js → index116.js} +8 -9
  13. package/dist/{index119.js → index118.js} +1 -2
  14. package/dist/index12.js +189 -37
  15. package/dist/index120.js +42 -0
  16. package/dist/index121.js +38 -35
  17. package/dist/index122.js +38 -39
  18. package/dist/index123.js +42 -40
  19. package/dist/index124.js +31 -44
  20. package/dist/index125.js +2 -36
  21. package/dist/index126.js +21 -3
  22. package/dist/index127.js +2 -22
  23. package/dist/index128.js +312 -3
  24. package/dist/index129.js +21 -310
  25. package/dist/index13.js +78 -190
  26. package/dist/index130.js +2 -25
  27. package/dist/index131.js +5 -3
  28. package/dist/index132.js +9 -6
  29. package/dist/index133.js +5 -9
  30. package/dist/index134.js +3 -7
  31. package/dist/index135.js +1 -2
  32. package/dist/index136.js +1 -2
  33. package/dist/index137.js +1 -2
  34. package/dist/index138.js +1 -2
  35. package/dist/index139.js +1 -2
  36. package/dist/index140.js +1 -2
  37. package/dist/index141.js +1 -2
  38. package/dist/index142.js +1 -2
  39. package/dist/index143.js +1 -2
  40. package/dist/index144.js +1 -2
  41. package/dist/index145.js +1 -2
  42. package/dist/index146.js +1 -2
  43. package/dist/index147.js +1 -2
  44. package/dist/index148.js +1 -2
  45. package/dist/index149.js +1 -2
  46. package/dist/{index16.js → index15.js} +3 -4
  47. package/dist/index150.js +1 -2
  48. package/dist/index151.js +1 -2
  49. package/dist/index152.js +1 -2
  50. package/dist/index153.js +1 -2
  51. package/dist/index154.js +1 -2
  52. package/dist/index155.js +1 -2
  53. package/dist/index156.js +1 -2
  54. package/dist/index157.js +1 -2
  55. package/dist/index158.js +1 -2
  56. package/dist/index159.js +1 -2
  57. package/dist/index160.js +2 -3
  58. package/dist/{index161.js → index162.js} +0 -1
  59. package/dist/index164.js +5 -0
  60. package/dist/index165.js +1 -2
  61. package/dist/index166.js +1 -2
  62. package/dist/index167.js +1 -2
  63. package/dist/index168.js +1 -2
  64. package/dist/index169.js +1 -2
  65. package/dist/{index18.js → index17.js} +3 -4
  66. package/dist/index170.js +2 -3
  67. package/dist/index172.js +4 -0
  68. package/dist/index173.js +3 -3
  69. package/dist/index174.js +1 -2
  70. package/dist/index175.js +1 -2
  71. package/dist/index176.js +1 -2
  72. package/dist/index177.js +1 -2
  73. package/dist/index178.js +1 -2
  74. package/dist/index179.js +1 -2
  75. package/dist/index180.js +1 -2
  76. package/dist/index181.js +1 -2
  77. package/dist/index182.js +1 -2
  78. package/dist/index183.js +1 -2
  79. package/dist/index184.js +1 -2
  80. package/dist/{index185.js → index186.js} +0 -1
  81. package/dist/index188.js +5 -0
  82. package/dist/index189.js +1 -2
  83. package/dist/{index20.js → index19.js} +17 -19
  84. package/dist/index190.js +1 -2
  85. package/dist/index191.js +1 -2
  86. package/dist/index192.js +1 -2
  87. package/dist/index193.js +1 -2
  88. package/dist/index194.js +1 -2
  89. package/dist/index195.js +1 -2
  90. package/dist/index196.js +1 -2
  91. package/dist/index197.js +1 -2
  92. package/dist/index198.js +81 -4
  93. package/dist/index199.js +0 -1
  94. package/dist/index200.js +7 -81
  95. package/dist/index201.js +5 -45
  96. package/dist/index202.js +18 -0
  97. package/dist/index203.js +16 -14
  98. package/dist/index204.js +19 -4
  99. package/dist/index205.js +19 -4
  100. package/dist/index206.js +26 -35
  101. package/dist/index207.js +3 -7
  102. package/dist/index208.js +2 -8
  103. package/dist/index209.js +247 -7
  104. package/dist/{index22.js → index21.js} +20 -21
  105. package/dist/index210.js +49 -124
  106. package/dist/index211.js +44 -6
  107. package/dist/index212.js +5 -124
  108. package/dist/index213.js +49 -20
  109. package/dist/index214.js +3 -17
  110. package/dist/index215.js +3 -17
  111. package/dist/index216.js +35 -3
  112. package/dist/index217.js +6 -3
  113. package/dist/index218.js +7 -175
  114. package/dist/index219.js +2 -6
  115. package/dist/index220.js +4 -370
  116. package/dist/index221.js +43 -20
  117. package/dist/index223.js +13 -4
  118. package/dist/index224.js +154 -246
  119. package/dist/index225.js +77 -46
  120. package/dist/index227.js +126 -6
  121. package/dist/index228.js +123 -50
  122. package/dist/index229.js +2 -159
  123. package/dist/{index24.js → index23.js} +7 -8
  124. package/dist/index230.js +174 -85
  125. package/dist/index231.js +7 -0
  126. package/dist/index232.js +369 -3
  127. package/dist/index233.js +2 -5
  128. package/dist/index234.js +2 -3
  129. package/dist/index235.js +18 -3
  130. package/dist/index236.js +105 -18
  131. package/dist/{index239.js → index238.js} +2 -3
  132. package/dist/index240.js +4 -0
  133. package/dist/index241.js +10 -3
  134. package/dist/index242.js +2 -10
  135. package/dist/index243.js +281 -4
  136. package/dist/index244.js +6 -4
  137. package/dist/index245.js +2 -10
  138. package/dist/index246.js +2 -24
  139. package/dist/index247.js +2 -10
  140. package/dist/index248.js +2 -7
  141. package/dist/index249.js +2 -17
  142. package/dist/{index26.js → index25.js} +5 -6
  143. package/dist/index250.js +2 -225
  144. package/dist/index251.js +2 -4
  145. package/dist/index252.js +4 -0
  146. package/dist/index253.js +2 -8
  147. package/dist/index254.js +2 -432
  148. package/dist/index255.js +24 -86
  149. package/dist/index256.js +22 -282
  150. package/dist/index258.js +7 -3
  151. package/dist/index259.js +224 -3
  152. package/dist/index260.js +431 -3
  153. package/dist/index261.js +89 -3
  154. package/dist/index262.js +9 -3
  155. package/dist/index263.js +3 -127
  156. package/dist/index264.js +8 -22
  157. package/dist/index265.js +25 -0
  158. package/dist/index266.js +6 -201
  159. package/dist/index267.js +16 -3
  160. package/dist/index268.js +4 -3
  161. package/dist/index269.js +3 -3
  162. package/dist/{index28.js → index27.js} +2 -3
  163. package/dist/index270.js +12 -3
  164. package/dist/index271.js +9 -3
  165. package/dist/index272.js +9 -3
  166. package/dist/index273.js +14 -26
  167. package/dist/index274.js +199 -22
  168. package/dist/index275.js +5 -0
  169. package/dist/index277.js +2 -128
  170. package/dist/index278.js +126 -3
  171. package/dist/index279.js +20 -8
  172. package/dist/index281.js +435 -12
  173. package/dist/index282.js +125 -8
  174. package/dist/index283.js +3 -18
  175. package/dist/index284.js +2 -66
  176. package/dist/index285.js +211 -6
  177. package/dist/index286.js +5 -5
  178. package/dist/index287.js +65 -3
  179. package/dist/index288.js +15 -4
  180. package/dist/index289.js +2 -212
  181. package/dist/{index30.js → index29.js} +2 -3
  182. package/dist/index290.js +6 -15
  183. package/dist/index291.js +7 -80
  184. package/dist/index292.js +21 -0
  185. package/dist/index293.js +79 -5
  186. package/dist/index295.js +4 -60
  187. package/dist/index296.js +4 -36
  188. package/dist/index297.js +59 -3
  189. package/dist/index298.js +0 -1
  190. package/dist/index299.js +34 -7
  191. package/dist/index300.js +46 -7
  192. package/dist/index301.js +2 -20
  193. package/dist/index302.js +480 -48
  194. package/dist/index304.js +423 -0
  195. package/dist/index305.js +42 -417
  196. package/dist/index306.js +2 -48
  197. package/dist/{index32.js → index31.js} +3 -4
  198. package/dist/{index34.js → index33.js} +4 -5
  199. package/dist/{index36.js → index35.js} +21 -23
  200. package/dist/{index38.js → index37.js} +6 -7
  201. package/dist/{index40.js → index39.js} +2 -3
  202. package/dist/index4.js +16 -0
  203. package/dist/{index42.js → index41.js} +3 -4
  204. package/dist/{index44.js → index43.js} +10 -12
  205. package/dist/{index46.js → index45.js} +3 -4
  206. package/dist/{index48.js → index47.js} +2 -3
  207. package/dist/{index50.js → index49.js} +3 -4
  208. package/dist/index5.js +40 -15
  209. package/dist/{index52.js → index51.js} +2 -3
  210. package/dist/{index54.js → index53.js} +2 -3
  211. package/dist/{index56.js → index55.js} +2 -3
  212. package/dist/{index58.js → index57.js} +1 -2
  213. package/dist/{index60.js → index59.js} +7 -9
  214. package/dist/index6.js +76 -39
  215. package/dist/{index62.js → index61.js} +2 -3
  216. package/dist/{index64.js → index63.js} +2 -3
  217. package/dist/{index66.js → index65.js} +4 -5
  218. package/dist/{index68.js → index67.js} +2 -3
  219. package/dist/{index70.js → index69.js} +1 -2
  220. package/dist/index7.js +62 -79
  221. package/dist/{index72.js → index71.js} +7 -8
  222. package/dist/{index74.js → index73.js} +15 -17
  223. package/dist/{index76.js → index75.js} +4 -5
  224. package/dist/index77.js +46 -0
  225. package/dist/index78.js +120 -38
  226. package/dist/index8.js +18 -61
  227. package/dist/{index81.js → index80.js} +4 -5
  228. package/dist/{index83.js → index82.js} +4 -6
  229. package/dist/{index85.js → index84.js} +6 -7
  230. package/dist/{index87.js → index86.js} +1 -2
  231. package/dist/{index89.js → index88.js} +2 -3
  232. package/dist/index9.js +7 -20
  233. package/dist/{index91.js → index90.js} +2 -3
  234. package/dist/{index93.js → index92.js} +2 -3
  235. package/dist/{index95.js → index94.js} +0 -1
  236. package/dist/{index97.js → index96.js} +2 -3
  237. package/dist/{index99.js → index98.js} +2 -3
  238. package/dist/style.css +1 -1
  239. package/package.json +2 -2
  240. package/dist/index.js.map +0 -1
  241. package/dist/index10.js.map +0 -1
  242. package/dist/index101.js.map +0 -1
  243. package/dist/index103.js.map +0 -1
  244. package/dist/index105.js +0 -273
  245. package/dist/index105.js.map +0 -1
  246. package/dist/index107.js.map +0 -1
  247. package/dist/index109.js.map +0 -1
  248. package/dist/index11.js.map +0 -1
  249. package/dist/index111.js.map +0 -1
  250. package/dist/index113.js.map +0 -1
  251. package/dist/index115.js.map +0 -1
  252. package/dist/index117.js.map +0 -1
  253. package/dist/index119.js.map +0 -1
  254. package/dist/index12.js.map +0 -1
  255. package/dist/index121.js.map +0 -1
  256. package/dist/index122.js.map +0 -1
  257. package/dist/index123.js.map +0 -1
  258. package/dist/index124.js.map +0 -1
  259. package/dist/index125.js.map +0 -1
  260. package/dist/index126.js.map +0 -1
  261. package/dist/index127.js.map +0 -1
  262. package/dist/index128.js.map +0 -1
  263. package/dist/index129.js.map +0 -1
  264. package/dist/index13.js.map +0 -1
  265. package/dist/index130.js.map +0 -1
  266. package/dist/index131.js.map +0 -1
  267. package/dist/index132.js.map +0 -1
  268. package/dist/index133.js.map +0 -1
  269. package/dist/index134.js.map +0 -1
  270. package/dist/index135.js.map +0 -1
  271. package/dist/index136.js.map +0 -1
  272. package/dist/index137.js.map +0 -1
  273. package/dist/index138.js.map +0 -1
  274. package/dist/index139.js.map +0 -1
  275. package/dist/index14.js +0 -85
  276. package/dist/index14.js.map +0 -1
  277. package/dist/index140.js.map +0 -1
  278. package/dist/index141.js.map +0 -1
  279. package/dist/index142.js.map +0 -1
  280. package/dist/index143.js.map +0 -1
  281. package/dist/index144.js.map +0 -1
  282. package/dist/index145.js.map +0 -1
  283. package/dist/index146.js.map +0 -1
  284. package/dist/index147.js.map +0 -1
  285. package/dist/index148.js.map +0 -1
  286. package/dist/index149.js.map +0 -1
  287. package/dist/index150.js.map +0 -1
  288. package/dist/index151.js.map +0 -1
  289. package/dist/index152.js.map +0 -1
  290. package/dist/index153.js.map +0 -1
  291. package/dist/index154.js.map +0 -1
  292. package/dist/index155.js.map +0 -1
  293. package/dist/index156.js.map +0 -1
  294. package/dist/index157.js.map +0 -1
  295. package/dist/index158.js.map +0 -1
  296. package/dist/index159.js.map +0 -1
  297. package/dist/index16.js.map +0 -1
  298. package/dist/index160.js.map +0 -1
  299. package/dist/index161.js.map +0 -1
  300. package/dist/index163.js +0 -6
  301. package/dist/index163.js.map +0 -1
  302. package/dist/index165.js.map +0 -1
  303. package/dist/index166.js.map +0 -1
  304. package/dist/index167.js.map +0 -1
  305. package/dist/index168.js.map +0 -1
  306. package/dist/index169.js.map +0 -1
  307. package/dist/index170.js.map +0 -1
  308. package/dist/index171.js +0 -6
  309. package/dist/index171.js.map +0 -1
  310. package/dist/index173.js.map +0 -1
  311. package/dist/index174.js.map +0 -1
  312. package/dist/index175.js.map +0 -1
  313. package/dist/index176.js.map +0 -1
  314. package/dist/index177.js.map +0 -1
  315. package/dist/index178.js.map +0 -1
  316. package/dist/index179.js.map +0 -1
  317. package/dist/index18.js.map +0 -1
  318. package/dist/index180.js.map +0 -1
  319. package/dist/index181.js.map +0 -1
  320. package/dist/index182.js.map +0 -1
  321. package/dist/index183.js.map +0 -1
  322. package/dist/index184.js.map +0 -1
  323. package/dist/index185.js.map +0 -1
  324. package/dist/index187.js +0 -6
  325. package/dist/index187.js.map +0 -1
  326. package/dist/index189.js.map +0 -1
  327. package/dist/index190.js.map +0 -1
  328. package/dist/index191.js.map +0 -1
  329. package/dist/index192.js.map +0 -1
  330. package/dist/index193.js.map +0 -1
  331. package/dist/index194.js.map +0 -1
  332. package/dist/index195.js.map +0 -1
  333. package/dist/index196.js.map +0 -1
  334. package/dist/index197.js.map +0 -1
  335. package/dist/index198.js.map +0 -1
  336. package/dist/index199.js.map +0 -1
  337. package/dist/index20.js.map +0 -1
  338. package/dist/index200.js.map +0 -1
  339. package/dist/index201.js.map +0 -1
  340. package/dist/index203.js.map +0 -1
  341. package/dist/index204.js.map +0 -1
  342. package/dist/index205.js.map +0 -1
  343. package/dist/index206.js.map +0 -1
  344. package/dist/index207.js.map +0 -1
  345. package/dist/index208.js.map +0 -1
  346. package/dist/index209.js.map +0 -1
  347. package/dist/index210.js.map +0 -1
  348. package/dist/index211.js.map +0 -1
  349. package/dist/index212.js.map +0 -1
  350. package/dist/index213.js.map +0 -1
  351. package/dist/index214.js.map +0 -1
  352. package/dist/index215.js.map +0 -1
  353. package/dist/index216.js.map +0 -1
  354. package/dist/index217.js.map +0 -1
  355. package/dist/index218.js.map +0 -1
  356. package/dist/index219.js.map +0 -1
  357. package/dist/index22.js.map +0 -1
  358. package/dist/index220.js.map +0 -1
  359. package/dist/index221.js.map +0 -1
  360. package/dist/index222.js +0 -30
  361. package/dist/index222.js.map +0 -1
  362. package/dist/index223.js.map +0 -1
  363. package/dist/index224.js.map +0 -1
  364. package/dist/index225.js.map +0 -1
  365. package/dist/index226.js +0 -47
  366. package/dist/index226.js.map +0 -1
  367. package/dist/index227.js.map +0 -1
  368. package/dist/index228.js.map +0 -1
  369. package/dist/index229.js.map +0 -1
  370. package/dist/index230.js.map +0 -1
  371. package/dist/index232.js.map +0 -1
  372. package/dist/index233.js.map +0 -1
  373. package/dist/index234.js.map +0 -1
  374. package/dist/index235.js.map +0 -1
  375. package/dist/index236.js.map +0 -1
  376. package/dist/index237.js +0 -109
  377. package/dist/index237.js.map +0 -1
  378. package/dist/index239.js.map +0 -1
  379. package/dist/index24.js.map +0 -1
  380. package/dist/index241.js.map +0 -1
  381. package/dist/index242.js.map +0 -1
  382. package/dist/index243.js.map +0 -1
  383. package/dist/index244.js.map +0 -1
  384. package/dist/index245.js.map +0 -1
  385. package/dist/index246.js.map +0 -1
  386. package/dist/index247.js.map +0 -1
  387. package/dist/index248.js.map +0 -1
  388. package/dist/index249.js.map +0 -1
  389. package/dist/index250.js.map +0 -1
  390. package/dist/index251.js.map +0 -1
  391. package/dist/index253.js.map +0 -1
  392. package/dist/index254.js.map +0 -1
  393. package/dist/index255.js.map +0 -1
  394. package/dist/index256.js.map +0 -1
  395. package/dist/index257.js +0 -9
  396. package/dist/index257.js.map +0 -1
  397. package/dist/index258.js.map +0 -1
  398. package/dist/index259.js.map +0 -1
  399. package/dist/index26.js.map +0 -1
  400. package/dist/index260.js.map +0 -1
  401. package/dist/index261.js.map +0 -1
  402. package/dist/index262.js.map +0 -1
  403. package/dist/index263.js.map +0 -1
  404. package/dist/index264.js.map +0 -1
  405. package/dist/index266.js.map +0 -1
  406. package/dist/index267.js.map +0 -1
  407. package/dist/index268.js.map +0 -1
  408. package/dist/index269.js.map +0 -1
  409. package/dist/index270.js.map +0 -1
  410. package/dist/index271.js.map +0 -1
  411. package/dist/index272.js.map +0 -1
  412. package/dist/index273.js.map +0 -1
  413. package/dist/index274.js.map +0 -1
  414. package/dist/index276.js +0 -439
  415. package/dist/index276.js.map +0 -1
  416. package/dist/index277.js.map +0 -1
  417. package/dist/index278.js.map +0 -1
  418. package/dist/index279.js.map +0 -1
  419. package/dist/index28.js.map +0 -1
  420. package/dist/index280.js +0 -6
  421. package/dist/index280.js.map +0 -1
  422. package/dist/index281.js.map +0 -1
  423. package/dist/index282.js.map +0 -1
  424. package/dist/index283.js.map +0 -1
  425. package/dist/index284.js.map +0 -1
  426. package/dist/index285.js.map +0 -1
  427. package/dist/index286.js.map +0 -1
  428. package/dist/index287.js.map +0 -1
  429. package/dist/index288.js.map +0 -1
  430. package/dist/index289.js.map +0 -1
  431. package/dist/index290.js.map +0 -1
  432. package/dist/index291.js.map +0 -1
  433. package/dist/index293.js.map +0 -1
  434. package/dist/index294.js +0 -7
  435. package/dist/index294.js.map +0 -1
  436. package/dist/index295.js.map +0 -1
  437. package/dist/index296.js.map +0 -1
  438. package/dist/index297.js.map +0 -1
  439. package/dist/index298.js.map +0 -1
  440. package/dist/index299.js.map +0 -1
  441. package/dist/index30.js.map +0 -1
  442. package/dist/index300.js.map +0 -1
  443. package/dist/index301.js.map +0 -1
  444. package/dist/index302.js.map +0 -1
  445. package/dist/index303.js +0 -483
  446. package/dist/index303.js.map +0 -1
  447. package/dist/index305.js.map +0 -1
  448. package/dist/index306.js.map +0 -1
  449. package/dist/index307.js +0 -5
  450. package/dist/index307.js.map +0 -1
  451. package/dist/index32.js.map +0 -1
  452. package/dist/index34.js.map +0 -1
  453. package/dist/index36.js.map +0 -1
  454. package/dist/index38.js.map +0 -1
  455. package/dist/index40.js.map +0 -1
  456. package/dist/index42.js.map +0 -1
  457. package/dist/index44.js.map +0 -1
  458. package/dist/index46.js.map +0 -1
  459. package/dist/index48.js.map +0 -1
  460. package/dist/index5.js.map +0 -1
  461. package/dist/index50.js.map +0 -1
  462. package/dist/index52.js.map +0 -1
  463. package/dist/index54.js.map +0 -1
  464. package/dist/index56.js.map +0 -1
  465. package/dist/index58.js.map +0 -1
  466. package/dist/index6.js.map +0 -1
  467. package/dist/index60.js.map +0 -1
  468. package/dist/index62.js.map +0 -1
  469. package/dist/index64.js.map +0 -1
  470. package/dist/index66.js.map +0 -1
  471. package/dist/index68.js.map +0 -1
  472. package/dist/index7.js.map +0 -1
  473. package/dist/index70.js.map +0 -1
  474. package/dist/index72.js.map +0 -1
  475. package/dist/index74.js.map +0 -1
  476. package/dist/index76.js.map +0 -1
  477. package/dist/index78.js.map +0 -1
  478. package/dist/index79.js +0 -130
  479. package/dist/index79.js.map +0 -1
  480. package/dist/index8.js.map +0 -1
  481. package/dist/index81.js.map +0 -1
  482. package/dist/index83.js.map +0 -1
  483. package/dist/index85.js.map +0 -1
  484. package/dist/index87.js.map +0 -1
  485. package/dist/index89.js.map +0 -1
  486. package/dist/index9.js.map +0 -1
  487. package/dist/index91.js.map +0 -1
  488. package/dist/index93.js.map +0 -1
  489. package/dist/index95.js.map +0 -1
  490. package/dist/index97.js.map +0 -1
  491. package/dist/index99.js.map +0 -1
package/dist/index105.js DELETED
@@ -1,273 +0,0 @@
1
- import { defineComponent as X, ref as v, computed as p, getCurrentInstance as Y, watch as g, nextTick as Z, openBlock as d, createElementBlock as f, unref as ee, normalizeClass as q, createElementVNode as c, renderSlot as y, normalizeProps as U, guardReactiveProps as z, Fragment as K, renderList as H, createVNode as J, withCtx as S, toDisplayString as le, createBlock as te, Transition as ae, createCommentVNode as se } from "vue";
2
- import { useId as ie } from "./index9.js";
3
- import { useRoute as re } from "./index133.js";
4
- import { useRouter as ne } from "./index134.js";
5
- import { wait as oe } from "./index128.js";
6
- import { useScroll as ue } from "./index129.js";
7
- import de from "./index14.js";
8
- /* empty css */
9
- import ce from "./index124.js";
10
- /* empty css */
11
- const be = ["id"], fe = { class: "bb-tab__label-boundary" }, ye = { class: "bb-tab__label" }, me = { class: "bb-tab__panes-container" }, he = ["id", "aria-labelledby"], xe = /* @__PURE__ */ X({
12
- __name: "BbTab",
13
- props: {
14
- disabled: { type: Boolean },
15
- eager: { type: Boolean },
16
- id: {},
17
- animate: { type: Boolean, default: !0 },
18
- direction: { default: "horizontal" },
19
- items: {},
20
- modelValue: {},
21
- navigation: { type: Boolean },
22
- querykey: { default: "tab" },
23
- replace: { type: Boolean }
24
- },
25
- emits: ["update:modelValue"],
26
- setup(O, { expose: j, emit: G }) {
27
- var C, R, E, P, F, N, A;
28
- const l = O, M = G, u = re(), _ = ne(), w = v(), T = l.id ?? ie().id.value, m = `bb-tab_${T}`, x = v(), { isScrolling: Q, arrivedState: I } = ue(x), V = p(() => ({
29
- isScrolling: Q.value,
30
- left: I.left,
31
- right: I.right
32
- })), L = !!((R = (C = Y()) == null ? void 0 : C.proxy) != null && R.$inertia), s = v(null), n = p(
33
- () => l.items.findIndex((e) => e.key === s.value)
34
- ), h = p(() => n.value === 0), k = p(() => n.value === l.items.length - 1);
35
- if (l.items.forEach((e) => {
36
- if (!e.key)
37
- throw console.error("A tab item has no key", e), new Error("A tab item has no key " + JSON.stringify(e));
38
- }), l.navigation && ((P = (E = u.value) == null ? void 0 : E.query) != null && P[l.querykey]))
39
- s.value = (N = (F = u.value) == null ? void 0 : F.query) == null ? void 0 : N[l.querykey];
40
- else if (l.navigation && L && ((A = globalThis == null ? void 0 : globalThis.location) != null && A.href) && new URL(globalThis.location.href).searchParams.get(l.querykey))
41
- s.value = new URL(globalThis.location.href).searchParams.get(
42
- l.querykey
43
- );
44
- else if (l.modelValue)
45
- s.value = l.modelValue;
46
- else if (l.items[0]) {
47
- const e = l.items.find((t) => !t.disabled);
48
- if (!e)
49
- throw new Error(
50
- "No tab has been selected so it defaulted to the first available. Still, all the tabs are disabled so no tab can be selected."
51
- );
52
- const a = e.key;
53
- s.value = a;
54
- }
55
- const b = async (e, a = !1) => {
56
- var t, r, i, D;
57
- if (l.navigation && u.value && ((r = (t = u.value) == null ? void 0 : t.query) == null ? void 0 : r[l.querykey]) !== e)
58
- _ == null || _.push({
59
- ...u,
60
- query: { ...(i = u.value) == null ? void 0 : i.query, [l.querykey]: e },
61
- replace: a
62
- });
63
- else if (l.navigation && L && ((D = globalThis == null ? void 0 : globalThis.location) != null && D.href) && new URL(globalThis.location.href).searchParams.get(l.querykey) !== e) {
64
- const $ = new URL(globalThis.location.href);
65
- $.searchParams.set(l.querykey, e), oe(0).then(() => {
66
- a ? history.replaceState({}, "", $.toString()) : history.pushState({}, "", $.toString());
67
- });
68
- }
69
- l.modelValue !== e && M("update:modelValue", e), s.value = e;
70
- };
71
- s.value && b(s.value, !0);
72
- const o = (e) => {
73
- var a = null;
74
- switch (e) {
75
- case "first":
76
- for (a = 0; a < l.items.length - 1 && l.items[a].disabled; )
77
- a++;
78
- break;
79
- case "previous": {
80
- let i = 1;
81
- for (; i < l.items.length && (a = (n.value + l.items.length - i) % l.items.length, l.items[a].disabled); )
82
- i++;
83
- break;
84
- }
85
- case "next": {
86
- let i = 1;
87
- for (; i < l.items.length && (a = (n.value + i) % l.items.length, l.items[a].disabled); )
88
- i++;
89
- break;
90
- }
91
- case "last":
92
- for (a = l.items.length - 1; a >= 0 && l.items[a].disabled; )
93
- a--;
94
- break;
95
- }
96
- if (a === null)
97
- throw new Error("Could not navigate to next tab");
98
- if (l.items[a].disabled) return;
99
- const t = l.items[a].key, r = document.querySelector(
100
- `#${m}_tab_${t}`
101
- );
102
- r == null || r.focus(), b(t, l.replace);
103
- }, W = (e) => {
104
- if (!l.disabled)
105
- if (e.key === "ArrowRight")
106
- o("next");
107
- else if (e.key === "ArrowLeft")
108
- o("previous");
109
- else if (e.key === "Home")
110
- e.preventDefault(), o("first");
111
- else if (e.key === "End")
112
- e.preventDefault(), o("last");
113
- else
114
- return;
115
- };
116
- g(
117
- () => l.modelValue,
118
- (e) => {
119
- e && b(e, l.replace);
120
- }
121
- ), g(
122
- () => {
123
- var e, a;
124
- return (a = (e = u.value) == null ? void 0 : e.query) == null ? void 0 : a[l.querykey];
125
- },
126
- (e) => {
127
- e && typeof e == "string" && b(e, l.replace);
128
- }
129
- ), g(
130
- s,
131
- async () => {
132
- if (w.value) {
133
- const e = w.value.querySelector(
134
- "[role=tablist] .bb-tab__btn--active"
135
- );
136
- e && (await Z(), e.scrollIntoView({
137
- behavior: "smooth",
138
- block: "nearest",
139
- inline: "nearest"
140
- }));
141
- }
142
- },
143
- { flush: "post" }
144
- );
145
- const B = v("right");
146
- return g(
147
- s,
148
- (e, a) => {
149
- if (e && a) {
150
- const t = l.items.findIndex((i) => i.key === e), r = l.items.findIndex((i) => i.key === a);
151
- B.value = t > r ? "right" : "left";
152
- }
153
- },
154
- { flush: "sync" }
155
- ), j({
156
- isFirst: h,
157
- isLast: k,
158
- current: s,
159
- currentIndex: n,
160
- goTo: o
161
- }), (e, a) => (d(), f("div", {
162
- id: ee(T),
163
- ref_key: "tabs",
164
- ref: w,
165
- class: q(["bb-tab", {
166
- [`bb-tab--${e.direction}`]: !0,
167
- "bb-tab--disabled": !0
168
- }])
169
- }, [
170
- c("div", fe, [
171
- c("span", null, [
172
- y(e.$slots, "header:prepend", U(z(V.value)))
173
- ]),
174
- c("ul", {
175
- ref_key: "tablist",
176
- ref: x,
177
- class: "bb-tab__label-container",
178
- role: "tablist"
179
- }, [
180
- (d(!0), f(K, null, H(e.items, (t) => (d(), f("li", {
181
- key: t.key,
182
- role: "presentation"
183
- }, [
184
- J(de, {
185
- id: `${m}_tab_${t.key}`,
186
- "aria-selected": s.value === t.key,
187
- class: q(["bb-tab__btn", { "bb-tab__btn--active": s.value === t.key }]),
188
- disabled: t.disabled || e.disabled,
189
- role: "tab",
190
- tabindex: s.value === t.key ? 0 : -1,
191
- onClick: (r) => b(t.key, l.replace),
192
- onKeydown: W
193
- }, {
194
- default: S(() => [
195
- y(e.$slots, `label-${t.key}`, {
196
- current: s.value,
197
- currentIndex: n.value,
198
- disabled: !!(t.disabled || e.disabled),
199
- goTo: o,
200
- isFirst: h.value,
201
- isLast: k.value,
202
- selected: s.value === t.key,
203
- text: t.label,
204
- value: t.key
205
- }, () => [
206
- y(e.$slots, "label", {
207
- current: s.value,
208
- currentIndex: n.value,
209
- disabled: !!(t.disabled || e.disabled),
210
- goTo: o,
211
- isFirst: h.value,
212
- isLast: k.value,
213
- selected: s.value === t.key,
214
- text: t.label,
215
- value: t.key
216
- }, () => [
217
- c("span", ye, le(t.label), 1)
218
- ])
219
- ])
220
- ]),
221
- _: 2
222
- }, 1032, ["id", "aria-selected", "class", "disabled", "tabindex", "onClick"])
223
- ]))), 128))
224
- ], 512),
225
- c("span", null, [
226
- y(e.$slots, "header:append", U(z(V.value)))
227
- ])
228
- ]),
229
- c("div", me, [
230
- J(ce, null, {
231
- default: S(() => [
232
- (d(!0), f(K, null, H(e.items, (t) => (d(), te(ae, {
233
- key: t.key,
234
- css: e.animate,
235
- name: `tab-slide-${B.value}`
236
- }, {
237
- default: S(() => [
238
- s.value === t.key || e.eager || t.eager ? (d(), f("section", {
239
- key: 0,
240
- id: `${m}_tabpanel_${t.key}`,
241
- "aria-labelledby": `${m}_tab_${t.key}`,
242
- class: q(["bb-tab__pane", {
243
- "bb-tab__pane--shown": s.value === t.key
244
- }]),
245
- role: "tabpanel",
246
- tabindex: "0"
247
- }, [
248
- y(e.$slots, t.key, {
249
- current: s.value,
250
- currentIndex: n.value,
251
- disabled: !!(t.disabled || e.disabled),
252
- goTo: o,
253
- isFirst: h.value,
254
- isLast: k.value,
255
- selected: s.value === t.key,
256
- text: t.label,
257
- value: t.key
258
- })
259
- ], 10, he)) : se("", !0)
260
- ]),
261
- _: 2
262
- }, 1032, ["css", "name"]))), 128))
263
- ]),
264
- _: 3
265
- })
266
- ])
267
- ], 10, be));
268
- }
269
- });
270
- export {
271
- xe as default
272
- };
273
- //# sourceMappingURL=index105.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index105.js","sources":["../src/components/BbTab/BbTab.vue"],"sourcesContent":["<template>\n\t<div\n\t\t:id=\"id\"\n\t\tref=\"tabs\"\n\t\tclass=\"bb-tab\"\n\t\t:class=\"{\n\t\t\t[`bb-tab--${direction}`]: true,\n\t\t\t'bb-tab--disabled': true,\n\t\t}\"\n\t>\n\t\t<div class=\"bb-tab__label-boundary\">\n\t\t\t<span><slot name=\"header:prepend\" v-bind=\"scrollStatus\"></slot></span>\n\t\t\t<ul ref=\"tablist\" class=\"bb-tab__label-container\" role=\"tablist\">\n\t\t\t\t<li v-for=\"tab in items\" :key=\"tab.key\" role=\"presentation\">\n\t\t\t\t\t<BaseButton\n\t\t\t\t\t\t:id=\"`${instanceid}_tab_${tab.key}`\"\n\t\t\t\t\t\t:aria-selected=\"selectedTab === tab.key\"\n\t\t\t\t\t\tclass=\"bb-tab__btn\"\n\t\t\t\t\t\t:class=\"{ 'bb-tab__btn--active': selectedTab === tab.key }\"\n\t\t\t\t\t\t:disabled=\"tab.disabled || disabled\"\n\t\t\t\t\t\t:role=\"'tab'\"\n\t\t\t\t\t\t:tabindex=\"selectedTab === tab.key ? 0 : -1\"\n\t\t\t\t\t\t@click=\"onTabSelected(tab.key, props.replace)\"\n\t\t\t\t\t\t@keydown=\"onKeydown\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<slot\n\t\t\t\t\t\t\t:current=\"selectedTab\"\n\t\t\t\t\t\t\t:current-index=\"currentTabIndex\"\n\t\t\t\t\t\t\t:disabled=\"!!(tab.disabled || disabled)\"\n\t\t\t\t\t\t\t:go-to=\"goTo\"\n\t\t\t\t\t\t\t:is-first=\"isFirst\"\n\t\t\t\t\t\t\t:is-last=\"isLast\"\n\t\t\t\t\t\t\t:name=\"`label-${tab.key}`\"\n\t\t\t\t\t\t\t:selected=\"selectedTab === tab.key\"\n\t\t\t\t\t\t\t:text=\"tab.label\"\n\t\t\t\t\t\t\t:value=\"tab.key\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<slot\n\t\t\t\t\t\t\t\t:current=\"selectedTab\"\n\t\t\t\t\t\t\t\t:current-index=\"currentTabIndex\"\n\t\t\t\t\t\t\t\t:disabled=\"!!(tab.disabled || disabled)\"\n\t\t\t\t\t\t\t\t:go-to=\"goTo\"\n\t\t\t\t\t\t\t\t:is-first=\"isFirst\"\n\t\t\t\t\t\t\t\t:is-last=\"isLast\"\n\t\t\t\t\t\t\t\tname=\"label\"\n\t\t\t\t\t\t\t\t:selected=\"selectedTab === tab.key\"\n\t\t\t\t\t\t\t\t:text=\"tab.label\"\n\t\t\t\t\t\t\t\t:value=\"tab.key\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<span class=\"bb-tab__label\">{{ tab.label }}</span>\n\t\t\t\t\t\t\t</slot>\n\t\t\t\t\t\t</slot>\n\t\t\t\t\t</BaseButton>\n\t\t\t\t</li>\n\t\t\t</ul>\n\t\t\t<span><slot name=\"header:append\" v-bind=\"scrollStatus\"></slot></span>\n\t\t</div>\n\t\t<div class=\"bb-tab__panes-container\">\n\t\t\t<BbSmoothHeight>\n\t\t\t\t<template v-for=\"tab in items\" :key=\"tab.key\">\n\t\t\t\t\t<Transition :css=\"animate\" :name=\"`tab-slide-${animationDirection}`\">\n\t\t\t\t\t\t<section\n\t\t\t\t\t\t\tv-if=\"selectedTab === tab.key || eager || tab.eager\"\n\t\t\t\t\t\t\t:id=\"`${instanceid}_tabpanel_${tab.key}`\"\n\t\t\t\t\t\t\t:aria-labelledby=\"`${instanceid}_tab_${tab.key}`\"\n\t\t\t\t\t\t\tclass=\"bb-tab__pane\"\n\t\t\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t\t\t'bb-tab__pane--shown': selectedTab === tab.key,\n\t\t\t\t\t\t\t}\"\n\t\t\t\t\t\t\trole=\"tabpanel\"\n\t\t\t\t\t\t\ttabindex=\"0\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<slot\n\t\t\t\t\t\t\t\t:current=\"selectedTab\"\n\t\t\t\t\t\t\t\t:current-index=\"currentTabIndex\"\n\t\t\t\t\t\t\t\t:disabled=\"!!(tab.disabled || disabled)\"\n\t\t\t\t\t\t\t\t:go-to=\"goTo\"\n\t\t\t\t\t\t\t\t:is-first=\"isFirst\"\n\t\t\t\t\t\t\t\t:is-last=\"isLast\"\n\t\t\t\t\t\t\t\t:name=\"tab.key\"\n\t\t\t\t\t\t\t\t:selected=\"selectedTab === tab.key\"\n\t\t\t\t\t\t\t\t:text=\"tab.label\"\n\t\t\t\t\t\t\t\t:value=\"tab.key\"\n\t\t\t\t\t\t\t></slot>\n\t\t\t\t\t\t</section>\n\t\t\t\t\t</Transition>\n\t\t\t\t</template>\n\t\t\t</BbSmoothHeight>\n\t\t</div>\n\t</div>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, watch, getCurrentInstance, computed, nextTick } from 'vue';\nimport { useId } from '@/composables/useId';\nimport { useRoute } from '@/composables/useRoute';\nimport { useRouter } from '@/composables/useRouter';\nimport { wait } from '@/utilities/functions/wait';\nimport { useScroll } from '@vueuse/core';\nimport BaseButton from '../BaseButton/BaseButton.vue';\nimport type { CommonProps } from '@/types/CommonProps';\nimport BbSmoothHeight from '../BbSmoothHeight/BbSmoothHeight.vue';\n\nexport type BbTabItem = Pick<CommonProps, 'disabled'> & {\n\t/**\n\t * Used to render a tab even when not visible.\n\t * It's useful if you want the content of a tab in the DOM\n\t * immediately rendered\n\t * even when not visible for SEO purposes.\n\t */\n\teager?: boolean;\n\t/**\n\t * String that identifies the tab.\n\t */\n\tkey: string;\n\t/**\n\t * Label to use as the tab text.\n\t */\n\tlabel?: string;\n};\n\nexport type BbTabProps = Pick<CommonProps, 'disabled' | 'eager' | 'id'> & {\n\t/**\n\t * Enables transitions\n\t */\n\tanimate?: boolean;\n\t/**\n\t * Direction of the tabs component\n\t */\n\tdirection?: 'horizontal' | 'vertical';\n\t/**\n\t * Array of items that define the tabs in the component.\n\t */\n\titems: BbTabItem[];\n\t/**\n\t * The current tab. Used by v-model.\n\t */\n\tmodelValue?: null | BbTabItem['key'];\n\t/**\n\t * Synchronizes the current tab with the url.\n\t */\n\tnavigation?: boolean;\n\t/**\n\t * Defines the query key to reference for maintaining navigation\n\t */\n\tquerykey?: string;\n\n\t/**\n\t * Replaces history rather than pushing it when changing tab.\n\t */\n\treplace?: boolean;\n};\n\nconst props = withDefaults(defineProps<BbTabProps>(), {\n\tanimate: true,\n\tdirection: 'horizontal',\n\tquerykey: 'tab',\n});\n\nexport type BbTabEvents = {\n\t(e: 'update:modelValue', value: (typeof props.items)[number]['key']): void;\n};\nconst emit = defineEmits<BbTabEvents>();\n\ntype BbStepSlots = {\n\t'header:prepend'?: (props: {\n\t\tisScrolling: boolean;\n\t\tleft: boolean;\n\t\tright: boolean;\n\t}) => any;\n\t'header:append'?: (props: {\n\t\tisScrolling: boolean;\n\t\tleft: boolean;\n\t\tright: boolean;\n\t}) => any;\n\tlabel?: (props: {\n\t\tcurrent: string | null;\n\t\tcurrentIndex: number;\n\t\tdisabled: boolean;\n\t\tisFirst: boolean;\n\t\tisLast: boolean;\n\t\tselected: boolean;\n\t\ttext: BbTabItem['label'];\n\t\tvalue: string;\n\t\tgoTo: typeof goTo;\n\t}) => any;\n} & {\n\t[key: string]: (props: {\n\t\tcurrent: string | null;\n\t\tcurrentIndex: number;\n\t\tdisabled: boolean;\n\t\tisFirst: boolean;\n\t\tisLast: boolean;\n\t\tselected: boolean;\n\t\ttext: BbTabItem['label'];\n\t\tvalue: string;\n\t\tgoTo: typeof goTo;\n\t}) => any;\n};\n\ndefineSlots<BbStepSlots>();\n\nconst route = useRoute();\nconst router = useRouter();\n\nconst tabs = ref();\n\nconst id = props.id ?? useId().id.value;\nconst instanceid = `bb-tab_${id}`;\n\nconst tablist = ref();\nconst { isScrolling, arrivedState } = useScroll(tablist);\nconst scrollStatus = computed(() => ({\n\tisScrolling: isScrolling.value,\n\tleft: arrivedState.left,\n\tright: arrivedState.right,\n}));\n\n/* Ignore because possibly undefined */\n// @ts-expect-error possibly undef\nconst isInertia = !!getCurrentInstance()?.proxy?.$inertia;\n\nconst selectedTab = ref<BbTabItem['key'] | null>(null);\n\nconst currentTabIndex = computed(() =>\n\tprops.items.findIndex((el) => el.key === selectedTab.value)\n);\nconst isFirst = computed(() => currentTabIndex.value === 0);\nconst isLast = computed(() => currentTabIndex.value === props.items.length - 1);\n\nprops.items.forEach((item) => {\n\tif (!item.key) {\n\t\tconsole.error(`A tab item has no key`, item);\n\t\tthrow new Error('A tab item has no key ' + JSON.stringify(item));\n\t}\n});\n\n/* \nThis section retrieves the current tab that should be selected\n*/\n// Retrieve tab from url on load for vue apps\nif (props.navigation && route.value?.query?.[props.querykey]) {\n\tselectedTab.value = route.value?.query?.[props.querykey] as string;\n\t// Retrieve tab from url on load for inertia app\n} else if (\n\tprops.navigation &&\n\tisInertia &&\n\tglobalThis?.location?.href &&\n\tnew URL(globalThis.location.href).searchParams.get(props.querykey)\n) {\n\tselectedTab.value = new URL(globalThis.location.href).searchParams.get(\n\t\tprops.querykey\n\t) as string;\n\t// Else whatever tab is passed first\n} else if (props.modelValue) {\n\tselectedTab.value = props.modelValue;\n\t// Else whatever tab is passed first\n} else if (props.items[0]) {\n\tconst firstSelectableTab = props.items.find((item) => !item.disabled);\n\tif (!firstSelectableTab) {\n\t\tthrow new Error(\n\t\t\t'No tab has been selected so it defaulted to the first available. Still, all the tabs are disabled so no tab can be selected.'\n\t\t);\n\t}\n\tconst key = firstSelectableTab.key;\n\tselectedTab.value = key;\n}\n/* \nOnce the current tab is found update external variables\n*/\n\nconst onTabSelected = async (tab: BbTabItem['key'], replace = false) => {\n\t/* For Vue or Nuxt context */\n\tif (\n\t\tprops.navigation &&\n\t\troute.value &&\n\t\troute.value?.query?.[props.querykey] !== tab\n\t) {\n\t\trouter?.push({\n\t\t\t...route,\n\t\t\tquery: { ...route.value?.query, [props.querykey]: tab },\n\t\t\treplace,\n\t\t});\n\t\t/* Inertia context */\n\t} else if (\n\t\tprops.navigation &&\n\t\tisInertia &&\n\t\tglobalThis?.location?.href &&\n\t\tnew URL(globalThis.location.href).searchParams.get(props.querykey) !== tab\n\t) {\n\t\tconst url = new URL(globalThis.location.href);\n\t\turl.searchParams.set(props.querykey, tab);\n\t\twait(0).then(() => {\n\t\t\tif (replace) {\n\t\t\t\thistory.replaceState({}, '', url.toString());\n\t\t\t} else {\n\t\t\t\thistory.pushState({}, '', url.toString());\n\t\t\t}\n\t\t});\n\t}\n\tif (props.modelValue !== tab) {\n\t\temit('update:modelValue', tab);\n\t}\n\tselectedTab.value = tab;\n};\n\nif (selectedTab.value) {\n\tonTabSelected(selectedTab.value, true);\n}\n\nconst goTo = (target: 'first' | 'previous' | 'next' | 'last') => {\n\tvar nextTabIndex: number | null = null;\n\tswitch (target) {\n\t\tcase 'first':\n\t\t\tnextTabIndex = 0;\n\t\t\twhile (nextTabIndex < props.items.length - 1) {\n\t\t\t\tif (props.items[nextTabIndex].disabled) {\n\t\t\t\t\tnextTabIndex++;\n\t\t\t\t} else break;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'previous': {\n\t\t\tlet offset = 1;\n\t\t\twhile (offset < props.items.length) {\n\t\t\t\tnextTabIndex =\n\t\t\t\t\t(currentTabIndex.value + props.items.length - offset) %\n\t\t\t\t\tprops.items.length;\n\t\t\t\tif (props.items[nextTabIndex].disabled) {\n\t\t\t\t\toffset++;\n\t\t\t\t} else break;\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\t\tcase 'next': {\n\t\t\tlet offset = 1;\n\t\t\twhile (offset < props.items.length) {\n\t\t\t\tnextTabIndex = (currentTabIndex.value + offset) % props.items.length;\n\t\t\t\tif (props.items[nextTabIndex].disabled) {\n\t\t\t\t\toffset++;\n\t\t\t\t} else break;\n\t\t\t}\n\t\t\tbreak;\n\t\t}\n\n\t\tcase 'last':\n\t\t\tnextTabIndex = props.items.length - 1;\n\t\t\twhile (nextTabIndex >= 0) {\n\t\t\t\tif (props.items[nextTabIndex].disabled) {\n\t\t\t\t\tnextTabIndex--;\n\t\t\t\t} else break;\n\t\t\t}\n\t\t\tbreak;\n\t\tdefault:\n\t\t\tbreak;\n\t}\n\tif (nextTabIndex === null) {\n\t\tthrow new Error('Could not navigate to next tab');\n\t}\n\tif (props.items[nextTabIndex].disabled) return;\n\tconst targetKey = props.items[nextTabIndex].key;\n\tconst button: HTMLButtonElement | null = document.querySelector(\n\t\t`#${instanceid}_tab_${targetKey}`\n\t);\n\tbutton?.focus();\n\tonTabSelected(targetKey, props.replace);\n};\n\nconst onKeydown = (event: KeyboardEvent) => {\n\tif (props.disabled) return;\n\tif (event.key === 'ArrowRight') {\n\t\tgoTo('next');\n\t} else if (event.key === 'ArrowLeft') {\n\t\tgoTo('previous');\n\t} else if (event.key === 'Home') {\n\t\tevent.preventDefault();\n\t\tgoTo('first');\n\t} else if (event.key === 'End') {\n\t\tevent.preventDefault();\n\t\tgoTo('last');\n\t} else {\n\t\treturn;\n\t}\n};\n\nwatch(\n\t() => props.modelValue,\n\t(value) => {\n\t\tif (value) {\n\t\t\tonTabSelected(value, props.replace);\n\t\t}\n\t}\n);\n\nwatch(\n\t() => route.value?.query?.[props.querykey],\n\t(value) => {\n\t\tif (value && typeof value === 'string') {\n\t\t\tonTabSelected(value, props.replace);\n\t\t}\n\t}\n);\n\nwatch(\n\tselectedTab,\n\tasync () => {\n\t\tif (tabs.value) {\n\t\t\tconst element = tabs.value.querySelector(\n\t\t\t\t`[role=tablist] .bb-tab__btn--active`\n\t\t\t);\n\t\t\tif (element) {\n\t\t\t\tawait nextTick();\n\t\t\t\telement.scrollIntoView({\n\t\t\t\t\tbehavior: 'smooth',\n\t\t\t\t\tblock: 'nearest',\n\t\t\t\t\tinline: 'nearest',\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t},\n\t{ flush: 'post' }\n);\n\nconst animationDirection = ref<'left' | 'right'>('right');\nwatch(\n\tselectedTab,\n\t(current, previous) => {\n\t\tif (current && previous) {\n\t\t\tconst indexCurrent = props.items.findIndex((i) => i.key === current);\n\t\t\tconst indexPrevious = props.items.findIndex((i) => i.key === previous);\n\t\t\tanimationDirection.value =\n\t\t\t\tindexCurrent > indexPrevious ? 'right' : 'left';\n\t\t}\n\t},\n\t{ flush: 'sync' }\n);\n\ndefineExpose({\n\tisFirst,\n\tisLast,\n\tcurrent: selectedTab,\n\tcurrentIndex: currentTabIndex,\n\tgoTo,\n});\n</script>\n\n<style lang=\"postcss\">\n@import '@/assets/css/BbTab';\n</style>\n"],"names":["props","__props","emit","__emit","route","useRoute","router","useRouter","tabs","ref","id","useId","instanceid","tablist","isScrolling","arrivedState","useScroll","scrollStatus","computed","isInertia","_b","_a","getCurrentInstance","selectedTab","currentTabIndex","el","isFirst","isLast","item","_d","_c","_f","_e","_g","firstSelectableTab","key","onTabSelected","tab","replace","url","wait","goTo","target","nextTabIndex","offset","targetKey","button","onKeydown","event","watch","value","element","nextTick","animationDirection","current","previous","indexCurrent","indexPrevious","__expose"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index107.js","sources":["../src/components/BbTable/BbTable.vue"],"sourcesContent":["<template>\n\t<component\n\t\t:is=\"containerTag\"\n\t\tref=\"container\"\n\t\t:class=\"{\n\t\t\t'bb-table': true,\n\t\t\t[`bb-table--align-${align}`]: true,\n\t\t\t'bb-table--compact': compact,\n\t\t\t'bb-table--fixed': fixed,\n\t\t\t'bb-table--fixed-header': fixedHeaders,\n\t\t\t'bb-table--loading': loading,\n\t\t\t'bb-table--empty': !options.length,\n\t\t\t'bb-table--selectable': selectable,\n\t\t}\"\n\t>\n\t\t<legend v-if=\"selectable\" class=\"sr-only\">{{ legend }}</legend>\n\t\t<table>\n\t\t\t<caption\n\t\t\t\tv-if=\"caption\"\n\t\t\t\t:class=\"{\n\t\t\t\t\t'bb-table-caption': true,\n\t\t\t\t\t'sr-only': !displayCaption,\n\t\t\t\t}\"\n\t\t\t>\n\t\t\t\t{{\n\t\t\t\t\tcaption\n\t\t\t\t}}\n\t\t\t</caption>\n\t\t\t<thead>\n\t\t\t\t<slot name=\"thead\">\n\t\t\t\t\t<tr class=\"bb-table-header-row\">\n\t\t\t\t\t\t<th\n\t\t\t\t\t\t\tv-if=\"selectable\"\n\t\t\t\t\t\t\tclass=\"bb-table-header bb-table-header--select\"\n\t\t\t\t\t\t\t:class=\"thClass\"\n\t\t\t\t\t\t\tscope=\"col\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<slot\n\t\t\t\t\t\t\t\t:multiple=\"multiple\"\n\t\t\t\t\t\t\t\t:name=\"'header:select'\"\n\t\t\t\t\t\t\t\t:select-all=\"!!selectAll\"\n\t\t\t\t\t\t\t\t:text=\"selectText\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<span class=\"bb-table-header__content\">\n\t\t\t\t\t\t\t\t\t<label\n\t\t\t\t\t\t\t\t\t\tv-if=\"allowSelectAll && multiple\"\n\t\t\t\t\t\t\t\t\t\tclass=\"bb-table-check__label\"\n\t\t\t\t\t\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t\t\t\t\t\t'bb-table-check__label--disabled': disabled,\n\t\t\t\t\t\t\t\t\t\t}\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<BaseCheckbox\n\t\t\t\t\t\t\t\t\t\t\tclass=\"bb-table-check\"\n\t\t\t\t\t\t\t\t\t\t\t:disabled=\"disabled\"\n\t\t\t\t\t\t\t\t\t\t\t:indeterminate=\"indeterminate\"\n\t\t\t\t\t\t\t\t\t\t\t:model-value=\"allSelected\"\n\t\t\t\t\t\t\t\t\t\t\t:name=\"`select_all_${name || ''}`\"\n\t\t\t\t\t\t\t\t\t\t\t:readonly=\"readonly\"\n\t\t\t\t\t\t\t\t\t\t\t@update:model-value=\"onChangeSelectAll\"\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t<span class=\"bb-table-check__label-text sr-only\"\n\t\t\t\t\t\t\t\t\t\t\t>{{ selectAllLabel }}\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\tv-else-if=\"!multiple\"\n\t\t\t\t\t\t\t\t\t\tclass=\"bb-table-radio__label-text sr-only\"\n\t\t\t\t\t\t\t\t\t\t>{{ selectText }}</span\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</slot>\n\t\t\t\t\t\t</th>\n\t\t\t\t\t\t<th\n\t\t\t\t\t\t\tv-for=\"header in mappedHeaders\"\n\t\t\t\t\t\t\t:key=\"header.key\"\n\t\t\t\t\t\t\tclass=\"bb-table-header\"\n\t\t\t\t\t\t\t:class=\"header.classes\"\n\t\t\t\t\t\t\tscope=\"col\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<slot\n\t\t\t\t\t\t\t\t:classes=\"header.classes\"\n\t\t\t\t\t\t\t\t:item=\"undefined as unknown\"\n\t\t\t\t\t\t\t\t:items=\"internalItems\"\n\t\t\t\t\t\t\t\t:label=\"header.label\"\n\t\t\t\t\t\t\t\t:name=\"header.slotName\"\n\t\t\t\t\t\t\t\t><span class=\"bb-table-header__content\">{{\n\t\t\t\t\t\t\t\t\theader.label\n\t\t\t\t\t\t\t\t}}</span></slot\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t</th>\n\t\t\t\t\t\t<th\n\t\t\t\t\t\t\tv-if=\"actions\"\n\t\t\t\t\t\t\tclass=\"bb-table-header bb-table-header--actions\"\n\t\t\t\t\t\t\t:class=\"thClass\"\n\t\t\t\t\t\t\tscope=\"col\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<slot name=\"header:actions\" :text=\"actionsText\">\n\t\t\t\t\t\t\t\t<span class=\"bb-table-header__content sr-only\">\n\t\t\t\t\t\t\t\t\t{{ actionsText }}\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t</slot>\n\t\t\t\t\t\t</th>\n\t\t\t\t\t</tr>\n\t\t\t\t</slot>\n\t\t\t</thead>\n\t\t\t<tbody>\n\t\t\t\t<slot v-if=\"loading\" :items=\"internalItems\" name=\"loading\">\n\t\t\t\t\t<tr class=\"bb-table-loading__row\">\n\t\t\t\t\t\t<td\n\t\t\t\t\t\t\tclass=\"bb-table-loading__cell\"\n\t\t\t\t\t\t\t:colspan=\"replacementContentSpan\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span class=\"bb-table-loading__text sr-only\">{{\n\t\t\t\t\t\t\t\tloadingText\n\t\t\t\t\t\t\t}}</span>\n\n\t\t\t\t\t\t\t<div class=\"bb-table-skeleton__container\" role=\"status\">\n\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\tv-for=\"item in skeletonLength\"\n\t\t\t\t\t\t\t\t\t:key=\"item\"\n\t\t\t\t\t\t\t\t\tclass=\"bb-table-skeleton-item\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<div class=\"bb-table-skeleton-item__avatar-container\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"bb-table-skeleton-item__avatar\"></div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t<div class=\"bb-table-skeleton-item__text\">\n\t\t\t\t\t\t\t\t\t\t<div class=\"bb-table-skeleton-item__line\"></div>\n\t\t\t\t\t\t\t\t\t\t<div class=\"bb-table-skeleton-item__line\"></div>\n\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</tr>\n\t\t\t\t</slot>\n\t\t\t\t<slot v-else-if=\"!options.length\" :name=\"'no-data'\">\n\t\t\t\t\t<tr class=\"bb-table-no-data__row\">\n\t\t\t\t\t\t<td\n\t\t\t\t\t\t\tclass=\"bb-table-no-data__cell\"\n\t\t\t\t\t\t\t:colspan=\"replacementContentSpan\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span class=\"bb-table-no-data__text\">{{ noDataText }}</span>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</tr>\n\t\t\t\t</slot>\n\t\t\t\t<slot v-else name=\"tbody\">\n\t\t\t\t\t<tr\n\t\t\t\t\t\tv-for=\"item in mappedItems\"\n\t\t\t\t\t\t:key=\"item.valueHash\"\n\t\t\t\t\t\tclass=\"bb-table-data__row\"\n\t\t\t\t\t\t@click=\"item.onRowClick\"\n\t\t\t\t\t\t@contextmenu=\"item.onRowContextMenu\"\n\t\t\t\t\t\t@dblclick=\"item.onRowDblClick\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<td\n\t\t\t\t\t\t\tv-if=\"selectable\"\n\t\t\t\t\t\t\tclass=\"bb-table-data__cell bb-table-data__cell--select\"\n\t\t\t\t\t\t\t:class=\"tdClass\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<slot\n\t\t\t\t\t\t\t\t:checked=\"!!item.selected\"\n\t\t\t\t\t\t\t\t:disabled=\"!!item.disabled\"\n\t\t\t\t\t\t\t\t:input-name=\"randomName\"\n\t\t\t\t\t\t\t\t:item=\"item.item\"\n\t\t\t\t\t\t\t\t:name=\"'select'\"\n\t\t\t\t\t\t\t\t:readonly=\"!!readonly\"\n\t\t\t\t\t\t\t\t:value=\"item.value\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<!-- We use temp names for these inputs because we don't submit them -->\n\t\t\t\t\t\t\t\t<label\n\t\t\t\t\t\t\t\t\tv-if=\"multiple\"\n\t\t\t\t\t\t\t\t\tclass=\"bb-table-check__label\"\n\t\t\t\t\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t\t\t\t\t'bb-table-check__label--disabled': item.disabled,\n\t\t\t\t\t\t\t\t\t}\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<BaseCheckbox\n\t\t\t\t\t\t\t\t\t\t:checked=\"item.selected || allSelected\"\n\t\t\t\t\t\t\t\t\t\tclass=\"bb-table-check\"\n\t\t\t\t\t\t\t\t\t\t:disabled=\"item.disabled\"\n\t\t\t\t\t\t\t\t\t\t:name=\"randomName\"\n\t\t\t\t\t\t\t\t\t\t:readonly=\"readonly\"\n\t\t\t\t\t\t\t\t\t\t@change=\"() => onInputChange(item)\"\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<span class=\"bb-table-check__label-text sr-only\">{{\n\t\t\t\t\t\t\t\t\t\titem.accessibleLabel\n\t\t\t\t\t\t\t\t\t}}</span>\n\t\t\t\t\t\t\t\t</label>\n\n\t\t\t\t\t\t\t\t<label\n\t\t\t\t\t\t\t\t\tv-else\n\t\t\t\t\t\t\t\t\tclass=\"bb-table-radio__label\"\n\t\t\t\t\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t\t\t\t\t'bb-table-radio__label--disabled': item.disabled,\n\t\t\t\t\t\t\t\t\t}\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<BaseRadio\n\t\t\t\t\t\t\t\t\t\t:checked=\"item.selected\"\n\t\t\t\t\t\t\t\t\t\tclass=\"bb-table-radio\"\n\t\t\t\t\t\t\t\t\t\t:disabled=\"item.disabled\"\n\t\t\t\t\t\t\t\t\t\t:name=\"randomName\"\n\t\t\t\t\t\t\t\t\t\t:readonly=\"readonly\"\n\t\t\t\t\t\t\t\t\t\t:value=\"item.value\"\n\t\t\t\t\t\t\t\t\t\t@change=\"() => onInputChange(item)\"\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<span class=\"bb-table-radio__label-text sr-only\">{{\n\t\t\t\t\t\t\t\t\t\titem.accessibleLabel\n\t\t\t\t\t\t\t\t\t}}</span>\n\t\t\t\t\t\t\t\t</label>\n\t\t\t\t\t\t\t</slot>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td\n\t\t\t\t\t\t\tv-for=\"col in item.cols\"\n\t\t\t\t\t\t\t:key=\"col.key\"\n\t\t\t\t\t\t\tclass=\"bb-table-data__cell\"\n\t\t\t\t\t\t\t:class=\"col.classes\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<slot\n\t\t\t\t\t\t\t\t:classes=\"col.classes\"\n\t\t\t\t\t\t\t\t:content=\"col.content\"\n\t\t\t\t\t\t\t\t:item=\"item.item\"\n\t\t\t\t\t\t\t\t:name=\"col.slotName\"\n\t\t\t\t\t\t\t\t:value=\"item.value\"\n\t\t\t\t\t\t\t\t>{{ col.content }}</slot\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t\t<td\n\t\t\t\t\t\t\tv-if=\"actions\"\n\t\t\t\t\t\t\tclass=\"bb-table__cell bb-table__cell--actions\"\n\t\t\t\t\t\t\t:class=\"tdClass\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<slot\n\t\t\t\t\t\t\t\t:item=\"item.item\"\n\t\t\t\t\t\t\t\t:name=\"'actions'\"\n\t\t\t\t\t\t\t\t:value=\"item.value\"\n\t\t\t\t\t\t\t></slot>\n\t\t\t\t\t\t</td>\n\t\t\t\t\t</tr>\n\t\t\t\t</slot>\n\t\t\t</tbody>\n\t\t\t<tfoot>\n\t\t\t\t<slot name=\"tfoot\"></slot>\n\t\t\t</tfoot>\n\t\t</table>\n\t\t<input v-for=\"input in hiddenInputs\" :key=\"input.value\" v-bind=\"input\" />\n\t</component>\n</template>\n\n<script setup lang=\"ts\">\nimport { add } from '@/utilities/functions/add';\nimport { clamp } from '@/utilities/functions/clamp';\nimport { isNil } from '@/utilities/functions/isNil';\nimport { computed, ref, toRef, watch } from 'vue';\nimport { useId } from '@/composables/useId';\nimport { useItemValue } from '@/composables/useItemValue';\nimport { when } from '@/utilities/functions/when';\nimport BaseCheckbox from '../BaseCheckbox/BaseCheckbox.vue';\nimport BaseRadio from '../BaseRadio/BaseRadio.vue';\nimport { useOptions } from '@/composables/useOptions';\nimport type { Option as BaseOption } from '@/types/Option';\nimport type {\n\tBbTableProps,\n\tMappedCell,\n\tMappedHeader,\n\tMappedItem,\n\tBbTableColumn,\n\tBbTableEvents,\n\tBbTableSlots,\n} from './types';\nimport type { Classes } from '@/types/Classes';\n\nconst { getItemValue } = useItemValue();\n\n/**\n * We do not allow the use of the checkbox or radio themselves as\n * they would not be submitted if the user has changed\n * page in the meantime, rather we provide a temporary\n * name so radio still work but we later add hidden inputs for submission\n */\nconst randomName = useId().id.value;\n\nconst props = withDefaults(defineProps<BbTableProps>(), {\n\talign: 'left',\n\taccessibleLabel: (columns: MappedCell[]) =>\n\t\t['Seleziona'].concat(columns.map((col) => col.content)).join(' '),\n\tactionsText: 'Azioni',\n\tallowSelectAll: true,\n\tcolumns: () => [],\n\tdependencies: () => [],\n\tdepsDebounceTime: 0,\n\tfixedColumns: () => [],\n\titems: () => [],\n\tloadingText: 'Caricamento',\n\tmultiple: true,\n\tmodelValue: () => [],\n\tnoDataText: 'Non ci sono elementi da visualizzare',\n\tselectAllLabel: 'Seleziona tutti gli elementi di questa pagina',\n\tselectText: 'Seleziona un elemento',\n});\n\nconst emit = defineEmits<BbTableEvents>();\n\ndefineSlots<BbTableSlots>();\n\nconst container = ref<HTMLElement>();\n\nconst accessibleLabel = props.accessibleLabel;\nconst loadingText = props.loadingText;\nconst noDataText = props.noDataText;\nconst selectText = props.selectText;\n\n// We render the table in a fieldset to group checkbox / radios if the table is selectable\nconst containerTag = computed(() => (props.selectable ? 'fieldset' : 'div'));\nconst internalLoading = ref(false);\nconst loading = computed(() => props.loading || internalLoading.value);\n\nconst replacementContentSpan = computed(() => {\n\treturn [!!props.selectable, !!props.actions].reduce(\n\t\t(acc: number, current) => acc + Number(!!current),\n\t\tprops.columns.length\n\t);\n});\n\n/**\n * Map column identifiers to slot names\n */\nconst slotNames = computed(() =>\n\tprops.columns.reduce(\n\t\t(acc: { [key: string]: string }, curr: BbTableColumn) => {\n\t\t\tconst mapped = curr.key.split(/\\W+/g).join('_');\n\t\t\tacc[curr.key] = mapped;\n\t\t\treturn acc;\n\t\t},\n\t\t{}\n\t)\n);\n\nconst { options, selectOption, unselectOption, internalItems } = useOptions({\n\temit,\n\titemText: undefined,\n\titemValue: props.itemValue,\n\tmodelValue: toRef(props, 'modelValue'),\n\tmultiple: props.multiple,\n\tresetQueryOnOptionSelected: false,\n\tstash: false,\n\titems: toRef(props, 'items'),\n\tenforceCoherence: true,\n\tprefill: true,\n\tmodelValueDebounceTime: 0,\n\tdependencies: toRef(props, 'dependencies'),\n\tdepsDebounceTime: props.depsDebounceTime,\n\tqueryDebounceTime: 0,\n\tdisabled: toRef(props, 'disabled'),\n});\n\n/**\n * Take the columns and generate a simplified array for headers display\n */\nconst mappedHeaders = computed(() =>\n\tprops.columns.map((column: BbTableColumn): MappedHeader => {\n\t\tconst align = column.align || 'left';\n\t\tconst { label, key } = column;\n\t\tconst slotName = `header:${slotNames.value[column.key]}`;\n\t\t// Create a single merged array of all the passed classes\n\t\tlet classes: Classes = [`bb-table-header--${align}`];\n\t\tif (props.thClass) {\n\t\t\tclasses = classes.concat(props.thClass);\n\t\t}\n\t\tif (column.thClass) {\n\t\t\tclasses = classes.concat(column.thClass);\n\t\t}\n\t\treturn {\n\t\t\talign,\n\t\t\tkey,\n\t\t\tlabel,\n\t\t\tslotName,\n\t\t\tclasses,\n\t\t};\n\t})\n);\n\n/**\n * Map items to an an array that represents the entire row.\n * Track every logic here so we don't have inline callbacks in the template.\n */\nconst mappedItems = computed<MappedItem[]>(() => {\n\treturn options.value.map((item: BaseOption): MappedItem => {\n\t\t/**\n\t\t * Item is selectable only if the table allows or item\n\t\t * passes iteratee and the selection is not disabled\n\t\t */\n\t\tlet disabled = !props.selectable;\n\t\tif (typeof props.selectable === 'function') {\n\t\t\tdisabled = !props.selectable(item);\n\t\t}\n\t\tdisabled = disabled || !!item.disabled;\n\n\t\t// Create a projection of the columns and run all formatter logic so\n\t\t// we just display content in the template\n\t\tconst cols: MappedCell[] = props.columns.map((column) => {\n\t\t\t// Slot identifier\n\t\t\tconst slotName = slotNames.value[column.key];\n\t\t\tconst align = column.align || 'left';\n\t\t\tconst { label, key } = column;\n\t\t\t// The content\n\t\t\tlet content = getItemValue(item.item, column.key);\n\t\t\tif (\n\t\t\t\tcolumn.formatter &&\n\t\t\t\t// By default the formatter runs anyway\n\t\t\t\t(!isNil(content) || column.formatOnNull !== false)\n\t\t\t) {\n\t\t\t\tcontent = column.formatter(content, column.key, item.item);\n\t\t\t}\n\t\t\tif (column.placeholder && isNil(content)) {\n\t\t\t\tcontent = column.placeholder;\n\t\t\t}\n\n\t\t\t// Merge global and specific classes\n\t\t\tlet classes: Classes = [`bb-table-data__cell--${align}`];\n\t\t\tif (props.tdClass) {\n\t\t\t\tif (typeof props.tdClass === 'function') {\n\t\t\t\t\tlet temp = props.tdClass(content, column.key, item.item);\n\t\t\t\t\tif (temp) {\n\t\t\t\t\t\tclasses = classes.concat(temp);\n\t\t\t\t\t}\n\t\t\t\t} else classes = classes.concat(props.tdClass);\n\t\t\t}\n\t\t\tif (column.tdClass) {\n\t\t\t\tif (typeof column.tdClass === 'function') {\n\t\t\t\t\tlet temp = column.tdClass(content, column.key, item.item);\n\t\t\t\t\tif (temp) {\n\t\t\t\t\t\tclasses = classes.concat(temp);\n\t\t\t\t\t}\n\t\t\t\t} else classes = classes.concat(column.tdClass);\n\t\t\t}\n\t\t\treturn {\n\t\t\t\talign,\n\t\t\t\tclasses,\n\t\t\t\tcontent,\n\t\t\t\tkey,\n\t\t\t\tlabel,\n\t\t\t\tslotName,\n\t\t\t};\n\t\t});\n\t\tconst accessibleLabelText = accessibleLabel(cols, item.item);\n\t\tconst res = {\n\t\t\taccessibleLabel: accessibleLabelText,\n\t\t\tcols,\n\t\t\tonRowClick: (event: MouseEvent) =>\n\t\t\t\temit('click:row', event, item, !!item.selected),\n\t\t\tonRowContextMenu: (event: MouseEvent) =>\n\t\t\t\temit('contextmenu:row', event, item, !!item.selected),\n\t\t\tonRowDblClick: (event: MouseEvent) =>\n\t\t\t\temit('dblclick:row', event, item, !!item.selected),\n\t\t\titem: item.item,\n\t\t\ttext: item.text,\n\t\t\tvalueHash: item.valueHash,\n\t\t\tvalue: item.value,\n\t\t\tselected: item.selected,\n\t\t\tdisabled,\n\t\t};\n\t\treturn res;\n\t});\n});\n\n/**\n * Same behavior as GMail.\n * If anything is selected remove it.\n * Then when empty you select all items of this page\n */\nconst onChangeSelectAll = (value: boolean) => {\n\tlet selectAllValue = value;\n\tlet modelValue: any[] = [];\n\n\tif (selectAllValue) {\n\t\tmodelValue = mappedItems.value.reduce((acc: any[], curr) => {\n\t\t\tif (!curr.disabled) acc.push(curr.value);\n\t\t\treturn acc;\n\t\t}, []);\n\t}\n\temit('update:modelValue', modelValue);\n\temit('update:selectAll', value);\n};\n\nconst allSelected = computed(\n\t() =>\n\t\t!!(\n\t\t\tmappedItems.value.length &&\n\t\t\tmappedItems.value\n\t\t\t\t.filter((item) => !item.disabled)\n\t\t\t\t.every((item) => item.selected)\n\t\t)\n);\nconst indeterminate = computed(\n\t() =>\n\t\tmappedItems.value.some((item) => !item.selected) &&\n\t\t!!props.modelValue?.length\n);\n/**\n * Whenever an input changes update modelValue if any\n */\nconst onInputChange = (item: MappedItem) => {\n\tif (item.selected) {\n\t\tunselectOption(item);\n\t} else {\n\t\tselectOption(item);\n\t}\n};\n\n/**\n * When using this component for submission we add a bunch of hidden inputs\n * so the submitted inputs is on par with v-model\n */\n\n/**\n * This is used to keep the value compatible to common html expected values.\n * Convert to string everything that's not but do not double encode strings\n */\nconst makeInputValue = when(\n\t(item: unknown) => typeof item !== 'string',\n\tJSON.stringify\n);\nconst hiddenInputs = computed(() => {\n\treturn [].concat(props.modelValue).map((current) => {\n\t\tconst value = makeInputValue(current);\n\t\treturn {\n\t\t\tdisabled: props.disabled,\n\t\t\tname: props.name,\n\t\t\ttype: 'hidden',\n\t\t\tvalue: value,\n\t\t};\n\t});\n});\n\nconst skeletonLength = computed(() => {\n\treturn clamp(options.value.length, 4, 10);\n});\n\nwatch(\n\t() => mappedItems.value,\n\t() => {\n\t\tif (props.fixedColumns.length && props.items) {\n\t\t\tif (container.value) {\n\t\t\t\t// Get all the headers\n\t\t\t\tconst headers = Array.from(\n\t\t\t\t\tcontainer.value.querySelectorAll<HTMLElement>('thead th')\n\t\t\t\t);\n\n\t\t\t\ttype MappedColumn = {\n\t\t\t\t\tindex: number;\n\t\t\t\t\tposition: 'left' | 'right';\n\t\t\t\t\twidth: number;\n\t\t\t\t\toffset: number;\n\t\t\t\t};\n\n\t\t\t\tconst mappedColumns = props.fixedColumns.reduce((acc, curr) => {\n\t\t\t\t\tconst index = typeof curr === 'number' ? curr : curr.index;\n\t\t\t\t\tconst position = typeof curr === 'number' ? 'left' : curr.position;\n\t\t\t\t\tconst clientRect = headers[index].getBoundingClientRect();\n\t\t\t\t\tconst width = Math.floor(clientRect.width);\n\t\t\t\t\tconst offset = acc\n\t\t\t\t\t\t.filter((el) => el.position === position)\n\t\t\t\t\t\t.map((el) => el.width)\n\t\t\t\t\t\t.reduce(add, 0);\n\n\t\t\t\t\tconst mapped: MappedColumn = {\n\t\t\t\t\t\tindex: index,\n\t\t\t\t\t\tposition: position,\n\t\t\t\t\t\twidth: width,\n\t\t\t\t\t\toffset: offset,\n\t\t\t\t\t};\n\t\t\t\t\tacc.push(mapped);\n\t\t\t\t\treturn acc;\n\t\t\t\t}, [] as MappedColumn[]);\n\n\t\t\t\tconst rows = Array.from(container.value?.querySelectorAll('tr'));\n\t\t\t\tconst affectedCells = rows.map((row) =>\n\t\t\t\t\tArray.from(\n\t\t\t\t\t\trow.querySelectorAll<HTMLElement>(\n\t\t\t\t\t\t\tmappedColumns\n\t\t\t\t\t\t\t\t.map((el) => `:scope > :nth-child(${el.index + 1})`)\n\t\t\t\t\t\t\t\t.join(', ')\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t);\n\t\t\t\taffectedCells.forEach((row) => {\n\t\t\t\t\trow.forEach((cell, index) => {\n\t\t\t\t\t\tcell.style.position = 'sticky';\n\n\t\t\t\t\t\tif (mappedColumns[index].position === 'left') {\n\t\t\t\t\t\t\tcell.style.left = `${mappedColumns[index].offset}px`;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tcell.style.right = `${mappedColumns[index].offset}px`;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\tflush: 'post',\n\t}\n);\n</script>\n\n<style lang=\"postcss\">\n@import '@/assets/css/BbTable';\n</style>\n"],"names":["getItemValue","useItemValue","randomName","useId","props","__props","emit","__emit","container","ref","accessibleLabel","loadingText","noDataText","selectText","containerTag","computed","internalLoading","loading","replacementContentSpan","acc","current","slotNames","curr","mapped","options","selectOption","unselectOption","internalItems","useOptions","toRef","mappedHeaders","column","align","label","key","slotName","classes","mappedItems","item","disabled","cols","content","isNil","temp","event","onChangeSelectAll","value","selectAllValue","modelValue","allSelected","indeterminate","_a","onInputChange","makeInputValue","when","hiddenInputs","skeletonLength","clamp","watch","headers","mappedColumns","index","position","clientRect","width","offset","el","add","row","cell"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index109.js","sources":["../src/components/BbTag/BbTag.vue"],"sourcesContent":["<template>\n\t<BaseInputContainer\n\t\t:id=\"id\"\n\t\tclass=\"bb-tag\"\n\t\t:direction=\"direction\"\n\t\t:errors=\"errors\"\n\t\t:has-errors=\"hasErrors\"\n\t\t:hide-label=\"hideLabel\"\n\t\t:hint=\"hint\"\n\t\t:label=\"label\"\n\t\t:label-position=\"labelPosition\"\n\t\t:model-value=\"modelValue\"\n\t\t:name=\"name\"\n\t\t:reverse=\"reverse\"\n\t\t:show-hint=\"showHint\"\n\t>\n\t\t<template #label=\"data\"><slot name=\"label\" v-bind=\"data\"></slot></template>\n\t\t<template #input=\"{ id, name, hasErrors, ariaDescribedby }\">\n\t\t\t<BaseTag\n\t\t\t\t:id=\"id\"\n\t\t\t\t:append:icon=\"props['append:icon']\"\n\t\t\t\t:aria-describedby=\"ariaDescribedby\"\n\t\t\t\t:autocomplete=\"autocomplete\"\n\t\t\t\t:autofocus=\"autofocus\"\n\t\t\t\t:comma=\"comma\"\n\t\t\t\t:disabled=\"disabled\"\n\t\t\t\t:divider=\"divider\"\n\t\t\t\t:has-errors=\"hasErrors\"\n\t\t\t\t:loading=\"loading\"\n\t\t\t\t:model-value=\"modelValue\"\n\t\t\t\t:multiple=\"multiple\"\n\t\t\t\t:name=\"name\"\n\t\t\t\t:placeholder=\"placeholder\"\n\t\t\t\t:prepend:icon=\"props['prepend:icon']\"\n\t\t\t\t:readonly=\"readonly\"\n\t\t\t\t:required=\"required\"\n\t\t\t\tv-bind=\"eventListeners\"\n\t\t\t>\n\t\t\t\t<template #prepend-outer=\"data\"\n\t\t\t\t\t><slot name=\"prepend-outer\" v-bind=\"data\"\n\t\t\t\t/></template>\n\t\t\t\t<template #prepend=\"data\"\n\t\t\t\t\t><slot name=\"prepend\" v-bind=\"data\"\n\t\t\t\t/></template>\n\t\t\t\t<template #prefix=\"data\"><slot name=\"prefix\" v-bind=\"data\" /></template>\n\t\t\t\t<template #append=\"data\"><slot name=\"append\" v-bind=\"data\" /></template>\n\t\t\t\t<template #suffix=\"data\"><slot name=\"suffix\" v-bind=\"data\" /></template>\n\t\t\t\t<template #append-outer=\"data\"\n\t\t\t\t\t><slot name=\"append-outer\" v-bind=\"data\"\n\t\t\t\t/></template>\n\t\t\t</BaseTag>\n\t\t</template>\n\t</BaseInputContainer>\n</template>\n\n<script setup lang=\"ts\">\nimport BaseInputContainer from '../BaseInputContainer/BaseInputContainer.vue';\nimport BaseTag from '../BaseTag/BaseTag.vue';\nimport type { BaseTagEvents } from '../BaseTag/BaseTag.vue';\nimport {\n\tref,\n\ttype HTMLAttributes,\n\ttype InputHTMLAttributes,\n\tcomputed,\n} from 'vue';\n\nexport type BbTagProps = {\n\t/**\n\t * Name of the icon to be added at the end of the input.\n\t */\n\t// eslint-disable-next-line vue/prop-name-casing\n\t'append:icon'?: string;\n\n\t/**\n\t * Guides to the browser as to the type of information expected in the field.\n\t */\n\tautocomplete?: InputHTMLAttributes['autocomplete'];\n\n\t/**\n\t * Sets autofocus on page load.\n\t */\n\tautofocus?: InputHTMLAttributes['autofocus'];\n\n\t/**\n\t * Sets the display model for selected values to a list\n\t * of comma separated string. In this mode the user\n\t * cannot deselect an option by pressing the close button.\n\t */\n\tcomma?: boolean;\n\n\t/**\n\t * Direction of the layout of the component. Can either be a predefined value or a pattern separated by a space like `xx xxxxx`.\n\t */\n\tdirection?: 'horizontal' | 'vertical' | 'auto' | string;\n\n\t/**\n\t * Disables the component\n\t */\n\tdisabled?: boolean;\n\n\t/**\n\t * The divider key used to separate values from one another. By default it is \"Enter\"\n\t */\n\tdivider?: KeyboardEvent['key'];\n\n\t/**\n\t * Can be a string or an array of string containing the messages to display.\n\t */\n\terrors?: string | string[];\n\n\t/**\n\t * Define if the component should be in an error state.\n\t * It usually attaches a CSS class for styling purposes.\n\t */\n\thasErrors?: boolean;\n\n\t/**\n\t * Visually hides the label of the input while maintaining accessibility.\n\t */\n\thideLabel?: boolean;\n\n\t/**\n\t * Text box to be displayed near the input, usually to indicate instructions.\n\t */\n\thint?: string;\n\n\t/**\n\t * The identifier of the component.\n\t */\n\tid?: HTMLAttributes['id'];\n\n\t/**\n\t * Text content of the label of the element.\n\t */\n\tlabel: string;\n\n\t/**\n\t * Sets the text alignment of the label.\n\t */\n\tlabelPosition?: 'left' | 'center' | 'right';\n\n\t/**\n\t * Sets the component in a loading state, usually triggering some visual styles.\n\t */\n\tloading?: boolean;\n\n\t/**\n\t * Used by v-model. Can be any serializable type.\n\t */\n\tmodelValue: any;\n\n\t/**\n\t * Allows the selection of multiple items.\n\t */\n\tmultiple?: boolean;\n\n\t/**\n\t * Defines the name of the input.\n\t */\n\tname?: InputHTMLAttributes['name'];\n\n\t/**\n\t * Keeps the hint displayed.\n\t */\n\tpersistentHint?: boolean;\n\n\t/**\n\t * String displayed when there's no data.\n\t */\n\tplaceholder?: InputHTMLAttributes['placeholder'];\n\n\t/**\n\t * Name of the icon to be added at the start of the input.\n\t */\n\t// eslint-disable-next-line vue/prop-name-casing\n\t'prepend:icon'?: string;\n\n\t/**\n\t * Sets the input in a readonly state.\n\t */\n\treadonly?: InputHTMLAttributes['readonly'];\n\n\t/**\n\t * Sets the input as required.\n\t */\n\trequired?: boolean;\n\n\t/**\n\t * Reverses the layout. Applicable in every direction the order of the label and the input is swapped.\n\t */\n\treverse?: boolean;\n};\n\nconst props = withDefaults(defineProps<BbTagProps>(), {\n\tmultiple: true,\n});\n\nexport type BbTagEvents = BaseTagEvents;\n\nconst emit = defineEmits<BbTagEvents>();\n\nexport type BbTagSlots = {\n\tappend?: (props: object) => any;\n\t'append-outer'?: (props: object) => any;\n\tlabel?: (props: { text: string; hasErrors: boolean }) => any;\n\tprepend?: (props: object) => any;\n\tprefix?: (props: object) => any;\n\tsuffix?: (props: object) => any;\n\t'prepend-outer'?: (props: object) => any;\n};\n\ndefineSlots<BbTagSlots>();\n\nconst active = ref(false);\nconst showHint = computed(() => props.persistentHint || active.value);\n\nconst eventListeners = {\n\tonBlur: (event: FocusEvent) => emit('blur', event),\n\tonChange: (event: Event) => emit('change', event),\n\tonClick: (event: MouseEvent) => emit('click', event),\n\tonDuplicate: (string: string) => emit('duplicate', string),\n\tonFocus: (event: FocusEvent) => {\n\t\tactive.value = true;\n\t\temit('focus', event);\n\t},\n\tonInactive: () => {\n\t\tactive.value = false;\n\t\temit('inactive');\n\t},\n\tonInput: (event: Event) => emit('input', event),\n\tonKeydown: (event: KeyboardEvent) => emit('keydown', event),\n\tonKeyup: (event: KeyboardEvent) => emit('keyup', event),\n\t'onUpdate:modelValue': (value: any) => emit('update:modelValue', value),\n};\n</script>\n\n<style lang=\"postcss\">\n@import '@/assets/css/BbTag';\n</style>\n"],"names":["props","__props","emit","__emit","active","ref","showHint","computed","eventListeners","event","string","value"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiMA,UAAMA,IAAQC,GAMRC,IAAOC,GAcPC,IAASC,EAAI,EAAK,GAClBC,IAAWC,EAAS,MAAMP,EAAM,kBAAkBI,EAAO,KAAK,GAE9DI,IAAiB;AAAA,MACtB,QAAQ,CAACC,MAAsBP,EAAK,QAAQO,CAAK;AAAA,MACjD,UAAU,CAACA,MAAiBP,EAAK,UAAUO,CAAK;AAAA,MAChD,SAAS,CAACA,MAAsBP,EAAK,SAASO,CAAK;AAAA,MACnD,aAAa,CAACC,MAAmBR,EAAK,aAAaQ,CAAM;AAAA,MACzD,SAAS,CAACD,MAAsB;AAC/B,QAAAL,EAAO,QAAQ,IACfF,EAAK,SAASO,CAAK;AAAA,MACpB;AAAA,MACA,YAAY,MAAM;AACjB,QAAAL,EAAO,QAAQ,IACfF,EAAK,UAAU;AAAA,MAChB;AAAA,MACA,SAAS,CAACO,MAAiBP,EAAK,SAASO,CAAK;AAAA,MAC9C,WAAW,CAACA,MAAyBP,EAAK,WAAWO,CAAK;AAAA,MAC1D,SAAS,CAACA,MAAyBP,EAAK,SAASO,CAAK;AAAA,MACtD,uBAAuB,CAACE,MAAeT,EAAK,qBAAqBS,CAAK;AAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index11.js","sources":["../src/composables/useQueue.ts"],"sourcesContent":["type Resolvers = Record<string, (arg: any) => any>;\n\ntype Jobs<T extends Resolvers> = {\n\t[Name in keyof T]: Parameters<T[Name]> extends [infer Arg]\n\t\t? { type: Name; params: Arg }\n\t\t: { type: Name };\n}[keyof T];\n\ntype OnSuccess<T extends Resolvers> = (\n\tdata: {\n\t\t[Name in keyof T]: {\n\t\t\tdata: Parameters<T[Name]> extends [infer Arg]\n\t\t\t\t? { type: Name; params: Arg; result: Awaited<ReturnType<T[Name]>> }\n\t\t\t\t: { type: Name; result: Awaited<ReturnType<T[Name]>> };\n\t\t}['data'];\n\t}[keyof T]\n) => void;\n\ntype OnError<T extends Resolvers> = (\n\tdata: {\n\t\t[Name in keyof T]: {\n\t\t\tdata: Parameters<T[Name]> extends [infer Arg]\n\t\t\t\t? { type: Name; params: Arg; error: any }\n\t\t\t\t: { type: Name; error: any };\n\t\t}['data'];\n\t}[keyof T]\n) => void;\n\ntype OnCompleted<T extends Resolvers> = (\n\tdata: {\n\t\t[Name in keyof T]: {\n\t\t\tdata: Parameters<T[Name]> extends [infer Arg]\n\t\t\t\t? { type: Name; params: Arg }\n\t\t\t\t: { type: Name };\n\t\t}['data'];\n\t}[keyof T]\n) => void;\n\ntype OnCleared = () => any;\n\ntype Params<T extends Resolvers> = {\n\tresolvers: T;\n\tconcurrency?: number;\n\tonSuccess?: OnSuccess<T>;\n\tonError?: OnError<T>;\n\tonCleared?: OnCleared;\n\tonCompleted?: OnCompleted<T>;\n};\n\nconst noop = () => {};\n\nexport const useQueue = <T extends Resolvers>({\n\tresolvers,\n\tonSuccess = noop,\n\tonCleared = noop,\n\tonError = noop,\n\tonCompleted = noop,\n\tconcurrency = 1,\n}: Params<T>) => {\n\tlet jobs: Jobs<T>[] = [];\n\tlet currentIndex = 0;\n\n\tconst process = async (): Promise<void> => {\n\t\tif (currentIndex > concurrency) {\n\t\t\treturn;\n\t\t}\n\t\twhile (currentIndex < concurrency) {\n\t\t\tconst job = jobs[currentIndex++];\n\t\t\tif (!job) {\n\t\t\t\tcurrentIndex--;\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst resolver = resolvers[job.type];\n\t\t\tif (!resolver)\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`No resolver defined for job type \"${job.type.toString()}\"`\n\t\t\t\t);\n\t\t\tnew Promise(async (resolve) => {\n\t\t\t\ttry {\n\t\t\t\t\tif ('params' in job) {\n\t\t\t\t\t\tconst res = await resolver(job.params);\n\t\t\t\t\t\tconst data = {\n\t\t\t\t\t\t\ttype: job.type,\n\t\t\t\t\t\t\tparams: job.params,\n\t\t\t\t\t\t\tresult: res,\n\t\t\t\t\t\t} as Extract<Parameters<OnSuccess<T>>[0], { params: any }>;\n\t\t\t\t\t\tonSuccess(data);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst res = await resolver(undefined);\n\t\t\t\t\t\tconst data = {\n\t\t\t\t\t\t\ttype: job.type,\n\t\t\t\t\t\t\tresult: res,\n\t\t\t\t\t\t} as Extract<Parameters<OnSuccess<T>>[0], { params: never }>;\n\t\t\t\t\t\tonSuccess(data);\n\t\t\t\t\t}\n\t\t\t\t} catch (error) {\n\t\t\t\t\tconst data = {\n\t\t\t\t\t\ttype: job.type,\n\t\t\t\t\t\tparams: 'params' in job ? job.params : undefined,\n\t\t\t\t\t\terror: error,\n\t\t\t\t\t} as Parameters<OnError<T>>[0];\n\t\t\t\t\tonError(data);\n\t\t\t\t} finally {\n\t\t\t\t\tconst index = jobs.indexOf(job);\n\t\t\t\t\tjobs.splice(index, 1);\n\t\t\t\t\tcurrentIndex--;\n\n\t\t\t\t\tif ('params' in job) {\n\t\t\t\t\t\tconst data = {\n\t\t\t\t\t\t\ttype: job.type,\n\t\t\t\t\t\t\tparams: job.params,\n\t\t\t\t\t\t} as Extract<Parameters<OnCompleted<T>>[0], { params: any }>;\n\t\t\t\t\t\tonCompleted(data);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconst data = {\n\t\t\t\t\t\t\ttype: job.type,\n\t\t\t\t\t\t} as Extract<Parameters<OnCompleted<T>>[0], { params: never }>;\n\t\t\t\t\t\tonCompleted(data);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (jobs.length) return resolve(new Promise(() => process()));\n\t\t\t\tonCleared();\n\t\t\t\tresolve(null);\n\t\t\t});\n\t\t}\n\t};\n\n\tconst addJobs = (...job: (typeof jobs)[number][]) => {\n\t\tjobs.push(...job);\n\t\tprocess();\n\t};\n\n\tconst addIf = (\n\t\tjob: (typeof jobs)[number],\n\t\titeratee: (arr: typeof jobs) => boolean\n\t) => {\n\t\tif (iteratee(jobs)) addJobs(job);\n\t};\n\n\tconst filterJobs = (\n\t\titeratee: (\n\t\t\telement: (typeof jobs)[number],\n\t\t\tindex: number,\n\t\t\tarr: typeof jobs\n\t\t) => boolean\n\t) => {\n\t\tjobs = jobs\n\t\t\t.slice(0, currentIndex)\n\t\t\t.concat(jobs.slice(currentIndex).filter(iteratee));\n\t};\n\n\treturn {\n\t\taddJobs,\n\t\taddIf,\n\t\tfilterJobs,\n\t};\n};\n"],"names":["noop","useQueue","resolvers","onSuccess","onCleared","onError","onCompleted","concurrency","jobs","currentIndex","process","job","resolver","resolve","res","data","error","index","addJobs","iteratee"],"mappings":"AAiDA,MAAMA,IAAO,MAAM;AAAC,GAEPC,IAAW,CAAsB;AAAA,EAC7C,WAAAC;AAAA,EACA,WAAAC,IAAYH;AAAA,EACZ,WAAAI,IAAYJ;AAAA,EACZ,SAAAK,IAAUL;AAAA,EACV,aAAAM,IAAcN;AAAA,EACd,aAAAO,IAAc;AACf,MAAiB;AAChB,MAAIC,IAAkB,CAAA,GAClBC,IAAe;AAEnB,QAAMC,IAAU,YAA2B;AAC1C,QAAI,EAAAD,IAAeF;AAGnB,aAAOE,IAAeF,KAAa;AAC5B,cAAAI,IAAMH,EAAKC,GAAc;AAC/B,YAAI,CAACE,GAAK;AACT,UAAAF;AACA;AAAA,QACD;AAEM,cAAAG,IAAWV,EAAUS,EAAI,IAAI;AACnC,YAAI,CAACC;AACJ,gBAAM,IAAI;AAAA,YACT,qCAAqCD,EAAI,KAAK,SAAA,CAAU;AAAA,UAAA;AAEtD,YAAA,QAAQ,OAAOE,MAAY;AAC1B,cAAA;AACH,gBAAI,YAAYF,GAAK;AACpB,oBAAMG,IAAM,MAAMF,EAASD,EAAI,MAAM,GAC/BI,IAAO;AAAA,gBACZ,MAAMJ,EAAI;AAAA,gBACV,QAAQA,EAAI;AAAA,gBACZ,QAAQG;AAAA,cAAA;AAET,cAAAX,EAAUY,CAAI;AAAA,YAAA,OACR;AACA,oBAAAD,IAAM,MAAMF,EAAS,MAAS,GAC9BG,IAAO;AAAA,gBACZ,MAAMJ,EAAI;AAAA,gBACV,QAAQG;AAAA,cAAA;AAET,cAAAX,EAAUY,CAAI;AAAA,YACf;AAAA,mBACQC,GAAO;AACf,kBAAMD,IAAO;AAAA,cACZ,MAAMJ,EAAI;AAAA,cACV,QAAQ,YAAYA,IAAMA,EAAI,SAAS;AAAA,cACvC,OAAAK;AAAA,YAAA;AAED,YAAAX,EAAQU,CAAI;AAAA,UAAA,UACX;AACK,kBAAAE,IAAQT,EAAK,QAAQG,CAAG;AAI9B,gBAHKH,EAAA,OAAOS,GAAO,CAAC,GACpBR,KAEI,YAAYE,GAAK;AACpB,oBAAMI,IAAO;AAAA,gBACZ,MAAMJ,EAAI;AAAA,gBACV,QAAQA,EAAI;AAAA,cAAA;AAEb,cAAAL,EAAYS,CAAI;AAAA,YAAA,OACV;AACN,oBAAMA,IAAO;AAAA,gBACZ,MAAMJ,EAAI;AAAA,cAAA;AAEX,cAAAL,EAAYS,CAAI;AAAA,YACjB;AAAA,UACD;AACI,cAAAP,EAAK,OAAe,QAAAK,EAAQ,IAAI,QAAQ,MAAMH,EAAS,CAAA,CAAC;AAClD,UAAAN,KACVS,EAAQ,IAAI;AAAA,QAAA,CACZ;AAAA,MACF;AAAA,EAAA,GAGKK,IAAU,IAAIP,MAAiC;AAC/C,IAAAH,EAAA,KAAK,GAAGG,CAAG,GACRD;EAAA;AAsBF,SAAA;AAAA,IACN,SAAAQ;AAAA,IACA,OArBa,CACbP,GACAQ,MACI;AACJ,MAAIA,EAASX,CAAI,KAAGU,EAAQP,CAAG;AAAA,IAAA;AAAA,IAkB/B,YAfkB,CAClBQ,MAKI;AACJ,MAAAX,IAAOA,EACL,MAAM,GAAGC,CAAY,EACrB,OAAOD,EAAK,MAAMC,CAAY,EAAE,OAAOU,CAAQ,CAAC;AAAA,IAAA;AAAA,EAMlD;AAEF;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index111.js","sources":["../src/components/BbTextarea/BbTextarea.vue"],"sourcesContent":["<template>\n\t<BaseInputContainer\n\t\t:id=\"id\"\n\t\tclass=\"bb-textarea\"\n\t\t:direction=\"direction\"\n\t\t:errors=\"errors\"\n\t\t:has-errors=\"hasErrors\"\n\t\t:hide-label=\"hideLabel\"\n\t\t:hint=\"hint\"\n\t\t:label=\"label\"\n\t\t:label-position=\"labelPosition\"\n\t\t:model-value=\"modelValue\"\n\t\t:name=\"name\"\n\t\t:reverse=\"reverse\"\n\t\t:show-hint=\"showHint\"\n\t>\n\t\t<template #label=\"data\"><slot name=\"label\" v-bind=\"data\"></slot></template>\n\t\t<template #input=\"{ id, name, hasErrors, ariaDescribedby }\">\n\t\t\t<BaseTextarea\n\t\t\t\t:id=\"id\"\n\t\t\t\t:append:icon=\"props['append:icon']\"\n\t\t\t\t:aria-describedby=\"ariaDescribedby\"\n\t\t\t\t:auto-grow=\"autoGrow\"\n\t\t\t\t:autofocus=\"autofocus\"\n\t\t\t\t:disabled=\"disabled\"\n\t\t\t\t:has-errors=\"hasErrors\"\n\t\t\t\t:loading=\"loading\"\n\t\t\t\t:model-value=\"modelValue\"\n\t\t\t\t:name=\"name\"\n\t\t\t\t:placeholder=\"placeholder\"\n\t\t\t\t:prepend:icon=\"props['prepend:icon']\"\n\t\t\t\t:readonly=\"readonly\"\n\t\t\t\t:required=\"required\"\n\t\t\t\t:rows=\"rows\"\n\t\t\t\tv-bind=\"eventListeners\"\n\t\t\t>\n\t\t\t\t<template #append-outer><slot name=\"append-outer\" /></template>\n\t\t\t\t<template #append><slot name=\"append\" /></template>\n\t\t\t\t<template #prepend><slot name=\"prepend\" /></template>\n\t\t\t\t<template #prepend-outer><slot name=\"prepend-outer\" /></template>\n\t\t\t\t<template #prefix=\"data\"><slot name=\"prefix\" v-bind=\"data\" /></template>\n\t\t\t\t<template #suffix=\"data\"><slot name=\"suffix\" v-bind=\"data\" /></template>\n\t\t\t</BaseTextarea>\n\t\t</template>\n\t</BaseInputContainer>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, computed } from 'vue';\nimport BaseInputContainer from '../BaseInputContainer/BaseInputContainer.vue';\nimport BaseTextarea from '../BaseTextarea/BaseTextarea.vue';\nimport type {\n\tBaseTextareaEvents,\n\tBaseTextareaSlots,\n} from '../BaseTextarea/BaseTextarea.vue';\nimport type { HTMLAttributes, InputHTMLAttributes } from 'vue';\n\nexport type BbTextareaProps = {\n\t/**\n\t * Name of the icon to be added at the end of the input.\n\t */\n\t// eslint-disable-next-line vue/prop-name-casing\n\t'append:icon'?: string;\n\n\t/**\n\t * Guides to the browser as to the type of information expected in the field.\n\t */\n\tautocomplete?: InputHTMLAttributes['autocomplete'];\n\n\t/**\n\t * Sets autofocus on page load.\n\t */\n\tautofocus?: InputHTMLAttributes['autofocus'];\n\n\t/**\n\t * Expands the textarea to match its content\n\t */\n\tautoGrow?: boolean;\n\n\t/**\n\t * Direction of the layout of the component. Can either be a predefined value or a pattern separated by a space like `xx xxxxx`.\n\t */\n\tdirection?: 'horizontal' | 'vertical' | 'auto' | string;\n\n\t/**\n\t * Disables the component\n\t */\n\tdisabled?: boolean;\n\n\t/**\n\t * Can be a string or an array of string containing the messages to display.\n\t */\n\terrors?: string | string[];\n\n\t/**\n\t * Define if the component should be in an error state.\n\t * It usually attaches a CSS class for styling purposes.\n\t */\n\thasErrors?: boolean;\n\n\t/**\n\t * Visually hides the label of the input while maintaining accessibility.\n\t */\n\thideLabel?: boolean;\n\n\t/**\n\t * Text box to be displayed near the input, usually to indicate instructions.\n\t */\n\thint?: string;\n\n\t/**\n\t * The identifier of the component.\n\t */\n\tid?: HTMLAttributes['id'];\n\n\t/**\n\t * Text content of the label of the element.\n\t */\n\tlabel: string;\n\n\t/**\n\t * Sets the text alignment of the label.\n\t */\n\tlabelPosition?: 'left' | 'center' | 'right';\n\n\t/**\n\t * Sets the component in a loading state, usually triggering some visual styles.\n\t */\n\tloading?: boolean;\n\n\t/**\n\t * Used by v-model\n\t */\n\tmodelValue: string | null;\n\n\t/**\n\t * Defines the name of the input.\n\t */\n\tname?: InputHTMLAttributes['name'];\n\n\t/**\n\t * Keeps the hint displayed.\n\t */\n\tpersistentHint?: boolean;\n\n\t/**\n\t * String displayed when there's no data.\n\t */\n\tplaceholder?: InputHTMLAttributes['placeholder'];\n\n\t/**\n\t * Name of the icon to be added at the start of the input.\n\t */\n\t// eslint-disable-next-line vue/prop-name-casing\n\t'prepend:icon'?: string;\n\n\t/**\n\t * Sets the input in a readonly state.\n\t */\n\treadonly?: InputHTMLAttributes['readonly'];\n\n\t/**\n\t * Sets the input as required.\n\t */\n\trequired?: boolean;\n\n\t/**\n\t * Reverses the layout. Applicable in every direction the order of the label and the input is swapped.\n\t */\n\treverse?: boolean;\n\n\t/**\n\t * Sets the input in a readonly state.\n\t */\n\trows?: string | number;\n};\n\nconst props = defineProps<BbTextareaProps>();\n\nexport type BbTextareaEvents = BaseTextareaEvents;\nconst emit = defineEmits<BbTextareaEvents>();\n\nexport type BbTextareaSlots = BaseTextareaSlots & {\n\tlabel?: (props: { text: string; hasErrors: boolean }) => any;\n};\n\ndefineSlots<BbTextareaSlots>();\n\nconst active = ref(false);\nconst showHint = computed(() => props.persistentHint || active.value);\n\n/**\n * These events are just propagated\n */\nconst eventListeners = {\n\tonBlur: (event: FocusEvent) => {\n\t\tactive.value = false;\n\t\temit('blur', event);\n\t},\n\tonChange: (event: Event) => emit('change', event),\n\tonClick: (event: MouseEvent) => emit('click', event),\n\tonFocus: (event: FocusEvent) => {\n\t\tactive.value = true;\n\t\temit('focus', event);\n\t},\n\tonInput: (event: Event) => emit('input', event),\n\tonKeydown: (event: KeyboardEvent) => emit('keydown', event),\n\tonMousedown: (event: MouseEvent) => emit('mousedown', event),\n\tonMouseup: (event: MouseEvent) => emit('mouseup', event),\n\t'onUpdate:modelValue': (value: string | null) =>\n\t\temit('update:modelValue', value),\n};\n</script>\n\n<style lang=\"postcss\">\n@import '@/assets/css/BbTextarea';\n</style>\n"],"names":["props","__props","emit","__emit","active","ref","showHint","computed","eventListeners","event","value"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiLA,UAAMA,IAAQC,GAGRC,IAAOC,GAQPC,IAASC,EAAI,EAAK,GAClBC,IAAWC,EAAS,MAAMP,EAAM,kBAAkBI,EAAO,KAAK,GAK9DI,IAAiB;AAAA,MACtB,QAAQ,CAACC,MAAsB;AAC9B,QAAAL,EAAO,QAAQ,IACfF,EAAK,QAAQO,CAAK;AAAA,MACnB;AAAA,MACA,UAAU,CAACA,MAAiBP,EAAK,UAAUO,CAAK;AAAA,MAChD,SAAS,CAACA,MAAsBP,EAAK,SAASO,CAAK;AAAA,MACnD,SAAS,CAACA,MAAsB;AAC/B,QAAAL,EAAO,QAAQ,IACfF,EAAK,SAASO,CAAK;AAAA,MACpB;AAAA,MACA,SAAS,CAACA,MAAiBP,EAAK,SAASO,CAAK;AAAA,MAC9C,WAAW,CAACA,MAAyBP,EAAK,WAAWO,CAAK;AAAA,MAC1D,aAAa,CAACA,MAAsBP,EAAK,aAAaO,CAAK;AAAA,MAC3D,WAAW,CAACA,MAAsBP,EAAK,WAAWO,CAAK;AAAA,MACvD,uBAAuB,CAACC,MACvBR,EAAK,qBAAqBQ,CAAK;AAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index113.js","sources":["../src/components/BbTextInput/BbTextInput.vue"],"sourcesContent":["<template>\n\t<BaseInputContainer\n\t\t:id=\"id\"\n\t\tclass=\"bb-text-input\"\n\t\t:direction=\"direction\"\n\t\t:errors=\"errors\"\n\t\t:has-errors=\"hasErrors\"\n\t\t:hide-label=\"hideLabel\"\n\t\t:hint=\"hint\"\n\t\t:label=\"label\"\n\t\t:label-position=\"labelPosition\"\n\t\t:model-value=\"modelValue\"\n\t\t:name=\"name\"\n\t\t:reverse=\"reverse\"\n\t\t:show-hint=\"showHint\"\n\t>\n\t\t<template #label=\"data\"><slot name=\"label\" v-bind=\"data\"></slot></template>\n\t\t<template #input=\"{ id, name, hasErrors, ariaDescribedby }\">\n\t\t\t<BaseTextInput\n\t\t\t\t:id=\"id\"\n\t\t\t\t:append:icon=\"props['append:icon']\"\n\t\t\t\t:aria-describedby=\"ariaDescribedby\"\n\t\t\t\t:autocomplete=\"autocomplete\"\n\t\t\t\t:autofocus=\"autofocus\"\n\t\t\t\t:disabled=\"disabled\"\n\t\t\t\t:has-errors=\"hasErrors\"\n\t\t\t\t:loading=\"loading\"\n\t\t\t\t:model-value=\"modelValue\"\n\t\t\t\t:name=\"name\"\n\t\t\t\t:placeholder=\"placeholder\"\n\t\t\t\t:prepend:icon=\"props['prepend:icon']\"\n\t\t\t\t:readonly=\"readonly\"\n\t\t\t\t:required=\"required\"\n\t\t\t\t:type=\"type\"\n\t\t\t\tv-bind=\"eventListeners\"\n\t\t\t>\n\t\t\t\t<template #append-outer><slot name=\"append-outer\" /></template>\n\t\t\t\t<template #append><slot name=\"append\" /></template>\n\t\t\t\t<template #prefix><slot name=\"prefix\" /></template>\n\t\t\t\t<template #suffix><slot name=\"suffix\" /></template>\n\t\t\t\t<template #prepend><slot name=\"prepend\" /></template>\n\t\t\t\t<template #prepend-outer><slot name=\"prepend-outer\" /></template>\n\t\t\t</BaseTextInput>\n\t\t</template>\n\t</BaseInputContainer>\n</template>\n\n<script setup lang=\"ts\">\nimport { ref, computed } from 'vue';\nimport BaseInputContainer from '../BaseInputContainer/BaseInputContainer.vue';\nimport BaseTextInput from '../BaseTextInput/BaseTextInput.vue';\nimport type {\n\tBaseTextInputEvents,\n\tBaseTextInputSlots,\n} from '../BaseTextInput/BaseTextInput.vue';\nimport type { HTMLAttributes, InputHTMLAttributes } from 'vue';\n\nexport type BbTextInputProps = {\n\t/**\n\t * Name of the icon to be added at the end of the input.\n\t */\n\t// eslint-disable-next-line vue/prop-name-casing\n\t'append:icon'?: string;\n\t/**\n\t * Guides to the browser as to the type of information expected in the field.\n\t */\n\tautocomplete?: InputHTMLAttributes['autocomplete'];\n\n\t/**\n\t * Sets autofocus on page load.\n\t */\n\tautofocus?: InputHTMLAttributes['autofocus'];\n\n\t/**\n\t * Direction of the layout of the component. Can either be a predefined value or a pattern separated by a space like `xx xxxxx`.\n\t */\n\tdirection?: 'horizontal' | 'vertical' | 'auto' | string;\n\n\t/**\n\t * Disables the component\n\t */\n\tdisabled?: boolean;\n\n\t/**\n\t * Can be a string or an array of string containing the messages to display.\n\t */\n\terrors?: string | string[];\n\n\t/**\n\t * Define if the component should be in an error state.\n\t * It usually attaches a CSS class for styling purposes.\n\t */\n\thasErrors?: boolean;\n\n\t/**\n\t * Visually hides the label of the input while maintaining accessibility.\n\t */\n\thideLabel?: boolean;\n\n\t/**\n\t * Text box to be displayed near the input, usually to indicate instructions.\n\t */\n\thint?: string;\n\n\t/**\n\t * The identifier of the component.\n\t */\n\tid?: HTMLAttributes['id'];\n\n\t/**\n\t * Text content of the label of the element.\n\t */\n\tlabel: string;\n\n\t/**\n\t * Sets the text alignment of the label.\n\t */\n\tlabelPosition?: 'left' | 'center' | 'right';\n\n\t/**\n\t * Sets the component in a loading state, usually triggering some visual styles.\n\t */\n\tloading?: boolean;\n\n\t/**\n\t * Used my v-model\n\t */\n\tmodelValue: string | null;\n\n\t/**\n\t * Defines the name of the input.\n\t */\n\tname?: InputHTMLAttributes['name'];\n\n\t/**\n\t * Keeps the hint displayed.\n\t */\n\tpersistentHint?: boolean;\n\n\t/**\n\t * String displayed when there's no data.\n\t */\n\tplaceholder?: InputHTMLAttributes['placeholder'];\n\n\t/**\n\t * Name of the icon to be added at the start of the input.\n\t */\n\t// eslint-disable-next-line vue/prop-name-casing\n\t'prepend:icon'?: string;\n\n\t/**\n\t * Sets the input in a readonly state.\n\t */\n\treadonly?: InputHTMLAttributes['readonly'];\n\n\t/**\n\t * Sets the input as required.\n\t */\n\trequired?: boolean;\n\n\t/**\n\t * Reverses the layout. Applicable in every direction the order of the label and the input is swapped.\n\t */\n\treverse?: boolean;\n\n\t/**\n\t * Type of the input. Returns the content type of the object.\n\t */\n\ttype?: HTMLInputElement['type'];\n};\n\nconst props = defineProps<BbTextInputProps>();\n\nexport type BbTextInputEvents = BaseTextInputEvents;\nconst emit = defineEmits<BaseTextInputEvents>();\n\nexport type BbTextInputSlots = BaseTextInputSlots & {\n\tlabel?: (props: { text: string; hasErrors: boolean }) => any;\n};\n\ndefineSlots<BbTextInputSlots>();\n\nconst active = ref(false);\nconst showHint = computed(() => props.persistentHint || active.value);\n\n/**\n * These events are just propagated\n */\nconst eventListeners = {\n\tonBlur: (event: FocusEvent) => {\n\t\tactive.value = false;\n\t\temit('blur', event);\n\t},\n\tonChange: (event: Event) => emit('change', event),\n\tonClick: (event: MouseEvent) => emit('click', event),\n\tonFocus: (event: FocusEvent) => {\n\t\tactive.value = true;\n\t\temit('focus', event);\n\t},\n\tonInput: (event: Event) => emit('input', event),\n\tonKeydown: (event: KeyboardEvent) => emit('keydown', event),\n\tonMousedown: (event: MouseEvent) => emit('mousedown', event),\n\tonMouseup: (event: MouseEvent) => emit('mouseup', event),\n\t'onUpdate:modelValue': (value: string | null) =>\n\t\temit('update:modelValue', value),\n};\n</script>\n\n<style lang=\"postcss\">\n@import '@/assets/css/BbTextInput';\n</style>\n"],"names":["props","__props","emit","__emit","active","ref","showHint","computed","eventListeners","event","value"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA2KA,UAAMA,IAAQC,GAGRC,IAAOC,GAQPC,IAASC,EAAI,EAAK,GAClBC,IAAWC,EAAS,MAAMP,EAAM,kBAAkBI,EAAO,KAAK,GAK9DI,IAAiB;AAAA,MACtB,QAAQ,CAACC,MAAsB;AAC9B,QAAAL,EAAO,QAAQ,IACfF,EAAK,QAAQO,CAAK;AAAA,MACnB;AAAA,MACA,UAAU,CAACA,MAAiBP,EAAK,UAAUO,CAAK;AAAA,MAChD,SAAS,CAACA,MAAsBP,EAAK,SAASO,CAAK;AAAA,MACnD,SAAS,CAACA,MAAsB;AAC/B,QAAAL,EAAO,QAAQ,IACfF,EAAK,SAASO,CAAK;AAAA,MACpB;AAAA,MACA,SAAS,CAACA,MAAiBP,EAAK,SAASO,CAAK;AAAA,MAC9C,WAAW,CAACA,MAAyBP,EAAK,WAAWO,CAAK;AAAA,MAC1D,aAAa,CAACA,MAAsBP,EAAK,aAAaO,CAAK;AAAA,MAC3D,WAAW,CAACA,MAAsBP,EAAK,WAAWO,CAAK;AAAA,MACvD,uBAAuB,CAACC,MACvBR,EAAK,qBAAqBQ,CAAK;AAAA,IAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index115.js","sources":["../src/components/BbToast/BbToast.vue"],"sourcesContent":["<template>\n\t<teleport to=\"body\">\n\t\t<div class=\"bb-toast\" :class=\"{ [`bb-toast--${placement}`]: true }\">\n\t\t\t<TransitionGroup name=\"toast\">\n\t\t\t\t<BbToastMessage\n\t\t\t\t\tv-for=\"message in state.stack\"\n\t\t\t\t\t:key=\"message.id\"\n\t\t\t\t\tv-bind=\"message\"\n\t\t\t\t\t@click:close=\"dismiss\"\n\t\t\t\t/>\n\t\t\t</TransitionGroup>\n\t\t</div>\n\t</teleport>\n</template>\n\n<script setup lang=\"ts\">\nimport { state, useToast } from '../../composables/useToast';\nconst { dismiss } = useToast();\n\nimport BbToastMessage from './BbToastMessage.vue';\nexport type BbToastProps = {\n\t/**\n\t * Placement of the messages on the screen.\n\t */\n\tplacement?:\n\t\t| 'bottom'\n\t\t| 'bottom-start'\n\t\t| 'bottom-end'\n\t\t| 'top'\n\t\t| 'top-start'\n\t\t| 'top-end';\n};\n\nwithDefaults(defineProps<BbToastProps>(), {\n\tplacement: 'bottom',\n});\n</script>\n\n<style lang=\"postcss\">\n@import '@/assets/css/BbToast';\n</style>\n"],"names":["dismiss","useToast"],"mappings":";;;;;;;;;AAiBM,UAAA,EAAE,SAAAA,MAAYC;;;;;;;;;;;;;;;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index117.js","sources":["../src/components/BbTooltip/BbTooltip.vue"],"sourcesContent":["<template>\n\t<span class=\"bb-tooltip\" v-bind=\"attributes\">\n\t\t<span ref=\"wrapper\" class=\"bb-tooltip__wrapper\">\n\t\t\t<slot\n\t\t\t\tname=\"activator\"\n\t\t\t\tv-bind=\"{\n\t\t\t\t\tprops: {\n\t\t\t\t\t\t...(hasOpenedOnce ? { 'aria-describedby': id } : {}),\n\t\t\t\t\t\tonMouseenter,\n\t\t\t\t\t\tonFocus,\n\t\t\t\t\t\tonBlur: closeTooltip,\n\t\t\t\t\t\tdisabled: disabled,\n\t\t\t\t\t},\n\t\t\t\t\tclosed: closed,\n\t\t\t\t\tclosing: closing,\n\t\t\t\t\tdisabled: disabled,\n\t\t\t\t\topen: open,\n\t\t\t\t\topening: opening,\n\t\t\t\t\tplacement: placement,\n\t\t\t\t}\"\n\t\t\t></slot>\n\t\t</span>\n\n\t\t<CommonFloating\n\t\t\tv-if=\"hasOpenedOnce || eager\"\n\t\t\t:arrow-padding=\"arrowPadding\"\n\t\t\tbase-class=\"bb-tooltip\"\n\t\t\t:container-attributes=\"{\n\t\t\t\tid: id,\n\t\t\t}\"\n\t\t\t:eager=\"eager\"\n\t\t\t:offset=\"offset\"\n\t\t\t:open=\"open\"\n\t\t\t:padding=\"padding\"\n\t\t\t:placement=\"placement\"\n\t\t\t:theme=\"theme\"\n\t\t\t:transition-duration=\"transitionDuration\"\n\t\t\t:wrapper=\"wrapper\"\n\t\t>\n\t\t\t<span ref=\"content\" class=\"bb-tooltip__content\">\n\t\t\t\t<BaseButton\n\t\t\t\t\tv-if=\"showClose\"\n\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\taria-label=\"Chiudi\"\n\t\t\t\t\tclass=\"bb-tooltip__close\"\n\t\t\t\t\ttabindex=\"-1\"\n\t\t\t\t\t@click=\"onClickClose\"\n\t\t\t\t>\n\t\t\t\t\t<svg\n\t\t\t\t\t\tfill=\"none\"\n\t\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<path\n\t\t\t\t\t\t\td=\"M23 23L1 1M23 1L1 23\"\n\t\t\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\t\t\tstroke-linecap=\"round\"\n\t\t\t\t\t\t\tstroke-width=\"2\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</svg>\n\t\t\t\t</BaseButton>\n\t\t\t\t<slot></slot>\n\t\t\t</span>\n\t\t</CommonFloating>\n\t</span>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, defineAsyncComponent, ref, watch } from 'vue';\nimport {\n\tuseFloating,\n\tautoUpdate,\n\tflip,\n\tshift,\n\tarrow,\n\thide,\n} from '@floating-ui/vue';\nimport { useId } from '@/composables/useId';\nimport { wait } from '@/utilities/functions/wait';\nimport BaseButton from '../BaseButton/BaseButton.vue';\nimport type { CommonProps } from '@/types/CommonProps';\nimport type { Placement } from '@floating-ui/vue';\nimport { throttle } from '@/utilities/functions/throttle';\nimport { waitFor } from '@/utilities/functions/waitFor';\n\nconst CommonFloating = defineAsyncComponent(\n\t() => import('../CommonFloating.vue')\n);\n\nexport type BbTooltipProps = Pick<\n\tCommonProps,\n\t| 'arrowPadding'\n\t| 'block'\n\t| 'disabled'\n\t| 'eager'\n\t| 'id'\n\t| 'offset'\n\t| 'padding'\n\t| 'placement'\n\t| 'showClose'\n\t| 'theme'\n\t| 'transitionDuration'\n>;\n\nconst props = withDefaults(defineProps<BbTooltipProps>(), {\n\tarrowPadding: 10,\n\tpadding: 10,\n\tplacement: 'top',\n\tshowClose: true,\n\ttheme: 'default',\n\ttransitionDuration: 250,\n});\n\ntype BbTooltipSlots = {\n\tactivator?: (props: {\n\t\tprops: {\n\t\t\t'aria-describedby': string;\n\t\t\tonMouseenter: typeof onMouseenter;\n\t\t\tonFocus: typeof onFocus;\n\t\t\tonBlur: typeof closeTooltip;\n\t\t};\n\t\tclosed: boolean;\n\t\tclosing: boolean;\n\t\tdisabled?: boolean;\n\t\topen: boolean;\n\t\topening: boolean;\n\t\tplacement: Placement;\n\t}) => any;\n\tdefault?: (props: object) => any;\n};\n\ndefineSlots<BbTooltipSlots>();\n\nconst id = `bb_${props.id ?? useId().id.value}`;\n\nconst wrapper = ref<any>();\nconst content = ref<HTMLElement>();\nconst bubblearrow = ref<HTMLElement>();\n\nconst { floatingStyles, placement, middlewareData } = useFloating(\n\twrapper,\n\tcontent,\n\t{\n\t\tplacement: props.placement,\n\t\twhileElementsMounted: autoUpdate,\n\t\tmiddleware: [\n\t\t\tflip(),\n\t\t\tshift({ padding: props.padding }),\n\t\t\tarrow({\n\t\t\t\telement: bubblearrow,\n\t\t\t\tpadding: props.arrowPadding,\n\t\t\t}),\n\t\t\thide(),\n\t\t],\n\t}\n);\n\nlet stopWatcher = () => {};\n\nconst canOpen = ref(true);\n\nconst opening = ref(false);\nconst open = ref(false);\nconst closing = ref(false);\nconst closed = ref(true);\n\nconst arrowAttributes = computed(() => {\n\tif (middlewareData.value.arrow) {\n\t\tconst { x, y } = middlewareData.value.arrow;\n\t\treturn {\n\t\t\tstyle: {\n\t\t\t\tleft: `${x}px`,\n\t\t\t\ttop: `${y}px`,\n\t\t\t},\n\t\t};\n\t}\n\treturn undefined;\n});\n\nconst onMouseenter = () => {\n\tif (open.value || opening.value || props.disabled) return;\n\topenTooltip();\n\tdocument.addEventListener('mouseover', onMouseOver, { passive: true });\n\tdocument.addEventListener('keydown', onEsc, { passive: true });\n};\n\nconst onFocus = onMouseenter;\n\nconst onMouseOver = throttle((event: Event) => {\n\tconst target = event.target;\n\tif (!target) return;\n\tif (target instanceof HTMLElement) {\n\t\tlet isOutside = true;\n\n\t\tif (wrapper.value) {\n\t\t\tif (wrapper.value.contains(target)) {\n\t\t\t\tisOutside = false;\n\t\t\t}\n\t\t}\n\t\tif (content.value) {\n\t\t\tif (content.value.contains(target)) {\n\t\t\t\tisOutside = false;\n\t\t\t}\n\t\t}\n\n\t\tif (isOutside) {\n\t\t\tcloseTooltip();\n\t\t}\n\t}\n}, props.transitionDuration);\n\nconst onEsc = (event: KeyboardEvent) => {\n\tif (open.value) {\n\t\tif (event.key === 'Escape') {\n\t\t\tcloseTooltip();\n\t\t}\n\t}\n};\n\n/* On click of close button tooltip is disallowed from reappearing */\nconst onClickClose = () => {\n\tcanOpen.value = false;\n\tcloseTooltip();\n};\n\nconst hasOpenedOnce = ref(false);\nconst openTooltip = throttle(async () => {\n\tif (!canOpen.value) return;\n\thasOpenedOnce.value = true;\n\tclosed.value = false;\n\tclosing.value = false;\n\topening.value = true;\n\tawait wait(50);\n\topen.value = true;\n\topening.value = false;\n\tstopWatcher = watch(\n\t\t() => middlewareData.value.hide?.referenceHidden,\n\t\tasync (value) => {\n\t\t\tif (!closing.value && !closed.value && value) {\n\t\t\t\tawait closeTooltip();\n\t\t\t}\n\t\t}\n\t);\n}, props.transitionDuration);\n\nconst closeTooltip = throttle(async () => {\n\tawait waitFor(() => !opening.value);\n\tdocument.removeEventListener('mouseover', onMouseOver);\n\tdocument.removeEventListener('keydown', onEsc);\n\topen.value = false;\n\topening.value = false;\n\tclosing.value = true;\n\tawait wait(props.transitionDuration);\n\tclosing.value = false;\n\tclosed.value = true;\n\tstopWatcher();\n}, props.transitionDuration);\n\nconst attributes = computed(() => {\n\tconst classes = {\n\t\t'bb-tooltip--block': props.block,\n\t\t[`bb-tooltip--theme-${props.theme}`]: props.theme,\n\t};\n\treturn {\n\t\tclass: classes,\n\t};\n});\n</script>\n\n<style lang=\"postcss\">\n@import '@/assets/css/BbTooltip';\n</style>\n"],"names":["CommonFloating","defineAsyncComponent","props","__props","id","useId","wrapper","ref","content","bubblearrow","floatingStyles","placement","middlewareData","useFloating","autoUpdate","flip","shift","arrow","hide","stopWatcher","canOpen","opening","open","closing","closed","computed","x","y","onMouseenter","openTooltip","onMouseOver","onEsc","onFocus","throttle","event","target","isOutside","closeTooltip","onClickClose","hasOpenedOnce","wait","watch","_a","value","waitFor","attributes"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index119.js","sources":["../src/components/BbTree/BbTree.vue"],"sourcesContent":["<template>\n\t<div\n\t\tv-for=\"item in internalItems\"\n\t\t:key=\"item.identifier\"\n\t\tclass=\"bb-tree\"\n\t\t:class=\"{\n\t\t\t[`bb-tree--depth-${item.depth}`]: true,\n\t\t\t'bb-tree--open': item.open,\n\t\t}\"\n\t>\n\t\t<div class=\"bb-tree-row\">\n\t\t\t<div class=\"bb-tree-main-content\">\n\t\t\t\t<!-- Slot for a speciifc item -->\n\t\t\t\t<slot\n\t\t\t\t\tv-if=\"$slots[item.identifier]\"\n\t\t\t\t\t:depth=\"item.depth\"\n\t\t\t\t\t:expandable=\"item.expandable\"\n\t\t\t\t\t:identifier=\"item.identifier\"\n\t\t\t\t\t:index=\"item.index\"\n\t\t\t\t\t:item=\"item.original\"\n\t\t\t\t\t:name=\"item.identifier\"\n\t\t\t\t\t:offset=\"item.offset\"\n\t\t\t\t\t:open=\"item.open\"\n\t\t\t\t\t:parent=\"item.parent\"\n\t\t\t\t/>\n\t\t\t\t<!-- Slot for all items in this level -->\n\t\t\t\t<slot\n\t\t\t\t\tv-else-if=\"$slots[item.depth]\"\n\t\t\t\t\t:depth=\"item.depth\"\n\t\t\t\t\t:expandable=\"item.expandable\"\n\t\t\t\t\t:identifier=\"item.identifier\"\n\t\t\t\t\t:index=\"item.index\"\n\t\t\t\t\t:item=\"item.original\"\n\t\t\t\t\t:name=\"item.depth\"\n\t\t\t\t\t:offset=\"item.offset\"\n\t\t\t\t\t:open=\"item.open\"\n\t\t\t\t\t:parent=\"item.parent\"\n\t\t\t\t/>\n\t\t\t\t<!-- Default slot -->\n\t\t\t\t<slot\n\t\t\t\t\tv-else\n\t\t\t\t\t:depth=\"item.depth\"\n\t\t\t\t\t:expandable=\"item.expandable\"\n\t\t\t\t\t:identifier=\"item.identifier\"\n\t\t\t\t\t:index=\"item.index\"\n\t\t\t\t\t:item=\"item.original\"\n\t\t\t\t\t:name=\"'default'\"\n\t\t\t\t\t:offset=\"item.offset\"\n\t\t\t\t\t:open=\"item.open\"\n\t\t\t\t\t:parent=\"item.parent\"\n\t\t\t\t></slot>\n\t\t\t</div>\n\t\t</div>\n\t\t<div :class=\"`bb-tree--depth-${item.depth}-children`\">\n\t\t\t<slot\n\t\t\t\t:depth=\"item.depth\"\n\t\t\t\t:expandable=\"item.expandable\"\n\t\t\t\t:identifier=\"item.identifier\"\n\t\t\t\t:index=\"item.index\"\n\t\t\t\t:item=\"item.original\"\n\t\t\t\t:name=\"`${item.identifier}-children`\"\n\t\t\t\t:offset=\"item.offset\"\n\t\t\t\t:open=\"item.open\"\n\t\t\t\t:parent=\"item.parent\"\n\t\t\t>\n\t\t\t\t<slot\n\t\t\t\t\t:depth=\"item.depth\"\n\t\t\t\t\t:expandable=\"item.expandable\"\n\t\t\t\t\t:identifier=\"item.identifier\"\n\t\t\t\t\t:index=\"item.index\"\n\t\t\t\t\t:item=\"item.original\"\n\t\t\t\t\t:name=\"`${item.depth}-children`\"\n\t\t\t\t\t:offset=\"item.offset\"\n\t\t\t\t\t:open=\"item.open\"\n\t\t\t\t\t:parent=\"item.parent\"\n\t\t\t\t>\n\t\t\t\t\t<BbTree\n\t\t\t\t\t\t:depth=\"item.depth + 1\"\n\t\t\t\t\t\t:expandable=\"expandable\"\n\t\t\t\t\t\t:identifier=\"props.identifier\"\n\t\t\t\t\t\t:items=\"item.children\"\n\t\t\t\t\t\t:parent=\"item\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<template v-for=\"(_, name) in $slots\" #[name]=\"data: any\">\n\t\t\t\t\t\t\t<slot :name=\"name\" v-bind=\"data\" />\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</BbTree>\n\t\t\t\t</slot>\n\t\t\t</slot>\n\t\t</div>\n\t</div>\n</template>\n\n<script setup lang=\"ts\">\nimport { flattenTree } from '@/utilities/functions/flattenTree';\nimport { computed } from 'vue';\n\nexport type TreeItem = {\n\t/**\n\t * Array of children of the current item. Is the key\n\t * with which we can identify whther the node is nested or not.\n\t */\n\tchildren?: TreeItem[];\n\t/**\n\t * Status of the current node. When a node is open\n\t * it's children are displayed. Otherwise its children\n\t * are hidden.\n\t */\n\topen?: boolean;\n\t[key: symbol | string]: any;\n} & Pick<BbTreeProps, 'expandable'>;\n\nexport type BbTreeProps = {\n\t/**\n\t * Array containing the tree like structure of the items.\n\t */\n\titems: TreeItem[];\n\t/**\n\t * Parent of the current node. `undefined` for the first level.\n\t */\n\tparent?: TreeItem;\n\t/**\n\t * Identifier of the item.\n\t */\n\tidentifier?: string | number;\n\t/**\n\t * Current depth of the tree. Starting at 0 for\n\t * the first level increasing at every level down.\n\t */\n\tdepth?: number;\n\t/**\n\t * Defines the item as expandable. It can be a\n\t * global boolean defining all items as expandable.\n\t * Or it can be a function that receives the item,\n\t * depth, and parent of the current node and returns a boolean.\n\t */\n\texpandable?:\n\t\t| boolean\n\t\t| ((item: TreeItem, depth: number, parent?: TreeItem) => boolean);\n};\n\nconst props = withDefaults(defineProps<BbTreeProps>(), {\n\tidentifier: 'id',\n\tdepth: 0,\n\toffset: 0,\n\titems: () => [] as TreeItem[],\n});\n\nexport type BbTreeSlots = {\n\t[key: string]: (props: {\n\t\titem: any;\n\t\tparent?: any;\n\t\tindex: number;\n\t\toffset: number;\n\t\topen: boolean;\n\t\tdepth: number;\n\t\tidentifier?: string | number;\n\t\texpandable: boolean;\n\t}) => any;\n};\ndefineSlots<BbTreeSlots>();\n\nconst itemIsOpen = (item: TreeItem) => {\n\t/* If the item is not expandable it must be open */\n\tif (typeof item.open === 'undefined') return true;\n\treturn item.open;\n};\n\ntype MappedItem = {\n\tchildren: TreeItem['children'];\n\tdepth: NonNullable<BbTreeProps['depth']>;\n\texpandable: boolean;\n\tidentifier: any;\n\tindex: number;\n\toffset: number;\n\topen: boolean;\n\toriginal: any;\n\tparent: BbTreeProps['parent'];\n};\n\nconst internalItems = computed<MappedItem[]>(() => {\n\tlet currentOffset = 0;\n\n\treturn props.items.map((item: TreeItem, index) => {\n\t\tconst open = itemIsOpen(item);\n\t\tconst expandableProp = item.expandable ?? props.expandable;\n\t\tconst offset = currentOffset + 1;\n\n\t\tcurrentOffset = currentOffset + flattenTree([item], 'children').length;\n\n\t\tlet expandable = false;\n\t\tif (typeof expandableProp !== 'undefined') {\n\t\t\tif (typeof expandableProp === 'function')\n\t\t\t\texpandable = expandableProp(item, props.depth, props.parent);\n\t\t\telse expandable = expandableProp;\n\t\t}\n\t\treturn {\n\t\t\tchildren: item.children,\n\t\t\tdepth: props.depth,\n\t\t\texpandable: expandable,\n\t\t\tidentifier: item[props.identifier],\n\t\t\toffset,\n\t\t\tindex,\n\t\t\topen,\n\t\t\toriginal: item,\n\t\t\tparent: props.parent,\n\t\t};\n\t});\n});\n</script>\n\n<style lang=\"postcss\">\n@import '@/assets/css/BbTree';\n</style>\n"],"names":["props","__props","itemIsOpen","item","internalItems","computed","currentOffset","index","open","expandableProp","offset","flattenTree","expandable"],"mappings":";;;;;;;;;;;;AA6IA,UAAMA,IAAQC,GAqBRC,IAAa,CAACC,MAEf,OAAOA,EAAK,OAAS,MAAoB,KACtCA,EAAK,MAePC,IAAgBC,EAAuB,MAAM;AAClD,UAAIC,IAAgB;AAEpB,aAAON,EAAM,MAAM,IAAI,CAACG,GAAgBI,MAAU;AAC3C,cAAAC,IAAON,EAAWC,CAAI,GACtBM,IAAiBN,EAAK,cAAcH,EAAM,YAC1CU,IAASJ,IAAgB;AAE/B,QAAAA,IAAgBA,IAAgBK,EAAY,CAACR,CAAI,GAAG,UAAU,EAAE;AAEhE,YAAIS,IAAa;AACb,eAAA,OAAOH,IAAmB,QACzB,OAAOA,KAAmB,aAC7BG,IAAaH,EAAeN,GAAMH,EAAM,OAAOA,EAAM,MAAM,IAC1CY,IAAAH,IAEZ;AAAA,UACN,UAAUN,EAAK;AAAA,UACf,OAAOH,EAAM;AAAA,UACb,YAAAY;AAAA,UACA,YAAYT,EAAKH,EAAM,UAAU;AAAA,UACjC,QAAAU;AAAA,UACA,OAAAH;AAAA,UACA,MAAAC;AAAA,UACA,UAAUL;AAAA,UACV,QAAQH,EAAM;AAAA,QAAA;AAAA,MACf,CACA;AAAA,IAAA,CACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index12.js","sources":["../src/composables/useToast.ts"],"sourcesContent":["import { wait } from '@/utilities/functions/wait';\nimport { reactive } from 'vue';\nimport { useId } from './useId';\nimport type { CommonProps } from '@/types/CommonProps';\n\nexport type Message = {\n\t/**\n\t * Title of the message. Displayed in a more prominant fashion.\n\t */\n\ttitle?: string;\n\t/**\n\t * Text content of the toast message.\n\t */\n\ttext: string;\n\t/**\n\t * Name of the icon to display.\n\t */\n\ticon?: string;\n\t/**\n\t * Theme of the toast message. By default the theme is `default`.\n\t */\n\ttheme?: string;\n\t/**\n\t * Identifier of the message\n\t */\n\tid: string;\n} & Pick<CommonProps, 'showClose'>;\n\ntype MessageParameter =\n\t| string\n\t| (Pick<Message, 'title' | 'text' | 'icon' | 'theme'> &\n\t\t\t/* These props are mutually exclusive */\n\t\t\t(| {\n\t\t\t\t\t\t/**\n\t\t\t\t\t\t * Time in milliseconds before the message disappears\n\t\t\t\t\t\t */\n\t\t\t\t\t\ttimeout?: undefined;\n\t\t\t\t\t\t/**\n\t\t\t\t\t\t * Setting the message as persistent will prevent the message from being dismissed automatically\n\t\t\t\t\t\t */\n\t\t\t\t\t\tpersistent?: undefined | false;\n\t\t\t\t\t\t/**\n\t\t\t\t\t\t * Whether to show the closing action to dismiss the message.\n\t\t\t\t\t\t * Show close is optional if the message is not persistent\n\t\t\t\t\t\t */\n\t\t\t\t\t\tshowClose?: Message['showClose'];\n\t\t\t\t }\n\t\t\t\t| {\n\t\t\t\t\t\t/**\n\t\t\t\t\t\t * Time in milliseconds before the message disappears\n\t\t\t\t\t\t */\n\t\t\t\t\t\ttimeout: number;\n\t\t\t\t\t\t/**\n\t\t\t\t\t\t * Setting the message as persistent will prevent the message from being dismissed automatically\n\t\t\t\t\t\t */\n\t\t\t\t\t\tpersistent?: undefined | false;\n\t\t\t\t\t\t/**\n\t\t\t\t\t\t * Whether to show the closing action to dismiss the message.\n\t\t\t\t\t\t * Show close is optional if the message is not persistent\n\t\t\t\t\t\t */\n\t\t\t\t\t\tshowClose?: Message['showClose'];\n\t\t\t\t }\n\t\t\t\t| {\n\t\t\t\t\t\t/**\n\t\t\t\t\t\t * Time in milliseconds before the message disappears\n\t\t\t\t\t\t */\n\t\t\t\t\t\ttimeout?: undefined;\n\t\t\t\t\t\t/**\n\t\t\t\t\t\t * Setting the message as persistent will prevent the message from being dismissed automatically\n\t\t\t\t\t\t */\n\t\t\t\t\t\tpersistent: true;\n\t\t\t\t\t\t/**\n\t\t\t\t\t\t * Whether to show the closing action to dismiss the message.\n\t\t\t\t\t\t * Show close is mandatory if the message is persistent\n\t\t\t\t\t\t */\n\t\t\t\t\t\tshowClose: true;\n\t\t\t\t }\n\t\t\t));\n\nexport const state = reactive({\n\tstack: [] as Message[],\n});\n\nexport const useToast = () => {\n\t/**\n\t * Dismisses a specific message\n\t */\n\tconst dismiss = (id: Message['id']) =>\n\t\t(state.stack = state.stack.filter((el) => el.id !== id));\n\tconst dismissAll = () => (state.stack = []);\n\tconst toast = (message: MessageParameter) => {\n\t\tconst id = useId().id.value;\n\t\tlet title: Message['title'];\n\t\tlet text: Message['text'];\n\t\tlet icon: Message['icon'];\n\t\tlet theme: Message['theme'];\n\t\tlet showClose: Message['showClose'];\n\t\tconst defaultTimeout = 6000;\n\n\t\tif (typeof message === 'string') {\n\t\t\ttext = message;\n\t\t} else {\n\t\t\tif (typeof message.timeout === 'number' && message.timeout <= 0) {\n\t\t\t\tthrow new Error(`Toast messages cannot have a zero or less timeout`);\n\t\t\t}\n\t\t\ticon = message.icon;\n\t\t\tshowClose = message.showClose;\n\t\t\ttext = message.text;\n\t\t\ttheme = message.theme;\n\t\t\ttitle = message.title;\n\t\t}\n\t\tstate.stack = state.stack.concat({\n\t\t\ticon,\n\t\t\tid,\n\t\t\tshowClose,\n\t\t\ttext,\n\t\t\ttheme,\n\t\t\ttitle,\n\t\t});\n\t\tif (\n\t\t\t(typeof message === 'object' && !message.persistent) ||\n\t\t\ttypeof message === 'string'\n\t\t) {\n\t\t\tlet timeout: number;\n\n\t\t\tif (typeof message === 'object' && message.timeout) {\n\t\t\t\ttimeout = message.timeout;\n\t\t\t} else timeout = defaultTimeout;\n\n\t\t\twait(timeout).then(() => {\n\t\t\t\tdismiss(id);\n\t\t\t});\n\t\t}\n\t\treturn id;\n\t};\n\treturn {\n\t\ttoast,\n\t\tdismiss,\n\t\tdismissAll,\n\t};\n};\n"],"names":["state","reactive","useToast","dismiss","id","el","message","useId","title","text","icon","theme","showClose","defaultTimeout","timeout","wait"],"mappings":";;;AA+EO,MAAMA,IAAQC,EAAS;AAAA,EAC7B,OAAO,CAAC;AACT,CAAC,GAEYC,IAAW,MAAM;AAI7B,QAAMC,IAAU,CAACC,MACfJ,EAAM,QAAQA,EAAM,MAAM,OAAO,CAACK,MAAOA,EAAG,OAAOD,CAAE;AA+ChD,SAAA;AAAA,IACN,OA9Ca,CAACE,MAA8B;AACtC,YAAAF,IAAKG,IAAQ,GAAG;AAClB,UAAAC,GACAC,GACAC,GACAC,GACAC;AACJ,YAAMC,IAAiB;AAEnB,UAAA,OAAOP,KAAY;AACf,QAAAG,IAAAH;AAAA,WACD;AACN,YAAI,OAAOA,EAAQ,WAAY,YAAYA,EAAQ,WAAW;AACvD,gBAAA,IAAI,MAAM,mDAAmD;AAEpE,QAAAI,IAAOJ,EAAQ,MACfM,IAAYN,EAAQ,WACpBG,IAAOH,EAAQ,MACfK,IAAQL,EAAQ,OAChBE,IAAQF,EAAQ;AAAA,MACjB;AAUE,UATIN,EAAA,QAAQA,EAAM,MAAM,OAAO;AAAA,QAChC,MAAAU;AAAA,QACA,IAAAN;AAAA,QACA,WAAAQ;AAAA,QACA,MAAAH;AAAA,QACA,OAAAE;AAAA,QACA,OAAAH;AAAA,MAAA,CACA,GAEC,OAAOF,KAAY,YAAY,CAACA,EAAQ,cACzC,OAAOA,KAAY,UAClB;AACG,YAAAQ;AAEJ,QAAI,OAAOR,KAAY,YAAYA,EAAQ,UAC1CQ,IAAUR,EAAQ,UACFQ,IAAAD,GAEZE,EAAAD,CAAO,EAAE,KAAK,MAAM;AACxB,UAAAX,EAAQC,CAAE;AAAA,QAAA,CACV;AAAA,MACF;AACO,aAAAA;AAAA,IAAA;AAAA,IAIP,SAAAD;AAAA,IACA,YAjDkB,MAAOH,EAAM,QAAQ,CAAA;AAAA,EAiDvC;AAEF;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index121.js","sources":["../src/components/BbChip/BbChip.vue"],"sourcesContent":["<template>\n\t<span class=\"bb-chip\"\n\t\t><span class=\"bb-chip__content\"\n\t\t\t><slot>{{ text }}</slot></span\n\t\t><button\n\t\t\tv-if=\"clearable\"\n\t\t\t:aria-label=\"clearableLabel\"\n\t\t\tclass=\"bb-chip__clear-button\"\n\t\t\ttype=\"button\"\n\t\t\t@click.stop.prevent=\"onClear\"\n\t\t>\n\t\t\t<svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t\t\t<path\n\t\t\t\t\td=\"M6.4 19L5 17.6l5.6-5.6L5 6.4L6.4 5l5.6 5.6L17.6 5L19 6.4L13.4 12l5.6 5.6l-1.4 1.4l-5.6-5.6z\"\n\t\t\t\t\tfill=\"currentColor\"\n\t\t\t\t/>\n\t\t\t</svg></button\n\t></span>\n</template>\n\n<script setup lang=\"ts\">\nimport type { CommonProps } from '@/types/CommonProps';\n\nexport type BbChipProps = Pick<CommonProps, 'text'> & {\n\t/**\n\t * Renders a button with a close icon. Used to indicate the possibility of deleting the item.\n\t */\n\tclearable?: boolean;\n\t/**\n\t * The label the clearing button must have\n\t */\n\tclearableLabel?: string;\n};\n\nwithDefaults(defineProps<BbChipProps>(), {\n\tclearable: true,\n\tclearableLabel: 'Elimina',\n});\n\nexport type BbChipEvents = {\n\t(e: 'click:clear', event: MouseEvent): void;\n};\n\ndefineSlots<{\n\tdefault?: (props: object) => any;\n}>();\n\nconst emit = defineEmits(['click:clear']);\nconst onClear = (event: MouseEvent) => {\n\temit('click:clear', event);\n};\n</script>\n\n<style lang=\"postcss\">\n@import '@/assets/css/BbChip';\n</style>\n"],"names":["emit","__emit","onClear","event"],"mappings":";;;;;;;;;;;;;;;;;;;;AA+CA,UAAMA,IAAOC,GACPC,IAAU,CAACC,MAAsB;AACtC,MAAAH,EAAK,eAAeG,CAAK;AAAA,IAAA;;;;;;;;;;;;;;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index122.js","sources":["../src/components/BbCollapsible/BbCollapsible.vue"],"sourcesContent":["<template>\n\t<component v-bind=\"collapsibleAttributes\" :is=\"tag\">\n\t\t<component\n\t\t\t:is=\"tag\"\n\t\t\tclass=\"bb-collapsible__content\"\n\t\t\t:style=\"collapsibleAttributes.style\"\n\t\t>\n\t\t\t<slot v-if=\"eager || hasRenderedOnce\"></slot>\n\t\t</component>\n\t</component>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref, watch } from 'vue';\n\nimport type { CommonProps } from '@/types/CommonProps';\n\nexport type BbCollapsibleProps = Pick<\n\tCommonProps,\n\t'eager' | 'transitionDuration'\n> & {\n\t/**\n\t * Used by v-model to trigger opening / closing the collapsible\n\t */\n\tmodelValue: boolean;\n\t/**\n\t * Any HTML tag corresponding to a non-void HTMl element.\n\t */\n\ttag?: string;\n};\n\nconst props = withDefaults(defineProps<BbCollapsibleProps>(), {\n\ttransitionDuration: 250,\n\ttag: 'div',\n});\n\ndefineSlots<{\n\tdefault?: (props: object) => any;\n}>();\n\nconst visible = ref(props.modelValue);\nconst hasRenderedOnce = ref(visible.value);\n\n/**\n * If the component is lazy render content on first time modelValue is true\n */\nconst cleanup = watch(\n\t() => props.modelValue,\n\t(value) => {\n\t\tif (value) {\n\t\t\thasRenderedOnce.value = true;\n\t\t\tcleanup();\n\t\t}\n\t}\n);\nif (visible.value) cleanup();\n\nconst collapsibleAttributes = computed(() => {\n\treturn {\n\t\tclass: {\n\t\t\t'bb-collapsible': true,\n\t\t\t'bb-collapsible--open': props.modelValue,\n\t\t\t'bb-collapsible--closed': !props.modelValue,\n\t\t},\n\t\tstyle: {\n\t\t\ttransitionDuration: props.transitionDuration + 'ms',\n\t\t},\n\t};\n});\n</script>\n\n<style lang=\"postcss\">\n@import '@/assets/css/BbCollapsible';\n</style>\n"],"names":["props","__props","visible","ref","hasRenderedOnce","cleanup","watch","value","collapsibleAttributes","computed"],"mappings":";;;;;;;;;;AA+BA,UAAMA,IAAQC,GASRC,IAAUC,EAAIH,EAAM,UAAU,GAC9BI,IAAkBD,EAAID,EAAQ,KAAK,GAKnCG,IAAUC;AAAA,MACf,MAAMN,EAAM;AAAA,MACZ,CAACO,MAAU;AACV,QAAIA,MACHH,EAAgB,QAAQ,IAChBC;MAEV;AAAA,IAAA;AAEG,IAAAH,EAAQ,SAAeG;AAErB,UAAAG,IAAwBC,EAAS,OAC/B;AAAA,MACN,OAAO;AAAA,QACN,kBAAkB;AAAA,QAClB,wBAAwBT,EAAM;AAAA,QAC9B,0BAA0B,CAACA,EAAM;AAAA,MAClC;AAAA,MACA,OAAO;AAAA,QACN,oBAAoBA,EAAM,qBAAqB;AAAA,MAChD;AAAA,IAAA,EAED;;;;;;;;;;;;;;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index123.js","sources":["../src/components/BbIcon/BbIcon.vue"],"sourcesContent":["<template>\n\t<i v-bind=\"iconAttributes\" v-html=\"icon\"></i>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, getCurrentInstance, inject, ref, watchEffect } from 'vue';\nimport { isCssColor } from '@/utilities/functions/isCssColor';\nimport type { Size as S } from '@/types/CommonProps';\n\nexport type Size = {\n\txs: number;\n\tsm: number;\n\tmd: number;\n\tlg: number;\n\txl: number;\n\txxl: number;\n};\n\nexport type BbIconProps = S<Size> & {\n\t/**\n\t * Define a color for the component.\n\t *\n\t * Either a custom color or a coded color in common HEX, RGB, etc... format.\n\t */\n\tcolor?: string;\n\t/**\n\t * Name of the icon to use\n\t */\n\ttype: string;\n};\nconst props = withDefaults(defineProps<BbIconProps>(), {\n\tsize: 'md',\n});\nlet icons: Record<string, () => Promise<string>> | undefined;\n// @ts-expect-error possibily undef\nconst isNuxt = !!getCurrentInstance()?.proxy?.$nuxt;\n\nif (isNuxt) {\n\t// @ts-expect-error possibily undef\n\tif (process.client) {\n\t\t// @ts-expect-error possibily undef\n\t\ticons = useNuxtApp()[`$icons`] as typeof icons; // eslint-disable-line no-undef\n\t}\n} else {\n\ticons = inject('icons');\n}\n\nconst sizeMap: Size = {\n\txs: 12,\n\tsm: 16,\n\tmd: 24,\n\tlg: 28,\n\txl: 36,\n\txxl: 40,\n};\n\nconst iconAttributes = computed(() => {\n\tconst classes: any = {\n\t\t'bb-icon': true,\n\t};\n\tconst width = computed(() => {\n\t\tlet dimension: number;\n\t\tif (typeof props.size === 'string') {\n\t\t\tdimension = sizeMap[props.size as keyof Size] ?? parseInt(props.size, 10);\n\t\t} else if (typeof props.size === 'number') {\n\t\t\tdimension = props.size;\n\t\t} else {\n\t\t\tdimension = 24;\n\t\t}\n\t\treturn dimension + `px`;\n\t});\n\tlet style: { [key: string]: any } = { '--size': width.value };\n\n\tif (props.color) {\n\t\tif (isCssColor(props.color)) {\n\t\t\tstyle.color = props.color;\n\t\t} else {\n\t\t\tclasses[`bb-icon--${props.color}`] = true;\n\t\t}\n\t}\n\treturn {\n\t\tclass: classes,\n\t\tstyle,\n\t};\n});\n\nconst icon = ref<string | null>(null);\n\nwatchEffect(async () => {\n\tif (icons) {\n\t\tif (typeof icons[props.type] === 'undefined')\n\t\t\tthrow new Error(`Icon \"${props.type}\" does not exist.`);\n\t\ticon.value = await icons[props.type]();\n\t}\n});\n</script>\n\n<style lang=\"postcss\">\n@import '@/assets/css/BbIcon';\n</style>\n"],"names":["props","__props","icons","_b","_a","getCurrentInstance","inject","sizeMap","iconAttributes","computed","classes","style","dimension","isCssColor","icon","ref","watchEffect"],"mappings":";;;;;;;;;;;AA8BA,UAAMA,IAAQC;AAGV,QAAAC;AAIJ,IAFe,CAAC,GAACC,KAAAC,IAAAC,EAAA,MAAA,gBAAAD,EAAsB,UAAtB,QAAAD,EAA6B,SAIzC,QAAQ,WAEHD,IAAA,WAAA,EAAa,UAGtBA,IAAQI,EAAO,OAAO;AAGvB,UAAMC,IAAgB;AAAA,MACrB,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,KAAK;AAAA,IAAA,GAGAC,IAAiBC,EAAS,MAAM;AACrC,YAAMC,IAAe;AAAA,QACpB,WAAW;AAAA,MAAA;AAaZ,UAAIC,IAAgC,EAAE,UAXxBF,EAAS,MAAM;AACxB,YAAAG;AACA,eAAA,OAAOZ,EAAM,QAAS,WACzBY,IAAYL,EAAQP,EAAM,IAAkB,KAAK,SAASA,EAAM,MAAM,EAAE,IAC9D,OAAOA,EAAM,QAAS,WAChCY,IAAYZ,EAAM,OAENY,IAAA,IAENA,IAAY;AAAA,MAAA,CACnB,EACqD,MAAM;AAE5D,aAAIZ,EAAM,UACLa,EAAWb,EAAM,KAAK,IACzBW,EAAM,QAAQX,EAAM,QAEpBU,EAAQ,YAAYV,EAAM,KAAK,EAAE,IAAI,KAGhC;AAAA,QACN,OAAOU;AAAA,QACP,OAAAC;AAAA,MAAA;AAAA,IACD,CACA,GAEKG,IAAOC,EAAmB,IAAI;AAEpC,WAAAC,EAAY,YAAY;AACvB,UAAId,GAAO;AACV,YAAI,OAAOA,EAAMF,EAAM,IAAI,IAAM;AAChC,gBAAM,IAAI,MAAM,SAASA,EAAM,IAAI,mBAAmB;AACvD,QAAAc,EAAK,QAAQ,MAAMZ,EAAMF,EAAM,IAAI,EAAE;AAAA,MACtC;AAAA,IAAA,CACA;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index124.js","sources":["../src/components/BbSmoothHeight/BbSmoothHeight.vue"],"sourcesContent":["<template>\n\t<component\n\t\t:is=\"tag\"\n\t\tref=\"container\"\n\t\tclass=\"bb-smooth-height\"\n\t\t:style=\"{ 'transition-duration': props.transitionDuration / 1000 + 's' }\"\n\t>\n\t\t<component :is=\"tag\" ref=\"content\" class=\"content\">\n\t\t\t<slot />\n\t\t</component>\n\t</component>\n</template>\n\n<script setup lang=\"ts\">\nimport type { CommonProps, NonVoidElementTag } from '@/types/CommonProps';\nimport { throttle } from '@/utilities/functions/throttle';\nimport { ref, onMounted, onBeforeUnmount } from 'vue';\n\nexport type BbSmoothHeightProps = {\n\t/**\n\t * Options to pass to the MutationObserver\n\t */\n\tmutationOptions?: MutationObserverInit; // eslint-disable-line no-undef\n\t/**\n\t * Options to pass to the ResizeObserver\n\t */\n\tresizeOptions?: ResizeObserverOptions; // eslint-disable-line no-undef\n\t/**\n\t * Define which strategy to use. By default is used 'resize' which means the\n\t * component will update on resizing.\n\t * You can also define 'mutation' to use a MutationObserver\n\t */\n\tstrategy?: 'resize' | 'mutation';\n} & NonVoidElementTag &\n\tPick<CommonProps, 'transitionDuration'>;\n\nconst props = withDefaults(defineProps<BbSmoothHeightProps>(), {\n\ttransitionDuration: 200,\n\tstrategy: 'resize',\n\tmutationOptions: () => ({ childList: true }),\n\ttag: 'div',\n});\n\nexport type BbSmoothHeightSlots = {\n\tdefault?: (props: object) => any;\n};\n\ndefineSlots<BbSmoothHeightSlots>();\n\nconst container = ref<HTMLElement | null>(null);\nconst content = ref<HTMLElement | null>(null);\nconst observer = ref<ResizeObserver | MutationObserver | null>(null);\n\nif (globalThis.ResizeObserver) {\n\tonMounted(() => {\n\t\tif (props.strategy === 'resize') {\n\t\t\tif (content.value) {\n\t\t\t\tobserver.value = new ResizeObserver(onContentGrow);\n\t\t\t\tobserver.value.observe(content.value, props.resizeOptions);\n\t\t\t}\n\t\t} else if (props.strategy === 'mutation') {\n\t\t\tif (content.value) {\n\t\t\t\tobserver.value = new MutationObserver(onContentGrow);\n\t\t\t\tobserver.value.observe(content.value, props.mutationOptions);\n\t\t\t}\n\t\t}\n\t\tonContentGrow();\n\t});\n\tonBeforeUnmount(() => {\n\t\tif (observer.value) {\n\t\t\tobserver.value.disconnect();\n\t\t}\n\t});\n}\n\n/**\n * This is called when content changes.\n * It could be called numerous times so throttle every 200ms\n */\nconst onContentGrow = throttle(() => {\n\tif (container.value && content.value) {\n\t\tconst contentHeight = content.value.scrollHeight;\n\t\tcontainer.value.style.height = '0px';\n\t\tcontainer.value.style.height = `${contentHeight}px`;\n\t}\n}, 200);\n</script>\n\n<style lang=\"postcss\">\n@import '@/assets/css/BbSmoothHeight';\n</style>\n"],"names":["props","__props","container","ref","content","observer","onMounted","onContentGrow","onBeforeUnmount","throttle","contentHeight"],"mappings":";;;;;;;;;;;;AAoCA,UAAMA,IAAQC,GAaRC,IAAYC,EAAwB,IAAI,GACxCC,IAAUD,EAAwB,IAAI,GACtCE,IAAWF,EAA8C,IAAI;AAEnE,IAAI,WAAW,mBACdG,EAAU,MAAM;AACX,MAAAN,EAAM,aAAa,WAClBI,EAAQ,UACFC,EAAA,QAAQ,IAAI,eAAeE,CAAa,GACjDF,EAAS,MAAM,QAAQD,EAAQ,OAAOJ,EAAM,aAAa,KAEhDA,EAAM,aAAa,cACzBI,EAAQ,UACFC,EAAA,QAAQ,IAAI,iBAAiBE,CAAa,GACnDF,EAAS,MAAM,QAAQD,EAAQ,OAAOJ,EAAM,eAAe,IAG/CO;IAAA,CACd,GACDC,EAAgB,MAAM;AACrB,MAAIH,EAAS,SACZA,EAAS,MAAM;IAChB,CACA;AAOI,UAAAE,IAAgBE,EAAS,MAAM;AAChC,UAAAP,EAAU,SAASE,EAAQ,OAAO;AAC/B,cAAAM,IAAgBN,EAAQ,MAAM;AAC1B,QAAAF,EAAA,MAAM,MAAM,SAAS,OAC/BA,EAAU,MAAM,MAAM,SAAS,GAAGQ,CAAa;AAAA,MAChD;AAAA,OACE,GAAG;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index125.js","sources":["../src/components/BbSpinner/BbSpinner.vue"],"sourcesContent":["<template>\n\t<span v-bind=\"iconAttributes\">\n\t\t<svg viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t\t<circle class=\"bb-spinner__circle\" cx=\"12\" cy=\"3\" r=\"0\" />\n\t\t\t<circle class=\"bb-spinner__circle circle--1\" cx=\"16.50\" cy=\"4.21\" r=\"0\" />\n\t\t\t<circle class=\"bb-spinner__circle circle--2\" cx=\"7.50\" cy=\"4.21\" r=\"0\" />\n\t\t\t<circle class=\"bb-spinner__circle circle--3\" cx=\"19.79\" cy=\"7.50\" r=\"0\" />\n\t\t\t<circle class=\"bb-spinner__circle circle--4\" cx=\"4.21\" cy=\"7.50\" r=\"0\" />\n\t\t\t<circle\n\t\t\t\tclass=\"bb-spinner__circle circle--5\"\n\t\t\t\tcx=\"21.00\"\n\t\t\t\tcy=\"12.00\"\n\t\t\t\tr=\"0\"\n\t\t\t/>\n\t\t\t<circle class=\"bb-spinner__circle circle--6\" cx=\"3.00\" cy=\"12.00\" r=\"0\" />\n\t\t\t<circle\n\t\t\t\tclass=\"bb-spinner__circle circle--7\"\n\t\t\t\tcx=\"19.79\"\n\t\t\t\tcy=\"16.50\"\n\t\t\t\tr=\"0\"\n\t\t\t/>\n\t\t\t<circle class=\"bb-spinner__circle circle--8\" cx=\"4.21\" cy=\"16.50\" r=\"0\" />\n\t\t\t<circle\n\t\t\t\tclass=\"bb-spinner__circle circle--9\"\n\t\t\t\tcx=\"16.50\"\n\t\t\t\tcy=\"19.79\"\n\t\t\t\tr=\"0\"\n\t\t\t/>\n\t\t\t<circle\n\t\t\t\tclass=\"bb-spinner__circle circle--10\"\n\t\t\t\tcx=\"7.50\"\n\t\t\t\tcy=\"19.79\"\n\t\t\t\tr=\"0\"\n\t\t\t/>\n\t\t\t<circle class=\"bb-spinner__circle circle--11\" cx=\"12\" cy=\"21\" r=\"0\" />\n\t\t</svg>\n\t</span>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport { isCssColor } from '@/utilities/functions/isCssColor';\nimport type { Classes } from '@/types/Classes';\nimport type { CommonProps, Size as S } from '@/types/CommonProps';\nimport type { Size as IconSize } from '../BbIcon/BbIcon.vue';\n\nexport type Size = IconSize;\nexport type BbSpinnerProps = Pick<CommonProps, 'color'> & S<IconSize>;\n\nconst props = withDefaults(defineProps<BbSpinnerProps>(), {\n\tsize: 'md',\n});\n\nconst sizeMap: IconSize = {\n\txs: 12,\n\tsm: 16,\n\tmd: 24,\n\tlg: 28,\n\txl: 36,\n\txxl: 40,\n};\n\nconst iconAttributes = computed(() => {\n\tconst classes: Classes = {\n\t\t'bb-spinner': true,\n\t};\n\tconst width = computed(() => {\n\t\tlet dimension: number;\n\t\tif (typeof props.size === 'string') {\n\t\t\tdimension =\n\t\t\t\tsizeMap[props.size as keyof IconSize] ?? parseInt(props.size, 10);\n\t\t} else {\n\t\t\tdimension = props.size;\n\t\t}\n\t\treturn dimension + `px`;\n\t});\n\tlet style: { [key: string]: any } = { '--size': width.value };\n\n\tif (props.color) {\n\t\tif (isCssColor(props.color)) {\n\t\t\tstyle.color = props.color;\n\t\t} else {\n\t\t\tclasses[`bb-spinner--${props.color}`] = true;\n\t\t}\n\t}\n\treturn {\n\t\tclass: classes,\n\t\tstyle,\n\t};\n});\n</script>\n\n<style lang=\"postcss\">\n@import '@/assets/css/BbSpinner';\n</style>\n"],"names":["props","__props","sizeMap","iconAttributes","computed","classes","style","dimension","isCssColor"],"mappings":";;;;;;;;;;;AAiDA,UAAMA,IAAQC,GAIRC,IAAoB;AAAA,MACzB,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,IAAI;AAAA,MACJ,KAAK;AAAA,IAAA,GAGAC,IAAiBC,EAAS,MAAM;AACrC,YAAMC,IAAmB;AAAA,QACxB,cAAc;AAAA,MAAA;AAYf,UAAIC,IAAgC,EAAE,UAVxBF,EAAS,MAAM;AACxB,YAAAG;AACA,eAAA,OAAOP,EAAM,QAAS,WACzBO,IACCL,EAAQF,EAAM,IAAsB,KAAK,SAASA,EAAM,MAAM,EAAE,IAEjEO,IAAYP,EAAM,MAEZO,IAAY;AAAA,MAAA,CACnB,EACqD,MAAM;AAE5D,aAAIP,EAAM,UACLQ,EAAWR,EAAM,KAAK,IACzBM,EAAM,QAAQN,EAAM,QAEpBK,EAAQ,eAAeL,EAAM,KAAK,EAAE,IAAI,KAGnC;AAAA,QACN,OAAOK;AAAA,QACP,OAAAC;AAAA,MAAA;AAAA,IACD,CACA;;;;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index126.js","sources":["../src/utilities/functions/isNil.ts"],"sourcesContent":["/**\n * Returns true if the item is not null or undefined\n * @param value The item to check\n * @returns true | false\n */\nexport const isNil = (value: unknown) => {\n\tif (typeof value === 'undefined') return true;\n\tif (value === null) return true;\n\treturn false;\n};\n"],"names":["isNil","value"],"mappings":"AAKa,MAAAA,IAAQ,CAACC,MACjB,OAAOA,IAAU,OACjBA,MAAU;"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index127.js","sources":["../src/utilities/functions/percentage.ts"],"sourcesContent":["import { clamp } from './clamp';\n\n/**\n * Get the percentage \"a\" represents in total\n * @returns\n */\nexport const getAsPercentage = (a: number, total: number) => (a * 100) / total;\n/**\n * Get \"a\" knowing the percentage\n * @returns\n */\nexport const getPercentageFrom = (a: number, total: number) =>\n\t(a / 100) * total;\n\n/**\n * Normalize the bounds of a value\n */\nexport const getAsPercentageBetween = (a: number, min: number, max: number) =>\n\tgetAsPercentage(a - min, max - min);\n\n/**\n * Get a value \"b\" that is the same percentage as \"a\" into it's target bounds.\n * EG 40% = 4 for a bound 0, 10 is transposed to 40% = 8\n * for bounds 0, 20, or again 40% = 4 for bound 10, 20\n */\ntype TransposeValueParameters = {\n\tvalue: number;\n\toriginalBounds: {\n\t\tmin: number;\n\t\tmax: number;\n\t};\n\ttargetBounds: {\n\t\tmin: number;\n\t\tmax: number;\n\t};\n\tstep: number;\n};\nexport const transposeValue: (params: TransposeValueParameters) => number = ({\n\tvalue = 0,\n\toriginalBounds,\n\ttargetBounds,\n\tstep = 1,\n}) => {\n\tconst percentageOfOriginal = getAsPercentageBetween(\n\t\tvalue,\n\t\toriginalBounds.min,\n\t\toriginalBounds.max\n\t);\n\tconst transposedValue = getPercentageFrom(\n\t\tpercentageOfOriginal,\n\t\ttargetBounds.max - targetBounds.min\n\t);\n\tconst adjusted = transposedValue + targetBounds.min;\n\tconst withStep = Math.round(adjusted / step) * step;\n\n\tconst clamped = clamp(withStep, targetBounds.min, targetBounds.max);\n\treturn clamped;\n};\n"],"names":["getAsPercentage","a","total","getPercentageFrom","getAsPercentageBetween","min","max","transposeValue","value","originalBounds","targetBounds","step","percentageOfOriginal","adjusted","withStep","clamp"],"mappings":";AAMO,MAAMA,IAAkB,CAACC,GAAWC,MAAmBD,IAAI,MAAOC,GAK5DC,IAAoB,CAACF,GAAWC,MAC3CD,IAAI,MAAOC,GAKAE,IAAyB,CAACH,GAAWI,GAAaC,MAC9DN,EAAgBC,IAAII,GAAKC,IAAMD,CAAG,GAmBtBE,IAA+D,CAAC;AAAA,EAC5E,OAAAC,IAAQ;AAAA,EACR,gBAAAC;AAAA,EACA,cAAAC;AAAA,EACA,MAAAC,IAAO;AACR,MAAM;AACL,QAAMC,IAAuBR;AAAA,IAC5BI;AAAA,IACAC,EAAe;AAAA,IACfA,EAAe;AAAA,EAAA,GAMVI,IAJkBV;AAAA,IACvBS;AAAA,IACAF,EAAa,MAAMA,EAAa;AAAA,EAAA,IAEEA,EAAa,KAC1CI,IAAW,KAAK,MAAMD,IAAWF,CAAI,IAAIA;AAGxC,SADSI,EAAMD,GAAUJ,EAAa,KAAKA,EAAa,GAAG;AAEnE;"}