bitboss-ui 0.2.76 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (491) hide show
  1. package/dist/components/BaseCheckbox/BaseCheckbox.vue.d.ts +4 -0
  2. package/dist/components/BaseCheckboxGroup/BaseCheckboxGroup.vue.d.ts +10 -3
  3. package/dist/components/BaseDatePicker/BaseDatePicker.vue.d.ts +4 -1
  4. package/dist/components/BaseDatePickerInput/BaseDatePickerInput.vue.d.ts +10 -4
  5. package/dist/components/BaseInputContainer/BaseInputContainer.vue.d.ts +9 -0
  6. package/dist/components/BaseNumberInput/BaseNumberInput.vue.d.ts +4 -0
  7. package/dist/components/BaseRadio/BaseRadio.vue.d.ts +4 -0
  8. package/dist/components/BaseRadioGroup/BaseRadioGroup.vue.d.ts +10 -3
  9. package/dist/components/BaseRating/BaseRating.vue.d.ts +5 -1
  10. package/dist/components/BaseSelect/BaseSelect.vue.d.ts +4 -0
  11. package/dist/components/BaseSlider/BaseSlider.vue.d.ts +48 -11
  12. package/dist/components/BaseSwitchGroup/BaseSwitchGroup.vue.d.ts +6 -3
  13. package/dist/components/BaseTag/BaseTag.vue.d.ts +4 -0
  14. package/dist/components/BaseTextInput/BaseTextInput.vue.d.ts +10 -6
  15. package/dist/components/BaseTextarea/BaseTextarea.vue.d.ts +4 -0
  16. package/dist/components/BbButton/BbButton.vue.d.ts +12 -0
  17. package/dist/components/BbCheckbox/BbCheckbox.vue.d.ts +35 -27
  18. package/dist/components/BbCheckboxGroup/BbCheckboxGroup.vue.d.ts +38 -24
  19. package/dist/components/BbDatePickerInput/BbDatePickerInput.vue.d.ts +15 -3
  20. package/dist/components/BbNumberInput/BbNumberInput.vue.d.ts +33 -25
  21. package/dist/components/BbRadio/BbRadio.vue.d.ts +33 -25
  22. package/dist/components/BbRadioGroup/BbRadioGroup.vue.d.ts +38 -24
  23. package/dist/components/BbRating/BbRating.vue.d.ts +9 -1
  24. package/dist/components/BbSelect/BbSelect.vue.d.ts +18 -4
  25. package/dist/components/BbSlider/BbSlider.vue.d.ts +44 -11
  26. package/dist/components/BbSwitchGroup/BbSwitchGroup.vue.d.ts +9 -3
  27. package/dist/components/BbTag/BbTag.vue.d.ts +11 -3
  28. package/dist/components/BbTextInput/BbTextInput.vue.d.ts +33 -25
  29. package/dist/components/BbTextarea/BbTextarea.vue.d.ts +9 -1
  30. package/dist/composables/useQueue.d.ts +58 -0
  31. package/dist/index.js +186 -185
  32. package/dist/index.js.map +1 -1
  33. package/dist/index10.js +65 -1
  34. package/dist/index10.js.map +1 -1
  35. package/dist/index100.js +227 -1
  36. package/dist/index100.js.map +1 -1
  37. package/dist/index101.js +1 -437
  38. package/dist/index101.js.map +1 -1
  39. package/dist/index102.js +437 -1
  40. package/dist/index102.js.map +1 -1
  41. package/dist/index103.js +1 -94
  42. package/dist/index103.js.map +1 -1
  43. package/dist/index104.js +103 -1
  44. package/dist/index104.js.map +1 -1
  45. package/dist/index105.js +1 -88
  46. package/dist/index105.js.map +1 -1
  47. package/dist/index106.js +97 -1
  48. package/dist/index106.js.map +1 -1
  49. package/dist/index107.js +1 -89
  50. package/dist/index107.js.map +1 -1
  51. package/dist/index108.js +98 -1
  52. package/dist/index108.js.map +1 -1
  53. package/dist/index109.js +1 -29
  54. package/dist/index109.js.map +1 -1
  55. package/dist/index11.js +1 -131
  56. package/dist/index11.js.map +1 -1
  57. package/dist/index110.js +29 -1
  58. package/dist/index110.js.map +1 -1
  59. package/dist/index111.js +1 -151
  60. package/dist/index111.js.map +1 -1
  61. package/dist/index112.js +151 -1
  62. package/dist/index112.js.map +1 -1
  63. package/dist/index113.js +1 -122
  64. package/dist/index113.js.map +1 -1
  65. package/dist/index114.js +122 -1
  66. package/dist/index114.js.map +1 -1
  67. package/dist/index115.js +1 -46
  68. package/dist/index115.js.map +1 -1
  69. package/dist/index116.js +40 -33
  70. package/dist/index116.js.map +1 -1
  71. package/dist/index117.js +32 -39
  72. package/dist/index117.js.map +1 -1
  73. package/dist/index118.js +39 -42
  74. package/dist/index118.js.map +1 -1
  75. package/dist/index119.js +43 -39
  76. package/dist/index119.js.map +1 -1
  77. package/dist/index12.js +128 -1
  78. package/dist/index12.js.map +1 -1
  79. package/dist/index120.js +43 -2
  80. package/dist/index120.js.map +1 -1
  81. package/dist/index121.js +2 -21
  82. package/dist/index121.js.map +1 -1
  83. package/dist/index122.js +21 -2
  84. package/dist/index122.js.map +1 -1
  85. package/dist/index123.js +2 -224
  86. package/dist/index123.js.map +1 -1
  87. package/dist/index124.js +224 -2
  88. package/dist/index124.js.map +1 -1
  89. package/dist/index125.js +2 -18
  90. package/dist/index125.js.map +1 -1
  91. package/dist/index126.js +16 -10
  92. package/dist/index126.js.map +1 -1
  93. package/dist/index127.js +12 -24
  94. package/dist/index127.js.map +1 -1
  95. package/dist/index128.js +24 -5
  96. package/dist/index128.js.map +1 -1
  97. package/dist/index129.js +5 -9
  98. package/dist/index129.js.map +1 -1
  99. package/dist/index13.js +1 -159
  100. package/dist/index13.js.map +1 -1
  101. package/dist/index130.js +8 -5
  102. package/dist/index130.js.map +1 -1
  103. package/dist/index131.js +5 -69
  104. package/dist/index131.js.map +1 -1
  105. package/dist/index132.js +70 -3
  106. package/dist/index132.js.map +1 -1
  107. package/dist/index133.js +2 -2
  108. package/dist/index134.js +2 -2
  109. package/dist/index135.js +2 -2
  110. package/dist/index136.js +2 -2
  111. package/dist/index137.js +2 -2
  112. package/dist/index138.js +2 -2
  113. package/dist/index139.js +2 -2
  114. package/dist/index14.js +161 -1
  115. package/dist/index14.js.map +1 -1
  116. package/dist/index140.js +2 -2
  117. package/dist/index141.js +2 -2
  118. package/dist/index142.js +2 -2
  119. package/dist/index143.js +2 -2
  120. package/dist/index144.js +2 -2
  121. package/dist/index145.js +2 -2
  122. package/dist/index146.js +2 -2
  123. package/dist/index147.js +2 -2
  124. package/dist/index148.js +2 -2
  125. package/dist/index149.js +2 -2
  126. package/dist/index15.js +1 -457
  127. package/dist/index15.js.map +1 -1
  128. package/dist/index150.js +2 -2
  129. package/dist/index151.js +2 -2
  130. package/dist/index152.js +2 -2
  131. package/dist/index153.js +2 -2
  132. package/dist/index154.js +2 -2
  133. package/dist/index155.js +2 -2
  134. package/dist/index156.js +2 -2
  135. package/dist/index157.js +2 -2
  136. package/dist/index158.js +5 -1
  137. package/dist/index158.js.map +1 -1
  138. package/dist/index159.js +1 -5
  139. package/dist/index159.js.map +1 -1
  140. package/dist/index16.js +514 -1
  141. package/dist/index16.js.map +1 -1
  142. package/dist/index160.js +5 -1
  143. package/dist/index160.js.map +1 -1
  144. package/dist/index161.js +1 -5
  145. package/dist/index161.js.map +1 -1
  146. package/dist/index162.js +2 -2
  147. package/dist/index163.js +2 -2
  148. package/dist/index164.js +2 -2
  149. package/dist/index165.js +2 -2
  150. package/dist/index166.js +2 -2
  151. package/dist/index167.js +3 -2
  152. package/dist/index167.js.map +1 -1
  153. package/dist/index168.js +2 -3
  154. package/dist/index168.js.map +1 -1
  155. package/dist/index169.js +5 -1
  156. package/dist/index169.js.map +1 -1
  157. package/dist/index17.js +1 -211
  158. package/dist/index17.js.map +1 -1
  159. package/dist/index170.js +1 -4
  160. package/dist/index170.js.map +1 -1
  161. package/dist/index171.js +2 -3
  162. package/dist/index171.js.map +1 -1
  163. package/dist/index172.js +2 -2
  164. package/dist/index173.js +2 -2
  165. package/dist/index174.js +2 -2
  166. package/dist/index175.js +2 -2
  167. package/dist/index176.js +2 -2
  168. package/dist/index177.js +2 -2
  169. package/dist/index178.js +2 -2
  170. package/dist/index179.js +2 -2
  171. package/dist/index18.js +220 -1
  172. package/dist/index18.js.map +1 -1
  173. package/dist/index180.js +2 -2
  174. package/dist/index181.js +2 -2
  175. package/dist/index182.js +2 -2
  176. package/dist/index183.js +5 -1
  177. package/dist/index183.js.map +1 -1
  178. package/dist/index184.js +1 -5
  179. package/dist/index184.js.map +1 -1
  180. package/dist/index185.js +5 -1
  181. package/dist/index185.js.map +1 -1
  182. package/dist/index186.js +1 -5
  183. package/dist/index186.js.map +1 -1
  184. package/dist/index187.js +2 -2
  185. package/dist/index188.js +2 -2
  186. package/dist/index189.js +2 -2
  187. package/dist/index19.js +1 -239
  188. package/dist/index19.js.map +1 -1
  189. package/dist/index190.js +2 -2
  190. package/dist/index191.js +2 -2
  191. package/dist/index192.js +2 -2
  192. package/dist/index193.js +2 -2
  193. package/dist/index194.js +2 -2
  194. package/dist/index195.js +2 -2
  195. package/dist/index196.js +3 -10
  196. package/dist/index196.js.map +1 -1
  197. package/dist/index198.js +2 -3
  198. package/dist/index198.js.map +1 -1
  199. package/dist/index199.js +4 -3
  200. package/dist/index199.js.map +1 -1
  201. package/dist/index2.js +1 -42
  202. package/dist/index2.js.map +1 -1
  203. package/dist/index20.js +239 -1
  204. package/dist/index20.js.map +1 -1
  205. package/dist/index200.js +5 -368
  206. package/dist/index200.js.map +1 -1
  207. package/dist/index201.js +13 -131
  208. package/dist/index201.js.map +1 -1
  209. package/dist/index202.js +16 -5
  210. package/dist/index202.js.map +1 -1
  211. package/dist/index203.js +3 -3
  212. package/dist/index204.js +20 -2
  213. package/dist/index204.js.map +1 -1
  214. package/dist/index205.js +29 -2
  215. package/dist/index205.js.map +1 -1
  216. package/dist/index206.js +8 -174
  217. package/dist/index206.js.map +1 -1
  218. package/dist/index207.js +2 -23
  219. package/dist/index207.js.map +1 -1
  220. package/dist/index208.js +111 -363
  221. package/dist/index208.js.map +1 -1
  222. package/dist/index209.js +131 -13
  223. package/dist/index209.js.map +1 -1
  224. package/dist/index21.js +1 -115
  225. package/dist/index21.js.map +1 -1
  226. package/dist/index210.js +2 -16
  227. package/dist/index210.js.map +1 -1
  228. package/dist/index211.js +35 -20
  229. package/dist/index211.js.map +1 -1
  230. package/dist/index212.js +172 -27
  231. package/dist/index212.js.map +1 -1
  232. package/dist/index213.js +6 -8
  233. package/dist/index213.js.map +1 -1
  234. package/dist/index214.js +346 -213
  235. package/dist/index214.js.map +1 -1
  236. package/dist/index215.js +373 -3
  237. package/dist/index215.js.map +1 -1
  238. package/dist/index216.js +3 -35
  239. package/dist/index216.js.map +1 -1
  240. package/dist/index217.js +3 -6
  241. package/dist/index217.js.map +1 -1
  242. package/dist/index218.js +235 -2
  243. package/dist/index218.js.map +1 -1
  244. package/dist/index219.js +3 -2
  245. package/dist/index219.js.map +1 -1
  246. package/dist/index22.js +131 -1
  247. package/dist/index22.js.map +1 -1
  248. package/dist/index220.js +2 -4
  249. package/dist/index220.js.map +1 -1
  250. package/dist/index221.js +8 -119
  251. package/dist/index221.js.map +1 -1
  252. package/dist/index222.js +2 -2
  253. package/dist/index222.js.map +1 -1
  254. package/dist/index224.js +23 -6
  255. package/dist/index224.js.map +1 -1
  256. package/dist/index225.js +4 -17
  257. package/dist/index225.js.map +1 -1
  258. package/dist/index226.js +294 -78
  259. package/dist/index226.js.map +1 -1
  260. package/dist/index227.js +6 -2
  261. package/dist/index227.js.map +1 -1
  262. package/dist/index228.js +2 -160
  263. package/dist/index228.js.map +1 -1
  264. package/dist/index229.js +4 -1
  265. package/dist/index229.js.map +1 -1
  266. package/dist/index23.js +1 -115
  267. package/dist/index23.js.map +1 -1
  268. package/dist/index230.js +2 -5
  269. package/dist/index230.js.map +1 -1
  270. package/dist/index231.js +2 -69
  271. package/dist/index231.js.map +1 -1
  272. package/dist/index232.js +2 -224
  273. package/dist/index232.js.map +1 -1
  274. package/dist/index233.js +2 -258
  275. package/dist/index233.js.map +1 -1
  276. package/dist/index234.js +78 -5
  277. package/dist/index234.js.map +1 -1
  278. package/dist/index235.js +6 -2
  279. package/dist/index235.js.map +1 -1
  280. package/dist/index236.js +17 -295
  281. package/dist/index236.js.map +1 -1
  282. package/dist/index237.js +2 -2
  283. package/dist/index238.js +106 -2
  284. package/dist/index238.js.map +1 -1
  285. package/dist/index239.js +428 -110
  286. package/dist/index239.js.map +1 -1
  287. package/dist/index24.js +119 -1
  288. package/dist/index24.js.map +1 -1
  289. package/dist/index240.js +218 -100
  290. package/dist/index240.js.map +1 -1
  291. package/dist/index241.js +255 -12
  292. package/dist/index241.js.map +1 -1
  293. package/dist/index242.js +117 -2
  294. package/dist/index242.js.map +1 -1
  295. package/dist/index243.js +200 -2
  296. package/dist/index243.js.map +1 -1
  297. package/dist/index244.js +2 -2
  298. package/dist/index244.js.map +1 -1
  299. package/dist/index245.js +69 -2
  300. package/dist/index245.js.map +1 -1
  301. package/dist/index246.js +5 -435
  302. package/dist/index246.js.map +1 -1
  303. package/dist/index247.js +163 -88
  304. package/dist/index247.js.map +1 -1
  305. package/dist/index248.js +1 -202
  306. package/dist/index248.js.map +1 -1
  307. package/dist/index249.js +2 -4
  308. package/dist/index249.js.map +1 -1
  309. package/dist/index25.js +1 -92
  310. package/dist/index25.js.map +1 -1
  311. package/dist/index250.js +89 -2
  312. package/dist/index250.js.map +1 -1
  313. package/dist/index251.js +15 -4
  314. package/dist/index251.js.map +1 -1
  315. package/dist/index252.js +4 -4
  316. package/dist/index252.js.map +1 -1
  317. package/dist/index253.js +4 -61
  318. package/dist/index253.js.map +1 -1
  319. package/dist/index254.js +61 -2
  320. package/dist/index254.js.map +1 -1
  321. package/dist/index255.js +2 -3
  322. package/dist/index255.js.map +1 -1
  323. package/dist/index256.js +3 -2
  324. package/dist/index256.js.map +1 -1
  325. package/dist/index257.js +5 -0
  326. package/dist/index257.js.map +1 -0
  327. package/dist/index26.js +94 -1
  328. package/dist/index26.js.map +1 -1
  329. package/dist/index27.js +1 -157
  330. package/dist/index27.js.map +1 -1
  331. package/dist/index28.js +160 -1
  332. package/dist/index28.js.map +1 -1
  333. package/dist/index29.js +1 -124
  334. package/dist/index29.js.map +1 -1
  335. package/dist/index3.js +38 -76
  336. package/dist/index3.js.map +1 -1
  337. package/dist/index30.js +126 -1
  338. package/dist/index30.js.map +1 -1
  339. package/dist/index31.js +1 -691
  340. package/dist/index31.js.map +1 -1
  341. package/dist/index32.js +693 -1
  342. package/dist/index32.js.map +1 -1
  343. package/dist/index33.js +1 -145
  344. package/dist/index33.js.map +1 -1
  345. package/dist/index34.js +302 -1
  346. package/dist/index34.js.map +1 -1
  347. package/dist/index35.js +1 -118
  348. package/dist/index35.js.map +1 -1
  349. package/dist/index36.js +120 -1
  350. package/dist/index36.js.map +1 -1
  351. package/dist/index37.js +1 -154
  352. package/dist/index37.js.map +1 -1
  353. package/dist/index38.js +156 -1
  354. package/dist/index38.js.map +1 -1
  355. package/dist/index39.js +1 -83
  356. package/dist/index39.js.map +1 -1
  357. package/dist/index4.js +78 -62
  358. package/dist/index4.js.map +1 -1
  359. package/dist/index40.js +87 -1
  360. package/dist/index40.js.map +1 -1
  361. package/dist/index41.js +1 -61
  362. package/dist/index41.js.map +1 -1
  363. package/dist/index42.js +64 -1
  364. package/dist/index42.js.map +1 -1
  365. package/dist/index43.js +1 -65
  366. package/dist/index43.js.map +1 -1
  367. package/dist/index44.js +65 -1
  368. package/dist/index44.js.map +1 -1
  369. package/dist/index45.js +1 -96
  370. package/dist/index45.js.map +1 -1
  371. package/dist/index46.js +96 -1
  372. package/dist/index46.js.map +1 -1
  373. package/dist/index47.js +1 -61
  374. package/dist/index47.js.map +1 -1
  375. package/dist/index48.js +61 -1
  376. package/dist/index48.js.map +1 -1
  377. package/dist/index49.js +1 -49
  378. package/dist/index49.js.map +1 -1
  379. package/dist/index5.js +60 -38
  380. package/dist/index5.js.map +1 -1
  381. package/dist/index50.js +49 -1
  382. package/dist/index50.js.map +1 -1
  383. package/dist/index51.js +1 -62
  384. package/dist/index51.js.map +1 -1
  385. package/dist/index52.js +62 -1
  386. package/dist/index52.js.map +1 -1
  387. package/dist/index53.js +1 -45
  388. package/dist/index53.js.map +1 -1
  389. package/dist/index54.js +69 -1
  390. package/dist/index54.js.map +1 -1
  391. package/dist/index55.js +1 -89
  392. package/dist/index55.js.map +1 -1
  393. package/dist/index56.js +98 -1
  394. package/dist/index56.js.map +1 -1
  395. package/dist/index57.js +1 -120
  396. package/dist/index57.js.map +1 -1
  397. package/dist/index58.js +129 -1
  398. package/dist/index58.js.map +1 -1
  399. package/dist/index59.js +1 -85
  400. package/dist/index59.js.map +1 -1
  401. package/dist/index6.js +37 -171
  402. package/dist/index6.js.map +1 -1
  403. package/dist/index60.js +85 -1
  404. package/dist/index60.js.map +1 -1
  405. package/dist/index61.js +1 -88
  406. package/dist/index61.js.map +1 -1
  407. package/dist/index62.js +98 -1
  408. package/dist/index62.js.map +1 -1
  409. package/dist/index63.js +1 -59
  410. package/dist/index63.js.map +1 -1
  411. package/dist/index64.js +59 -1
  412. package/dist/index64.js.map +1 -1
  413. package/dist/index65.js +1 -313
  414. package/dist/index65.js.map +1 -1
  415. package/dist/index66.js +313 -1
  416. package/dist/index66.js.map +1 -1
  417. package/dist/index67.js +1 -129
  418. package/dist/index67.js.map +1 -1
  419. package/dist/index68.js +129 -1
  420. package/dist/index68.js.map +1 -1
  421. package/dist/index69.js +1 -225
  422. package/dist/index69.js.map +1 -1
  423. package/dist/index7.js +172 -18
  424. package/dist/index7.js.map +1 -1
  425. package/dist/index70.js +225 -1
  426. package/dist/index70.js.map +1 -1
  427. package/dist/index71.js +1 -24
  428. package/dist/index71.js.map +1 -1
  429. package/dist/index72.js +19 -41
  430. package/dist/index72.js.map +1 -1
  431. package/dist/index73.js +37 -86
  432. package/dist/index73.js.map +1 -1
  433. package/dist/index74.js +104 -1
  434. package/dist/index74.js.map +1 -1
  435. package/dist/index75.js +1 -227
  436. package/dist/index75.js.map +1 -1
  437. package/dist/index76.js +227 -1
  438. package/dist/index76.js.map +1 -1
  439. package/dist/index77.js +1 -143
  440. package/dist/index77.js.map +1 -1
  441. package/dist/index78.js +165 -1
  442. package/dist/index78.js.map +1 -1
  443. package/dist/index79.js +1 -213
  444. package/dist/index79.js.map +1 -1
  445. package/dist/index8.js +18 -192
  446. package/dist/index8.js.map +1 -1
  447. package/dist/index80.js +213 -1
  448. package/dist/index80.js.map +1 -1
  449. package/dist/index81.js +1 -35
  450. package/dist/index81.js.map +1 -1
  451. package/dist/index82.js +35 -1
  452. package/dist/index82.js.map +1 -1
  453. package/dist/index83.js +1 -83
  454. package/dist/index83.js.map +1 -1
  455. package/dist/index84.js +92 -1
  456. package/dist/index84.js.map +1 -1
  457. package/dist/index85.js +1 -120
  458. package/dist/index85.js.map +1 -1
  459. package/dist/index86.js +129 -1
  460. package/dist/index86.js.map +1 -1
  461. package/dist/index87.js +1 -83
  462. package/dist/index87.js.map +1 -1
  463. package/dist/index88.js +92 -1
  464. package/dist/index88.js.map +1 -1
  465. package/dist/index89.js +1 -30
  466. package/dist/index89.js.map +1 -1
  467. package/dist/index9.js +192 -61
  468. package/dist/index9.js.map +1 -1
  469. package/dist/index90.js +30 -1
  470. package/dist/index90.js.map +1 -1
  471. package/dist/index91.js +1 -157
  472. package/dist/index91.js.map +1 -1
  473. package/dist/index92.js +166 -1
  474. package/dist/index92.js.map +1 -1
  475. package/dist/index93.js +1 -86
  476. package/dist/index93.js.map +1 -1
  477. package/dist/index94.js +112 -1
  478. package/dist/index94.js.map +1 -1
  479. package/dist/index95.js +1 -89
  480. package/dist/index95.js.map +1 -1
  481. package/dist/index96.js +98 -1
  482. package/dist/index96.js.map +1 -1
  483. package/dist/index97.js +1 -119
  484. package/dist/index97.js.map +1 -1
  485. package/dist/index98.js +129 -1
  486. package/dist/index98.js.map +1 -1
  487. package/dist/index99.js +1 -227
  488. package/dist/index99.js.map +1 -1
  489. package/dist/style.css +1 -1
  490. package/dist/utilities/functions/last.d.ts +1 -1
  491. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index68.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
