bitboss-ui 2.0.7 → 2.0.8

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 (417) hide show
  1. package/dist/index.js +139 -138
  2. package/dist/index.js.map +1 -1
  3. package/dist/index10.js +7 -78
  4. package/dist/index10.js.map +1 -1
  5. package/dist/{index100.js → index101.js} +3 -3
  6. package/dist/{index100.js.map → index101.js.map} +1 -1
  7. package/dist/{index102.js → index103.js} +3 -3
  8. package/dist/{index102.js.map → index103.js.map} +1 -1
  9. package/dist/{index104.js → index105.js} +8 -8
  10. package/dist/{index104.js.map → index105.js.map} +1 -1
  11. package/dist/{index106.js → index107.js} +10 -10
  12. package/dist/{index106.js.map → index107.js.map} +1 -1
  13. package/dist/{index108.js → index109.js} +3 -3
  14. package/dist/{index108.js.map → index109.js.map} +1 -1
  15. package/dist/index11.js +74 -35
  16. package/dist/index11.js.map +1 -1
  17. package/dist/{index110.js → index111.js} +3 -3
  18. package/dist/{index110.js.map → index111.js.map} +1 -1
  19. package/dist/{index112.js → index113.js} +3 -3
  20. package/dist/{index112.js.map → index113.js.map} +1 -1
  21. package/dist/{index114.js → index115.js} +3 -3
  22. package/dist/{index114.js.map → index115.js.map} +1 -1
  23. package/dist/{index116.js → index117.js} +8 -8
  24. package/dist/{index116.js.map → index117.js.map} +1 -1
  25. package/dist/{index118.js → index119.js} +2 -2
  26. package/dist/{index118.js.map → index119.js.map} +1 -1
  27. package/dist/index12.js +36 -189
  28. package/dist/index12.js.map +1 -1
  29. package/dist/index121.js +34 -38
  30. package/dist/index121.js.map +1 -1
  31. package/dist/index122.js +38 -38
  32. package/dist/index122.js.map +1 -1
  33. package/dist/index123.js +39 -42
  34. package/dist/index123.js.map +1 -1
  35. package/dist/index124.js +43 -31
  36. package/dist/index124.js.map +1 -1
  37. package/dist/index125.js +35 -2
  38. package/dist/index125.js.map +1 -1
  39. package/dist/index126.js +2 -21
  40. package/dist/index126.js.map +1 -1
  41. package/dist/index127.js +21 -2
  42. package/dist/index127.js.map +1 -1
  43. package/dist/index128.js +2 -312
  44. package/dist/index128.js.map +1 -1
  45. package/dist/index129.js +309 -21
  46. package/dist/index129.js.map +1 -1
  47. package/dist/index13.js +189 -78
  48. package/dist/index13.js.map +1 -1
  49. package/dist/index130.js +24 -2
  50. package/dist/index130.js.map +1 -1
  51. package/dist/index131.js +2 -5
  52. package/dist/index131.js.map +1 -1
  53. package/dist/index132.js +5 -9
  54. package/dist/index132.js.map +1 -1
  55. package/dist/index133.js +8 -5
  56. package/dist/index133.js.map +1 -1
  57. package/dist/index134.js +6 -3
  58. package/dist/index134.js.map +1 -1
  59. package/dist/index135.js +1 -1
  60. package/dist/index136.js +1 -1
  61. package/dist/index137.js +1 -1
  62. package/dist/index138.js +1 -1
  63. package/dist/index139.js +1 -1
  64. package/dist/index14.js +85 -0
  65. package/dist/index14.js.map +1 -0
  66. package/dist/index140.js +1 -1
  67. package/dist/index141.js +1 -1
  68. package/dist/index142.js +1 -1
  69. package/dist/index143.js +1 -1
  70. package/dist/index144.js +1 -1
  71. package/dist/index145.js +1 -1
  72. package/dist/index146.js +1 -1
  73. package/dist/index147.js +1 -1
  74. package/dist/index148.js +1 -1
  75. package/dist/index149.js +1 -1
  76. package/dist/index150.js +1 -1
  77. package/dist/index151.js +1 -1
  78. package/dist/index152.js +1 -1
  79. package/dist/index153.js +1 -1
  80. package/dist/index154.js +1 -1
  81. package/dist/index155.js +1 -1
  82. package/dist/index156.js +1 -1
  83. package/dist/index157.js +1 -1
  84. package/dist/index158.js +1 -1
  85. package/dist/index159.js +1 -1
  86. package/dist/{index15.js → index16.js} +4 -4
  87. package/dist/{index15.js.map → index16.js.map} +1 -1
  88. package/dist/index160.js +2 -2
  89. package/dist/{index162.js → index161.js} +1 -1
  90. package/dist/index161.js.map +1 -0
  91. package/dist/index163.js +6 -0
  92. package/dist/index163.js.map +1 -0
  93. package/dist/index165.js +1 -1
  94. package/dist/index166.js +1 -1
  95. package/dist/index167.js +1 -1
  96. package/dist/index168.js +1 -1
  97. package/dist/index169.js +1 -1
  98. package/dist/index170.js +2 -2
  99. package/dist/index171.js +6 -0
  100. package/dist/index171.js.map +1 -0
  101. package/dist/index173.js +2 -3
  102. package/dist/index173.js.map +1 -1
  103. package/dist/index174.js +1 -1
  104. package/dist/index175.js +1 -1
  105. package/dist/index176.js +1 -1
  106. package/dist/index177.js +1 -1
  107. package/dist/index178.js +1 -1
  108. package/dist/index179.js +1 -1
  109. package/dist/{index17.js → index18.js} +4 -4
  110. package/dist/{index17.js.map → index18.js.map} +1 -1
  111. package/dist/index180.js +1 -1
  112. package/dist/index181.js +1 -1
  113. package/dist/index182.js +1 -1
  114. package/dist/index183.js +1 -1
  115. package/dist/index184.js +1 -1
  116. package/dist/{index186.js → index185.js} +1 -1
  117. package/dist/index185.js.map +1 -0
  118. package/dist/index187.js +6 -0
  119. package/dist/index187.js.map +1 -0
  120. package/dist/index189.js +1 -1
  121. package/dist/index190.js +1 -1
  122. package/dist/index191.js +1 -1
  123. package/dist/index192.js +1 -1
  124. package/dist/index193.js +1 -1
  125. package/dist/index194.js +1 -1
  126. package/dist/index195.js +1 -1
  127. package/dist/index196.js +1 -1
  128. package/dist/index197.js +1 -1
  129. package/dist/index198.js +3 -81
  130. package/dist/index198.js.map +1 -1
  131. package/dist/index199.js +81 -2
  132. package/dist/index199.js.map +1 -1
  133. package/dist/{index19.js → index20.js} +19 -18
  134. package/dist/{index19.js.map → index20.js.map} +1 -1
  135. package/dist/index200.js +2 -2
  136. package/dist/index200.js.map +1 -1
  137. package/dist/index201.js +3 -4
  138. package/dist/index201.js.map +1 -1
  139. package/dist/index202.js +126 -2
  140. package/dist/index202.js.map +1 -1
  141. package/dist/index203.js +5 -8
  142. package/dist/index203.js.map +1 -1
  143. package/dist/index204.js +119 -122
  144. package/dist/index204.js.map +1 -1
  145. package/dist/index205.js +19 -5
  146. package/dist/index205.js.map +1 -1
  147. package/dist/index206.js +13 -120
  148. package/dist/index206.js.map +1 -1
  149. package/dist/index207.js +15 -18
  150. package/dist/index207.js.map +1 -1
  151. package/dist/index208.js +2 -16
  152. package/dist/index208.js.map +1 -1
  153. package/dist/index209.js +2 -16
  154. package/dist/index209.js.map +1 -1
  155. package/dist/index210.js +35 -2
  156. package/dist/index210.js.map +1 -1
  157. package/dist/index211.js +174 -2
  158. package/dist/index211.js.map +1 -1
  159. package/dist/index212.js +6 -35
  160. package/dist/index212.js.map +1 -1
  161. package/dist/index213.js +44 -174
  162. package/dist/index213.js.map +1 -1
  163. package/dist/index215.js +12 -42
  164. package/dist/index215.js.map +1 -1
  165. package/dist/index216.js +8 -0
  166. package/dist/index216.js.map +1 -0
  167. package/dist/index217.js +369 -13
  168. package/dist/index217.js.map +1 -1
  169. package/dist/index218.js +8 -5
  170. package/dist/index218.js.map +1 -1
  171. package/dist/index219.js +2 -369
  172. package/dist/index219.js.map +1 -1
  173. package/dist/{index21.js → index22.js} +21 -21
  174. package/dist/{index21.js.map → index22.js.map} +1 -1
  175. package/dist/index220.js +4 -19
  176. package/dist/index220.js.map +1 -1
  177. package/dist/index221.js +2 -27
  178. package/dist/index221.js.map +1 -1
  179. package/dist/index222.js +3 -3
  180. package/dist/index222.js.map +1 -1
  181. package/dist/index223.js +7 -249
  182. package/dist/index223.js.map +1 -1
  183. package/dist/index224.js +18 -51
  184. package/dist/index224.js.map +1 -1
  185. package/dist/index225.js +27 -44
  186. package/dist/index225.js.map +1 -1
  187. package/dist/index226.js +3 -5
  188. package/dist/index226.js.map +1 -1
  189. package/dist/index227.js +243 -43
  190. package/dist/index227.js.map +1 -1
  191. package/dist/index228.js +52 -3
  192. package/dist/index228.js.map +1 -1
  193. package/dist/index229.js +44 -3
  194. package/dist/index229.js.map +1 -1
  195. package/dist/index230.js +5 -7
  196. package/dist/index230.js.map +1 -1
  197. package/dist/index231.js +48 -157
  198. package/dist/index231.js.map +1 -1
  199. package/dist/index232.js +158 -84
  200. package/dist/index232.js.map +1 -1
  201. package/dist/index233.js +87 -0
  202. package/dist/index233.js.map +1 -0
  203. package/dist/index235.js +2 -18
  204. package/dist/index235.js.map +1 -1
  205. package/dist/index236.js +17 -105
  206. package/dist/index236.js.map +1 -1
  207. package/dist/index237.js +109 -0
  208. package/dist/index237.js.map +1 -0
  209. package/dist/{index238.js → index239.js} +3 -3
  210. package/dist/{index238.js.map → index239.js.map} +1 -1
  211. package/dist/{index23.js → index24.js} +8 -8
  212. package/dist/{index23.js.map → index24.js.map} +1 -1
  213. package/dist/index241.js +2 -10
  214. package/dist/index241.js.map +1 -1
  215. package/dist/index242.js +9 -2
  216. package/dist/index242.js.map +1 -1
  217. package/dist/index243.js +2 -3
  218. package/dist/index243.js.map +1 -1
  219. package/dist/index244.js +9 -6
  220. package/dist/index244.js.map +1 -1
  221. package/dist/index245.js +23 -16
  222. package/dist/index245.js.map +1 -1
  223. package/dist/index246.js +6 -9
  224. package/dist/index246.js.map +1 -1
  225. package/dist/index247.js +16 -23
  226. package/dist/index247.js.map +1 -1
  227. package/dist/index248.js +222 -7
  228. package/dist/index248.js.map +1 -1
  229. package/dist/index257.js +1 -1
  230. package/dist/index258.js +1 -1
  231. package/dist/{index25.js → index26.js} +6 -6
  232. package/dist/{index25.js.map → index26.js.map} +1 -1
  233. package/dist/index263.js +9 -2
  234. package/dist/index263.js.map +1 -1
  235. package/dist/index264.js +436 -2
  236. package/dist/index264.js.map +1 -1
  237. package/dist/index265.js +127 -2
  238. package/dist/index265.js.map +1 -1
  239. package/dist/index266.js +200 -2
  240. package/dist/index266.js.map +1 -1
  241. package/dist/index267.js +4 -2
  242. package/dist/index267.js.map +1 -1
  243. package/dist/index268.js +89 -2
  244. package/dist/index268.js.map +1 -1
  245. package/dist/index269.js +2 -28
  246. package/dist/index269.js.map +1 -1
  247. package/dist/index270.js +2 -22
  248. package/dist/index270.js.map +1 -1
  249. package/dist/index271.js +5 -0
  250. package/dist/index271.js.map +1 -0
  251. package/dist/index272.js +2 -224
  252. package/dist/index272.js.map +1 -1
  253. package/dist/index273.js +2 -89
  254. package/dist/index273.js.map +1 -1
  255. package/dist/index274.js +2 -200
  256. package/dist/index274.js.map +1 -1
  257. package/dist/index275.js +23 -431
  258. package/dist/index275.js.map +1 -1
  259. package/dist/index276.js +21 -126
  260. package/dist/index276.js.map +1 -1
  261. package/dist/index278.js +3 -2
  262. package/dist/index278.js.map +1 -1
  263. package/dist/index279.js +12 -9
  264. package/dist/index279.js.map +1 -1
  265. package/dist/{index27.js → index28.js} +4 -4
  266. package/dist/{index27.js.map → index28.js.map} +1 -1
  267. package/dist/index280.js +8 -68
  268. package/dist/index280.js.map +1 -1
  269. package/dist/index281.js +9 -3
  270. package/dist/index281.js.map +1 -1
  271. package/dist/index282.js +17 -12
  272. package/dist/index282.js.map +1 -1
  273. package/dist/index283.js +2 -9
  274. package/dist/index283.js.map +1 -1
  275. package/dist/index284.js +67 -15
  276. package/dist/index284.js.map +1 -1
  277. package/dist/index285.js +5 -3
  278. package/dist/index285.js.map +1 -1
  279. package/dist/index286.js +1 -1
  280. package/dist/index287.js +3 -211
  281. package/dist/index287.js.map +1 -1
  282. package/dist/index288.js +211 -15
  283. package/dist/index288.js.map +1 -1
  284. package/dist/index289.js +15 -4
  285. package/dist/index289.js.map +1 -1
  286. package/dist/index290.js +4 -4
  287. package/dist/index290.js.map +1 -1
  288. package/dist/index291.js +4 -59
  289. package/dist/index291.js.map +1 -1
  290. package/dist/index292.js +58 -34
  291. package/dist/index292.js.map +1 -1
  292. package/dist/index293.js +34 -6
  293. package/dist/index293.js.map +1 -1
  294. package/dist/index294.js +5 -17
  295. package/dist/index294.js.map +1 -1
  296. package/dist/index295.js +6 -6
  297. package/dist/index295.js.map +1 -1
  298. package/dist/index296.js +19 -2
  299. package/dist/index296.js.map +1 -1
  300. package/dist/index297.js +2 -11
  301. package/dist/index297.js.map +1 -1
  302. package/dist/index298.js +2 -2
  303. package/dist/index299.js +14 -0
  304. package/dist/index299.js.map +1 -0
  305. package/dist/{index29.js → index30.js} +3 -3
  306. package/dist/{index29.js.map → index30.js.map} +1 -1
  307. package/dist/index301.js +416 -42
  308. package/dist/index301.js.map +1 -1
  309. package/dist/index302.js +50 -0
  310. package/dist/index302.js.map +1 -0
  311. package/dist/{index31.js → index32.js} +4 -4
  312. package/dist/{index31.js.map → index32.js.map} +1 -1
  313. package/dist/{index33.js → index34.js} +5 -5
  314. package/dist/{index33.js.map → index34.js.map} +1 -1
  315. package/dist/{index35.js → index36.js} +23 -22
  316. package/dist/{index35.js.map → index36.js.map} +1 -1
  317. package/dist/{index37.js → index38.js} +8 -8
  318. package/dist/{index37.js.map → index38.js.map} +1 -1
  319. package/dist/{index39.js → index40.js} +3 -3
  320. package/dist/{index39.js.map → index40.js.map} +1 -1
  321. package/dist/{index41.js → index42.js} +4 -4
  322. package/dist/{index41.js.map → index42.js.map} +1 -1
  323. package/dist/{index43.js → index44.js} +12 -11
  324. package/dist/{index43.js.map → index44.js.map} +1 -1
  325. package/dist/{index45.js → index46.js} +4 -4
  326. package/dist/{index45.js.map → index46.js.map} +1 -1
  327. package/dist/{index47.js → index48.js} +3 -3
  328. package/dist/{index47.js.map → index48.js.map} +1 -1
  329. package/dist/index5.js +14 -40
  330. package/dist/index5.js.map +1 -1
  331. package/dist/{index49.js → index50.js} +4 -4
  332. package/dist/{index49.js.map → index50.js.map} +1 -1
  333. package/dist/{index51.js → index52.js} +3 -3
  334. package/dist/{index51.js.map → index52.js.map} +1 -1
  335. package/dist/{index53.js → index54.js} +3 -3
  336. package/dist/{index53.js.map → index54.js.map} +1 -1
  337. package/dist/{index55.js → index56.js} +3 -3
  338. package/dist/{index55.js.map → index56.js.map} +1 -1
  339. package/dist/{index57.js → index58.js} +2 -2
  340. package/dist/{index57.js.map → index58.js.map} +1 -1
  341. package/dist/index6.js +38 -76
  342. package/dist/index6.js.map +1 -1
  343. package/dist/{index59.js → index60.js} +14 -13
  344. package/dist/{index59.js.map → index60.js.map} +1 -1
  345. package/dist/{index61.js → index62.js} +3 -3
  346. package/dist/{index61.js.map → index62.js.map} +1 -1
  347. package/dist/{index63.js → index64.js} +3 -3
  348. package/dist/{index63.js.map → index64.js.map} +1 -1
  349. package/dist/{index65.js → index66.js} +5 -5
  350. package/dist/{index65.js.map → index66.js.map} +1 -1
  351. package/dist/{index67.js → index68.js} +3 -3
  352. package/dist/{index67.js.map → index68.js.map} +1 -1
  353. package/dist/index7.js +78 -62
  354. package/dist/index7.js.map +1 -1
  355. package/dist/{index69.js → index70.js} +2 -2
  356. package/dist/{index69.js.map → index70.js.map} +1 -1
  357. package/dist/{index71.js → index72.js} +9 -9
  358. package/dist/{index71.js.map → index72.js.map} +1 -1
  359. package/dist/{index73.js → index74.js} +3 -3
  360. package/dist/{index73.js.map → index74.js.map} +1 -1
  361. package/dist/{index75.js → index76.js} +5 -5
  362. package/dist/{index75.js.map → index76.js.map} +1 -1
  363. package/dist/index78.js +37 -120
  364. package/dist/index78.js.map +1 -1
  365. package/dist/index79.js +130 -0
  366. package/dist/index79.js.map +1 -0
  367. package/dist/index8.js +60 -18
  368. package/dist/index8.js.map +1 -1
  369. package/dist/{index80.js → index81.js} +5 -5
  370. package/dist/{index80.js.map → index81.js.map} +1 -1
  371. package/dist/{index82.js → index83.js} +25 -24
  372. package/dist/{index82.js.map → index83.js.map} +1 -1
  373. package/dist/{index84.js → index85.js} +7 -7
  374. package/dist/{index84.js.map → index85.js.map} +1 -1
  375. package/dist/{index86.js → index87.js} +3 -3
  376. package/dist/{index86.js.map → index87.js.map} +1 -1
  377. package/dist/{index88.js → index89.js} +3 -3
  378. package/dist/{index88.js.map → index89.js.map} +1 -1
  379. package/dist/index9.js +19 -7
  380. package/dist/index9.js.map +1 -1
  381. package/dist/{index90.js → index91.js} +3 -3
  382. package/dist/{index90.js.map → index91.js.map} +1 -1
  383. package/dist/{index92.js → index93.js} +3 -3
  384. package/dist/{index92.js.map → index93.js.map} +1 -1
  385. package/dist/{index94.js → index95.js} +1 -1
  386. package/dist/index95.js.map +1 -0
  387. package/dist/{index96.js → index97.js} +3 -3
  388. package/dist/{index96.js.map → index97.js.map} +1 -1
  389. package/dist/{index98.js → index99.js} +3 -3
  390. package/dist/{index98.js.map → index99.js.map} +1 -1
  391. package/dist/style.css +1 -1
  392. package/package.json +1 -1
  393. package/dist/index120.js +0 -43
  394. package/dist/index120.js.map +0 -1
  395. package/dist/index162.js.map +0 -1
  396. package/dist/index164.js +0 -6
  397. package/dist/index164.js.map +0 -1
  398. package/dist/index172.js +0 -5
  399. package/dist/index172.js.map +0 -1
  400. package/dist/index186.js.map +0 -1
  401. package/dist/index188.js +0 -6
  402. package/dist/index188.js.map +0 -1
  403. package/dist/index214.js +0 -9
  404. package/dist/index214.js.map +0 -1
  405. package/dist/index234.js +0 -5
  406. package/dist/index234.js.map +0 -1
  407. package/dist/index240.js +0 -5
  408. package/dist/index240.js.map +0 -1
  409. package/dist/index277.js +0 -8
  410. package/dist/index277.js.map +0 -1
  411. package/dist/index300.js +0 -424
  412. package/dist/index300.js.map +0 -1
  413. package/dist/index4.js +0 -17
  414. package/dist/index4.js.map +0 -1
  415. package/dist/index77.js +0 -47
  416. package/dist/index77.js.map +0 -1
  417. package/dist/index94.js.map +0 -1
