bootstrap-vue-next 0.44.2 → 0.44.4

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 (641) hide show
  1. package/dist/{BAccordion-CQIw-5xs.js → BAccordion-CJZMsvwP.js} +6 -6
  2. package/dist/{BAccordion-CQIw-5xs.js.map → BAccordion-CJZMsvwP.js.map} +1 -1
  3. package/dist/{BAccordion-BJcDjMYL.mjs → BAccordion-CNzV6f8e.mjs} +6 -6
  4. package/dist/{BAccordion-BJcDjMYL.mjs.map → BAccordion-CNzV6f8e.mjs.map} +1 -1
  5. package/dist/{BAlert-CVtoW2SX.js → BAlert-BnT7fF6B.js} +9 -9
  6. package/dist/{BAlert-CVtoW2SX.js.map → BAlert-BnT7fF6B.js.map} +1 -1
  7. package/dist/{BAlert-DaQxH8c1.mjs → BAlert-Qiyqq4rE.mjs} +9 -9
  8. package/dist/{BAlert-DaQxH8c1.mjs.map → BAlert-Qiyqq4rE.mjs.map} +1 -1
  9. package/dist/{BApp-CIu-zI8K.mjs → BApp-DJWC2mB8.mjs} +2 -2
  10. package/dist/{BApp-CIu-zI8K.mjs.map → BApp-DJWC2mB8.mjs.map} +1 -1
  11. package/dist/{BApp-cBKQc5Dd.js → BApp-DaM0UKIg.js} +2 -2
  12. package/dist/{BApp-cBKQc5Dd.js.map → BApp-DaM0UKIg.js.map} +1 -1
  13. package/dist/BAspect-BULTO240.js +50 -0
  14. package/dist/BAspect-BULTO240.js.map +1 -0
  15. package/dist/BAspect-CwokVvvn.mjs +44 -0
  16. package/dist/BAspect-CwokVvvn.mjs.map +1 -0
  17. package/dist/BAutocomplete-C7Odx4At.js +2342 -0
  18. package/dist/BAutocomplete-C7Odx4At.js.map +1 -0
  19. package/dist/BAutocomplete-Depalqe-.mjs +2336 -0
  20. package/dist/BAutocomplete-Depalqe-.mjs.map +1 -0
  21. package/dist/{BAvatar-C7Vc4wad.mjs → BAvatar-D7aFEXLH.mjs} +8 -8
  22. package/dist/{BAvatar-C7Vc4wad.mjs.map → BAvatar-D7aFEXLH.mjs.map} +1 -1
  23. package/dist/{BAvatar-BcQeFYZU.js → BAvatar-lefHkDuG.js} +8 -8
  24. package/dist/{BAvatar-BcQeFYZU.js.map → BAvatar-lefHkDuG.js.map} +1 -1
  25. package/dist/{BBadge-CKGGd4xB.js → BBadge-BBUcrujj.js} +5 -5
  26. package/dist/{BBadge-CKGGd4xB.js.map → BBadge-BBUcrujj.js.map} +1 -1
  27. package/dist/{BBadge-Dfkx4SMN.mjs → BBadge-D5ra3W5R.mjs} +5 -5
  28. package/dist/{BBadge-Dfkx4SMN.mjs.map → BBadge-D5ra3W5R.mjs.map} +1 -1
  29. package/dist/{BBreadcrumb-1Wxpf1iy.js → BBreadcrumb-BSsiwCNB.js} +4 -4
  30. package/dist/{BBreadcrumb-1Wxpf1iy.js.map → BBreadcrumb-BSsiwCNB.js.map} +1 -1
  31. package/dist/{BBreadcrumb-CR35-KcI.mjs → BBreadcrumb-amkzWyz6.mjs} +4 -4
  32. package/dist/{BBreadcrumb-CR35-KcI.mjs.map → BBreadcrumb-amkzWyz6.mjs.map} +1 -1
  33. package/dist/{BButton-1yV1UiT7.mjs → BButton-BRvIFnRm.mjs} +5 -5
  34. package/dist/{BButton-1yV1UiT7.mjs.map → BButton-BRvIFnRm.mjs.map} +1 -1
  35. package/dist/{BButton-BID3NrxE.js → BButton-DBRs8Pz_.js} +5 -5
  36. package/dist/{BButton-BID3NrxE.js.map → BButton-DBRs8Pz_.js.map} +1 -1
  37. package/dist/{BButton-BtCX70_2.mjs → BButton-DNmtqoqR.mjs} +5 -5
  38. package/dist/{BButton-BtCX70_2.mjs.map → BButton-DNmtqoqR.mjs.map} +1 -1
  39. package/dist/{BButton-C_bVBx8e.js → BButton-kykTWnBy.js} +5 -5
  40. package/dist/{BButton-C_bVBx8e.js.map → BButton-kykTWnBy.js.map} +1 -1
  41. package/dist/{BCard-Vf1haqo5.mjs → BCard-C1G8PO5k.mjs} +6 -6
  42. package/dist/{BCard-Vf1haqo5.mjs.map → BCard-C1G8PO5k.mjs.map} +1 -1
  43. package/dist/{BCard-CY6iY456.mjs → BCard-CJ822HyH.mjs} +3 -3
  44. package/dist/{BCard-CY6iY456.mjs.map → BCard-CJ822HyH.mjs.map} +1 -1
  45. package/dist/{BCard-D1J5OVRY.js → BCard-CSyEHz8Z.js} +3 -3
  46. package/dist/{BCard-D1J5OVRY.js.map → BCard-CSyEHz8Z.js.map} +1 -1
  47. package/dist/{BCard-BIQQg9Rx.js → BCard-CgbTFn3S.js} +6 -6
  48. package/dist/{BCard-BIQQg9Rx.js.map → BCard-CgbTFn3S.js.map} +1 -1
  49. package/dist/{BCarousel-BH6WIvJx.js → BCarousel-Be7z13f9.js} +10 -7
  50. package/dist/BCarousel-Be7z13f9.js.map +1 -0
  51. package/dist/{BCarousel-C3CA_wGV.mjs → BCarousel-D81alfFC.mjs} +10 -7
  52. package/dist/BCarousel-D81alfFC.mjs.map +1 -0
  53. package/dist/{BCloseButton-CgIVNv2g.js → BCloseButton-CN__Jjcj.js} +2 -2
  54. package/dist/{BCloseButton-CgIVNv2g.js.map → BCloseButton-CN__Jjcj.js.map} +1 -1
  55. package/dist/{BCloseButton-DrD0tpan.mjs → BCloseButton-CjgbR1Ec.mjs} +2 -2
  56. package/dist/{BCloseButton-DrD0tpan.mjs.map → BCloseButton-CjgbR1Ec.mjs.map} +1 -1
  57. package/dist/{BCol-GOE5drq_.js → BCol-0tZmpOme.js} +3 -3
  58. package/dist/{BCol-GOE5drq_.js.map → BCol-0tZmpOme.js.map} +1 -1
  59. package/dist/{BCol-BjC3q-su.mjs → BCol-C4v-TOX6.mjs} +3 -3
  60. package/dist/{BCol-BjC3q-su.mjs.map → BCol-C4v-TOX6.mjs.map} +1 -1
  61. package/dist/{BCollapse-DqeS5WyB.mjs → BCollapse-D-xTGkX_.mjs} +4 -4
  62. package/dist/{BCollapse-DqeS5WyB.mjs.map → BCollapse-D-xTGkX_.mjs.map} +1 -1
  63. package/dist/{BCollapse-BMSZfqqk.js → BCollapse-DZ1z2c8U.js} +4 -4
  64. package/dist/{BCollapse-BMSZfqqk.js.map → BCollapse-DZ1z2c8U.js.map} +1 -1
  65. package/dist/{BContainer-CdNYUb9S.js → BContainer-BZUI2qQv.js} +4 -4
  66. package/dist/{BContainer-CdNYUb9S.js.map → BContainer-BZUI2qQv.js.map} +1 -1
  67. package/dist/{BContainer-NRhwYcFj.mjs → BContainer-DjIGH6-y.mjs} +4 -4
  68. package/dist/{BContainer-NRhwYcFj.mjs.map → BContainer-DjIGH6-y.mjs.map} +1 -1
  69. package/dist/{BDateField-CRFFJ4Sj.mjs → BDateField-BJIq6gs9.mjs} +8 -6
  70. package/dist/{BDateField-CRFFJ4Sj.mjs.map → BDateField-BJIq6gs9.mjs.map} +1 -1
  71. package/dist/{BDateField-3Xb73vd-.js → BDateField-RWwEMIwd.js} +17 -15
  72. package/dist/{BDateField-3Xb73vd-.js.map → BDateField-RWwEMIwd.js.map} +1 -1
  73. package/dist/{BDatePicker-rdtRZlra.js → BDatePicker-BQN6qZXa.js} +74 -1556
  74. package/dist/BDatePicker-BQN6qZXa.js.map +1 -0
  75. package/dist/{BDatePicker-DPtAqGyV.mjs → BDatePicker-DfzZBWjU.mjs} +15 -1497
  76. package/dist/BDatePicker-DfzZBWjU.mjs.map +1 -0
  77. package/dist/{BDropdown-k-nulez8.mjs → BDropdown-BW_O8vPQ.mjs} +5 -5
  78. package/dist/{BDropdown-k-nulez8.mjs.map → BDropdown-BW_O8vPQ.mjs.map} +1 -1
  79. package/dist/{BDropdown-C2L69dLN.js → BDropdown-C1AxRj81.js} +15 -12
  80. package/dist/BDropdown-C1AxRj81.js.map +1 -0
  81. package/dist/{BDropdown-CrgX7oCn.js → BDropdown-CuVOxCzu.js} +5 -5
  82. package/dist/{BDropdown-CrgX7oCn.js.map → BDropdown-CuVOxCzu.js.map} +1 -1
  83. package/dist/{BDropdown-CKnx6hUH.mjs → BDropdown-DAHnN54Z.mjs} +15 -12
  84. package/dist/BDropdown-DAHnN54Z.mjs.map +1 -0
  85. package/dist/{BForm-B0YEolfQ.js → BForm-Bp7SFxiK.js} +2 -2
  86. package/dist/{BForm-B0YEolfQ.js.map → BForm-Bp7SFxiK.js.map} +1 -1
  87. package/dist/{BForm-ppPvhIuu.js → BForm-BqHUnHpU.js} +8 -7
  88. package/dist/{BForm-ppPvhIuu.js.map → BForm-BqHUnHpU.js.map} +1 -1
  89. package/dist/{BForm-DZW1uWD-.mjs → BForm-IL7Rf_27.mjs} +7 -6
  90. package/dist/{BForm-DZW1uWD-.mjs.map → BForm-IL7Rf_27.mjs.map} +1 -1
  91. package/dist/{BForm-CPHblWb2.mjs → BForm-Oh6PpdcD.mjs} +2 -2
  92. package/dist/{BForm-CPHblWb2.mjs.map → BForm-Oh6PpdcD.mjs.map} +1 -1
  93. package/dist/{BFormCheckbox-MEwee9Ij.js → BFormCheckbox-Bdk2rgVe.js} +6 -6
  94. package/dist/{BFormCheckbox-MEwee9Ij.js.map → BFormCheckbox-Bdk2rgVe.js.map} +1 -1
  95. package/dist/{BFormCheckbox-CsN1a4jm.mjs → BFormCheckbox-CcDK-lh1.mjs} +6 -6
  96. package/dist/{BFormCheckbox-CsN1a4jm.mjs.map → BFormCheckbox-CcDK-lh1.mjs.map} +1 -1
  97. package/dist/{BFormFile-BEHeBj6q.js → BFormFile-BWknj7fW.js} +5 -5
  98. package/dist/{BFormFile-BEHeBj6q.js.map → BFormFile-BWknj7fW.js.map} +1 -1
  99. package/dist/{BFormFile-CNtEA98J.mjs → BFormFile-Bf3GMYeX.mjs} +5 -5
  100. package/dist/{BFormFile-CNtEA98J.mjs.map → BFormFile-Bf3GMYeX.mjs.map} +1 -1
  101. package/dist/{BFormGroup-DBVGyJ-f.mjs → BFormGroup--38dFj0X.mjs} +9 -9
  102. package/dist/{BFormGroup-DBVGyJ-f.mjs.map → BFormGroup--38dFj0X.mjs.map} +1 -1
  103. package/dist/{BFormGroup-CGjb_pUi.js → BFormGroup-BwO1BZD1.js} +9 -9
  104. package/dist/{BFormGroup-CGjb_pUi.js.map → BFormGroup-BwO1BZD1.js.map} +1 -1
  105. package/dist/{BFormInput-4vCGzAoO.js → BFormInput-BuRSGYdY.js} +3 -3
  106. package/dist/{BFormInput-4vCGzAoO.js.map → BFormInput-BuRSGYdY.js.map} +1 -1
  107. package/dist/{BFormInput-DrZnHCLO.mjs → BFormInput-Dg9dbwHp.mjs} +3 -3
  108. package/dist/{BFormInput-DrZnHCLO.mjs.map → BFormInput-Dg9dbwHp.mjs.map} +1 -1
  109. package/dist/{BFormRadio-BXpiJTsS.mjs → BFormRadio-CRDbgMiR.mjs} +6 -6
  110. package/dist/{BFormRadio-BXpiJTsS.mjs.map → BFormRadio-CRDbgMiR.mjs.map} +1 -1
  111. package/dist/{BFormRadio-BzHsRe9X.js → BFormRadio-DuVYw-Vs.js} +6 -6
  112. package/dist/{BFormRadio-BzHsRe9X.js.map → BFormRadio-DuVYw-Vs.js.map} +1 -1
  113. package/dist/{BFormRating-Cq94zurU.mjs → BFormRating-Bb_ACp-9.mjs} +4 -4
  114. package/dist/{BFormRating-Cq94zurU.mjs.map → BFormRating-Bb_ACp-9.mjs.map} +1 -1
  115. package/dist/{BFormRating-_MVRGNOF.js → BFormRating-CNqf91vN.js} +4 -4
  116. package/dist/{BFormRating-_MVRGNOF.js.map → BFormRating-CNqf91vN.js.map} +1 -1
  117. package/dist/{BFormSelect-DbpJ_0j-.mjs → BFormSelect-Dg6OwMl-.mjs} +8 -7
  118. package/dist/{BFormSelect-DbpJ_0j-.mjs.map → BFormSelect-Dg6OwMl-.mjs.map} +1 -1
  119. package/dist/{BFormSelect-DFa1-5ez.js → BFormSelect-DqSojuY_.js} +10 -9
  120. package/dist/{BFormSelect-DFa1-5ez.js.map → BFormSelect-DqSojuY_.js.map} +1 -1
  121. package/dist/BFormSelectOption-BY4P8HOf.js +46 -0
  122. package/dist/BFormSelectOption-BY4P8HOf.js.map +1 -0
  123. package/dist/BFormSelectOption-O8cyyv3i.mjs +40 -0
  124. package/dist/BFormSelectOption-O8cyyv3i.mjs.map +1 -0
  125. package/dist/{BFormSpinbutton-DmzfRDeR.mjs → BFormSpinbutton-BLO0Yf36.mjs} +6 -6
  126. package/dist/{BFormSpinbutton-DmzfRDeR.mjs.map → BFormSpinbutton-BLO0Yf36.mjs.map} +1 -1
  127. package/dist/{BFormSpinbutton-DzJ071Gz.js → BFormSpinbutton-BaOTL1k1.js} +6 -6
  128. package/dist/{BFormSpinbutton-DzJ071Gz.js.map → BFormSpinbutton-BaOTL1k1.js.map} +1 -1
  129. package/dist/BFormTag-BUWEugEC.mjs +80 -0
  130. package/dist/BFormTag-BUWEugEC.mjs.map +1 -0
  131. package/dist/BFormTag-C7B-bX72.js +86 -0
  132. package/dist/BFormTag-C7B-bX72.js.map +1 -0
  133. package/dist/{BFormTags-pK9i3cOB.js → BFormTags-BFA6xbr3.js} +12 -88
  134. package/dist/BFormTags-BFA6xbr3.js.map +1 -0
  135. package/dist/{BFormTags-Cobh04P9.mjs → BFormTags-CJb4H67g.mjs} +13 -83
  136. package/dist/BFormTags-CJb4H67g.mjs.map +1 -0
  137. package/dist/{BFormTextarea-BtXarcjA.js → BFormTextarea-8c3B3kAI.js} +4 -4
  138. package/dist/{BFormTextarea-BtXarcjA.js.map → BFormTextarea-8c3B3kAI.js.map} +1 -1
  139. package/dist/{BFormTextarea-ClcoJrSM.mjs → BFormTextarea-BMk05ojJ.mjs} +4 -4
  140. package/dist/{BFormTextarea-ClcoJrSM.mjs.map → BFormTextarea-BMk05ojJ.mjs.map} +1 -1
  141. package/dist/{BFormValidFeedback-Ot8gdDST.js → BFormValidFeedback-DvTgwqSe.js} +3 -3
  142. package/dist/{BFormValidFeedback-Ot8gdDST.js.map → BFormValidFeedback-DvTgwqSe.js.map} +1 -1
  143. package/dist/{BFormValidFeedback-foz9BlkH.mjs → BFormValidFeedback-_Dgzm0Ag.mjs} +3 -3
  144. package/dist/{BFormValidFeedback-foz9BlkH.mjs.map → BFormValidFeedback-_Dgzm0Ag.mjs.map} +1 -1
  145. package/dist/{BImg-b_3eTiEq.mjs → BImg-BQqZfIM9.mjs} +5 -5
  146. package/dist/{BImg-b_3eTiEq.mjs.map → BImg-BQqZfIM9.mjs.map} +1 -1
  147. package/dist/{BImg-BrA0ZRS6.js → BImg-Dyy0N-WQ.js} +5 -5
  148. package/dist/{BImg-BrA0ZRS6.js.map → BImg-Dyy0N-WQ.js.map} +1 -1
  149. package/dist/BInputGroup-BScMw6Zr.js +31 -0
  150. package/dist/BInputGroup-BScMw6Zr.js.map +1 -0
  151. package/dist/BInputGroup-C7k0tS9j.mjs +25 -0
  152. package/dist/BInputGroup-C7k0tS9j.mjs.map +1 -0
  153. package/dist/{BInputGroup-B8fKBtip.mjs → BInputGroup-DpX10xwR.mjs} +4 -22
  154. package/dist/BInputGroup-DpX10xwR.mjs.map +1 -0
  155. package/dist/{BInputGroup-Cr0qLUds.js → BInputGroup-Duk6Jk0v.js} +2 -26
  156. package/dist/BInputGroup-Duk6Jk0v.js.map +1 -0
  157. package/dist/{BLink-DoYZ8dBl.mjs → BLink-Cz5YCsnv.mjs} +4 -4
  158. package/dist/{BLink-DoYZ8dBl.mjs.map → BLink-Cz5YCsnv.mjs.map} +1 -1
  159. package/dist/{BLink-DW7s8W_N.js → BLink-uemyYKst.js} +4 -4
  160. package/dist/{BLink-DW7s8W_N.js.map → BLink-uemyYKst.js.map} +1 -1
  161. package/dist/{BListGroup-ByYmtuCM.mjs → BListGroup-BmtN0xQ3.mjs} +3 -3
  162. package/dist/{BListGroup-ByYmtuCM.mjs.map → BListGroup-BmtN0xQ3.mjs.map} +1 -1
  163. package/dist/{BListGroup-clQNXk23.js → BListGroup-DuyMdAxJ.js} +3 -3
  164. package/dist/{BListGroup-clQNXk23.js.map → BListGroup-DuyMdAxJ.js.map} +1 -1
  165. package/dist/{BModal-TCXrZEZk.mjs → BModal-Br5xLT0-.mjs} +15 -12
  166. package/dist/BModal-Br5xLT0-.mjs.map +1 -0
  167. package/dist/{BModal-d3FKaKhA.js → BModal-D0LB339D.js} +15 -12
  168. package/dist/BModal-D0LB339D.js.map +1 -0
  169. package/dist/{BNav-BBr8213N.mjs → BNav-BRjdHsjC.mjs} +7 -7
  170. package/dist/{BNav-BBr8213N.mjs.map → BNav-BRjdHsjC.mjs.map} +1 -1
  171. package/dist/{BNav-BMAZcVDS.js → BNav-tYBwz1wU.js} +7 -7
  172. package/dist/{BNav-BMAZcVDS.js.map → BNav-tYBwz1wU.js.map} +1 -1
  173. package/dist/{BNavbar-BfYFzX1s.js → BNavbar-s9Ak5PnO.js} +6 -6
  174. package/dist/{BNavbar-BfYFzX1s.js.map → BNavbar-s9Ak5PnO.js.map} +1 -1
  175. package/dist/{BNavbar-DtgNmsyI.mjs → BNavbar-vN3_CMLn.mjs} +6 -6
  176. package/dist/{BNavbar-DtgNmsyI.mjs.map → BNavbar-vN3_CMLn.mjs.map} +1 -1
  177. package/dist/{BOffcanvas-YsVap-9w.js → BOffcanvas-D33pEfZe.js} +14 -11
  178. package/dist/BOffcanvas-D33pEfZe.js.map +1 -0
  179. package/dist/{BOffcanvas-BklEA-4x.mjs → BOffcanvas-jETHbtC3.mjs} +14 -11
  180. package/dist/BOffcanvas-jETHbtC3.mjs.map +1 -0
  181. package/dist/BOtpInput-CSCoKHP9.js +542 -0
  182. package/dist/BOtpInput-CSCoKHP9.js.map +1 -0
  183. package/dist/BOtpInput-Drfkt3x3.mjs +536 -0
  184. package/dist/BOtpInput-Drfkt3x3.mjs.map +1 -0
  185. package/dist/{BOverlay-Dg9YM7p1.js → BOverlay-B7vJAdHO.js} +6 -6
  186. package/dist/{BOverlay-Dg9YM7p1.js.map → BOverlay-B7vJAdHO.js.map} +1 -1
  187. package/dist/{BOverlay-DOfvBAZb.mjs → BOverlay-BGxH9JVy.mjs} +6 -6
  188. package/dist/{BOverlay-DOfvBAZb.mjs.map → BOverlay-BGxH9JVy.mjs.map} +1 -1
  189. package/dist/{BPagination-9P9Xh3cN.js → BPagination-C0-4NVzW.js} +6 -6
  190. package/dist/{BPagination-9P9Xh3cN.js.map → BPagination-C0-4NVzW.js.map} +1 -1
  191. package/dist/{BPagination-B868NBmG.mjs → BPagination-CvoSN1He.mjs} +6 -6
  192. package/dist/{BPagination-B868NBmG.mjs.map → BPagination-CvoSN1He.mjs.map} +1 -1
  193. package/dist/{BPlaceholder-7UJ3Nyb3.mjs → BPlaceholder-C4AOg29f.mjs} +6 -6
  194. package/dist/{BPlaceholder-7UJ3Nyb3.mjs.map → BPlaceholder-C4AOg29f.mjs.map} +1 -1
  195. package/dist/{BPlaceholder-DPEVmogO.js → BPlaceholder-DYYYuNgR.js} +6 -6
  196. package/dist/{BPlaceholder-DPEVmogO.js.map → BPlaceholder-DYYYuNgR.js.map} +1 -1
  197. package/dist/{BProgress-Bdf5AncM.mjs → BProgress-BIqo6vLh.mjs} +4 -4
  198. package/dist/{BProgress-Bdf5AncM.mjs.map → BProgress-BIqo6vLh.mjs.map} +1 -1
  199. package/dist/{BProgress-CeEIdt1a.js → BProgress-Bc3ZSkac.js} +4 -4
  200. package/dist/{BProgress-CeEIdt1a.js.map → BProgress-Bc3ZSkac.js.map} +1 -1
  201. package/dist/{BRow-NaXJzpS-.mjs → BRow-BCEK3fe6.mjs} +4 -4
  202. package/dist/{BRow-NaXJzpS-.mjs.map → BRow-BCEK3fe6.mjs.map} +1 -1
  203. package/dist/{BRow-DGi1WkB9.js → BRow-tqMEhkZS.js} +4 -4
  204. package/dist/{BRow-DGi1WkB9.js.map → BRow-tqMEhkZS.js.map} +1 -1
  205. package/dist/{BSpinner-Kska3Bsd.js → BSpinner-8UMAINYb.js} +3 -3
  206. package/dist/{BSpinner-Kska3Bsd.js.map → BSpinner-8UMAINYb.js.map} +1 -1
  207. package/dist/{BSpinner-DlLxrIkh.mjs → BSpinner-BpnwONvx.mjs} +3 -3
  208. package/dist/{BSpinner-DlLxrIkh.mjs.map → BSpinner-BpnwONvx.mjs.map} +1 -1
  209. package/dist/{BTable-BiNbXnsR.js → BTable-Btzu1IJ_.js} +9 -9
  210. package/dist/{BTable-BiNbXnsR.js.map → BTable-Btzu1IJ_.js.map} +1 -1
  211. package/dist/{BTable-C__GSYX2.mjs → BTable-CjHMx8Yv.mjs} +9 -9
  212. package/dist/{BTable-C__GSYX2.mjs.map → BTable-CjHMx8Yv.mjs.map} +1 -1
  213. package/dist/{BTableSimple-fwaF0Kws.js → BTableSimple-BcdizuDm.js} +5 -5
  214. package/dist/{BTableSimple-fwaF0Kws.js.map → BTableSimple-BcdizuDm.js.map} +1 -1
  215. package/dist/{BTableSimple-eebTf2L5.mjs → BTableSimple-C901Z5V9.mjs} +5 -5
  216. package/dist/{BTableSimple-eebTf2L5.mjs.map → BTableSimple-C901Z5V9.mjs.map} +1 -1
  217. package/dist/{BTabs-7IT0dhVr.mjs → BTabs-DZEF9kgT.mjs} +7 -7
  218. package/dist/{BTabs-7IT0dhVr.mjs.map → BTabs-DZEF9kgT.mjs.map} +1 -1
  219. package/dist/{BTabs-BxwRSBMv.js → BTabs-DiYaJi22.js} +7 -7
  220. package/dist/{BTabs-BxwRSBMv.js.map → BTabs-DiYaJi22.js.map} +1 -1
  221. package/dist/{BTimeField-CZw1_K7v.mjs → BTimeField-DSWZeGYP.mjs} +7 -5
  222. package/dist/{BTimeField-CZw1_K7v.mjs.map → BTimeField-DSWZeGYP.mjs.map} +1 -1
  223. package/dist/{BTimeField-CngB6NOW.js → BTimeField-VTrtxGkI.js} +18 -16
  224. package/dist/{BTimeField-CngB6NOW.js.map → BTimeField-VTrtxGkI.js.map} +1 -1
  225. package/dist/{BToast-IYBku5Nr.mjs → BToast-B2rFKhLD.mjs} +10 -10
  226. package/dist/{BToast-IYBku5Nr.mjs.map → BToast-B2rFKhLD.mjs.map} +1 -1
  227. package/dist/{BToast-BraVbf4N.js → BToast-DCSZYXIi.js} +10 -10
  228. package/dist/{BToast-BraVbf4N.js.map → BToast-DCSZYXIi.js.map} +1 -1
  229. package/dist/{BTooltip-B2hE5Q6m.js → BTooltip-CryTO-SM.js} +3 -3
  230. package/dist/{BTooltip-B2hE5Q6m.js.map → BTooltip-CryTO-SM.js.map} +1 -1
  231. package/dist/{BTooltip-BuK_zb1B.mjs → BTooltip-DtpjIEBu.mjs} +3 -3
  232. package/dist/{BTooltip-BuK_zb1B.mjs.map → BTooltip-DtpjIEBu.mjs.map} +1 -1
  233. package/dist/{BootstrapVueOptions-CVxLmDvx.js → BootstrapVueOptions-BC3f7hMU.js} +4 -1
  234. package/dist/BootstrapVueOptions-BC3f7hMU.js.map +1 -0
  235. package/dist/{BootstrapVueOptions-Dtdn7_AJ.mjs → BootstrapVueOptions-BU3rzYio.mjs} +4 -1
  236. package/dist/BootstrapVueOptions-BU3rzYio.mjs.map +1 -0
  237. package/dist/{ConditionalTeleport-BDWcebyD.js → ConditionalTeleport-BJZk6HAx.js} +1 -1
  238. package/dist/{ConditionalTeleport-BDWcebyD.js.map → ConditionalTeleport-BJZk6HAx.js.map} +1 -1
  239. package/dist/{ConditionalTeleport-B4KYZIM6.mjs → ConditionalTeleport-BNsziElf.mjs} +1 -1
  240. package/dist/{ConditionalTeleport-B4KYZIM6.mjs.map → ConditionalTeleport-BNsziElf.mjs.map} +1 -1
  241. package/dist/{ConditionalWrapper-ZqZKYsic.js → ConditionalWrapper-Cc7EIszd.js} +1 -1
  242. package/dist/{ConditionalWrapper-ZqZKYsic.js.map → ConditionalWrapper-Cc7EIszd.js.map} +1 -1
  243. package/dist/{ConditionalWrapper-BR9CKZNU.mjs → ConditionalWrapper-D9ovtbHB.mjs} +1 -1
  244. package/dist/{ConditionalWrapper-BR9CKZNU.mjs.map → ConditionalWrapper-D9ovtbHB.mjs.map} +1 -1
  245. package/dist/{DateRangeFieldInput-bXDqGVUe.js → DateRangeFieldInput-Ce7PM3PJ.js} +22 -20
  246. package/dist/{DateRangeFieldInput-bXDqGVUe.js.map → DateRangeFieldInput-Ce7PM3PJ.js.map} +1 -1
  247. package/dist/{DateRangeFieldInput-bA6IK9lx.mjs → DateRangeFieldInput-DiVuhf4Y.mjs} +5 -3
  248. package/dist/{DateRangeFieldInput-bA6IK9lx.mjs.map → DateRangeFieldInput-DiVuhf4Y.mjs.map} +1 -1
  249. package/dist/PopperContent-BTUvv6Tu.mjs +1431 -0
  250. package/dist/PopperContent-BTUvv6Tu.mjs.map +1 -0
  251. package/dist/PopperContent-CSwv2Fih.js +1515 -0
  252. package/dist/PopperContent-CSwv2Fih.js.map +1 -0
  253. package/dist/VisuallyHidden-Bbwok8oL.mjs +174 -0
  254. package/dist/VisuallyHidden-Bbwok8oL.mjs.map +1 -0
  255. package/dist/VisuallyHidden-DaN947I0.js +222 -0
  256. package/dist/VisuallyHidden-DaN947I0.js.map +1 -0
  257. package/dist/VisuallyHiddenInput-Biq4Qv5j.js +147 -0
  258. package/dist/VisuallyHiddenInput-Biq4Qv5j.js.map +1 -0
  259. package/dist/VisuallyHiddenInput-D1SjTCVH.mjs +141 -0
  260. package/dist/VisuallyHiddenInput-D1SjTCVH.mjs.map +1 -0
  261. package/dist/bootstrap-vue-next.css +147 -0
  262. package/dist/bootstrap-vue-next.mjs +62 -57
  263. package/dist/bootstrap-vue-next.umd.js +67 -59
  264. package/dist/{classes-D6JE1Dex.mjs → classes-B0E5Y78Y.mjs} +1 -1
  265. package/dist/{classes-D6JE1Dex.mjs.map → classes-B0E5Y78Y.mjs.map} +1 -1
  266. package/dist/{classes-vdSVs0gA.js → classes-D5wrmmVs.js} +1 -1
  267. package/dist/{classes-vdSVs0gA.js.map → classes-D5wrmmVs.js.map} +1 -1
  268. package/dist/components/BAccordion/BAccordionItem.vue.d.mts +1 -1
  269. package/dist/components/BAccordion/BAccordionItem.vue.d.ts +1 -1
  270. package/dist/components/BAspect/BAspect.vue.d.mts +21 -0
  271. package/dist/components/BAspect/BAspect.vue.d.ts +21 -0
  272. package/dist/components/BAspect/index.d.mts +1 -0
  273. package/dist/components/BAspect/index.d.ts +1 -0
  274. package/dist/components/BAutocomplete/BAutocomplete.vue.d.mts +65 -0
  275. package/dist/components/BAutocomplete/BAutocomplete.vue.d.ts +65 -0
  276. package/dist/components/BAutocomplete/index.d.mts +1 -0
  277. package/dist/components/BAutocomplete/index.d.ts +1 -0
  278. package/dist/components/BButton/BButtonGroup.vue.d.mts +1 -1
  279. package/dist/components/BButton/BButtonGroup.vue.d.ts +1 -1
  280. package/dist/components/BCard/BCard.vue.d.mts +1 -1
  281. package/dist/components/BCard/BCard.vue.d.ts +1 -1
  282. package/dist/components/BCard/BCardImg.vue.d.mts +1 -1
  283. package/dist/components/BCard/BCardImg.vue.d.ts +1 -1
  284. package/dist/components/BCollapse/BCollapse.vue.d.mts +1 -1
  285. package/dist/components/BCollapse/BCollapse.vue.d.ts +1 -1
  286. package/dist/components/BDateField/BDateField.vue.d.mts +1 -1
  287. package/dist/components/BDateField/BDateField.vue.d.ts +1 -1
  288. package/dist/components/BDateField/BDateRangeField.vue.d.mts +1 -1
  289. package/dist/components/BDateField/BDateRangeField.vue.d.ts +1 -1
  290. package/dist/components/BDateField/BTimeRangeField.vue.d.mts +4 -4
  291. package/dist/components/BDateField/BTimeRangeField.vue.d.ts +4 -4
  292. package/dist/components/BDatePicker/BDatePicker.vue.d.mts +4 -4
  293. package/dist/components/BDatePicker/BDatePicker.vue.d.ts +4 -4
  294. package/dist/components/BDatePicker/BDateRangePicker.vue.d.mts +4 -4
  295. package/dist/components/BDatePicker/BDateRangePicker.vue.d.ts +4 -4
  296. package/dist/components/BDropdown/BDropdown.vue.d.mts +2 -2
  297. package/dist/components/BDropdown/BDropdown.vue.d.ts +2 -2
  298. package/dist/components/BForm/BFormDatalistBase.vue.d.mts +5 -5
  299. package/dist/components/BForm/BFormDatalistBase.vue.d.ts +5 -5
  300. package/dist/components/BForm/BFormInvalidFeedback.vue.d.mts +1 -1
  301. package/dist/components/BForm/BFormInvalidFeedback.vue.d.ts +1 -1
  302. package/dist/components/BForm/BFormValidFeedback.vue.d.mts +1 -1
  303. package/dist/components/BForm/BFormValidFeedback.vue.d.ts +1 -1
  304. package/dist/components/BFormCheckbox/BFormCheckbox.vue.d.mts +1 -1
  305. package/dist/components/BFormCheckbox/BFormCheckbox.vue.d.ts +1 -1
  306. package/dist/components/BFormFile/BFormFile.vue.d.mts +1 -1
  307. package/dist/components/BFormFile/BFormFile.vue.d.ts +1 -1
  308. package/dist/components/BFormGroup/BFormGroup.vue.d.mts +1 -1
  309. package/dist/components/BFormGroup/BFormGroup.vue.d.ts +1 -1
  310. package/dist/components/BFormSelect/BFormSelectBase.vue.d.mts +4 -4
  311. package/dist/components/BFormSelect/BFormSelectBase.vue.d.ts +4 -4
  312. package/dist/components/BImg/BImg.vue.d.mts +1 -1
  313. package/dist/components/BImg/BImg.vue.d.ts +1 -1
  314. package/dist/components/BInputGroup/BInputGroup.vue.d.mts +1 -1
  315. package/dist/components/BInputGroup/BInputGroup.vue.d.ts +1 -1
  316. package/dist/components/BListGroup/BListGroup.vue.d.mts +1 -1
  317. package/dist/components/BListGroup/BListGroup.vue.d.ts +1 -1
  318. package/dist/components/BModal/BModal.vue.d.mts +1 -1
  319. package/dist/components/BModal/BModal.vue.d.ts +1 -1
  320. package/dist/components/BNav/BNav.vue.d.mts +1 -1
  321. package/dist/components/BNav/BNav.vue.d.ts +1 -1
  322. package/dist/components/BNav/BNavItemDropdown.vue.d.mts +13 -13
  323. package/dist/components/BNav/BNavItemDropdown.vue.d.ts +13 -13
  324. package/dist/components/BNavbar/BNavbar.vue.d.mts +1 -1
  325. package/dist/components/BNavbar/BNavbar.vue.d.ts +1 -1
  326. package/dist/components/BNavbar/BNavbarNav.vue.d.mts +1 -1
  327. package/dist/components/BNavbar/BNavbarNav.vue.d.ts +1 -1
  328. package/dist/components/BOffcanvas/BOffcanvas.vue.d.mts +1 -1
  329. package/dist/components/BOffcanvas/BOffcanvas.vue.d.ts +1 -1
  330. package/dist/components/BOtpInput/BOtpInput.vue.d.mts +32 -0
  331. package/dist/components/BOtpInput/BOtpInput.vue.d.ts +32 -0
  332. package/dist/components/BOtpInput/index.d.mts +1 -0
  333. package/dist/components/BOtpInput/index.d.ts +1 -0
  334. package/dist/components/BPlaceholder/BPlaceholder.vue.d.mts +1 -1
  335. package/dist/components/BPlaceholder/BPlaceholder.vue.d.ts +1 -1
  336. package/dist/components/BPlaceholder/BPlaceholderButton.vue.d.mts +1 -1
  337. package/dist/components/BPlaceholder/BPlaceholderButton.vue.d.ts +1 -1
  338. package/dist/components/BProgress/BProgress.vue.d.mts +1 -1
  339. package/dist/components/BProgress/BProgress.vue.d.ts +1 -1
  340. package/dist/components/BSpinner/BSpinner.vue.d.mts +2 -2
  341. package/dist/components/BSpinner/BSpinner.vue.d.ts +2 -2
  342. package/dist/components/BTable/BTable.vue.d.mts +3 -3
  343. package/dist/components/BTable/BTable.vue.d.ts +3 -3
  344. package/dist/components/BTabs/BTabs.vue.d.mts +1 -1
  345. package/dist/components/BTabs/BTabs.vue.d.ts +1 -1
  346. package/dist/components/BTimeField/BTimeField.vue.d.mts +1 -1
  347. package/dist/components/BTimeField/BTimeField.vue.d.ts +1 -1
  348. package/dist/components/index.d.mts +3 -0
  349. package/dist/components/index.d.ts +3 -0
  350. package/dist/composables/useFormSelect.d.mts +10 -4
  351. package/dist/composables/useFormSelect.d.ts +10 -4
  352. package/dist/{constants-CQ8ucyPI.mjs → constants-BSIK14yA.mjs} +1 -1
  353. package/dist/{constants-CQ8ucyPI.mjs.map → constants-BSIK14yA.mjs.map} +1 -1
  354. package/dist/{constants-DMR5FAE3.js → constants-hccBP09R.js} +1 -1
  355. package/dist/{constants-DMR5FAE3.js.map → constants-hccBP09R.js.map} +1 -1
  356. package/dist/{debounce-BfDJWP7y.js → debounce-C-5Oukxb.js} +2 -2
  357. package/dist/{debounce-BfDJWP7y.js.map → debounce-C-5Oukxb.js.map} +1 -1
  358. package/dist/{debounce-BIVtU5ek.mjs → debounce-C_wjWVGH.mjs} +2 -2
  359. package/dist/{debounce-BIVtU5ek.mjs.map → debounce-C_wjWVGH.mjs.map} +1 -1
  360. package/dist/{dist-Dn5blevd.mjs → dist-B10a-gZ8.mjs} +34 -2
  361. package/dist/{dist-Dn5blevd.mjs.map → dist-B10a-gZ8.mjs.map} +1 -1
  362. package/dist/{dist-B_c893QG.js → dist-BJ15ThEs.js} +45 -1
  363. package/dist/{dist-B_c893QG.js.map → dist-BJ15ThEs.js.map} +1 -1
  364. package/dist/{flattenFragments-DfLb4YB2.js → flattenFragments-C1WWqm25.js} +1 -1
  365. package/dist/{flattenFragments-DfLb4YB2.js.map → flattenFragments-C1WWqm25.js.map} +1 -1
  366. package/dist/{flattenFragments-B1W_x5L2.mjs → flattenFragments-ClbLQGqR.mjs} +1 -1
  367. package/dist/{flattenFragments-B1W_x5L2.mjs.map → flattenFragments-ClbLQGqR.mjs.map} +1 -1
  368. package/dist/{floating-ui.vue-CcfLuVCZ.mjs → floating-ui.vue-CAMaNcqI.mjs} +1 -1
  369. package/dist/{floating-ui.vue-CcfLuVCZ.mjs.map → floating-ui.vue-CAMaNcqI.mjs.map} +1 -1
  370. package/dist/{floating-ui.vue-B09oeNTW.js → floating-ui.vue-GXIS2sFG.js} +1 -1
  371. package/dist/{floating-ui.vue-B09oeNTW.js.map → floating-ui.vue-GXIS2sFG.js.map} +1 -1
  372. package/dist/{floatingUi-BLlCKrbj.js → floatingUi-Cs4rDXmO.js} +8 -8
  373. package/dist/{floatingUi-BLlCKrbj.js.map → floatingUi-Cs4rDXmO.js.map} +1 -1
  374. package/dist/{floatingUi-9NcUa5r7.mjs → floatingUi-DHMrP__c.mjs} +8 -8
  375. package/dist/{floatingUi-9NcUa5r7.mjs.map → floatingUi-DHMrP__c.mjs.map} +1 -1
  376. package/dist/{functions-C6AToZGR.mjs → functions-BcMenQqL.mjs} +1 -1
  377. package/dist/functions-BcMenQqL.mjs.map +1 -0
  378. package/dist/{functions-DCQKr6wc.js → functions-Bx1HDqMv.js} +1 -1
  379. package/dist/functions-Bx1HDqMv.js.map +1 -0
  380. package/dist/{getClasses-_sZDgS-l.mjs → getClasses-DaWzwT2S.mjs} +1 -1
  381. package/dist/{getClasses-_sZDgS-l.mjs.map → getClasses-DaWzwT2S.mjs.map} +1 -1
  382. package/dist/{getClasses-BQLj0MHF.js → getClasses-qqI6x4f4.js} +1 -1
  383. package/dist/{getClasses-BQLj0MHF.js.map → getClasses-qqI6x4f4.js.map} +1 -1
  384. package/dist/{getElement-D5DvkPzw.mjs → getElement-0_htvrFw.mjs} +1 -1
  385. package/dist/{getElement-D5DvkPzw.mjs.map → getElement-0_htvrFw.mjs.map} +1 -1
  386. package/dist/{getElement-BXXYfxYW.js → getElement-CxWWOx3K.js} +1 -1
  387. package/dist/{getElement-BXXYfxYW.js.map → getElement-CxWWOx3K.js.map} +1 -1
  388. package/dist/{object-CPeShLVx.js → object-BN7QwMcz.js} +1 -1
  389. package/dist/{object-CPeShLVx.js.map → object-BN7QwMcz.js.map} +1 -1
  390. package/dist/{object-B9ZW1_9f.mjs → object-CHQkkner.mjs} +1 -1
  391. package/dist/{object-B9ZW1_9f.mjs.map → object-CHQkkner.mjs.map} +1 -1
  392. package/dist/{registryAccess-B4xlltdn.mjs → registryAccess-C1Ti_nxW.mjs} +1 -1
  393. package/dist/{registryAccess-B4xlltdn.mjs.map → registryAccess-C1Ti_nxW.mjs.map} +1 -1
  394. package/dist/{registryAccess-Be_uJ4EV.js → registryAccess-D-YxwQJq.js} +1 -1
  395. package/dist/{registryAccess-Be_uJ4EV.js.map → registryAccess-D-YxwQJq.js.map} +1 -1
  396. package/dist/src/components/BAccordion/index.mjs +1 -1
  397. package/dist/src/components/BAccordion/index.umd.js +1 -1
  398. package/dist/src/components/BAlert/index.mjs +1 -1
  399. package/dist/src/components/BAlert/index.umd.js +1 -1
  400. package/dist/src/components/BApp/index.mjs +1 -1
  401. package/dist/src/components/BApp/index.umd.js +1 -1
  402. package/dist/src/components/BAspect/index.mjs +2 -0
  403. package/dist/src/components/BAspect/index.umd.js +3 -0
  404. package/dist/src/components/BAutocomplete/index.mjs +2 -0
  405. package/dist/src/components/BAutocomplete/index.umd.js +3 -0
  406. package/dist/src/components/BAvatar/index.mjs +1 -1
  407. package/dist/src/components/BAvatar/index.umd.js +1 -1
  408. package/dist/src/components/BBadge/index.mjs +1 -1
  409. package/dist/src/components/BBadge/index.umd.js +1 -1
  410. package/dist/src/components/BBreadcrumb/index.mjs +1 -1
  411. package/dist/src/components/BBreadcrumb/index.umd.js +1 -1
  412. package/dist/src/components/BButton/index.mjs +3 -3
  413. package/dist/src/components/BButton/index.umd.js +3 -3
  414. package/dist/src/components/BCard/index.mjs +2 -2
  415. package/dist/src/components/BCard/index.umd.js +2 -2
  416. package/dist/src/components/BCarousel/index.mjs +1 -1
  417. package/dist/src/components/BCarousel/index.umd.js +1 -1
  418. package/dist/src/components/BCol/index.mjs +1 -1
  419. package/dist/src/components/BCol/index.umd.js +1 -1
  420. package/dist/src/components/BCollapse/index.mjs +1 -1
  421. package/dist/src/components/BCollapse/index.umd.js +1 -1
  422. package/dist/src/components/BContainer/index.mjs +3 -3
  423. package/dist/src/components/BContainer/index.umd.js +3 -3
  424. package/dist/src/components/BDateField/index.mjs +1 -1
  425. package/dist/src/components/BDateField/index.umd.js +1 -1
  426. package/dist/src/components/BDatePicker/index.mjs +1 -1
  427. package/dist/src/components/BDatePicker/index.umd.js +1 -1
  428. package/dist/src/components/BDropdown/index.mjs +2 -2
  429. package/dist/src/components/BDropdown/index.umd.js +2 -2
  430. package/dist/src/components/BForm/index.mjs +3 -3
  431. package/dist/src/components/BForm/index.umd.js +3 -3
  432. package/dist/src/components/BFormCheckbox/index.mjs +1 -1
  433. package/dist/src/components/BFormCheckbox/index.umd.js +1 -1
  434. package/dist/src/components/BFormFile/index.mjs +1 -1
  435. package/dist/src/components/BFormFile/index.umd.js +1 -1
  436. package/dist/src/components/BFormGroup/index.mjs +1 -1
  437. package/dist/src/components/BFormGroup/index.umd.js +1 -1
  438. package/dist/src/components/BFormInput/index.mjs +1 -1
  439. package/dist/src/components/BFormInput/index.umd.js +1 -1
  440. package/dist/src/components/BFormRadio/index.mjs +1 -1
  441. package/dist/src/components/BFormRadio/index.umd.js +1 -1
  442. package/dist/src/components/BFormRating/index.mjs +1 -1
  443. package/dist/src/components/BFormRating/index.umd.js +1 -1
  444. package/dist/src/components/BFormSelect/index.mjs +2 -2
  445. package/dist/src/components/BFormSelect/index.umd.js +3 -3
  446. package/dist/src/components/BFormSpinbutton/index.mjs +1 -1
  447. package/dist/src/components/BFormSpinbutton/index.umd.js +1 -1
  448. package/dist/src/components/BFormTags/index.mjs +2 -1
  449. package/dist/src/components/BFormTags/index.umd.js +3 -2
  450. package/dist/src/components/BFormTextarea/index.mjs +1 -1
  451. package/dist/src/components/BFormTextarea/index.umd.js +1 -1
  452. package/dist/src/components/BImg/index.mjs +1 -1
  453. package/dist/src/components/BImg/index.umd.js +1 -1
  454. package/dist/src/components/BInputGroup/index.mjs +2 -1
  455. package/dist/src/components/BInputGroup/index.umd.js +3 -2
  456. package/dist/src/components/BLink/index.mjs +1 -1
  457. package/dist/src/components/BLink/index.umd.js +1 -1
  458. package/dist/src/components/BListGroup/index.mjs +1 -1
  459. package/dist/src/components/BListGroup/index.umd.js +1 -1
  460. package/dist/src/components/BModal/index.mjs +1 -1
  461. package/dist/src/components/BModal/index.umd.js +1 -1
  462. package/dist/src/components/BNav/index.mjs +1 -1
  463. package/dist/src/components/BNav/index.umd.js +1 -1
  464. package/dist/src/components/BNavbar/index.mjs +1 -1
  465. package/dist/src/components/BNavbar/index.umd.js +1 -1
  466. package/dist/src/components/BOffcanvas/index.mjs +1 -1
  467. package/dist/src/components/BOffcanvas/index.umd.js +1 -1
  468. package/dist/src/components/BOtpInput/index.mjs +2 -0
  469. package/dist/src/components/BOtpInput/index.umd.js +3 -0
  470. package/dist/src/components/BOverlay/index.mjs +1 -1
  471. package/dist/src/components/BOverlay/index.umd.js +1 -1
  472. package/dist/src/components/BPagination/index.mjs +1 -1
  473. package/dist/src/components/BPagination/index.umd.js +1 -1
  474. package/dist/src/components/BPlaceholder/index.mjs +1 -1
  475. package/dist/src/components/BPlaceholder/index.umd.js +1 -1
  476. package/dist/src/components/BPopover/index.mjs +1 -1
  477. package/dist/src/components/BPopover/index.umd.js +1 -1
  478. package/dist/src/components/BProgress/index.mjs +1 -1
  479. package/dist/src/components/BProgress/index.umd.js +1 -1
  480. package/dist/src/components/BRow/index.mjs +1 -1
  481. package/dist/src/components/BRow/index.umd.js +1 -1
  482. package/dist/src/components/BSpinner/index.mjs +1 -1
  483. package/dist/src/components/BSpinner/index.umd.js +1 -1
  484. package/dist/src/components/BTable/index.mjs +2 -2
  485. package/dist/src/components/BTable/index.umd.js +2 -2
  486. package/dist/src/components/BTabs/index.mjs +1 -1
  487. package/dist/src/components/BTabs/index.umd.js +1 -1
  488. package/dist/src/components/BTimeField/index.mjs +1 -1
  489. package/dist/src/components/BTimeField/index.umd.js +1 -1
  490. package/dist/src/components/BToast/index.mjs +1 -1
  491. package/dist/src/components/BToast/index.umd.js +1 -1
  492. package/dist/src/components/BTooltip/index.mjs +1 -1
  493. package/dist/src/components/BTooltip/index.umd.js +1 -1
  494. package/dist/src/components/index.mjs +64 -55
  495. package/dist/src/components/index.mjs.map +1 -1
  496. package/dist/src/components/index.umd.js +72 -60
  497. package/dist/src/components/index.umd.js.map +1 -1
  498. package/dist/src/composables/useColorMode/index.mjs +1 -1
  499. package/dist/src/composables/useColorMode/index.umd.js +1 -1
  500. package/dist/src/composables/useModal/index.mjs +1 -1
  501. package/dist/src/composables/useModal/index.umd.js +1 -1
  502. package/dist/src/composables/usePopover/index.mjs +2 -2
  503. package/dist/src/composables/usePopover/index.umd.js +2 -2
  504. package/dist/src/composables/useScrollLock/index.mjs +1 -1
  505. package/dist/src/composables/useScrollLock/index.umd.js +1 -1
  506. package/dist/src/composables/useScrollspy/index.mjs +2 -2
  507. package/dist/src/composables/useScrollspy/index.umd.js +2 -2
  508. package/dist/src/composables/useToast/index.mjs +1 -1
  509. package/dist/src/composables/useToast/index.umd.js +1 -1
  510. package/dist/src/composables/useToggle/index.mjs +1 -1
  511. package/dist/src/composables/useToggle/index.umd.js +1 -1
  512. package/dist/src/directives/BPopover/index.mjs +2 -2
  513. package/dist/src/directives/BPopover/index.umd.js +2 -2
  514. package/dist/src/directives/BScrollspy/index.mjs +2 -2
  515. package/dist/src/directives/BScrollspy/index.umd.js +2 -2
  516. package/dist/src/directives/BToggle/index.mjs +3 -3
  517. package/dist/src/directives/BToggle/index.umd.js +3 -3
  518. package/dist/src/directives/BTooltip/index.mjs +2 -2
  519. package/dist/src/directives/BTooltip/index.umd.js +2 -2
  520. package/dist/src/resolvers/index.mjs +1 -1
  521. package/dist/src/resolvers/index.umd.js +1 -1
  522. package/dist/src/types/index.mjs +1 -1
  523. package/dist/src/types/index.umd.js +1 -1
  524. package/dist/src/utils/index.mjs +1 -1
  525. package/dist/src/utils/index.umd.js +1 -1
  526. package/dist/{stringUtils-hUreqC0N.js → stringUtils-BwKOASdU.js} +2 -2
  527. package/dist/{stringUtils-hUreqC0N.js.map → stringUtils-BwKOASdU.js.map} +1 -1
  528. package/dist/{stringUtils-BP8rZgjn.mjs → stringUtils-CslYpDTt.mjs} +2 -2
  529. package/dist/{stringUtils-BP8rZgjn.mjs.map → stringUtils-CslYpDTt.mjs.map} +1 -1
  530. package/dist/types/BootstrapVueOptions.d.mts +7 -1
  531. package/dist/types/BootstrapVueOptions.d.ts +7 -1
  532. package/dist/types/ComponentProps.d.mts +63 -3
  533. package/dist/types/ComponentProps.d.ts +63 -3
  534. package/dist/types/ComponentSlots.d.mts +17 -0
  535. package/dist/types/ComponentSlots.d.ts +17 -0
  536. package/dist/{useAlignment-CwuLc9mf.mjs → useAlignment-BiCREohQ.mjs} +1 -1
  537. package/dist/{useAlignment-CwuLc9mf.mjs.map → useAlignment-BiCREohQ.mjs.map} +1 -1
  538. package/dist/{useAlignment-CY-mnB2p.js → useAlignment-D5xKBRez.js} +1 -1
  539. package/dist/{useAlignment-CY-mnB2p.js.map → useAlignment-D5xKBRez.js.map} +1 -1
  540. package/dist/{useAriaInvalid-BYMq9BBX.js → useAriaInvalid-CHHPHNLU.js} +1 -1
  541. package/dist/{useAriaInvalid-BYMq9BBX.js.map → useAriaInvalid-CHHPHNLU.js.map} +1 -1
  542. package/dist/{useAriaInvalid-01Dd60GC.mjs → useAriaInvalid-apOwgexm.mjs} +1 -1
  543. package/dist/{useAriaInvalid-01Dd60GC.mjs.map → useAriaInvalid-apOwgexm.mjs.map} +1 -1
  544. package/dist/{useColorVariantClasses-GuDw8a_O.mjs → useColorVariantClasses-B6Me_Kx6.mjs} +1 -1
  545. package/dist/{useColorVariantClasses-GuDw8a_O.mjs.map → useColorVariantClasses-B6Me_Kx6.mjs.map} +1 -1
  546. package/dist/{useColorVariantClasses-DVaQDVQC.js → useColorVariantClasses-CEfOwjPv.js} +1 -1
  547. package/dist/{useColorVariantClasses-DVaQDVQC.js.map → useColorVariantClasses-CEfOwjPv.js.map} +1 -1
  548. package/dist/{useCountdownHover-CaF8_TRT.js → useCountdownHover-8bwLWYoN.js} +2 -2
  549. package/dist/{useCountdownHover-CaF8_TRT.js.map → useCountdownHover-8bwLWYoN.js.map} +1 -1
  550. package/dist/{useCountdownHover-CTM7QEJ-.mjs → useCountdownHover-t9O7DHoK.mjs} +2 -2
  551. package/dist/{useCountdownHover-CTM7QEJ-.mjs.map → useCountdownHover-t9O7DHoK.mjs.map} +1 -1
  552. package/dist/{useDateField-qsRHISMn.js → useDateField-COTiu3aN.js} +8 -321
  553. package/dist/useDateField-COTiu3aN.js.map +1 -0
  554. package/dist/{useDateField-PQjSLAVI.mjs → useDateField-DmmXa0_5.mjs} +5 -258
  555. package/dist/useDateField-DmmXa0_5.mjs.map +1 -0
  556. package/dist/{useDefaults-CCWS15M8.mjs → useDefaults-BKgBaqOV.mjs} +1 -1
  557. package/dist/{useDefaults-CCWS15M8.mjs.map → useDefaults-BKgBaqOV.mjs.map} +1 -1
  558. package/dist/{useDefaults-DK6Y9lar.js → useDefaults-DsLf4iRY.js} +1 -1
  559. package/dist/{useDefaults-DK6Y9lar.js.map → useDefaults-DsLf4iRY.js.map} +1 -1
  560. package/dist/{useFormCheck-TOhpqkZ9.mjs → useFormCheck-CJvIDxcO.mjs} +3 -3
  561. package/dist/{useFormCheck-TOhpqkZ9.mjs.map → useFormCheck-CJvIDxcO.mjs.map} +1 -1
  562. package/dist/{useFormCheck-DXM9Wj2i.js → useFormCheck-UHNy_iZ0.js} +3 -3
  563. package/dist/{useFormCheck-DXM9Wj2i.js.map → useFormCheck-UHNy_iZ0.js.map} +1 -1
  564. package/dist/{useFormInput-DeJGz9t9.mjs → useFormInput-BgJCT9k_.mjs} +6 -6
  565. package/dist/{useFormInput-DeJGz9t9.mjs.map → useFormInput-BgJCT9k_.mjs.map} +1 -1
  566. package/dist/{useFormInput-AX7ikSmn.js → useFormInput-CsR38QR6.js} +6 -6
  567. package/dist/{useFormInput-AX7ikSmn.js.map → useFormInput-CsR38QR6.js.map} +1 -1
  568. package/dist/useFormSelect-CANw3ZJG.mjs +45 -0
  569. package/dist/useFormSelect-CANw3ZJG.mjs.map +1 -0
  570. package/dist/useFormSelect-nQbGZSi8.js +51 -0
  571. package/dist/useFormSelect-nQbGZSi8.js.map +1 -0
  572. package/dist/useForwardExpose-4OUimdPL.mjs +68 -0
  573. package/dist/useForwardExpose-4OUimdPL.mjs.map +1 -0
  574. package/dist/useForwardExpose-DrJOy0jY.js +80 -0
  575. package/dist/useForwardExpose-DrJOy0jY.js.map +1 -0
  576. package/dist/{useId-CCwnEmGh.mjs → useId-BKZFSYm8.mjs} +1 -1
  577. package/dist/{useId-CCwnEmGh.mjs.map → useId-BKZFSYm8.mjs.map} +1 -1
  578. package/dist/{useId-DTrBK9CE.js → useId-DHrBgM7P.js} +1 -1
  579. package/dist/{useId-DTrBK9CE.js.map → useId-DHrBgM7P.js.map} +1 -1
  580. package/dist/useKbd-IZRktImL.mjs +88 -0
  581. package/dist/useKbd-IZRktImL.mjs.map +1 -0
  582. package/dist/useKbd-ZZushx7D.js +105 -0
  583. package/dist/useKbd-ZZushx7D.js.map +1 -0
  584. package/dist/{useNumberishToStyle-uj-NwKpF.mjs → useNumberishToStyle-DEqGK1UH.mjs} +2 -2
  585. package/dist/{useNumberishToStyle-uj-NwKpF.mjs.map → useNumberishToStyle-DEqGK1UH.mjs.map} +1 -1
  586. package/dist/{useNumberishToStyle-CluQ-WT4.js → useNumberishToStyle-DFf9fokb.js} +2 -2
  587. package/dist/{useNumberishToStyle-CluQ-WT4.js.map → useNumberishToStyle-DFf9fokb.js.map} +1 -1
  588. package/dist/{useRadiusElementClasses-CyDq8RO7.mjs → useRadiusElementClasses-BlrN-T6U.mjs} +1 -1
  589. package/dist/{useRadiusElementClasses-CyDq8RO7.mjs.map → useRadiusElementClasses-BlrN-T6U.mjs.map} +1 -1
  590. package/dist/{useRadiusElementClasses-D6FwziNh.js → useRadiusElementClasses-C13_PhPM.js} +1 -1
  591. package/dist/{useRadiusElementClasses-D6FwziNh.js.map → useRadiusElementClasses-C13_PhPM.js.map} +1 -1
  592. package/dist/{useRtl-BlPLBmTe.js → useRtl-DXAooTrl.js} +1 -1
  593. package/dist/{useRtl-BlPLBmTe.js.map → useRtl-DXAooTrl.js.map} +1 -1
  594. package/dist/{useRtl-DQ5v5L9s.mjs → useRtl-DpwU_RM8.mjs} +1 -1
  595. package/dist/{useRtl-DQ5v5L9s.mjs.map → useRtl-DpwU_RM8.mjs.map} +1 -1
  596. package/dist/{useSafeScrollLock-CP2B7aXF.js → useSafeScrollLock-Bm9RxDoY.js} +2 -2
  597. package/dist/{useSafeScrollLock-CP2B7aXF.js.map → useSafeScrollLock-Bm9RxDoY.js.map} +1 -1
  598. package/dist/{useSafeScrollLock-C9UxwgUo.mjs → useSafeScrollLock-D62o8jto.mjs} +2 -2
  599. package/dist/{useSafeScrollLock-C9UxwgUo.mjs.map → useSafeScrollLock-D62o8jto.mjs.map} +1 -1
  600. package/dist/{useShowHide-BFr32vgn.js → useShowHide-BTCaeU5j.js} +5 -5
  601. package/dist/useShowHide-BTCaeU5j.js.map +1 -0
  602. package/dist/{useShowHide-wBe7O9iE.mjs → useShowHide-yAK5dhPT.mjs} +5 -5
  603. package/dist/useShowHide-yAK5dhPT.mjs.map +1 -0
  604. package/dist/{useStateClass-Cnvy2Hnm.js → useStateClass-CJ24hpkn.js} +1 -1
  605. package/dist/{useStateClass-Cnvy2Hnm.js.map → useStateClass-CJ24hpkn.js.map} +1 -1
  606. package/dist/{useStateClass-DKjpw1Pn.mjs → useStateClass-CdmlbrGn.mjs} +1 -1
  607. package/dist/{useStateClass-DKjpw1Pn.mjs.map → useStateClass-CdmlbrGn.mjs.map} +1 -1
  608. package/dist/{utils-CY6CnVNO.js → utils-CaC78Zdk.js} +2 -2
  609. package/dist/{utils-CY6CnVNO.js.map → utils-CaC78Zdk.js.map} +1 -1
  610. package/dist/{utils-C-oJqlar.mjs → utils-CgwCsk6U.mjs} +2 -2
  611. package/dist/{utils-C-oJqlar.mjs.map → utils-CgwCsk6U.mjs.map} +1 -1
  612. package/package.json +9 -1
  613. package/src/components/BAutocomplete/_autocomplete.scss +136 -0
  614. package/src/components/BOtpInput/_otp-input.scss +29 -0
  615. package/src/styles/styles.scss +2 -0
  616. package/dist/BCarousel-BH6WIvJx.js.map +0 -1
  617. package/dist/BCarousel-C3CA_wGV.mjs.map +0 -1
  618. package/dist/BDatePicker-DPtAqGyV.mjs.map +0 -1
  619. package/dist/BDatePicker-rdtRZlra.js.map +0 -1
  620. package/dist/BDropdown-C2L69dLN.js.map +0 -1
  621. package/dist/BDropdown-CKnx6hUH.mjs.map +0 -1
  622. package/dist/BFormTags-Cobh04P9.mjs.map +0 -1
  623. package/dist/BFormTags-pK9i3cOB.js.map +0 -1
  624. package/dist/BInputGroup-B8fKBtip.mjs.map +0 -1
  625. package/dist/BInputGroup-Cr0qLUds.js.map +0 -1
  626. package/dist/BModal-TCXrZEZk.mjs.map +0 -1
  627. package/dist/BModal-d3FKaKhA.js.map +0 -1
  628. package/dist/BOffcanvas-BklEA-4x.mjs.map +0 -1
  629. package/dist/BOffcanvas-YsVap-9w.js.map +0 -1
  630. package/dist/BootstrapVueOptions-CVxLmDvx.js.map +0 -1
  631. package/dist/BootstrapVueOptions-Dtdn7_AJ.mjs.map +0 -1
  632. package/dist/functions-C6AToZGR.mjs.map +0 -1
  633. package/dist/functions-DCQKr6wc.js.map +0 -1
  634. package/dist/useDateField-PQjSLAVI.mjs.map +0 -1
  635. package/dist/useDateField-qsRHISMn.js.map +0 -1
  636. package/dist/useFormSelect-DCThI8EA.js +0 -92
  637. package/dist/useFormSelect-DCThI8EA.js.map +0 -1
  638. package/dist/useFormSelect-_-ln6FKQ.mjs +0 -80
  639. package/dist/useFormSelect-_-ln6FKQ.mjs.map +0 -1
  640. package/dist/useShowHide-BFr32vgn.js.map +0 -1
  641. package/dist/useShowHide-wBe7O9iE.mjs.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"BPagination-B868NBmG.mjs","names":[],"sources":["../src/components/BPagination/BPagination.vue","../src/components/BPagination/BPagination.vue"],"sourcesContent":["<template>\n <ul\n class=\"pagination\"\n :class=\"computedWrapperClasses\"\n role=\"menubar\"\n :aria-disabled=\"props.disabled\"\n :aria-label=\"props.ariaLabel || undefined\"\n @keydown=\"handleKeyNav\"\n >\n <li\n v-for=\"(page, index) in pages\"\n :key=\"`page-${page.id}`\"\n v-bind=\"page.li\"\n ref=\"_pageElements\"\n :displayIndex=\"index\"\n >\n <span\n v-if=\"page.id === FIRST_ELLIPSIS || page.id === LAST_ELLIPSIS\"\n v-bind=\"ellipsisProps.span\"\n >\n <slot name=\"ellipsis-text\">\n {{ props.ellipsisText || '...' }}\n </slot>\n </span>\n <component\n v-bind=\"page.button\"\n :is=\"page.button.is\"\n v-else-if=\"'button' in page\"\n @click=\"page.clickHandler\"\n >\n <slot\n :name=\"page.text.name\"\n :disabled=\"page.text.disabled\"\n :page=\"page.text.page\"\n :index=\"page.text.index\"\n :active=\"page.text.active ?? false\"\n :content=\"page.text.value\"\n >\n {{ page.text.value }}\n </slot>\n </component>\n </li>\n </ul>\n</template>\n\n<script setup lang=\"ts\">\nimport {BvEvent} from '../../utils'\nimport {computed, nextTick, useTemplateRef, watch} from 'vue'\nimport {useAlignment} from '../../composables/useAlignment'\nimport {useToNumber} from '@vueuse/core'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {ClassValue} from '../../types/AnyValuedAttributes'\nimport {CODE_DOWN, CODE_LEFT, CODE_RIGHT, CODE_UP} from '../../utils/constants'\nimport {getActiveElement} from '../../utils/dom'\nimport {type BPaginationEmits, type BPaginationSlots, type BPaginationProps} from '../../types'\n\n// Threshold of limit size when we start/stop showing ellipsis\nconst ELLIPSIS_THRESHOLD = 3\n\nconst FIRST_BUTTON = -1\nconst PREV_BUTTON = -2\nconst NEXT_BUTTON = -3\nconst LAST_BUTTON = -4\nconst FIRST_ELLIPSIS = -5\nconst LAST_ELLIPSIS = -6\n\nconst _props = withDefaults(defineProps<Omit<BPaginationProps, 'modelValue'>>(), {\n align: 'start',\n ariaControls: undefined,\n ariaLabel: 'Pagination',\n disabled: false,\n ellipsisClass: undefined,\n ellipsisText: '\\u2026',\n firstClass: undefined,\n firstNumber: false,\n firstText: '\\u00AB',\n noEllipsis: false,\n noGotoEndButtons: false,\n labelFirstPage: 'Go to first page',\n labelLastPage: 'Go to last page',\n labelNextPage: 'Go to next page',\n labelPage: 'Go to page',\n labelPrevPage: 'Go to previous page',\n lastClass: undefined,\n lastNumber: false,\n lastText: '\\u00BB',\n limit: 5,\n nextClass: undefined,\n nextText: '\\u203A',\n pageClass: undefined,\n perPage: DEFAULT_PER_PAGE,\n pills: false,\n prevClass: undefined,\n prevText: '\\u2039',\n size: undefined,\n totalRows: DEFAULT_TOTAL_ROWS,\n})\nconst props = useDefaults(_props, 'BPagination')\nconst emit = defineEmits<BPaginationEmits>()\ndefineSlots<BPaginationSlots>()\n\nconst modelValue = defineModel<Exclude<BPaginationProps['modelValue'], undefined>>({\n default: 1,\n})\n\nconst pageElements = useTemplateRef('_pageElements')\n\nconst limitNumber = useToNumber(() => props.limit, {nanToZero: true, method: 'parseInt'})\nconst perPageNumber = useToNumber(() => props.perPage, {nanToZero: true, method: 'parseInt'})\nconst totalRowsNumber = useToNumber(() => props.totalRows, {nanToZero: true, method: 'parseInt'})\nconst modelValueNumber = useToNumber(modelValue, {nanToZero: true, method: 'parseInt'})\n\nconst perPageSanitized = computed(() => Math.max(perPageNumber.value || DEFAULT_PER_PAGE, 1))\nconst totalRowsSanitized = computed(() => Math.max(totalRowsNumber.value || DEFAULT_TOTAL_ROWS, 0))\n// Use Active to on page-item to denote active tab\nconst numberOfPages = computed(() => Math.ceil(totalRowsSanitized.value / perPageSanitized.value))\nconst computedFill = computed(() => props.align === 'fill')\n// This doesn't use the computedFill util because TS cannot infer that it would never be 'fill'\nconst justifyAlign = computed(() => (props.align === 'fill' ? 'start' : props.align))\n\nconst alignment = useAlignment(justifyAlign)\n\nconst isActivePage = (pageNumber: number) => pageNumber === computedModelValue.value\nconst getTabIndex = (num: number) => (props.disabled ? null : isActivePage(num) ? '0' : '-1')\n\nconst checkDisabled = (num: number) =>\n props.disabled ||\n isActivePage(num) ||\n computedModelValue.value < 1 ||\n // Check if the number is out of bounds\n num < 1 ||\n num > numberOfPages.value\n\nconst firstDisabled = computed(() => checkDisabled(1))\nconst prevDisabled = computed(() => checkDisabled(computedModelValue.value - 1))\nconst lastDisabled = computed(() => checkDisabled(numberOfPages.value))\nconst nextDisabled = computed(() => checkDisabled(computedModelValue.value + 1))\n\nconst getBaseButtonProps = ({\n page,\n classVal,\n disabled,\n slotName,\n textValue,\n tabIndex,\n label,\n position,\n isActive,\n hidden,\n isSmHidden,\n}: {\n page: number\n disabled: boolean\n classVal: ClassValue\n slotName: 'first-text' | 'prev-text' | 'next-text' | 'last-text' | 'page'\n textValue?: string\n tabIndex?: string\n label?: string\n position?: number\n isActive?: boolean\n hidden?: boolean\n isSmHidden?: boolean\n}) => ({\n li: {\n 'class': [\n 'page-item',\n {\n 'active': isActive,\n disabled,\n 'bv-d-sm-down-none': isSmHidden,\n 'flex-fill': computedFill.value,\n 'd-flex': computedFill.value && !disabled,\n },\n classVal,\n ],\n 'role': 'presentation',\n 'aria-hidden': hidden,\n },\n button: {\n 'is': disabled ? 'span' : 'button',\n 'class': ['page-link', 'text-center', {'flex-grow-1': !disabled && computedFill.value}],\n 'aria-label': label,\n 'aria-controls': props.ariaControls || undefined,\n 'aria-disabled': disabled ? true : undefined,\n 'aria-posinset': position,\n 'aria-setsize': position ? numberOfPages.value : undefined,\n 'role': 'menuitem',\n 'type': disabled ? undefined : 'button',\n 'tabindex': disabled ? undefined : tabIndex,\n },\n text: {\n name: slotName,\n active: isActive,\n value: textValue ?? page,\n page,\n disabled,\n index: page - 1,\n content: textValue ? undefined : String(page),\n },\n clickHandler: (e: Readonly<MouseEvent>) => pageClick(e, page),\n})\n\nconst getButtonProps = ({\n page,\n classVal,\n disabled,\n slotName,\n textValue,\n label,\n}: {\n page: number\n disabled: boolean\n classVal: ClassValue\n slotName: 'first-text' | 'prev-text' | 'next-text' | 'last-text' | 'page'\n textValue?: string\n label: string\n}) => getBaseButtonProps({page, classVal, disabled, slotName, textValue, label, tabIndex: '-1'})\n\nconst getPageButtonProps = (page: number, isSmHidden?: boolean) =>\n getBaseButtonProps({\n page,\n disabled: props.disabled,\n classVal: props.pageClass,\n slotName: 'page',\n label: props.labelPage ? `${props.labelPage} ${page}` : undefined,\n tabIndex: getTabIndex(page) ?? undefined,\n position: page,\n isActive: isActivePage(page),\n isSmHidden,\n })\n\nconst firstButtonProps = computed(() =>\n getButtonProps({\n page: 1,\n disabled: firstDisabled.value,\n classVal: props.firstClass,\n slotName: 'first-text',\n textValue: props.firstText,\n label: props.labelFirstPage,\n })\n)\nconst prevButtonProps = computed(() =>\n getButtonProps({\n page: Math.max(computedModelValue.value - 1, 1),\n disabled: prevDisabled.value,\n classVal: props.prevClass,\n slotName: 'prev-text',\n textValue: props.prevText,\n label: props.labelPrevPage,\n })\n)\nconst nextButtonProps = computed(() =>\n getButtonProps({\n page: Math.min(computedModelValue.value + 1, numberOfPages.value),\n disabled: nextDisabled.value,\n classVal: props.nextClass,\n slotName: 'next-text',\n textValue: props.nextText,\n label: props.labelNextPage,\n })\n)\nconst lastButtonProps = computed(() =>\n getButtonProps({\n page: numberOfPages.value,\n disabled: lastDisabled.value,\n classVal: props.lastClass,\n slotName: 'last-text',\n textValue: props.lastText,\n label: props.labelLastPage,\n })\n)\n\nconst ellipsisProps = computed(() => ({\n li: {\n class: [\n 'page-item',\n 'disabled',\n 'text-center',\n 'bv-d-sm-down-none',\n computedFill.value ? 'flex-fill' : '',\n props.ellipsisClass,\n ],\n role: 'separator',\n },\n span: {\n class: ['page-link'],\n },\n}))\n\nconst computedWrapperClasses = computed(() => [\n alignment.value,\n {\n [`pagination-${props.size}`]: props.size !== undefined,\n 'b-pagination-pills': props.pills,\n },\n])\n\nconst pagination = computed(() => ({\n pageSize: perPageSanitized.value,\n totalRows: totalRowsNumber.value,\n numberOfPages: numberOfPages.value,\n}))\n\nconst pageClick = (event: Readonly<MouseEvent>, pageNumber: number) => {\n if (pageNumber === computedModelValue.value) return\n const clickEvent = new BvEvent('page-click', {\n cancelable: true,\n target: event.target,\n })\n emit('page-click', clickEvent, pageNumber)\n\n if (clickEvent.defaultPrevented) return\n\n modelValue.value = pageNumber\n\n nextTick(() => {\n if (pageNumber === 1) {\n focusFirst()\n } else if (pageNumber === pagination.value.numberOfPages) {\n focusLast()\n }\n })\n // nextTick(() => {\n // if (isVisible(target) && un_element.contains(target)) {\n // attemptFocus(target)\n //} else {\n //this.focusCurrent()\n //}\n // })\n}\n\nconst isDisabled = (el: HTMLButtonElement) => {\n const isElement = el && el.nodeType === Node.ELEMENT_NODE\n const hasAttr = isElement ? el.hasAttribute('disabled') : null\n const hasClass = isElement && el.classList ? el.classList.contains('disabled') : false\n\n return !isElement || el.disabled || hasAttr || hasClass\n}\n\nconst getButtons = (): HTMLButtonElement[] =>\n [...(pageElements.value ?? [])]\n .sort(\n (a, b) =>\n Number.parseInt(a.getAttribute('displayIndex') || '0') -\n Number.parseInt(b.getAttribute('displayIndex') || '0')\n )\n .map((page) => page.children[0])\n .filter((el) => {\n if (el?.getAttribute('display') === 'none' || el?.tagName.toUpperCase() !== 'BUTTON') {\n return false\n }\n\n const bcr = el?.getBoundingClientRect()\n\n return !!(bcr && bcr.height > 0 && bcr.width > 0)\n })\n .map((el) => el as HTMLButtonElement)\n\nconst focusFirst = () => {\n nextTick(() => {\n const btn = getButtons().find((el) => !isDisabled(el))\n btn?.focus()\n })\n}\n\nconst focusPrev = () => {\n nextTick(() => {\n const buttons = getButtons()\n const index = buttons.indexOf(getActiveElement() as HTMLButtonElement)\n\n const button = buttons[index - 1]\n if (index > 0 && button !== undefined && !isDisabled(button)) {\n buttons[index - 1]?.focus()\n }\n })\n}\n\nconst focusLast = () => {\n nextTick(() => {\n const btn = getButtons()\n .reverse()\n .find((el) => !isDisabled(el))\n btn?.focus()\n })\n}\n\nconst focusNext = () => {\n nextTick(() => {\n const buttons = getButtons()\n const index = buttons.indexOf(getActiveElement() as HTMLButtonElement)\n const button = buttons[index + 1]\n if (index < buttons.length - 1 && button !== undefined && !isDisabled(button)) {\n buttons[index + 1]?.focus()\n }\n })\n}\n\nconst handleKeyNav = (event: KeyboardEvent) => {\n const {code, shiftKey} = event\n if (code === CODE_LEFT || code === CODE_UP) {\n event.preventDefault()\n if (shiftKey) {\n focusFirst()\n } else {\n focusPrev()\n }\n } else if (code === CODE_RIGHT || code === CODE_DOWN) {\n event.preventDefault()\n if (shiftKey) {\n focusLast()\n } else {\n focusNext()\n }\n }\n}\n\nconst computedModelValue = computed(() => {\n const page = modelValueNumber.value || 1\n return page > numberOfPages.value ? numberOfPages.value : page < 1 ? 1 : page\n})\n\nwatch(pagination, (oldValue, newValue) => {\n if (newValue.pageSize !== oldValue.pageSize && newValue.totalRows === oldValue.totalRows) {\n // If the page size changes, reset to page 1\n modelValue.value = 1\n }\n})\n\nconst noFirstButton = computed(() => (props.noGotoEndButtons && !props.firstNumber ? 1 : 0))\nconst noLastButton = computed(() => (props.noGotoEndButtons && !props.lastNumber ? 1 : 0))\nconst showFirstButton = computed(() => (noFirstButton.value ? 0 : 1))\nconst showLastButton = computed(() => (noLastButton.value ? 0 : 1))\nconst firstPage = computed(() => (props.firstNumber ? 1 : 0))\nconst lastPage = computed(() => (props.lastNumber ? 1 : 0))\nconst halfLimit = computed(() => Math.floor(limitNumber.value / 2))\n\nconst pages = computed(() => {\n const {value} = computedModelValue\n\n const els = elements.value.map((p) => {\n switch (p) {\n case FIRST_BUTTON:\n return {id: p, ...firstButtonProps.value}\n case PREV_BUTTON:\n return {id: p, ...prevButtonProps.value}\n case NEXT_BUTTON:\n return {id: p, ...nextButtonProps.value}\n case LAST_BUTTON:\n return {id: p, ...lastButtonProps.value}\n case FIRST_ELLIPSIS:\n case LAST_ELLIPSIS:\n return {id: p, ...ellipsisProps.value}\n default:\n return {id: p, ...getPageButtonProps(p)}\n }\n })\n\n if (numberOfPages.value > 3) {\n if (value > numberOfPages.value - halfLimit.value - lastPage.value) {\n const idx = 2 + showFirstButton.value\n const el = els[idx]\n if (el !== undefined) {\n els[idx] = {id: el.id, ...getPageButtonProps(el.id, true)}\n }\n }\n\n if (value <= halfLimit.value + firstPage.value) {\n const idx = els.length - (3 + showLastButton.value)\n const el = els[idx]\n if (el !== undefined) {\n els[idx] = {id: el.id, ...getPageButtonProps(el.id, true)}\n }\n }\n }\n\n return els\n})\n\nconst elements = computed(() => {\n // The idea here is to create an array of all the buttons on the page control.\n // This way we can keep the invariants in one place and the template code just\n // iterates over the array.\n\n const pages = numberOfPages.value\n const {value} = computedModelValue\n const limit = limitNumber.value\n const noEllipsis = props.noEllipsis || limit <= ELLIPSIS_THRESHOLD\n\n // The first case is when all of the page buttons fit on the control, this is\n // the simplest case and the only one that will create an array smaller than\n // Limit + 4 - noEndButtons * 2 (the [first, last,] prev, next buttons)\n\n if (pages < limit + firstPage.value + lastPage.value) {\n return [\n !firstPage.value && !noFirstButton.value ? FIRST_BUTTON : null,\n PREV_BUTTON,\n ...Array.from({length: pages}, (_, index) => index + 1),\n NEXT_BUTTON,\n !lastPage.value && !noLastButton.value ? LAST_BUTTON : null,\n ].filter((x) => x !== null) as number[]\n }\n\n // All of the remaining cases result in an array that is exactly limit + 4 - noEndButtons * 2 in length, so create\n // the array upfront and set up the beginning and end buttons, then fill the rest for each case\n\n const buttons = Array.from({length: limit + 4 - (noFirstButton.value + noLastButton.value)})\n if (!noFirstButton.value) {\n if (!firstPage.value) {\n buttons[0] = FIRST_BUTTON\n buttons[1] = PREV_BUTTON\n } else {\n buttons[0] = PREV_BUTTON\n buttons[1] = 1\n }\n } else {\n buttons[0] = PREV_BUTTON\n }\n\n if (!noLastButton.value) {\n if (!lastPage.value) {\n buttons[buttons.length - 1] = LAST_BUTTON\n buttons[buttons.length - 2] = NEXT_BUTTON\n } else {\n buttons[buttons.length - 1] = NEXT_BUTTON\n buttons[buttons.length - 2] = pages\n }\n } else {\n buttons[buttons.length - 1] = NEXT_BUTTON\n }\n\n // The next case is where the page buttons start at the begginning, with\n // no ellipsis at the beginning, but one at the end\n\n if (value <= halfLimit.value + firstPage.value) {\n for (let index = 1; index <= limit; index++) {\n buttons[index + 1 - noFirstButton.value] = index + firstPage.value\n }\n\n if (!noEllipsis) {\n buttons[buttons.length - (2 + showLastButton.value)] = LAST_ELLIPSIS\n }\n }\n\n // And then we have the case where the page buttons go up to the end, with no\n // ellipsis at the end, but one at the beginning\n\n if (value > pages - halfLimit.value - lastPage.value) {\n const start = pages - (limit - 1) - lastPage.value\n for (let index = 0; index < limit; index++) {\n buttons[index + 2 - noFirstButton.value] = start + index\n }\n\n if (!noEllipsis) {\n buttons[1 + showFirstButton.value] = FIRST_ELLIPSIS\n }\n }\n\n // Finally we have the case where we have ellipsis at both ends\n if (!buttons[2]) {\n // Is there a more elegant way to ceck that we're in the final case?\n const start = value - Math.floor(limit / 2)\n for (let index = 0; index < limit; index++) {\n buttons[index + 2 - noFirstButton.value] = start + index\n }\n\n if (!noEllipsis) {\n buttons[1 + showFirstButton.value] = FIRST_ELLIPSIS\n buttons[buttons.length - (2 + showLastButton.value)] = LAST_ELLIPSIS\n }\n }\n\n //Enable sanity check for debugging purposes\n // for (let i = 0; i < buttons.length; i++) {\n // if (!buttons[i]) {\n // // eslint-disable-next-line no-console\n // console.log(\n // `Failed: button == ${i}, limit=${limit}, pages=${pages}, firstPage=${firstPage}, lastPage=${lastPage}, value=${value}`\n // )\n // }\n // }\n\n return buttons.filter((x) => x !== null) as number[]\n})\n</script>\n\n<script lang=\"ts\">\nconst DEFAULT_PER_PAGE = 20\nconst DEFAULT_TOTAL_ROWS = 0\n</script>\n","<template>\n <ul\n class=\"pagination\"\n :class=\"computedWrapperClasses\"\n role=\"menubar\"\n :aria-disabled=\"props.disabled\"\n :aria-label=\"props.ariaLabel || undefined\"\n @keydown=\"handleKeyNav\"\n >\n <li\n v-for=\"(page, index) in pages\"\n :key=\"`page-${page.id}`\"\n v-bind=\"page.li\"\n ref=\"_pageElements\"\n :displayIndex=\"index\"\n >\n <span\n v-if=\"page.id === FIRST_ELLIPSIS || page.id === LAST_ELLIPSIS\"\n v-bind=\"ellipsisProps.span\"\n >\n <slot name=\"ellipsis-text\">\n {{ props.ellipsisText || '...' }}\n </slot>\n </span>\n <component\n v-bind=\"page.button\"\n :is=\"page.button.is\"\n v-else-if=\"'button' in page\"\n @click=\"page.clickHandler\"\n >\n <slot\n :name=\"page.text.name\"\n :disabled=\"page.text.disabled\"\n :page=\"page.text.page\"\n :index=\"page.text.index\"\n :active=\"page.text.active ?? false\"\n :content=\"page.text.value\"\n >\n {{ page.text.value }}\n </slot>\n </component>\n </li>\n </ul>\n</template>\n\n<script setup lang=\"ts\">\nimport {BvEvent} from '../../utils'\nimport {computed, nextTick, useTemplateRef, watch} from 'vue'\nimport {useAlignment} from '../../composables/useAlignment'\nimport {useToNumber} from '@vueuse/core'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {ClassValue} from '../../types/AnyValuedAttributes'\nimport {CODE_DOWN, CODE_LEFT, CODE_RIGHT, CODE_UP} from '../../utils/constants'\nimport {getActiveElement} from '../../utils/dom'\nimport {type BPaginationEmits, type BPaginationSlots, type BPaginationProps} from '../../types'\n\n// Threshold of limit size when we start/stop showing ellipsis\nconst ELLIPSIS_THRESHOLD = 3\n\nconst FIRST_BUTTON = -1\nconst PREV_BUTTON = -2\nconst NEXT_BUTTON = -3\nconst LAST_BUTTON = -4\nconst FIRST_ELLIPSIS = -5\nconst LAST_ELLIPSIS = -6\n\nconst _props = withDefaults(defineProps<Omit<BPaginationProps, 'modelValue'>>(), {\n align: 'start',\n ariaControls: undefined,\n ariaLabel: 'Pagination',\n disabled: false,\n ellipsisClass: undefined,\n ellipsisText: '\\u2026',\n firstClass: undefined,\n firstNumber: false,\n firstText: '\\u00AB',\n noEllipsis: false,\n noGotoEndButtons: false,\n labelFirstPage: 'Go to first page',\n labelLastPage: 'Go to last page',\n labelNextPage: 'Go to next page',\n labelPage: 'Go to page',\n labelPrevPage: 'Go to previous page',\n lastClass: undefined,\n lastNumber: false,\n lastText: '\\u00BB',\n limit: 5,\n nextClass: undefined,\n nextText: '\\u203A',\n pageClass: undefined,\n perPage: DEFAULT_PER_PAGE,\n pills: false,\n prevClass: undefined,\n prevText: '\\u2039',\n size: undefined,\n totalRows: DEFAULT_TOTAL_ROWS,\n})\nconst props = useDefaults(_props, 'BPagination')\nconst emit = defineEmits<BPaginationEmits>()\ndefineSlots<BPaginationSlots>()\n\nconst modelValue = defineModel<Exclude<BPaginationProps['modelValue'], undefined>>({\n default: 1,\n})\n\nconst pageElements = useTemplateRef('_pageElements')\n\nconst limitNumber = useToNumber(() => props.limit, {nanToZero: true, method: 'parseInt'})\nconst perPageNumber = useToNumber(() => props.perPage, {nanToZero: true, method: 'parseInt'})\nconst totalRowsNumber = useToNumber(() => props.totalRows, {nanToZero: true, method: 'parseInt'})\nconst modelValueNumber = useToNumber(modelValue, {nanToZero: true, method: 'parseInt'})\n\nconst perPageSanitized = computed(() => Math.max(perPageNumber.value || DEFAULT_PER_PAGE, 1))\nconst totalRowsSanitized = computed(() => Math.max(totalRowsNumber.value || DEFAULT_TOTAL_ROWS, 0))\n// Use Active to on page-item to denote active tab\nconst numberOfPages = computed(() => Math.ceil(totalRowsSanitized.value / perPageSanitized.value))\nconst computedFill = computed(() => props.align === 'fill')\n// This doesn't use the computedFill util because TS cannot infer that it would never be 'fill'\nconst justifyAlign = computed(() => (props.align === 'fill' ? 'start' : props.align))\n\nconst alignment = useAlignment(justifyAlign)\n\nconst isActivePage = (pageNumber: number) => pageNumber === computedModelValue.value\nconst getTabIndex = (num: number) => (props.disabled ? null : isActivePage(num) ? '0' : '-1')\n\nconst checkDisabled = (num: number) =>\n props.disabled ||\n isActivePage(num) ||\n computedModelValue.value < 1 ||\n // Check if the number is out of bounds\n num < 1 ||\n num > numberOfPages.value\n\nconst firstDisabled = computed(() => checkDisabled(1))\nconst prevDisabled = computed(() => checkDisabled(computedModelValue.value - 1))\nconst lastDisabled = computed(() => checkDisabled(numberOfPages.value))\nconst nextDisabled = computed(() => checkDisabled(computedModelValue.value + 1))\n\nconst getBaseButtonProps = ({\n page,\n classVal,\n disabled,\n slotName,\n textValue,\n tabIndex,\n label,\n position,\n isActive,\n hidden,\n isSmHidden,\n}: {\n page: number\n disabled: boolean\n classVal: ClassValue\n slotName: 'first-text' | 'prev-text' | 'next-text' | 'last-text' | 'page'\n textValue?: string\n tabIndex?: string\n label?: string\n position?: number\n isActive?: boolean\n hidden?: boolean\n isSmHidden?: boolean\n}) => ({\n li: {\n 'class': [\n 'page-item',\n {\n 'active': isActive,\n disabled,\n 'bv-d-sm-down-none': isSmHidden,\n 'flex-fill': computedFill.value,\n 'd-flex': computedFill.value && !disabled,\n },\n classVal,\n ],\n 'role': 'presentation',\n 'aria-hidden': hidden,\n },\n button: {\n 'is': disabled ? 'span' : 'button',\n 'class': ['page-link', 'text-center', {'flex-grow-1': !disabled && computedFill.value}],\n 'aria-label': label,\n 'aria-controls': props.ariaControls || undefined,\n 'aria-disabled': disabled ? true : undefined,\n 'aria-posinset': position,\n 'aria-setsize': position ? numberOfPages.value : undefined,\n 'role': 'menuitem',\n 'type': disabled ? undefined : 'button',\n 'tabindex': disabled ? undefined : tabIndex,\n },\n text: {\n name: slotName,\n active: isActive,\n value: textValue ?? page,\n page,\n disabled,\n index: page - 1,\n content: textValue ? undefined : String(page),\n },\n clickHandler: (e: Readonly<MouseEvent>) => pageClick(e, page),\n})\n\nconst getButtonProps = ({\n page,\n classVal,\n disabled,\n slotName,\n textValue,\n label,\n}: {\n page: number\n disabled: boolean\n classVal: ClassValue\n slotName: 'first-text' | 'prev-text' | 'next-text' | 'last-text' | 'page'\n textValue?: string\n label: string\n}) => getBaseButtonProps({page, classVal, disabled, slotName, textValue, label, tabIndex: '-1'})\n\nconst getPageButtonProps = (page: number, isSmHidden?: boolean) =>\n getBaseButtonProps({\n page,\n disabled: props.disabled,\n classVal: props.pageClass,\n slotName: 'page',\n label: props.labelPage ? `${props.labelPage} ${page}` : undefined,\n tabIndex: getTabIndex(page) ?? undefined,\n position: page,\n isActive: isActivePage(page),\n isSmHidden,\n })\n\nconst firstButtonProps = computed(() =>\n getButtonProps({\n page: 1,\n disabled: firstDisabled.value,\n classVal: props.firstClass,\n slotName: 'first-text',\n textValue: props.firstText,\n label: props.labelFirstPage,\n })\n)\nconst prevButtonProps = computed(() =>\n getButtonProps({\n page: Math.max(computedModelValue.value - 1, 1),\n disabled: prevDisabled.value,\n classVal: props.prevClass,\n slotName: 'prev-text',\n textValue: props.prevText,\n label: props.labelPrevPage,\n })\n)\nconst nextButtonProps = computed(() =>\n getButtonProps({\n page: Math.min(computedModelValue.value + 1, numberOfPages.value),\n disabled: nextDisabled.value,\n classVal: props.nextClass,\n slotName: 'next-text',\n textValue: props.nextText,\n label: props.labelNextPage,\n })\n)\nconst lastButtonProps = computed(() =>\n getButtonProps({\n page: numberOfPages.value,\n disabled: lastDisabled.value,\n classVal: props.lastClass,\n slotName: 'last-text',\n textValue: props.lastText,\n label: props.labelLastPage,\n })\n)\n\nconst ellipsisProps = computed(() => ({\n li: {\n class: [\n 'page-item',\n 'disabled',\n 'text-center',\n 'bv-d-sm-down-none',\n computedFill.value ? 'flex-fill' : '',\n props.ellipsisClass,\n ],\n role: 'separator',\n },\n span: {\n class: ['page-link'],\n },\n}))\n\nconst computedWrapperClasses = computed(() => [\n alignment.value,\n {\n [`pagination-${props.size}`]: props.size !== undefined,\n 'b-pagination-pills': props.pills,\n },\n])\n\nconst pagination = computed(() => ({\n pageSize: perPageSanitized.value,\n totalRows: totalRowsNumber.value,\n numberOfPages: numberOfPages.value,\n}))\n\nconst pageClick = (event: Readonly<MouseEvent>, pageNumber: number) => {\n if (pageNumber === computedModelValue.value) return\n const clickEvent = new BvEvent('page-click', {\n cancelable: true,\n target: event.target,\n })\n emit('page-click', clickEvent, pageNumber)\n\n if (clickEvent.defaultPrevented) return\n\n modelValue.value = pageNumber\n\n nextTick(() => {\n if (pageNumber === 1) {\n focusFirst()\n } else if (pageNumber === pagination.value.numberOfPages) {\n focusLast()\n }\n })\n // nextTick(() => {\n // if (isVisible(target) && un_element.contains(target)) {\n // attemptFocus(target)\n //} else {\n //this.focusCurrent()\n //}\n // })\n}\n\nconst isDisabled = (el: HTMLButtonElement) => {\n const isElement = el && el.nodeType === Node.ELEMENT_NODE\n const hasAttr = isElement ? el.hasAttribute('disabled') : null\n const hasClass = isElement && el.classList ? el.classList.contains('disabled') : false\n\n return !isElement || el.disabled || hasAttr || hasClass\n}\n\nconst getButtons = (): HTMLButtonElement[] =>\n [...(pageElements.value ?? [])]\n .sort(\n (a, b) =>\n Number.parseInt(a.getAttribute('displayIndex') || '0') -\n Number.parseInt(b.getAttribute('displayIndex') || '0')\n )\n .map((page) => page.children[0])\n .filter((el) => {\n if (el?.getAttribute('display') === 'none' || el?.tagName.toUpperCase() !== 'BUTTON') {\n return false\n }\n\n const bcr = el?.getBoundingClientRect()\n\n return !!(bcr && bcr.height > 0 && bcr.width > 0)\n })\n .map((el) => el as HTMLButtonElement)\n\nconst focusFirst = () => {\n nextTick(() => {\n const btn = getButtons().find((el) => !isDisabled(el))\n btn?.focus()\n })\n}\n\nconst focusPrev = () => {\n nextTick(() => {\n const buttons = getButtons()\n const index = buttons.indexOf(getActiveElement() as HTMLButtonElement)\n\n const button = buttons[index - 1]\n if (index > 0 && button !== undefined && !isDisabled(button)) {\n buttons[index - 1]?.focus()\n }\n })\n}\n\nconst focusLast = () => {\n nextTick(() => {\n const btn = getButtons()\n .reverse()\n .find((el) => !isDisabled(el))\n btn?.focus()\n })\n}\n\nconst focusNext = () => {\n nextTick(() => {\n const buttons = getButtons()\n const index = buttons.indexOf(getActiveElement() as HTMLButtonElement)\n const button = buttons[index + 1]\n if (index < buttons.length - 1 && button !== undefined && !isDisabled(button)) {\n buttons[index + 1]?.focus()\n }\n })\n}\n\nconst handleKeyNav = (event: KeyboardEvent) => {\n const {code, shiftKey} = event\n if (code === CODE_LEFT || code === CODE_UP) {\n event.preventDefault()\n if (shiftKey) {\n focusFirst()\n } else {\n focusPrev()\n }\n } else if (code === CODE_RIGHT || code === CODE_DOWN) {\n event.preventDefault()\n if (shiftKey) {\n focusLast()\n } else {\n focusNext()\n }\n }\n}\n\nconst computedModelValue = computed(() => {\n const page = modelValueNumber.value || 1\n return page > numberOfPages.value ? numberOfPages.value : page < 1 ? 1 : page\n})\n\nwatch(pagination, (oldValue, newValue) => {\n if (newValue.pageSize !== oldValue.pageSize && newValue.totalRows === oldValue.totalRows) {\n // If the page size changes, reset to page 1\n modelValue.value = 1\n }\n})\n\nconst noFirstButton = computed(() => (props.noGotoEndButtons && !props.firstNumber ? 1 : 0))\nconst noLastButton = computed(() => (props.noGotoEndButtons && !props.lastNumber ? 1 : 0))\nconst showFirstButton = computed(() => (noFirstButton.value ? 0 : 1))\nconst showLastButton = computed(() => (noLastButton.value ? 0 : 1))\nconst firstPage = computed(() => (props.firstNumber ? 1 : 0))\nconst lastPage = computed(() => (props.lastNumber ? 1 : 0))\nconst halfLimit = computed(() => Math.floor(limitNumber.value / 2))\n\nconst pages = computed(() => {\n const {value} = computedModelValue\n\n const els = elements.value.map((p) => {\n switch (p) {\n case FIRST_BUTTON:\n return {id: p, ...firstButtonProps.value}\n case PREV_BUTTON:\n return {id: p, ...prevButtonProps.value}\n case NEXT_BUTTON:\n return {id: p, ...nextButtonProps.value}\n case LAST_BUTTON:\n return {id: p, ...lastButtonProps.value}\n case FIRST_ELLIPSIS:\n case LAST_ELLIPSIS:\n return {id: p, ...ellipsisProps.value}\n default:\n return {id: p, ...getPageButtonProps(p)}\n }\n })\n\n if (numberOfPages.value > 3) {\n if (value > numberOfPages.value - halfLimit.value - lastPage.value) {\n const idx = 2 + showFirstButton.value\n const el = els[idx]\n if (el !== undefined) {\n els[idx] = {id: el.id, ...getPageButtonProps(el.id, true)}\n }\n }\n\n if (value <= halfLimit.value + firstPage.value) {\n const idx = els.length - (3 + showLastButton.value)\n const el = els[idx]\n if (el !== undefined) {\n els[idx] = {id: el.id, ...getPageButtonProps(el.id, true)}\n }\n }\n }\n\n return els\n})\n\nconst elements = computed(() => {\n // The idea here is to create an array of all the buttons on the page control.\n // This way we can keep the invariants in one place and the template code just\n // iterates over the array.\n\n const pages = numberOfPages.value\n const {value} = computedModelValue\n const limit = limitNumber.value\n const noEllipsis = props.noEllipsis || limit <= ELLIPSIS_THRESHOLD\n\n // The first case is when all of the page buttons fit on the control, this is\n // the simplest case and the only one that will create an array smaller than\n // Limit + 4 - noEndButtons * 2 (the [first, last,] prev, next buttons)\n\n if (pages < limit + firstPage.value + lastPage.value) {\n return [\n !firstPage.value && !noFirstButton.value ? FIRST_BUTTON : null,\n PREV_BUTTON,\n ...Array.from({length: pages}, (_, index) => index + 1),\n NEXT_BUTTON,\n !lastPage.value && !noLastButton.value ? LAST_BUTTON : null,\n ].filter((x) => x !== null) as number[]\n }\n\n // All of the remaining cases result in an array that is exactly limit + 4 - noEndButtons * 2 in length, so create\n // the array upfront and set up the beginning and end buttons, then fill the rest for each case\n\n const buttons = Array.from({length: limit + 4 - (noFirstButton.value + noLastButton.value)})\n if (!noFirstButton.value) {\n if (!firstPage.value) {\n buttons[0] = FIRST_BUTTON\n buttons[1] = PREV_BUTTON\n } else {\n buttons[0] = PREV_BUTTON\n buttons[1] = 1\n }\n } else {\n buttons[0] = PREV_BUTTON\n }\n\n if (!noLastButton.value) {\n if (!lastPage.value) {\n buttons[buttons.length - 1] = LAST_BUTTON\n buttons[buttons.length - 2] = NEXT_BUTTON\n } else {\n buttons[buttons.length - 1] = NEXT_BUTTON\n buttons[buttons.length - 2] = pages\n }\n } else {\n buttons[buttons.length - 1] = NEXT_BUTTON\n }\n\n // The next case is where the page buttons start at the begginning, with\n // no ellipsis at the beginning, but one at the end\n\n if (value <= halfLimit.value + firstPage.value) {\n for (let index = 1; index <= limit; index++) {\n buttons[index + 1 - noFirstButton.value] = index + firstPage.value\n }\n\n if (!noEllipsis) {\n buttons[buttons.length - (2 + showLastButton.value)] = LAST_ELLIPSIS\n }\n }\n\n // And then we have the case where the page buttons go up to the end, with no\n // ellipsis at the end, but one at the beginning\n\n if (value > pages - halfLimit.value - lastPage.value) {\n const start = pages - (limit - 1) - lastPage.value\n for (let index = 0; index < limit; index++) {\n buttons[index + 2 - noFirstButton.value] = start + index\n }\n\n if (!noEllipsis) {\n buttons[1 + showFirstButton.value] = FIRST_ELLIPSIS\n }\n }\n\n // Finally we have the case where we have ellipsis at both ends\n if (!buttons[2]) {\n // Is there a more elegant way to ceck that we're in the final case?\n const start = value - Math.floor(limit / 2)\n for (let index = 0; index < limit; index++) {\n buttons[index + 2 - noFirstButton.value] = start + index\n }\n\n if (!noEllipsis) {\n buttons[1 + showFirstButton.value] = FIRST_ELLIPSIS\n buttons[buttons.length - (2 + showLastButton.value)] = LAST_ELLIPSIS\n }\n }\n\n //Enable sanity check for debugging purposes\n // for (let i = 0; i < buttons.length; i++) {\n // if (!buttons[i]) {\n // // eslint-disable-next-line no-console\n // console.log(\n // `Failed: button == ${i}, limit=${limit}, pages=${pages}, firstPage=${firstPage}, lastPage=${lastPage}, value=${value}`\n // )\n // }\n // }\n\n return buttons.filter((x) => x !== null) as number[]\n})\n</script>\n\n<script lang=\"ts\">\nconst DEFAULT_PER_PAGE = 20\nconst DEFAULT_TOTAL_ROWS = 0\n</script>\n"],"mappings":"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"}