1
+ {"version":3,"file":"index68.js","sources":["../src/components/BbDropdownButton/BbDropdownButton.vue"],"sourcesContent":["<template>\n\t<span\n\t\tclass=\"bb-dropdown-button\"\n\t\t:class=\"{\n\t\t\t'bb-dropdown-button--block': block,\n\t\t\t[`bb-dropdown-button--theme-${props.theme}`]: props.theme,\n\t\t}\"\n\t>\n\t\t<BaseButton v-bind=\"mainBtn\" class=\"bb-dropdown-button__main-btn\">\n\t\t\t<slot\n\t\t\t\t:disabled=\"mainBtn.disabled\"\n\t\t\t\tname=\"left-btn\"\n\t\t\t\t:text=\"mainBtn.text\"\n\t\t\t></slot>\n\t\t</BaseButton>\n\t\t<BbDropdown\n\t\t\t:id=\"id\"\n\t\t\t:arrow-padding=\"arrowPadding\"\n\t\t\t:disabled=\"disabled\"\n\t\t\t:eager=\"eager\"\n\t\t\t:items=\"items\"\n\t\t\t:offset=\"offset\"\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:width=\"width\"\n\t\t>\n\t\t\t<template\n\t\t\t\t#activator=\"{\n\t\t\t\t\tprops,\n\t\t\t\t\topening,\n\t\t\t\t\topen,\n\t\t\t\t\tclosed,\n\t\t\t\t\tclosing,\n\t\t\t\t\tdisabled,\n\t\t\t\t\tplacement,\n\t\t\t\t}\"\n\t\t\t>\n\t\t\t\t<slot\n\t\t\t\t\t:closed=\"closed\"\n\t\t\t\t\t:closing=\"closing\"\n\t\t\t\t\t:disabled=\"disabled\"\n\t\t\t\t\tname=\"activator\"\n\t\t\t\t\t:open=\"open\"\n\t\t\t\t\t:opening=\"opening\"\n\t\t\t\t\t:placement=\"placement\"\n\t\t\t\t\t:props=\"props\"\n\t\t\t\t>\n\t\t\t\t\t<BaseButton v-bind=\"props\" class=\"bb-dropdown-button__dropdown-btn\">\n\t\t\t\t\t\t<span class=\"bb-dropdown-button__dropdown-label\"\n\t\t\t\t\t\t\t>{{ open || opening ? 'Chiudi' : 'Apri' }} il menu</span\n\t\t\t\t\t\t>\n\t\t\t\t\t\t<slot\n\t\t\t\t\t\t\t:closed=\"closed\"\n\t\t\t\t\t\t\t:closing=\"closing\"\n\t\t\t\t\t\t\t:disabled=\"disabled\"\n\t\t\t\t\t\t\tname=\"right-btn\"\n\t\t\t\t\t\t\t:open=\"open\"\n\t\t\t\t\t\t\t:opening=\"opening\"\n\t\t\t\t\t\t\t:placement=\"placement\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<svg\n\t\t\t\t\t\t\t\tclass=\"bb-dropdown-button__dropdown-chevron\"\n\t\t\t\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<path\n\t\t\t\t\t\t\t\t\td=\"M7.41 15.41L12 10.83l4.59 4.58L18 14l-6-6l-6 6l1.41 1.41Z\"\n\t\t\t\t\t\t\t\t\tfill=\"currentColor\"\n\t\t\t\t\t\t\t\t/></svg></slot></BaseButton></slot\n\t\t\t></template>\n\t\t\t<template #prepend=\"data\"><slot name=\"prepend\" v-bind=\"data\" /></template>\n\t\t\t<template #item:prepend=\"data\">\n\t\t\t\t<slot name=\"item:prepend\" v-bind=\"data\" />\n\t\t\t</template>\n\t\t\t<template #item=\"data\"><slot name=\"item\" v-bind=\"data\" /></template>\n\t\t\t<template v-for=\"item in items\" #[item.key]=\"data\">\n\t\t\t\t<slot :name=\"item.key\" v-bind=\"data\" />\n\t\t\t</template>\n\t\t\t<template #item:append=\"data\">\n\t\t\t\t<slot name=\"item:append\" v-bind=\"data\" />\n\t\t\t</template>\n\t\t\t<template #append=\"data\"><slot name=\"append\" v-bind=\"data\" /></template>\n\t\t</BbDropdown>\n\t</span>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed } from 'vue';\nimport BaseButton from '../BaseButton/BaseButton.vue';\nimport BbDropdown from '../BbDropdown/BbDropdown.vue';\nimport type { BbDropdownProps, MappedItem } from '../BbDropdown/BbDropdown.vue';\n\nexport type BbDropdownButtonProps = Pick<\n\tBbDropdownProps,\n\t| 'arrowPadding'\n\t| 'block'\n\t| 'disabled'\n\t| 'eager'\n\t| 'id'\n\t| 'items'\n\t| 'offset'\n\t| 'padding'\n\t| 'placement'\n\t| 'theme'\n\t| 'transitionDuration'\n\t| 'width'\n>;\n\nconst props = withDefaults(defineProps<BbDropdownButtonProps>(), {\n\ttheme: 'default',\n});\n\ndefineSlots<\n\t{\n\t\t'left-btn'?: (props: {\n\t\t\tdisabled?: boolean;\n\t\t\ttext: MappedItem['text'];\n\t\t}) => any;\n\t\tactivator?: (props: {\n\t\t\tprops: {\n\t\t\t\t'aria-expanded': boolean;\n\t\t\t\t'aria-controls': string;\n\t\t\t\tid: string;\n\t\t\t\tonClick: MappedItem['onClick'];\n\t\t\t\tonKeydown: MappedItem['onKeydown'];\n\t\t\t\tdisabled?: BbDropdownButtonProps['disabled'];\n\t\t\t};\n\t\t\tclosed: boolean;\n\t\t\tclosing: boolean;\n\t\t\tdisabled?: boolean;\n\t\t\topen: boolean;\n\t\t\topening: boolean;\n\t\t\tplacement: BbDropdownButtonProps['placement'];\n\t\t}) => any;\n\t\tprepend?: (props: {\n\t\t\tclosed: boolean;\n\t\t\tclosing: boolean;\n\t\t\tdisabled?: boolean;\n\t\t\topen: boolean;\n\t\t\topening: boolean;\n\t\t\tplacement: BbDropdownButtonProps['placement'];\n\t\t}) => any;\n\t\t'item:prepend'?: (props: {\n\t\t\tclosed: boolean;\n\t\t\tclosing: boolean;\n\t\t\tdisabled?: MappedItem['disabled'];\n\t\t\tindex: number;\n\t\t\titem: BbDropdownButtonProps['items'][number];\n\t\t\topen: boolean;\n\t\t\topening: boolean;\n\t\t\tplacement: BbDropdownButtonProps['placement'];\n\t\t\ttext: MappedItem['text'];\n\t\t}) => any;\n\t\titem?: (props: {\n\t\t\tclosed: boolean;\n\t\t\tclosing: boolean;\n\t\t\tdisabled?: MappedItem['disabled'];\n\t\t\tindex: number;\n\t\t\titem: BbDropdownButtonProps['items'][number];\n\t\t\topen: boolean;\n\t\t\topening: boolean;\n\t\t\tplacement: BbDropdownButtonProps['placement'];\n\t\t\ttext: MappedItem['text'];\n\t\t}) => any;\n\t\t'item:append'?: (props: {\n\t\t\tclosed: boolean;\n\t\t\tclosing: boolean;\n\t\t\tdisabled?: MappedItem['disabled'];\n\t\t\tindex: number;\n\t\t\titem: BbDropdownButtonProps['items'][number];\n\t\t\topen: boolean;\n\t\t\topening: boolean;\n\t\t\tplacement: BbDropdownButtonProps['placement'];\n\t\t\ttext: MappedItem['text'];\n\t\t}) => any;\n\t\tappend?: (props: {\n\t\t\tclosed: boolean;\n\t\t\tclosing: boolean;\n\t\t\tdisabled?: boolean;\n\t\t\topen: boolean;\n\t\t\topening: boolean;\n\t\t\tplacement: BbDropdownButtonProps['placement'];\n\t\t}) => any;\n\t\t'right-btn'?: (props: {\n\t\t\tclosed: boolean;\n\t\t\tclosing: boolean;\n\t\t\tdisabled?: boolean;\n\t\t\topen: boolean;\n\t\t\topening: boolean;\n\t\t\tplacement: BbDropdownButtonProps['placement'];\n\t\t}) => any;\n\t} & {\n\t\t[key: string]: (props: {\n\t\t\tclosed: boolean;\n\t\t\tclosing: boolean;\n\t\t\tdisabled?: MappedItem['disabled'];\n\t\t\tindex: number;\n\t\t\titem: BbDropdownButtonProps['items'][number];\n\t\t\topen: boolean;\n\t\t\topening: boolean;\n\t\t\tplacement: BbDropdownButtonProps['placement'];\n\t\t\ttext: MappedItem['text'];\n\t\t}) => any;\n\t}\n>();\n\nconst mainBtn = computed(() => {\n\tconst base = { ...props.items[0] };\n\tbase.disabled = base.disabled || props.disabled;\n\treturn base;\n});\n</script>\n\n<style lang=\"postcss\">\n@import '@/assets/css/BbDropdownButton';\n</style>\n"],"names":["props","__props","mainBtn","computed","base"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8GA,UAAMA,IAAQC,GAkGRC,IAAUC,EAAS,MAAM;AAC9B,YAAMC,IAAO,EAAE,GAAGJ,EAAM,MAAM,CAAC,EAAE;AAC5B,aAAAI,EAAA,WAAWA,EAAK,YAAYJ,EAAM,UAChCI;AAAA,IAAA,CACP;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/dist/index69.js CHANGED
@@ -1,226 +1,2 @@
1
- import { defineComponent as j, ref as g, watch as x, computed as m, openBlock as V, createBlock as G, resolveDynamicComponent as K, normalizeClass as O, withCtx as M, createElementVNode as c, withModifiers as y, renderSlot as U, normalizeProps as Y, guardReactiveProps as Z, createTextVNode as J, unref as Q, createVNode as W, createElementBlock as F, Fragment as X, renderList as ee, toDisplayString as te } from "vue";
2
- import { findInTree as ae } from "./index225.js";
3
- import { useId as re } from "./index7.js";
4
- import oe from "./index118.js";
5
- import "./index183.js";
6
- const le = ["accept", "autofocus", "disabled", "multiple"], se = {
7
- "aria-hidden": "true",
8
- class: "bb-dropzone__submittable-label"
9
- }, ne = ["id", "disabled", "multiple", "name"], ie = { class: "bb-dropzone__errors" }, fe = /* @__PURE__ */ j({
10
- __name: "BbDropzone",
11
- props: {
12
- autofocus: {},
13
- disabled: { type: Boolean },
14
- errors: {},
15
- hasErrors: { type: Boolean },
16
- id: {},
17
- multiple: { type: Boolean },
18
- name: {},
19
- accept: {},
20
- maxFiles: {},
21
- maxSize: {},
22
- modelValue: {},
23
- tag: { default: "div" }
24
- },
25
- emits: ["blur", "error", "focus", "update:modelValue"],
26
- setup(D, { emit: C }) {
27
- let b;
28
- const t = D, l = C, d = g(null);
29
- if (t.accept && !Array.isArray(t.accept))
30
- throw new Error("Property accept is not an array");
31
- if (t.multiple && !Array.isArray(t.modelValue))
32
- throw new Error(
33
- "Component is set to multiple but modelValue is not an array"
34
- );
35
- const h = g(!1), I = (e) => {
36
- h.value = !0, l("focus", e);
37
- }, L = (e) => {
38
- h.value = !1, l("blur", e);
39
- };
40
- x(
41
- () => t.modelValue,
42
- () => {
43
- let e = new DataTransfer();
44
- Array.isArray(t.modelValue) ? t.modelValue.length && t.modelValue.forEach((a) => e.items.add(a)) : t.modelValue && e.items.add(t.modelValue), d.value && (e.items.length ? d.value.files = e.files : d.value.files = null);
45
- }
46
- );
47
- const p = g([]), P = m(
48
- () => p.value.join(",")
49
- );
50
- x(
51
- () => t.accept,
52
- async () => {
53
- if (t.accept) {
54
- let e = [];
55
- for (let a = 0; a < t.accept.length; a++) {
56
- const r = t.accept[a];
57
- if (r.includes("/"))
58
- e.push(r);
59
- else {
60
- b || (b = (await import("./index224.js")).default);
61
- const o = b.getType(r);
62
- if (!o)
63
- throw new Error(
64
- `Could not detect the correct mime associated with ${r}`
65
- );
66
- e.push(o);
67
- }
68
- }
69
- p.value = e;
70
- }
71
- },
72
- { immediate: !0 }
73
- );
74
- const z = t.id || `${re().id.value}`, v = `bb_dz_${z}`, i = g(!1);
75
- let T;
76
- const k = m(() => ({
77
- "bb-dropzone": !0,
78
- "bb-dropzone--errors": R.value,
79
- "bb-dropzone--dragging": i.value
80
- })), q = m(() => ({
81
- dragging: i.value,
82
- focused: h.value,
83
- id: z
84
- })), $ = (e) => {
85
- if (i.value = !1, e.dataTransfer) {
86
- e.stopImmediatePropagation();
87
- let a;
88
- if (a = Array.from(e.dataTransfer.files), a = _(a), t.multiple ? Array.isArray(t.modelValue) && l("update:modelValue", [...t.modelValue, ...a]) : (a = a[0], l("update:modelValue", a)), e.currentTarget instanceof HTMLLabelElement) {
89
- const r = e.currentTarget.querySelector("input[type=file]");
90
- r instanceof HTMLInputElement && r.focus();
91
- }
92
- }
93
- }, H = (e) => {
94
- if (e.target instanceof HTMLInputElement) {
95
- if (e.target.files) {
96
- let a;
97
- a = _(Array.from(e.target.files)), t.multiple ? Array.isArray(t.modelValue) && l("update:modelValue", [...t.modelValue, ...a]) : (a = a[0], l("update:modelValue", a));
98
- }
99
- e.target.value = "", e.target.files = null;
100
- }
101
- }, _ = (e) => e.filter((a, r) => {
102
- if (t.maxSize && !(a.size <= t.maxSize))
103
- return l("error", f.maxSize(a)), !1;
104
- let o = !1;
105
- return t.modelValue && (Array.isArray(t.modelValue) ? o = t.modelValue.some(
106
- (s) => S(s, a)
107
- ) : o = S(t.modelValue, a)), o ? (l("error", f.uniqueness(a)), !1) : t.accept && !p.value.some((n) => {
108
- let u = !1;
109
- return n.includes("*") ? u = u || n.split("/")[0] === a.type.split("/")[0] : u = u || n === a.type, u;
110
- }) ? (l("error", f.accept(a)), !1) : t.maxFiles && Array.isArray(t.modelValue) && t.modelValue.length + r + 1 > t.maxFiles ? (l(
111
- "error",
112
- f.maxFiles(a, t.modelValue.length + r + 1)
113
- ), !1) : !0;
114
- }), N = (e) => {
115
- const a = e.target;
116
- if (a instanceof HTMLElement) {
117
- const r = ae(
118
- [a],
119
- "parentElement",
120
- (o) => o.classList.contains("bb-dropzone")
121
- );
122
- r && (r.id === v ? B() : E());
123
- }
124
- }, B = () => {
125
- clearTimeout(T), i.value = !0;
126
- }, E = () => {
127
- T = setTimeout(() => {
128
- i.value = !1;
129
- }, 100);
130
- }, A = (e, a = 2) => {
131
- if (!e)
132
- return "0 B";
133
- const r = 1024, o = a || 0, s = ["B", "KB", "MB", "GB", "TB", "PB", "EB", "ZB", "YB"], n = Math.floor(Math.log(e) / Math.log(r));
134
- return parseFloat((e / Math.pow(r, n)).toFixed(o)) + " " + s[n];
135
- }, S = (e, a) => !["name", "size", "lastModified", "type"].some((o) => e[o] !== a[o]), f = {
136
- maxSize: (e) => {
137
- if (t.maxSize)
138
- return {
139
- type: "maxSize",
140
- file: e,
141
- formattedMaxSize: A(+t.maxSize),
142
- formattedSize: A(e.size),
143
- filename: e.name
144
- };
145
- throw new Error(
146
- "Requested to create an error for maxSize without providing a maxSize."
147
- );
148
- },
149
- uniqueness: (e) => ({
150
- type: "uniqueness",
151
- file: e,
152
- filename: e.name
153
- }),
154
- accept: (e) => ({
155
- type: "accept",
156
- file: e,
157
- acceptedMimeTypes: p.value,
158
- mimeType: e.type,
159
- filename: e.name
160
- }),
161
- maxFiles: (e, a) => ({
162
- type: "maxFiles",
163
- file: e,
164
- maxFiles: t.maxFiles,
165
- totalFiles: a,
166
- filename: e.name
167
- })
168
- }, w = m(() => t.errors ? [].concat(t.errors) : []), R = m(
169
- () => !!w.value.length || t.hasErrors
170
- );
171
- return (e, a) => (V(), G(K(e.tag), {
172
- id: v,
173
- class: O(k.value)
174
- }, {
175
- default: M(() => [
176
- c("label", {
177
- onDragenter: y(B, ["prevent"]),
178
- onDragleave: y(E, ["prevent"]),
179
- onDragover: y(N, ["prevent"]),
180
- onDrop: y($, ["prevent"])
181
- }, [
182
- c("input", {
183
- accept: P.value,
184
- autofocus: e.autofocus,
185
- disabled: e.disabled,
186
- multiple: e.multiple,
187
- type: "file",
188
- onBlur: L,
189
- onChange: H,
190
- onFocus: I
191
- }, null, 40, le),
192
- U(e.$slots, "default", Y(Z(q.value)))
193
- ], 32),
194
- c("label", se, [
195
- J(" Server files "),
196
- c("input", {
197
- id: Q(z),
198
- ref_key: "submittable",
199
- ref: d,
200
- class: "bb-dropzone__submittable-input",
201
- disabled: e.disabled,
202
- multiple: e.multiple,
203
- name: e.name,
204
- type: "file"
205
- }, null, 8, ne)
206
- ]),
207
- c("span", ie, [
208
- W(oe, { tag: "span" }, {
209
- default: M(() => [
210
- (V(!0), F(X, null, ee(w.value, (r) => (V(), F("span", {
211
- key: r,
212
- class: "bb-dropzone__error"
213
- }, te(r), 1))), 128))
214
- ]),
215
- _: 1
216
- })
217
- ])
218
- ]),
219
- _: 3
220
- }, 8, ["class"]));
221
- }
222
- });
223
- export {
224
- fe as default
225
- };
1
+
226
2
  //# sourceMappingURL=index69.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index69.js","sources":["../src/components/BbDropzone/BbDropzone.vue"],"sourcesContent":["<template>\n\t<component :is=\"tag\" :id=\"containerId\" :class=\"classes\">\n\t\t<label\n\t\t\t@dragenter.prevent=\"setDragging\"\n\t\t\t@dragleave.prevent=\"unsetDragging\"\n\t\t\t@dragover.prevent=\"onDragOver\"\n\t\t\t@drop.prevent=\"onDrop\"\n\t\t>\n\t\t\t<input\n\t\t\t\t:accept=\"acceptedMimeTypesString\"\n\t\t\t\t:autofocus=\"autofocus\"\n\t\t\t\t:disabled=\"disabled\"\n\t\t\t\t:multiple=\"multiple\"\n\t\t\t\ttype=\"file\"\n\t\t\t\t@blur=\"onBlur\"\n\t\t\t\t@change=\"onChange\"\n\t\t\t\t@focus=\"onFocus\"\n\t\t\t/>\n\t\t\t<slot v-bind=\"slotAttributes\"></slot>\n\t\t</label>\n\t\t<label aria-hidden=\"true\" class=\"bb-dropzone__submittable-label\">\n\t\t\tServer files\n\t\t\t<input\n\t\t\t\t:id=\"id\"\n\t\t\t\tref=\"submittable\"\n\t\t\t\tclass=\"bb-dropzone__submittable-input\"\n\t\t\t\t:disabled=\"disabled\"\n\t\t\t\t:multiple=\"multiple\"\n\t\t\t\t:name=\"name\"\n\t\t\t\ttype=\"file\"\n\t\t\t/>\n\t\t</label>\n\n\t\t<span class=\"bb-dropzone__errors\">\n\t\t\t<BbSmoothHeight tag=\"span\">\n\t\t\t\t<span\n\t\t\t\t\tv-for=\"error in computedErrors\"\n\t\t\t\t\t:key=\"error\"\n\t\t\t\t\tclass=\"bb-dropzone__error\"\n\t\t\t\t\t>{{ error }}</span\n\t\t\t\t>\n\t\t\t</BbSmoothHeight>\n\t\t</span>\n\t</component>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref, watch } from 'vue';\nimport { findInTree } from '@/utilities/functions/findInTree';\nimport { useId } from '@/composables/useId';\nimport BbSmoothHeight from '../BbSmoothHeight/BbSmoothHeight.vue';\nimport type { CommonProps, NonVoidElementTag } from '@/types/CommonProps';\n\nexport type DropZoneError = ReturnType<\n\t(typeof createError)[keyof typeof createError]\n>;\n\nexport type BbDropzoneProps = Pick<\n\tCommonProps,\n\t'autofocus' | 'disabled' | 'errors' | 'hasErrors' | 'id' | 'multiple' | 'name'\n> & {\n\t/**\n\t * Array of mime-types or extensions to filter selectable files.\n\t */\n\taccept?: string[];\n\t/**\n\t * Maximum number of acceptable files\n\t */\n\tmaxFiles?: number;\n\t/**\n\t * Max size of the files in bytes.\n\t */\n\tmaxSize?: number;\n\t/**\n\t * Used by v-model.\n\t */\n\tmodelValue: any;\n} & NonVoidElementTag;\n\n// This is the dynamic import for mime\nlet mime: any;\n\nconst props = withDefaults(defineProps<BbDropzoneProps>(), {\n\ttag: 'div',\n});\n\nexport type BbDropzoneEvents = {\n\t(e: 'blur', event: FocusEvent): void;\n\t(e: 'error', data: DropZoneError): void;\n\t(e: 'focus', event: FocusEvent): void;\n\t(e: 'update:modelValue', data: any): void;\n};\nconst emit = defineEmits<BbDropzoneEvents>();\n\ndefineSlots<{\n\tdefault?: (props: { dragging: boolean; focused: boolean; id: string }) => any;\n}>();\n\nconst submittable = ref<any | null>(null);\n\nif (props.accept) {\n\tif (!Array.isArray(props.accept)) {\n\t\tthrow new Error('Property accept is not an array');\n\t}\n}\nif (props.multiple) {\n\tif (!Array.isArray(props.modelValue)) {\n\t\tthrow new Error(\n\t\t\t'Component is set to multiple but modelValue is not an array'\n\t\t);\n\t}\n}\n\nconst hasFocus = ref(false);\nconst onFocus = (event: FocusEvent) => {\n\thasFocus.value = true;\n\temit('focus', event);\n};\nconst onBlur = (event: FocusEvent) => {\n\thasFocus.value = false;\n\temit('blur', event);\n};\n\n/** Allow dropzone to be submittable (this is flimsy and might break) */\nwatch(\n\t() => props.modelValue,\n\t() => {\n\t\tlet container = new DataTransfer();\n\t\tif (Array.isArray(props.modelValue)) {\n\t\t\tif (props.modelValue.length) {\n\t\t\t\tprops.modelValue.forEach((file) => container.items.add(file));\n\t\t\t}\n\t\t} else {\n\t\t\tif (props.modelValue) container.items.add(props.modelValue);\n\t\t}\n\t\tif (submittable.value) {\n\t\t\tif (container.items.length) {\n\t\t\t\tsubmittable.value.files = container.files;\n\t\t\t} else {\n\t\t\t\tsubmittable.value.files = null;\n\t\t\t}\n\t\t}\n\t}\n);\n\nconst acceptedMimeTypes = ref<string[]>([]);\nconst acceptedMimeTypesString = computed(() =>\n\tacceptedMimeTypes.value.join(',')\n);\nwatch(\n\t() => props.accept,\n\tasync () => {\n\t\tif (props.accept) {\n\t\t\tlet accumulated = [];\n\t\t\tfor (let i = 0; i < props.accept.length; i++) {\n\t\t\t\tconst element = props.accept[i];\n\t\t\t\tif (element.includes('/')) accumulated.push(element);\n\t\t\t\telse {\n\t\t\t\t\tif (!mime) {\n\t\t\t\t\t\tconst mod = await import('mime');\n\t\t\t\t\t\tmime = mod.default;\n\t\t\t\t\t}\n\t\t\t\t\tconst foundMime = mime.getType(element);\n\t\t\t\t\tif (!foundMime) {\n\t\t\t\t\t\tthrow new Error(\n\t\t\t\t\t\t\t`Could not detect the correct mime associated with ${element}`\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\taccumulated.push(foundMime);\n\t\t\t\t}\n\t\t\t}\n\t\t\tacceptedMimeTypes.value = accumulated;\n\t\t}\n\t},\n\t{ immediate: true }\n);\n\n/**\n * Component state\n */\nconst id = props.id || `${useId().id.value}`;\nconst containerId = `bb_dz_${id}`;\n\nconst dragging = ref(false);\n// Add a timeout to prevent browser flickering\nlet draggingTimeout: ReturnType<typeof setTimeout>;\n\nconst classes = computed(() => {\n\treturn {\n\t\t'bb-dropzone': true,\n\t\t'bb-dropzone--errors': hasErrors.value,\n\t\t'bb-dropzone--dragging': dragging.value,\n\t};\n});\nconst slotAttributes = computed(() => {\n\treturn {\n\t\tdragging: dragging.value,\n\t\tfocused: hasFocus.value,\n\t\tid: id,\n\t};\n});\n\n/**\n * Component handlers\n */\nconst onDrop = (event: DragEvent) => {\n\tdragging.value = false;\n\n\tif (event.dataTransfer) {\n\t\tevent.stopImmediatePropagation();\n\t\tlet files;\n\t\tfiles = Array.from(event.dataTransfer.files);\n\t\tfiles = parseFiles(files);\n\t\tif (props.multiple) {\n\t\t\tif (Array.isArray(props.modelValue)) {\n\t\t\t\temit('update:modelValue', [...props.modelValue, ...files]);\n\t\t\t}\n\t\t} else {\n\t\t\tfiles = files[0];\n\t\t\temit('update:modelValue', files);\n\t\t}\n\t\tif (event.currentTarget instanceof HTMLLabelElement) {\n\t\t\tconst innerInput = event.currentTarget.querySelector('input[type=file]');\n\t\t\tif (innerInput instanceof HTMLInputElement) {\n\t\t\t\tinnerInput.focus();\n\t\t\t}\n\t\t}\n\t}\n};\nconst onChange = (event: Event) => {\n\tif (event.target instanceof HTMLInputElement) {\n\t\tif (event.target.files) {\n\t\t\tlet files;\n\t\t\tfiles = parseFiles(Array.from(event.target.files));\n\t\t\tif (props.multiple) {\n\t\t\t\tif (Array.isArray(props.modelValue)) {\n\t\t\t\t\temit('update:modelValue', [...props.modelValue, ...files]);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfiles = files[0];\n\t\t\t\temit('update:modelValue', files);\n\t\t\t}\n\t\t}\n\t\tevent.target.value = '';\n\t\tevent.target.files = null;\n\t}\n};\n\nconst parseFiles = (files: File[]) => {\n\treturn files.filter((file, index) => {\n\t\t// Sizecheck\n\t\tif (props.maxSize) {\n\t\t\tlet passing = file.size <= props.maxSize;\n\t\t\tif (!passing) {\n\t\t\t\temit('error', createError.maxSize(file));\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\t// Uniqueness check\n\t\tlet alreadyExists = false;\n\t\tif (props.modelValue) {\n\t\t\tif (Array.isArray(props.modelValue)) {\n\t\t\t\talreadyExists = props.modelValue.some((current) =>\n\t\t\t\t\tcompareFiles(current, file)\n\t\t\t\t);\n\t\t\t} else {\n\t\t\t\talreadyExists = compareFiles(props.modelValue, file);\n\t\t\t}\n\t\t}\n\t\tif (alreadyExists) {\n\t\t\temit('error', createError.uniqueness(file));\n\t\t\treturn false;\n\t\t}\n\t\t// Mime type check\n\t\tif (props.accept) {\n\t\t\tconst mimePassed = acceptedMimeTypes.value.some((mime) => {\n\t\t\t\tlet found = false;\n\t\t\t\tif (mime.includes('*'))\n\t\t\t\t\tfound = found || mime.split('/')[0] === file.type.split('/')[0];\n\t\t\t\telse found = found || mime === file.type;\n\t\t\t\treturn found;\n\t\t\t});\n\t\t\tif (!mimePassed) {\n\t\t\t\temit('error', createError.accept(file));\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\t// Max files check\n\t\tif (props.maxFiles) {\n\t\t\tif (Array.isArray(props.modelValue)) {\n\t\t\t\tif (props.modelValue.length + index + 1 > props.maxFiles) {\n\t\t\t\t\temit(\n\t\t\t\t\t\t'error',\n\t\t\t\t\t\tcreateError.maxFiles(file, props.modelValue.length + index + 1)\n\t\t\t\t\t);\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn true;\n\t});\n};\n\nconst onDragOver = (event: Event) => {\n\t// Find the closest dropzone in case of nested dropzones\n\tconst target = event.target;\n\tif (target instanceof HTMLElement) {\n\t\tconst closestDropzone = findInTree([target], 'parentElement', (el) =>\n\t\t\tel.classList.contains('bb-dropzone')\n\t\t);\n\t\tif (closestDropzone) {\n\t\t\t/* When dragging over this dropzone set as dragging */\n\t\t\tif (closestDropzone.id === containerId) {\n\t\t\t\tsetDragging();\n\t\t\t\t/* When dragging over a nested dropzone do not highlight this dropzone */\n\t\t\t} else {\n\t\t\t\tunsetDragging();\n\t\t\t}\n\t\t}\n\t}\n};\n\nconst setDragging = () => {\n\tclearTimeout(draggingTimeout);\n\tdragging.value = true;\n};\n\nconst unsetDragging = () => {\n\tdraggingTimeout = setTimeout(() => {\n\t\tdragging.value = false;\n\t}, 100);\n};\n\nconst bytesToUnit = (bytes: number, decimals = 2) => {\n\tif (!bytes) return '0 B';\n\tconst k = 1024;\n\tconst dm = decimals || 0;\n\tconst sizes = ['B', 'KB', 'MB', 'GB', 'TB', 'PB', 'EB', 'ZB', 'YB'];\n\tconst i = Math.floor(Math.log(bytes) / Math.log(k));\n\treturn parseFloat((bytes / Math.pow(k, i)).toFixed(dm)) + ' ' + sizes[i];\n};\n\n/**\n * Returns true if files are identical by the properties that are accessible\n * @param file The file to check\n * @param otherFile The file to check against\n */\nconst compareFiles = (file: File, otherFile: File) => {\n\tconst properties: (keyof File)[] = ['name', 'size', 'lastModified', 'type'];\n\treturn !properties.some((key) => file[key] !== otherFile[key]);\n};\n\n/**\n * Helper that creates errors based on component properties\n */\nconst createError = {\n\tmaxSize: (file: File) => {\n\t\t// Todo update to isNil\n\t\tif (props.maxSize) {\n\t\t\treturn {\n\t\t\t\ttype: 'maxSize',\n\t\t\t\tfile: file,\n\t\t\t\tformattedMaxSize: bytesToUnit(+props.maxSize),\n\t\t\t\tformattedSize: bytesToUnit(file.size),\n\t\t\t\tfilename: file.name,\n\t\t\t} as const;\n\t\t} else\n\t\t\tthrow new Error(\n\t\t\t\t'Requested to create an error for maxSize without providing a maxSize.'\n\t\t\t);\n\t},\n\tuniqueness: (file: File) => {\n\t\treturn {\n\t\t\ttype: 'uniqueness',\n\t\t\tfile: file,\n\t\t\tfilename: file.name,\n\t\t} as const;\n\t},\n\taccept: (file: File) => {\n\t\treturn {\n\t\t\ttype: 'accept',\n\t\t\tfile: file,\n\t\t\tacceptedMimeTypes: acceptedMimeTypes.value,\n\t\t\tmimeType: file.type,\n\t\t\tfilename: file.name,\n\t\t} as const;\n\t},\n\tmaxFiles: (file: File, totalFiles: number) => {\n\t\treturn {\n\t\t\ttype: 'maxFiles',\n\t\t\tfile: file,\n\t\t\tmaxFiles: props.maxFiles,\n\t\t\ttotalFiles,\n\t\t\tfilename: file.name,\n\t\t} as const;\n\t},\n};\n\nconst computedErrors = computed(() => {\n\treturn props.errors ? ([] as string[]).concat(props.errors) : [];\n});\n\nconst hasErrors = computed(\n\t() => Boolean(computedErrors.value.length) || props.hasErrors\n);\n</script>\n\n<style lang=\"postcss\">\n@import '@/assets/css/BbDropzone';\n</style>\n"],"names":["mime","props","__props","emit","__emit","submittable","ref","hasFocus","onFocus","event","onBlur","watch","container","file","acceptedMimeTypes","acceptedMimeTypesString","computed","accumulated","i","element","foundMime","id","useId","containerId","dragging","draggingTimeout","classes","hasErrors","slotAttributes","onDrop","files","parseFiles","innerInput","onChange","index","createError","alreadyExists","current","compareFiles","found","onDragOver","target","closestDropzone","findInTree","el","setDragging","unsetDragging","bytesToUnit","bytes","decimals","k","dm","sizes","otherFile","key","totalFiles","computedErrors"],"mappings":"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"}
1
+ {"version":3,"file":"index69.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
package/dist/index7.js CHANGED
@@ -1,23 +1,177 @@
1
- import { ref as n } from "vue";
2
- const c = (t) => {
3
- const r = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz", e = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", h = e.length;
4
- let o = r.charAt(
5
- Math.floor(Math.random() * r.length)
6
- ), a = 1;
7
- for (; a < t; )
8
- o += e.charAt(Math.floor(Math.random() * h)), a += 1;
9
- return o;
10
- }, l = () => {
11
- const t = n(c(12));
12
- return {
13
- /**
14
- * The generated id
15
- */
16
- id: t,
17
- refresh: () => t.value = c(12)
1
+ import { ref as _, computed as T, watch as h } from "vue";
2
+ import { deepEqual as j } from "./index124.js";
3
+ import { isNotNil as o } from "./index125.js";
4
+ import { useItemText as D } from "./index126.js";
5
+ import { useItemValue as G } from "./index127.js";
6
+ const U = ({
7
+ /** Component dependencies */
8
+ dependencies: q,
9
+ /** Time the component will wait before triggering a response from changed dependencies */
10
+ depsDebounceTime: b,
11
+ /** Boolean, flag if the component is disabled, as a whole */
12
+ disabled: g,
13
+ /** Function used to emit update:modelValue */
14
+ emitter: l,
15
+ /** Flag to enforce coherence between the items and modelValue. If `enforceCoherence` is active whenever a change made to props would result in a modelValue that is not present among the selectable items, it will be reset */
16
+ enforceCoherence: f,
17
+ /** ID of the component */
18
+ id: E,
19
+ /** Flag to trigger immediate search for the items on first load. If set to false items are not retrieved until a change to props happens or getOptions is called */
20
+ immediate: S,
21
+ /** Items from which to compute options */
22
+ initialItems: i,
23
+ /** Transformer to obtain a text label for the item */
24
+ itemText: k,
25
+ /** Transformer to obtain a value for the option */
26
+ itemValue: B,
27
+ /** Strategy used to identify unique objects in the component */
28
+ matchStrategy: d,
29
+ /** modelValue of the component */
30
+ modelValue: u,
31
+ /** Time the component will wait before triggering a response from changed modelValue */
32
+ modelValueDebounceTime: P,
33
+ multiple: p
34
+ }) => {
35
+ const y = _(0), A = _([]), v = async ({ prefill: e = !1 }) => {
36
+ let t = [];
37
+ Array.isArray(i.value) ? t = i.value : typeof i.value == "function" && (y.value++, t = await i.value(e, u.value), y.value--), A.value = t;
38
+ }, { getItemText: R } = D(), { getItemValue: W } = G(), w = T(() => A.value.map((e, t) => {
39
+ const n = R(e, k), r = W(e, B);
40
+ if (r === void 0)
41
+ throw new Error(
42
+ 'The result of extracting "value" from option was undefined. Affected item is ' + JSON.stringify(e) + " please check itemValue property is correct."
43
+ );
44
+ const s = JSON.stringify(r), c = e, I = !!(g != null && g.value || e != null && e.disabled);
45
+ let x;
46
+ (E || e != null && e.id) && (x = [E, o(e == null ? void 0 : e.id) ? e.id : s.replace(/\W/g, "_")].filter(o).join("_"));
47
+ const J = z.value.get(r);
48
+ return o(J) ? {
49
+ disabled: I,
50
+ id: x,
51
+ index: t,
52
+ jsonValue: s,
53
+ original: c,
54
+ selected: !0,
55
+ selectedIndex: J,
56
+ text: n,
57
+ value: r
58
+ } : {
59
+ disabled: I,
60
+ id: x,
61
+ index: t,
62
+ jsonValue: s,
63
+ original: c,
64
+ selected: !1,
65
+ selectedIndex: J,
66
+ text: n,
67
+ value: r
68
+ };
69
+ })), a = T(() => {
70
+ if (d === "string") {
71
+ const e = w.value.reduce(
72
+ (t, n) => (t[n.jsonValue] = n, t),
73
+ {}
74
+ );
75
+ return {
76
+ get: (t) => e[JSON.stringify(t)]
77
+ };
78
+ } else if (d === "equality") {
79
+ const e = w.value.map((t) => [
80
+ t.value,
81
+ t
82
+ ]);
83
+ return {
84
+ get: (t) => {
85
+ var n;
86
+ return (n = e.find((r) => j(r[0], t))) == null ? void 0 : n[1];
87
+ }
88
+ };
89
+ } else
90
+ throw new Error("No match strategy has been defined");
91
+ }), z = T(() => {
92
+ if (d === "string") {
93
+ const e = {};
94
+ return [].concat(u.value).forEach((t, n) => {
95
+ e[JSON.stringify(t)] = n;
96
+ }), {
97
+ get: (t) => e[JSON.stringify(t)]
98
+ };
99
+ } else if (d === "equality") {
100
+ const e = [].concat(u.value).map((t, n) => [t, n]);
101
+ return {
102
+ get: (t) => {
103
+ var n;
104
+ return (n = e.find((r) => j(r[0], t))) == null ? void 0 : n[1];
105
+ }
106
+ };
107
+ } else
108
+ throw new Error("No match strategy has been defined");
109
+ });
110
+ let N, F = !1;
111
+ h(
112
+ u,
113
+ (e, t) => {
114
+ N && clearTimeout(N), N = setTimeout(
115
+ async () => {
116
+ if (F = !0, p) {
117
+ if (!Array.isArray(u.value))
118
+ throw new Error("Passed modelValue is not an array.");
119
+ let n = u.value.every(
120
+ (r) => a.value.get(r)
121
+ );
122
+ if ((!n || t === void 0) && (await v({ prefill: !0 }), n = u.value.every(
123
+ (r) => a.value.get(r)
124
+ )), !n) {
125
+ const r = e.filter((s) => a.value.get(s));
126
+ f.value && l(r);
127
+ }
128
+ } else {
129
+ let n = a.value.get(u.value);
130
+ (!n && o(u.value) || t === void 0) && await v({ prefill: !0 }), n = a.value.get(u.value), n || f.value && o(e) && l(null);
131
+ }
132
+ },
133
+ F || !S ? P : 0
134
+ );
135
+ },
136
+ // Immediate here triggers first search for items
137
+ { immediate: S, deep: !0 }
138
+ ), h(i, async (e, t) => {
139
+ if (typeof e == "function" || // Circumvent arrays defined in the template by the parent
140
+ JSON.stringify(e) !== JSON.stringify(t))
141
+ if (await v({ prefill: !0 }), p) {
142
+ if (!u.value.every(
143
+ (r) => a.value.get(r)
144
+ ) && f) {
145
+ const r = u.value.filter((s) => a.value.get(s));
146
+ l(r);
147
+ }
148
+ } else
149
+ !a.value.get(u.value) && f && o(u.value) && l(null);
150
+ });
151
+ let O;
152
+ return h(
153
+ q,
154
+ (e, t) => {
155
+ JSON.stringify(e) !== JSON.stringify(t) && (O && clearTimeout(O), O = setTimeout(async () => {
156
+ if (await v({ prefill: !0 }), p) {
157
+ if (!u.value.every(
158
+ (r) => a.value.get(r)
159
+ ) && f) {
160
+ const r = u.value.filter((s) => a.value.get(s));
161
+ l(r);
162
+ }
163
+ } else
164
+ !a.value.get(u.value) && f && o(u.value) && l(null);
165
+ }, b));
166
+ },
167
+ { deep: !0 }
168
+ ), {
169
+ getOptions: v,
170
+ loading: y,
171
+ options: w
18
172
  };
19
173
  };
20
174
  export {
21
- l as useId
175
+ U as useOptions
22
176
  };
23
177
  //# sourceMappingURL=index7.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index7.js","sources":["../src/composables/useId.ts"],"sourcesContent":["import { ref } from 'vue';\n\nconst makeid = (length: number) => {\n\tconst allowedFirstCharacter =\n\t\t'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz';\n\tconst characters =\n\t\t'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';\n\tconst charactersLength = characters.length;\n\tlet result = allowedFirstCharacter.charAt(\n\t\tMath.floor(Math.random() * allowedFirstCharacter.length)\n\t);\n\tlet counter = 1;\n\twhile (counter < length) {\n\t\tresult += characters.charAt(Math.floor(Math.random() * charactersLength));\n\t\tcounter += 1;\n\t}\n\treturn result;\n};\n\n/**\n * Return a reactive ref to an ID with a collision probability of one in 4 trillion.\n * The characters used are [a-zA-Z0-9] so they are fully compatible with HTML5 ID attr.\n * Also returns a function to refresh the id.\n */\nexport const useId = () => {\n\tconst id = ref(makeid(12));\n\tconst refresh = () => (id.value = makeid(12));\n\treturn {\n\t\t/**\n\t\t * The generated id\n\t\t */\n\t\tid,\n\t\trefresh,\n\t};\n};\n"],"names":["makeid","length","allowedFirstCharacter","characters","charactersLength","result","counter","useId","id","ref"],"mappings":";AAEA,MAAMA,IAAS,CAACC,MAAmB;AAClC,QAAMC,IACL,wDACKC,IACL,kEACKC,IAAmBD,EAAW;AACpC,MAAIE,IAASH,EAAsB;AAAA,IAClC,KAAK,MAAM,KAAK,OAAO,IAAIA,EAAsB,MAAM;AAAA,EAAA,GAEpDI,IAAU;AACd,SAAOA,IAAUL;AACN,IAAAI,KAAAF,EAAW,OAAO,KAAK,MAAM,KAAK,OAAO,IAAIC,CAAgB,CAAC,GAC7DE,KAAA;AAEL,SAAAD;AACR,GAOaE,IAAQ,MAAM;AAC1B,QAAMC,IAAKC,EAAIT,EAAO,EAAE,CAAC;AAElB,SAAA;AAAA;AAAA;AAAA;AAAA,IAIN,IAAAQ;AAAA,IACA,SANe,MAAOA,EAAG,QAAQR,EAAO,EAAE;AAAA,EAM1C;AAEF;"}
1
+ {"version":3,"file":"index7.js","sources":["../src/composables/useOptions.ts"],"sourcesContent":["import { computed, ref, watch } from 'vue';\nimport { deepEqual } from 'fast-equals';\nimport { isNotNil } from '@/utilities/functions/isNotNil';\nimport { useItemText } from '@/composables/useItemText';\nimport { useItemValue } from '@/composables/useItemValue';\nimport type { CommonProps } from '@/types/CommonProps';\nimport type { Ref } from 'vue';\n\nexport type BaseOption = {\n\tdisabled?: boolean;\n\tid?: string;\n\tjsonValue: string;\n\tname?: string;\n\toriginal: any;\n\treadonly?: boolean;\n\ttext: string;\n\tvalue: any;\n};\n\nexport type Option = BaseOption & { index: number } & (\n\t\t| {\n\t\t\t\tselected: true;\n\t\t\t\tselectedIndex: number;\n\t\t }\n\t\t| {\n\t\t\t\tselected: false;\n\t\t\t\tselectedIndex: undefined;\n\t\t }\n\t);\n\ntype Params = {\n\tdependencies: Ref<any[] | undefined>;\n\tdepsDebounceTime: number;\n\tdisabled?: Ref<boolean>;\n\temitter: (...args: any[]) => any;\n\tenforceCoherence: Ref<boolean>;\n\tid?: string;\n\timmediate: boolean;\n\tinitialItems: Ref<\n\t\t| any[]\n\t\t| ((prefill: boolean, modelValue?: any[]) => Promise<any[]>)\n\t\t| ((prefill: boolean, modelValue?: any[]) => any[])\n\t>;\n\titemText?: string | ((item: any) => string);\n\titemValue?: string | ((item: any) => any);\n\tmatchStrategy: Exclude<CommonProps['matchStrategy'], undefined>;\n\tmodelValue: Ref<any>;\n\tmodelValueDebounceTime: number;\n\tmultiple?: boolean;\n};\n\nexport const useOptions = ({\n\t/** Component dependencies */\n\tdependencies,\n\t/** Time the component will wait before triggering a response from changed dependencies */\n\tdepsDebounceTime,\n\t/** Boolean, flag if the component is disabled, as a whole */\n\tdisabled,\n\t/** Function used to emit update:modelValue */\n\temitter,\n\t/** Flag to enforce coherence between the items and modelValue. If `enforceCoherence` is active whenever a change made to props would result in a modelValue that is not present among the selectable items, it will be reset */\n\tenforceCoherence,\n\t/** ID of the component */\n\tid,\n\t/** Flag to trigger immediate search for the items on first load. If set to false items are not retrieved until a change to props happens or getOptions is called */\n\timmediate,\n\t/** Items from which to compute options */\n\tinitialItems,\n\t/** Transformer to obtain a text label for the item */\n\titemText,\n\t/** Transformer to obtain a value for the option */\n\titemValue,\n\t/** Strategy used to identify unique objects in the component */\n\tmatchStrategy,\n\t/** modelValue of the component */\n\tmodelValue,\n\t/** Time the component will wait before triggering a response from changed modelValue */\n\tmodelValueDebounceTime,\n\tmultiple,\n}: Params) => {\n\t/**\n\t * Loading is a counter so it can be accumulated\n\t */\n\tconst loading = ref(0);\n\n\t/**\n\t * Items as retrieved from outside\n\t */\n\tconst internalItems = ref<BaseOption[]>([]);\n\n\t/**\n\t * The option getter\n\t * @param options\n\t */\n\tconst getOptions = async ({ prefill = false }) => {\n\t\tlet items = [];\n\t\tif (Array.isArray(initialItems.value)) {\n\t\t\titems = initialItems.value;\n\t\t} else {\n\t\t\tif (typeof initialItems.value === 'function') {\n\t\t\t\tloading.value++;\n\t\t\t\titems = await initialItems.value(prefill, modelValue.value);\n\t\t\t\tloading.value--;\n\t\t\t}\n\t\t}\n\t\tinternalItems.value = items;\n\t};\n\n\t/**\n\t * Map the items returned from outside to a set of useful information.\n\t * If a value can't be obtained throw an error\n\t */\n\tconst { getItemText } = useItemText();\n\tconst { getItemValue } = useItemValue();\n\tconst options = computed<Option[]>(() => {\n\t\treturn internalItems.value.map((item: any, index: number) => {\n\t\t\tconst text = getItemText(item, itemText);\n\t\t\tconst value = getItemValue(item, itemValue);\n\n\t\t\t// Undefined is not JSONable\n\t\t\tif (value === undefined)\n\t\t\t\tthrow new Error(\n\t\t\t\t\t'The result of extracting \"value\" from option was undefined. Affected item is ' +\n\t\t\t\t\t\tJSON.stringify(item) +\n\t\t\t\t\t\t' please check itemValue property is correct.'\n\t\t\t\t);\n\n\t\t\tconst jsonValue = JSON.stringify(value);\n\t\t\tconst original = item;\n\t\t\tconst _disabled = !!(disabled?.value || item?.disabled);\n\n\t\t\tlet _id;\n\n\t\t\t// Props that are handled externally\n\t\t\tif (id || item?.id) {\n\t\t\t\t_id = [id, isNotNil(item?.id) ? item.id : jsonValue.replace(/\\W/g, '_')]\n\t\t\t\t\t.filter(isNotNil)\n\t\t\t\t\t.join('_');\n\t\t\t}\n\n\t\t\tconst selectedIndex = modelValueIndexed.value.get(value);\n\n\t\t\t// Workaround for TS discriminated union not being resolved\n\t\t\tif (isNotNil(selectedIndex))\n\t\t\t\treturn {\n\t\t\t\t\tdisabled: _disabled,\n\t\t\t\t\tid: _id,\n\t\t\t\t\tindex,\n\t\t\t\t\tjsonValue,\n\t\t\t\t\toriginal,\n\t\t\t\t\tselected: true,\n\t\t\t\t\tselectedIndex,\n\t\t\t\t\ttext,\n\t\t\t\t\tvalue,\n\t\t\t\t};\n\n\t\t\treturn {\n\t\t\t\tdisabled: _disabled,\n\t\t\t\tid: _id,\n\t\t\t\tindex,\n\t\t\t\tjsonValue,\n\t\t\t\toriginal,\n\t\t\t\tselected: false,\n\t\t\t\tselectedIndex,\n\t\t\t\ttext,\n\t\t\t\tvalue,\n\t\t\t};\n\t\t});\n\t});\n\n\t/**\n\t * Indexes options by their value\n\t * (using JSON to circumvent identical objects not being equal in JS)\n\t */\n\tconst optionsIndexedByValue = computed(() => {\n\t\tif (matchStrategy === 'string') {\n\t\t\tconst indexed = options.value.reduce(\n\t\t\t\t(acc: { [key: string]: BaseOption }, curr: BaseOption) => {\n\t\t\t\t\tacc[curr.jsonValue] = curr;\n\t\t\t\t\treturn acc;\n\t\t\t\t},\n\t\t\t\t{}\n\t\t\t);\n\t\t\treturn {\n\t\t\t\tget: (key: any) => {\n\t\t\t\t\treturn indexed[JSON.stringify(key)];\n\t\t\t\t},\n\t\t\t};\n\t\t} else if (matchStrategy === 'equality') {\n\t\t\tconst indexed: [any, BaseOption][] = options.value.map((option) => [\n\t\t\t\toption.value,\n\t\t\t\toption,\n\t\t\t]);\n\n\t\t\treturn {\n\t\t\t\tget: (key: any) => {\n\t\t\t\t\treturn indexed.find((pairs) => deepEqual(pairs[0], key))?.[1];\n\t\t\t\t},\n\t\t\t};\n\t\t} else {\n\t\t\tthrow new Error('No match strategy has been defined');\n\t\t}\n\t});\n\n\t/**\n\t * Indexes modelValue to a map so when can easily know which values are selected\n\t * (using JSON to circumvent identical object not being equal in JS)\n\t */\n\tconst modelValueIndexed = computed(() => {\n\t\tif (matchStrategy === 'string') {\n\t\t\tconst map: { [key: string]: number } = {};\n\t\t\t[].concat(modelValue.value).forEach((value: any, index: number) => {\n\t\t\t\tmap[JSON.stringify(value)] = index;\n\t\t\t});\n\t\t\treturn {\n\t\t\t\tget: (value: any) => map[JSON.stringify(value)],\n\t\t\t};\n\t\t} else if (matchStrategy === 'equality') {\n\t\t\tconst map = []\n\t\t\t\t.concat(modelValue.value)\n\t\t\t\t.map((value, index) => [value, index]);\n\n\t\t\treturn {\n\t\t\t\tget: (key: any) => {\n\t\t\t\t\treturn map.find((pairs) => deepEqual(pairs[0], key))?.[1];\n\t\t\t\t},\n\t\t\t};\n\t\t} else {\n\t\t\tthrow new Error('No match strategy has been defined');\n\t\t}\n\t});\n\n\t/**\n\t * When modelValue changes see if we already have the new value in the current options.\n\t * If we don't - try searching again in case the prefill might return the correct items\n\t * If not found and coherence is enforced reset modelValue\n\t */\n\tlet modelValueTimeout: ReturnType<typeof setTimeout>;\n\tlet hasRunOnce = false;\n\twatch(\n\t\tmodelValue,\n\t\t(current, previous) => {\n\t\t\tif (modelValueTimeout) clearTimeout(modelValueTimeout);\n\t\t\tmodelValueTimeout = setTimeout(\n\t\t\t\tasync () => {\n\t\t\t\t\thasRunOnce = true;\n\t\t\t\t\tif (multiple) {\n\t\t\t\t\t\tif (!Array.isArray(modelValue.value)) {\n\t\t\t\t\t\t\tthrow new Error('Passed modelValue is not an array.');\n\t\t\t\t\t\t}\n\t\t\t\t\t\tlet allFound = modelValue.value.every((value: any) =>\n\t\t\t\t\t\t\toptionsIndexedByValue.value.get(value)\n\t\t\t\t\t\t);\n\n\t\t\t\t\t\tif (!allFound || previous === undefined) {\n\t\t\t\t\t\t\tawait getOptions({ prefill: true });\n\t\t\t\t\t\t\tallFound = modelValue.value.every((value: any) =>\n\t\t\t\t\t\t\t\toptionsIndexedByValue.value.get(value)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!allFound) {\n\t\t\t\t\t\t\tconst coherent = current.filter((value: any) => {\n\t\t\t\t\t\t\t\tconst found = optionsIndexedByValue.value.get(value);\n\t\t\t\t\t\t\t\treturn found;\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tif (enforceCoherence.value) {\n\t\t\t\t\t\t\t\temitter(coherent);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tlet found = optionsIndexedByValue.value.get(modelValue.value);\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\t(!found && isNotNil(modelValue.value)) ||\n\t\t\t\t\t\t\tprevious === undefined\n\t\t\t\t\t\t) {\n\t\t\t\t\t\t\tawait getOptions({ prefill: true });\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfound = optionsIndexedByValue.value.get(modelValue.value);\n\t\t\t\t\t\tif (!found) {\n\t\t\t\t\t\t\tif (enforceCoherence.value && isNotNil(current)) {\n\t\t\t\t\t\t\t\temitter(null);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\t// Run immediately the first time to load intiial items\n\t\t\t\t},\n\t\t\t\thasRunOnce || !immediate ? modelValueDebounceTime : 0\n\t\t\t);\n\t\t},\n\t\t// Immediate here triggers first search for items\n\t\t{ immediate, deep: true }\n\t);\n\n\t/**\n\t * Refresh items on change.\n\t * To avoid refreshing every time the parent rerenders (happens when items are an array defined in the template)\n\t * we check by comparing the stringified version\n\t */\n\twatch(initialItems, async (current, previous) => {\n\t\tif (\n\t\t\ttypeof current === 'function' ||\n\t\t\t// Circumvent arrays defined in the template by the parent\n\t\t\tJSON.stringify(current) !== JSON.stringify(previous)\n\t\t) {\n\t\t\tawait getOptions({ prefill: true });\n\n\t\t\tif (multiple) {\n\t\t\t\tconst allFound = modelValue.value.every((value: any) =>\n\t\t\t\t\toptionsIndexedByValue.value.get(value)\n\t\t\t\t);\n\n\t\t\t\tif (!allFound) {\n\t\t\t\t\tif (enforceCoherence) {\n\t\t\t\t\t\tconst coherent = modelValue.value.filter((value: any) => {\n\t\t\t\t\t\t\tconst found = optionsIndexedByValue.value.get(value);\n\t\t\t\t\t\t\treturn found;\n\t\t\t\t\t\t});\n\t\t\t\t\t\temitter(coherent);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tconst found = optionsIndexedByValue.value.get(modelValue.value);\n\t\t\t\tif (!found && enforceCoherence && isNotNil(modelValue.value)) {\n\t\t\t\t\temitter(null);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\n\t/**\n\t * When dependencies change\n\t * Check dependencies are the same by value and not reference\n\t * Otherwise we search again for options as they might be different base on dependencies.\n\t * If coherence is enforced we set the state accordingly\n\t */\n\tlet depsTimeout: ReturnType<typeof setTimeout>;\n\twatch(\n\t\tdependencies,\n\t\t(current, previous) => {\n\t\t\t// Circumvent array defined in the template by the parent\n\t\t\tif (JSON.stringify(current) === JSON.stringify(previous)) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (depsTimeout) clearTimeout(depsTimeout);\n\t\t\tdepsTimeout = setTimeout(async () => {\n\t\t\t\tawait getOptions({ prefill: true });\n\t\t\t\tif (multiple) {\n\t\t\t\t\tconst allFound = modelValue.value.every((value: any) =>\n\t\t\t\t\t\toptionsIndexedByValue.value.get(value)\n\t\t\t\t\t);\n\t\t\t\t\tif (!allFound && enforceCoherence) {\n\t\t\t\t\t\tconst coherent = modelValue.value.filter((value: any) => {\n\t\t\t\t\t\t\tconst found = optionsIndexedByValue.value.get(value);\n\t\t\t\t\t\t\treturn found;\n\t\t\t\t\t\t});\n\t\t\t\t\t\temitter(coherent);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tconst found = optionsIndexedByValue.value.get(modelValue.value);\n\t\t\t\t\tif (!found && enforceCoherence && isNotNil(modelValue.value)) {\n\t\t\t\t\t\temitter(null);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}, depsDebounceTime);\n\t\t},\n\t\t{ deep: true }\n\t);\n\n\treturn {\n\t\tgetOptions,\n\t\tloading,\n\t\toptions,\n\t};\n};\n"],"names":["useOptions","dependencies","depsDebounceTime","disabled","emitter","enforceCoherence","id","immediate","initialItems","itemText","itemValue","matchStrategy","modelValue","modelValueDebounceTime","multiple","loading","ref","internalItems","getOptions","prefill","items","getItemText","useItemText","getItemValue","useItemValue","options","computed","item","index","text","value","jsonValue","original","_disabled","_id","isNotNil","selectedIndex","modelValueIndexed","optionsIndexedByValue","indexed","acc","curr","key","option","_a","pairs","deepEqual","map","modelValueTimeout","hasRunOnce","watch","current","previous","allFound","coherent","found","depsTimeout"],"mappings":"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"}