package/dist/index235.js CHANGED
@@ -1,21 +1,5 @@
1
- import { isNil as c } from "./index125.js";
2
- const a = (t, r) => {
3
- if (!Object.prototype.hasOwnProperty.call(t, r))
4
- throw new Error(
5
- `Object ${JSON.stringify(t, null, 2)} has no property named "${r.toString()}"`
6
- );
7
- }, l = (t) => typeof t == "string" ? t.toLocaleLowerCase() : JSON.stringify(t).toLowerCase(), y = (t, r, s) => {
8
- const i = s.toLocaleLowerCase();
9
- for (let e = 0; e < r.length; e++) {
10
- const n = r[e];
11
- a(t, n);
12
- const o = t[n];
13
- if (c(o)) continue;
14
- if (l(o).includes(i)) return !0;
15
- }
16
- return !1;
17
- };
1
+ import f from "./index288.js";
18
2
  export {
19
- y as matchAnyKey
3
+ f as default
20
4
  };
21
5
  //# sourceMappingURL=index235.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index235.js","sources":["../src/utilities/functions/matchAnyKey.ts"],"sourcesContent":["import { isNil } from './isNil';\n\nconst ensureKeyExists = <T extends object>(item: T, key: keyof T) => {\n\tif (!Object.prototype.hasOwnProperty.call(item, key)) {\n\t\tthrow new Error(\n\t\t\t`Object ${JSON.stringify(item, null, 2)} has no property named \"${key.toString()}\"`\n\t\t);\n\t}\n};\nconst asString = (value: any) => {\n\tif (typeof value === 'string') return value.toLocaleLowerCase();\n\treturn JSON.stringify(value).toLowerCase();\n};\n\n/**\n * Return true or false based on whether the query is included in the passed keys\n * @param item The object to test\n * @param keys The keys to be tested as haystack\n * @param query The query to searched as needle\n * @returns boolean\n */\nexport const matchAnyKey = <T extends object>(\n\titem: T,\n\tkeys: (keyof T)[],\n\tquery: string\n) => {\n\tconst lcQuery = query.toLocaleLowerCase();\n\tfor (let index = 0; index < keys.length; index++) {\n\t\tconst key = keys[index];\n\t\tensureKeyExists(item, key);\n\t\tconst value = item[key];\n\t\tif (isNil(value)) continue;\n\t\tconst valueAsString = asString(value);\n\t\tif (valueAsString.includes(lcQuery)) return true;\n\t}\n\treturn false;\n};\n"],"names":["ensureKeyExists","item","key","asString","value","matchAnyKey","keys","query","lcQuery","index","isNil"],"mappings":";AAEA,MAAMA,IAAkB,CAAmBC,GAASC,MAAiB;AACpE,MAAI,CAAC,OAAO,UAAU,eAAe,KAAKD,GAAMC,CAAG;AAClD,UAAM,IAAI;AAAA,MACT,UAAU,KAAK,UAAUD,GAAM,MAAM,CAAC,CAAC,2BAA2BC,EAAI,SAAA,CAAU;AAAA,IAAA;AAGnF,GACMC,IAAW,CAACC,MACb,OAAOA,KAAU,WAAiBA,EAAM,kBAAkB,IACvD,KAAK,UAAUA,CAAK,EAAE,YAAY,GAU7BC,IAAc,CAC1BJ,GACAK,GACAC,MACI;AACE,QAAAC,IAAUD,EAAM;AACtB,WAASE,IAAQ,GAAGA,IAAQH,EAAK,QAAQG,KAAS;AAC3C,UAAAP,IAAMI,EAAKG,CAAK;AACtB,IAAAT,EAAgBC,GAAMC,CAAG;AACnB,UAAAE,IAAQH,EAAKC,CAAG;AAClB,QAAAQ,EAAMN,CAAK,EAAG;AAElB,QADsBD,EAASC,CAAK,EAClB,SAASI,CAAO,EAAU,QAAA;AAAA,EAC7C;AACO,SAAA;AACR;"}