1
+ {"version":3,"file":"BPagination-CvoSN1He.mjs","names":[],"sources":["../src/components/BPagination/BPagination.vue","../src/components/BPagination/BPagination.vue"],"sourcesContent":["<template>\n <ul\n class=\"pagination\"\n :class=\"computedWrapperClasses\"\n role=\"menubar\"\n :aria-disabled=\"props.disabled\"\n :aria-label=\"props.ariaLabel || undefined\"\n @keydown=\"handleKeyNav\"\n >\n <li\n v-for=\"(page, index) in pages\"\n :key=\"`page-${page.id}`\"\n v-bind=\"page.li\"\n ref=\"_pageElements\"\n :displayIndex=\"index\"\n >\n <span\n v-if=\"page.id === FIRST_ELLIPSIS || page.id === LAST_ELLIPSIS\"\n v-bind=\"ellipsisProps.span\"\n >\n <slot name=\"ellipsis-text\">\n {{ props.ellipsisText || '...' }}\n </slot>\n </span>\n <component\n v-bind=\"page.button\"\n :is=\"page.button.is\"\n v-else-if=\"'button' in page\"\n @click=\"page.clickHandler\"\n >\n <slot\n :name=\"page.text.name\"\n :disabled=\"page.text.disabled\"\n :page=\"page.text.page\"\n :index=\"page.text.index\"\n :active=\"page.text.active ?? false\"\n :content=\"page.text.value\"\n >\n {{ page.text.value }}\n </slot>\n </component>\n </li>\n </ul>\n</template>\n\n<script setup lang=\"ts\">\nimport {BvEvent} from '../../utils'\nimport {computed, nextTick, useTemplateRef, watch} from 'vue'\nimport {useAlignment} from '../../composables/useAlignment'\nimport {useToNumber} from '@vueuse/core'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {ClassValue} from '../../types/AnyValuedAttributes'\nimport {CODE_DOWN, CODE_LEFT, CODE_RIGHT, CODE_UP} from '../../utils/constants'\nimport {getActiveElement} from '../../utils/dom'\nimport {type BPaginationEmits, type BPaginationSlots, type BPaginationProps} from '../../types'\n\n// Threshold of limit size when we start/stop showing ellipsis\nconst ELLIPSIS_THRESHOLD = 3\n\nconst FIRST_BUTTON = -1\nconst PREV_BUTTON = -2\nconst NEXT_BUTTON = -3\nconst LAST_BUTTON = -4\nconst FIRST_ELLIPSIS = -5\nconst LAST_ELLIPSIS = -6\n\nconst _props = withDefaults(defineProps<Omit<BPaginationProps, 'modelValue'>>(), {\n align: 'start',\n ariaControls: undefined,\n ariaLabel: 'Pagination',\n disabled: false,\n ellipsisClass: undefined,\n ellipsisText: '\\u2026',\n firstClass: undefined,\n firstNumber: false,\n firstText: '\\u00AB',\n noEllipsis: false,\n noGotoEndButtons: false,\n labelFirstPage: 'Go to first page',\n labelLastPage: 'Go to last page',\n labelNextPage: 'Go to next page',\n labelPage: 'Go to page',\n labelPrevPage: 'Go to previous page',\n lastClass: undefined,\n lastNumber: false,\n lastText: '\\u00BB',\n limit: 5,\n nextClass: undefined,\n nextText: '\\u203A',\n pageClass: undefined,\n perPage: DEFAULT_PER_PAGE,\n pills: false,\n prevClass: undefined,\n prevText: '\\u2039',\n size: undefined,\n totalRows: DEFAULT_TOTAL_ROWS,\n})\nconst props = useDefaults(_props, 'BPagination')\nconst emit = defineEmits<BPaginationEmits>()\ndefineSlots<BPaginationSlots>()\n\nconst modelValue = defineModel<Exclude<BPaginationProps['modelValue'], undefined>>({\n default: 1,\n})\n\nconst pageElements = useTemplateRef('_pageElements')\n\nconst limitNumber = useToNumber(() => props.limit, {nanToZero: true, method: 'parseInt'})\nconst perPageNumber = useToNumber(() => props.perPage, {nanToZero: true, method: 'parseInt'})\nconst totalRowsNumber = useToNumber(() => props.totalRows, {nanToZero: true, method: 'parseInt'})\nconst modelValueNumber = useToNumber(modelValue, {nanToZero: true, method: 'parseInt'})\n\nconst perPageSanitized = computed(() => Math.max(perPageNumber.value || DEFAULT_PER_PAGE, 1))\nconst totalRowsSanitized = computed(() => Math.max(totalRowsNumber.value || DEFAULT_TOTAL_ROWS, 0))\n// Use Active to on page-item to denote active tab\nconst numberOfPages = computed(() => Math.ceil(totalRowsSanitized.value / perPageSanitized.value))\nconst computedFill = computed(() => props.align === 'fill')\n// This doesn't use the computedFill util because TS cannot infer that it would never be 'fill'\nconst justifyAlign = computed(() => (props.align === 'fill' ? 'start' : props.align))\n\nconst alignment = useAlignment(justifyAlign)\n\nconst isActivePage = (pageNumber: number) => pageNumber === computedModelValue.value\nconst getTabIndex = (num: number) => (props.disabled ? null : isActivePage(num) ? '0' : '-1')\n\nconst checkDisabled = (num: number) =>\n props.disabled ||\n isActivePage(num) ||\n computedModelValue.value < 1 ||\n // Check if the number is out of bounds\n num < 1 ||\n num > numberOfPages.value\n\nconst firstDisabled = computed(() => checkDisabled(1))\nconst prevDisabled = computed(() => checkDisabled(computedModelValue.value - 1))\nconst lastDisabled = computed(() => checkDisabled(numberOfPages.value))\nconst nextDisabled = computed(() => checkDisabled(computedModelValue.value + 1))\n\nconst getBaseButtonProps = ({\n page,\n classVal,\n disabled,\n slotName,\n textValue,\n tabIndex,\n label,\n position,\n isActive,\n hidden,\n isSmHidden,\n}: {\n page: number\n disabled: boolean\n classVal: ClassValue\n slotName: 'first-text' | 'prev-text' | 'next-text' | 'last-text' | 'page'\n textValue?: string\n tabIndex?: string\n label?: string\n position?: number\n isActive?: boolean\n hidden?: boolean\n isSmHidden?: boolean\n}) => ({\n li: {\n 'class': [\n 'page-item',\n {\n 'active': isActive,\n disabled,\n 'bv-d-sm-down-none': isSmHidden,\n 'flex-fill': computedFill.value,\n 'd-flex': computedFill.value && !disabled,\n },\n classVal,\n ],\n 'role': 'presentation',\n 'aria-hidden': hidden,\n },\n button: {\n 'is': disabled ? 'span' : 'button',\n 'class': ['page-link', 'text-center', {'flex-grow-1': !disabled && computedFill.value}],\n 'aria-label': label,\n 'aria-controls': props.ariaControls || undefined,\n 'aria-disabled': disabled ? true : undefined,\n 'aria-posinset': position,\n 'aria-setsize': position ? numberOfPages.value : undefined,\n 'role': 'menuitem',\n 'type': disabled ? undefined : 'button',\n 'tabindex': disabled ? undefined : tabIndex,\n },\n text: {\n name: slotName,\n active: isActive,\n value: textValue ?? page,\n page,\n disabled,\n index: page - 1,\n content: textValue ? undefined : String(page),\n },\n clickHandler: (e: Readonly<MouseEvent>) => pageClick(e, page),\n})\n\nconst getButtonProps = ({\n page,\n classVal,\n disabled,\n slotName,\n textValue,\n label,\n}: {\n page: number\n disabled: boolean\n classVal: ClassValue\n slotName: 'first-text' | 'prev-text' | 'next-text' | 'last-text' | 'page'\n textValue?: string\n label: string\n}) => getBaseButtonProps({page, classVal, disabled, slotName, textValue, label, tabIndex: '-1'})\n\nconst getPageButtonProps = (page: number, isSmHidden?: boolean) =>\n getBaseButtonProps({\n page,\n disabled: props.disabled,\n classVal: props.pageClass,\n slotName: 'page',\n label: props.labelPage ? `${props.labelPage} ${page}` : undefined,\n tabIndex: getTabIndex(page) ?? undefined,\n position: page,\n isActive: isActivePage(page),\n isSmHidden,\n })\n\nconst firstButtonProps = computed(() =>\n getButtonProps({\n page: 1,\n disabled: firstDisabled.value,\n classVal: props.firstClass,\n slotName: 'first-text',\n textValue: props.firstText,\n label: props.labelFirstPage,\n })\n)\nconst prevButtonProps = computed(() =>\n getButtonProps({\n page: Math.max(computedModelValue.value - 1, 1),\n disabled: prevDisabled.value,\n classVal: props.prevClass,\n slotName: 'prev-text',\n textValue: props.prevText,\n label: props.labelPrevPage,\n })\n)\nconst nextButtonProps = computed(() =>\n getButtonProps({\n page: Math.min(computedModelValue.value + 1, numberOfPages.value),\n disabled: nextDisabled.value,\n classVal: props.nextClass,\n slotName: 'next-text',\n textValue: props.nextText,\n label: props.labelNextPage,\n })\n)\nconst lastButtonProps = computed(() =>\n getButtonProps({\n page: numberOfPages.value,\n disabled: lastDisabled.value,\n classVal: props.lastClass,\n slotName: 'last-text',\n textValue: props.lastText,\n label: props.labelLastPage,\n })\n)\n\nconst ellipsisProps = computed(() => ({\n li: {\n class: [\n 'page-item',\n 'disabled',\n 'text-center',\n 'bv-d-sm-down-none',\n computedFill.value ? 'flex-fill' : '',\n props.ellipsisClass,\n ],\n role: 'separator',\n },\n span: {\n class: ['page-link'],\n },\n}))\n\nconst computedWrapperClasses = computed(() => [\n alignment.value,\n {\n [`pagination-${props.size}`]: props.size !== undefined,\n 'b-pagination-pills': props.pills,\n },\n])\n\nconst pagination = computed(() => ({\n pageSize: perPageSanitized.value,\n totalRows: totalRowsNumber.value,\n numberOfPages: numberOfPages.value,\n}))\n\nconst pageClick = (event: Readonly<MouseEvent>, pageNumber: number) => {\n if (pageNumber === computedModelValue.value) return\n const clickEvent = new BvEvent('page-click', {\n cancelable: true,\n target: event.target,\n })\n emit('page-click', clickEvent, pageNumber)\n\n if (clickEvent.defaultPrevented) return\n\n modelValue.value = pageNumber\n\n nextTick(() => {\n if (pageNumber === 1) {\n focusFirst()\n } else if (pageNumber === pagination.value.numberOfPages) {\n focusLast()\n }\n })\n // nextTick(() => {\n // if (isVisible(target) && un_element.contains(target)) {\n // attemptFocus(target)\n //} else {\n //this.focusCurrent()\n //}\n // })\n}\n\nconst isDisabled = (el: HTMLButtonElement) => {\n const isElement = el && el.nodeType === Node.ELEMENT_NODE\n const hasAttr = isElement ? el.hasAttribute('disabled') : null\n const hasClass = isElement && el.classList ? el.classList.contains('disabled') : false\n\n return !isElement || el.disabled || hasAttr || hasClass\n}\n\nconst getButtons = (): HTMLButtonElement[] =>\n [...(pageElements.value ?? [])]\n .sort(\n (a, b) =>\n Number.parseInt(a.getAttribute('displayIndex') || '0') -\n Number.parseInt(b.getAttribute('displayIndex') || '0')\n )\n .map((page) => page.children[0])\n .filter((el) => {\n if (el?.getAttribute('display') === 'none' || el?.tagName.toUpperCase() !== 'BUTTON') {\n return false\n }\n\n const bcr = el?.getBoundingClientRect()\n\n return !!(bcr && bcr.height > 0 && bcr.width > 0)\n })\n .map((el) => el as HTMLButtonElement)\n\nconst focusFirst = () => {\n nextTick(() => {\n const btn = getButtons().find((el) => !isDisabled(el))\n btn?.focus()\n })\n}\n\nconst focusPrev = () => {\n nextTick(() => {\n const buttons = getButtons()\n const index = buttons.indexOf(getActiveElement() as HTMLButtonElement)\n\n const button = buttons[index - 1]\n if (index > 0 && button !== undefined && !isDisabled(button)) {\n buttons[index - 1]?.focus()\n }\n })\n}\n\nconst focusLast = () => {\n nextTick(() => {\n const btn = getButtons()\n .reverse()\n .find((el) => !isDisabled(el))\n btn?.focus()\n })\n}\n\nconst focusNext = () => {\n nextTick(() => {\n const buttons = getButtons()\n const index = buttons.indexOf(getActiveElement() as HTMLButtonElement)\n const button = buttons[index + 1]\n if (index < buttons.length - 1 && button !== undefined && !isDisabled(button)) {\n buttons[index + 1]?.focus()\n }\n })\n}\n\nconst handleKeyNav = (event: KeyboardEvent) => {\n const {code, shiftKey} = event\n if (code === CODE_LEFT || code === CODE_UP) {\n event.preventDefault()\n if (shiftKey) {\n focusFirst()\n } else {\n focusPrev()\n }\n } else if (code === CODE_RIGHT || code === CODE_DOWN) {\n event.preventDefault()\n if (shiftKey) {\n focusLast()\n } else {\n focusNext()\n }\n }\n}\n\nconst computedModelValue = computed(() => {\n const page = modelValueNumber.value || 1\n return page > numberOfPages.value ? numberOfPages.value : page < 1 ? 1 : page\n})\n\nwatch(pagination, (oldValue, newValue) => {\n if (newValue.pageSize !== oldValue.pageSize && newValue.totalRows === oldValue.totalRows) {\n // If the page size changes, reset to page 1\n modelValue.value = 1\n }\n})\n\nconst noFirstButton = computed(() => (props.noGotoEndButtons && !props.firstNumber ? 1 : 0))\nconst noLastButton = computed(() => (props.noGotoEndButtons && !props.lastNumber ? 1 : 0))\nconst showFirstButton = computed(() => (noFirstButton.value ? 0 : 1))\nconst showLastButton = computed(() => (noLastButton.value ? 0 : 1))\nconst firstPage = computed(() => (props.firstNumber ? 1 : 0))\nconst lastPage = computed(() => (props.lastNumber ? 1 : 0))\nconst halfLimit = computed(() => Math.floor(limitNumber.value / 2))\n\nconst pages = computed(() => {\n const {value} = computedModelValue\n\n const els = elements.value.map((p) => {\n switch (p) {\n case FIRST_BUTTON:\n return {id: p, ...firstButtonProps.value}\n case PREV_BUTTON:\n return {id: p, ...prevButtonProps.value}\n case NEXT_BUTTON:\n return {id: p, ...nextButtonProps.value}\n case LAST_BUTTON:\n return {id: p, ...lastButtonProps.value}\n case FIRST_ELLIPSIS:\n case LAST_ELLIPSIS:\n return {id: p, ...ellipsisProps.value}\n default:\n return {id: p, ...getPageButtonProps(p)}\n }\n })\n\n if (numberOfPages.value > 3) {\n if (value > numberOfPages.value - halfLimit.value - lastPage.value) {\n const idx = 2 + showFirstButton.value\n const el = els[idx]\n if (el !== undefined) {\n els[idx] = {id: el.id, ...getPageButtonProps(el.id, true)}\n }\n }\n\n if (value <= halfLimit.value + firstPage.value) {\n const idx = els.length - (3 + showLastButton.value)\n const el = els[idx]\n if (el !== undefined) {\n els[idx] = {id: el.id, ...getPageButtonProps(el.id, true)}\n }\n }\n }\n\n return els\n})\n\nconst elements = computed(() => {\n // The idea here is to create an array of all the buttons on the page control.\n // This way we can keep the invariants in one place and the template code just\n // iterates over the array.\n\n const pages = numberOfPages.value\n const {value} = computedModelValue\n const limit = limitNumber.value\n const noEllipsis = props.noEllipsis || limit <= ELLIPSIS_THRESHOLD\n\n // The first case is when all of the page buttons fit on the control, this is\n // the simplest case and the only one that will create an array smaller than\n // Limit + 4 - noEndButtons * 2 (the [first, last,] prev, next buttons)\n\n if (pages < limit + firstPage.value + lastPage.value) {\n return [\n !firstPage.value && !noFirstButton.value ? FIRST_BUTTON : null,\n PREV_BUTTON,\n ...Array.from({length: pages}, (_, index) => index + 1),\n NEXT_BUTTON,\n !lastPage.value && !noLastButton.value ? LAST_BUTTON : null,\n ].filter((x) => x !== null) as number[]\n }\n\n // All of the remaining cases result in an array that is exactly limit + 4 - noEndButtons * 2 in length, so create\n // the array upfront and set up the beginning and end buttons, then fill the rest for each case\n\n const buttons = Array.from({length: limit + 4 - (noFirstButton.value + noLastButton.value)})\n if (!noFirstButton.value) {\n if (!firstPage.value) {\n buttons[0] = FIRST_BUTTON\n buttons[1] = PREV_BUTTON\n } else {\n buttons[0] = PREV_BUTTON\n buttons[1] = 1\n }\n } else {\n buttons[0] = PREV_BUTTON\n }\n\n if (!noLastButton.value) {\n if (!lastPage.value) {\n buttons[buttons.length - 1] = LAST_BUTTON\n buttons[buttons.length - 2] = NEXT_BUTTON\n } else {\n buttons[buttons.length - 1] = NEXT_BUTTON\n buttons[buttons.length - 2] = pages\n }\n } else {\n buttons[buttons.length - 1] = NEXT_BUTTON\n }\n\n // The next case is where the page buttons start at the begginning, with\n // no ellipsis at the beginning, but one at the end\n\n if (value <= halfLimit.value + firstPage.value) {\n for (let index = 1; index <= limit; index++) {\n buttons[index + 1 - noFirstButton.value] = index + firstPage.value\n }\n\n if (!noEllipsis) {\n buttons[buttons.length - (2 + showLastButton.value)] = LAST_ELLIPSIS\n }\n }\n\n // And then we have the case where the page buttons go up to the end, with no\n // ellipsis at the end, but one at the beginning\n\n if (value > pages - halfLimit.value - lastPage.value) {\n const start = pages - (limit - 1) - lastPage.value\n for (let index = 0; index < limit; index++) {\n buttons[index + 2 - noFirstButton.value] = start + index\n }\n\n if (!noEllipsis) {\n buttons[1 + showFirstButton.value] = FIRST_ELLIPSIS\n }\n }\n\n // Finally we have the case where we have ellipsis at both ends\n if (!buttons[2]) {\n // Is there a more elegant way to ceck that we're in the final case?\n const start = value - Math.floor(limit / 2)\n for (let index = 0; index < limit; index++) {\n buttons[index + 2 - noFirstButton.value] = start + index\n }\n\n if (!noEllipsis) {\n buttons[1 + showFirstButton.value] = FIRST_ELLIPSIS\n buttons[buttons.length - (2 + showLastButton.value)] = LAST_ELLIPSIS\n }\n }\n\n //Enable sanity check for debugging purposes\n // for (let i = 0; i < buttons.length; i++) {\n // if (!buttons[i]) {\n // // eslint-disable-next-line no-console\n // console.log(\n // `Failed: button == ${i}, limit=${limit}, pages=${pages}, firstPage=${firstPage}, lastPage=${lastPage}, value=${value}`\n // )\n // }\n // }\n\n return buttons.filter((x) => x !== null) as number[]\n})\n</script>\n\n<script lang=\"ts\">\nconst DEFAULT_PER_PAGE = 20\nconst DEFAULT_TOTAL_ROWS = 0\n</script>\n","<template>\n <ul\n class=\"pagination\"\n :class=\"computedWrapperClasses\"\n role=\"menubar\"\n :aria-disabled=\"props.disabled\"\n :aria-label=\"props.ariaLabel || undefined\"\n @keydown=\"handleKeyNav\"\n >\n <li\n v-for=\"(page, index) in pages\"\n :key=\"`page-${page.id}`\"\n v-bind=\"page.li\"\n ref=\"_pageElements\"\n :displayIndex=\"index\"\n >\n <span\n v-if=\"page.id === FIRST_ELLIPSIS || page.id === LAST_ELLIPSIS\"\n v-bind=\"ellipsisProps.span\"\n >\n <slot name=\"ellipsis-text\">\n {{ props.ellipsisText || '...' }}\n </slot>\n </span>\n <component\n v-bind=\"page.button\"\n :is=\"page.button.is\"\n v-else-if=\"'button' in page\"\n @click=\"page.clickHandler\"\n >\n <slot\n :name=\"page.text.name\"\n :disabled=\"page.text.disabled\"\n :page=\"page.text.page\"\n :index=\"page.text.index\"\n :active=\"page.text.active ?? false\"\n :content=\"page.text.value\"\n >\n {{ page.text.value }}\n </slot>\n </component>\n </li>\n </ul>\n</template>\n\n<script setup lang=\"ts\">\nimport {BvEvent} from '../../utils'\nimport {computed, nextTick, useTemplateRef, watch} from 'vue'\nimport {useAlignment} from '../../composables/useAlignment'\nimport {useToNumber} from '@vueuse/core'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {ClassValue} from '../../types/AnyValuedAttributes'\nimport {CODE_DOWN, CODE_LEFT, CODE_RIGHT, CODE_UP} from '../../utils/constants'\nimport {getActiveElement} from '../../utils/dom'\nimport {type BPaginationEmits, type BPaginationSlots, type BPaginationProps} from '../../types'\n\n// Threshold of limit size when we start/stop showing ellipsis\nconst ELLIPSIS_THRESHOLD = 3\n\nconst FIRST_BUTTON = -1\nconst PREV_BUTTON = -2\nconst NEXT_BUTTON = -3\nconst LAST_BUTTON = -4\nconst FIRST_ELLIPSIS = -5\nconst LAST_ELLIPSIS = -6\n\nconst _props = withDefaults(defineProps<Omit<BPaginationProps, 'modelValue'>>(), {\n align: 'start',\n ariaControls: undefined,\n ariaLabel: 'Pagination',\n disabled: false,\n ellipsisClass: undefined,\n ellipsisText: '\\u2026',\n firstClass: undefined,\n firstNumber: false,\n firstText: '\\u00AB',\n noEllipsis: false,\n noGotoEndButtons: false,\n labelFirstPage: 'Go to first page',\n labelLastPage: 'Go to last page',\n labelNextPage: 'Go to next page',\n labelPage: 'Go to page',\n labelPrevPage: 'Go to previous page',\n lastClass: undefined,\n lastNumber: false,\n lastText: '\\u00BB',\n limit: 5,\n nextClass: undefined,\n nextText: '\\u203A',\n pageClass: undefined,\n perPage: DEFAULT_PER_PAGE,\n pills: false,\n prevClass: undefined,\n prevText: '\\u2039',\n size: undefined,\n totalRows: DEFAULT_TOTAL_ROWS,\n})\nconst props = useDefaults(_props, 'BPagination')\nconst emit = defineEmits<BPaginationEmits>()\ndefineSlots<BPaginationSlots>()\n\nconst modelValue = defineModel<Exclude<BPaginationProps['modelValue'], undefined>>({\n default: 1,\n})\n\nconst pageElements = useTemplateRef('_pageElements')\n\nconst limitNumber = useToNumber(() => props.limit, {nanToZero: true, method: 'parseInt'})\nconst perPageNumber = useToNumber(() => props.perPage, {nanToZero: true, method: 'parseInt'})\nconst totalRowsNumber = useToNumber(() => props.totalRows, {nanToZero: true, method: 'parseInt'})\nconst modelValueNumber = useToNumber(modelValue, {nanToZero: true, method: 'parseInt'})\n\nconst perPageSanitized = computed(() => Math.max(perPageNumber.value || DEFAULT_PER_PAGE, 1))\nconst totalRowsSanitized = computed(() => Math.max(totalRowsNumber.value || DEFAULT_TOTAL_ROWS, 0))\n// Use Active to on page-item to denote active tab\nconst numberOfPages = computed(() => Math.ceil(totalRowsSanitized.value / perPageSanitized.value))\nconst computedFill = computed(() => props.align === 'fill')\n// This doesn't use the computedFill util because TS cannot infer that it would never be 'fill'\nconst justifyAlign = computed(() => (props.align === 'fill' ? 'start' : props.align))\n\nconst alignment = useAlignment(justifyAlign)\n\nconst isActivePage = (pageNumber: number) => pageNumber === computedModelValue.value\nconst getTabIndex = (num: number) => (props.disabled ? null : isActivePage(num) ? '0' : '-1')\n\nconst checkDisabled = (num: number) =>\n props.disabled ||\n isActivePage(num) ||\n computedModelValue.value < 1 ||\n // Check if the number is out of bounds\n num < 1 ||\n num > numberOfPages.value\n\nconst firstDisabled = computed(() => checkDisabled(1))\nconst prevDisabled = computed(() => checkDisabled(computedModelValue.value - 1))\nconst lastDisabled = computed(() => checkDisabled(numberOfPages.value))\nconst nextDisabled = computed(() => checkDisabled(computedModelValue.value + 1))\n\nconst getBaseButtonProps = ({\n page,\n classVal,\n disabled,\n slotName,\n textValue,\n tabIndex,\n label,\n position,\n isActive,\n hidden,\n isSmHidden,\n}: {\n page: number\n disabled: boolean\n classVal: ClassValue\n slotName: 'first-text' | 'prev-text' | 'next-text' | 'last-text' | 'page'\n textValue?: string\n tabIndex?: string\n label?: string\n position?: number\n isActive?: boolean\n hidden?: boolean\n isSmHidden?: boolean\n}) => ({\n li: {\n 'class': [\n 'page-item',\n {\n 'active': isActive,\n disabled,\n 'bv-d-sm-down-none': isSmHidden,\n 'flex-fill': computedFill.value,\n 'd-flex': computedFill.value && !disabled,\n },\n classVal,\n ],\n 'role': 'presentation',\n 'aria-hidden': hidden,\n },\n button: {\n 'is': disabled ? 'span' : 'button',\n 'class': ['page-link', 'text-center', {'flex-grow-1': !disabled && computedFill.value}],\n 'aria-label': label,\n 'aria-controls': props.ariaControls || undefined,\n 'aria-disabled': disabled ? true : undefined,\n 'aria-posinset': position,\n 'aria-setsize': position ? numberOfPages.value : undefined,\n 'role': 'menuitem',\n 'type': disabled ? undefined : 'button',\n 'tabindex': disabled ? undefined : tabIndex,\n },\n text: {\n name: slotName,\n active: isActive,\n value: textValue ?? page,\n page,\n disabled,\n index: page - 1,\n content: textValue ? undefined : String(page),\n },\n clickHandler: (e: Readonly<MouseEvent>) => pageClick(e, page),\n})\n\nconst getButtonProps = ({\n page,\n classVal,\n disabled,\n slotName,\n textValue,\n label,\n}: {\n page: number\n disabled: boolean\n classVal: ClassValue\n slotName: 'first-text' | 'prev-text' | 'next-text' | 'last-text' | 'page'\n textValue?: string\n label: string\n}) => getBaseButtonProps({page, classVal, disabled, slotName, textValue, label, tabIndex: '-1'})\n\nconst getPageButtonProps = (page: number, isSmHidden?: boolean) =>\n getBaseButtonProps({\n page,\n disabled: props.disabled,\n classVal: props.pageClass,\n slotName: 'page',\n label: props.labelPage ? `${props.labelPage} ${page}` : undefined,\n tabIndex: getTabIndex(page) ?? undefined,\n position: page,\n isActive: isActivePage(page),\n isSmHidden,\n })\n\nconst firstButtonProps = computed(() =>\n getButtonProps({\n page: 1,\n disabled: firstDisabled.value,\n classVal: props.firstClass,\n slotName: 'first-text',\n textValue: props.firstText,\n label: props.labelFirstPage,\n })\n)\nconst prevButtonProps = computed(() =>\n getButtonProps({\n page: Math.max(computedModelValue.value - 1, 1),\n disabled: prevDisabled.value,\n classVal: props.prevClass,\n slotName: 'prev-text',\n textValue: props.prevText,\n label: props.labelPrevPage,\n })\n)\nconst nextButtonProps = computed(() =>\n getButtonProps({\n page: Math.min(computedModelValue.value + 1, numberOfPages.value),\n disabled: nextDisabled.value,\n classVal: props.nextClass,\n slotName: 'next-text',\n textValue: props.nextText,\n label: props.labelNextPage,\n })\n)\nconst lastButtonProps = computed(() =>\n getButtonProps({\n page: numberOfPages.value,\n disabled: lastDisabled.value,\n classVal: props.lastClass,\n slotName: 'last-text',\n textValue: props.lastText,\n label: props.labelLastPage,\n })\n)\n\nconst ellipsisProps = computed(() => ({\n li: {\n class: [\n 'page-item',\n 'disabled',\n 'text-center',\n 'bv-d-sm-down-none',\n computedFill.value ? 'flex-fill' : '',\n props.ellipsisClass,\n ],\n role: 'separator',\n },\n span: {\n class: ['page-link'],\n },\n}))\n\nconst computedWrapperClasses = computed(() => [\n alignment.value,\n {\n [`pagination-${props.size}`]: props.size !== undefined,\n 'b-pagination-pills': props.pills,\n },\n])\n\nconst pagination = computed(() => ({\n pageSize: perPageSanitized.value,\n totalRows: totalRowsNumber.value,\n numberOfPages: numberOfPages.value,\n}))\n\nconst pageClick = (event: Readonly<MouseEvent>, pageNumber: number) => {\n if (pageNumber === computedModelValue.value) return\n const clickEvent = new BvEvent('page-click', {\n cancelable: true,\n target: event.target,\n })\n emit('page-click', clickEvent, pageNumber)\n\n if (clickEvent.defaultPrevented) return\n\n modelValue.value = pageNumber\n\n nextTick(() => {\n if (pageNumber === 1) {\n focusFirst()\n } else if (pageNumber === pagination.value.numberOfPages) {\n focusLast()\n }\n })\n // nextTick(() => {\n // if (isVisible(target) && un_element.contains(target)) {\n // attemptFocus(target)\n //} else {\n //this.focusCurrent()\n //}\n // })\n}\n\nconst isDisabled = (el: HTMLButtonElement) => {\n const isElement = el && el.nodeType === Node.ELEMENT_NODE\n const hasAttr = isElement ? el.hasAttribute('disabled') : null\n const hasClass = isElement && el.classList ? el.classList.contains('disabled') : false\n\n return !isElement || el.disabled || hasAttr || hasClass\n}\n\nconst getButtons = (): HTMLButtonElement[] =>\n [...(pageElements.value ?? [])]\n .sort(\n (a, b) =>\n Number.parseInt(a.getAttribute('displayIndex') || '0') -\n Number.parseInt(b.getAttribute('displayIndex') || '0')\n )\n .map((page) => page.children[0])\n .filter((el) => {\n if (el?.getAttribute('display') === 'none' || el?.tagName.toUpperCase() !== 'BUTTON') {\n return false\n }\n\n const bcr = el?.getBoundingClientRect()\n\n return !!(bcr && bcr.height > 0 && bcr.width > 0)\n })\n .map((el) => el as HTMLButtonElement)\n\nconst focusFirst = () => {\n nextTick(() => {\n const btn = getButtons().find((el) => !isDisabled(el))\n btn?.focus()\n })\n}\n\nconst focusPrev = () => {\n nextTick(() => {\n const buttons = getButtons()\n const index = buttons.indexOf(getActiveElement() as HTMLButtonElement)\n\n const button = buttons[index - 1]\n if (index > 0 && button !== undefined && !isDisabled(button)) {\n buttons[index - 1]?.focus()\n }\n })\n}\n\nconst focusLast = () => {\n nextTick(() => {\n const btn = getButtons()\n .reverse()\n .find((el) => !isDisabled(el))\n btn?.focus()\n })\n}\n\nconst focusNext = () => {\n nextTick(() => {\n const buttons = getButtons()\n const index = buttons.indexOf(getActiveElement() as HTMLButtonElement)\n const button = buttons[index + 1]\n if (index < buttons.length - 1 && button !== undefined && !isDisabled(button)) {\n buttons[index + 1]?.focus()\n }\n })\n}\n\nconst handleKeyNav = (event: KeyboardEvent) => {\n const {code, shiftKey} = event\n if (code === CODE_LEFT || code === CODE_UP) {\n event.preventDefault()\n if (shiftKey) {\n focusFirst()\n } else {\n focusPrev()\n }\n } else if (code === CODE_RIGHT || code === CODE_DOWN) {\n event.preventDefault()\n if (shiftKey) {\n focusLast()\n } else {\n focusNext()\n }\n }\n}\n\nconst computedModelValue = computed(() => {\n const page = modelValueNumber.value || 1\n return page > numberOfPages.value ? numberOfPages.value : page < 1 ? 1 : page\n})\n\nwatch(pagination, (oldValue, newValue) => {\n if (newValue.pageSize !== oldValue.pageSize && newValue.totalRows === oldValue.totalRows) {\n // If the page size changes, reset to page 1\n modelValue.value = 1\n }\n})\n\nconst noFirstButton = computed(() => (props.noGotoEndButtons && !props.firstNumber ? 1 : 0))\nconst noLastButton = computed(() => (props.noGotoEndButtons && !props.lastNumber ? 1 : 0))\nconst showFirstButton = computed(() => (noFirstButton.value ? 0 : 1))\nconst showLastButton = computed(() => (noLastButton.value ? 0 : 1))\nconst firstPage = computed(() => (props.firstNumber ? 1 : 0))\nconst lastPage = computed(() => (props.lastNumber ? 1 : 0))\nconst halfLimit = computed(() => Math.floor(limitNumber.value / 2))\n\nconst pages = computed(() => {\n const {value} = computedModelValue\n\n const els = elements.value.map((p) => {\n switch (p) {\n case FIRST_BUTTON:\n return {id: p, ...firstButtonProps.value}\n case PREV_BUTTON:\n return {id: p, ...prevButtonProps.value}\n case NEXT_BUTTON:\n return {id: p, ...nextButtonProps.value}\n case LAST_BUTTON:\n return {id: p, ...lastButtonProps.value}\n case FIRST_ELLIPSIS:\n case LAST_ELLIPSIS:\n return {id: p, ...ellipsisProps.value}\n default:\n return {id: p, ...getPageButtonProps(p)}\n }\n })\n\n if (numberOfPages.value > 3) {\n if (value > numberOfPages.value - halfLimit.value - lastPage.value) {\n const idx = 2 + showFirstButton.value\n const el = els[idx]\n if (el !== undefined) {\n els[idx] = {id: el.id, ...getPageButtonProps(el.id, true)}\n }\n }\n\n if (value <= halfLimit.value + firstPage.value) {\n const idx = els.length - (3 + showLastButton.value)\n const el = els[idx]\n if (el !== undefined) {\n els[idx] = {id: el.id, ...getPageButtonProps(el.id, true)}\n }\n }\n }\n\n return els\n})\n\nconst elements = computed(() => {\n // The idea here is to create an array of all the buttons on the page control.\n // This way we can keep the invariants in one place and the template code just\n // iterates over the array.\n\n const pages = numberOfPages.value\n const {value} = computedModelValue\n const limit = limitNumber.value\n const noEllipsis = props.noEllipsis || limit <= ELLIPSIS_THRESHOLD\n\n // The first case is when all of the page buttons fit on the control, this is\n // the simplest case and the only one that will create an array smaller than\n // Limit + 4 - noEndButtons * 2 (the [first, last,] prev, next buttons)\n\n if (pages < limit + firstPage.value + lastPage.value) {\n return [\n !firstPage.value && !noFirstButton.value ? FIRST_BUTTON : null,\n PREV_BUTTON,\n ...Array.from({length: pages}, (_, index) => index + 1),\n NEXT_BUTTON,\n !lastPage.value && !noLastButton.value ? LAST_BUTTON : null,\n ].filter((x) => x !== null) as number[]\n }\n\n // All of the remaining cases result in an array that is exactly limit + 4 - noEndButtons * 2 in length, so create\n // the array upfront and set up the beginning and end buttons, then fill the rest for each case\n\n const buttons = Array.from({length: limit + 4 - (noFirstButton.value + noLastButton.value)})\n if (!noFirstButton.value) {\n if (!firstPage.value) {\n buttons[0] = FIRST_BUTTON\n buttons[1] = PREV_BUTTON\n } else {\n buttons[0] = PREV_BUTTON\n buttons[1] = 1\n }\n } else {\n buttons[0] = PREV_BUTTON\n }\n\n if (!noLastButton.value) {\n if (!lastPage.value) {\n buttons[buttons.length - 1] = LAST_BUTTON\n buttons[buttons.length - 2] = NEXT_BUTTON\n } else {\n buttons[buttons.length - 1] = NEXT_BUTTON\n buttons[buttons.length - 2] = pages\n }\n } else {\n buttons[buttons.length - 1] = NEXT_BUTTON\n }\n\n // The next case is where the page buttons start at the begginning, with\n // no ellipsis at the beginning, but one at the end\n\n if (value <= halfLimit.value + firstPage.value) {\n for (let index = 1; index <= limit; index++) {\n buttons[index + 1 - noFirstButton.value] = index + firstPage.value\n }\n\n if (!noEllipsis) {\n buttons[buttons.length - (2 + showLastButton.value)] = LAST_ELLIPSIS\n }\n }\n\n // And then we have the case where the page buttons go up to the end, with no\n // ellipsis at the end, but one at the beginning\n\n if (value > pages - halfLimit.value - lastPage.value) {\n const start = pages - (limit - 1) - lastPage.value\n for (let index = 0; index < limit; index++) {\n buttons[index + 2 - noFirstButton.value] = start + index\n }\n\n if (!noEllipsis) {\n buttons[1 + showFirstButton.value] = FIRST_ELLIPSIS\n }\n }\n\n // Finally we have the case where we have ellipsis at both ends\n if (!buttons[2]) {\n // Is there a more elegant way to ceck that we're in the final case?\n const start = value - Math.floor(limit / 2)\n for (let index = 0; index < limit; index++) {\n buttons[index + 2 - noFirstButton.value] = start + index\n }\n\n if (!noEllipsis) {\n buttons[1 + showFirstButton.value] = FIRST_ELLIPSIS\n buttons[buttons.length - (2 + showLastButton.value)] = LAST_ELLIPSIS\n }\n }\n\n //Enable sanity check for debugging purposes\n // for (let i = 0; i < buttons.length; i++) {\n // if (!buttons[i]) {\n // // eslint-disable-next-line no-console\n // console.log(\n // `Failed: button == ${i}, limit=${limit}, pages=${pages}, firstPage=${firstPage}, lastPage=${lastPage}, value=${value}`\n // )\n // }\n // }\n\n return buttons.filter((x) => x !== null) as number[]\n})\n</script>\n\n<script lang=\"ts\">\nconst DEFAULT_PER_PAGE = 20\nconst DEFAULT_TOTAL_ROWS = 0\n</script>\n"],"mappings":";;;;;;;;;;;AA0kBA,IAAM,mBAAmB;AACzB,IAAM,qBAAqB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAlhB3B,MAAM,qBAAqB;EAE3B,MAAM,eAAe;EACrB,MAAM,cAAc;EACpB,MAAM,cAAc;EACpB,MAAM,cAAc;EACpB,MAAM,iBAAiB;EACvB,MAAM,gBAAgB;EAiCtB,MAAM,QAAQ,YA/BC,SA+BmB,cAAa;EAC/C,MAAM,OAAO;EAGb,MAAM,aAAa,SAA+D,SAAA,aAEjF;EAED,MAAM,eAAe,eAAe,gBAAe;EAEnD,MAAM,cAAc,kBAAkB,MAAM,OAAO;GAAC,WAAW;GAAM,QAAQ;GAAW,CAAA;EACxF,MAAM,gBAAgB,kBAAkB,MAAM,SAAS;GAAC,WAAW;GAAM,QAAQ;GAAW,CAAA;EAC5F,MAAM,kBAAkB,kBAAkB,MAAM,WAAW;GAAC,WAAW;GAAM,QAAQ;GAAW,CAAA;EAChG,MAAM,mBAAmB,YAAY,YAAY;GAAC,WAAW;GAAM,QAAQ;GAAW,CAAA;EAEtF,MAAM,mBAAmB,eAAe,KAAK,IAAI,cAAc,SAAS,kBAAkB,EAAE,CAAA;EAC5F,MAAM,qBAAqB,eAAe,KAAK,IAAI,gBAAgB,SAAS,oBAAoB,EAAE,CAAA;EAElG,MAAM,gBAAgB,eAAe,KAAK,KAAK,mBAAmB,QAAQ,iBAAiB,MAAM,CAAA;EACjG,MAAM,eAAe,eAAe,MAAM,UAAU,OAAM;EAI1D,MAAM,YAAY,aAFG,eAAgB,MAAM,UAAU,SAAS,UAAU,MAAM,MAAM,CAEzC;EAE3C,MAAM,gBAAgB,eAAuB,eAAe,mBAAmB;EAC/E,MAAM,eAAe,QAAiB,MAAM,WAAW,OAAO,aAAa,IAAI,GAAG,MAAM;EAExF,MAAM,iBAAiB,QACrB,MAAM,YACN,aAAa,IAAI,IACjB,mBAAmB,QAAQ,KAE3B,MAAM,KACN,MAAM,cAAc;EAEtB,MAAM,gBAAgB,eAAe,cAAc,EAAE,CAAA;EACrD,MAAM,eAAe,eAAe,cAAc,mBAAmB,QAAQ,EAAE,CAAA;EAC/E,MAAM,eAAe,eAAe,cAAc,cAAc,MAAM,CAAA;EACtE,MAAM,eAAe,eAAe,cAAc,mBAAmB,QAAQ,EAAE,CAAA;EAE/E,MAAM,sBAAsB,EAC1B,MACA,UACA,UACA,UACA,WACA,UACA,OACA,UACA,UACA,QACA,kBAaK;GACL,IAAI;IACF,SAAS;KACP;KACA;MACE,UAAU;MACV;MACA,qBAAqB;MACrB,aAAa,aAAa;MAC1B,UAAU,aAAa,SAAS,CAAC;MAClC;KACD;KACD;IACD,QAAQ;IACR,eAAe;IAChB;GACD,QAAQ;IACN,MAAM,WAAW,SAAS;IAC1B,SAAS;KAAC;KAAa;KAAe,EAAC,eAAe,CAAC,YAAY,aAAa,OAAA;KAAO;IACvF,cAAc;IACd,iBAAiB,MAAM,gBAAgB,KAAA;IACvC,iBAAiB,WAAW,OAAO,KAAA;IACnC,iBAAiB;IACjB,gBAAgB,WAAW,cAAc,QAAQ,KAAA;IACjD,QAAQ;IACR,QAAQ,WAAW,KAAA,IAAY;IAC/B,YAAY,WAAW,KAAA,IAAY;IACpC;GACD,MAAM;IACJ,MAAM;IACN,QAAQ;IACR,OAAO,aAAa;IACpB;IACA;IACA,OAAO,OAAO;IACd,SAAS,YAAY,KAAA,IAAY,OAAO,KAAA;IACzC;GACD,eAAe,MAA4B,UAAU,GAAG,KAAA;GACzD;EAED,MAAM,kBAAkB,EACtB,MACA,UACA,UACA,UACA,WACA,YAQI,mBAAmB;GAAC;GAAM;GAAU;GAAU;GAAU;GAAW;GAAO,UAAU;GAAK,CAAA;EAE/F,MAAM,sBAAsB,MAAc,eACxC,mBAAmB;GACjB;GACA,UAAU,MAAM;GAChB,UAAU,MAAM;GAChB,UAAU;GACV,OAAO,MAAM,YAAY,GAAG,MAAM,UAAU,GAAG,SAAS,KAAA;GACxD,UAAU,YAAY,KAAK,IAAI,KAAA;GAC/B,UAAU;GACV,UAAU,aAAa,KAAK;GAC5B;GACD,CAAA;EAEH,MAAM,mBAAmB,eACvB,eAAe;GACb,MAAM;GACN,UAAU,cAAc;GACxB,UAAU,MAAM;GAChB,UAAU;GACV,WAAW,MAAM;GACjB,OAAO,MAAM;GACd,CAAA,CACH;EACA,MAAM,kBAAkB,eACtB,eAAe;GACb,MAAM,KAAK,IAAI,mBAAmB,QAAQ,GAAG,EAAE;GAC/C,UAAU,aAAa;GACvB,UAAU,MAAM;GAChB,UAAU;GACV,WAAW,MAAM;GACjB,OAAO,MAAM;GACd,CAAA,CACH;EACA,MAAM,kBAAkB,eACtB,eAAe;GACb,MAAM,KAAK,IAAI,mBAAmB,QAAQ,GAAG,cAAc,MAAM;GACjE,UAAU,aAAa;GACvB,UAAU,MAAM;GAChB,UAAU;GACV,WAAW,MAAM;GACjB,OAAO,MAAM;GACd,CAAA,CACH;EACA,MAAM,kBAAkB,eACtB,eAAe;GACb,MAAM,cAAc;GACpB,UAAU,aAAa;GACvB,UAAU,MAAM;GAChB,UAAU;GACV,WAAW,MAAM;GACjB,OAAO,MAAM;GACd,CAAA,CACH;EAEA,MAAM,gBAAgB,gBAAgB;GACpC,IAAI;IACF,OAAO;KACL;KACA;KACA;KACA;KACA,aAAa,QAAQ,cAAc;KACnC,MAAM;KACP;IACD,MAAM;IACP;GACD,MAAM,EACJ,OAAO,CAAC,YAAY,EAAA;GAEvB,EAAC;EAEF,MAAM,yBAAyB,eAAe,CAC5C,UAAU,OACV;IACG,cAAc,MAAM,SAAS,MAAM,SAAS,KAAA;GAC7C,sBAAsB,MAAM;GAC7B,CACF,CAAA;EAED,MAAM,aAAa,gBAAgB;GACjC,UAAU,iBAAiB;GAC3B,WAAW,gBAAgB;GAC3B,eAAe,cAAc;GAC9B,EAAC;EAEF,MAAM,aAAa,OAA6B,eAAuB;AACrE,OAAI,eAAe,mBAAmB,MAAO;GAC7C,MAAM,aAAa,IAAI,QAAQ,cAAc;IAC3C,YAAY;IACZ,QAAQ,MAAM;IACf,CAAA;AACD,QAAK,cAAc,YAAY,WAAU;AAEzC,OAAI,WAAW,iBAAkB;AAEjC,cAAW,QAAQ;AAEnB,kBAAe;AACb,QAAI,eAAe,EACjB,aAAW;aACF,eAAe,WAAW,MAAM,cACzC,YAAU;KAEb;;EAUH,MAAM,cAAc,OAA0B;GAC5C,MAAM,YAAY,MAAM,GAAG,aAAa,KAAK;GAC7C,MAAM,UAAU,YAAY,GAAG,aAAa,WAAW,GAAG;GAC1D,MAAM,WAAW,aAAa,GAAG,YAAY,GAAG,UAAU,SAAS,WAAW,GAAG;AAEjF,UAAO,CAAC,aAAa,GAAG,YAAY,WAAW;;EAGjD,MAAM,mBACJ,CAAC,GAAI,aAAa,SAAS,EAAE,CAAC,CAC3B,MACE,GAAG,MACF,OAAO,SAAS,EAAE,aAAa,eAAe,IAAI,IAAI,GACtD,OAAO,SAAS,EAAE,aAAa,eAAe,IAAI,IAAG,CACzD,CACC,KAAK,SAAS,KAAK,SAAS,GAAE,CAC9B,QAAQ,OAAO;AACd,OAAI,IAAI,aAAa,UAAU,KAAK,UAAU,IAAI,QAAQ,aAAa,KAAK,SAC1E,QAAO;GAGT,MAAM,MAAM,IAAI,uBAAsB;AAEtC,UAAO,CAAC,EAAE,OAAO,IAAI,SAAS,KAAK,IAAI,QAAQ;IAChD,CACA,KAAK,OAAO,GAAuB;EAExC,MAAM,mBAAmB;AACvB,kBAAe;AACD,gBAAY,CAAC,MAAM,OAAO,CAAC,WAAW,GAAG,CAAA,EAChD,OAAM;KACZ;;EAGH,MAAM,kBAAkB;AACtB,kBAAe;IACb,MAAM,UAAU,YAAW;IAC3B,MAAM,QAAQ,QAAQ,QAAQ,kBAAkB,CAAqB;IAErE,MAAM,SAAS,QAAQ,QAAQ;AAC/B,QAAI,QAAQ,KAAK,WAAW,KAAA,KAAa,CAAC,WAAW,OAAO,CAC1D,SAAQ,QAAQ,IAAI,OAAM;KAE7B;;EAGH,MAAM,kBAAkB;AACtB,kBAAe;AACD,gBAAW,CACpB,SAAQ,CACR,MAAM,OAAO,CAAC,WAAW,GAAG,CAAA,EAC1B,OAAM;KACZ;;EAGH,MAAM,kBAAkB;AACtB,kBAAe;IACb,MAAM,UAAU,YAAW;IAC3B,MAAM,QAAQ,QAAQ,QAAQ,kBAAkB,CAAqB;IACrE,MAAM,SAAS,QAAQ,QAAQ;AAC/B,QAAI,QAAQ,QAAQ,SAAS,KAAK,WAAW,KAAA,KAAa,CAAC,WAAW,OAAO,CAC3E,SAAQ,QAAQ,IAAI,OAAM;KAE7B;;EAGH,MAAM,gBAAgB,UAAyB;GAC7C,MAAM,EAAC,MAAM,aAAY;AACzB,OAAI,SAAA,eAAsB,SAAA,WAAkB;AAC1C,UAAM,gBAAe;AACrB,QAAI,SACF,aAAW;QAEX,YAAU;cAEH,SAAA,gBAAuB,SAAA,aAAoB;AACpD,UAAM,gBAAe;AACrB,QAAI,SACF,YAAU;QAEV,YAAU;;;EAKhB,MAAM,qBAAqB,eAAe;GACxC,MAAM,OAAO,iBAAiB,SAAS;AACvC,UAAO,OAAO,cAAc,QAAQ,cAAc,QAAQ,OAAO,IAAI,IAAI;IAC1E;AAED,QAAM,aAAa,UAAU,aAAa;AACxC,OAAI,SAAS,aAAa,SAAS,YAAY,SAAS,cAAc,SAAS,UAE7E,YAAW,QAAQ;IAEtB;EAED,MAAM,gBAAgB,eAAgB,MAAM,oBAAoB,CAAC,MAAM,cAAc,IAAI,EAAE;EAC3F,MAAM,eAAe,eAAgB,MAAM,oBAAoB,CAAC,MAAM,aAAa,IAAI,EAAE;EACzF,MAAM,kBAAkB,eAAgB,cAAc,QAAQ,IAAI,EAAE;EACpE,MAAM,iBAAiB,eAAgB,aAAa,QAAQ,IAAI,EAAE;EAClE,MAAM,YAAY,eAAgB,MAAM,cAAc,IAAI,EAAE;EAC5D,MAAM,WAAW,eAAgB,MAAM,aAAa,IAAI,EAAE;EAC1D,MAAM,YAAY,eAAe,KAAK,MAAM,YAAY,QAAQ,EAAE,CAAA;EAElE,MAAM,QAAQ,eAAe;GAC3B,MAAM,EAAC,UAAS;GAEhB,MAAM,MAAM,SAAS,MAAM,KAAK,MAAM;AACpC,YAAQ,GAAR;KACE,KAAK,aACH,QAAO;MAAC,IAAI;MAAG,GAAG,iBAAiB;MAAK;KAC1C,KAAK,YACH,QAAO;MAAC,IAAI;MAAG,GAAG,gBAAgB;MAAK;KACzC,KAAK,YACH,QAAO;MAAC,IAAI;MAAG,GAAG,gBAAgB;MAAK;KACzC,KAAK,YACH,QAAO;MAAC,IAAI;MAAG,GAAG,gBAAgB;MAAK;KACzC,KAAK;KACL,KAAK,cACH,QAAO;MAAC,IAAI;MAAG,GAAG,cAAc;MAAK;KACvC,QACE,QAAO;MAAC,IAAI;MAAG,GAAG,mBAAmB,EAAA;MAAE;;KAE5C;AAED,OAAI,cAAc,QAAQ,GAAG;AAC3B,QAAI,QAAQ,cAAc,QAAQ,UAAU,QAAQ,SAAS,OAAO;KAClE,MAAM,MAAM,IAAI,gBAAgB;KAChC,MAAM,KAAK,IAAI;AACf,SAAI,OAAO,KAAA,EACT,KAAI,OAAO;MAAC,IAAI,GAAG;MAAI,GAAG,mBAAmB,GAAG,IAAI,KAAA;MAAK;;AAI7D,QAAI,SAAS,UAAU,QAAQ,UAAU,OAAO;KAC9C,MAAM,MAAM,IAAI,UAAU,IAAI,eAAe;KAC7C,MAAM,KAAK,IAAI;AACf,SAAI,OAAO,KAAA,EACT,KAAI,OAAO;MAAC,IAAI,GAAG;MAAI,GAAG,mBAAmB,GAAG,IAAI,KAAA;MAAK;;;AAK/D,UAAO;IACR;EAED,MAAM,WAAW,eAAe;GAK9B,MAAM,QAAQ,cAAc;GAC5B,MAAM,EAAC,UAAS;GAChB,MAAM,QAAQ,YAAY;GAC1B,MAAM,aAAa,MAAM,cAAc,SAAS;AAMhD,OAAI,QAAQ,QAAQ,UAAU,QAAQ,SAAS,MAC7C,QAAO;IACL,CAAC,UAAU,SAAS,CAAC,cAAc,QAAQ,eAAe;IAC1D;IACA,GAAG,MAAM,KAAK,EAAC,QAAQ,OAAM,GAAG,GAAG,UAAU,QAAQ,EAAE;IACvD;IACA,CAAC,SAAS,SAAS,CAAC,aAAa,QAAQ,cAAc;IACxD,CAAC,QAAQ,MAAM,MAAM,KAAK;GAM7B,MAAM,UAAU,MAAM,KAAK,EAAC,QAAQ,QAAQ,KAAK,cAAc,QAAQ,aAAa,QAAO,CAAA;AAC3F,OAAI,CAAC,cAAc,MACjB,KAAI,CAAC,UAAU,OAAO;AACpB,YAAQ,KAAK;AACb,YAAQ,KAAK;UACR;AACL,YAAQ,KAAK;AACb,YAAQ,KAAK;;OAGf,SAAQ,KAAK;AAGf,OAAI,CAAC,aAAa,MAChB,KAAI,CAAC,SAAS,OAAO;AACnB,YAAQ,QAAQ,SAAS,KAAK;AAC9B,YAAQ,QAAQ,SAAS,KAAK;UACzB;AACL,YAAQ,QAAQ,SAAS,KAAK;AAC9B,YAAQ,QAAQ,SAAS,KAAK;;OAGhC,SAAQ,QAAQ,SAAS,KAAK;AAMhC,OAAI,SAAS,UAAU,QAAQ,UAAU,OAAO;AAC9C,SAAK,IAAI,QAAQ,GAAG,SAAS,OAAO,QAClC,SAAQ,QAAQ,IAAI,cAAc,SAAS,QAAQ,UAAU;AAG/D,QAAI,CAAC,WACH,SAAQ,QAAQ,UAAU,IAAI,eAAe,UAAU;;AAO3D,OAAI,QAAQ,QAAQ,UAAU,QAAQ,SAAS,OAAO;IACpD,MAAM,QAAQ,SAAS,QAAQ,KAAK,SAAS;AAC7C,SAAK,IAAI,QAAQ,GAAG,QAAQ,OAAO,QACjC,SAAQ,QAAQ,IAAI,cAAc,SAAS,QAAQ;AAGrD,QAAI,CAAC,WACH,SAAQ,IAAI,gBAAgB,SAAS;;AAKzC,OAAI,CAAC,QAAQ,IAAI;IAEf,MAAM,QAAQ,QAAQ,KAAK,MAAM,QAAQ,EAAC;AAC1C,SAAK,IAAI,QAAQ,GAAG,QAAQ,OAAO,QACjC,SAAQ,QAAQ,IAAI,cAAc,SAAS,QAAQ;AAGrD,QAAI,CAAC,YAAY;AACf,aAAQ,IAAI,gBAAgB,SAAS;AACrC,aAAQ,QAAQ,UAAU,IAAI,eAAe,UAAU;;;AAc3D,UAAO,QAAQ,QAAQ,MAAM,MAAM,KAAK;IACzC;;uBArkBC,mBAyCK,MAAA;IAxCH,OAAK,eAAA,CAAC,cACE,uBAAA,MAAsB,CAAA;IAC9B,MAAK;IACJ,iBAAe,MAAA,MAAK,CAAC;IACrB,cAAY,MAAA,MAAK,CAAC,aAAa,KAAA;IAC/B,WAAS;yBAEV,mBAgCK,UAAA,MAAA,WA/BqB,MAAA,QAAhB,MAAM,UAAK;wBADrB,mBAgCK,MAhCL,WAgCK,EA9BF,KAAG,QAAU,KAAK,MAAA,EAAA,EAAA,SAAA,MAAA,EACX,KAAK,IAAE;;KACf,KAAI;KACH,cAAc;SAGP,KAAK,OAAO,kBAAkB,KAAK,OAAO,iBAAA,WAAA,EADlD,mBAOO,QAPP,WAOO;;;OALG,cAAA,MAAc,KAAI,EAAA,CAE1B,WAEO,KAAA,QAAA,iBAAA,EAAA,QAAA,CAAA,gBAAA,gBADF,MAAA,MAAK,CAAC,gBAAY,MAAA,EAAA,EAAA,CAAA,CAAA,CAAA,EAAA,GAAA,IAAA,YAMA,QAAA,WAAA,EAHzB,YAgBY,wBAdL,KAAK,OAAO,GAAE,EAFrB,WAgBY;;;OAfF,KAAK,QAAM,EAGlB,SAAO,KAAK,cAAA,CAAA,EAAA;4BAWN,CATP,WASO,KAAA,QARE,KAAK,KAAK,MAAI;MACpB,UAAU,KAAK,KAAK;MACpB,MAAM,KAAK,KAAK;MAChB,OAAO,KAAK,KAAK;MACjB,QAAQ,KAAK,KAAK,UAAM;MACxB,SAAS,KAAK,KAAK;cAGf,CAAA,gBAAA,gBADF,KAAK,KAAK,MAAK,EAAA,EAAA,CAAA,CAAA,CAAA,CAAA"}
@@ -1,8 +1,8 @@
1
- import { L as useToNumber } from "./dist-Dn5blevd.mjs";
2
- import { t as useDefaults } from "./useDefaults-CCWS15M8.mjs";
3
- import { t as useColorVariantClasses } from "./useColorVariantClasses-GuDw8a_O.mjs";
4
- import { s as BCardImg_default, t as BCard_default } from "./BCard-Vf1haqo5.mjs";
5
- import { t as BTableSimple_default } from "./BTableSimple-eebTf2L5.mjs";
1
+ import { z as useToNumber } from "./dist-B10a-gZ8.mjs";
2
+ import { t as useDefaults } from "./useDefaults-BKgBaqOV.mjs";
3
+ import { t as useColorVariantClasses } from "./useColorVariantClasses-B6Me_Kx6.mjs";
4
+ import { s as BCardImg_default, t as BCard_default } from "./BCard-C1G8PO5k.mjs";
5
+ import { t as BTableSimple_default } from "./BTableSimple-C901Z5V9.mjs";
6
6
  import { Fragment, computed, createBlock, createCommentVNode, createElementBlock, createElementVNode, createSlots, createVNode, defineComponent, mergeProps, normalizeClass, openBlock, renderList, renderSlot, resolveDynamicComponent, unref, withCtx } from "vue";
