bitboss-ui 2.0.5 → 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 (431) hide show
  1. package/dist/components/BaseDialog/BaseDialog.vue.d.ts +1 -3
  2. package/dist/composables/useOptions.d.ts +1 -1
  3. package/dist/index.js +89 -87
  4. package/dist/index.js.map +1 -1
  5. package/dist/index10.js +7 -39
  6. package/dist/index10.js.map +1 -1
  7. package/dist/index101.js +60 -87
  8. package/dist/index101.js.map +1 -1
  9. package/dist/index103.js +113 -258
  10. package/dist/index103.js.map +1 -1
  11. package/dist/index105.js +254 -388
  12. package/dist/index105.js.map +1 -1
  13. package/dist/index107.js +387 -98
  14. package/dist/index107.js.map +1 -1
  15. package/dist/index109.js +52 -48
  16. package/dist/index109.js.map +1 -1
  17. package/dist/index11.js +74 -188
  18. package/dist/index11.js.map +1 -1
  19. package/dist/index111.js +35 -34
  20. package/dist/index111.js.map +1 -1
  21. package/dist/index113.js +105 -23
  22. package/dist/index113.js.map +1 -1
  23. package/dist/index115.js +23 -156
  24. package/dist/index115.js.map +1 -1
  25. package/dist/index117.js +153 -112
  26. package/dist/index117.js.map +1 -1
  27. package/dist/index119.js +115 -39
  28. package/dist/index119.js.map +1 -1
  29. package/dist/index12.js +38 -80
  30. package/dist/index12.js.map +1 -1
  31. package/dist/index121.js +36 -40
  32. package/dist/index121.js.map +1 -1
  33. package/dist/index122.js +34 -37
  34. package/dist/index122.js.map +1 -1
  35. package/dist/index123.js +30 -21
  36. package/dist/index123.js.map +1 -1
  37. package/dist/index124.js +47 -2
  38. package/dist/index124.js.map +1 -1
  39. package/dist/index125.js +35 -21
  40. package/dist/index125.js.map +1 -1
  41. package/dist/index126.js +2 -2
  42. package/dist/index126.js.map +1 -1
  43. package/dist/index127.js +21 -312
  44. package/dist/index127.js.map +1 -1
  45. package/dist/index128.js +2 -24
  46. package/dist/index128.js.map +1 -1
  47. package/dist/index129.js +312 -2
  48. package/dist/index129.js.map +1 -1
  49. package/dist/index13.js +196 -0
  50. package/dist/index13.js.map +1 -0
  51. package/dist/index130.js +24 -5
  52. package/dist/index130.js.map +1 -1
  53. package/dist/index131.js +2 -9
  54. package/dist/index131.js.map +1 -1
  55. package/dist/index132.js +5 -6
  56. package/dist/index132.js.map +1 -1
  57. package/dist/index133.js +9 -3
  58. package/dist/index133.js.map +1 -1
  59. package/dist/index134.js +6 -3
  60. package/dist/index134.js.map +1 -1
  61. package/dist/index135.js +1 -1
  62. package/dist/index136.js +1 -1
  63. package/dist/index137.js +1 -1
  64. package/dist/index138.js +1 -1
  65. package/dist/index139.js +1 -1
  66. package/dist/index14.js +73 -121
  67. package/dist/index14.js.map +1 -1
  68. package/dist/index140.js +1 -1
  69. package/dist/index141.js +1 -1
  70. package/dist/index142.js +1 -1
  71. package/dist/index143.js +1 -1
  72. package/dist/index144.js +1 -1
  73. package/dist/index145.js +1 -1
  74. package/dist/index146.js +1 -1
  75. package/dist/index147.js +1 -1
  76. package/dist/index148.js +1 -1
  77. package/dist/index149.js +1 -1
  78. package/dist/index150.js +1 -1
  79. package/dist/index151.js +1 -1
  80. package/dist/index152.js +1 -1
  81. package/dist/index153.js +1 -1
  82. package/dist/index154.js +1 -1
  83. package/dist/index155.js +1 -1
  84. package/dist/index156.js +1 -1
  85. package/dist/index157.js +1 -1
  86. package/dist/index158.js +1 -1
  87. package/dist/index159.js +2 -2
  88. package/dist/index16.js +119 -118
  89. package/dist/index16.js.map +1 -1
  90. package/dist/index160.js +6 -0
  91. package/dist/index160.js.map +1 -0
  92. package/dist/index161.js +1 -1
  93. package/dist/index163.js +2 -2
  94. package/dist/index165.js +1 -1
  95. package/dist/index166.js +1 -1
  96. package/dist/index167.js +1 -1
  97. package/dist/index168.js +1 -1
  98. package/dist/index169.js +2 -2
  99. package/dist/index170.js +6 -0
  100. package/dist/index170.js.map +1 -0
  101. package/dist/index171.js +3 -2
  102. package/dist/index171.js.map +1 -1
  103. package/dist/index173.js +2 -3
  104. package/dist/index173.js.map +1 -1
  105. package/dist/index174.js +1 -1
  106. package/dist/index175.js +1 -1
  107. package/dist/index176.js +1 -1
  108. package/dist/index177.js +1 -1
  109. package/dist/index178.js +1 -1
  110. package/dist/index179.js +1 -1
  111. package/dist/index18.js +120 -208
  112. package/dist/index18.js.map +1 -1
  113. package/dist/index180.js +1 -1
  114. package/dist/index181.js +1 -1
  115. package/dist/index182.js +1 -1
  116. package/dist/index183.js +2 -2
  117. package/dist/index184.js +6 -0
  118. package/dist/index184.js.map +1 -0
  119. package/dist/index185.js +1 -1
  120. package/dist/index187.js +1 -1
  121. package/dist/index189.js +1 -1
  122. package/dist/index190.js +1 -1
  123. package/dist/index191.js +1 -1
  124. package/dist/index192.js +1 -1
  125. package/dist/index193.js +1 -1
  126. package/dist/index194.js +1 -1
  127. package/dist/index195.js +1 -1
  128. package/dist/index196.js +1 -1
  129. package/dist/index197.js +3 -81
  130. package/dist/index197.js.map +1 -1
  131. package/dist/index198.js +3 -3
  132. package/dist/index198.js.map +1 -1
  133. package/dist/index199.js +81 -5
  134. package/dist/index199.js.map +1 -1
  135. package/dist/index20.js +193 -275
  136. package/dist/index20.js.map +1 -1
  137. package/dist/index200.js +2 -16
  138. package/dist/index200.js.map +1 -1
  139. package/dist/index201.js +3 -16
  140. package/dist/index201.js.map +1 -1
  141. package/dist/index202.js +124 -17
  142. package/dist/index202.js.map +1 -1
  143. package/dist/index203.js +5 -19
  144. package/dist/index203.js.map +1 -1
  145. package/dist/index204.js +119 -23
  146. package/dist/index204.js.map +1 -1
  147. package/dist/index205.js +19 -3
  148. package/dist/index205.js.map +1 -1
  149. package/dist/index206.js +16 -2
  150. package/dist/index206.js.map +1 -1
  151. package/dist/index207.js +16 -8
  152. package/dist/index207.js.map +1 -1
  153. package/dist/index208.js +2 -249
  154. package/dist/index208.js.map +1 -1
  155. package/dist/index209.js +5 -0
  156. package/dist/index209.js.map +1 -0
  157. package/dist/index210.js +35 -52
  158. package/dist/index210.js.map +1 -1
  159. package/dist/index211.js +173 -36
  160. package/dist/index211.js.map +1 -1
  161. package/dist/index212.js +6 -5
  162. package/dist/index212.js.map +1 -1
  163. package/dist/index213.js +39 -36
  164. package/dist/index213.js.map +1 -1
  165. package/dist/index215.js +13 -4
  166. package/dist/index215.js.map +1 -1
  167. package/dist/index216.js +5 -2
  168. package/dist/index216.js.map +1 -1
  169. package/dist/index217.js +369 -2
  170. package/dist/index217.js.map +1 -1
  171. package/dist/index218.js +6 -40
  172. package/dist/index218.js.map +1 -1
  173. package/dist/{index214.js → index219.js} +1 -1
  174. package/dist/{index214.js.map → index219.js.map} +1 -1
  175. package/dist/index22.js +287 -247
  176. package/dist/index22.js.map +1 -1
  177. package/dist/index220.js +4 -13
  178. package/dist/index220.js.map +1 -1
  179. package/dist/index221.js +2 -158
  180. package/dist/index221.js.map +1 -1
  181. package/dist/index222.js +3 -84
  182. package/dist/index222.js.map +1 -1
  183. package/dist/index223.js +10 -0
  184. package/dist/index223.js.map +1 -0
  185. package/dist/index224.js +19 -3
  186. package/dist/index224.js.map +1 -1
  187. package/dist/index225.js +26 -34
  188. package/dist/index225.js.map +1 -1
  189. package/dist/index226.js +3 -6
  190. package/dist/index226.js.map +1 -1
  191. package/dist/index227.js +249 -7
  192. package/dist/index227.js.map +1 -1
  193. package/dist/index228.js +49 -123
  194. package/dist/index228.js.map +1 -1
  195. package/dist/index229.js +44 -123
  196. package/dist/index229.js.map +1 -1
  197. package/dist/index230.js +5 -2
  198. package/dist/index230.js.map +1 -1
  199. package/dist/index231.js +49 -174
  200. package/dist/index231.js.map +1 -1
  201. package/dist/index232.js +158 -5
  202. package/dist/index232.js.map +1 -1
  203. package/dist/index233.js +83 -368
  204. package/dist/index233.js.map +1 -1
  205. package/dist/index235.js +2 -18
  206. package/dist/index235.js.map +1 -1
  207. package/dist/index236.js +17 -105
  208. package/dist/index236.js.map +1 -1
  209. package/dist/index237.js +109 -0
  210. package/dist/index237.js.map +1 -0
  211. package/dist/{index238.js → index239.js} +3 -3
  212. package/dist/{index238.js.map → index239.js.map} +1 -1
  213. package/dist/index24.js +249 -120
  214. package/dist/index24.js.map +1 -1
  215. package/dist/index241.js +2 -10
  216. package/dist/index241.js.map +1 -1
  217. package/dist/index242.js +9 -2
  218. package/dist/index242.js.map +1 -1
  219. package/dist/index243.js +3 -224
  220. package/dist/index243.js.map +1 -1
  221. package/dist/index244.js +9 -281
  222. package/dist/index244.js.map +1 -1
  223. package/dist/index245.js +23 -6
  224. package/dist/index245.js.map +1 -1
  225. package/dist/index246.js +6 -2
  226. package/dist/index246.js.map +1 -1
  227. package/dist/index247.js +16 -2
  228. package/dist/index247.js.map +1 -1
  229. package/dist/index248.js +224 -2
  230. package/dist/index248.js.map +1 -1
  231. package/dist/index249.js +281 -2
  232. package/dist/index249.js.map +1 -1
  233. package/dist/index250.js +6 -2
  234. package/dist/index250.js.map +1 -1
  235. package/dist/index251.js +2 -2
  236. package/dist/index252.js +2 -3
  237. package/dist/index252.js.map +1 -1
  238. package/dist/index253.js +2 -2
  239. package/dist/index254.js +2 -2
  240. package/dist/index255.js +2 -2
  241. package/dist/index256.js +122 -24
  242. package/dist/index256.js.map +1 -1
  243. package/dist/index257.js +429 -20
  244. package/dist/index257.js.map +1 -1
  245. package/dist/index258.js +6 -0
  246. package/dist/index258.js.map +1 -0
  247. package/dist/index26.js +119 -142
  248. package/dist/index26.js.map +1 -1
  249. package/dist/index260.js +6 -3
  250. package/dist/index260.js.map +1 -1
  251. package/dist/index261.js +21 -8
  252. package/dist/index261.js.map +1 -1
  253. package/dist/index263.js +9 -3
  254. package/dist/index263.js.map +1 -1
  255. package/dist/index264.js +439 -0
  256. package/dist/index264.js.map +1 -0
  257. package/dist/index265.js +127 -6
  258. package/dist/index265.js.map +1 -1
  259. package/dist/index266.js +199 -15
  260. package/dist/index266.js.map +1 -1
  261. package/dist/index267.js +4 -9
  262. package/dist/index267.js.map +1 -1
  263. package/dist/index268.js +89 -3
  264. package/dist/index268.js.map +1 -1
  265. package/dist/index269.js +2 -12
  266. package/dist/index269.js.map +1 -1
  267. package/dist/index270.js +2 -9
  268. package/dist/index270.js.map +1 -1
  269. package/dist/index271.js +2 -9
  270. package/dist/index271.js.map +1 -1
  271. package/dist/index272.js +2 -17
  272. package/dist/index272.js.map +1 -1
  273. package/dist/index273.js +2 -431
  274. package/dist/index273.js.map +1 -1
  275. package/dist/index274.js +2 -89
  276. package/dist/index274.js.map +1 -1
  277. package/dist/index275.js +28 -2
  278. package/dist/index275.js.map +1 -1
  279. package/dist/index276.js +17 -64
  280. package/dist/index276.js.map +1 -1
  281. package/dist/index278.js +3 -200
  282. package/dist/index278.js.map +1 -1
  283. package/dist/index279.js +12 -2
  284. package/dist/index279.js.map +1 -1
  285. package/dist/index28.js +138 -83
  286. package/dist/index28.js.map +1 -1
  287. package/dist/index280.js +7 -124
  288. package/dist/index280.js.map +1 -1
  289. package/dist/index281.js +7 -20
  290. package/dist/index281.js.map +1 -1
  291. package/dist/index282.js +20 -0
  292. package/dist/index282.js.map +1 -0
  293. package/dist/index283.js +2 -436
  294. package/dist/index283.js.map +1 -1
  295. package/dist/index284.js +68 -126
  296. package/dist/index284.js.map +1 -1
  297. package/dist/index285.js +5 -3
  298. package/dist/index285.js.map +1 -1
  299. package/dist/index286.js +1 -1
  300. package/dist/index287.js +3 -211
  301. package/dist/index287.js.map +1 -1
  302. package/dist/index288.js +214 -0
  303. package/dist/index288.js.map +1 -0
  304. package/dist/index290.js +4 -7
  305. package/dist/index290.js.map +1 -1
  306. package/dist/index291.js +4 -19
  307. package/dist/index291.js.map +1 -1
  308. package/dist/index292.js +58 -6
  309. package/dist/index292.js.map +1 -1
  310. package/dist/index293.js +35 -4
  311. package/dist/index293.js.map +1 -1
  312. package/dist/index294.js +7 -4
  313. package/dist/index294.js.map +1 -1
  314. package/dist/index295.js +6 -58
  315. package/dist/index295.js.map +1 -1
  316. package/dist/index296.js +18 -34
  317. package/dist/index296.js.map +1 -1
  318. package/dist/index297.js +2 -11
  319. package/dist/index297.js.map +1 -1
  320. package/dist/index298.js +47 -2
  321. package/dist/index298.js.map +1 -1
  322. package/dist/index299.js +10 -46
  323. package/dist/index299.js.map +1 -1
  324. package/dist/index30.js +85 -115
  325. package/dist/index30.js.map +1 -1
  326. package/dist/index32.js +111 -112
  327. package/dist/index32.js.map +1 -1
  328. package/dist/index34.js +114 -365
  329. package/dist/index34.js.map +1 -1
  330. package/dist/index36.js +361 -283
  331. package/dist/index36.js.map +1 -1
  332. package/dist/index38.js +288 -106
  333. package/dist/index38.js.map +1 -1
  334. package/dist/index40.js +114 -121
  335. package/dist/index40.js.map +1 -1
  336. package/dist/index42.js +113 -200
  337. package/dist/index42.js.map +1 -1
  338. package/dist/index44.js +180 -90
  339. package/dist/index44.js.map +1 -1
  340. package/dist/index46.js +110 -78
  341. package/dist/index46.js.map +1 -1
  342. package/dist/index48.js +89 -54
  343. package/dist/index48.js.map +1 -1
  344. package/dist/index5.js +14 -78
  345. package/dist/index5.js.map +1 -1
  346. package/dist/index50.js +54 -84
  347. package/dist/index50.js.map +1 -1
  348. package/dist/index52.js +86 -60
  349. package/dist/index52.js.map +1 -1
  350. package/dist/index54.js +59 -40
  351. package/dist/index54.js.map +1 -1
  352. package/dist/index56.js +42 -55
  353. package/dist/index56.js.map +1 -1
  354. package/dist/index58.js +53 -103
  355. package/dist/index58.js.map +1 -1
  356. package/dist/index6.js +36 -58
  357. package/dist/index6.js.map +1 -1
  358. package/dist/index60.js +103 -89
  359. package/dist/index60.js.map +1 -1
  360. package/dist/index62.js +61 -88
  361. package/dist/index62.js.map +1 -1
  362. package/dist/index64.js +119 -77
  363. package/dist/index64.js.map +1 -1
  364. package/dist/index66.js +77 -91
  365. package/dist/index66.js.map +1 -1
  366. package/dist/index68.js +88 -49
  367. package/dist/index68.js.map +1 -1
  368. package/dist/index7.js +78 -20
  369. package/dist/index7.js.map +1 -1
  370. package/dist/index70.js +51 -304
  371. package/dist/index70.js.map +1 -1
  372. package/dist/index72.js +299 -115
  373. package/dist/index72.js.map +1 -1
  374. package/dist/index74.js +120 -214
  375. package/dist/index74.js.map +1 -1
  376. package/dist/index76.js +213 -36
  377. package/dist/index76.js.map +1 -1
  378. package/dist/index78.js +47 -0
  379. package/dist/index78.js.map +1 -0
  380. package/dist/index79.js +119 -230
  381. package/dist/index79.js.map +1 -1
  382. package/dist/index8.js +61 -7
  383. package/dist/index8.js.map +1 -1
  384. package/dist/index81.js +227 -154
  385. package/dist/index81.js.map +1 -1
  386. package/dist/index83.js +154 -207
  387. package/dist/index83.js.map +1 -1
  388. package/dist/index85.js +215 -26
  389. package/dist/index85.js.map +1 -1
  390. package/dist/index87.js +27 -88
  391. package/dist/index87.js.map +1 -1
  392. package/dist/index89.js +53 -88
  393. package/dist/index89.js.map +1 -1
  394. package/dist/index9.js +17 -76
  395. package/dist/index9.js.map +1 -1
  396. package/dist/index91.js +75 -44
  397. package/dist/index91.js.map +1 -1
  398. package/dist/index93.js +89 -15
  399. package/dist/index93.js.map +1 -1
  400. package/dist/index95.js +15 -166
  401. package/dist/index95.js.map +1 -1
  402. package/dist/index97.js +120 -59
  403. package/dist/index97.js.map +1 -1
  404. package/dist/index99.js +66 -52
  405. package/dist/index99.js.map +1 -1
  406. package/dist/style.css +1 -1
  407. package/package.json +2 -2
  408. package/dist/index120.js +0 -47
  409. package/dist/index120.js.map +0 -1
  410. package/dist/index164.js +0 -6
  411. package/dist/index164.js.map +0 -1
  412. package/dist/index172.js +0 -6
  413. package/dist/index172.js.map +0 -1
  414. package/dist/index188.js +0 -6
  415. package/dist/index188.js.map +0 -1
  416. package/dist/index234.js +0 -6
  417. package/dist/index234.js.map +0 -1
  418. package/dist/index240.js +0 -5
  419. package/dist/index240.js.map +0 -1
  420. package/dist/index259.js +0 -10
  421. package/dist/index259.js.map +0 -1
  422. package/dist/index262.js +0 -26
  423. package/dist/index262.js.map +0 -1
  424. package/dist/index277.js +0 -8
  425. package/dist/index277.js.map +0 -1
  426. package/dist/index3.js +0 -17
  427. package/dist/index3.js.map +0 -1
  428. package/dist/index4.js +0 -43
  429. package/dist/index4.js.map +0 -1
  430. package/dist/index77.js +0 -130
  431. package/dist/index77.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"index38.js","sources":["../src/components/BaseSwitch/BaseSwitch.vue"],"sourcesContent":["<template>\n\t<span v-bind=\"containerAttributes\">\n\t\t<input v-if=\"!checked && submitWhenFalse\" v-bind=\"hiddenInputAttributes\" />\n\t\t<input v-bind=\"inputAttributes\" ref=\"checkboxInput\" />\n\t\t<span class=\"bb-base-switch-container\">\n\t\t\t<slot name=\"icon\" v-bind=\"slotAttributes\">\n\t\t\t\t<span v-bind=\"iconAttributes\">\n\t\t\t\t\t<span class=\"bb-base-switch-container__icon-thumb\"></span>\n\t\t\t\t</span>\n\t\t\t</slot>\n\t\t</span>\n\t</span>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref, watch } from 'vue';\nimport { isCssColor } from '@/utilities/functions/isCssColor';\nimport { when } from '@/utilities/functions/when';\nimport type {\n\tBaseCheckboxEvents,\n\tBaseCheckboxProps,\n\tSlotAttributes,\n} from '../BaseCheckbox/BaseCheckbox.vue';\n\nexport type BaseSwitchProps = BaseCheckboxProps;\n\nexport type BaseSwitchEvents = BaseCheckboxEvents;\n\nconst props = withDefaults(defineProps<BaseSwitchProps>(), {\n\ttrueValue: true,\n\tfalseValue: false,\n});\n\nconst emit = defineEmits<BaseSwitchEvents>();\n\nexport type BaseSwitchSlots = {\n\ticon?: (props: SlotAttributes) => any;\n};\n\ndefineSlots<BaseSwitchSlots>();\n\nconst checkboxInput = ref<HTMLInputElement | null>(null);\n\nconst checked = computed(() => {\n\tif (props.checked) return true;\n\treturn JSON.stringify(props.trueValue) === JSON.stringify(props.modelValue);\n});\nconst hasFocus = ref(false);\n\nconst containerAttributes = computed(() => {\n\tconst attributes: Record<string, any> = {\n\t\tclass: {\n\t\t\t'bb-base-switch': true,\n\t\t\t'bb-base-switch--disabled': props.disabled,\n\t\t\t'bb-base-switch--errors': props.hasErrors,\n\t\t\t'bb-base-switch--indeterminate': props.indeterminate,\n\t\t\t'bb-base-switch--readonly': props.readonly,\n\t\t\t[`bb-base-switch--${props.color}`]:\n\t\t\t\tprops.color && !isCssColor(props.color),\n\t\t},\n\t};\n\tif (props.color && isCssColor(props.color)) {\n\t\tattributes['style'] = `--color: ${props.color}`;\n\t}\n\treturn attributes;\n});\n\n/**\n * This is used to keep the value compatible to common html expected values.\n * Convert to string everything that's not but do not double encode strings\n */\nconst makeInputValue = when(\n\t(item: unknown) => typeof item !== 'string',\n\tJSON.stringify\n);\n\nconst hiddenInputAttributes = computed(() => {\n\tconst value = makeInputValue(props.falseValue);\n\treturn {\n\t\tdisabled: props.disabled,\n\t\tname: props.name,\n\t\ttype: 'hidden',\n\t\tvalue: value,\n\t};\n});\n\nconst inputAttributes = computed(() => {\n\tconst value = makeInputValue(props.trueValue);\n\n\tconst onBlur = (event: FocusEvent): void => {\n\t\thasFocus.value = false;\n\t\temit('blur', event);\n\t};\n\n\tconst onChange = (event: Event): void => {\n\t\tif (event.target instanceof HTMLInputElement) {\n\t\t\tlet value = event.target.checked ? props.trueValue : props.falseValue;\n\n\t\t\temit('change', event);\n\t\t\temit('update:modelValue', value);\n\t\t}\n\t};\n\n\tconst onFocus = (event: FocusEvent): void => {\n\t\thasFocus.value = true;\n\t\temit('focus', event);\n\t};\n\n\tconst eventListeners = {\n\t\tonBlur,\n\t\tonChange,\n\t\tonClick: (event: MouseEvent) => emit('click', event),\n\t\tonFocus,\n\t\tonInput: (event: Event) => emit('input', event),\n\t\tonKeydown: (event: KeyboardEvent) => emit('keydown', event),\n\t\tonMousedown: (event: MouseEvent) => emit('mousedown', event),\n\t\tonMouseup: (event: MouseEvent) => emit('mouseup', event),\n\t};\n\n\treturn {\n\t\t'aria-describedby': props.ariaDescribedby,\n\t\tautofocus: props.autofocus,\n\t\tchecked: checked.value,\n\t\t// There is no such thing as readonly checkbox so we disable and style it with css\n\t\tdisabled: props.disabled || props.readonly,\n\t\tid: props.id,\n\t\tindeterminate: props.indeterminate,\n\t\tname: props.name,\n\t\trequired: props.required,\n\t\ttabindex: props.disabled ? -1 : undefined,\n\t\ttype: 'checkbox',\n\t\tvalue: value,\n\t\t...eventListeners,\n\t};\n});\n\nconst slotAttributes = computed(() => ({\n\tchecked: checked.value,\n\tdisabled: props.disabled,\n\tfalseValue: props.falseValue,\n\tfocused: hasFocus.value,\n\thasErrors: props.hasErrors,\n\tid: props.id,\n\tname: props.name,\n\tparsedValue: inputAttributes.value.value,\n\treadonly: props.readonly,\n\trequired: props.required,\n\ttrueValue: props.trueValue,\n\tvalue: checked.value ? props.trueValue : props.falseValue,\n}));\n\nconst iconAttributes = computed(() => {\n\tlet style: { [key: string]: string } = {};\n\tif (props.color && isCssColor(props.color)) {\n\t\tstyle.color = props.color;\n\t}\n\treturn {\n\t\tclass: 'bb-base-switch-container__icon',\n\t\tstyle,\n\t};\n});\n\n/**\n * Indeterminate is a very volatile prop that is reset upon clicking,\n * this keeps the state and the prop aligned\n */\nwatch(\n\t() => [props.modelValue, props.checked, props.indeterminate],\n\t() => {\n\t\tif (checkboxInput.value) {\n\t\t\tcheckboxInput.value.indeterminate = !!props.indeterminate;\n\t\t}\n\t}\n);\n</script>\n\n<style lang=\"postcss\">\n@import '@/assets/css/BaseSwitch';\n</style>\n"],"names":["props","__props","emit","__emit","checkboxInput","ref","checked","computed","hasFocus","containerAttributes","attributes","isCssColor","makeInputValue","when","item","hiddenInputAttributes","value","inputAttributes","eventListeners","event","slotAttributes","iconAttributes","style","watch"],"mappings":"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"}