1
+ {"version":3,"file":"index235.js","sources":[],"sourcesContent":[],"names":[],"mappings":";"}
package/dist/index236.js CHANGED
@@ -1,109 +1,21 @@
1
- import { defineComponent as y, ref as F, computed as H, watch as N, openBlock as p, createElementBlock as L, Fragment as S, renderList as V, createBlock as A, normalizeClass as O, withModifiers as P, withCtx as $, createTextVNode as z, toDisplayString as D } from "vue";
2
- import { hash as d } from "./index222.js";
3
- import { isNil as l } from "./index125.js";
4
- import E from "./index120.js";
5
- /* empty css */
6
- const K = /* @__PURE__ */ y({
7
- __name: "ChipsBox",
8
- props: {
9
- options: {}
10
- },
11
- emits: ["option:unselected"],
12
- setup(f, { expose: v, emit: h }) {
13
- const t = f, u = h, n = F(null), i = H(() => t.options.some((e) => !e.disabled)), a = (e = 1) => {
14
- const s = l(n.value) ? -1 : n.value;
15
- let o = (s + e) % t.options.length;
16
- for (; t.options[o].disabled && o !== s; )
17
- o = a(e + 1);
18
- return o;
19
- }, x = () => {
20
- if (!i.value) return;
21
- const e = a();
22
- n.value = e;
23
- }, c = (e = 1) => {
24
- const s = l(n.value) ? 0 : n.value;
25
- let o = (s - e + t.options.length) % t.options.length;
26
- for (; t.options[o].disabled && o !== s; )
27
- o = c(e + 1);
28
- return o;
29
- }, m = async () => {
30
- if (!i.value) return;
31
- const e = c();
32
- n.value = e;
33
- }, w = () => {
34
- if (!i.value) return;
35
- let e = 0;
36
- for (; t.options[e].disabled; )
37
- e++;
38
- n.value = e;
39
- }, b = () => {
40
- if (!i.value) return;
41
- let e = t.options.length - 1;
42
- for (; t.options[e].disabled && e !== 0; )
43
- e--;
44
- n.value = e;
45
- }, I = () => {
46
- if (!i.value) return;
47
- let e = 0;
48
- for (; !t.options[e].selected && t.options.length !== e; )
49
- e++;
50
- n.value = e;
51
- }, g = () => {
52
- if (!i.value) return;
53
- let e = t.options.length - 1;
54
- for (; t.options[e].selected && e !== 0; )
55
- e--;
56
- n.value = e;
57
- }, _ = (e) => {
58
- if (!i.value) return;
59
- const s = t.options.findIndex(
60
- (o) => o.valueHash === e
61
- );
62
- s >= 0 && (n.value = s);
63
- }, r = () => {
64
- n.value = null;
65
- }, k = () => {
66
- if (l(n.value)) return;
67
- const e = t.options[n.value];
68
- e.selected && u("option:unselected", e);
69
- }, C = () => l(n.value) ? void 0 : t.options[n.value];
70
- return N(
71
- () => t.options,
72
- (e, s) => {
73
- d(e) !== d(s) && r();
74
- },
75
- {
76
- flush: "post"
77
- }
78
- ), v({
79
- focusNext: x,
80
- focusPrevious: m,
81
- focusFirst: w,
82
- focusFirstSelected: I,
83
- focusLast: b,
84
- focusLastSelected: g,
85
- blur: r,
86
- confirmOption: k,
87
- focusByHash: _,
88
- getHighlighted: C
89
- }), (e, s) => (p(!0), L(S, null, V(e.options, (o, B) => (p(), A(E, {
90
- key: o.valueHash,
91
- class: O({
92
- "bb-chipsbox-item": !0,
93
- "bb-chipsbox-item--focused": B === n.value
94
- }),
95
- clearable: !0,
96
- text: o.text,
97
- "onClick:clear": P((M) => u("option:unselected", o), ["stop"])
98
- }, {
99
- default: $(() => [
100
- z(D(o.text), 1)
101
- ]),
102
- _: 2
103
- }, 1032, ["class", "text", "onClick:clear"]))), 128));
1
+ import { isNil as c } from "./index126.js";
2
+ const a = (t, r) => {
3
+ if (!Object.prototype.hasOwnProperty.call(t, r))
4
+ throw new Error(
5
+ `Object ${JSON.stringify(t, null, 2)} has no property named "${r.toString()}"`
6
+ );
7
+ }, l = (t) => typeof t == "string" ? t.toLocaleLowerCase() : JSON.stringify(t).toLowerCase(), y = (t, r, s) => {
8
+ const i = s.toLocaleLowerCase();
9
+ for (let e = 0; e < r.length; e++) {
10
+ const n = r[e];
11
+ a(t, n);
12
+ const o = t[n];
13
+ if (c(o)) continue;
14
+ if (l(o).includes(i)) return !0;
104
15
  }
105
- });
16
+ return !1;
17
+ };
106
18
  export {
107
- K as default
19
+ y as matchAnyKey
108
20
  };
109
21
  //# sourceMappingURL=index236.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index236.js","sources":["../src/components/ChipsBox.vue"],"sourcesContent":["<template>\n\t<BbChip\n\t\tv-for=\"(item, index) in options\"\n\t\t:key=\"item.valueHash\"\n\t\t:class=\"{\n\t\t\t'bb-chipsbox-item': true,\n\t\t\t'bb-chipsbox-item--focused': index === focusedIndex,\n\t\t}\"\n\t\t:clearable=\"true\"\n\t\t:text=\"item.text\"\n\t\t@click:clear.stop=\"emit('option:unselected', item)\"\n\t\t>{{ item.text }}</BbChip\n\t>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport { hash } from '@/utilities/functions/hash';\nimport { isNil } from '@/utilities/functions/isNil';\nimport { ref } from 'vue';\nimport { watch } from 'vue';\nimport BbChip from './BbChip/BbChip.vue';\nimport type { Option } from '@/types/Option';\n\ntype Props = {\n\toptions: Option[];\n};\nconst props = defineProps<Props>();\n\nconst emit = defineEmits<{\n\t(e: 'option:unselected', option: Option): void;\n}>();\n\n/**\n * START FOCUS HANDLING\n */\n\nconst focusedIndex = ref<null | number>(null);\n\nconst canFocus = computed(() => props.options.some((o) => !o.disabled));\n\nconst findNextAvailableIndex = (offset = 1) => {\n\tconst initialValue = isNil(focusedIndex.value) ? -1 : focusedIndex.value!;\n\tlet newIndex = (initialValue + offset) % props.options.length;\n\twhile (props.options[newIndex].disabled && newIndex !== initialValue) {\n\t\tnewIndex = findNextAvailableIndex(offset + 1);\n\t}\n\treturn newIndex;\n};\n\nconst focusNext = () => {\n\tif (!canFocus.value) return;\n\tconst newIndex = findNextAvailableIndex();\n\tfocusedIndex.value = newIndex;\n};\nconst findPreviousAvailableIndex = (offset = 1) => {\n\tconst initialValue = isNil(focusedIndex.value) ? 0 : focusedIndex.value!;\n\tlet newIndex =\n\t\t(initialValue - offset + props.options.length) % props.options.length;\n\twhile (props.options[newIndex].disabled && newIndex !== initialValue) {\n\t\tnewIndex = findPreviousAvailableIndex(offset + 1);\n\t}\n\treturn newIndex;\n};\nconst focusPrevious = async () => {\n\tif (!canFocus.value) return;\n\tconst newIndex = findPreviousAvailableIndex();\n\tfocusedIndex.value = newIndex;\n};\n\nconst focusFirst = () => {\n\tif (!canFocus.value) return;\n\tlet newIndex = 0;\n\twhile (props.options[newIndex].disabled) {\n\t\tnewIndex++;\n\t}\n\tfocusedIndex.value = newIndex;\n};\n\nconst focusLast = () => {\n\tif (!canFocus.value) return;\n\tlet newIndex = props.options.length - 1;\n\twhile (props.options[newIndex].disabled && newIndex !== 0) {\n\t\tnewIndex--;\n\t}\n\tfocusedIndex.value = newIndex;\n};\nconst focusFirstSelected = () => {\n\tif (!canFocus.value) return;\n\tlet newIndex = 0;\n\twhile (\n\t\t!props.options[newIndex].selected &&\n\t\tprops.options.length !== newIndex\n\t) {\n\t\tnewIndex++;\n\t}\n\tfocusedIndex.value = newIndex;\n};\nconst focusLastSelected = () => {\n\tif (!canFocus.value) return;\n\tlet newIndex = props.options.length - 1;\n\twhile (props.options[newIndex].selected && newIndex !== 0) {\n\t\tnewIndex--;\n\t}\n\tfocusedIndex.value = newIndex;\n};\n\nconst focusByHash = (hash: Option['valueHash']) => {\n\tif (!canFocus.value) return;\n\tconst linkedOptionIndex = props.options.findIndex(\n\t\t(o) => o.valueHash === hash\n\t);\n\tif (linkedOptionIndex >= 0) {\n\t\tfocusedIndex.value = linkedOptionIndex;\n\t}\n};\n\nconst blur = () => {\n\tfocusedIndex.value = null;\n};\n\n/**\n * END FOCUS HANDLING\n */\n\nconst confirmOption = () => {\n\tif (isNil(focusedIndex.value)) return;\n\tconst option = props.options[focusedIndex.value!];\n\tif (option.selected) {\n\t\temit('option:unselected', option);\n\t}\n};\n\nconst getHighlighted = () => {\n\tif (isNil(focusedIndex.value)) return;\n\tconst option = props.options[focusedIndex.value!];\n\treturn option;\n};\n\nwatch(\n\t() => props.options,\n\t(value, previous) => {\n\t\tif (hash(value) !== hash(previous)) {\n\t\t\tblur();\n\t\t}\n\t},\n\t{\n\t\tflush: 'post',\n\t}\n);\n\ndefineExpose({\n\tfocusNext,\n\tfocusPrevious,\n\tfocusFirst,\n\tfocusFirstSelected,\n\tfocusLast,\n\tfocusLastSelected,\n\tblur,\n\tconfirmOption,\n\tfocusByHash,\n\tgetHighlighted,\n});\n</script>\n\n<style lang=\"postcss\">\n@import '@/assets/css/ChipsBox';\n</style>\n"],"names":["props","__props","emit","__emit","focusedIndex","ref","canFocus","computed","o","findNextAvailableIndex","offset","initialValue","isNil","newIndex","focusNext","findPreviousAvailableIndex","focusPrevious","focusFirst","focusLast","focusFirstSelected","focusLastSelected","focusByHash","hash","linkedOptionIndex","blur","confirmOption","option","getHighlighted","watch","value","previous","__expose"],"mappings":"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"}
1
+ {"version":3,"file":"index236.js","sources":["../src/utilities/functions/matchAnyKey.ts"],"sourcesContent":["import { isNil } from './isNil';\n\nconst ensureKeyExists = <T extends object>(item: T, key: keyof T) => {\n\tif (!Object.prototype.hasOwnProperty.call(item, key)) {\n\t\tthrow new Error(\n\t\t\t`Object ${JSON.stringify(item, null, 2)} has no property named \"${key.toString()}\"`\n\t\t);\n\t}\n};\nconst asString = (value: any) => {\n\tif (typeof value === 'string') return value.toLocaleLowerCase();\n\treturn JSON.stringify(value).toLowerCase();\n};\n\n/**\n * Return true or false based on whether the query is included in the passed keys\n * @param item The object to test\n * @param keys The keys to be tested as haystack\n * @param query The query to searched as needle\n * @returns boolean\n */\nexport const matchAnyKey = <T extends object>(\n\titem: T,\n\tkeys: (keyof T)[],\n\tquery: string\n) => {\n\tconst lcQuery = query.toLocaleLowerCase();\n\tfor (let index = 0; index < keys.length; index++) {\n\t\tconst key = keys[index];\n\t\tensureKeyExists(item, key);\n\t\tconst value = item[key];\n\t\tif (isNil(value)) continue;\n\t\tconst valueAsString = asString(value);\n\t\tif (valueAsString.includes(lcQuery)) return true;\n\t}\n\treturn false;\n};\n"],"names":["ensureKeyExists","item","key","asString","value","matchAnyKey","keys","query","lcQuery","index","isNil"],"mappings":";AAEA,MAAMA,IAAkB,CAAmBC,GAASC,MAAiB;AACpE,MAAI,CAAC,OAAO,UAAU,eAAe,KAAKD,GAAMC,CAAG;AAClD,UAAM,IAAI;AAAA,MACT,UAAU,KAAK,UAAUD,GAAM,MAAM,CAAC,CAAC,2BAA2BC,EAAI,SAAA,CAAU;AAAA,IAAA;AAGnF,GACMC,IAAW,CAACC,MACb,OAAOA,KAAU,WAAiBA,EAAM,kBAAkB,IACvD,KAAK,UAAUA,CAAK,EAAE,YAAY,GAU7BC,IAAc,CAC1BJ,GACAK,GACAC,MACI;AACE,QAAAC,IAAUD,EAAM;AACtB,WAASE,IAAQ,GAAGA,IAAQH,EAAK,QAAQG,KAAS;AAC3C,UAAAP,IAAMI,EAAKG,CAAK;AACtB,IAAAT,EAAgBC,GAAMC,CAAG;AACnB,UAAAE,IAAQH,EAAKC,CAAG;AAClB,QAAAQ,EAAMN,CAAK,EAAG;AAElB,QADsBD,EAASC,CAAK,EAClB,SAASI,CAAO,EAAU,QAAA;AAAA,EAC7C;AACO,SAAA;AACR;"}
@@ -0,0 +1,109 @@
1
+ import { defineComponent as y, ref as F, computed as H, watch as N, openBlock as p, createElementBlock as L, Fragment as S, renderList as V, createBlock as A, normalizeClass as O, withModifiers as P, withCtx as $, createTextVNode as z, toDisplayString as D } from "vue";
2
+ import { hash as d } from "./index226.js";
3
+ import { isNil as l } from "./index126.js";
4
+ import E from "./index121.js";
5
+ /* empty css */
6
+ const K = /* @__PURE__ */ y({
7
+ __name: "ChipsBox",
8
+ props: {
9
+ options: {}
10
+ },
11
+ emits: ["option:unselected"],
12
+ setup(f, { expose: v, emit: h }) {
13
+ const t = f, u = h, n = F(null), i = H(() => t.options.some((e) => !e.disabled)), a = (e = 1) => {
14
+ const s = l(n.value) ? -1 : n.value;
15
+ let o = (s + e) % t.options.length;
16
+ for (; t.options[o].disabled && o !== s; )
17
+ o = a(e + 1);
18
+ return o;
19
+ }, x = () => {
20
+ if (!i.value) return;
21
+ const e = a();
22
+ n.value = e;
23
+ }, c = (e = 1) => {
24
+ const s = l(n.value) ? 0 : n.value;
25
+ let o = (s - e + t.options.length) % t.options.length;
26
+ for (; t.options[o].disabled && o !== s; )
27
+ o = c(e + 1);
28
+ return o;
29
+ }, m = async () => {
30
+ if (!i.value) return;
31
+ const e = c();
32
+ n.value = e;
33
+ }, w = () => {
34
+ if (!i.value) return;
35
+ let e = 0;
36
+ for (; t.options[e].disabled; )
37
+ e++;
38
+ n.value = e;
39
+ }, b = () => {
40
+ if (!i.value) return;
41
+ let e = t.options.length - 1;
42
+ for (; t.options[e].disabled && e !== 0; )
43
+ e--;
44
+ n.value = e;
45
+ }, I = () => {
46
+ if (!i.value) return;
47
+ let e = 0;
48
+ for (; !t.options[e].selected && t.options.length !== e; )
49
+ e++;
50
+ n.value = e;
51
+ }, g = () => {
52
+ if (!i.value) return;
53
+ let e = t.options.length - 1;
54
+ for (; t.options[e].selected && e !== 0; )
55
+ e--;
56
+ n.value = e;
57
+ }, _ = (e) => {
58
+ if (!i.value) return;
59
+ const s = t.options.findIndex(
60
+ (o) => o.valueHash === e
61
+ );
62
+ s >= 0 && (n.value = s);
63
+ }, r = () => {
64
+ n.value = null;
65
+ }, k = () => {
66
+ if (l(n.value)) return;
67
+ const e = t.options[n.value];
68
+ e.selected && u("option:unselected", e);
69
+ }, C = () => l(n.value) ? void 0 : t.options[n.value];
70
+ return N(
71
+ () => t.options,
72
+ (e, s) => {
73
+ d(e) !== d(s) && r();
74
+ },
75
+ {
76
+ flush: "post"
77
+ }
78
+ ), v({
79
+ focusNext: x,
80
+ focusPrevious: m,
81
+ focusFirst: w,
82
+ focusFirstSelected: I,
83
+ focusLast: b,
84
+ focusLastSelected: g,
85
+ blur: r,
86
+ confirmOption: k,
87
+ focusByHash: _,
88
+ getHighlighted: C
89
+ }), (e, s) => (p(!0), L(S, null, V(e.options, (o, B) => (p(), A(E, {
90
+ key: o.valueHash,
91
+ class: O({
92
+ "bb-chipsbox-item": !0,
93
+ "bb-chipsbox-item--focused": B === n.value
94
+ }),
95
+ clearable: !0,
96
+ text: o.text,
97
+ "onClick:clear": P((M) => u("option:unselected", o), ["stop"])
98
+ }, {
99
+ default: $(() => [
100
+ z(D(o.text), 1)
101
+ ]),
102
+ _: 2
103
+ }, 1032, ["class", "text", "onClick:clear"]))), 128));
104
+ }
105
+ });
106
+ export {
107
+ K as default
108
+ };
109
+ //# sourceMappingURL=index237.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index237.js","sources":["../src/components/ChipsBox.vue"],"sourcesContent":["<template>\n\t<BbChip\n\t\tv-for=\"(item, index) in options\"\n\t\t:key=\"item.valueHash\"\n\t\t:class=\"{\n\t\t\t'bb-chipsbox-item': true,\n\t\t\t'bb-chipsbox-item--focused': index === focusedIndex,\n\t\t}\"\n\t\t:clearable=\"true\"\n\t\t:text=\"item.text\"\n\t\t@click:clear.stop=\"emit('option:unselected', item)\"\n\t\t>{{ item.text }}</BbChip\n\t>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport { hash } from '@/utilities/functions/hash';\nimport { isNil } from '@/utilities/functions/isNil';\nimport { ref } from 'vue';\nimport { watch } from 'vue';\nimport BbChip from './BbChip/BbChip.vue';\nimport type { Option } from '@/types/Option';\n\ntype Props = {\n\toptions: Option[];\n};\nconst props = defineProps<Props>();\n\nconst emit = defineEmits<{\n\t(e: 'option:unselected', option: Option): void;\n}>();\n\n/**\n * START FOCUS HANDLING\n */\n\nconst focusedIndex = ref<null | number>(null);\n\nconst canFocus = computed(() => props.options.some((o) => !o.disabled));\n\nconst findNextAvailableIndex = (offset = 1) => {\n\tconst initialValue = isNil(focusedIndex.value) ? -1 : focusedIndex.value!;\n\tlet newIndex = (initialValue + offset) % props.options.length;\n\twhile (props.options[newIndex].disabled && newIndex !== initialValue) {\n\t\tnewIndex = findNextAvailableIndex(offset + 1);\n\t}\n\treturn newIndex;\n};\n\nconst focusNext = () => {\n\tif (!canFocus.value) return;\n\tconst newIndex = findNextAvailableIndex();\n\tfocusedIndex.value = newIndex;\n};\nconst findPreviousAvailableIndex = (offset = 1) => {\n\tconst initialValue = isNil(focusedIndex.value) ? 0 : focusedIndex.value!;\n\tlet newIndex =\n\t\t(initialValue - offset + props.options.length) % props.options.length;\n\twhile (props.options[newIndex].disabled && newIndex !== initialValue) {\n\t\tnewIndex = findPreviousAvailableIndex(offset + 1);\n\t}\n\treturn newIndex;\n};\nconst focusPrevious = async () => {\n\tif (!canFocus.value) return;\n\tconst newIndex = findPreviousAvailableIndex();\n\tfocusedIndex.value = newIndex;\n};\n\nconst focusFirst = () => {\n\tif (!canFocus.value) return;\n\tlet newIndex = 0;\n\twhile (props.options[newIndex].disabled) {\n\t\tnewIndex++;\n\t}\n\tfocusedIndex.value = newIndex;\n};\n\nconst focusLast = () => {\n\tif (!canFocus.value) return;\n\tlet newIndex = props.options.length - 1;\n\twhile (props.options[newIndex].disabled && newIndex !== 0) {\n\t\tnewIndex--;\n\t}\n\tfocusedIndex.value = newIndex;\n};\nconst focusFirstSelected = () => {\n\tif (!canFocus.value) return;\n\tlet newIndex = 0;\n\twhile (\n\t\t!props.options[newIndex].selected &&\n\t\tprops.options.length !== newIndex\n\t) {\n\t\tnewIndex++;\n\t}\n\tfocusedIndex.value = newIndex;\n};\nconst focusLastSelected = () => {\n\tif (!canFocus.value) return;\n\tlet newIndex = props.options.length - 1;\n\twhile (props.options[newIndex].selected && newIndex !== 0) {\n\t\tnewIndex--;\n\t}\n\tfocusedIndex.value = newIndex;\n};\n\nconst focusByHash = (hash: Option['valueHash']) => {\n\tif (!canFocus.value) return;\n\tconst linkedOptionIndex = props.options.findIndex(\n\t\t(o) => o.valueHash === hash\n\t);\n\tif (linkedOptionIndex >= 0) {\n\t\tfocusedIndex.value = linkedOptionIndex;\n\t}\n};\n\nconst blur = () => {\n\tfocusedIndex.value = null;\n};\n\n/**\n * END FOCUS HANDLING\n */\n\nconst confirmOption = () => {\n\tif (isNil(focusedIndex.value)) return;\n\tconst option = props.options[focusedIndex.value!];\n\tif (option.selected) {\n\t\temit('option:unselected', option);\n\t}\n};\n\nconst getHighlighted = () => {\n\tif (isNil(focusedIndex.value)) return;\n\tconst option = props.options[focusedIndex.value!];\n\treturn option;\n};\n\nwatch(\n\t() => props.options,\n\t(value, previous) => {\n\t\tif (hash(value) !== hash(previous)) {\n\t\t\tblur();\n\t\t}\n\t},\n\t{\n\t\tflush: 'post',\n\t}\n);\n\ndefineExpose({\n\tfocusNext,\n\tfocusPrevious,\n\tfocusFirst,\n\tfocusFirstSelected,\n\tfocusLast,\n\tfocusLastSelected,\n\tblur,\n\tconfirmOption,\n\tfocusByHash,\n\tgetHighlighted,\n});\n</script>\n\n<style lang=\"postcss\">\n@import '@/assets/css/ChipsBox';\n</style>\n"],"names":["props","__props","emit","__emit","focusedIndex","ref","canFocus","computed","o","findNextAvailableIndex","offset","initialValue","isNil","newIndex","focusNext","findPreviousAvailableIndex","focusPrevious","focusFirst","focusLast","focusFirstSelected","focusLastSelected","focusByHash","hash","linkedOptionIndex","blur","confirmOption","option","getHighlighted","watch","value","previous","__expose"],"mappings":"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"}
@@ -1,6 +1,6 @@
1
1
  import { defineComponent as F, ref as H, computed as L, watch as N, openBlock as d, createElementBlock as v, Fragment as S, renderList as A, normalizeClass as O, withModifiers as P, toDisplayString as V } from "vue";
2
- import { hash as f } from "./index222.js";
3
- import { isNil as i } from "./index125.js";
2
+ import { hash as f } from "./index226.js";
3
+ import { isNil as i } from "./index126.js";
4
4
  const z = ["text", "onClick:clear"], j = /* @__PURE__ */ F({
5
5
  __name: "CommaBox",
6
6
  props: {
@@ -100,4 +100,4 @@ const z = ["text", "onClick:clear"], j = /* @__PURE__ */ F({
100
100
  export {
101
101
  j as default
102
102
  };
103
- //# sourceMappingURL=index238.js.map
103
+ //# sourceMappingURL=index239.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index238.js","sources":["../src/components/CommaBox.vue"],"sourcesContent":["<template>\n\t<span\n\t\tv-for=\"(item, index) in options\"\n\t\t:key=\"item.valueHash\"\n\t\t:class=\"{\n\t\t\t'bb-commabox-item': true,\n\t\t\t'bb-commabox-item--focused': index === focusedIndex,\n\t\t\t'bb-commabox-item--has-comma': index !== options.length - 1,\n\t\t}\"\n\t\t:clearable=\"true\"\n\t\t:text=\"item.text\"\n\t\t@click:clear.stop=\"emit('option:unselected', item)\"\n\t\t>{{ item.text }}</span\n\t>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport { hash } from '@/utilities/functions/hash';\nimport { isNil } from '@/utilities/functions/isNil';\nimport { ref } from 'vue';\nimport { watch } from 'vue';\nimport type { Option } from '@/types/Option';\n\ntype Props = {\n\toptions: Option[];\n};\nconst props = defineProps<Props>();\n\nconst emit = defineEmits<{\n\t(e: 'option:unselected', option: Option): void;\n}>();\n\n/**\n * START FOCUS HANDLING\n */\n\nconst focusedIndex = ref<null | number>(null);\n\nconst canFocus = computed(() => props.options.some((o) => !o.disabled));\n\nconst findNextAvailableIndex = (offset = 1) => {\n\tconst initialValue = isNil(focusedIndex.value) ? -1 : focusedIndex.value!;\n\tlet newIndex = (initialValue + offset) % props.options.length;\n\twhile (props.options[newIndex].disabled && newIndex !== initialValue) {\n\t\tnewIndex = findNextAvailableIndex(offset + 1);\n\t}\n\treturn newIndex;\n};\n\nconst focusNext = () => {\n\tif (!canFocus.value) return;\n\tconst newIndex = findNextAvailableIndex();\n\tfocusedIndex.value = newIndex;\n};\nconst findPreviousAvailableIndex = (offset = 1) => {\n\tconst initialValue = isNil(focusedIndex.value) ? 0 : focusedIndex.value!;\n\tlet newIndex =\n\t\t(initialValue - offset + props.options.length) % props.options.length;\n\twhile (props.options[newIndex].disabled && newIndex !== initialValue) {\n\t\tnewIndex = findPreviousAvailableIndex(offset + 1);\n\t}\n\treturn newIndex;\n};\nconst focusPrevious = async () => {\n\tif (!canFocus.value) return;\n\tconst newIndex = findPreviousAvailableIndex();\n\tfocusedIndex.value = newIndex;\n};\n\nconst focusFirst = () => {\n\tif (!canFocus.value) return;\n\tlet newIndex = 0;\n\twhile (props.options[newIndex].disabled) {\n\t\tnewIndex++;\n\t}\n\tfocusedIndex.value = newIndex;\n};\n\nconst focusLast = () => {\n\tif (!canFocus.value) return;\n\tlet newIndex = props.options.length - 1;\n\twhile (props.options[newIndex].disabled && newIndex !== 0) {\n\t\tnewIndex--;\n\t}\n\tfocusedIndex.value = newIndex;\n};\nconst focusFirstSelected = () => {\n\tif (!canFocus.value) return;\n\tlet newIndex = 0;\n\twhile (\n\t\t!props.options[newIndex].selected &&\n\t\tprops.options.length !== newIndex\n\t) {\n\t\tnewIndex++;\n\t}\n\tfocusedIndex.value = newIndex;\n};\nconst focusLastSelected = () => {\n\tif (!canFocus.value) return;\n\tlet newIndex = props.options.length - 1;\n\twhile (props.options[newIndex].selected && newIndex !== 0) {\n\t\tnewIndex--;\n\t}\n\tfocusedIndex.value = newIndex;\n};\n\nconst focusByHash = (hash: Option['valueHash']) => {\n\tif (!canFocus.value) return;\n\tconst linkedOptionIndex = props.options.findIndex(\n\t\t(o) => o.valueHash === hash\n\t);\n\tif (linkedOptionIndex >= 0) {\n\t\tfocusedIndex.value = linkedOptionIndex;\n\t}\n};\n\nconst blur = () => {\n\tfocusedIndex.value = null;\n};\n\n/**\n * END FOCUS HANDLING\n */\n\nconst confirmOption = () => {\n\tif (!focusedIndex.value) return;\n\tconst option = props.options[focusedIndex.value];\n\tif (option.selected) {\n\t\temit('option:unselected', option);\n\t}\n};\n\nconst getHighlighted = () => {\n\tif (isNil(focusedIndex.value)) return;\n\tconst option = props.options[focusedIndex.value!];\n\treturn option;\n};\n\nwatch(\n\t() => props.options,\n\t(value, previous) => {\n\t\tif (hash(value) !== hash(previous)) {\n\t\t\tblur();\n\t\t}\n\t},\n\t{\n\t\tflush: 'post',\n\t}\n);\n\ndefineExpose({\n\tfocusNext,\n\tfocusPrevious,\n\tfocusFirst,\n\tfocusFirstSelected,\n\tfocusLast,\n\tfocusLastSelected,\n\tblur,\n\tconfirmOption,\n\tfocusByHash,\n\tgetHighlighted,\n});\n</script>\n\n<style lang=\"postcss\">\n@import '@/assets/css/CommaBox';\n</style>\n"],"names":["props","__props","emit","__emit","focusedIndex","ref","canFocus","computed","o","findNextAvailableIndex","offset","initialValue","isNil","newIndex","focusNext","findPreviousAvailableIndex","focusPrevious","focusFirst","focusLast","focusFirstSelected","focusLastSelected","focusByHash","hash","linkedOptionIndex","blur","confirmOption","option","getHighlighted","watch","value","previous","__expose"],"mappings":"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"}
1
+ {"version":3,"file":"index239.js","sources":["../src/components/CommaBox.vue"],"sourcesContent":["<template>\n\t<span\n\t\tv-for=\"(item, index) in options\"\n\t\t:key=\"item.valueHash\"\n\t\t:class=\"{\n\t\t\t'bb-commabox-item': true,\n\t\t\t'bb-commabox-item--focused': index === focusedIndex,\n\t\t\t'bb-commabox-item--has-comma': index !== options.length - 1,\n\t\t}\"\n\t\t:clearable=\"true\"\n\t\t:text=\"item.text\"\n\t\t@click:clear.stop=\"emit('option:unselected', item)\"\n\t\t>{{ item.text }}</span\n\t>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport { hash } from '@/utilities/functions/hash';\nimport { isNil } from '@/utilities/functions/isNil';\nimport { ref } from 'vue';\nimport { watch } from 'vue';\nimport type { Option } from '@/types/Option';\n\ntype Props = {\n\toptions: Option[];\n};\nconst props = defineProps<Props>();\n\nconst emit = defineEmits<{\n\t(e: 'option:unselected', option: Option): void;\n}>();\n\n/**\n * START FOCUS HANDLING\n */\n\nconst focusedIndex = ref<null | number>(null);\n\nconst canFocus = computed(() => props.options.some((o) => !o.disabled));\n\nconst findNextAvailableIndex = (offset = 1) => {\n\tconst initialValue = isNil(focusedIndex.value) ? -1 : focusedIndex.value!;\n\tlet newIndex = (initialValue + offset) % props.options.length;\n\twhile (props.options[newIndex].disabled && newIndex !== initialValue) {\n\t\tnewIndex = findNextAvailableIndex(offset + 1);\n\t}\n\treturn newIndex;\n};\n\nconst focusNext = () => {\n\tif (!canFocus.value) return;\n\tconst newIndex = findNextAvailableIndex();\n\tfocusedIndex.value = newIndex;\n};\nconst findPreviousAvailableIndex = (offset = 1) => {\n\tconst initialValue = isNil(focusedIndex.value) ? 0 : focusedIndex.value!;\n\tlet newIndex =\n\t\t(initialValue - offset + props.options.length) % props.options.length;\n\twhile (props.options[newIndex].disabled && newIndex !== initialValue) {\n\t\tnewIndex = findPreviousAvailableIndex(offset + 1);\n\t}\n\treturn newIndex;\n};\nconst focusPrevious = async () => {\n\tif (!canFocus.value) return;\n\tconst newIndex = findPreviousAvailableIndex();\n\tfocusedIndex.value = newIndex;\n};\n\nconst focusFirst = () => {\n\tif (!canFocus.value) return;\n\tlet newIndex = 0;\n\twhile (props.options[newIndex].disabled) {\n\t\tnewIndex++;\n\t}\n\tfocusedIndex.value = newIndex;\n};\n\nconst focusLast = () => {\n\tif (!canFocus.value) return;\n\tlet newIndex = props.options.length - 1;\n\twhile (props.options[newIndex].disabled && newIndex !== 0) {\n\t\tnewIndex--;\n\t}\n\tfocusedIndex.value = newIndex;\n};\nconst focusFirstSelected = () => {\n\tif (!canFocus.value) return;\n\tlet newIndex = 0;\n\twhile (\n\t\t!props.options[newIndex].selected &&\n\t\tprops.options.length !== newIndex\n\t) {\n\t\tnewIndex++;\n\t}\n\tfocusedIndex.value = newIndex;\n};\nconst focusLastSelected = () => {\n\tif (!canFocus.value) return;\n\tlet newIndex = props.options.length - 1;\n\twhile (props.options[newIndex].selected && newIndex !== 0) {\n\t\tnewIndex--;\n\t}\n\tfocusedIndex.value = newIndex;\n};\n\nconst focusByHash = (hash: Option['valueHash']) => {\n\tif (!canFocus.value) return;\n\tconst linkedOptionIndex = props.options.findIndex(\n\t\t(o) => o.valueHash === hash\n\t);\n\tif (linkedOptionIndex >= 0) {\n\t\tfocusedIndex.value = linkedOptionIndex;\n\t}\n};\n\nconst blur = () => {\n\tfocusedIndex.value = null;\n};\n\n/**\n * END FOCUS HANDLING\n */\n\nconst confirmOption = () => {\n\tif (!focusedIndex.value) return;\n\tconst option = props.options[focusedIndex.value];\n\tif (option.selected) {\n\t\temit('option:unselected', option);\n\t}\n};\n\nconst getHighlighted = () => {\n\tif (isNil(focusedIndex.value)) return;\n\tconst option = props.options[focusedIndex.value!];\n\treturn option;\n};\n\nwatch(\n\t() => props.options,\n\t(value, previous) => {\n\t\tif (hash(value) !== hash(previous)) {\n\t\t\tblur();\n\t\t}\n\t},\n\t{\n\t\tflush: 'post',\n\t}\n);\n\ndefineExpose({\n\tfocusNext,\n\tfocusPrevious,\n\tfocusFirst,\n\tfocusFirstSelected,\n\tfocusLast,\n\tfocusLastSelected,\n\tblur,\n\tconfirmOption,\n\tfocusByHash,\n\tgetHighlighted,\n});\n</script>\n\n<style lang=\"postcss\">\n@import '@/assets/css/CommaBox';\n</style>\n"],"names":["props","__props","emit","__emit","focusedIndex","ref","canFocus","computed","o","findNextAvailableIndex","offset","initialValue","isNil","newIndex","focusNext","findPreviousAvailableIndex","focusPrevious","focusFirst","focusLast","focusFirstSelected","focusLastSelected","focusByHash","hash","linkedOptionIndex","blur","confirmOption","option","getHighlighted","watch","value","previous","__expose"],"mappings":"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"}
@@ -1,11 +1,11 @@
1
1
  import { defineComponent as ae, ref as o, getCurrentInstance as se, computed as m, nextTick as N, useAttrs as ne, onMounted as ie, onBeforeUnmount as F, watch as re, openBlock as _, createBlock as ue, Teleport as de, createElementVNode as a, mergeProps as G, createElementBlock as T, renderSlot as u, createTextVNode as ce, toDisplayString as P, createCommentVNode as z } from "vue";
2
- import { throttle as ve } from "./index229.js";
3
- import { useFocusTrap as fe } from "./index212.js";
4
- import { useId as K } from "./index8.js";
5
- import { wait as H } from "./index127.js";
6
- import { waitFor as be } from "./index214.js";
7
- import { useModalsState as k } from "./index230.js";
8
- import { useLogger as pe } from "./index203.js";
2
+ import { throttle as ve } from "./index222.js";
3
+ import { useFocusTrap as fe } from "./index210.js";
4
+ import { useId as K } from "./index9.js";
5
+ import { wait as H } from "./index128.js";
6
+ import { waitFor as be } from "./index212.js";
7
+ import { useModalsState as k } from "./index223.js";
8
+ import { useLogger as pe } from "./index218.js";
9
9
  const me = { class: "bb-base-dialog-close" }, ge = ["aria-label"], ye = /* @__PURE__ */ a("span", { class: "bb-base-dialog-close__icon" }, [
10
10
  /* @__PURE__ */ a("svg", {
11
11
  "aria-hidden": "true",
@@ -259,4 +259,4 @@ const me = { class: "bb-base-dialog-close" }, ge = ["aria-label"], ye = /* @__PU
259
259
  export {
260
260
  ze as default
261
261
  };
262
- //# sourceMappingURL=index23.js.map
262
+ //# sourceMappingURL=index24.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index23.js","sources":["../src/components/BaseDialog/BaseDialog.vue"],"sourcesContent":["<template>\n\t<teleport to=\"body\">\n\t\t<div v-bind=\"overlayAttributes\" ref=\"overlay\">\n\t\t\t<div v-bind=\"panelAttributes\" ref=\"panel\">\n\t\t\t\t<div\n\t\t\t\t\tv-if=\"hasRenderedAtLeastOnce\"\n\t\t\t\t\tref=\"content\"\n\t\t\t\t\tclass=\"bb-base-dialog__content\"\n\t\t\t\t>\n\t\t\t\t\t<div ref=\"header\" class=\"bb-base-dialog__header\">\n\t\t\t\t\t\t<slot\n\t\t\t\t\t\t\t:close=\"onCloseClick\"\n\t\t\t\t\t\t\tname=\"header\"\n\t\t\t\t\t\t\t:title=\"title\"\n\t\t\t\t\t\t\t:title-id=\"titleId\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span :id=\"titleId\" class=\"bb-base-dialog__title\">\n\t\t\t\t\t\t\t\t<slot name=\"title\" :text=\"title\">{{ title }}</slot>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span class=\"bb-base-dialog-close\">\n\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\tv-if=\"showClose\"\n\t\t\t\t\t\t\t\t\t:aria-label=\"closeLabel\"\n\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t@click=\"onCloseClick\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<slot name=\"close\">\n\t\t\t\t\t\t\t\t\t\t<span class=\"bb-base-dialog-close__icon\"\n\t\t\t\t\t\t\t\t\t\t\t><svg\n\t\t\t\t\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\t\t\t\t\tfill=\"none\"\n\t\t\t\t\t\t\t\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\t\t\t\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t<path\n\t\t\t\t\t\t\t\t\t\t\t\t\td=\"M23 23L1 1M23 1L1 23\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tstroke-linecap=\"round\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tstroke-width=\"2\"\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t</slot>\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</slot>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div ref=\"body\" class=\"bb-base-dialog__body\">\n\t\t\t\t\t\t<slot\n\t\t\t\t\t\t\t:description-id=\"descriptionId\"\n\t\t\t\t\t\t\tname=\"description\"\n\t\t\t\t\t\t\t:text=\"description\"\n\t\t\t\t\t\t\t><div\n\t\t\t\t\t\t\t\tv-if=\"description\"\n\t\t\t\t\t\t\t\t:id=\"descriptionId\"\n\t\t\t\t\t\t\t\tclass=\"bb-base-dialog__description sr-only\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{{ description }}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</slot>\n\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div style=\"flex: 10000 10000 0%\"></div>\n\t\t\t\t\t<div ref=\"footer\" class=\"bb-base-dialog__footer\">\n\t\t\t\t\t\t<slot name=\"footer\"></slot>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</teleport>\n</template>\n\n<script setup lang=\"ts\">\nimport {\n\tcomputed,\n\tonBeforeUnmount,\n\tonMounted,\n\tref,\n\tuseAttrs,\n\tnextTick,\n\tgetCurrentInstance,\n\twatch,\n} from 'vue';\nimport { throttle } from '@/utilities/functions/throttle';\nimport { useFocusTrap } from '@vueuse/integrations/useFocusTrap';\nimport { useId } from '@/composables/useId';\nimport { wait } from '@/utilities/functions/wait';\nimport { waitFor } from '@/utilities/functions/waitFor';\nimport type { CommonProps, Size } from '@/types/CommonProps';\nimport { useModalsState } from '@/composables/useModalsState';\nimport { useLogger } from '@/composables/useLogger';\n\nexport type Sizes = {\n\tsm: number;\n\tmd: number;\n\tlg: number;\n};\n\nexport type BaseDialogProps = Pick<\n\tCommonProps,\n\t| 'closeLabel'\n\t| 'compact'\n\t| 'disabled'\n\t| 'eager'\n\t| 'panelClasses'\n\t| 'overlayClasses'\n\t| 'persistent'\n\t| 'showClose'\n\t| 'title'\n\t| 'transition'\n\t| 'transitionDuration'\n> &\n\tSize<Sizes> & {\n\t\t/**\n\t\t * Description of the content of the modal. Extremely useful for accessibility reasons.\n\t\t */\n\t\tdescription?: string;\n\t\t/**\n\t\t * Elements that obtains focus immediately after opening the dialog.\n\t\t * By default it's the first tabbable item.\n\t\t */\n\t\tfocusTarget?: string;\n\t\t/**\n\t\t * Displays the modala as fulscreen with no margin to the page\n\t\t */\n\t\tfullscreen?: boolean;\n\t\t/**\n\t\t * Defines the state open / closed of the modal.\n\t\t */\n\t\tmodelValue?: boolean | null;\n\t};\n\nconst props = withDefaults(defineProps<BaseDialogProps>(), {\n\tcloseLabel: 'Chiudi modale',\n\tshowClose: true,\n\tsize: 'sm',\n\ttransition: 'fade',\n\ttransitionDuration: 350,\n\tpanelClasses: () => [],\n\toverlayClasses: () => [],\n});\n\nexport type BaseDialogSlots = {\n\theader?: (props: {\n\t\ttitleId: typeof titleId;\n\t\tclose: typeof onCloseClick;\n\t\ttitle: BaseDialogProps['title'];\n\t}) => any;\n\ttitle?: (props: { text: BaseDialogProps['title'] }) => any;\n\tclose?: (props: object) => any;\n\tdescription?: (props: {\n\t\tdescriptionId: typeof descriptionId;\n\t\ttext: BaseDialogProps['description'];\n\t}) => any;\n\tdefault?: (props: object) => any;\n\tfooter?: (props: object) => any;\n};\n\ndefineSlots<BaseDialogSlots>();\n\nexport type BaseDialogEvents = {\n\t(e: 'shown'): void;\n\t(e: 'hidden'): void;\n\t(e: 'update:modelValue', value: boolean): void;\n};\n\nconst emit = defineEmits<BaseDialogEvents>();\n\nconst titleId = `title_${useId().id.value}`;\nconst descriptionId = `description_${useId().id.value}`;\n\nconst observer = ref<ResizeObserver | null>(null);\nconst overlay = ref<HTMLElement | null>(null);\nconst panel = ref<HTMLElement | null>(null);\nconst content = ref<HTMLElement | null>(null);\nconst header = ref<HTMLElement | null>(null);\nconst body = ref<HTMLElement | null>(null);\nconst footer = ref<HTMLElement | null>(null);\nconst height = ref<number | null>(null);\n\n// @ts-expect-error possibly undef\nconst isNuxt = !!getCurrentInstance()?.proxy?.$nuxt;\n\nconst orderInStack = ref(0);\nconst isCurrent = computed(() => {\n\tconst { openedModals } = useModalsState();\n\treturn openedModals.value && openedModals.value === orderInStack.value;\n});\n\nconst { activate, deactivate } = useFocusTrap(panel, {\n\tinitialFocus: props.focusTarget ?? undefined,\n\tclickOutsideDeactivates: (event) => {\n\t\t// This is used when other teleports are running.\n\t\t// eg if you have a select inside a modal it will be in fact outside of the modal because of teleport\n\t\treturn event.target === overlay.value;\n\t},\n\tallowOutsideClick: true,\n\t/* On esc deactivate the trap, return focus and then close the modal */\n\tescapeDeactivates: () => {\n\t\tnextTick(() => {\n\t\t\temit('update:modelValue', false);\n\t\t});\n\t\treturn true;\n\t},\n});\n\nconst attrs = useAttrs();\n\nconst closeLabel = computed(() => props.closeLabel);\n\nonMounted(async () => {\n\tif (body.value) {\n\t\tobserver.value = new ResizeObserver(onContentGrow);\n\t\tobserver.value.observe(body.value);\n\t}\n\twindow.addEventListener('resize', onContentGrow);\n\n\tonContentGrow();\n\tif (!props.modelValue && !hasRenderedAtLeastOnce.value) return;\n\tif (isNuxt && !globalThis.document) return;\n\talignToModelValue();\n});\nonBeforeUnmount(() => {\n\twindow.removeEventListener('resize', onContentGrow);\n});\n\nconst open = ref(false);\nconst opening = ref(false);\nconst closed = ref(true);\nconst closing = ref(false);\nconst hasRenderedAtLeastOnce = ref(props.eager || props.modelValue);\n\nconst busy = computed(() => opening.value || closing.value);\n\nconst restrictBody = () => {\n\tif (!globalThis.document) return;\n\tconst scrollBarWidth =\n\t\twindow.innerWidth - document.documentElement.clientWidth;\n\tdocument.body.style.overflow = 'hidden';\n\tdocument.body.style.paddingRight = `${scrollBarWidth}px`;\n};\nconst releaseBody = () => {\n\tif (!globalThis.document) return;\n\tdocument.body.style.overflow = 'auto';\n\tdocument.body.style.paddingRight = '0px';\n};\n\nonBeforeUnmount(() => {\n\tif (props.modelValue) {\n\t\tconst { openedModals, modalHasClosed } = useModalsState();\n\t\tif (openedModals.value) {\n\t\t\tmodalHasClosed();\n\t\t\torderInStack.value = 0;\n\t\t\treleaseBody();\n\t\t}\n\t}\n});\n\n/**\n * When modelValue becomes true if the component wasn't rendered render it\n * and wait for it to be on the page (or transitions would not work).\n * Stash the latest focused element so we can return it later when it closes.\n * Focus on the panel upon opening.\n * ---\n * Notice all interactions update modelValue and then this function aligns the display to it\n */\nconst alignToModelValue = async () => {\n\tif (props.modelValue) {\n\t\tif (!hasRenderedAtLeastOnce.value) {\n\t\t\thasRenderedAtLeastOnce.value = true;\n\t\t\tawait waitFor(() => !!body.value);\n\t\t\tawait nextTick();\n\t\t\tif (body.value) {\n\t\t\t\tobserver.value = new ResizeObserver(onContentGrow);\n\t\t\t\tobserver.value.observe(body.value);\n\t\t\t}\n\t\t}\n\n\t\tclosed.value = false;\n\t\tclosing.value = false;\n\t\topening.value = true;\n\n\t\t// This prevents overscroll chaining (additional scrolling to the body when the modal has been completely scrolled)\n\t\tconst { modalHasOpened, openedModals } = useModalsState();\n\t\tmodalHasOpened();\n\t\torderInStack.value = openedModals.value;\n\t\trestrictBody();\n\n\t\tawait wait(props.transitionDuration);\n\t\topening.value = false;\n\t\topen.value = true;\n\t\temit('shown');\n\t\tactivate();\n\t} else {\n\t\tdeactivate();\n\t\topening.value = false;\n\t\topen.value = false;\n\t\tclosing.value = true;\n\n\t\tawait wait(props.transitionDuration);\n\n\t\tclosing.value = false;\n\t\tclosed.value = true;\n\t\tconst { modalHasClosed, openedModals } = useModalsState();\n\t\tmodalHasClosed();\n\t\torderInStack.value = 0;\n\t\tif (!openedModals.value) {\n\t\t\treleaseBody();\n\t\t}\n\t\temit('hidden');\n\t}\n};\n/**\n * Every time modelValue changes align the display to it\n */\nwatch(\n\t() => props.modelValue,\n\t() => {\n\t\tif (!props.modelValue && !hasRenderedAtLeastOnce.value) return;\n\t\tif (isNuxt && !globalThis.document) return;\n\t\talignToModelValue();\n\t},\n\t{ flush: 'post' }\n);\n\n/**\n * Disable scrolling\n */\nconst onOverlayScroll = (event: Event) => {\n\tif (event.target === overlay.value) {\n\t\tevent.preventDefault();\n\t}\n};\n\n/**\n * Close the modal on overlay click if not persistent\n */\nconst onOverlayClick = (event: MouseEvent) => {\n\tif (props.disabled || busy.value) return;\n\tif (overlay.value) {\n\t\tif (event.target === overlay.value) {\n\t\t\tif (!props.persistent) {\n\t\t\t\temit('update:modelValue', false);\n\t\t\t}\n\t\t}\n\t}\n};\n\n/**\n * On click on the X button\n */\nconst onCloseClick = () => {\n\tif (props.disabled || busy.value) return;\n\tdeactivate();\n\temit('update:modelValue', false);\n};\n\nconst overlayAttributes = computed(() => {\n\tconst classes = [\n\t\t{\n\t\t\t'bb-base-dialog bb-base-dialog__overlay': true,\n\t\t\t'bb-base-dialog--fullscreen': props.fullscreen,\n\t\t\t'bb-base-dialog--faded': !isCurrent.value,\n\t\t\t'bb-base-dialog--open': open.value,\n\t\t\t'bb-base-dialog--opening': opening.value,\n\t\t\t'bb-base-dialog--closed': closed.value,\n\t\t\t'bb-base-dialog--closing': closing.value,\n\t\t\t[`bb-base-dialog--transition-${props.transition}`]: true,\n\t\t},\n\t\tprops.overlayClasses,\n\t].flat();\n\tconst eventListeners = {\n\t\tonClick: onOverlayClick,\n\t\tonScroll: onOverlayScroll,\n\t\tonTouchmove: onOverlayScroll,\n\t\tonWheel: onOverlayScroll,\n\t\tonKeydown: onOverlayScroll,\n\t};\n\n\tconst style = {\n\t\ttransitionDuration: props.transitionDuration / 1000 + 's',\n\t};\n\treturn {\n\t\tclass: classes,\n\t\tstyle,\n\t\t...eventListeners,\n\t\t...attrs,\n\t};\n});\n\nconst panelAttributes = computed(() => {\n\tconst classes = [\n\t\t{\n\t\t\t'bb-base-dialog__panel': true,\n\t\t\t'bb-base-dialog__panel--compact': props.compact,\n\t\t},\n\t\tprops.panelClasses,\n\t].flat();\n\n\tconst accessibilityAttrs: {\n\t\t[key: string]: string | boolean;\n\t} = {\n\t\trole: 'dialog',\n\t\t'aria-modal': true,\n\t};\n\n\tif (hasRenderedAtLeastOnce.value) {\n\t\tif (props.title) {\n\t\t\taccessibilityAttrs['aria-labelledby'] = titleId;\n\t\t}\n\n\t\tif (props.description)\n\t\t\taccessibilityAttrs['aria-describedby'] = descriptionId;\n\t}\n\n\tlet maxWidth;\n\tconst sizes: Sizes = {\n\t\tsm: 384,\n\t\tmd: 652,\n\t\tlg: 896,\n\t};\n\tif (props.fullscreen) maxWidth = '100%';\n\telse if (typeof props.size === 'number') maxWidth = props.size + 'px';\n\telse if (props.size in sizes)\n\t\tmaxWidth = sizes[props.size as keyof Sizes] + 'px';\n\telse maxWidth = props.size + 'px';\n\n\tconst style = {\n\t\tmaxWidth,\n\t\ttransitionDuration: props.transitionDuration / 1000 + 's',\n\t};\n\n\treturn {\n\t\tclass: classes,\n\t\tstyle,\n\t\t...accessibilityAttrs,\n\t};\n});\n\nlet calledGrowTimes = 0;\n\n/**\n * This is called when content inside body changes.\n * Gets the total height the panel needs to be\n * It could be called numerous times so throttle every 300ms\n */\nconst onContentGrow = throttle(\n\tasync () => {\n\t\tcalledGrowTimes++;\n\t\tif (calledGrowTimes === 100) {\n\t\t\tconst { error } = useLogger();\n\t\t\terror(\n\t\t\t\t'Dialog is updating its height too often. Please check the content is reliably sized.'\n\t\t\t);\n\t\t}\n\t\tif (props.fullscreen) {\n\t\t\theight.value = window.innerHeight;\n\t\t\treturn;\n\t\t}\n\t\tif (header.value && body.value && footer.value) {\n\t\t\tconst contentHeight =\n\t\t\t\theader.value.scrollHeight +\n\t\t\t\tbody.value.scrollHeight +\n\t\t\t\tfooter.value.scrollHeight +\n\t\t\t\t2;\n\t\t\t/* Add two so renderless elements at the bottom are not cut off */\n\t\t\tif (content.value) {\n\t\t\t\tcontent.value.style.height = '0px';\n\t\t\t\tcontent.value.style.height = `${contentHeight + 2}px`;\n\t\t\t\t/**\n\t\t\t\t * Run until all transitions inside have completed\n\t\t\t\t */\n\t\t\t\tawait wait(30);\n\t\t\t\tif (header.value && body.value && footer.value) {\n\t\t\t\t\tconst contentHeight2 =\n\t\t\t\t\t\theader.value.scrollHeight +\n\t\t\t\t\t\tbody.value.scrollHeight +\n\t\t\t\t\t\tfooter.value.scrollHeight +\n\t\t\t\t\t\t2;\n\t\t\t\t\tif (contentHeight !== contentHeight2) onContentGrow();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\t200,\n\t{ trailing: true }\n);\n</script>\n\n<style lang=\"postcss\">\n@import '@/assets/css/BaseDialog';\n</style>\n"],"names":["props","__props","emit","__emit","titleId","useId","descriptionId","observer","ref","overlay","panel","content","header","body","footer","height","isNuxt","_b","_a","getCurrentInstance","orderInStack","isCurrent","computed","openedModals","useModalsState","activate","deactivate","useFocusTrap","event","nextTick","attrs","useAttrs","closeLabel","onMounted","onContentGrow","hasRenderedAtLeastOnce","alignToModelValue","onBeforeUnmount","open","opening","closed","closing","busy","restrictBody","scrollBarWidth","releaseBody","modalHasClosed","waitFor","modalHasOpened","wait","watch","onOverlayScroll","onOverlayClick","onCloseClick","overlayAttributes","classes","eventListeners","style","panelAttributes","accessibilityAttrs","maxWidth","sizes","calledGrowTimes","throttle","error","useLogger","contentHeight","contentHeight2"],"mappings":"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"}
1
+ {"version":3,"file":"index24.js","sources":["../src/components/BaseDialog/BaseDialog.vue"],"sourcesContent":["<template>\n\t<teleport to=\"body\">\n\t\t<div v-bind=\"overlayAttributes\" ref=\"overlay\">\n\t\t\t<div v-bind=\"panelAttributes\" ref=\"panel\">\n\t\t\t\t<div\n\t\t\t\t\tv-if=\"hasRenderedAtLeastOnce\"\n\t\t\t\t\tref=\"content\"\n\t\t\t\t\tclass=\"bb-base-dialog__content\"\n\t\t\t\t>\n\t\t\t\t\t<div ref=\"header\" class=\"bb-base-dialog__header\">\n\t\t\t\t\t\t<slot\n\t\t\t\t\t\t\t:close=\"onCloseClick\"\n\t\t\t\t\t\t\tname=\"header\"\n\t\t\t\t\t\t\t:title=\"title\"\n\t\t\t\t\t\t\t:title-id=\"titleId\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<span :id=\"titleId\" class=\"bb-base-dialog__title\">\n\t\t\t\t\t\t\t\t<slot name=\"title\" :text=\"title\">{{ title }}</slot>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t<span class=\"bb-base-dialog-close\">\n\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\tv-if=\"showClose\"\n\t\t\t\t\t\t\t\t\t:aria-label=\"closeLabel\"\n\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t@click=\"onCloseClick\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<slot name=\"close\">\n\t\t\t\t\t\t\t\t\t\t<span class=\"bb-base-dialog-close__icon\"\n\t\t\t\t\t\t\t\t\t\t\t><svg\n\t\t\t\t\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\t\t\t\t\tfill=\"none\"\n\t\t\t\t\t\t\t\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\t\t\t\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t<path\n\t\t\t\t\t\t\t\t\t\t\t\t\td=\"M23 23L1 1M23 1L1 23\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tstroke-linecap=\"round\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tstroke-width=\"2\"\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t</svg>\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t</slot>\n\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</slot>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div ref=\"body\" class=\"bb-base-dialog__body\">\n\t\t\t\t\t\t<slot\n\t\t\t\t\t\t\t:description-id=\"descriptionId\"\n\t\t\t\t\t\t\tname=\"description\"\n\t\t\t\t\t\t\t:text=\"description\"\n\t\t\t\t\t\t\t><div\n\t\t\t\t\t\t\t\tv-if=\"description\"\n\t\t\t\t\t\t\t\t:id=\"descriptionId\"\n\t\t\t\t\t\t\t\tclass=\"bb-base-dialog__description sr-only\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{{ description }}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</slot>\n\t\t\t\t\t\t<slot></slot>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div style=\"flex: 10000 10000 0%\"></div>\n\t\t\t\t\t<div ref=\"footer\" class=\"bb-base-dialog__footer\">\n\t\t\t\t\t\t<slot name=\"footer\"></slot>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t</teleport>\n</template>\n\n<script setup lang=\"ts\">\nimport {\n\tcomputed,\n\tonBeforeUnmount,\n\tonMounted,\n\tref,\n\tuseAttrs,\n\tnextTick,\n\tgetCurrentInstance,\n\twatch,\n} from 'vue';\nimport { throttle } from '@/utilities/functions/throttle';\nimport { useFocusTrap } from '@vueuse/integrations/useFocusTrap';\nimport { useId } from '@/composables/useId';\nimport { wait } from '@/utilities/functions/wait';\nimport { waitFor } from '@/utilities/functions/waitFor';\nimport type { CommonProps, Size } from '@/types/CommonProps';\nimport { useModalsState } from '@/composables/useModalsState';\nimport { useLogger } from '@/composables/useLogger';\n\nexport type Sizes = {\n\tsm: number;\n\tmd: number;\n\tlg: number;\n};\n\nexport type BaseDialogProps = Pick<\n\tCommonProps,\n\t| 'closeLabel'\n\t| 'compact'\n\t| 'disabled'\n\t| 'eager'\n\t| 'panelClasses'\n\t| 'overlayClasses'\n\t| 'persistent'\n\t| 'showClose'\n\t| 'title'\n\t| 'transition'\n\t| 'transitionDuration'\n> &\n\tSize<Sizes> & {\n\t\t/**\n\t\t * Description of the content of the modal. Extremely useful for accessibility reasons.\n\t\t */\n\t\tdescription?: string;\n\t\t/**\n\t\t * Elements that obtains focus immediately after opening the dialog.\n\t\t * By default it's the first tabbable item.\n\t\t */\n\t\tfocusTarget?: string;\n\t\t/**\n\t\t * Displays the modala as fulscreen with no margin to the page\n\t\t */\n\t\tfullscreen?: boolean;\n\t\t/**\n\t\t * Defines the state open / closed of the modal.\n\t\t */\n\t\tmodelValue?: boolean | null;\n\t};\n\nconst props = withDefaults(defineProps<BaseDialogProps>(), {\n\tcloseLabel: 'Chiudi modale',\n\tshowClose: true,\n\tsize: 'sm',\n\ttransition: 'fade',\n\ttransitionDuration: 350,\n\tpanelClasses: () => [],\n\toverlayClasses: () => [],\n});\n\nexport type BaseDialogSlots = {\n\theader?: (props: {\n\t\ttitleId: typeof titleId;\n\t\tclose: typeof onCloseClick;\n\t\ttitle: BaseDialogProps['title'];\n\t}) => any;\n\ttitle?: (props: { text: BaseDialogProps['title'] }) => any;\n\tclose?: (props: object) => any;\n\tdescription?: (props: {\n\t\tdescriptionId: typeof descriptionId;\n\t\ttext: BaseDialogProps['description'];\n\t}) => any;\n\tdefault?: (props: object) => any;\n\tfooter?: (props: object) => any;\n};\n\ndefineSlots<BaseDialogSlots>();\n\nexport type BaseDialogEvents = {\n\t(e: 'shown'): void;\n\t(e: 'hidden'): void;\n\t(e: 'update:modelValue', value: boolean): void;\n};\n\nconst emit = defineEmits<BaseDialogEvents>();\n\nconst titleId = `title_${useId().id.value}`;\nconst descriptionId = `description_${useId().id.value}`;\n\nconst observer = ref<ResizeObserver | null>(null);\nconst overlay = ref<HTMLElement | null>(null);\nconst panel = ref<HTMLElement | null>(null);\nconst content = ref<HTMLElement | null>(null);\nconst header = ref<HTMLElement | null>(null);\nconst body = ref<HTMLElement | null>(null);\nconst footer = ref<HTMLElement | null>(null);\nconst height = ref<number | null>(null);\n\n// @ts-expect-error possibly undef\nconst isNuxt = !!getCurrentInstance()?.proxy?.$nuxt;\n\nconst orderInStack = ref(0);\nconst isCurrent = computed(() => {\n\tconst { openedModals } = useModalsState();\n\treturn openedModals.value && openedModals.value === orderInStack.value;\n});\n\nconst { activate, deactivate } = useFocusTrap(panel, {\n\tinitialFocus: props.focusTarget ?? undefined,\n\tclickOutsideDeactivates: (event) => {\n\t\t// This is used when other teleports are running.\n\t\t// eg if you have a select inside a modal it will be in fact outside of the modal because of teleport\n\t\treturn event.target === overlay.value;\n\t},\n\tallowOutsideClick: true,\n\t/* On esc deactivate the trap, return focus and then close the modal */\n\tescapeDeactivates: () => {\n\t\tnextTick(() => {\n\t\t\temit('update:modelValue', false);\n\t\t});\n\t\treturn true;\n\t},\n});\n\nconst attrs = useAttrs();\n\nconst closeLabel = computed(() => props.closeLabel);\n\nonMounted(async () => {\n\tif (body.value) {\n\t\tobserver.value = new ResizeObserver(onContentGrow);\n\t\tobserver.value.observe(body.value);\n\t}\n\twindow.addEventListener('resize', onContentGrow);\n\n\tonContentGrow();\n\tif (!props.modelValue && !hasRenderedAtLeastOnce.value) return;\n\tif (isNuxt && !globalThis.document) return;\n\talignToModelValue();\n});\nonBeforeUnmount(() => {\n\twindow.removeEventListener('resize', onContentGrow);\n});\n\nconst open = ref(false);\nconst opening = ref(false);\nconst closed = ref(true);\nconst closing = ref(false);\nconst hasRenderedAtLeastOnce = ref(props.eager || props.modelValue);\n\nconst busy = computed(() => opening.value || closing.value);\n\nconst restrictBody = () => {\n\tif (!globalThis.document) return;\n\tconst scrollBarWidth =\n\t\twindow.innerWidth - document.documentElement.clientWidth;\n\tdocument.body.style.overflow = 'hidden';\n\tdocument.body.style.paddingRight = `${scrollBarWidth}px`;\n};\nconst releaseBody = () => {\n\tif (!globalThis.document) return;\n\tdocument.body.style.overflow = 'auto';\n\tdocument.body.style.paddingRight = '0px';\n};\n\nonBeforeUnmount(() => {\n\tif (props.modelValue) {\n\t\tconst { openedModals, modalHasClosed } = useModalsState();\n\t\tif (openedModals.value) {\n\t\t\tmodalHasClosed();\n\t\t\torderInStack.value = 0;\n\t\t\treleaseBody();\n\t\t}\n\t}\n});\n\n/**\n * When modelValue becomes true if the component wasn't rendered render it\n * and wait for it to be on the page (or transitions would not work).\n * Stash the latest focused element so we can return it later when it closes.\n * Focus on the panel upon opening.\n * ---\n * Notice all interactions update modelValue and then this function aligns the display to it\n */\nconst alignToModelValue = async () => {\n\tif (props.modelValue) {\n\t\tif (!hasRenderedAtLeastOnce.value) {\n\t\t\thasRenderedAtLeastOnce.value = true;\n\t\t\tawait waitFor(() => !!body.value);\n\t\t\tawait nextTick();\n\t\t\tif (body.value) {\n\t\t\t\tobserver.value = new ResizeObserver(onContentGrow);\n\t\t\t\tobserver.value.observe(body.value);\n\t\t\t}\n\t\t}\n\n\t\tclosed.value = false;\n\t\tclosing.value = false;\n\t\topening.value = true;\n\n\t\t// This prevents overscroll chaining (additional scrolling to the body when the modal has been completely scrolled)\n\t\tconst { modalHasOpened, openedModals } = useModalsState();\n\t\tmodalHasOpened();\n\t\torderInStack.value = openedModals.value;\n\t\trestrictBody();\n\n\t\tawait wait(props.transitionDuration);\n\t\topening.value = false;\n\t\topen.value = true;\n\t\temit('shown');\n\t\tactivate();\n\t} else {\n\t\tdeactivate();\n\t\topening.value = false;\n\t\topen.value = false;\n\t\tclosing.value = true;\n\n\t\tawait wait(props.transitionDuration);\n\n\t\tclosing.value = false;\n\t\tclosed.value = true;\n\t\tconst { modalHasClosed, openedModals } = useModalsState();\n\t\tmodalHasClosed();\n\t\torderInStack.value = 0;\n\t\tif (!openedModals.value) {\n\t\t\treleaseBody();\n\t\t}\n\t\temit('hidden');\n\t}\n};\n/**\n * Every time modelValue changes align the display to it\n */\nwatch(\n\t() => props.modelValue,\n\t() => {\n\t\tif (!props.modelValue && !hasRenderedAtLeastOnce.value) return;\n\t\tif (isNuxt && !globalThis.document) return;\n\t\talignToModelValue();\n\t},\n\t{ flush: 'post' }\n);\n\n/**\n * Disable scrolling\n */\nconst onOverlayScroll = (event: Event) => {\n\tif (event.target === overlay.value) {\n\t\tevent.preventDefault();\n\t}\n};\n\n/**\n * Close the modal on overlay click if not persistent\n */\nconst onOverlayClick = (event: MouseEvent) => {\n\tif (props.disabled || busy.value) return;\n\tif (overlay.value) {\n\t\tif (event.target === overlay.value) {\n\t\t\tif (!props.persistent) {\n\t\t\t\temit('update:modelValue', false);\n\t\t\t}\n\t\t}\n\t}\n};\n\n/**\n * On click on the X button\n */\nconst onCloseClick = () => {\n\tif (props.disabled || busy.value) return;\n\tdeactivate();\n\temit('update:modelValue', false);\n};\n\nconst overlayAttributes = computed(() => {\n\tconst classes = [\n\t\t{\n\t\t\t'bb-base-dialog bb-base-dialog__overlay': true,\n\t\t\t'bb-base-dialog--fullscreen': props.fullscreen,\n\t\t\t'bb-base-dialog--faded': !isCurrent.value,\n\t\t\t'bb-base-dialog--open': open.value,\n\t\t\t'bb-base-dialog--opening': opening.value,\n\t\t\t'bb-base-dialog--closed': closed.value,\n\t\t\t'bb-base-dialog--closing': closing.value,\n\t\t\t[`bb-base-dialog--transition-${props.transition}`]: true,\n\t\t},\n\t\tprops.overlayClasses,\n\t].flat();\n\tconst eventListeners = {\n\t\tonClick: onOverlayClick,\n\t\tonScroll: onOverlayScroll,\n\t\tonTouchmove: onOverlayScroll,\n\t\tonWheel: onOverlayScroll,\n\t\tonKeydown: onOverlayScroll,\n\t};\n\n\tconst style = {\n\t\ttransitionDuration: props.transitionDuration / 1000 + 's',\n\t};\n\treturn {\n\t\tclass: classes,\n\t\tstyle,\n\t\t...eventListeners,\n\t\t...attrs,\n\t};\n});\n\nconst panelAttributes = computed(() => {\n\tconst classes = [\n\t\t{\n\t\t\t'bb-base-dialog__panel': true,\n\t\t\t'bb-base-dialog__panel--compact': props.compact,\n\t\t},\n\t\tprops.panelClasses,\n\t].flat();\n\n\tconst accessibilityAttrs: {\n\t\t[key: string]: string | boolean;\n\t} = {\n\t\trole: 'dialog',\n\t\t'aria-modal': true,\n\t};\n\n\tif (hasRenderedAtLeastOnce.value) {\n\t\tif (props.title) {\n\t\t\taccessibilityAttrs['aria-labelledby'] = titleId;\n\t\t}\n\n\t\tif (props.description)\n\t\t\taccessibilityAttrs['aria-describedby'] = descriptionId;\n\t}\n\n\tlet maxWidth;\n\tconst sizes: Sizes = {\n\t\tsm: 384,\n\t\tmd: 652,\n\t\tlg: 896,\n\t};\n\tif (props.fullscreen) maxWidth = '100%';\n\telse if (typeof props.size === 'number') maxWidth = props.size + 'px';\n\telse if (props.size in sizes)\n\t\tmaxWidth = sizes[props.size as keyof Sizes] + 'px';\n\telse maxWidth = props.size + 'px';\n\n\tconst style = {\n\t\tmaxWidth,\n\t\ttransitionDuration: props.transitionDuration / 1000 + 's',\n\t};\n\n\treturn {\n\t\tclass: classes,\n\t\tstyle,\n\t\t...accessibilityAttrs,\n\t};\n});\n\nlet calledGrowTimes = 0;\n\n/**\n * This is called when content inside body changes.\n * Gets the total height the panel needs to be\n * It could be called numerous times so throttle every 300ms\n */\nconst onContentGrow = throttle(\n\tasync () => {\n\t\tcalledGrowTimes++;\n\t\tif (calledGrowTimes === 100) {\n\t\t\tconst { error } = useLogger();\n\t\t\terror(\n\t\t\t\t'Dialog is updating its height too often. Please check the content is reliably sized.'\n\t\t\t);\n\t\t}\n\t\tif (props.fullscreen) {\n\t\t\theight.value = window.innerHeight;\n\t\t\treturn;\n\t\t}\n\t\tif (header.value && body.value && footer.value) {\n\t\t\tconst contentHeight =\n\t\t\t\theader.value.scrollHeight +\n\t\t\t\tbody.value.scrollHeight +\n\t\t\t\tfooter.value.scrollHeight +\n\t\t\t\t2;\n\t\t\t/* Add two so renderless elements at the bottom are not cut off */\n\t\t\tif (content.value) {\n\t\t\t\tcontent.value.style.height = '0px';\n\t\t\t\tcontent.value.style.height = `${contentHeight + 2}px`;\n\t\t\t\t/**\n\t\t\t\t * Run until all transitions inside have completed\n\t\t\t\t */\n\t\t\t\tawait wait(30);\n\t\t\t\tif (header.value && body.value && footer.value) {\n\t\t\t\t\tconst contentHeight2 =\n\t\t\t\t\t\theader.value.scrollHeight +\n\t\t\t\t\t\tbody.value.scrollHeight +\n\t\t\t\t\t\tfooter.value.scrollHeight +\n\t\t\t\t\t\t2;\n\t\t\t\t\tif (contentHeight !== contentHeight2) onContentGrow();\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\t200,\n\t{ trailing: true }\n);\n</script>\n\n<style lang=\"postcss\">\n@import '@/assets/css/BaseDialog';\n</style>\n"],"names":["props","__props","emit","__emit","titleId","useId","descriptionId","observer","ref","overlay","panel","content","header","body","footer","height","isNuxt","_b","_a","getCurrentInstance","orderInStack","isCurrent","computed","openedModals","useModalsState","activate","deactivate","useFocusTrap","event","nextTick","attrs","useAttrs","closeLabel","onMounted","onContentGrow","hasRenderedAtLeastOnce","alignToModelValue","onBeforeUnmount","open","opening","closed","closing","busy","restrictBody","scrollBarWidth","releaseBody","modalHasClosed","waitFor","modalHasOpened","wait","watch","onOverlayScroll","onOverlayClick","onCloseClick","overlayAttributes","classes","eventListeners","style","panelAttributes","accessibilityAttrs","maxWidth","sizes","calledGrowTimes","throttle","error","useLogger","contentHeight","contentHeight2"],"mappings":"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"}
package/dist/index241.js CHANGED
@@ -1,13 +1,5 @@
1
- const o = (t, r) => {
2
- const e = {};
3
- for (const c in t)
4
- if (Object.prototype.hasOwnProperty.call(t, c)) {
5
- const n = t[c];
6
- r(n, c, t) && (e[c] = n);
7
- }
8
- return e;
9
- };
1
+ const o = (e) => e[0];
10
2
  export {
11
- o as pickBy
3
+ o as head
12
4
  };
13
5
  //# sourceMappingURL=index241.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index241.js","sources":["../src/utilities/functions/pickBy.ts"],"sourcesContent":["export const pickBy = <T extends object>(\n\tobj: T,\n\titeratee: (value: T[keyof T], key: keyof T, object: T) => boolean\n): Partial<T> => {\n\tconst accumulator: Partial<T> = {};\n\tfor (const key in obj) {\n\t\tif (Object.prototype.hasOwnProperty.call(obj, key)) {\n\t\t\tconst element = obj[key];\n\t\t\tif (iteratee(element, key, obj)) accumulator[key] = element;\n\t\t}\n\t}\n\treturn accumulator;\n};\n"],"names":["pickBy","obj","iteratee","accumulator","key","element"],"mappings":"AAAa,MAAAA,IAAS,CACrBC,GACAC,MACgB;AAChB,QAAMC,IAA0B,CAAA;AAChC,aAAWC,KAAOH;AACjB,QAAI,OAAO,UAAU,eAAe,KAAKA,GAAKG,CAAG,GAAG;AAC7C,YAAAC,IAAUJ,EAAIG,CAAG;AACvB,MAAIF,EAASG,GAASD,GAAKH,CAAG,MAAGE,EAAYC,CAAG,IAAIC;AAAA,IACrD;AAEM,SAAAF;AACR;"}
1
+ {"version":3,"file":"index241.js","sources":["../src/utilities/functions/head.ts"],"sourcesContent":["/** Takes an array and returns the first item in it */\nexport const head = <T>(arr: T[]) => arr[0];\n"],"names":["head","arr"],"mappings":"AACO,MAAMA,IAAO,CAAIC,MAAaA,EAAI,CAAC;"}
package/dist/index242.js CHANGED
@@ -1,6 +1,13 @@
1
- const o = () => {
1
+ const o = (t, r) => {
2
+ const e = {};
3
+ for (const c in t)
4
+ if (Object.prototype.hasOwnProperty.call(t, c)) {
5
+ const n = t[c];
6
+ r(n, c, t) && (e[c] = n);
7
+ }
8
+ return e;
2
9
  };
3
10
  export {
4
- o as noop
11
+ o as pickBy
5
12
  };
6
13
  //# sourceMappingURL=index242.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index242.js","sources":["../src/utilities/functions/noop.ts"],"sourcesContent":["/* \n This function is No-OP it does nothing\n*/\nexport const noop = () => {};\n"],"names":["noop"],"mappings":"AAGO,MAAMA,IAAO,MAAM;AAAC;"}
1
+ {"version":3,"file":"index242.js","sources":["../src/utilities/functions/pickBy.ts"],"sourcesContent":["export const pickBy = <T extends object>(\n\tobj: T,\n\titeratee: (value: T[keyof T], key: keyof T, object: T) => boolean\n): Partial<T> => {\n\tconst accumulator: Partial<T> = {};\n\tfor (const key in obj) {\n\t\tif (Object.prototype.hasOwnProperty.call(obj, key)) {\n\t\t\tconst element = obj[key];\n\t\t\tif (iteratee(element, key, obj)) accumulator[key] = element;\n\t\t}\n\t}\n\treturn accumulator;\n};\n"],"names":["pickBy","obj","iteratee","accumulator","key","element"],"mappings":"AAAa,MAAAA,IAAS,CACrBC,GACAC,MACgB;AAChB,QAAMC,IAA0B,CAAA;AAChC,aAAWC,KAAOH;AACjB,QAAI,OAAO,UAAU,eAAe,KAAKA,GAAKG,CAAG,GAAG;AAC7C,YAAAC,IAAUJ,EAAIG,CAAG;AACvB,MAAIF,EAASG,GAASD,GAAKH,CAAG,MAAGE,EAAYC,CAAG,IAAIC;AAAA,IACrD;AAEM,SAAAF;AACR;"}
package/dist/index243.js CHANGED
@@ -1,7 +1,6 @@
1
- const e = function(t) {
2
- return (...n) => n.length >= t.length ? t(...n) : e(t.bind(void 0, ...n));
1
+ const o = () => {
3
2
  };
4
3
  export {
5
- e as curry
4
+ o as noop
6
5
  };
7
6
  //# sourceMappingURL=index243.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index243.js","sources":["../src/utilities/functions/curry.ts"],"sourcesContent":["export type Curried<A extends any[], R> = <P extends Partial<A>>(\n\t...args: P\n) => P extends A\n\t? R\n\t: A extends [...SameLength<P>, ...infer S]\n\t\t? S extends any[]\n\t\t\t? Curried<S, R>\n\t\t\t: never\n\t\t: never;\n\ntype SameLength<T extends any[]> = Extract<{ [K in keyof T]: any }, any[]>;\n\nexport const curry = function <A extends any[], R>(\n\tfn: (...args: A) => R\n): Curried<A, R> {\n\treturn (...args: any[]): any =>\n\t\targs.length >= fn.length\n\t\t\t? fn(...(args as any))\n\t\t\t: curry((fn as any).bind(undefined, ...args));\n};\n"],"names":["curry","fn","args"],"mappings":"AAYa,MAAAA,IAAQ,SACpBC,GACgB;AAChB,SAAO,IAAIC,MACVA,EAAK,UAAUD,EAAG,SACfA,EAAG,GAAIC,CAAY,IACnBF,EAAOC,EAAW,KAAK,QAAW,GAAGC,CAAI,CAAC;AAC/C;"}
1
+ {"version":3,"file":"index243.js","sources":["../src/utilities/functions/noop.ts"],"sourcesContent":["/* \n This function is No-OP it does nothing\n*/\nexport const noop = () => {};\n"],"names":["noop"],"mappings":"AAGO,MAAMA,IAAO,MAAM;AAAC;"}
package/dist/index244.js CHANGED
@@ -1,9 +1,12 @@
1
- import e from "./index289.js";
2
- import r from "./index290.js";
3
- import o from "./index291.js";
4
- const f = new o(r, e)._freeze();
1
+ const o = (n, t) => {
2
+ for (let e = n.length - 1; e >= 0; e--) {
3
+ const i = n[e];
4
+ if (t(i, e, n))
5
+ return e;
6
+ }
7
+ return -1;
8
+ };
5
9
  export {
6
- o as Mime,
7
- f as default
10
+ o as findRightIndex
8
11
  };
9
12
  //# sourceMappingURL=index244.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index244.js","sources":["../node_modules/mime/dist/src/index.js"],"sourcesContent":["import otherTypes from '../types/other.js';\nimport standardTypes from '../types/standard.js';\nimport Mime from './Mime.js';\nexport { default as Mime } from './Mime.js';\nexport default new Mime(standardTypes, otherTypes)._freeze();\n//# sourceMappingURL=index.js.map"],"names":["index","Mime","standardTypes","otherTypes"],"mappings":";;;AAIA,MAAeA,IAAA,IAAIC,EAAKC,GAAeC,CAAU,EAAE,QAAS;","x_google_ignoreList":[0]}
1
+ {"version":3,"file":"index244.js","sources":["../src/utilities/functions/findRightIndex.ts"],"sourcesContent":["/**\n * Same as find but from the end of an array\n */\nexport const findRightIndex = <T>(\n\tarr: T[],\n\titeratee: (value: T, index: number, arr: T[]) => boolean\n) => {\n\tfor (let index = arr.length - 1; index >= 0; index--) {\n\t\tconst element = arr[index];\n\t\tif (iteratee(element, index, arr)) {\n\t\t\treturn index;\n\t\t}\n\t}\n\treturn -1;\n};\n"],"names":["findRightIndex","arr","iteratee","index","element"],"mappings":"AAGa,MAAAA,IAAiB,CAC7BC,GACAC,MACI;AACJ,WAASC,IAAQF,EAAI,SAAS,GAAGE,KAAS,GAAGA,KAAS;AAC/C,UAAAC,IAAUH,EAAIE,CAAK;AACzB,QAAID,EAASE,GAASD,GAAOF,CAAG;AACxB,aAAAE;AAAA,EAET;AACO,SAAA;AACR;"}