7
7
  //#endregion
8
8
  //#region src/components/BPlaceholder/BPlaceholder.vue
@@ -293,4 +293,4 @@ var BPlaceholderWrapper_default = /* @__PURE__ */ defineComponent({
293
293
  //#endregion
294
294
  export { BPlaceholder_default as a, BPlaceholderButton_default as i, BPlaceholderTable_default as n, BPlaceholderCard_default as r, BPlaceholderWrapper_default as t };
295
295
 
296
- //# sourceMappingURL=BPlaceholder-7UJ3Nyb3.mjs.map
296
+ //# sourceMappingURL=BPlaceholder-C4AOg29f.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"BPlaceholder-7UJ3Nyb3.mjs","names":["$attrs"],"sources":["../src/components/BPlaceholder/BPlaceholder.vue","../src/components/BPlaceholder/BPlaceholder.vue","../src/components/BPlaceholder/BPlaceholderButton.vue","../src/components/BPlaceholder/BPlaceholderButton.vue","../src/components/BPlaceholder/BPlaceholderCard.vue","../src/components/BPlaceholder/BPlaceholderCard.vue","../src/components/BPlaceholder/BPlaceholderTable.vue","../src/components/BPlaceholder/BPlaceholderTable.vue","../src/components/BPlaceholder/BPlaceholderWrapper.vue","../src/components/BPlaceholder/BPlaceholderWrapper.vue"],"sourcesContent":["<template>\n <component :is=\"props.wrapperTag\" :class=\"wrapperClasses\">\n <component\n v-bind=\"$attrs\"\n :is=\"tag\"\n class=\"placeholder\"\n :class=\"computedClasses\"\n :style=\"computedStyle\"\n />\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, type CSSProperties} from 'vue'\nimport type {BPlaceholderProps} from '../../types/ComponentProps'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BPlaceholderProps>(), {\n animation: undefined,\n cols: 12,\n size: 'md',\n tag: 'span',\n variant: null,\n width: undefined,\n wrapperTag: 'span',\n})\nconst props = useDefaults(_props, 'BPlaceholder')\n\nconst widthString = computed(() =>\n props.width === undefined\n ? undefined\n : typeof props.width === 'number'\n ? props.width.toString()\n : props.width.replace('%', '')\n)\n\nconst colsString = computed(() =>\n props.cols === undefined\n ? undefined\n : typeof props.cols === 'number'\n ? props.cols.toString()\n : props.cols\n)\n\nconst colorClasses = useColorVariantClasses(\n computed(() => ({\n bgVariant: props.variant,\n }))\n)\nconst computedClasses = computed(() => [\n colorClasses.value,\n {\n [`col-${colsString.value}`]: colsString.value !== undefined && widthString.value === undefined,\n [`placeholder-${props.size}`]: props.size !== 'md',\n },\n])\n\nconst wrapperClasses = computed(() => ({\n [`placeholder-${props.animation}`]: props.animation !== undefined,\n}))\n\nconst computedStyle = computed<CSSProperties>(() => ({\n width: widthString.value === undefined ? undefined : `${widthString.value}%`,\n}))\n</script>\n","<template>\n <component :is=\"props.wrapperTag\" :class=\"wrapperClasses\">\n <component\n v-bind=\"$attrs\"\n :is=\"tag\"\n class=\"placeholder\"\n :class=\"computedClasses\"\n :style=\"computedStyle\"\n />\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, type CSSProperties} from 'vue'\nimport type {BPlaceholderProps} from '../../types/ComponentProps'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BPlaceholderProps>(), {\n animation: undefined,\n cols: 12,\n size: 'md',\n tag: 'span',\n variant: null,\n width: undefined,\n wrapperTag: 'span',\n})\nconst props = useDefaults(_props, 'BPlaceholder')\n\nconst widthString = computed(() =>\n props.width === undefined\n ? undefined\n : typeof props.width === 'number'\n ? props.width.toString()\n : props.width.replace('%', '')\n)\n\nconst colsString = computed(() =>\n props.cols === undefined\n ? undefined\n : typeof props.cols === 'number'\n ? props.cols.toString()\n : props.cols\n)\n\nconst colorClasses = useColorVariantClasses(\n computed(() => ({\n bgVariant: props.variant,\n }))\n)\nconst computedClasses = computed(() => [\n colorClasses.value,\n {\n [`col-${colsString.value}`]: colsString.value !== undefined && widthString.value === undefined,\n [`placeholder-${props.size}`]: props.size !== 'md',\n },\n])\n\nconst wrapperClasses = computed(() => ({\n [`placeholder-${props.animation}`]: props.animation !== undefined,\n}))\n\nconst computedStyle = computed<CSSProperties>(() => ({\n width: widthString.value === undefined ? undefined : `${widthString.value}%`,\n}))\n</script>\n","<template>\n <BPlaceholder\n class=\"btn disabled\"\n :class=\"computedClasses\"\n :animation=\"props.animation\"\n :width=\"props.width\"\n :cols=\"props.cols\"\n :tag=\"props.tag\"\n :style=\"{'cursor': 'wait', 'pointer-events': 'auto'}\"\n />\n</template>\n\n<script setup lang=\"ts\">\nimport BPlaceholder from './BPlaceholder.vue'\nimport type {BPlaceholderButtonProps} from '../../types/ComponentProps'\nimport {computed} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\n\nconst _props = withDefaults(defineProps<BPlaceholderButtonProps>(), {\n animation: undefined,\n cols: undefined,\n tag: 'div',\n variant: 'primary',\n width: undefined,\n})\nconst props = useDefaults(_props, 'BPlaceholderButton')\n\nconst computedClasses = computed(() => ({\n [`btn-${props.variant}`]: props.variant !== null,\n}))\n</script>\n","<template>\n <BPlaceholder\n class=\"btn disabled\"\n :class=\"computedClasses\"\n :animation=\"props.animation\"\n :width=\"props.width\"\n :cols=\"props.cols\"\n :tag=\"props.tag\"\n :style=\"{'cursor': 'wait', 'pointer-events': 'auto'}\"\n />\n</template>\n\n<script setup lang=\"ts\">\nimport BPlaceholder from './BPlaceholder.vue'\nimport type {BPlaceholderButtonProps} from '../../types/ComponentProps'\nimport {computed} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\n\nconst _props = withDefaults(defineProps<BPlaceholderButtonProps>(), {\n animation: undefined,\n cols: undefined,\n tag: 'div',\n variant: 'primary',\n width: undefined,\n})\nconst props = useDefaults(_props, 'BPlaceholderButton')\n\nconst computedClasses = computed(() => ({\n [`btn-${props.variant}`]: props.variant !== null,\n}))\n</script>\n","<template>\n <BCard :img-placement=\"props.imgPlacement\">\n <template v-if=\"!props.noImg\" #img>\n <slot name=\"img\">\n <BCardImg\n :blank=\"!props.imgSrc ? true : false\"\n :blank-color=\"props.imgBlankColor\"\n :height=\"!props.imgSrc ? props.imgHeight : undefined\"\n :src=\"props.imgSrc\"\n :img-placement=\"props.imgPlacement\"\n :style=\"{cursor: 'wait'}\"\n />\n </slot>\n </template>\n\n <template v-if=\"!props.noHeader\" #header>\n <slot name=\"header\">\n <BPlaceholder\n :width=\"props.headerWidth\"\n :variant=\"props.headerVariant\"\n :animation=\"props.headerAnimation\"\n :size=\"props.headerSize\"\n />\n </slot>\n </template>\n <slot>\n <BPlaceholder cols=\"7\" v-bind=\"defaultAttrs\" />\n <BPlaceholder cols=\"4\" v-bind=\"defaultAttrs\" />\n <BPlaceholder cols=\"4\" v-bind=\"defaultAttrs\" />\n <BPlaceholder cols=\"6\" v-bind=\"defaultAttrs\" />\n <BPlaceholder cols=\"8\" v-bind=\"defaultAttrs\" />\n </slot>\n <template v-if=\"!props.noFooter\" #footer>\n <slot name=\"footer\">\n <component\n :is=\"footerComponent\"\n :width=\"props.footerWidth\"\n :animation=\"props.footerAnimation\"\n :size=\"props.noButton ? props.footerSize : undefined\"\n :variant=\"props.footerVariant\"\n />\n </slot>\n </template>\n </BCard>\n</template>\n\n<script setup lang=\"ts\">\nimport BCard from '../BCard/BCard.vue'\nimport BCardImg from '../BCard/BCardImg.vue'\nimport BPlaceholder from './BPlaceholder.vue'\nimport BPlaceholderButton from './BPlaceholderButton.vue'\nimport type {BPlaceholderCardProps} from '../../types/ComponentProps'\nimport {computed} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BPlaceholderCardSlots} from '../../types/ComponentSlots'\n\nconst _props = withDefaults(defineProps<BPlaceholderCardProps>(), {\n animation: undefined,\n footerAnimation: undefined,\n footerSize: 'md',\n footerVariant: undefined,\n footerWidth: 100,\n headerAnimation: undefined,\n headerSize: 'md',\n headerVariant: undefined,\n headerWidth: 100,\n imgBlankColor: '#868e96',\n imgPlacement: 'top',\n imgHeight: 100,\n imgSrc: undefined,\n noButton: false,\n noFooter: false,\n noHeader: false,\n noImg: false,\n size: 'md',\n variant: undefined,\n})\nconst props = useDefaults(_props, 'BPlaceholderCard')\ndefineSlots<BPlaceholderCardSlots>()\n\nconst defaultAttrs = computed(() => ({\n animation: props.animation,\n size: props.size,\n variant: props.variant,\n}))\n\nconst footerComponent = computed(() => (!props.noButton ? BPlaceholderButton : BPlaceholder))\n</script>\n","<template>\n <BCard :img-placement=\"props.imgPlacement\">\n <template v-if=\"!props.noImg\" #img>\n <slot name=\"img\">\n <BCardImg\n :blank=\"!props.imgSrc ? true : false\"\n :blank-color=\"props.imgBlankColor\"\n :height=\"!props.imgSrc ? props.imgHeight : undefined\"\n :src=\"props.imgSrc\"\n :img-placement=\"props.imgPlacement\"\n :style=\"{cursor: 'wait'}\"\n />\n </slot>\n </template>\n\n <template v-if=\"!props.noHeader\" #header>\n <slot name=\"header\">\n <BPlaceholder\n :width=\"props.headerWidth\"\n :variant=\"props.headerVariant\"\n :animation=\"props.headerAnimation\"\n :size=\"props.headerSize\"\n />\n </slot>\n </template>\n <slot>\n <BPlaceholder cols=\"7\" v-bind=\"defaultAttrs\" />\n <BPlaceholder cols=\"4\" v-bind=\"defaultAttrs\" />\n <BPlaceholder cols=\"4\" v-bind=\"defaultAttrs\" />\n <BPlaceholder cols=\"6\" v-bind=\"defaultAttrs\" />\n <BPlaceholder cols=\"8\" v-bind=\"defaultAttrs\" />\n </slot>\n <template v-if=\"!props.noFooter\" #footer>\n <slot name=\"footer\">\n <component\n :is=\"footerComponent\"\n :width=\"props.footerWidth\"\n :animation=\"props.footerAnimation\"\n :size=\"props.noButton ? props.footerSize : undefined\"\n :variant=\"props.footerVariant\"\n />\n </slot>\n </template>\n </BCard>\n</template>\n\n<script setup lang=\"ts\">\nimport BCard from '../BCard/BCard.vue'\nimport BCardImg from '../BCard/BCardImg.vue'\nimport BPlaceholder from './BPlaceholder.vue'\nimport BPlaceholderButton from './BPlaceholderButton.vue'\nimport type {BPlaceholderCardProps} from '../../types/ComponentProps'\nimport {computed} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BPlaceholderCardSlots} from '../../types/ComponentSlots'\n\nconst _props = withDefaults(defineProps<BPlaceholderCardProps>(), {\n animation: undefined,\n footerAnimation: undefined,\n footerSize: 'md',\n footerVariant: undefined,\n footerWidth: 100,\n headerAnimation: undefined,\n headerSize: 'md',\n headerVariant: undefined,\n headerWidth: 100,\n imgBlankColor: '#868e96',\n imgPlacement: 'top',\n imgHeight: 100,\n imgSrc: undefined,\n noButton: false,\n noFooter: false,\n noHeader: false,\n noImg: false,\n size: 'md',\n variant: undefined,\n})\nconst props = useDefaults(_props, 'BPlaceholderCard')\ndefineSlots<BPlaceholderCardSlots>()\n\nconst defaultAttrs = computed(() => ({\n animation: props.animation,\n size: props.size,\n variant: props.variant,\n}))\n\nconst footerComponent = computed(() => (!props.noButton ? BPlaceholderButton : BPlaceholder))\n</script>\n","<template>\n <BTableSimple>\n <slot v-if=\"!props.noHeader\" name=\"thead\">\n <thead>\n <tr>\n <th v-for=\"(_, i) in computedHeaderColumnsLength\" :key=\"i\">\n <BPlaceholder\n :size=\"props.headerSize\"\n :variant=\"props.headerVariant\"\n :animation=\"props.headerAnimation\"\n :width=\"props.headerCellWidth\"\n />\n </th>\n </tr>\n </thead>\n </slot>\n <slot>\n <tbody>\n <tr v-for=\"(_, j) in rowsNumber\" :key=\"j\">\n <td v-for=\"(__, k) in columnsNumber\" :key=\"k\">\n <BPlaceholder\n :size=\"props.size\"\n :variant=\"props.variant\"\n :animation=\"props.animation\"\n :width=\"props.cellWidth\"\n />\n </td>\n </tr>\n </tbody>\n </slot>\n <slot v-if=\"props.showFooter\" name=\"tfoot\">\n <tfoot>\n <tr>\n <th v-for=\"(_, l) in computedFooterColumnsLength\" :key=\"l\">\n <BPlaceholder\n :size=\"props.footerSize\"\n :variant=\"props.footerVariant\"\n :animation=\"props.footerAnimation\"\n :width=\"props.footerCellWidth\"\n />\n </th>\n </tr>\n </tfoot>\n </slot>\n </BTableSimple>\n</template>\n\n<script setup lang=\"ts\">\nimport type {BPlaceholderTableProps} from '../../types/ComponentProps'\nimport BTableSimple from '../BTable/BTableSimple.vue'\nimport BPlaceholder from './BPlaceholder.vue'\nimport {useToNumber} from '@vueuse/core'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {computed} from 'vue'\nimport type {BPlaceholderTableSlots} from '../../types'\n\nconst _props = withDefaults(defineProps<BPlaceholderTableProps>(), {\n animation: undefined,\n cellWidth: 100,\n columns: 5,\n footerAnimation: undefined,\n footerCellWidth: 100,\n footerColumns: undefined,\n footerSize: 'md',\n footerVariant: undefined,\n headerAnimation: undefined,\n headerCellWidth: 100,\n headerColumns: undefined,\n headerSize: 'md',\n headerVariant: undefined,\n noHeader: false,\n rows: 3,\n showFooter: false,\n size: 'md',\n variant: undefined,\n})\nconst props = useDefaults(_props, 'BPlaceholderTable')\ndefineSlots<BPlaceholderTableSlots>()\n\nconst columnsToNumber = useToNumber(() => props.columns)\nconst rowsToNumber = useToNumber(() => props.rows)\nconst computedHeaderColumns = computed(() => props.headerColumns ?? Number.NaN)\nconst computedFooterColumns = computed(() => props.footerColumns ?? Number.NaN)\nconst headerColumnsNumber = useToNumber(computedHeaderColumns)\nconst footerColumnsNumber = useToNumber(computedFooterColumns)\n\nconst columnsNumber = computed(() => columnsToNumber.value || 5)\nconst rowsNumber = computed(() => rowsToNumber.value || 3)\n\nconst computedHeaderColumnsLength = computed(() =>\n props.headerColumns === undefined\n ? columnsNumber.value\n : Number.isNaN(headerColumnsNumber.value)\n ? columnsNumber.value\n : headerColumnsNumber.value\n)\nconst computedFooterColumnsLength = computed(() =>\n props.footerColumns === undefined\n ? columnsNumber.value\n : Number.isNaN(footerColumnsNumber.value)\n ? columnsNumber.value\n : footerColumnsNumber.value\n)\n</script>\n","<template>\n <BTableSimple>\n <slot v-if=\"!props.noHeader\" name=\"thead\">\n <thead>\n <tr>\n <th v-for=\"(_, i) in computedHeaderColumnsLength\" :key=\"i\">\n <BPlaceholder\n :size=\"props.headerSize\"\n :variant=\"props.headerVariant\"\n :animation=\"props.headerAnimation\"\n :width=\"props.headerCellWidth\"\n />\n </th>\n </tr>\n </thead>\n </slot>\n <slot>\n <tbody>\n <tr v-for=\"(_, j) in rowsNumber\" :key=\"j\">\n <td v-for=\"(__, k) in columnsNumber\" :key=\"k\">\n <BPlaceholder\n :size=\"props.size\"\n :variant=\"props.variant\"\n :animation=\"props.animation\"\n :width=\"props.cellWidth\"\n />\n </td>\n </tr>\n </tbody>\n </slot>\n <slot v-if=\"props.showFooter\" name=\"tfoot\">\n <tfoot>\n <tr>\n <th v-for=\"(_, l) in computedFooterColumnsLength\" :key=\"l\">\n <BPlaceholder\n :size=\"props.footerSize\"\n :variant=\"props.footerVariant\"\n :animation=\"props.footerAnimation\"\n :width=\"props.footerCellWidth\"\n />\n </th>\n </tr>\n </tfoot>\n </slot>\n </BTableSimple>\n</template>\n\n<script setup lang=\"ts\">\nimport type {BPlaceholderTableProps} from '../../types/ComponentProps'\nimport BTableSimple from '../BTable/BTableSimple.vue'\nimport BPlaceholder from './BPlaceholder.vue'\nimport {useToNumber} from '@vueuse/core'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {computed} from 'vue'\nimport type {BPlaceholderTableSlots} from '../../types'\n\nconst _props = withDefaults(defineProps<BPlaceholderTableProps>(), {\n animation: undefined,\n cellWidth: 100,\n columns: 5,\n footerAnimation: undefined,\n footerCellWidth: 100,\n footerColumns: undefined,\n footerSize: 'md',\n footerVariant: undefined,\n headerAnimation: undefined,\n headerCellWidth: 100,\n headerColumns: undefined,\n headerSize: 'md',\n headerVariant: undefined,\n noHeader: false,\n rows: 3,\n showFooter: false,\n size: 'md',\n variant: undefined,\n})\nconst props = useDefaults(_props, 'BPlaceholderTable')\ndefineSlots<BPlaceholderTableSlots>()\n\nconst columnsToNumber = useToNumber(() => props.columns)\nconst rowsToNumber = useToNumber(() => props.rows)\nconst computedHeaderColumns = computed(() => props.headerColumns ?? Number.NaN)\nconst computedFooterColumns = computed(() => props.footerColumns ?? Number.NaN)\nconst headerColumnsNumber = useToNumber(computedHeaderColumns)\nconst footerColumnsNumber = useToNumber(computedFooterColumns)\n\nconst columnsNumber = computed(() => columnsToNumber.value || 5)\nconst rowsNumber = computed(() => rowsToNumber.value || 3)\n\nconst computedHeaderColumnsLength = computed(() =>\n props.headerColumns === undefined\n ? columnsNumber.value\n : Number.isNaN(headerColumnsNumber.value)\n ? columnsNumber.value\n : headerColumnsNumber.value\n)\nconst computedFooterColumnsLength = computed(() =>\n props.footerColumns === undefined\n ? columnsNumber.value\n : Number.isNaN(footerColumnsNumber.value)\n ? columnsNumber.value\n : footerColumnsNumber.value\n)\n</script>\n","<template>\n <slot v-if=\"props.loading\" name=\"loading\" />\n <slot v-else />\n</template>\n\n<script setup lang=\"ts\">\nimport type {BPlaceholderWrapperSlots} from '../../types'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BPlaceholderWrapperProps} from '../../types/ComponentProps'\n\nconst _props = withDefaults(defineProps<BPlaceholderWrapperProps>(), {\n loading: false,\n})\nconst props = useDefaults(_props, 'BPlaceholderWrapper')\ndefineSlots<BPlaceholderWrapperSlots>()\n</script>\n","<template>\n <slot v-if=\"props.loading\" name=\"loading\" />\n <slot v-else />\n</template>\n\n<script setup lang=\"ts\">\nimport type {BPlaceholderWrapperSlots} from '../../types'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BPlaceholderWrapperProps} from '../../types/ComponentProps'\n\nconst _props = withDefaults(defineProps<BPlaceholderWrapperProps>(), {\n loading: false,\n})\nconst props = useDefaults(_props, 'BPlaceholderWrapper')\ndefineSlots<BPlaceholderWrapperSlots>()\n</script>\n"],"mappings":"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"}
1
+ {"version":3,"file":"BPlaceholder-C4AOg29f.mjs","names":["$attrs"],"sources":["../src/components/BPlaceholder/BPlaceholder.vue","../src/components/BPlaceholder/BPlaceholder.vue","../src/components/BPlaceholder/BPlaceholderButton.vue","../src/components/BPlaceholder/BPlaceholderButton.vue","../src/components/BPlaceholder/BPlaceholderCard.vue","../src/components/BPlaceholder/BPlaceholderCard.vue","../src/components/BPlaceholder/BPlaceholderTable.vue","../src/components/BPlaceholder/BPlaceholderTable.vue","../src/components/BPlaceholder/BPlaceholderWrapper.vue","../src/components/BPlaceholder/BPlaceholderWrapper.vue"],"sourcesContent":["<template>\n <component :is=\"props.wrapperTag\" :class=\"wrapperClasses\">\n <component\n v-bind=\"$attrs\"\n :is=\"tag\"\n class=\"placeholder\"\n :class=\"computedClasses\"\n :style=\"computedStyle\"\n />\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, type CSSProperties} from 'vue'\nimport type {BPlaceholderProps} from '../../types/ComponentProps'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BPlaceholderProps>(), {\n animation: undefined,\n cols: 12,\n size: 'md',\n tag: 'span',\n variant: null,\n width: undefined,\n wrapperTag: 'span',\n})\nconst props = useDefaults(_props, 'BPlaceholder')\n\nconst widthString = computed(() =>\n props.width === undefined\n ? undefined\n : typeof props.width === 'number'\n ? props.width.toString()\n : props.width.replace('%', '')\n)\n\nconst colsString = computed(() =>\n props.cols === undefined\n ? undefined\n : typeof props.cols === 'number'\n ? props.cols.toString()\n : props.cols\n)\n\nconst colorClasses = useColorVariantClasses(\n computed(() => ({\n bgVariant: props.variant,\n }))\n)\nconst computedClasses = computed(() => [\n colorClasses.value,\n {\n [`col-${colsString.value}`]: colsString.value !== undefined && widthString.value === undefined,\n [`placeholder-${props.size}`]: props.size !== 'md',\n },\n])\n\nconst wrapperClasses = computed(() => ({\n [`placeholder-${props.animation}`]: props.animation !== undefined,\n}))\n\nconst computedStyle = computed<CSSProperties>(() => ({\n width: widthString.value === undefined ? undefined : `${widthString.value}%`,\n}))\n</script>\n","<template>\n <component :is=\"props.wrapperTag\" :class=\"wrapperClasses\">\n <component\n v-bind=\"$attrs\"\n :is=\"tag\"\n class=\"placeholder\"\n :class=\"computedClasses\"\n :style=\"computedStyle\"\n />\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, type CSSProperties} from 'vue'\nimport type {BPlaceholderProps} from '../../types/ComponentProps'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BPlaceholderProps>(), {\n animation: undefined,\n cols: 12,\n size: 'md',\n tag: 'span',\n variant: null,\n width: undefined,\n wrapperTag: 'span',\n})\nconst props = useDefaults(_props, 'BPlaceholder')\n\nconst widthString = computed(() =>\n props.width === undefined\n ? undefined\n : typeof props.width === 'number'\n ? props.width.toString()\n : props.width.replace('%', '')\n)\n\nconst colsString = computed(() =>\n props.cols === undefined\n ? undefined\n : typeof props.cols === 'number'\n ? props.cols.toString()\n : props.cols\n)\n\nconst colorClasses = useColorVariantClasses(\n computed(() => ({\n bgVariant: props.variant,\n }))\n)\nconst computedClasses = computed(() => [\n colorClasses.value,\n {\n [`col-${colsString.value}`]: colsString.value !== undefined && widthString.value === undefined,\n [`placeholder-${props.size}`]: props.size !== 'md',\n },\n])\n\nconst wrapperClasses = computed(() => ({\n [`placeholder-${props.animation}`]: props.animation !== undefined,\n}))\n\nconst computedStyle = computed<CSSProperties>(() => ({\n width: widthString.value === undefined ? undefined : `${widthString.value}%`,\n}))\n</script>\n","<template>\n <BPlaceholder\n class=\"btn disabled\"\n :class=\"computedClasses\"\n :animation=\"props.animation\"\n :width=\"props.width\"\n :cols=\"props.cols\"\n :tag=\"props.tag\"\n :style=\"{'cursor': 'wait', 'pointer-events': 'auto'}\"\n />\n</template>\n\n<script setup lang=\"ts\">\nimport BPlaceholder from './BPlaceholder.vue'\nimport type {BPlaceholderButtonProps} from '../../types/ComponentProps'\nimport {computed} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\n\nconst _props = withDefaults(defineProps<BPlaceholderButtonProps>(), {\n animation: undefined,\n cols: undefined,\n tag: 'div',\n variant: 'primary',\n width: undefined,\n})\nconst props = useDefaults(_props, 'BPlaceholderButton')\n\nconst computedClasses = computed(() => ({\n [`btn-${props.variant}`]: props.variant !== null,\n}))\n</script>\n","<template>\n <BPlaceholder\n class=\"btn disabled\"\n :class=\"computedClasses\"\n :animation=\"props.animation\"\n :width=\"props.width\"\n :cols=\"props.cols\"\n :tag=\"props.tag\"\n :style=\"{'cursor': 'wait', 'pointer-events': 'auto'}\"\n />\n</template>\n\n<script setup lang=\"ts\">\nimport BPlaceholder from './BPlaceholder.vue'\nimport type {BPlaceholderButtonProps} from '../../types/ComponentProps'\nimport {computed} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\n\nconst _props = withDefaults(defineProps<BPlaceholderButtonProps>(), {\n animation: undefined,\n cols: undefined,\n tag: 'div',\n variant: 'primary',\n width: undefined,\n})\nconst props = useDefaults(_props, 'BPlaceholderButton')\n\nconst computedClasses = computed(() => ({\n [`btn-${props.variant}`]: props.variant !== null,\n}))\n</script>\n","<template>\n <BCard :img-placement=\"props.imgPlacement\">\n <template v-if=\"!props.noImg\" #img>\n <slot name=\"img\">\n <BCardImg\n :blank=\"!props.imgSrc ? true : false\"\n :blank-color=\"props.imgBlankColor\"\n :height=\"!props.imgSrc ? props.imgHeight : undefined\"\n :src=\"props.imgSrc\"\n :img-placement=\"props.imgPlacement\"\n :style=\"{cursor: 'wait'}\"\n />\n </slot>\n </template>\n\n <template v-if=\"!props.noHeader\" #header>\n <slot name=\"header\">\n <BPlaceholder\n :width=\"props.headerWidth\"\n :variant=\"props.headerVariant\"\n :animation=\"props.headerAnimation\"\n :size=\"props.headerSize\"\n />\n </slot>\n </template>\n <slot>\n <BPlaceholder cols=\"7\" v-bind=\"defaultAttrs\" />\n <BPlaceholder cols=\"4\" v-bind=\"defaultAttrs\" />\n <BPlaceholder cols=\"4\" v-bind=\"defaultAttrs\" />\n <BPlaceholder cols=\"6\" v-bind=\"defaultAttrs\" />\n <BPlaceholder cols=\"8\" v-bind=\"defaultAttrs\" />\n </slot>\n <template v-if=\"!props.noFooter\" #footer>\n <slot name=\"footer\">\n <component\n :is=\"footerComponent\"\n :width=\"props.footerWidth\"\n :animation=\"props.footerAnimation\"\n :size=\"props.noButton ? props.footerSize : undefined\"\n :variant=\"props.footerVariant\"\n />\n </slot>\n </template>\n </BCard>\n</template>\n\n<script setup lang=\"ts\">\nimport BCard from '../BCard/BCard.vue'\nimport BCardImg from '../BCard/BCardImg.vue'\nimport BPlaceholder from './BPlaceholder.vue'\nimport BPlaceholderButton from './BPlaceholderButton.vue'\nimport type {BPlaceholderCardProps} from '../../types/ComponentProps'\nimport {computed} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BPlaceholderCardSlots} from '../../types/ComponentSlots'\n\nconst _props = withDefaults(defineProps<BPlaceholderCardProps>(), {\n animation: undefined,\n footerAnimation: undefined,\n footerSize: 'md',\n footerVariant: undefined,\n footerWidth: 100,\n headerAnimation: undefined,\n headerSize: 'md',\n headerVariant: undefined,\n headerWidth: 100,\n imgBlankColor: '#868e96',\n imgPlacement: 'top',\n imgHeight: 100,\n imgSrc: undefined,\n noButton: false,\n noFooter: false,\n noHeader: false,\n noImg: false,\n size: 'md',\n variant: undefined,\n})\nconst props = useDefaults(_props, 'BPlaceholderCard')\ndefineSlots<BPlaceholderCardSlots>()\n\nconst defaultAttrs = computed(() => ({\n animation: props.animation,\n size: props.size,\n variant: props.variant,\n}))\n\nconst footerComponent = computed(() => (!props.noButton ? BPlaceholderButton : BPlaceholder))\n</script>\n","<template>\n <BCard :img-placement=\"props.imgPlacement\">\n <template v-if=\"!props.noImg\" #img>\n <slot name=\"img\">\n <BCardImg\n :blank=\"!props.imgSrc ? true : false\"\n :blank-color=\"props.imgBlankColor\"\n :height=\"!props.imgSrc ? props.imgHeight : undefined\"\n :src=\"props.imgSrc\"\n :img-placement=\"props.imgPlacement\"\n :style=\"{cursor: 'wait'}\"\n />\n </slot>\n </template>\n\n <template v-if=\"!props.noHeader\" #header>\n <slot name=\"header\">\n <BPlaceholder\n :width=\"props.headerWidth\"\n :variant=\"props.headerVariant\"\n :animation=\"props.headerAnimation\"\n :size=\"props.headerSize\"\n />\n </slot>\n </template>\n <slot>\n <BPlaceholder cols=\"7\" v-bind=\"defaultAttrs\" />\n <BPlaceholder cols=\"4\" v-bind=\"defaultAttrs\" />\n <BPlaceholder cols=\"4\" v-bind=\"defaultAttrs\" />\n <BPlaceholder cols=\"6\" v-bind=\"defaultAttrs\" />\n <BPlaceholder cols=\"8\" v-bind=\"defaultAttrs\" />\n </slot>\n <template v-if=\"!props.noFooter\" #footer>\n <slot name=\"footer\">\n <component\n :is=\"footerComponent\"\n :width=\"props.footerWidth\"\n :animation=\"props.footerAnimation\"\n :size=\"props.noButton ? props.footerSize : undefined\"\n :variant=\"props.footerVariant\"\n />\n </slot>\n </template>\n </BCard>\n</template>\n\n<script setup lang=\"ts\">\nimport BCard from '../BCard/BCard.vue'\nimport BCardImg from '../BCard/BCardImg.vue'\nimport BPlaceholder from './BPlaceholder.vue'\nimport BPlaceholderButton from './BPlaceholderButton.vue'\nimport type {BPlaceholderCardProps} from '../../types/ComponentProps'\nimport {computed} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BPlaceholderCardSlots} from '../../types/ComponentSlots'\n\nconst _props = withDefaults(defineProps<BPlaceholderCardProps>(), {\n animation: undefined,\n footerAnimation: undefined,\n footerSize: 'md',\n footerVariant: undefined,\n footerWidth: 100,\n headerAnimation: undefined,\n headerSize: 'md',\n headerVariant: undefined,\n headerWidth: 100,\n imgBlankColor: '#868e96',\n imgPlacement: 'top',\n imgHeight: 100,\n imgSrc: undefined,\n noButton: false,\n noFooter: false,\n noHeader: false,\n noImg: false,\n size: 'md',\n variant: undefined,\n})\nconst props = useDefaults(_props, 'BPlaceholderCard')\ndefineSlots<BPlaceholderCardSlots>()\n\nconst defaultAttrs = computed(() => ({\n animation: props.animation,\n size: props.size,\n variant: props.variant,\n}))\n\nconst footerComponent = computed(() => (!props.noButton ? BPlaceholderButton : BPlaceholder))\n</script>\n","<template>\n <BTableSimple>\n <slot v-if=\"!props.noHeader\" name=\"thead\">\n <thead>\n <tr>\n <th v-for=\"(_, i) in computedHeaderColumnsLength\" :key=\"i\">\n <BPlaceholder\n :size=\"props.headerSize\"\n :variant=\"props.headerVariant\"\n :animation=\"props.headerAnimation\"\n :width=\"props.headerCellWidth\"\n />\n </th>\n </tr>\n </thead>\n </slot>\n <slot>\n <tbody>\n <tr v-for=\"(_, j) in rowsNumber\" :key=\"j\">\n <td v-for=\"(__, k) in columnsNumber\" :key=\"k\">\n <BPlaceholder\n :size=\"props.size\"\n :variant=\"props.variant\"\n :animation=\"props.animation\"\n :width=\"props.cellWidth\"\n />\n </td>\n </tr>\n </tbody>\n </slot>\n <slot v-if=\"props.showFooter\" name=\"tfoot\">\n <tfoot>\n <tr>\n <th v-for=\"(_, l) in computedFooterColumnsLength\" :key=\"l\">\n <BPlaceholder\n :size=\"props.footerSize\"\n :variant=\"props.footerVariant\"\n :animation=\"props.footerAnimation\"\n :width=\"props.footerCellWidth\"\n />\n </th>\n </tr>\n </tfoot>\n </slot>\n </BTableSimple>\n</template>\n\n<script setup lang=\"ts\">\nimport type {BPlaceholderTableProps} from '../../types/ComponentProps'\nimport BTableSimple from '../BTable/BTableSimple.vue'\nimport BPlaceholder from './BPlaceholder.vue'\nimport {useToNumber} from '@vueuse/core'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {computed} from 'vue'\nimport type {BPlaceholderTableSlots} from '../../types'\n\nconst _props = withDefaults(defineProps<BPlaceholderTableProps>(), {\n animation: undefined,\n cellWidth: 100,\n columns: 5,\n footerAnimation: undefined,\n footerCellWidth: 100,\n footerColumns: undefined,\n footerSize: 'md',\n footerVariant: undefined,\n headerAnimation: undefined,\n headerCellWidth: 100,\n headerColumns: undefined,\n headerSize: 'md',\n headerVariant: undefined,\n noHeader: false,\n rows: 3,\n showFooter: false,\n size: 'md',\n variant: undefined,\n})\nconst props = useDefaults(_props, 'BPlaceholderTable')\ndefineSlots<BPlaceholderTableSlots>()\n\nconst columnsToNumber = useToNumber(() => props.columns)\nconst rowsToNumber = useToNumber(() => props.rows)\nconst computedHeaderColumns = computed(() => props.headerColumns ?? Number.NaN)\nconst computedFooterColumns = computed(() => props.footerColumns ?? Number.NaN)\nconst headerColumnsNumber = useToNumber(computedHeaderColumns)\nconst footerColumnsNumber = useToNumber(computedFooterColumns)\n\nconst columnsNumber = computed(() => columnsToNumber.value || 5)\nconst rowsNumber = computed(() => rowsToNumber.value || 3)\n\nconst computedHeaderColumnsLength = computed(() =>\n props.headerColumns === undefined\n ? columnsNumber.value\n : Number.isNaN(headerColumnsNumber.value)\n ? columnsNumber.value\n : headerColumnsNumber.value\n)\nconst computedFooterColumnsLength = computed(() =>\n props.footerColumns === undefined\n ? columnsNumber.value\n : Number.isNaN(footerColumnsNumber.value)\n ? columnsNumber.value\n : footerColumnsNumber.value\n)\n</script>\n","<template>\n <BTableSimple>\n <slot v-if=\"!props.noHeader\" name=\"thead\">\n <thead>\n <tr>\n <th v-for=\"(_, i) in computedHeaderColumnsLength\" :key=\"i\">\n <BPlaceholder\n :size=\"props.headerSize\"\n :variant=\"props.headerVariant\"\n :animation=\"props.headerAnimation\"\n :width=\"props.headerCellWidth\"\n />\n </th>\n </tr>\n </thead>\n </slot>\n <slot>\n <tbody>\n <tr v-for=\"(_, j) in rowsNumber\" :key=\"j\">\n <td v-for=\"(__, k) in columnsNumber\" :key=\"k\">\n <BPlaceholder\n :size=\"props.size\"\n :variant=\"props.variant\"\n :animation=\"props.animation\"\n :width=\"props.cellWidth\"\n />\n </td>\n </tr>\n </tbody>\n </slot>\n <slot v-if=\"props.showFooter\" name=\"tfoot\">\n <tfoot>\n <tr>\n <th v-for=\"(_, l) in computedFooterColumnsLength\" :key=\"l\">\n <BPlaceholder\n :size=\"props.footerSize\"\n :variant=\"props.footerVariant\"\n :animation=\"props.footerAnimation\"\n :width=\"props.footerCellWidth\"\n />\n </th>\n </tr>\n </tfoot>\n </slot>\n </BTableSimple>\n</template>\n\n<script setup lang=\"ts\">\nimport type {BPlaceholderTableProps} from '../../types/ComponentProps'\nimport BTableSimple from '../BTable/BTableSimple.vue'\nimport BPlaceholder from './BPlaceholder.vue'\nimport {useToNumber} from '@vueuse/core'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {computed} from 'vue'\nimport type {BPlaceholderTableSlots} from '../../types'\n\nconst _props = withDefaults(defineProps<BPlaceholderTableProps>(), {\n animation: undefined,\n cellWidth: 100,\n columns: 5,\n footerAnimation: undefined,\n footerCellWidth: 100,\n footerColumns: undefined,\n footerSize: 'md',\n footerVariant: undefined,\n headerAnimation: undefined,\n headerCellWidth: 100,\n headerColumns: undefined,\n headerSize: 'md',\n headerVariant: undefined,\n noHeader: false,\n rows: 3,\n showFooter: false,\n size: 'md',\n variant: undefined,\n})\nconst props = useDefaults(_props, 'BPlaceholderTable')\ndefineSlots<BPlaceholderTableSlots>()\n\nconst columnsToNumber = useToNumber(() => props.columns)\nconst rowsToNumber = useToNumber(() => props.rows)\nconst computedHeaderColumns = computed(() => props.headerColumns ?? Number.NaN)\nconst computedFooterColumns = computed(() => props.footerColumns ?? Number.NaN)\nconst headerColumnsNumber = useToNumber(computedHeaderColumns)\nconst footerColumnsNumber = useToNumber(computedFooterColumns)\n\nconst columnsNumber = computed(() => columnsToNumber.value || 5)\nconst rowsNumber = computed(() => rowsToNumber.value || 3)\n\nconst computedHeaderColumnsLength = computed(() =>\n props.headerColumns === undefined\n ? columnsNumber.value\n : Number.isNaN(headerColumnsNumber.value)\n ? columnsNumber.value\n : headerColumnsNumber.value\n)\nconst computedFooterColumnsLength = computed(() =>\n props.footerColumns === undefined\n ? columnsNumber.value\n : Number.isNaN(footerColumnsNumber.value)\n ? columnsNumber.value\n : footerColumnsNumber.value\n)\n</script>\n","<template>\n <slot v-if=\"props.loading\" name=\"loading\" />\n <slot v-else />\n</template>\n\n<script setup lang=\"ts\">\nimport type {BPlaceholderWrapperSlots} from '../../types'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BPlaceholderWrapperProps} from '../../types/ComponentProps'\n\nconst _props = withDefaults(defineProps<BPlaceholderWrapperProps>(), {\n loading: false,\n})\nconst props = useDefaults(_props, 'BPlaceholderWrapper')\ndefineSlots<BPlaceholderWrapperSlots>()\n</script>\n","<template>\n <slot v-if=\"props.loading\" name=\"loading\" />\n <slot v-else />\n</template>\n\n<script setup lang=\"ts\">\nimport type {BPlaceholderWrapperSlots} from '../../types'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BPlaceholderWrapperProps} from '../../types/ComponentProps'\n\nconst _props = withDefaults(defineProps<BPlaceholderWrapperProps>(), {\n loading: false,\n})\nconst props = useDefaults(_props, 'BPlaceholderWrapper')\ndefineSlots<BPlaceholderWrapperSlots>()\n</script>\n"],"mappings":"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"}
@@ -1,9 +1,9 @@
1
1
  require("./chunk-CoQrYLCe.js");
2
- const require_dist = require("./dist-B_c893QG.js");
3
- const require_useDefaults = require("./useDefaults-DK6Y9lar.js");
4
- const require_useColorVariantClasses = require("./useColorVariantClasses-DVaQDVQC.js");
5
- const require_BCard = require("./BCard-BIQQg9Rx.js");
6
- const require_BTableSimple = require("./BTableSimple-fwaF0Kws.js");
2
+ const require_dist = require("./dist-BJ15ThEs.js");
3
+ const require_useDefaults = require("./useDefaults-DsLf4iRY.js");
4
+ const require_useColorVariantClasses = require("./useColorVariantClasses-CEfOwjPv.js");
5
+ const require_BCard = require("./BCard-CgbTFn3S.js");
6
+ const require_BTableSimple = require("./BTableSimple-BcdizuDm.js");
7
7
  let vue = require("vue");
8
8
  //#endregion
9
9
  //#region src/components/BPlaceholder/BPlaceholder.vue
@@ -323,4 +323,4 @@ Object.defineProperty(exports, "BPlaceholder_default", {
323
323
  }
324
324
  });
325
325
 
326
- //# sourceMappingURL=BPlaceholder-DPEVmogO.js.map
326
+ //# sourceMappingURL=BPlaceholder-DYYYuNgR.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BPlaceholder-DPEVmogO.js","names":["$attrs"],"sources":["../src/components/BPlaceholder/BPlaceholder.vue","../src/components/BPlaceholder/BPlaceholder.vue","../src/components/BPlaceholder/BPlaceholderButton.vue","../src/components/BPlaceholder/BPlaceholderButton.vue","../src/components/BPlaceholder/BPlaceholderCard.vue","../src/components/BPlaceholder/BPlaceholderCard.vue","../src/components/BPlaceholder/BPlaceholderTable.vue","../src/components/BPlaceholder/BPlaceholderTable.vue","../src/components/BPlaceholder/BPlaceholderWrapper.vue","../src/components/BPlaceholder/BPlaceholderWrapper.vue"],"sourcesContent":["<template>\n <component :is=\"props.wrapperTag\" :class=\"wrapperClasses\">\n <component\n v-bind=\"$attrs\"\n :is=\"tag\"\n class=\"placeholder\"\n :class=\"computedClasses\"\n :style=\"computedStyle\"\n />\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, type CSSProperties} from 'vue'\nimport type {BPlaceholderProps} from '../../types/ComponentProps'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BPlaceholderProps>(), {\n animation: undefined,\n cols: 12,\n size: 'md',\n tag: 'span',\n variant: null,\n width: undefined,\n wrapperTag: 'span',\n})\nconst props = useDefaults(_props, 'BPlaceholder')\n\nconst widthString = computed(() =>\n props.width === undefined\n ? undefined\n : typeof props.width === 'number'\n ? props.width.toString()\n : props.width.replace('%', '')\n)\n\nconst colsString = computed(() =>\n props.cols === undefined\n ? undefined\n : typeof props.cols === 'number'\n ? props.cols.toString()\n : props.cols\n)\n\nconst colorClasses = useColorVariantClasses(\n computed(() => ({\n bgVariant: props.variant,\n }))\n)\nconst computedClasses = computed(() => [\n colorClasses.value,\n {\n [`col-${colsString.value}`]: colsString.value !== undefined && widthString.value === undefined,\n [`placeholder-${props.size}`]: props.size !== 'md',\n },\n])\n\nconst wrapperClasses = computed(() => ({\n [`placeholder-${props.animation}`]: props.animation !== undefined,\n}))\n\nconst computedStyle = computed<CSSProperties>(() => ({\n width: widthString.value === undefined ? undefined : `${widthString.value}%`,\n}))\n</script>\n","<template>\n <component :is=\"props.wrapperTag\" :class=\"wrapperClasses\">\n <component\n v-bind=\"$attrs\"\n :is=\"tag\"\n class=\"placeholder\"\n :class=\"computedClasses\"\n :style=\"computedStyle\"\n />\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, type CSSProperties} from 'vue'\nimport type {BPlaceholderProps} from '../../types/ComponentProps'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BPlaceholderProps>(), {\n animation: undefined,\n cols: 12,\n size: 'md',\n tag: 'span',\n variant: null,\n width: undefined,\n wrapperTag: 'span',\n})\nconst props = useDefaults(_props, 'BPlaceholder')\n\nconst widthString = computed(() =>\n props.width === undefined\n ? undefined\n : typeof props.width === 'number'\n ? props.width.toString()\n : props.width.replace('%', '')\n)\n\nconst colsString = computed(() =>\n props.cols === undefined\n ? undefined\n : typeof props.cols === 'number'\n ? props.cols.toString()\n : props.cols\n)\n\nconst colorClasses = useColorVariantClasses(\n computed(() => ({\n bgVariant: props.variant,\n }))\n)\nconst computedClasses = computed(() => [\n colorClasses.value,\n {\n [`col-${colsString.value}`]: colsString.value !== undefined && widthString.value === undefined,\n [`placeholder-${props.size}`]: props.size !== 'md',\n },\n])\n\nconst wrapperClasses = computed(() => ({\n [`placeholder-${props.animation}`]: props.animation !== undefined,\n}))\n\nconst computedStyle = computed<CSSProperties>(() => ({\n width: widthString.value === undefined ? undefined : `${widthString.value}%`,\n}))\n</script>\n","<template>\n <BPlaceholder\n class=\"btn disabled\"\n :class=\"computedClasses\"\n :animation=\"props.animation\"\n :width=\"props.width\"\n :cols=\"props.cols\"\n :tag=\"props.tag\"\n :style=\"{'cursor': 'wait', 'pointer-events': 'auto'}\"\n />\n</template>\n\n<script setup lang=\"ts\">\nimport BPlaceholder from './BPlaceholder.vue'\nimport type {BPlaceholderButtonProps} from '../../types/ComponentProps'\nimport {computed} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\n\nconst _props = withDefaults(defineProps<BPlaceholderButtonProps>(), {\n animation: undefined,\n cols: undefined,\n tag: 'div',\n variant: 'primary',\n width: undefined,\n})\nconst props = useDefaults(_props, 'BPlaceholderButton')\n\nconst computedClasses = computed(() => ({\n [`btn-${props.variant}`]: props.variant !== null,\n}))\n</script>\n","<template>\n <BPlaceholder\n class=\"btn disabled\"\n :class=\"computedClasses\"\n :animation=\"props.animation\"\n :width=\"props.width\"\n :cols=\"props.cols\"\n :tag=\"props.tag\"\n :style=\"{'cursor': 'wait', 'pointer-events': 'auto'}\"\n />\n</template>\n\n<script setup lang=\"ts\">\nimport BPlaceholder from './BPlaceholder.vue'\nimport type {BPlaceholderButtonProps} from '../../types/ComponentProps'\nimport {computed} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\n\nconst _props = withDefaults(defineProps<BPlaceholderButtonProps>(), {\n animation: undefined,\n cols: undefined,\n tag: 'div',\n variant: 'primary',\n width: undefined,\n})\nconst props = useDefaults(_props, 'BPlaceholderButton')\n\nconst computedClasses = computed(() => ({\n [`btn-${props.variant}`]: props.variant !== null,\n}))\n</script>\n","<template>\n <BCard :img-placement=\"props.imgPlacement\">\n <template v-if=\"!props.noImg\" #img>\n <slot name=\"img\">\n <BCardImg\n :blank=\"!props.imgSrc ? true : false\"\n :blank-color=\"props.imgBlankColor\"\n :height=\"!props.imgSrc ? props.imgHeight : undefined\"\n :src=\"props.imgSrc\"\n :img-placement=\"props.imgPlacement\"\n :style=\"{cursor: 'wait'}\"\n />\n </slot>\n </template>\n\n <template v-if=\"!props.noHeader\" #header>\n <slot name=\"header\">\n <BPlaceholder\n :width=\"props.headerWidth\"\n :variant=\"props.headerVariant\"\n :animation=\"props.headerAnimation\"\n :size=\"props.headerSize\"\n />\n </slot>\n </template>\n <slot>\n <BPlaceholder cols=\"7\" v-bind=\"defaultAttrs\" />\n <BPlaceholder cols=\"4\" v-bind=\"defaultAttrs\" />\n <BPlaceholder cols=\"4\" v-bind=\"defaultAttrs\" />\n <BPlaceholder cols=\"6\" v-bind=\"defaultAttrs\" />\n <BPlaceholder cols=\"8\" v-bind=\"defaultAttrs\" />\n </slot>\n <template v-if=\"!props.noFooter\" #footer>\n <slot name=\"footer\">\n <component\n :is=\"footerComponent\"\n :width=\"props.footerWidth\"\n :animation=\"props.footerAnimation\"\n :size=\"props.noButton ? props.footerSize : undefined\"\n :variant=\"props.footerVariant\"\n />\n </slot>\n </template>\n </BCard>\n</template>\n\n<script setup lang=\"ts\">\nimport BCard from '../BCard/BCard.vue'\nimport BCardImg from '../BCard/BCardImg.vue'\nimport BPlaceholder from './BPlaceholder.vue'\nimport BPlaceholderButton from './BPlaceholderButton.vue'\nimport type {BPlaceholderCardProps} from '../../types/ComponentProps'\nimport {computed} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BPlaceholderCardSlots} from '../../types/ComponentSlots'\n\nconst _props = withDefaults(defineProps<BPlaceholderCardProps>(), {\n animation: undefined,\n footerAnimation: undefined,\n footerSize: 'md',\n footerVariant: undefined,\n footerWidth: 100,\n headerAnimation: undefined,\n headerSize: 'md',\n headerVariant: undefined,\n headerWidth: 100,\n imgBlankColor: '#868e96',\n imgPlacement: 'top',\n imgHeight: 100,\n imgSrc: undefined,\n noButton: false,\n noFooter: false,\n noHeader: false,\n noImg: false,\n size: 'md',\n variant: undefined,\n})\nconst props = useDefaults(_props, 'BPlaceholderCard')\ndefineSlots<BPlaceholderCardSlots>()\n\nconst defaultAttrs = computed(() => ({\n animation: props.animation,\n size: props.size,\n variant: props.variant,\n}))\n\nconst footerComponent = computed(() => (!props.noButton ? BPlaceholderButton : BPlaceholder))\n</script>\n","<template>\n <BCard :img-placement=\"props.imgPlacement\">\n <template v-if=\"!props.noImg\" #img>\n <slot name=\"img\">\n <BCardImg\n :blank=\"!props.imgSrc ? true : false\"\n :blank-color=\"props.imgBlankColor\"\n :height=\"!props.imgSrc ? props.imgHeight : undefined\"\n :src=\"props.imgSrc\"\n :img-placement=\"props.imgPlacement\"\n :style=\"{cursor: 'wait'}\"\n />\n </slot>\n </template>\n\n <template v-if=\"!props.noHeader\" #header>\n <slot name=\"header\">\n <BPlaceholder\n :width=\"props.headerWidth\"\n :variant=\"props.headerVariant\"\n :animation=\"props.headerAnimation\"\n :size=\"props.headerSize\"\n />\n </slot>\n </template>\n <slot>\n <BPlaceholder cols=\"7\" v-bind=\"defaultAttrs\" />\n <BPlaceholder cols=\"4\" v-bind=\"defaultAttrs\" />\n <BPlaceholder cols=\"4\" v-bind=\"defaultAttrs\" />\n <BPlaceholder cols=\"6\" v-bind=\"defaultAttrs\" />\n <BPlaceholder cols=\"8\" v-bind=\"defaultAttrs\" />\n </slot>\n <template v-if=\"!props.noFooter\" #footer>\n <slot name=\"footer\">\n <component\n :is=\"footerComponent\"\n :width=\"props.footerWidth\"\n :animation=\"props.footerAnimation\"\n :size=\"props.noButton ? props.footerSize : undefined\"\n :variant=\"props.footerVariant\"\n />\n </slot>\n </template>\n </BCard>\n</template>\n\n<script setup lang=\"ts\">\nimport BCard from '../BCard/BCard.vue'\nimport BCardImg from '../BCard/BCardImg.vue'\nimport BPlaceholder from './BPlaceholder.vue'\nimport BPlaceholderButton from './BPlaceholderButton.vue'\nimport type {BPlaceholderCardProps} from '../../types/ComponentProps'\nimport {computed} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BPlaceholderCardSlots} from '../../types/ComponentSlots'\n\nconst _props = withDefaults(defineProps<BPlaceholderCardProps>(), {\n animation: undefined,\n footerAnimation: undefined,\n footerSize: 'md',\n footerVariant: undefined,\n footerWidth: 100,\n headerAnimation: undefined,\n headerSize: 'md',\n headerVariant: undefined,\n headerWidth: 100,\n imgBlankColor: '#868e96',\n imgPlacement: 'top',\n imgHeight: 100,\n imgSrc: undefined,\n noButton: false,\n noFooter: false,\n noHeader: false,\n noImg: false,\n size: 'md',\n variant: undefined,\n})\nconst props = useDefaults(_props, 'BPlaceholderCard')\ndefineSlots<BPlaceholderCardSlots>()\n\nconst defaultAttrs = computed(() => ({\n animation: props.animation,\n size: props.size,\n variant: props.variant,\n}))\n\nconst footerComponent = computed(() => (!props.noButton ? BPlaceholderButton : BPlaceholder))\n</script>\n","<template>\n <BTableSimple>\n <slot v-if=\"!props.noHeader\" name=\"thead\">\n <thead>\n <tr>\n <th v-for=\"(_, i) in computedHeaderColumnsLength\" :key=\"i\">\n <BPlaceholder\n :size=\"props.headerSize\"\n :variant=\"props.headerVariant\"\n :animation=\"props.headerAnimation\"\n :width=\"props.headerCellWidth\"\n />\n </th>\n </tr>\n </thead>\n </slot>\n <slot>\n <tbody>\n <tr v-for=\"(_, j) in rowsNumber\" :key=\"j\">\n <td v-for=\"(__, k) in columnsNumber\" :key=\"k\">\n <BPlaceholder\n :size=\"props.size\"\n :variant=\"props.variant\"\n :animation=\"props.animation\"\n :width=\"props.cellWidth\"\n />\n </td>\n </tr>\n </tbody>\n </slot>\n <slot v-if=\"props.showFooter\" name=\"tfoot\">\n <tfoot>\n <tr>\n <th v-for=\"(_, l) in computedFooterColumnsLength\" :key=\"l\">\n <BPlaceholder\n :size=\"props.footerSize\"\n :variant=\"props.footerVariant\"\n :animation=\"props.footerAnimation\"\n :width=\"props.footerCellWidth\"\n />\n </th>\n </tr>\n </tfoot>\n </slot>\n </BTableSimple>\n</template>\n\n<script setup lang=\"ts\">\nimport type {BPlaceholderTableProps} from '../../types/ComponentProps'\nimport BTableSimple from '../BTable/BTableSimple.vue'\nimport BPlaceholder from './BPlaceholder.vue'\nimport {useToNumber} from '@vueuse/core'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {computed} from 'vue'\nimport type {BPlaceholderTableSlots} from '../../types'\n\nconst _props = withDefaults(defineProps<BPlaceholderTableProps>(), {\n animation: undefined,\n cellWidth: 100,\n columns: 5,\n footerAnimation: undefined,\n footerCellWidth: 100,\n footerColumns: undefined,\n footerSize: 'md',\n footerVariant: undefined,\n headerAnimation: undefined,\n headerCellWidth: 100,\n headerColumns: undefined,\n headerSize: 'md',\n headerVariant: undefined,\n noHeader: false,\n rows: 3,\n showFooter: false,\n size: 'md',\n variant: undefined,\n})\nconst props = useDefaults(_props, 'BPlaceholderTable')\ndefineSlots<BPlaceholderTableSlots>()\n\nconst columnsToNumber = useToNumber(() => props.columns)\nconst rowsToNumber = useToNumber(() => props.rows)\nconst computedHeaderColumns = computed(() => props.headerColumns ?? Number.NaN)\nconst computedFooterColumns = computed(() => props.footerColumns ?? Number.NaN)\nconst headerColumnsNumber = useToNumber(computedHeaderColumns)\nconst footerColumnsNumber = useToNumber(computedFooterColumns)\n\nconst columnsNumber = computed(() => columnsToNumber.value || 5)\nconst rowsNumber = computed(() => rowsToNumber.value || 3)\n\nconst computedHeaderColumnsLength = computed(() =>\n props.headerColumns === undefined\n ? columnsNumber.value\n : Number.isNaN(headerColumnsNumber.value)\n ? columnsNumber.value\n : headerColumnsNumber.value\n)\nconst computedFooterColumnsLength = computed(() =>\n props.footerColumns === undefined\n ? columnsNumber.value\n : Number.isNaN(footerColumnsNumber.value)\n ? columnsNumber.value\n : footerColumnsNumber.value\n)\n</script>\n","<template>\n <BTableSimple>\n <slot v-if=\"!props.noHeader\" name=\"thead\">\n <thead>\n <tr>\n <th v-for=\"(_, i) in computedHeaderColumnsLength\" :key=\"i\">\n <BPlaceholder\n :size=\"props.headerSize\"\n :variant=\"props.headerVariant\"\n :animation=\"props.headerAnimation\"\n :width=\"props.headerCellWidth\"\n />\n </th>\n </tr>\n </thead>\n </slot>\n <slot>\n <tbody>\n <tr v-for=\"(_, j) in rowsNumber\" :key=\"j\">\n <td v-for=\"(__, k) in columnsNumber\" :key=\"k\">\n <BPlaceholder\n :size=\"props.size\"\n :variant=\"props.variant\"\n :animation=\"props.animation\"\n :width=\"props.cellWidth\"\n />\n </td>\n </tr>\n </tbody>\n </slot>\n <slot v-if=\"props.showFooter\" name=\"tfoot\">\n <tfoot>\n <tr>\n <th v-for=\"(_, l) in computedFooterColumnsLength\" :key=\"l\">\n <BPlaceholder\n :size=\"props.footerSize\"\n :variant=\"props.footerVariant\"\n :animation=\"props.footerAnimation\"\n :width=\"props.footerCellWidth\"\n />\n </th>\n </tr>\n </tfoot>\n </slot>\n </BTableSimple>\n</template>\n\n<script setup lang=\"ts\">\nimport type {BPlaceholderTableProps} from '../../types/ComponentProps'\nimport BTableSimple from '../BTable/BTableSimple.vue'\nimport BPlaceholder from './BPlaceholder.vue'\nimport {useToNumber} from '@vueuse/core'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {computed} from 'vue'\nimport type {BPlaceholderTableSlots} from '../../types'\n\nconst _props = withDefaults(defineProps<BPlaceholderTableProps>(), {\n animation: undefined,\n cellWidth: 100,\n columns: 5,\n footerAnimation: undefined,\n footerCellWidth: 100,\n footerColumns: undefined,\n footerSize: 'md',\n footerVariant: undefined,\n headerAnimation: undefined,\n headerCellWidth: 100,\n headerColumns: undefined,\n headerSize: 'md',\n headerVariant: undefined,\n noHeader: false,\n rows: 3,\n showFooter: false,\n size: 'md',\n variant: undefined,\n})\nconst props = useDefaults(_props, 'BPlaceholderTable')\ndefineSlots<BPlaceholderTableSlots>()\n\nconst columnsToNumber = useToNumber(() => props.columns)\nconst rowsToNumber = useToNumber(() => props.rows)\nconst computedHeaderColumns = computed(() => props.headerColumns ?? Number.NaN)\nconst computedFooterColumns = computed(() => props.footerColumns ?? Number.NaN)\nconst headerColumnsNumber = useToNumber(computedHeaderColumns)\nconst footerColumnsNumber = useToNumber(computedFooterColumns)\n\nconst columnsNumber = computed(() => columnsToNumber.value || 5)\nconst rowsNumber = computed(() => rowsToNumber.value || 3)\n\nconst computedHeaderColumnsLength = computed(() =>\n props.headerColumns === undefined\n ? columnsNumber.value\n : Number.isNaN(headerColumnsNumber.value)\n ? columnsNumber.value\n : headerColumnsNumber.value\n)\nconst computedFooterColumnsLength = computed(() =>\n props.footerColumns === undefined\n ? columnsNumber.value\n : Number.isNaN(footerColumnsNumber.value)\n ? columnsNumber.value\n : footerColumnsNumber.value\n)\n</script>\n","<template>\n <slot v-if=\"props.loading\" name=\"loading\" />\n <slot v-else />\n</template>\n\n<script setup lang=\"ts\">\nimport type {BPlaceholderWrapperSlots} from '../../types'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BPlaceholderWrapperProps} from '../../types/ComponentProps'\n\nconst _props = withDefaults(defineProps<BPlaceholderWrapperProps>(), {\n loading: false,\n})\nconst props = useDefaults(_props, 'BPlaceholderWrapper')\ndefineSlots<BPlaceholderWrapperSlots>()\n</script>\n","<template>\n <slot v-if=\"props.loading\" name=\"loading\" />\n <slot v-else />\n</template>\n\n<script setup lang=\"ts\">\nimport type {BPlaceholderWrapperSlots} from '../../types'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BPlaceholderWrapperProps} from '../../types/ComponentProps'\n\nconst _props = withDefaults(defineProps<BPlaceholderWrapperProps>(), {\n loading: false,\n})\nconst props = useDefaults(_props, 'BPlaceholderWrapper')\ndefineSlots<BPlaceholderWrapperSlots>()\n</script>\n"],"mappings":"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"}
1
+ {"version":3,"file":"BPlaceholder-DYYYuNgR.js","names":["$attrs"],"sources":["../src/components/BPlaceholder/BPlaceholder.vue","../src/components/BPlaceholder/BPlaceholder.vue","../src/components/BPlaceholder/BPlaceholderButton.vue","../src/components/BPlaceholder/BPlaceholderButton.vue","../src/components/BPlaceholder/BPlaceholderCard.vue","../src/components/BPlaceholder/BPlaceholderCard.vue","../src/components/BPlaceholder/BPlaceholderTable.vue","../src/components/BPlaceholder/BPlaceholderTable.vue","../src/components/BPlaceholder/BPlaceholderWrapper.vue","../src/components/BPlaceholder/BPlaceholderWrapper.vue"],"sourcesContent":["<template>\n <component :is=\"props.wrapperTag\" :class=\"wrapperClasses\">\n <component\n v-bind=\"$attrs\"\n :is=\"tag\"\n class=\"placeholder\"\n :class=\"computedClasses\"\n :style=\"computedStyle\"\n />\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, type CSSProperties} from 'vue'\nimport type {BPlaceholderProps} from '../../types/ComponentProps'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BPlaceholderProps>(), {\n animation: undefined,\n cols: 12,\n size: 'md',\n tag: 'span',\n variant: null,\n width: undefined,\n wrapperTag: 'span',\n})\nconst props = useDefaults(_props, 'BPlaceholder')\n\nconst widthString = computed(() =>\n props.width === undefined\n ? undefined\n : typeof props.width === 'number'\n ? props.width.toString()\n : props.width.replace('%', '')\n)\n\nconst colsString = computed(() =>\n props.cols === undefined\n ? undefined\n : typeof props.cols === 'number'\n ? props.cols.toString()\n : props.cols\n)\n\nconst colorClasses = useColorVariantClasses(\n computed(() => ({\n bgVariant: props.variant,\n }))\n)\nconst computedClasses = computed(() => [\n colorClasses.value,\n {\n [`col-${colsString.value}`]: colsString.value !== undefined && widthString.value === undefined,\n [`placeholder-${props.size}`]: props.size !== 'md',\n },\n])\n\nconst wrapperClasses = computed(() => ({\n [`placeholder-${props.animation}`]: props.animation !== undefined,\n}))\n\nconst computedStyle = computed<CSSProperties>(() => ({\n width: widthString.value === undefined ? undefined : `${widthString.value}%`,\n}))\n</script>\n","<template>\n <component :is=\"props.wrapperTag\" :class=\"wrapperClasses\">\n <component\n v-bind=\"$attrs\"\n :is=\"tag\"\n class=\"placeholder\"\n :class=\"computedClasses\"\n :style=\"computedStyle\"\n />\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, type CSSProperties} from 'vue'\nimport type {BPlaceholderProps} from '../../types/ComponentProps'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BPlaceholderProps>(), {\n animation: undefined,\n cols: 12,\n size: 'md',\n tag: 'span',\n variant: null,\n width: undefined,\n wrapperTag: 'span',\n})\nconst props = useDefaults(_props, 'BPlaceholder')\n\nconst widthString = computed(() =>\n props.width === undefined\n ? undefined\n : typeof props.width === 'number'\n ? props.width.toString()\n : props.width.replace('%', '')\n)\n\nconst colsString = computed(() =>\n props.cols === undefined\n ? undefined\n : typeof props.cols === 'number'\n ? props.cols.toString()\n : props.cols\n)\n\nconst colorClasses = useColorVariantClasses(\n computed(() => ({\n bgVariant: props.variant,\n }))\n)\nconst computedClasses = computed(() => [\n colorClasses.value,\n {\n [`col-${colsString.value}`]: colsString.value !== undefined && widthString.value === undefined,\n [`placeholder-${props.size}`]: props.size !== 'md',\n },\n])\n\nconst wrapperClasses = computed(() => ({\n [`placeholder-${props.animation}`]: props.animation !== undefined,\n}))\n\nconst computedStyle = computed<CSSProperties>(() => ({\n width: widthString.value === undefined ? undefined : `${widthString.value}%`,\n}))\n</script>\n","<template>\n <BPlaceholder\n class=\"btn disabled\"\n :class=\"computedClasses\"\n :animation=\"props.animation\"\n :width=\"props.width\"\n :cols=\"props.cols\"\n :tag=\"props.tag\"\n :style=\"{'cursor': 'wait', 'pointer-events': 'auto'}\"\n />\n</template>\n\n<script setup lang=\"ts\">\nimport BPlaceholder from './BPlaceholder.vue'\nimport type {BPlaceholderButtonProps} from '../../types/ComponentProps'\nimport {computed} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\n\nconst _props = withDefaults(defineProps<BPlaceholderButtonProps>(), {\n animation: undefined,\n cols: undefined,\n tag: 'div',\n variant: 'primary',\n width: undefined,\n})\nconst props = useDefaults(_props, 'BPlaceholderButton')\n\nconst computedClasses = computed(() => ({\n [`btn-${props.variant}`]: props.variant !== null,\n}))\n</script>\n","<template>\n <BPlaceholder\n class=\"btn disabled\"\n :class=\"computedClasses\"\n :animation=\"props.animation\"\n :width=\"props.width\"\n :cols=\"props.cols\"\n :tag=\"props.tag\"\n :style=\"{'cursor': 'wait', 'pointer-events': 'auto'}\"\n />\n</template>\n\n<script setup lang=\"ts\">\nimport BPlaceholder from './BPlaceholder.vue'\nimport type {BPlaceholderButtonProps} from '../../types/ComponentProps'\nimport {computed} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\n\nconst _props = withDefaults(defineProps<BPlaceholderButtonProps>(), {\n animation: undefined,\n cols: undefined,\n tag: 'div',\n variant: 'primary',\n width: undefined,\n})\nconst props = useDefaults(_props, 'BPlaceholderButton')\n\nconst computedClasses = computed(() => ({\n [`btn-${props.variant}`]: props.variant !== null,\n}))\n</script>\n","<template>\n <BCard :img-placement=\"props.imgPlacement\">\n <template v-if=\"!props.noImg\" #img>\n <slot name=\"img\">\n <BCardImg\n :blank=\"!props.imgSrc ? true : false\"\n :blank-color=\"props.imgBlankColor\"\n :height=\"!props.imgSrc ? props.imgHeight : undefined\"\n :src=\"props.imgSrc\"\n :img-placement=\"props.imgPlacement\"\n :style=\"{cursor: 'wait'}\"\n />\n </slot>\n </template>\n\n <template v-if=\"!props.noHeader\" #header>\n <slot name=\"header\">\n <BPlaceholder\n :width=\"props.headerWidth\"\n :variant=\"props.headerVariant\"\n :animation=\"props.headerAnimation\"\n :size=\"props.headerSize\"\n />\n </slot>\n </template>\n <slot>\n <BPlaceholder cols=\"7\" v-bind=\"defaultAttrs\" />\n <BPlaceholder cols=\"4\" v-bind=\"defaultAttrs\" />\n <BPlaceholder cols=\"4\" v-bind=\"defaultAttrs\" />\n <BPlaceholder cols=\"6\" v-bind=\"defaultAttrs\" />\n <BPlaceholder cols=\"8\" v-bind=\"defaultAttrs\" />\n </slot>\n <template v-if=\"!props.noFooter\" #footer>\n <slot name=\"footer\">\n <component\n :is=\"footerComponent\"\n :width=\"props.footerWidth\"\n :animation=\"props.footerAnimation\"\n :size=\"props.noButton ? props.footerSize : undefined\"\n :variant=\"props.footerVariant\"\n />\n </slot>\n </template>\n </BCard>\n</template>\n\n<script setup lang=\"ts\">\nimport BCard from '../BCard/BCard.vue'\nimport BCardImg from '../BCard/BCardImg.vue'\nimport BPlaceholder from './BPlaceholder.vue'\nimport BPlaceholderButton from './BPlaceholderButton.vue'\nimport type {BPlaceholderCardProps} from '../../types/ComponentProps'\nimport {computed} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BPlaceholderCardSlots} from '../../types/ComponentSlots'\n\nconst _props = withDefaults(defineProps<BPlaceholderCardProps>(), {\n animation: undefined,\n footerAnimation: undefined,\n footerSize: 'md',\n footerVariant: undefined,\n footerWidth: 100,\n headerAnimation: undefined,\n headerSize: 'md',\n headerVariant: undefined,\n headerWidth: 100,\n imgBlankColor: '#868e96',\n imgPlacement: 'top',\n imgHeight: 100,\n imgSrc: undefined,\n noButton: false,\n noFooter: false,\n noHeader: false,\n noImg: false,\n size: 'md',\n variant: undefined,\n})\nconst props = useDefaults(_props, 'BPlaceholderCard')\ndefineSlots<BPlaceholderCardSlots>()\n\nconst defaultAttrs = computed(() => ({\n animation: props.animation,\n size: props.size,\n variant: props.variant,\n}))\n\nconst footerComponent = computed(() => (!props.noButton ? BPlaceholderButton : BPlaceholder))\n</script>\n","<template>\n <BCard :img-placement=\"props.imgPlacement\">\n <template v-if=\"!props.noImg\" #img>\n <slot name=\"img\">\n <BCardImg\n :blank=\"!props.imgSrc ? true : false\"\n :blank-color=\"props.imgBlankColor\"\n :height=\"!props.imgSrc ? props.imgHeight : undefined\"\n :src=\"props.imgSrc\"\n :img-placement=\"props.imgPlacement\"\n :style=\"{cursor: 'wait'}\"\n />\n </slot>\n </template>\n\n <template v-if=\"!props.noHeader\" #header>\n <slot name=\"header\">\n <BPlaceholder\n :width=\"props.headerWidth\"\n :variant=\"props.headerVariant\"\n :animation=\"props.headerAnimation\"\n :size=\"props.headerSize\"\n />\n </slot>\n </template>\n <slot>\n <BPlaceholder cols=\"7\" v-bind=\"defaultAttrs\" />\n <BPlaceholder cols=\"4\" v-bind=\"defaultAttrs\" />\n <BPlaceholder cols=\"4\" v-bind=\"defaultAttrs\" />\n <BPlaceholder cols=\"6\" v-bind=\"defaultAttrs\" />\n <BPlaceholder cols=\"8\" v-bind=\"defaultAttrs\" />\n </slot>\n <template v-if=\"!props.noFooter\" #footer>\n <slot name=\"footer\">\n <component\n :is=\"footerComponent\"\n :width=\"props.footerWidth\"\n :animation=\"props.footerAnimation\"\n :size=\"props.noButton ? props.footerSize : undefined\"\n :variant=\"props.footerVariant\"\n />\n </slot>\n </template>\n </BCard>\n</template>\n\n<script setup lang=\"ts\">\nimport BCard from '../BCard/BCard.vue'\nimport BCardImg from '../BCard/BCardImg.vue'\nimport BPlaceholder from './BPlaceholder.vue'\nimport BPlaceholderButton from './BPlaceholderButton.vue'\nimport type {BPlaceholderCardProps} from '../../types/ComponentProps'\nimport {computed} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BPlaceholderCardSlots} from '../../types/ComponentSlots'\n\nconst _props = withDefaults(defineProps<BPlaceholderCardProps>(), {\n animation: undefined,\n footerAnimation: undefined,\n footerSize: 'md',\n footerVariant: undefined,\n footerWidth: 100,\n headerAnimation: undefined,\n headerSize: 'md',\n headerVariant: undefined,\n headerWidth: 100,\n imgBlankColor: '#868e96',\n imgPlacement: 'top',\n imgHeight: 100,\n imgSrc: undefined,\n noButton: false,\n noFooter: false,\n noHeader: false,\n noImg: false,\n size: 'md',\n variant: undefined,\n})\nconst props = useDefaults(_props, 'BPlaceholderCard')\ndefineSlots<BPlaceholderCardSlots>()\n\nconst defaultAttrs = computed(() => ({\n animation: props.animation,\n size: props.size,\n variant: props.variant,\n}))\n\nconst footerComponent = computed(() => (!props.noButton ? BPlaceholderButton : BPlaceholder))\n</script>\n","<template>\n <BTableSimple>\n <slot v-if=\"!props.noHeader\" name=\"thead\">\n <thead>\n <tr>\n <th v-for=\"(_, i) in computedHeaderColumnsLength\" :key=\"i\">\n <BPlaceholder\n :size=\"props.headerSize\"\n :variant=\"props.headerVariant\"\n :animation=\"props.headerAnimation\"\n :width=\"props.headerCellWidth\"\n />\n </th>\n </tr>\n </thead>\n </slot>\n <slot>\n <tbody>\n <tr v-for=\"(_, j) in rowsNumber\" :key=\"j\">\n <td v-for=\"(__, k) in columnsNumber\" :key=\"k\">\n <BPlaceholder\n :size=\"props.size\"\n :variant=\"props.variant\"\n :animation=\"props.animation\"\n :width=\"props.cellWidth\"\n />\n </td>\n </tr>\n </tbody>\n </slot>\n <slot v-if=\"props.showFooter\" name=\"tfoot\">\n <tfoot>\n <tr>\n <th v-for=\"(_, l) in computedFooterColumnsLength\" :key=\"l\">\n <BPlaceholder\n :size=\"props.footerSize\"\n :variant=\"props.footerVariant\"\n :animation=\"props.footerAnimation\"\n :width=\"props.footerCellWidth\"\n />\n </th>\n </tr>\n </tfoot>\n </slot>\n </BTableSimple>\n</template>\n\n<script setup lang=\"ts\">\nimport type {BPlaceholderTableProps} from '../../types/ComponentProps'\nimport BTableSimple from '../BTable/BTableSimple.vue'\nimport BPlaceholder from './BPlaceholder.vue'\nimport {useToNumber} from '@vueuse/core'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {computed} from 'vue'\nimport type {BPlaceholderTableSlots} from '../../types'\n\nconst _props = withDefaults(defineProps<BPlaceholderTableProps>(), {\n animation: undefined,\n cellWidth: 100,\n columns: 5,\n footerAnimation: undefined,\n footerCellWidth: 100,\n footerColumns: undefined,\n footerSize: 'md',\n footerVariant: undefined,\n headerAnimation: undefined,\n headerCellWidth: 100,\n headerColumns: undefined,\n headerSize: 'md',\n headerVariant: undefined,\n noHeader: false,\n rows: 3,\n showFooter: false,\n size: 'md',\n variant: undefined,\n})\nconst props = useDefaults(_props, 'BPlaceholderTable')\ndefineSlots<BPlaceholderTableSlots>()\n\nconst columnsToNumber = useToNumber(() => props.columns)\nconst rowsToNumber = useToNumber(() => props.rows)\nconst computedHeaderColumns = computed(() => props.headerColumns ?? Number.NaN)\nconst computedFooterColumns = computed(() => props.footerColumns ?? Number.NaN)\nconst headerColumnsNumber = useToNumber(computedHeaderColumns)\nconst footerColumnsNumber = useToNumber(computedFooterColumns)\n\nconst columnsNumber = computed(() => columnsToNumber.value || 5)\nconst rowsNumber = computed(() => rowsToNumber.value || 3)\n\nconst computedHeaderColumnsLength = computed(() =>\n props.headerColumns === undefined\n ? columnsNumber.value\n : Number.isNaN(headerColumnsNumber.value)\n ? columnsNumber.value\n : headerColumnsNumber.value\n)\nconst computedFooterColumnsLength = computed(() =>\n props.footerColumns === undefined\n ? columnsNumber.value\n : Number.isNaN(footerColumnsNumber.value)\n ? columnsNumber.value\n : footerColumnsNumber.value\n)\n</script>\n","<template>\n <BTableSimple>\n <slot v-if=\"!props.noHeader\" name=\"thead\">\n <thead>\n <tr>\n <th v-for=\"(_, i) in computedHeaderColumnsLength\" :key=\"i\">\n <BPlaceholder\n :size=\"props.headerSize\"\n :variant=\"props.headerVariant\"\n :animation=\"props.headerAnimation\"\n :width=\"props.headerCellWidth\"\n />\n </th>\n </tr>\n </thead>\n </slot>\n <slot>\n <tbody>\n <tr v-for=\"(_, j) in rowsNumber\" :key=\"j\">\n <td v-for=\"(__, k) in columnsNumber\" :key=\"k\">\n <BPlaceholder\n :size=\"props.size\"\n :variant=\"props.variant\"\n :animation=\"props.animation\"\n :width=\"props.cellWidth\"\n />\n </td>\n </tr>\n </tbody>\n </slot>\n <slot v-if=\"props.showFooter\" name=\"tfoot\">\n <tfoot>\n <tr>\n <th v-for=\"(_, l) in computedFooterColumnsLength\" :key=\"l\">\n <BPlaceholder\n :size=\"props.footerSize\"\n :variant=\"props.footerVariant\"\n :animation=\"props.footerAnimation\"\n :width=\"props.footerCellWidth\"\n />\n </th>\n </tr>\n </tfoot>\n </slot>\n </BTableSimple>\n</template>\n\n<script setup lang=\"ts\">\nimport type {BPlaceholderTableProps} from '../../types/ComponentProps'\nimport BTableSimple from '../BTable/BTableSimple.vue'\nimport BPlaceholder from './BPlaceholder.vue'\nimport {useToNumber} from '@vueuse/core'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {computed} from 'vue'\nimport type {BPlaceholderTableSlots} from '../../types'\n\nconst _props = withDefaults(defineProps<BPlaceholderTableProps>(), {\n animation: undefined,\n cellWidth: 100,\n columns: 5,\n footerAnimation: undefined,\n footerCellWidth: 100,\n footerColumns: undefined,\n footerSize: 'md',\n footerVariant: undefined,\n headerAnimation: undefined,\n headerCellWidth: 100,\n headerColumns: undefined,\n headerSize: 'md',\n headerVariant: undefined,\n noHeader: false,\n rows: 3,\n showFooter: false,\n size: 'md',\n variant: undefined,\n})\nconst props = useDefaults(_props, 'BPlaceholderTable')\ndefineSlots<BPlaceholderTableSlots>()\n\nconst columnsToNumber = useToNumber(() => props.columns)\nconst rowsToNumber = useToNumber(() => props.rows)\nconst computedHeaderColumns = computed(() => props.headerColumns ?? Number.NaN)\nconst computedFooterColumns = computed(() => props.footerColumns ?? Number.NaN)\nconst headerColumnsNumber = useToNumber(computedHeaderColumns)\nconst footerColumnsNumber = useToNumber(computedFooterColumns)\n\nconst columnsNumber = computed(() => columnsToNumber.value || 5)\nconst rowsNumber = computed(() => rowsToNumber.value || 3)\n\nconst computedHeaderColumnsLength = computed(() =>\n props.headerColumns === undefined\n ? columnsNumber.value\n : Number.isNaN(headerColumnsNumber.value)\n ? columnsNumber.value\n : headerColumnsNumber.value\n)\nconst computedFooterColumnsLength = computed(() =>\n props.footerColumns === undefined\n ? columnsNumber.value\n : Number.isNaN(footerColumnsNumber.value)\n ? columnsNumber.value\n : footerColumnsNumber.value\n)\n</script>\n","<template>\n <slot v-if=\"props.loading\" name=\"loading\" />\n <slot v-else />\n</template>\n\n<script setup lang=\"ts\">\nimport type {BPlaceholderWrapperSlots} from '../../types'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BPlaceholderWrapperProps} from '../../types/ComponentProps'\n\nconst _props = withDefaults(defineProps<BPlaceholderWrapperProps>(), {\n loading: false,\n})\nconst props = useDefaults(_props, 'BPlaceholderWrapper')\ndefineSlots<BPlaceholderWrapperSlots>()\n</script>\n","<template>\n <slot v-if=\"props.loading\" name=\"loading\" />\n <slot v-else />\n</template>\n\n<script setup lang=\"ts\">\nimport type {BPlaceholderWrapperSlots} from '../../types'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BPlaceholderWrapperProps} from '../../types/ComponentProps'\n\nconst _props = withDefaults(defineProps<BPlaceholderWrapperProps>(), {\n loading: false,\n})\nconst props = useDefaults(_props, 'BPlaceholderWrapper')\ndefineSlots<BPlaceholderWrapperSlots>()\n</script>\n"],"mappings":"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"}
@@ -1,7 +1,7 @@
1
1
  import { v as progressInjectionKey } from "./keys-CQKrwmvN.mjs";
2
- import { L as useToNumber } from "./dist-Dn5blevd.mjs";
3
- import { t as useDefaults } from "./useDefaults-CCWS15M8.mjs";
4
- import { t as useColorVariantClasses } from "./useColorVariantClasses-GuDw8a_O.mjs";
2
+ import { z as useToNumber } from "./dist-B10a-gZ8.mjs";
3
+ import { t as useDefaults } from "./useDefaults-BKgBaqOV.mjs";
4
+ import { t as useColorVariantClasses } from "./useColorVariantClasses-B6Me_Kx6.mjs";
5
5
  import { computed, createElementBlock, createTextVNode, createVNode, defineComponent, inject, normalizeClass, normalizeStyle, openBlock, provide, renderSlot, toDisplayString, toRef, unref } from "vue";
6
6
  //#endregion
7
7
  //#region src/components/BProgress/BProgressBar.vue
@@ -132,4 +132,4 @@ var BProgress_default = /* @__PURE__ */ defineComponent({
132
132
  //#endregion
133
133
  export { BProgressBar_default as n, BProgress_default as t };
134
134
 
135
- //# sourceMappingURL=BProgress-Bdf5AncM.mjs.map
135
+ //# sourceMappingURL=BProgress-BIqo6vLh.mjs.map