1
+ {"version":3,"file":"index38.js","sources":["../src/components/BaseSlider/BaseSlider.vue"],"sourcesContent":["<template>\n\t<span v-bind=\"containerAttributes\" ref=\"container\">\n\t\t<slot name=\"prepend\"></slot>\n\t\t<span class=\"bb-base-slider__slider-container\">\n\t\t\t<span v-if=\"ticks.length\" class=\"bb-base-slider__ticks-container\">\n\t\t\t\t<span\n\t\t\t\t\tv-for=\"tick in ticks\"\n\t\t\t\t\t:key=\"tick.value\"\n\t\t\t\t\tclass=\"bb-base-slider__tick\"\n\t\t\t\t\t><slot\n\t\t\t\t\t\t:active=\"tick.active\"\n\t\t\t\t\t\tname=\"tick\"\n\t\t\t\t\t\t:percent=\"tick.percent\"\n\t\t\t\t\t\t:value=\"tick.value\"\n\t\t\t\t/></span>\n\t\t\t</span>\n\t\t\t<input\n\t\t\t\t:id=\"id\"\n\t\t\t\tclass=\"sr-only\"\n\t\t\t\t:disabled=\"disabled\"\n\t\t\t\t:name=\"name\"\n\t\t\t\t:readonly=\"readonly\"\n\t\t\t\t:required=\"required\"\n\t\t\t\t:tabindex=\"-1\"\n\t\t\t\t:type=\"'number'\"\n\t\t\t\t:value=\"JSON.stringify(modelValue)\"\n\t\t\t/>\n\t\t\t<span ref=\"track\" class=\"bb-base-slider__track-container\">\n\t\t\t\t<span class=\"bb-base-slider__track-fill\"></span>\n\t\t\t\t<span v-bind=\"sliderBackgroundAttributes\"></span>\n\t\t\t</span>\n\t\t\t<span\n\t\t\t\tv-if=\"props.range\"\n\t\t\t\tv-bind=\"listeners\"\n\t\t\t\tkey=\"thumblower\"\n\t\t\t\tref=\"thumblower\"\n\t\t\t\t:aria-describedby=\"ariaDescribedby\"\n\t\t\t\t:aria-orientation=\"'horizontal'\"\n\t\t\t\t:aria-readonly=\"!readonly\"\n\t\t\t\t:aria-valuemax=\"max\"\n\t\t\t\t:aria-valuemin=\"min\"\n\t\t\t\t:aria-valuenow=\"valueNowLower\"\n\t\t\t\t:class=\"'bb-base-slider__thumb-container'\"\n\t\t\t\tdata-thumb=\"lower\"\n\t\t\t\t:role=\"'slider'\"\n\t\t\t\t:style=\"{ left: `${internalValueLower}%` }\"\n\t\t\t\t:tabindex=\"disabled ? -1 : 0\"\n\t\t\t\t@focus=\"onFocus\"\n\t\t\t\t@keydown=\"onKeydown\"\n\t\t\t>\n\t\t\t\t<span\n\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t'bb-base-slider__thumb': true,\n\t\t\t\t\t\t'bb-base-slider__thumb--lower': true,\n\t\t\t\t\t\t'bb-base-slider__thumb--focused': targetThumb === 'lower',\n\t\t\t\t\t}\"\n\t\t\t\t\t:style=\"{\n\t\t\t\t\t\ttransform: `translateY(-50%) ${thumbTranslate ? `translateX(-${internalValueLower}%)` : `translateX(-50%)`}`,\n\t\t\t\t\t\tleft: `${internalValueLower}%`,\n\t\t\t\t\t}\"\n\t\t\t\t\t><slot\n\t\t\t\t\t\t:focused=\"targetThumb === 'lower'\"\n\t\t\t\t\t\tname=\"thumb:lower\"\n\t\t\t\t\t\t:percent=\"internalValueLower\"\n\t\t\t\t\t\t:value=\"valueNowLower\"\n\t\t\t\t\t\t><slot\n\t\t\t\t\t\t\t:focused=\"targetThumb === 'lower'\"\n\t\t\t\t\t\t\tname=\"thumb\"\n\t\t\t\t\t\t\t:percent=\"internalValueLower\"\n\t\t\t\t\t\t\t:value=\"valueNowLower\" /></slot\n\t\t\t\t></span>\n\t\t\t</span>\n\t\t\t<span\n\t\t\t\tv-bind=\"listeners\"\n\t\t\t\tkey=\"thumbhigher\"\n\t\t\t\tref=\"thumbhigher\"\n\t\t\t\t:aria-describedby=\"ariaDescribedby\"\n\t\t\t\t:aria-orientation=\"'horizontal'\"\n\t\t\t\t:aria-readonly=\"!readonly\"\n\t\t\t\t:aria-valuemax=\"max\"\n\t\t\t\t:aria-valuemin=\"min\"\n\t\t\t\t:aria-valuenow=\"valueNowHigher\"\n\t\t\t\t:class=\"'bb-base-slider__thumb-container'\"\n\t\t\t\tdata-thumb=\"higher\"\n\t\t\t\t:role=\"'slider'\"\n\t\t\t\t:style=\"{ left: `${internalValueHigher}%` }\"\n\t\t\t\t:tabindex=\"disabled ? -1 : 0\"\n\t\t\t\t@focus=\"onFocus\"\n\t\t\t\t@keydown=\"onKeydown\"\n\t\t\t>\n\t\t\t\t<span\n\t\t\t\t\t:class=\"{\n\t\t\t\t\t\t'bb-base-slider__thumb': true,\n\t\t\t\t\t\t'bb-base-slider__thumb--higher': true,\n\t\t\t\t\t\t'bb-base-slider__thumb--focused': targetThumb === 'higher',\n\t\t\t\t\t}\"\n\t\t\t\t\t:style=\"{\n\t\t\t\t\t\ttransform: `translateY(-50%) ${thumbTranslate ? `translateX(-${internalValueHigher}%)` : `translateX(-50%)`}`,\n\t\t\t\t\t\tleft: `${internalValueHigher}%`,\n\t\t\t\t\t}\"\n\t\t\t\t\t><slot\n\t\t\t\t\t\t:focused=\"targetThumb === 'higher'\"\n\t\t\t\t\t\tname=\"thumb:higher\"\n\t\t\t\t\t\t:percent=\"internalValueHigher\"\n\t\t\t\t\t\t:value=\"valueNowHigher\"\n\t\t\t\t\t\t><slot\n\t\t\t\t\t\t\t:focused=\"targetThumb === 'higher'\"\n\t\t\t\t\t\t\tname=\"thumb\"\n\t\t\t\t\t\t\t:percent=\"internalValueHigher\"\n\t\t\t\t\t\t\t:value=\"valueNowHigher\" /></slot\n\t\t\t\t></span>\n\t\t\t</span>\n\t\t</span>\n\t\t<slot name=\"append\"></slot>\n\t</span>\n</template>\n\n<script setup lang=\"ts\">\nimport { clamp } from '@/utilities/functions/clamp';\nimport { computed, onMounted, ref, watch } from 'vue';\nimport { head } from '@/utilities/functions/head';\nimport { isCssColor } from '@/utilities/functions/isCssColor';\nimport { isNil } from '@/utilities/functions/isNil';\nimport { isNotNil } from '@/utilities/functions/isNotNil';\nimport { transposeValue } from '@/utilities/functions/percentage';\nimport type { InputHTMLAttributes, HTMLAttributes } from 'vue';\nimport { hash } from '@/utilities/functions/hash';\n\nexport type BaseSliderProps = {\n\t/**\n\t * Guides to the browser as to the type of information expected in the field.\n\t */\n\tariaDescribedby?: InputHTMLAttributes['aria-describedby'];\n\n\t/**\n\t * Sets autofocus on page load.\n\t */\n\tautofocus?: InputHTMLAttributes['autofocus'];\n\n\t/**\n\t * Define a color for the component.\n\t *\n\t * Either a custom color or a coded color in common HEX, RGB, etc... format.\n\t */\n\tcolor?: string;\n\n\t/**\n\t * Disables the component\n\t */\n\tdisabled?: boolean;\n\n\t/**\n\t * Define if the component should be in an error state.\n\t * It usually attaches a CSS class for styling purposes.\n\t */\n\thasErrors?: boolean;\n\n\t/**\n\t * The identifier of the component.\n\t */\n\tid?: HTMLAttributes['id'];\n\n\t/**\n\t * Maximum value cap.\n\t */\n\tmax?: number;\n\n\t/**\n\t * Minimum value cap.\n\t */\n\tmin?: number;\n\n\t/**\n\t * Used by v-model.\n\t */\n\tmodelValue: number[] | number | string | null;\n\n\t/**\n\t * Defines the name of the input.\n\t */\n\tname?: InputHTMLAttributes['name'];\n\n\t/**\n\t * Set the input as range.\n\t * modelValue must be an array\n\t */\n\trange?: boolean;\n\t/**\n\t * Sets the input in a readonly state.\n\t */\n\treadonly?: InputHTMLAttributes['readonly'];\n\n\t/**\n\t * Sets the input as required.\n\t */\n\trequired?: boolean;\n\n\t/**\n\t * The step attribute is a number that specifies the granularity that the value must adhere to.\n\t */\n\tstep?: number;\n\n\t/**\n\t * Displays ticks on step\n\t */\n\tticks?: boolean;\n\t/**\n\t * Proportionally translates the thumb so it remains on track. Set it to false when displaying ticks so they align with less effort.\n\t */\n\tthumbTranslate?: boolean;\n};\n\nconst props = withDefaults(defineProps<BaseSliderProps>(), {\n\tmax: 100,\n\tmin: 0,\n\tmodelValue: 0,\n\tstep: 1,\n\tthumbTranslate: true,\n});\n\nexport type BaseSliderEvents = {\n\t(e: 'click', event: MouseEvent): void;\n\t(e: 'focus', event: FocusEvent): void;\n\t(e: 'active'): void;\n\t(e: 'inactive'): void;\n\t(e: 'keydown', event: KeyboardEvent): void;\n\t(e: 'pointerdown', event: PointerEvent): void;\n\t(e: 'pointermove', event: PointerEvent): void;\n\t(e: 'pointerup', event: PointerEvent): void;\n\t(e: 'update:modelValue', event: number | number[]): void;\n};\n\nconst emit = defineEmits<BaseSliderEvents>();\n\nexport type BaseSliderSlots = {\n\t'thumb:higher': (props: {\n\t\tvalue: number | undefined;\n\t\tpercent: number;\n\t\tfocused: boolean;\n\t}) => any;\n\t'thumb:lower': (props: {\n\t\tvalue: number | undefined;\n\t\tpercent: number;\n\t\tfocused: boolean;\n\t}) => any;\n\tappend: (props: object) => any;\n\tprepend: (props: object) => any;\n\tthumb: (props: {\n\t\tvalue: number | undefined;\n\t\tpercent: number;\n\t\tfocused: boolean;\n\t}) => any;\n\ttick: (props: { value: number; percent: number; active: boolean }) => any;\n};\n\ndefineSlots<BaseSliderSlots>();\n\nconst container = ref<HTMLElement>();\nconst track = ref<HTMLElement>();\nconst thumblower = ref<HTMLElement>();\nconst thumbhigher = ref<HTMLElement>();\nconst internalValueLower = ref(0);\nconst internalValueHigher = ref(0);\nconst valueNowLower = computed(() => {\n\tif (Array.isArray(props.modelValue))\n\t\treturn head(props.modelValue) ?? undefined;\n\treturn isNil(props.modelValue) ? undefined : Number(props.modelValue);\n});\nconst valueNowHigher = computed(() => {\n\tif (Array.isArray(props.modelValue))\n\t\treturn head(props.modelValue) ?? undefined;\n\treturn isNil(props.modelValue) ? undefined : Number(props.modelValue);\n});\nconst sortedInternalValues = computed(() => {\n\treturn [internalValueLower.value, internalValueHigher.value].sort(\n\t\t(a, b) => a - b\n\t);\n});\n\nconst proportionalStep = transposeValue({\n\tvalue: props.min + props.step,\n\toriginalBounds: { min: props.min, max: props.max },\n\ttargetBounds: { min: 0, max: 100 },\n\tstep: 1,\n});\n\nconst active = ref(false);\n\nif (props.range && !Array.isArray(props.modelValue)) {\n\tthrow new TypeError(\n\t\t'BaseSlider mode is set as range but modelValue is not an array'\n\t);\n}\n\nonMounted(() => {\n\tif (props.autofocus) {\n\t\tthumbhigher.value?.focus();\n\t}\n});\n\n/**\n * When modelValue changes realign the internal positioning\n */\nwatch(\n\t() => props.modelValue,\n\t(value) => {\n\t\tlet values: number[];\n\t\tif (props.range) {\n\t\t\tconst [min = props.min, max = props.min] = value as number[];\n\t\t\tvalues = [min, max];\n\t\t} else {\n\t\t\tvalues = [props.min, isNotNil(value) ? Number(value) : props.min];\n\t\t}\n\t\tconst [lBound, uBound] = values.map((value) => {\n\t\t\t// Useful for ranges from negative to positive\n\t\t\tlet fallback = isNil(value) ? props.min : Number(value);\n\t\t\tconst transposedValue = transposeValue({\n\t\t\t\tvalue: fallback,\n\t\t\t\ttargetBounds: { min: 0, max: 100 },\n\t\t\t\toriginalBounds: { min: props.min, max: props.max },\n\t\t\t\tstep: 1,\n\t\t\t});\n\t\t\treturn transposedValue;\n\t\t});\n\t\tinternalValueLower.value = lBound;\n\t\tinternalValueHigher.value = uBound;\n\t},\n\t{ immediate: true }\n);\n\nlet thumbPressed = ref(false);\nlet targetThumb = ref<'higher' | 'lower' | null>(null);\n\nconst getTargetThumb = (event: FocusEvent) => {\n\tif (thumbhigher.value && thumbhigher.value.contains(event.target as Node))\n\t\treturn 'higher';\n\tif (thumblower.value && thumblower.value.contains(event.target as Node))\n\t\treturn 'lower';\n\tthrow new Error('Could not identify target thumb');\n};\n\nconst onPointerdown = (event: PointerEvent) => {\n\tif (props.disabled || props.readonly) return;\n\tif (!targetThumb.value) {\n\t\ttargetThumb.value = getTargetThumb(event);\n\t}\n\tthumbPressed.value = true;\n\tdocument.addEventListener('pointermove', onPointermove);\n\tdocument.addEventListener('pointerup', onPointerup);\n\temit('pointerdown', event);\n};\n\nlet listeners = computed(() => (thumbPressed.value ? {} : { onPointerdown }));\n\nconst onPointermove = (event: PointerEvent | MouseEvent) => {\n\tif (props.disabled || props.readonly) return;\n\tif (track.value) {\n\t\tconst trackPosition = track.value.getBoundingClientRect();\n\t\tconst clickOffset = event.clientX;\n\t\tconst trackStart = trackPosition.left;\n\t\tconst trackLength = trackPosition.width;\n\t\tif (event instanceof PointerEvent) {\n\t\t\temit('pointermove', event);\n\t\t} else {\n\t\t\temit('click', event);\n\t\t}\n\t\tconst position = transposeValue({\n\t\t\tvalue: clamp(clickOffset, trackStart, trackStart + trackLength),\n\t\t\toriginalBounds: { min: trackStart, max: trackStart + trackLength },\n\t\t\ttargetBounds: { min: 0, max: 100 },\n\t\t\tstep: proportionalStep,\n\t\t});\n\t\tif (targetThumb.value === 'higher') {\n\t\t\tinternalValueHigher.value = position;\n\t\t} else if (targetThumb.value === 'lower') {\n\t\t\tinternalValueLower.value = position;\n\t\t}\n\t}\n};\n\nconst getValueToEmit = () => {\n\tconst [min, max] = [internalValueLower.value, internalValueHigher.value].sort(\n\t\t(a, b) => a - b\n\t);\n\tconst refined = [min, max].map((value) =>\n\t\ttransposeValue({\n\t\t\tvalue,\n\t\t\toriginalBounds: { min: 0, max: 100 },\n\t\t\ttargetBounds: { min: props.min, max: props.max },\n\t\t\tstep: props.step,\n\t\t})\n\t);\n\tif (props.range) return refined;\n\treturn refined[1];\n};\n\nconst onPointerup = (event: PointerEvent) => {\n\tthumbPressed.value = false;\n\ttargetThumb.value = null;\n\tdocument.removeEventListener('pointermove', onPointermove);\n\tdocument.removeEventListener('pointerup', onPointerup);\n\temit('pointerup', event);\n\temit('update:modelValue', getValueToEmit());\n};\n\nconst onKeydown = (event: KeyboardEvent) => {\n\temit('keydown', event);\n\tif (\n\t\tprops.disabled ||\n\t\tprops.readonly ||\n\t\t(event.key !== 'ArrowLeft' && event.key !== 'ArrowRight')\n\t) {\n\t\treturn;\n\t}\n\n\tif (event.key === 'ArrowLeft') {\n\t\tif (\n\t\t\ttargetThumb.value === 'higher' ||\n\t\t\tdocument.activeElement === thumbhigher.value\n\t\t) {\n\t\t\tinternalValueHigher.value = Math.max(\n\t\t\t\tinternalValueHigher.value - proportionalStep,\n\t\t\t\tinternalValueLower.value\n\t\t\t);\n\t\t} else if (targetThumb.value === 'lower') {\n\t\t\tinternalValueLower.value = Math.max(\n\t\t\t\tinternalValueLower.value - proportionalStep,\n\t\t\t\t0\n\t\t\t);\n\t\t}\n\t} else if (event.key === 'ArrowRight') {\n\t\tif (\n\t\t\ttargetThumb.value === 'higher' ||\n\t\t\tdocument.activeElement === thumbhigher.value\n\t\t) {\n\t\t\tinternalValueHigher.value = Math.min(\n\t\t\t\tinternalValueHigher.value + proportionalStep,\n\t\t\t\t100\n\t\t\t);\n\t\t} else if (targetThumb.value === 'lower') {\n\t\t\tinternalValueLower.value = Math.min(\n\t\t\t\tinternalValueLower.value + proportionalStep,\n\t\t\t\tinternalValueHigher.value\n\t\t\t);\n\t\t}\n\t}\n\temit('update:modelValue', getValueToEmit());\n};\n\nconst onFocus = (event: FocusEvent) => {\n\temit('focus', event);\n\tconst found = getTargetThumb(event);\n\tif (found) targetThumb.value = found;\n\tif (!active.value) {\n\t\tactive.value = true;\n\t\temit('active');\n\t\tdocument.addEventListener('focusin', onDocumentInteraction);\n\t\tdocument.addEventListener('click', onDocumentInteraction);\n\t}\n};\n\nconst onDocumentInteraction = (event: FocusEvent) => {\n\tif (event.target instanceof HTMLElement) {\n\t\tif (!container.value?.contains(event.target)) {\n\t\t\tactive.value = false;\n\t\t\ttargetThumb.value = null;\n\t\t\temit('inactive');\n\t\t\tdocument.removeEventListener('focusin', onDocumentInteraction);\n\t\t\tdocument.removeEventListener('click', onDocumentInteraction);\n\t\t}\n\t}\n};\n\nconst containerAttributes: Record<string, any> = {\n\tclass: {\n\t\t'bb-base-slider': true,\n\t\t'bb-base-slider--disabled': props.disabled,\n\t\t'bb-base-slider--errors': props.hasErrors,\n\t\t'bb-base-slider--readonly': props.readonly,\n\t\t[`bb-base-slider--${props.color}`]: props.color && !isCssColor(props.color),\n\t},\n\tonClick: (event: MouseEvent) => {\n\t\tif (props.range) return;\n\t\tthumbhigher.value?.focus();\n\t\tonPointermove(event);\n\t\tconst valueToEmit = getValueToEmit();\n\t\t// Prevent emitting twice when clicking on the thumb directly\n\t\tif (hash(valueToEmit) === hash(props.modelValue)) return;\n\t\temit('update:modelValue', getValueToEmit());\n\t},\n\tstyle: {},\n};\n\nif (props.color && isCssColor(props.color)) {\n\tcontainerAttributes.style['--color'] = props.color;\n}\n\nconst sliderBackgroundAttributes = computed(() => {\n\tconst classes = 'bb-base-slider__track-background';\n\tconst style: Record<string, any> = {\n\t\twidth: `${sortedInternalValues.value[1] - sortedInternalValues.value[0]}%`,\n\t\tleft: `${sortedInternalValues.value[0]}%`,\n\t};\n\treturn {\n\t\tclass: classes,\n\t\tstyle,\n\t};\n});\n\ntype Tick = {\n\tvalue: number;\n\tpercent: number;\n\tactive: boolean;\n};\n\nconst ticks = computed<Tick[]>(() => {\n\tif (!props.ticks) return [] as Tick[];\n\tlet ticks: Tick[] = [];\n\tlet current = props.min;\n\twhile (current <= props.max) {\n\t\tlet value = current;\n\t\tlet percent = transposeValue({\n\t\t\tvalue,\n\t\t\toriginalBounds: { min: props.min, max: props.max },\n\t\t\ttargetBounds: { min: 0, max: 100 },\n\t\t\tstep: proportionalStep,\n\t\t});\n\t\tlet transposedValue = transposeValue({\n\t\t\tvalue: current,\n\t\t\toriginalBounds: { min: props.min, max: props.max },\n\t\t\ttargetBounds: { min: 0, max: 100 },\n\t\t\tstep: props.step,\n\t\t});\n\t\tconst active =\n\t\t\ttransposedValue >= internalValueLower.value &&\n\t\t\ttransposedValue <= internalValueHigher.value;\n\t\tticks.push({\n\t\t\tvalue,\n\t\t\tpercent,\n\t\t\tactive,\n\t\t});\n\t\tcurrent += props.step;\n\t}\n\treturn ticks;\n});\n</script>\n\n<style lang=\"postcss\">\n@import '@/assets/css/BaseSlider';\n</style>\n"],"names":["props","__props","emit","__emit","container","ref","track","thumblower","thumbhigher","internalValueLower","internalValueHigher","valueNowLower","computed","head","isNil","valueNowHigher","sortedInternalValues","a","b","proportionalStep","transposeValue","active","onMounted","_a","watch","value","values","min","max","isNotNil","lBound","uBound","fallback","thumbPressed","targetThumb","getTargetThumb","event","onPointerdown","onPointermove","onPointerup","listeners","trackPosition","clickOffset","trackStart","trackLength","position","clamp","getValueToEmit","refined","onKeydown","onFocus","found","onDocumentInteraction","containerAttributes","isCssColor","valueToEmit","hash","sliderBackgroundAttributes","classes","style","ticks","current","percent","transposedValue"],"mappings":"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"}
package/dist/index40.js CHANGED
@@ -1,135 +1,128 @@
1
- import { defineComponent as $, ref as p, toRef as l, openBlock as w, createBlock as B, unref as f, withCtx as i, renderSlot as s, normalizeProps as b, guardReactiveProps as h, createVNode as O, mergeProps as v, createSlots as z } from "vue";
2
- import { useOptions as F } from "./index221.js";
3
- import M from "./index38.js";
4
- /* empty css */
5
- import S from "./index222.js";
6
- /* empty css */
7
- const I = /* @__PURE__ */ $({
8
- __name: "BaseSwitchGroup",
1
+ import { defineComponent as I, ref as p, computed as n, watch as S, openBlock as h, createElementBlock as f, normalizeProps as r, guardReactiveProps as c, mergeProps as y, createCommentVNode as q, createElementVNode as l, renderSlot as A } from "vue";
2
+ import { isCssColor as d } from "./index219.js";
3
+ import { when as F } from "./index220.js";
4
+ const N = { class: "bb-base-switch-container" }, x = /* @__PURE__ */ l("span", { class: "bb-base-switch-container__icon-thumb" }, null, -1), J = [
5
+ x
6
+ ], L = /* @__PURE__ */ I({
7
+ __name: "BaseSwitch",
9
8
  props: {
10
9
  ariaDescribedby: {},
11
10
  autofocus: {},
11
+ checked: { type: [Boolean, String] },
12
12
  color: {},
13
- dependencies: {},
14
- depsDebounceTime: { default: 0 },
15
- direction: { default: "horizontal" },
16
13
  disabled: { type: Boolean },
17
- enforceCoherence: { type: Boolean },
14
+ falseValue: { default: !1 },
18
15
  hasErrors: { type: Boolean },
19
- hideLabel: { type: Boolean },
20
16
  id: {},
21
- items: { type: [Array, Function], default: () => [] },
22
- itemText: {},
23
- itemValue: {},
24
- loadingText: { default: "Caricamento..." },
25
- modelValue: {},
26
- modelValueDebounceTime: { default: 0 },
17
+ indeterminate: {},
27
18
  name: {},
28
- noDataText: { default: "Nessun elemento da visualizzare" },
29
- readonly: {}
19
+ readonly: {},
20
+ required: { type: Boolean },
21
+ submitWhenFalse: { type: Boolean },
22
+ trueValue: { default: !0 },
23
+ modelValue: {}
30
24
  },
31
- emits: ["blur", "change", "click", "focus", "inactive", "input", "keydown", "mousedown", "mouseup", "update:modelValue"],
32
- setup(g, { emit: y }) {
33
- const a = g, o = y, m = p(), r = p(!1), {
34
- innerLoading: T,
35
- options: k,
36
- selectOption: D,
37
- unselectOption: L
38
- } = F({
39
- dependencies: l(a, "dependencies"),
40
- depsDebounceTime: a.depsDebounceTime,
41
- disabled: l(a, "disabled"),
42
- emit: o,
43
- enforceCoherence: a.enforceCoherence,
44
- items: l(a, "items"),
45
- itemText: a.itemText,
46
- itemValue: a.itemValue,
47
- modelValue: l(a, "modelValue"),
48
- modelValueDebounceTime: a.modelValueDebounceTime,
49
- multiple: !0,
50
- prefill: !0,
51
- queryDebounceTime: 0,
52
- resetQueryOnOptionSelected: !1,
53
- stash: !1
54
- }), C = (e, t) => {
55
- o("change", e), t.selected ? L(t) : D(t);
56
- }, E = {
57
- onBlur: (e) => o("blur", e),
58
- onClick: (e) => o("click", e),
59
- onFocus: (e) => {
60
- o("focus", e), r.value || (document.addEventListener("focusin", d, { passive: !0 }), document.addEventListener("click", u, { passive: !0 }), r.value = !0);
61
- },
62
- onInput: (e) => o("input", e),
63
- onKeydown: (e) => o("keydown", e),
64
- onMousedown: (e) => o("mousedown", e),
65
- onMouseup: (e) => o("mouseup", e)
66
- }, d = (e) => {
67
- var t;
68
- e.target instanceof HTMLElement && ((t = m.value) != null && t.contains(e.target) || (o("inactive"), r.value = !1, document.removeEventListener("focusin", d), document.removeEventListener("click", u)));
69
- }, u = (e) => {
70
- var t;
71
- e.target instanceof HTMLElement && ((t = m.value) != null && t.contains(e.target) || (o("inactive"), r.value = !1, document.removeEventListener("focusin", d), document.removeEventListener("click", u)));
72
- };
73
- return (e, t) => (w(), B(S, {
74
- class: "bb-base-switch-group",
75
- direction: e.direction,
76
- "has-errors": e.hasErrors,
77
- "hide-label": e.hideLabel,
78
- loading: !!f(T),
79
- "loading-text": e.loadingText,
80
- "no-data-text": e.noDataText,
81
- options: f(k)
82
- }, {
83
- prepend: i(() => [
84
- s(e.$slots, "prepend")
85
- ]),
86
- loading: i(() => [
87
- s(e.$slots, "loading")
88
- ]),
89
- "no-data": i(() => [
90
- s(e.$slots, "no-data")
91
- ]),
92
- "option:prepend": i((n) => [
93
- s(e.$slots, "option:prepend", b(h(n)))
94
- ]),
95
- input: i(({ option: n, index: V }) => [
96
- O(M, v({
97
- id: n.valueHash,
98
- "aria-describedby": e.ariaDescribedby,
99
- autofocus: e.autofocus && !V,
100
- checked: n.selected,
101
- color: e.color,
102
- disabled: n.disabled,
103
- "has-errors": e.hasErrors,
104
- name: e.name,
105
- readonly: e.readonly,
106
- "true-value": n.value
107
- }, E, {
108
- onChange: (c) => C(c, n)
109
- }), z({ _: 2 }, [
110
- e.$slots.icon ? {
111
- name: "icon",
112
- fn: i((c) => [
113
- s(e.$slots, "icon", v({
114
- item: n.item,
115
- text: n.text
116
- }, c))
117
- ]),
118
- key: "0"
119
- } : void 0
120
- ]), 1040, ["id", "aria-describedby", "autofocus", "checked", "color", "disabled", "has-errors", "name", "readonly", "true-value", "onChange"])
121
- ]),
122
- "option:append": i((n) => [
123
- s(e.$slots, "option:prepend", b(h(n)))
124
- ]),
125
- append: i(() => [
126
- s(e.$slots, "prepend")
127
- ]),
128
- _: 3
129
- }, 8, ["direction", "has-errors", "hide-label", "loading", "loading-text", "no-data-text", "options"]));
25
+ emits: ["blur", "change", "click", "focus", "input", "keydown", "mousedown", "mouseup", "update:modelValue"],
26
+ setup(V, { emit: v }) {
27
+ const e = V, a = v, u = p(null), s = n(() => e.checked ? !0 : JSON.stringify(e.trueValue) === JSON.stringify(e.modelValue)), i = p(!1), k = n(() => {
28
+ const o = {
29
+ class: {
30
+ "bb-base-switch": !0,
31
+ "bb-base-switch--disabled": e.disabled,
32
+ "bb-base-switch--errors": e.hasErrors,
33
+ "bb-base-switch--indeterminate": e.indeterminate,
34
+ "bb-base-switch--readonly": e.readonly,
35
+ [`bb-base-switch--${e.color}`]: e.color && !d(e.color)
36
+ }
37
+ };
38
+ return e.color && d(e.color) && (o.style = `--color: ${e.color}`), o;
39
+ }), b = F(
40
+ (o) => typeof o != "string",
41
+ JSON.stringify
42
+ ), w = n(() => {
43
+ const o = b(e.falseValue);
44
+ return {
45
+ disabled: e.disabled,
46
+ name: e.name,
47
+ type: "hidden",
48
+ value: o
49
+ };
50
+ }), m = n(() => {
51
+ const o = b(e.trueValue), C = {
52
+ onBlur: (t) => {
53
+ i.value = !1, a("blur", t);
54
+ },
55
+ onChange: (t) => {
56
+ if (t.target instanceof HTMLInputElement) {
57
+ let E = t.target.checked ? e.trueValue : e.falseValue;
58
+ a("change", t), a("update:modelValue", E);
59
+ }
60
+ },
61
+ onClick: (t) => a("click", t),
62
+ onFocus: (t) => {
63
+ i.value = !0, a("focus", t);
64
+ },
65
+ onInput: (t) => a("input", t),
66
+ onKeydown: (t) => a("keydown", t),
67
+ onMousedown: (t) => a("mousedown", t),
68
+ onMouseup: (t) => a("mouseup", t)
69
+ };
70
+ return {
71
+ "aria-describedby": e.ariaDescribedby,
72
+ autofocus: e.autofocus,
73
+ checked: s.value,
74
+ // There is no such thing as readonly checkbox so we disable and style it with css
75
+ disabled: e.disabled || e.readonly,
76
+ id: e.id,
77
+ indeterminate: e.indeterminate,
78
+ name: e.name,
79
+ required: e.required,
80
+ tabindex: e.disabled ? -1 : void 0,
81
+ type: "checkbox",
82
+ value: o,
83
+ class: "sr-only",
84
+ ...C
85
+ };
86
+ }), _ = n(() => ({
87
+ checked: s.value,
88
+ disabled: e.disabled,
89
+ falseValue: e.falseValue,
90
+ focused: i.value,
91
+ hasErrors: e.hasErrors,
92
+ id: e.id,
93
+ name: e.name,
94
+ parsedValue: m.value.value,
95
+ readonly: e.readonly,
96
+ required: e.required,
97
+ trueValue: e.trueValue,
98
+ value: s.value ? e.trueValue : e.falseValue
99
+ })), g = n(() => {
100
+ let o = {};
101
+ return e.color && d(e.color) && (o.color = e.color), {
102
+ class: "bb-base-switch-container__icon",
103
+ style: o
104
+ };
105
+ });
106
+ return S(
107
+ () => [e.modelValue, e.checked, e.indeterminate],
108
+ () => {
109
+ u.value && (u.value.indeterminate = !!e.indeterminate);
110
+ }
111
+ ), (o, B) => (h(), f("span", r(c(k.value)), [
112
+ !s.value && o.submitWhenFalse ? (h(), f("input", r(y({ key: 0 }, w.value)), null, 16)) : q("", !0),
113
+ l("input", y(m.value, {
114
+ ref_key: "checkboxInput",
115
+ ref: u
116
+ }), null, 16),
117
+ l("span", N, [
118
+ A(o.$slots, "icon", r(c(_.value)), () => [
119
+ l("span", r(c(g.value)), J, 16)
120
+ ])
121
+ ])
122
+ ], 16));
130
123
  }
131
124
  });
132
125
  export {
133
- I as default
126
+ L as default
134
127
  };
135
128
  //# sourceMappingURL=index40.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index40.js","sources":["../src/components/BaseSwitchGroup/BaseSwitchGroup.vue"],"sourcesContent":["<template>\n\t<OptionsContainer\n\t\tclass=\"bb-base-switch-group\"\n\t\t:direction=\"direction\"\n\t\t:has-errors=\"hasErrors\"\n\t\t:hide-label=\"hideLabel\"\n\t\t:loading=\"!!loading\"\n\t\t:loading-text=\"loadingText\"\n\t\t:no-data-text=\"noDataText\"\n\t\t:options=\"options\"\n\t>\n\t\t<template #prepend><slot name=\"prepend\"></slot></template>\n\t\t<template #loading><slot name=\"loading\"></slot></template>\n\t\t<template #no-data><slot name=\"no-data\"></slot></template>\n\t\t<template #option:prepend=\"data\"\n\t\t\t><slot name=\"option:prepend\" v-bind=\"data\"></slot\n\t\t></template>\n\t\t<template #input=\"{ option, index }\">\n\t\t\t<BaseSwitch\n\t\t\t\t:id=\"option.valueHash\"\n\t\t\t\t:aria-describedby=\"ariaDescribedby\"\n\t\t\t\t:autofocus=\"autofocus && !index\"\n\t\t\t\t:checked=\"option.selected\"\n\t\t\t\t:color=\"color\"\n\t\t\t\t:disabled=\"option.disabled\"\n\t\t\t\t:has-errors=\"hasErrors\"\n\t\t\t\t:name=\"name\"\n\t\t\t\t:readonly=\"readonly\"\n\t\t\t\t:true-value=\"option.value\"\n\t\t\t\tv-bind=\"eventListeners\"\n\t\t\t\t@change=\"(event: Event) => onChange(event, option)\"\n\t\t\t>\n\t\t\t\t<template v-if=\"$slots.icon\" #icon=\"data\">\n\t\t\t\t\t<slot\n\t\t\t\t\t\t:item=\"option.item\"\n\t\t\t\t\t\tname=\"icon\"\n\t\t\t\t\t\t:text=\"option.text\"\n\t\t\t\t\t\tv-bind=\"data\"\n\t\t\t\t\t/>\n\t\t\t\t</template>\n\t\t\t</BaseSwitch>\n\t\t</template>\n\t\t<template #option:append=\"data\"\n\t\t\t><slot name=\"option:prepend\" v-bind=\"data\"></slot\n\t\t></template>\n\t\t<template #append><slot name=\"prepend\"></slot></template>\n\t</OptionsContainer>\n</template>\n\n<script setup lang=\"ts\" generic=\"T = any\">\nimport { ref, toRef } from 'vue';\nimport { useOptions } from '@/composables/useOptions';\nimport BaseSwitch from '../BaseSwitch/BaseSwitch.vue';\nimport type { Option } from '@/types/Option';\nimport type { SlotAttributes } from '../BaseCheckbox/BaseCheckbox.vue';\nimport type {\n\tBaseCheckboxGroupEvents,\n\tBaseCheckboxGroupProps,\n} from '../BaseCheckboxGroup/BaseCheckboxGroup.vue';\nimport OptionsContainer from '../OptionsContainer.vue';\n\nexport type BaseSwitchGroupEvents = BaseCheckboxGroupEvents;\n\nexport type BaseSwitchGroupProps<T> = BaseCheckboxGroupProps<T>;\n\nconst props = withDefaults(defineProps<BaseSwitchGroupProps<T>>(), {\n\tdepsDebounceTime: 0,\n\tdirection: 'horizontal',\n\titems: () => [],\n\tloadingText: 'Caricamento...',\n\tmodelValueDebounceTime: 0,\n\tnoDataText: 'Nessun elemento da visualizzare',\n});\n\nconst emit = defineEmits<BaseSwitchGroupEvents>();\n\ndefineSlots<{\n\tprepend?: (props: object) => any;\n\tloading?: (props: object) => any;\n\t'no-data'?: (props: object) => any;\n\t'option:prepend'?: (props: {\n\t\tchecked: boolean;\n\t\tdisabled: boolean;\n\t\tid?: string;\n\t\titem: T;\n\t\ttext: string;\n\t}) => any;\n\ticon?: (\n\t\tprops: SlotAttributes & {\n\t\t\titem: T;\n\t\t\ttext: string;\n\t\t}\n\t) => any;\n\tlabel?: (props: { item: T; text: string; checked: boolean }) => any;\n\t'option:append'?: (props: {\n\t\tchecked: boolean;\n\t\tdisabled: boolean;\n\t\tid?: string;\n\t\titem: T;\n\t\ttext: string;\n\t}) => any;\n\tappend?: (props: object) => any;\n}>();\n\nconst container = ref<HTMLElement>();\nconst active = ref(false);\n\nconst {\n\tinnerLoading: loading,\n\toptions,\n\tselectOption,\n\tunselectOption,\n} = useOptions({\n\tdependencies: toRef(props, 'dependencies'),\n\tdepsDebounceTime: props.depsDebounceTime,\n\tdisabled: toRef(props, 'disabled'),\n\temit,\n\tenforceCoherence: props.enforceCoherence,\n\titems: toRef(props, 'items'),\n\titemText: props.itemText,\n\titemValue: props.itemValue,\n\tmodelValue: toRef(props, 'modelValue'),\n\tmodelValueDebounceTime: props.modelValueDebounceTime,\n\tmultiple: true,\n\tprefill: true,\n\tqueryDebounceTime: 0,\n\tresetQueryOnOptionSelected: false,\n\tstash: false,\n});\n\nconst onChange = (event: Event, option: Option) => {\n\temit('change', event);\n\tif (!option.selected) {\n\t\tselectOption(option);\n\t} else {\n\t\tunselectOption(option);\n\t}\n};\n\nconst onFocus = (event: FocusEvent) => {\n\temit('focus', event);\n\tif (!active.value) {\n\t\tdocument.addEventListener('focusin', onDocumentFocus, { passive: true });\n\t\tdocument.addEventListener('click', onDocumentClick, { passive: true });\n\t\tactive.value = true;\n\t}\n};\n\nconst eventListeners = {\n\tonBlur: (event: FocusEvent) => emit('blur', event),\n\tonClick: (event: MouseEvent) => emit('click', event),\n\tonFocus,\n\tonInput: (event: Event) => emit('input', event),\n\tonKeydown: (event: KeyboardEvent) => emit('keydown', event),\n\tonMousedown: (event: MouseEvent) => emit('mousedown', event),\n\tonMouseup: (event: MouseEvent) => emit('mouseup', event),\n};\n\nconst onDocumentFocus = (event: FocusEvent) => {\n\tif (event.target instanceof HTMLElement) {\n\t\tif (!container.value?.contains(event.target)) {\n\t\t\temit('inactive');\n\t\t\tactive.value = false;\n\t\t\tdocument.removeEventListener('focusin', onDocumentFocus);\n\t\t\tdocument.removeEventListener('click', onDocumentClick);\n\t\t}\n\t}\n};\n\nconst onDocumentClick = (event: MouseEvent) => {\n\tif (event.target instanceof HTMLElement) {\n\t\tif (!container.value?.contains(event.target)) {\n\t\t\temit('inactive');\n\t\t\tactive.value = false;\n\t\t\tdocument.removeEventListener('focusin', onDocumentFocus);\n\t\t\tdocument.removeEventListener('click', onDocumentClick);\n\t\t}\n\t}\n};\n</script>\n\n<style lang=\"postcss\">\n@import '@/assets/css/BaseSwitchGroup';\n</style>\n"],"names":["props","__props","emit","__emit","container","ref","active","loading","options","selectOption","unselectOption","useOptions","toRef","onChange","event","option","eventListeners","onDocumentFocus","onDocumentClick","_a"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiEA,UAAMA,IAAQC,GASRC,IAAOC,GA8BPC,IAAYC,KACZC,IAASD,EAAI,EAAK,GAElB;AAAA,MACL,cAAcE;AAAA,MACd,SAAAC;AAAA,MACA,cAAAC;AAAA,MACA,gBAAAC;AAAA,QACGC,EAAW;AAAA,MACd,cAAcC,EAAMZ,GAAO,cAAc;AAAA,MACzC,kBAAkBA,EAAM;AAAA,MACxB,UAAUY,EAAMZ,GAAO,UAAU;AAAA,MACjC,MAAAE;AAAA,MACA,kBAAkBF,EAAM;AAAA,MACxB,OAAOY,EAAMZ,GAAO,OAAO;AAAA,MAC3B,UAAUA,EAAM;AAAA,MAChB,WAAWA,EAAM;AAAA,MACjB,YAAYY,EAAMZ,GAAO,YAAY;AAAA,MACrC,wBAAwBA,EAAM;AAAA,MAC9B,UAAU;AAAA,MACV,SAAS;AAAA,MACT,mBAAmB;AAAA,MACnB,4BAA4B;AAAA,MAC5B,OAAO;AAAA,IAAA,CACP,GAEKa,IAAW,CAACC,GAAcC,MAAmB;AAClD,MAAAb,EAAK,UAAUY,CAAK,GACfC,EAAO,WAGXL,EAAeK,CAAM,IAFrBN,EAAaM,CAAM;AAAA,IAGpB,GAYKC,IAAiB;AAAA,MACtB,QAAQ,CAACF,MAAsBZ,EAAK,QAAQY,CAAK;AAAA,MACjD,SAAS,CAACA,MAAsBZ,EAAK,SAASY,CAAK;AAAA,MACnD,SAZe,CAACA,MAAsB;AACtC,QAAAZ,EAAK,SAASY,CAAK,GACdR,EAAO,UACX,SAAS,iBAAiB,WAAWW,GAAiB,EAAE,SAAS,IAAM,GACvE,SAAS,iBAAiB,SAASC,GAAiB,EAAE,SAAS,IAAM,GACrEZ,EAAO,QAAQ;AAAA,MAChB;AAAA,MAOA,SAAS,CAACQ,MAAiBZ,EAAK,SAASY,CAAK;AAAA,MAC9C,WAAW,CAACA,MAAyBZ,EAAK,WAAWY,CAAK;AAAA,MAC1D,aAAa,CAACA,MAAsBZ,EAAK,aAAaY,CAAK;AAAA,MAC3D,WAAW,CAACA,MAAsBZ,EAAK,WAAWY,CAAK;AAAA,IAAA,GAGlDG,IAAkB,CAACH,MAAsB;;AAC1C,MAAAA,EAAM,kBAAkB,iBACtBK,IAAAf,EAAU,UAAV,QAAAe,EAAiB,SAASL,EAAM,YACpCZ,EAAK,UAAU,GACfI,EAAO,QAAQ,IACN,SAAA,oBAAoB,WAAWW,CAAe,GAC9C,SAAA,oBAAoB,SAASC,CAAe;AAAA,IAEvD,GAGKA,IAAkB,CAACJ,MAAsB;;AAC1C,MAAAA,EAAM,kBAAkB,iBACtBK,IAAAf,EAAU,UAAV,QAAAe,EAAiB,SAASL,EAAM,YACpCZ,EAAK,UAAU,GACfI,EAAO,QAAQ,IACN,SAAA,oBAAoB,WAAWW,CAAe,GAC9C,SAAA,oBAAoB,SAASC,CAAe;AAAA,IAEvD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index40.js","sources":["../src/components/BaseSwitch/BaseSwitch.vue"],"sourcesContent":["<template>\n\t<span v-bind=\"containerAttributes\">\n\t\t<input v-if=\"!checked && submitWhenFalse\" v-bind=\"hiddenInputAttributes\" />\n\t\t<input v-bind=\"inputAttributes\" ref=\"checkboxInput\" />\n\t\t<span class=\"bb-base-switch-container\">\n\t\t\t<slot name=\"icon\" v-bind=\"slotAttributes\">\n\t\t\t\t<span v-bind=\"iconAttributes\">\n\t\t\t\t\t<span class=\"bb-base-switch-container__icon-thumb\"></span>\n\t\t\t\t</span>\n\t\t\t</slot>\n\t\t</span>\n\t</span>\n</template>\n\n<script setup lang=\"ts\">\nimport { computed, ref, watch } from 'vue';\nimport { isCssColor } from '@/utilities/functions/isCssColor';\nimport { when } from '@/utilities/functions/when';\nimport type {\n\tBaseCheckboxEvents,\n\tBaseCheckboxProps,\n\tSlotAttributes,\n} from '../BaseCheckbox/BaseCheckbox.vue';\n\nexport type BaseSwitchProps = BaseCheckboxProps;\n\nexport type BaseSwitchEvents = BaseCheckboxEvents;\n\nconst props = withDefaults(defineProps<BaseSwitchProps>(), {\n\ttrueValue: true,\n\tfalseValue: false,\n});\n\nconst emit = defineEmits<BaseSwitchEvents>();\n\nexport type BaseSwitchSlots = {\n\ticon?: (props: SlotAttributes) => any;\n};\n\ndefineSlots<BaseSwitchSlots>();\n\nconst checkboxInput = ref<HTMLInputElement | null>(null);\n\nconst checked = computed(() => {\n\tif (props.checked) return true;\n\treturn JSON.stringify(props.trueValue) === JSON.stringify(props.modelValue);\n});\nconst hasFocus = ref(false);\n\nconst containerAttributes = computed(() => {\n\tconst attributes: Record<string, any> = {\n\t\tclass: {\n\t\t\t'bb-base-switch': true,\n\t\t\t'bb-base-switch--disabled': props.disabled,\n\t\t\t'bb-base-switch--errors': props.hasErrors,\n\t\t\t'bb-base-switch--indeterminate': props.indeterminate,\n\t\t\t'bb-base-switch--readonly': props.readonly,\n\t\t\t[`bb-base-switch--${props.color}`]:\n\t\t\t\tprops.color && !isCssColor(props.color),\n\t\t},\n\t};\n\tif (props.color && isCssColor(props.color)) {\n\t\tattributes['style'] = `--color: ${props.color}`;\n\t}\n\treturn attributes;\n});\n\n/**\n * This is used to keep the value compatible to common html expected values.\n * Convert to string everything that's not but do not double encode strings\n */\nconst makeInputValue = when(\n\t(item: unknown) => typeof item !== 'string',\n\tJSON.stringify\n);\n\nconst hiddenInputAttributes = computed(() => {\n\tconst value = makeInputValue(props.falseValue);\n\treturn {\n\t\tdisabled: props.disabled,\n\t\tname: props.name,\n\t\ttype: 'hidden',\n\t\tvalue: value,\n\t};\n});\n\nconst inputAttributes = computed(() => {\n\tconst value = makeInputValue(props.trueValue);\n\n\tconst onBlur = (event: FocusEvent): void => {\n\t\thasFocus.value = false;\n\t\temit('blur', event);\n\t};\n\n\tconst onChange = (event: Event): void => {\n\t\tif (event.target instanceof HTMLInputElement) {\n\t\t\tlet value = event.target.checked ? props.trueValue : props.falseValue;\n\n\t\t\temit('change', event);\n\t\t\temit('update:modelValue', value);\n\t\t}\n\t};\n\n\tconst onFocus = (event: FocusEvent): void => {\n\t\thasFocus.value = true;\n\t\temit('focus', event);\n\t};\n\n\tconst eventListeners = {\n\t\tonBlur,\n\t\tonChange,\n\t\tonClick: (event: MouseEvent) => emit('click', event),\n\t\tonFocus,\n\t\tonInput: (event: Event) => emit('input', event),\n\t\tonKeydown: (event: KeyboardEvent) => emit('keydown', event),\n\t\tonMousedown: (event: MouseEvent) => emit('mousedown', event),\n\t\tonMouseup: (event: MouseEvent) => emit('mouseup', event),\n\t};\n\n\treturn {\n\t\t'aria-describedby': props.ariaDescribedby,\n\t\tautofocus: props.autofocus,\n\t\tchecked: checked.value,\n\t\t// There is no such thing as readonly checkbox so we disable and style it with css\n\t\tdisabled: props.disabled || props.readonly,\n\t\tid: props.id,\n\t\tindeterminate: props.indeterminate,\n\t\tname: props.name,\n\t\trequired: props.required,\n\t\ttabindex: props.disabled ? -1 : undefined,\n\t\ttype: 'checkbox',\n\t\tvalue: value,\n\t\tclass: 'sr-only',\n\t\t...eventListeners,\n\t};\n});\n\nconst slotAttributes = computed(() => ({\n\tchecked: checked.value,\n\tdisabled: props.disabled,\n\tfalseValue: props.falseValue,\n\tfocused: hasFocus.value,\n\thasErrors: props.hasErrors,\n\tid: props.id,\n\tname: props.name,\n\tparsedValue: inputAttributes.value.value,\n\treadonly: props.readonly,\n\trequired: props.required,\n\ttrueValue: props.trueValue,\n\tvalue: checked.value ? props.trueValue : props.falseValue,\n}));\n\nconst iconAttributes = computed(() => {\n\tlet style: { [key: string]: string } = {};\n\tif (props.color && isCssColor(props.color)) {\n\t\tstyle.color = props.color;\n\t}\n\treturn {\n\t\tclass: 'bb-base-switch-container__icon',\n\t\tstyle,\n\t};\n});\n\n/**\n * Indeterminate is a very volatile prop that is reset upon clicking,\n * this keeps the state and the prop aligned\n */\nwatch(\n\t() => [props.modelValue, props.checked, props.indeterminate],\n\t() => {\n\t\tif (checkboxInput.value) {\n\t\t\tcheckboxInput.value.indeterminate = !!props.indeterminate;\n\t\t}\n\t}\n);\n</script>\n\n<style lang=\"postcss\">\n@import '@/assets/css/BaseSwitch';\n</style>\n"],"names":["props","__props","emit","__emit","checkboxInput","ref","checked","computed","hasFocus","containerAttributes","attributes","isCssColor","makeInputValue","when","item","hiddenInputAttributes","value","inputAttributes","eventListeners","event","slotAttributes","iconAttributes","style","watch"],"mappings":"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"}