bootstrap-vue-next 0.24.12 → 0.24.13

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 (1138) hide show
  1. package/dist/BAccordionItem.vue_vue_type_script_setup_true_lang-CGL4HjQ5.mjs +157 -0
  2. package/dist/BAccordionItem.vue_vue_type_script_setup_true_lang-CGL4HjQ5.mjs.map +1 -0
  3. package/dist/BAccordionItem.vue_vue_type_script_setup_true_lang-CZPn4Bj0.js +2 -0
  4. package/dist/BAccordionItem.vue_vue_type_script_setup_true_lang-CZPn4Bj0.js.map +1 -0
  5. package/dist/BAlert-CL62oEyH.js +2 -0
  6. package/dist/BAlert-CL62oEyH.js.map +1 -0
  7. package/dist/BAlert-zaujoJkK.mjs +130 -0
  8. package/dist/BAlert-zaujoJkK.mjs.map +1 -0
  9. package/dist/BAvatarGroup.vue_vue_type_script_setup_true_lang-CJHztvxJ.mjs +265 -0
  10. package/dist/BAvatarGroup.vue_vue_type_script_setup_true_lang-CJHztvxJ.mjs.map +1 -0
  11. package/dist/BAvatarGroup.vue_vue_type_script_setup_true_lang-CyH7wDxA.js +2 -0
  12. package/dist/BAvatarGroup.vue_vue_type_script_setup_true_lang-CyH7wDxA.js.map +1 -0
  13. package/dist/BBadge.vue_vue_type_script_setup_true_lang-D0XJTOKS.js +2 -0
  14. package/dist/BBadge.vue_vue_type_script_setup_true_lang-D0XJTOKS.js.map +1 -0
  15. package/dist/BBadge.vue_vue_type_script_setup_true_lang-DvnR6bcm.mjs +114 -0
  16. package/dist/BBadge.vue_vue_type_script_setup_true_lang-DvnR6bcm.mjs.map +1 -0
  17. package/dist/BBreadcrumb.vue_vue_type_script_setup_true_lang-BaeAqIpb.mjs +144 -0
  18. package/dist/BBreadcrumb.vue_vue_type_script_setup_true_lang-BaeAqIpb.mjs.map +1 -0
  19. package/dist/BBreadcrumb.vue_vue_type_script_setup_true_lang-C_H8oVoT.js +2 -0
  20. package/dist/BBreadcrumb.vue_vue_type_script_setup_true_lang-C_H8oVoT.js.map +1 -0
  21. package/dist/BButton.vue_vue_type_script_setup_true_lang-Ce8NKGox.js +2 -0
  22. package/dist/BButton.vue_vue_type_script_setup_true_lang-Ce8NKGox.js.map +1 -0
  23. package/dist/BButton.vue_vue_type_script_setup_true_lang-VSdlVuWr.mjs +167 -0
  24. package/dist/BButton.vue_vue_type_script_setup_true_lang-VSdlVuWr.mjs.map +1 -0
  25. package/dist/BButtonToolbar.vue_vue_type_script_setup_true_lang-4_kitZe-.js +2 -0
  26. package/dist/BButtonToolbar.vue_vue_type_script_setup_true_lang-4_kitZe-.js.map +1 -0
  27. package/dist/BButtonToolbar.vue_vue_type_script_setup_true_lang-d2xC76Uj.mjs +62 -0
  28. package/dist/BButtonToolbar.vue_vue_type_script_setup_true_lang-d2xC76Uj.mjs.map +1 -0
  29. package/dist/BCard.vue_vue_type_script_setup_true_lang-HE0K2EEE.mjs +400 -0
  30. package/dist/BCard.vue_vue_type_script_setup_true_lang-HE0K2EEE.mjs.map +1 -0
  31. package/dist/BCard.vue_vue_type_script_setup_true_lang-TLAEs-XJ.js +2 -0
  32. package/dist/BCard.vue_vue_type_script_setup_true_lang-TLAEs-XJ.js.map +1 -0
  33. package/dist/BCardText.vue_vue_type_script_setup_true_lang-BJXOgzA3.js +2 -0
  34. package/dist/BCardText.vue_vue_type_script_setup_true_lang-BJXOgzA3.js.map +1 -0
  35. package/dist/BCardText.vue_vue_type_script_setup_true_lang-DaNVKmqM.mjs +53 -0
  36. package/dist/BCardText.vue_vue_type_script_setup_true_lang-DaNVKmqM.mjs.map +1 -0
  37. package/dist/BCarouselSlide.vue_vue_type_script_setup_true_lang-B9cMwnBa.mjs +419 -0
  38. package/dist/BCarouselSlide.vue_vue_type_script_setup_true_lang-B9cMwnBa.mjs.map +1 -0
  39. package/dist/BCarouselSlide.vue_vue_type_script_setup_true_lang-D9pzRO8R.js +2 -0
  40. package/dist/BCarouselSlide.vue_vue_type_script_setup_true_lang-D9pzRO8R.js.map +1 -0
  41. package/dist/BCloseButton.vue_vue_type_script_setup_true_lang-B9g9XRA_.mjs +30 -0
  42. package/dist/BCloseButton.vue_vue_type_script_setup_true_lang-B9g9XRA_.mjs.map +1 -0
  43. package/dist/BCloseButton.vue_vue_type_script_setup_true_lang-CiJc3utn.js +2 -0
  44. package/dist/BCloseButton.vue_vue_type_script_setup_true_lang-CiJc3utn.js.map +1 -0
  45. package/dist/BCol.vue_vue_type_script_setup_true_lang-BWBBWz6b.js +2 -0
  46. package/dist/BCol.vue_vue_type_script_setup_true_lang-BWBBWz6b.js.map +1 -0
  47. package/dist/BCol.vue_vue_type_script_setup_true_lang-DlKSUEf4.mjs +94 -0
  48. package/dist/BCol.vue_vue_type_script_setup_true_lang-DlKSUEf4.mjs.map +1 -0
  49. package/dist/BCollapse.vue_vue_type_script_setup_true_lang-DPNRuAQK.js +2 -0
  50. package/dist/BCollapse.vue_vue_type_script_setup_true_lang-DPNRuAQK.js.map +1 -0
  51. package/dist/BCollapse.vue_vue_type_script_setup_true_lang-DQFE_wBf.mjs +211 -0
  52. package/dist/BCollapse.vue_vue_type_script_setup_true_lang-DQFE_wBf.mjs.map +1 -0
  53. package/dist/BContainer.vue_vue_type_script_setup_true_lang-CYHKrkpb.js +2 -0
  54. package/dist/BContainer.vue_vue_type_script_setup_true_lang-CYHKrkpb.js.map +1 -0
  55. package/dist/BContainer.vue_vue_type_script_setup_true_lang-CvOVtSLy.mjs +36 -0
  56. package/dist/BContainer.vue_vue_type_script_setup_true_lang-CvOVtSLy.mjs.map +1 -0
  57. package/dist/BDropdown.vue_vue_type_script_setup_true_lang-CyYPAMES.js +2 -0
  58. package/dist/BDropdown.vue_vue_type_script_setup_true_lang-CyYPAMES.js.map +1 -0
  59. package/dist/BDropdown.vue_vue_type_script_setup_true_lang-_LBPdVCX.mjs +335 -0
  60. package/dist/BDropdown.vue_vue_type_script_setup_true_lang-_LBPdVCX.mjs.map +1 -0
  61. package/dist/BDropdownText.vue_vue_type_script_setup_true_lang-BG9DP53V.mjs +264 -0
  62. package/dist/BDropdownText.vue_vue_type_script_setup_true_lang-BG9DP53V.mjs.map +1 -0
  63. package/dist/BDropdownText.vue_vue_type_script_setup_true_lang-Cp6f43AB.js +2 -0
  64. package/dist/BDropdownText.vue_vue_type_script_setup_true_lang-Cp6f43AB.js.map +1 -0
  65. package/dist/BForm.vue_vue_type_script_setup_true_lang-CX-6ApBl.mjs +39 -0
  66. package/dist/BForm.vue_vue_type_script_setup_true_lang-CX-6ApBl.mjs.map +1 -0
  67. package/dist/BForm.vue_vue_type_script_setup_true_lang-CzWjtjDl.js +2 -0
  68. package/dist/BForm.vue_vue_type_script_setup_true_lang-CzWjtjDl.js.map +1 -0
  69. package/dist/BFormCheckboxGroup.vue_vue_type_script_setup_true_lang-2Rj7LWFj.js +2 -0
  70. package/dist/BFormCheckboxGroup.vue_vue_type_script_setup_true_lang-2Rj7LWFj.js.map +1 -0
  71. package/dist/BFormCheckboxGroup.vue_vue_type_script_setup_true_lang-CuIvx67W.mjs +283 -0
  72. package/dist/BFormCheckboxGroup.vue_vue_type_script_setup_true_lang-CuIvx67W.mjs.map +1 -0
  73. package/dist/BFormFile.vue_vue_type_script_setup_true_lang-C-XNXzam.js +2 -0
  74. package/dist/BFormFile.vue_vue_type_script_setup_true_lang-C-XNXzam.js.map +1 -0
  75. package/dist/BFormFile.vue_vue_type_script_setup_true_lang-vYYrIhR7.mjs +129 -0
  76. package/dist/BFormFile.vue_vue_type_script_setup_true_lang-vYYrIhR7.mjs.map +1 -0
  77. package/dist/BFormFloatingLabel.vue_vue_type_script_setup_true_lang-2jJXsB8X.mjs +85 -0
  78. package/dist/BFormFloatingLabel.vue_vue_type_script_setup_true_lang-2jJXsB8X.mjs.map +1 -0
  79. package/dist/BFormFloatingLabel.vue_vue_type_script_setup_true_lang-CGq1Y8YR.js +2 -0
  80. package/dist/BFormFloatingLabel.vue_vue_type_script_setup_true_lang-CGq1Y8YR.js.map +1 -0
  81. package/dist/BFormGroup.vue_vue_type_script_lang-D1K-s0Ci.mjs +316 -0
  82. package/dist/BFormGroup.vue_vue_type_script_lang-D1K-s0Ci.mjs.map +1 -0
  83. package/dist/BFormGroup.vue_vue_type_script_lang-DM4WBgWE.js +2 -0
  84. package/dist/BFormGroup.vue_vue_type_script_lang-DM4WBgWE.js.map +1 -0
  85. package/dist/BFormInput.vue_vue_type_script_setup_true_lang-Cff0bCQa.mjs +98 -0
  86. package/dist/BFormInput.vue_vue_type_script_setup_true_lang-Cff0bCQa.mjs.map +1 -0
  87. package/dist/BFormInput.vue_vue_type_script_setup_true_lang-DktiAGOE.js +2 -0
  88. package/dist/BFormInput.vue_vue_type_script_setup_true_lang-DktiAGOE.js.map +1 -0
  89. package/dist/BFormRadioGroup.vue_vue_type_script_setup_true_lang-CQjKHPQM.js +2 -0
  90. package/dist/BFormRadioGroup.vue_vue_type_script_setup_true_lang-CQjKHPQM.js.map +1 -0
  91. package/dist/BFormRadioGroup.vue_vue_type_script_setup_true_lang-QoekdehU.mjs +260 -0
  92. package/dist/BFormRadioGroup.vue_vue_type_script_setup_true_lang-QoekdehU.mjs.map +1 -0
  93. package/dist/BFormSelect.vue_vue_type_script_setup_true_lang-Bi-9IRmx.js +2 -0
  94. package/dist/BFormSelect.vue_vue_type_script_setup_true_lang-Bi-9IRmx.js.map +1 -0
  95. package/dist/BFormSelect.vue_vue_type_script_setup_true_lang-DomR7pgn.mjs +187 -0
  96. package/dist/BFormSelect.vue_vue_type_script_setup_true_lang-DomR7pgn.mjs.map +1 -0
  97. package/dist/BFormSpinbutton.vue_vue_type_script_setup_true_lang-Cpthe9q6.js +2 -0
  98. package/dist/BFormSpinbutton.vue_vue_type_script_setup_true_lang-Cpthe9q6.js.map +1 -0
  99. package/dist/BFormSpinbutton.vue_vue_type_script_setup_true_lang-DWoLLnh4.mjs +466 -0
  100. package/dist/BFormSpinbutton.vue_vue_type_script_setup_true_lang-DWoLLnh4.mjs.map +1 -0
  101. package/dist/BFormTags.vue_vue_type_script_setup_true_lang-Bb7L5aOK.js +2 -0
  102. package/dist/BFormTags.vue_vue_type_script_setup_true_lang-Bb7L5aOK.js.map +1 -0
  103. package/dist/BFormTags.vue_vue_type_script_setup_true_lang-QreNAuNh.mjs +451 -0
  104. package/dist/BFormTags.vue_vue_type_script_setup_true_lang-QreNAuNh.mjs.map +1 -0
  105. package/dist/BFormTextarea.vue_vue_type_script_setup_true_lang-C7qeE8yw.js +2 -0
  106. package/dist/BFormTextarea.vue_vue_type_script_setup_true_lang-C7qeE8yw.js.map +1 -0
  107. package/dist/BFormTextarea.vue_vue_type_script_setup_true_lang-w4QvtSCI.mjs +89 -0
  108. package/dist/BFormTextarea.vue_vue_type_script_setup_true_lang-w4QvtSCI.mjs.map +1 -0
  109. package/dist/BFormValidFeedback.vue_vue_type_script_setup_true_lang-BNtodjFB.js +2 -0
  110. package/dist/BFormValidFeedback.vue_vue_type_script_setup_true_lang-BNtodjFB.js.map +1 -0
  111. package/dist/BFormValidFeedback.vue_vue_type_script_setup_true_lang-DSA6Ix_l.mjs +136 -0
  112. package/dist/BFormValidFeedback.vue_vue_type_script_setup_true_lang-DSA6Ix_l.mjs.map +1 -0
  113. package/dist/BImg.vue_vue_type_script_setup_true_lang-Bg2OW6gi.js +2 -0
  114. package/dist/BImg.vue_vue_type_script_setup_true_lang-Bg2OW6gi.js.map +1 -0
  115. package/dist/BImg.vue_vue_type_script_setup_true_lang-CZ0wmkG3.mjs +96 -0
  116. package/dist/BImg.vue_vue_type_script_setup_true_lang-CZ0wmkG3.mjs.map +1 -0
  117. package/dist/BInputGroupText.vue_vue_type_script_setup_true_lang-CQmMi4BC.mjs +91 -0
  118. package/dist/BInputGroupText.vue_vue_type_script_setup_true_lang-CQmMi4BC.mjs.map +1 -0
  119. package/dist/BInputGroupText.vue_vue_type_script_setup_true_lang-D0vTU1Tg.js +2 -0
  120. package/dist/BInputGroupText.vue_vue_type_script_setup_true_lang-D0vTU1Tg.js.map +1 -0
  121. package/dist/BLink.vue_vue_type_script_setup_true_lang-C39-ereM.mjs +151 -0
  122. package/dist/BLink.vue_vue_type_script_setup_true_lang-C39-ereM.mjs.map +1 -0
  123. package/dist/BLink.vue_vue_type_script_setup_true_lang-CGvuLpmP.js +2 -0
  124. package/dist/BLink.vue_vue_type_script_setup_true_lang-CGvuLpmP.js.map +1 -0
  125. package/dist/BListGroupItem.vue_vue_type_script_setup_true_lang-BgPZPopv.mjs +122 -0
  126. package/dist/BListGroupItem.vue_vue_type_script_setup_true_lang-BgPZPopv.mjs.map +1 -0
  127. package/dist/BListGroupItem.vue_vue_type_script_setup_true_lang-bbCvQBVT.js +2 -0
  128. package/dist/BListGroupItem.vue_vue_type_script_setup_true_lang-bbCvQBVT.js.map +1 -0
  129. package/dist/BModalOrchestrator.vue_vue_type_script_setup_true_lang-DTkIYT9T.js +2 -0
  130. package/dist/BModalOrchestrator.vue_vue_type_script_setup_true_lang-DTkIYT9T.js.map +1 -0
  131. package/dist/BModalOrchestrator.vue_vue_type_script_setup_true_lang-uilLonY3.mjs +528 -0
  132. package/dist/BModalOrchestrator.vue_vue_type_script_setup_true_lang-uilLonY3.mjs.map +1 -0
  133. package/dist/BNavText.vue_vue_type_script_setup_true_lang-DsRBDoqA.js +2 -0
  134. package/dist/BNavText.vue_vue_type_script_setup_true_lang-DsRBDoqA.js.map +1 -0
  135. package/dist/BNavText.vue_vue_type_script_setup_true_lang-Nz10c9se.mjs +297 -0
  136. package/dist/BNavText.vue_vue_type_script_setup_true_lang-Nz10c9se.mjs.map +1 -0
  137. package/dist/BNavbarToggle.vue_vue_type_script_setup_true_lang-CR21XBTk.mjs +195 -0
  138. package/dist/BNavbarToggle.vue_vue_type_script_setup_true_lang-CR21XBTk.mjs.map +1 -0
  139. package/dist/BNavbarToggle.vue_vue_type_script_setup_true_lang-yRlMSYbT.js +2 -0
  140. package/dist/BNavbarToggle.vue_vue_type_script_setup_true_lang-yRlMSYbT.js.map +1 -0
  141. package/dist/BOffcanvas.vue_vue_type_script_setup_true_lang-BS8m5QFs.js +2 -0
  142. package/dist/BOffcanvas.vue_vue_type_script_setup_true_lang-BS8m5QFs.js.map +1 -0
  143. package/dist/BOffcanvas.vue_vue_type_script_setup_true_lang-DFX-GAqB.mjs +296 -0
  144. package/dist/BOffcanvas.vue_vue_type_script_setup_true_lang-DFX-GAqB.mjs.map +1 -0
  145. package/dist/BOverlay.vue_vue_type_script_setup_true_lang-B-DddNvF.js +2 -0
  146. package/dist/BOverlay.vue_vue_type_script_setup_true_lang-B-DddNvF.js.map +1 -0
  147. package/dist/BOverlay.vue_vue_type_script_setup_true_lang-DlIZeFjt.mjs +127 -0
  148. package/dist/BOverlay.vue_vue_type_script_setup_true_lang-DlIZeFjt.mjs.map +1 -0
  149. package/dist/BPagination.vue_vue_type_script_setup_true_lang-Bb3jz8ne.js +2 -0
  150. package/dist/BPagination.vue_vue_type_script_setup_true_lang-Bb3jz8ne.js.map +1 -0
  151. package/dist/BPagination.vue_vue_type_script_setup_true_lang-DlaLHOK3.mjs +377 -0
  152. package/dist/BPagination.vue_vue_type_script_setup_true_lang-DlaLHOK3.mjs.map +1 -0
  153. package/dist/BPlaceholderWrapper.vue_vue_type_script_setup_true_lang-CNFPE1rr.js +2 -0
  154. package/dist/BPlaceholderWrapper.vue_vue_type_script_setup_true_lang-CNFPE1rr.js.map +1 -0
  155. package/dist/BPlaceholderWrapper.vue_vue_type_script_setup_true_lang-D-r_Gw_F.mjs +295 -0
  156. package/dist/BPlaceholderWrapper.vue_vue_type_script_setup_true_lang-D-r_Gw_F.mjs.map +1 -0
  157. package/dist/BPopoverOrchestrator.vue_vue_type_script_setup_true_lang-DAAu6XVH.js +2 -0
  158. package/dist/BPopoverOrchestrator.vue_vue_type_script_setup_true_lang-DAAu6XVH.js.map +1 -0
  159. package/dist/BPopoverOrchestrator.vue_vue_type_script_setup_true_lang-WoLkyjrr.mjs +32 -0
  160. package/dist/BPopoverOrchestrator.vue_vue_type_script_setup_true_lang-WoLkyjrr.mjs.map +1 -0
  161. package/dist/BProgress.vue_vue_type_script_setup_true_lang-D1V8J3od.mjs +113 -0
  162. package/dist/BProgress.vue_vue_type_script_setup_true_lang-D1V8J3od.mjs.map +1 -0
  163. package/dist/BProgress.vue_vue_type_script_setup_true_lang-dljjV5EO.js +2 -0
  164. package/dist/BProgress.vue_vue_type_script_setup_true_lang-dljjV5EO.js.map +1 -0
  165. package/dist/BRow.vue_vue_type_script_setup_true_lang-DsUdrNeu.mjs +67 -0
  166. package/dist/BRow.vue_vue_type_script_setup_true_lang-DsUdrNeu.mjs.map +1 -0
  167. package/dist/BRow.vue_vue_type_script_setup_true_lang-VBYu2LvD.js +2 -0
  168. package/dist/BRow.vue_vue_type_script_setup_true_lang-VBYu2LvD.js.map +1 -0
  169. package/dist/BSpinner.vue_vue_type_script_setup_true_lang-Bi3Ic2-3.mjs +51 -0
  170. package/dist/BSpinner.vue_vue_type_script_setup_true_lang-Bi3Ic2-3.mjs.map +1 -0
  171. package/dist/BSpinner.vue_vue_type_script_setup_true_lang-DybaAUVS.js +2 -0
  172. package/dist/BSpinner.vue_vue_type_script_setup_true_lang-DybaAUVS.js.map +1 -0
  173. package/dist/BTable.vue_vue_type_script_setup_true_lang-CqJmavaJ.mjs +1292 -0
  174. package/dist/BTable.vue_vue_type_script_setup_true_lang-CqJmavaJ.mjs.map +1 -0
  175. package/dist/BTable.vue_vue_type_script_setup_true_lang-XAhOu66i.js +2 -0
  176. package/dist/BTable.vue_vue_type_script_setup_true_lang-XAhOu66i.js.map +1 -0
  177. package/dist/BTableSimple.vue_vue_type_script_setup_true_lang-B4mLJ-Gd.mjs +88 -0
  178. package/dist/BTableSimple.vue_vue_type_script_setup_true_lang-B4mLJ-Gd.mjs.map +1 -0
  179. package/dist/BTableSimple.vue_vue_type_script_setup_true_lang-iOO_ebGw.js +2 -0
  180. package/dist/BTableSimple.vue_vue_type_script_setup_true_lang-iOO_ebGw.js.map +1 -0
  181. package/dist/BTabs.vue_vue_type_script_setup_true_lang-BhWxG2yI.mjs +410 -0
  182. package/dist/BTabs.vue_vue_type_script_setup_true_lang-BhWxG2yI.mjs.map +1 -0
  183. package/dist/BTabs.vue_vue_type_script_setup_true_lang-CaQt9YE0.js +2 -0
  184. package/dist/BTabs.vue_vue_type_script_setup_true_lang-CaQt9YE0.js.map +1 -0
  185. package/dist/BToastOrchestrator.vue_vue_type_style_index_0_lang-K7lsVEs_.js +2 -0
  186. package/dist/BToastOrchestrator.vue_vue_type_style_index_0_lang-K7lsVEs_.js.map +1 -0
  187. package/dist/BToastOrchestrator.vue_vue_type_style_index_0_lang-Odi16od5.mjs +313 -0
  188. package/dist/BToastOrchestrator.vue_vue_type_style_index_0_lang-Odi16od5.mjs.map +1 -0
  189. package/dist/BTooltipOrchestrator.vue_vue_type_script_setup_true_lang-DWilDKU8.js +2 -0
  190. package/dist/BTooltipOrchestrator.vue_vue_type_script_setup_true_lang-DWilDKU8.js.map +1 -0
  191. package/dist/BTooltipOrchestrator.vue_vue_type_script_setup_true_lang-Dcoy_YtZ.mjs +109 -0
  192. package/dist/BTooltipOrchestrator.vue_vue_type_script_setup_true_lang-Dcoy_YtZ.mjs.map +1 -0
  193. package/dist/BTransition.vue_vue_type_style_index_0_lang-X5a8jq3A.mjs +59 -0
  194. package/dist/BTransition.vue_vue_type_style_index_0_lang-X5a8jq3A.mjs.map +1 -0
  195. package/dist/BTransition.vue_vue_type_style_index_0_lang-dOw0_NRO.js +2 -0
  196. package/dist/BTransition.vue_vue_type_style_index_0_lang-dOw0_NRO.js.map +1 -0
  197. package/dist/RenderComponentOrSkip.vue_vue_type_script_lang-Ceo_5VTw.js +2 -0
  198. package/dist/RenderComponentOrSkip.vue_vue_type_script_lang-Ceo_5VTw.js.map +1 -0
  199. package/dist/RenderComponentOrSkip.vue_vue_type_script_lang-CvaXFCLB.mjs +30 -0
  200. package/dist/RenderComponentOrSkip.vue_vue_type_script_lang-CvaXFCLB.mjs.map +1 -0
  201. package/dist/_plugin-vue_export-helper-1tPrXgE0.mjs +11 -0
  202. package/dist/_plugin-vue_export-helper-1tPrXgE0.mjs.map +1 -0
  203. package/dist/_plugin-vue_export-helper-CC_fc8JW.js +2 -0
  204. package/dist/_plugin-vue_export-helper-CC_fc8JW.js.map +1 -0
  205. package/dist/bootstrap-vue-next.css +1 -1
  206. package/dist/bootstrap-vue-next.mjs +230 -12475
  207. package/dist/bootstrap-vue-next.mjs.map +1 -1
  208. package/dist/bootstrap-vue-next.umd.js +1 -9
  209. package/dist/bootstrap-vue-next.umd.js.map +1 -1
  210. package/dist/classes-CXBJXuVd.js +2 -0
  211. package/dist/classes-CXBJXuVd.js.map +1 -0
  212. package/dist/classes-IC0yVJlq.mjs +92 -0
  213. package/dist/classes-IC0yVJlq.mjs.map +1 -0
  214. package/dist/constants-BdrZaBP8.mjs +35 -0
  215. package/dist/constants-BdrZaBP8.mjs.map +1 -0
  216. package/dist/constants-Caz6vMlV.js +2 -0
  217. package/dist/constants-Caz6vMlV.js.map +1 -0
  218. package/dist/dom-B-SQyhbA.mjs +36 -0
  219. package/dist/dom-B-SQyhbA.mjs.map +1 -0
  220. package/dist/dom-C-F8jHop.js +2 -0
  221. package/dist/dom-C-F8jHop.js.map +1 -0
  222. package/dist/event-DqyBZX_g.js +2 -0
  223. package/dist/event-DqyBZX_g.js.map +1 -0
  224. package/dist/event-aFP-C_yt.mjs +46 -0
  225. package/dist/event-aFP-C_yt.mjs.map +1 -0
  226. package/dist/floatingUi-CKw_RAAk.mjs +1959 -0
  227. package/dist/floatingUi-CKw_RAAk.mjs.map +1 -0
  228. package/dist/floatingUi-DuqFUobT.js +2 -0
  229. package/dist/floatingUi-DuqFUobT.js.map +1 -0
  230. package/dist/getClasses-BgAeHHtu.js +2 -0
  231. package/dist/getClasses-BgAeHHtu.js.map +1 -0
  232. package/dist/getClasses-CsgNQabU.mjs +11 -0
  233. package/dist/getClasses-CsgNQabU.mjs.map +1 -0
  234. package/dist/getElement-Ca6iEV7Z.js +2 -0
  235. package/dist/getElement-Ca6iEV7Z.js.map +1 -0
  236. package/dist/getElement-D_JPfLJS.mjs +13 -0
  237. package/dist/getElement-D_JPfLJS.mjs.map +1 -0
  238. package/dist/index-BInTFWT4.js +2 -0
  239. package/dist/index-BInTFWT4.js.map +1 -0
  240. package/dist/index-BZ1nPmSl.js +2 -0
  241. package/dist/index-BZ1nPmSl.js.map +1 -0
  242. package/dist/index-C-KndhwG.js +2 -0
  243. package/dist/index-C-KndhwG.js.map +1 -0
  244. package/dist/index-C2e5Y13S.js +2 -0
  245. package/dist/index-C2e5Y13S.js.map +1 -0
  246. package/dist/index-CIB4mF_S.js +2 -0
  247. package/dist/index-CIB4mF_S.js.map +1 -0
  248. package/dist/index-CITBZK_Y.mjs +159 -0
  249. package/dist/index-CITBZK_Y.mjs.map +1 -0
  250. package/dist/index-CXpBEYSc.mjs +18 -0
  251. package/dist/index-CXpBEYSc.mjs.map +1 -0
  252. package/dist/index-CZM7tYbG.js +2 -0
  253. package/dist/index-CZM7tYbG.js.map +1 -0
  254. package/dist/index-CjQikjpZ.mjs +210 -0
  255. package/dist/index-CjQikjpZ.mjs.map +1 -0
  256. package/dist/index-CnY1um_J.js +2 -0
  257. package/dist/index-CnY1um_J.js.map +1 -0
  258. package/dist/index-CsWSMa0s.js +2 -0
  259. package/dist/index-CsWSMa0s.js.map +1 -0
  260. package/dist/index-DlGgXMQF.mjs +303 -0
  261. package/dist/index-DlGgXMQF.mjs.map +1 -0
  262. package/dist/index-DngH9Pjm.mjs +1144 -0
  263. package/dist/index-DngH9Pjm.mjs.map +1 -0
  264. package/dist/index-Dt02d7RV.mjs +25 -0
  265. package/dist/index-Dt02d7RV.mjs.map +1 -0
  266. package/dist/index-i-UFv70c.mjs +11 -0
  267. package/dist/index-i-UFv70c.mjs.map +1 -0
  268. package/dist/index-sKc4HTpY.mjs +23 -0
  269. package/dist/index-sKc4HTpY.mjs.map +1 -0
  270. package/dist/keys-BgAe7wbu.js +2 -0
  271. package/dist/keys-BgAe7wbu.js.map +1 -0
  272. package/dist/keys-CLEaYsGj.mjs +43 -0
  273. package/dist/keys-CLEaYsGj.mjs.map +1 -0
  274. package/dist/object-B-6ddRYH.js +2 -0
  275. package/dist/object-B-6ddRYH.js.map +1 -0
  276. package/dist/object-DIbMZaP9.mjs +67 -0
  277. package/dist/object-DIbMZaP9.mjs.map +1 -0
  278. package/dist/src/App.vue.d.mts +2 -0
  279. package/dist/src/App.vue.d.ts +2 -0
  280. package/dist/src/components/BAccordion/BAccordion.vue.d.mts +31 -0
  281. package/dist/src/components/BAccordion/BAccordion.vue.d.ts +21 -33
  282. package/dist/src/components/BAccordion/BAccordionItem.vue.d.mts +59 -0
  283. package/dist/src/components/BAccordion/BAccordionItem.vue.d.ts +43 -162
  284. package/dist/src/components/BAccordion/index.d.mts +2 -0
  285. package/dist/src/components/BAccordion/index.d.ts +2 -0
  286. package/dist/src/components/BAccordion/index.mjs +6 -0
  287. package/dist/src/components/BAccordion/index.mjs.map +1 -0
  288. package/dist/src/components/BAccordion/index.umd.js +2 -0
  289. package/dist/src/components/BAccordion/index.umd.js.map +1 -0
  290. package/dist/src/components/BAlert/BAlert.vue.d.mts +55 -0
  291. package/dist/src/components/BAlert/BAlert.vue.d.ts +39 -114
  292. package/dist/src/components/BAlert/index.d.mts +1 -0
  293. package/dist/src/components/BAlert/index.d.ts +1 -0
  294. package/dist/src/components/BAlert/index.mjs +5 -0
  295. package/dist/src/components/BAlert/index.mjs.map +1 -0
  296. package/dist/src/components/BAlert/index.umd.js +2 -0
  297. package/dist/src/components/BAlert/index.umd.js.map +1 -0
  298. package/dist/src/components/BAvatar/BAvatar.vue.d.mts +67 -0
  299. package/dist/src/components/BAvatar/BAvatar.vue.d.ts +51 -142
  300. package/dist/src/components/BAvatar/BAvatarGroup.vue.d.mts +32 -0
  301. package/dist/src/components/BAvatar/BAvatarGroup.vue.d.ts +24 -61
  302. package/dist/src/components/BAvatar/index.d.mts +2 -0
  303. package/dist/src/components/BAvatar/index.d.ts +2 -0
  304. package/dist/src/components/BAvatar/index.mjs +6 -0
  305. package/dist/src/components/BAvatar/index.mjs.map +1 -0
  306. package/dist/src/components/BAvatar/index.umd.js +2 -0
  307. package/dist/src/components/BAvatar/index.umd.js.map +1 -0
  308. package/dist/src/components/BBadge/BBadge.vue.d.mts +46 -0
  309. package/dist/src/components/BBadge/BBadge.vue.d.ts +34 -99
  310. package/dist/src/components/BBadge/index.d.mts +1 -0
  311. package/dist/src/components/BBadge/index.d.ts +1 -0
  312. package/dist/src/components/BBadge/index.mjs +5 -0
  313. package/dist/src/components/BBadge/index.mjs.map +1 -0
  314. package/dist/src/components/BBadge/index.umd.js +2 -0
  315. package/dist/src/components/BBadge/index.umd.js.map +1 -0
  316. package/dist/src/components/BBreadcrumb/BBreadcrumb.vue.d.mts +25 -0
  317. package/dist/src/components/BBreadcrumb/BBreadcrumb.vue.d.ts +18 -33
  318. package/dist/src/components/BBreadcrumb/BBreadcrumbItem.vue.d.mts +46 -0
  319. package/dist/src/components/BBreadcrumb/BBreadcrumbItem.vue.d.ts +33 -92
  320. package/dist/src/components/BBreadcrumb/index.d.mts +2 -0
  321. package/dist/src/components/BBreadcrumb/index.d.ts +2 -0
  322. package/dist/src/components/BBreadcrumb/index.mjs +6 -0
  323. package/dist/src/components/BBreadcrumb/index.mjs.map +1 -0
  324. package/dist/src/components/BBreadcrumb/index.umd.js +2 -0
  325. package/dist/src/components/BBreadcrumb/index.umd.js.map +1 -0
  326. package/dist/src/components/BButton/BButton.vue.d.mts +66 -0
  327. package/dist/src/components/BButton/BButton.vue.d.ts +49 -274
  328. package/dist/src/components/BButton/BButtonGroup.vue.d.mts +24 -0
  329. package/dist/src/components/BButton/BButtonGroup.vue.d.ts +15 -36
  330. package/dist/src/components/BButton/BButtonToolbar.vue.d.mts +23 -0
  331. package/dist/src/components/BButton/BButtonToolbar.vue.d.ts +14 -33
  332. package/dist/src/components/BButton/BCloseButton.vue.d.mts +11 -0
  333. package/dist/src/components/BButton/BCloseButton.vue.d.ts +8 -34
  334. package/dist/src/components/BButton/index.d.mts +4 -0
  335. package/dist/src/components/BButton/index.d.ts +4 -0
  336. package/dist/src/components/BButton/index.mjs +10 -0
  337. package/dist/src/components/BButton/index.mjs.map +1 -0
  338. package/dist/src/components/BButton/index.umd.js +2 -0
  339. package/dist/src/components/BButton/index.umd.js.map +1 -0
  340. package/dist/src/components/BCard/BCard.vue.d.mts +64 -0
  341. package/dist/src/components/BCard/BCard.vue.d.ts +48 -137
  342. package/dist/src/components/BCard/BCardBody.vue.d.mts +35 -0
  343. package/dist/src/components/BCard/BCardBody.vue.d.ts +25 -60
  344. package/dist/src/components/BCard/BCardFooter.vue.d.mts +27 -0
  345. package/dist/src/components/BCard/BCardFooter.vue.d.ts +19 -46
  346. package/dist/src/components/BCard/BCardGroup.vue.d.mts +23 -0
  347. package/dist/src/components/BCard/BCardGroup.vue.d.ts +14 -33
  348. package/dist/src/components/BCard/BCardHeadFoot.vue.d.mts +27 -0
  349. package/dist/src/components/BCard/BCardHeadFoot.vue.d.ts +19 -46
  350. package/dist/src/components/BCard/BCardHeader.vue.d.mts +27 -0
  351. package/dist/src/components/BCard/BCardHeader.vue.d.ts +19 -46
  352. package/dist/src/components/BCard/BCardImg.vue.d.mts +22 -0
  353. package/dist/src/components/BCard/BCardImg.vue.d.ts +14 -70
  354. package/dist/src/components/BCard/BCardSubtitle.vue.d.mts +23 -0
  355. package/dist/src/components/BCard/BCardSubtitle.vue.d.ts +16 -35
  356. package/dist/src/components/BCard/BCardText.vue.d.mts +22 -0
  357. package/dist/src/components/BCard/BCardText.vue.d.ts +15 -32
  358. package/dist/src/components/BCard/BCardTitle.vue.d.mts +22 -0
  359. package/dist/src/components/BCard/BCardTitle.vue.d.ts +15 -32
  360. package/dist/src/components/BCard/index.d.mts +9 -0
  361. package/dist/src/components/BCard/index.d.ts +9 -0
  362. package/dist/src/components/BCard/index.mjs +14 -0
  363. package/dist/src/components/BCard/index.mjs.map +1 -0
  364. package/dist/src/components/BCard/index.umd.js +2 -0
  365. package/dist/src/components/BCard/index.umd.js.map +1 -0
  366. package/dist/src/components/BCarousel/BCarousel.vue.d.mts +65 -0
  367. package/dist/src/components/BCarousel/BCarousel.vue.d.ts +39 -166
  368. package/dist/src/components/BCarousel/BCarouselSlide.vue.d.mts +46 -0
  369. package/dist/src/components/BCarousel/BCarouselSlide.vue.d.ts +27 -76
  370. package/dist/src/components/BCarousel/index.d.mts +2 -0
  371. package/dist/src/components/BCarousel/index.d.ts +2 -0
  372. package/dist/src/components/BCarousel/index.mjs +6 -0
  373. package/dist/src/components/BCarousel/index.mjs.map +1 -0
  374. package/dist/src/components/BCarousel/index.umd.js +2 -0
  375. package/dist/src/components/BCarousel/index.umd.js.map +1 -0
  376. package/dist/src/components/BCol/index.d.mts +1 -0
  377. package/dist/src/components/BCol/index.d.ts +1 -0
  378. package/dist/src/components/BCol/index.mjs +5 -0
  379. package/dist/src/components/BCol/index.mjs.map +1 -0
  380. package/dist/src/components/BCol/index.umd.js +2 -0
  381. package/dist/src/components/BCol/index.umd.js.map +1 -0
  382. package/dist/src/components/BCollapse/BCollapse.vue.d.mts +67 -0
  383. package/dist/src/components/BCollapse/BCollapse.vue.d.ts +67 -0
  384. package/dist/src/components/BCollapse/index.d.mts +1 -0
  385. package/dist/src/components/BCollapse/index.d.ts +1 -0
  386. package/dist/src/components/BCollapse/index.mjs +5 -0
  387. package/dist/src/components/BCollapse/index.mjs.map +1 -0
  388. package/dist/src/components/BCollapse/index.umd.js +2 -0
  389. package/dist/src/components/BCollapse/index.umd.js.map +1 -0
  390. package/dist/src/components/BContainer/BCol.vue.d.mts +41 -0
  391. package/dist/src/components/BContainer/BCol.vue.d.ts +41 -0
  392. package/dist/src/components/BContainer/BContainer.vue.d.mts +22 -0
  393. package/dist/src/components/BContainer/BContainer.vue.d.ts +22 -0
  394. package/dist/src/components/BContainer/BRow.vue.d.mts +33 -0
  395. package/dist/src/components/BContainer/BRow.vue.d.ts +33 -0
  396. package/dist/src/components/BContainer/index.d.mts +3 -0
  397. package/dist/src/components/BContainer/index.d.ts +3 -0
  398. package/dist/src/components/BContainer/index.mjs +9 -0
  399. package/dist/src/components/BContainer/index.mjs.map +1 -0
  400. package/dist/src/components/BContainer/index.umd.js +2 -0
  401. package/dist/src/components/BContainer/index.umd.js.map +1 -0
  402. package/dist/src/components/BDropdown/BDropdown.vue.d.mts +492 -0
  403. package/dist/src/components/BDropdown/BDropdown.vue.d.ts +462 -375
  404. package/dist/src/components/BDropdown/BDropdownDivider.vue.d.mts +5 -0
  405. package/dist/src/components/BDropdown/BDropdownDivider.vue.d.ts +3 -25
  406. package/dist/src/components/BDropdown/BDropdownForm.vue.d.mts +18 -0
  407. package/dist/src/components/BDropdown/BDropdownForm.vue.d.ts +12 -5
  408. package/dist/src/components/BDropdown/BDropdownGroup.vue.d.mts +28 -0
  409. package/dist/src/components/BDropdown/BDropdownGroup.vue.d.ts +18 -43
  410. package/dist/src/components/BDropdown/BDropdownHeader.vue.d.mts +18 -0
  411. package/dist/src/components/BDropdown/BDropdownHeader.vue.d.ts +12 -5
  412. package/dist/src/components/BDropdown/BDropdownItem.vue.d.mts +46 -0
  413. package/dist/src/components/BDropdown/BDropdownItem.vue.d.ts +34 -91
  414. package/dist/src/components/BDropdown/BDropdownItemButton.vue.d.mts +30 -0
  415. package/dist/src/components/BDropdown/BDropdownItemButton.vue.d.ts +21 -46
  416. package/dist/src/components/BDropdown/BDropdownText.vue.d.mts +21 -0
  417. package/dist/src/components/BDropdown/BDropdownText.vue.d.ts +14 -29
  418. package/dist/src/components/BDropdown/index.d.mts +8 -0
  419. package/dist/src/components/BDropdown/index.d.ts +8 -0
  420. package/dist/src/components/BDropdown/index.mjs +13 -0
  421. package/dist/src/components/BDropdown/index.mjs.map +1 -0
  422. package/dist/src/components/BDropdown/index.umd.js +2 -0
  423. package/dist/src/components/BDropdown/index.umd.js.map +1 -0
  424. package/dist/src/components/BForm/BForm.vue.d.mts +28 -0
  425. package/dist/src/components/BForm/BForm.vue.d.ts +18 -37
  426. package/dist/src/components/BForm/BFormDatalist.vue.d.mts +22 -0
  427. package/dist/src/components/BForm/BFormDatalist.vue.d.ts +10 -52
  428. package/dist/src/components/BForm/BFormFloatingLabel.vue.d.mts +24 -0
  429. package/dist/src/components/BForm/BFormFloatingLabel.vue.d.ts +16 -35
  430. package/dist/src/components/BForm/BFormInvalidFeedback.vue.d.mts +28 -0
  431. package/dist/src/components/BForm/BFormInvalidFeedback.vue.d.ts +18 -47
  432. package/dist/src/components/BForm/BFormRow.vue.d.mts +21 -0
  433. package/dist/src/components/BForm/BFormRow.vue.d.ts +14 -29
  434. package/dist/src/components/BForm/BFormText.vue.d.mts +25 -0
  435. package/dist/src/components/BForm/BFormText.vue.d.ts +16 -39
  436. package/dist/src/components/BForm/BFormValidFeedback.vue.d.mts +28 -0
  437. package/dist/src/components/BForm/BFormValidFeedback.vue.d.ts +18 -47
  438. package/dist/src/components/BForm/index.d.mts +7 -0
  439. package/dist/src/components/BForm/index.d.ts +7 -0
  440. package/dist/src/components/BForm/index.mjs +13 -0
  441. package/dist/src/components/BForm/index.mjs.map +1 -0
  442. package/dist/src/components/BForm/index.umd.js +2 -0
  443. package/dist/src/components/BForm/index.umd.js.map +1 -0
  444. package/dist/src/components/BFormCheckbox/BFormCheckbox.vue.d.mts +59 -0
  445. package/dist/src/components/BFormCheckbox/BFormCheckbox.vue.d.ts +42 -196
  446. package/dist/src/components/BFormCheckbox/BFormCheckboxGroup.vue.d.mts +56 -0
  447. package/dist/src/components/BFormCheckbox/BFormCheckboxGroup.vue.d.ts +38 -194
  448. package/dist/src/components/BFormCheckbox/index.d.mts +2 -0
  449. package/dist/src/components/BFormCheckbox/index.d.ts +2 -0
  450. package/dist/src/components/BFormCheckbox/index.mjs +6 -0
  451. package/dist/src/components/BFormCheckbox/index.mjs.map +1 -0
  452. package/dist/src/components/BFormCheckbox/index.umd.js +2 -0
  453. package/dist/src/components/BFormCheckbox/index.umd.js.map +1 -0
  454. package/dist/src/components/BFormFile/BFormFile.vue.d.mts +55 -0
  455. package/dist/src/components/BFormFile/BFormFile.vue.d.ts +36 -182
  456. package/dist/src/components/BFormFile/index.d.mts +1 -0
  457. package/dist/src/components/BFormFile/index.d.ts +1 -0
  458. package/dist/src/components/BFormFile/index.mjs +5 -0
  459. package/dist/src/components/BFormFile/index.mjs.map +1 -0
  460. package/dist/src/components/BFormFile/index.umd.js +2 -0
  461. package/dist/src/components/BFormFile/index.umd.js.map +1 -0
  462. package/dist/src/components/BFormGroup/BFormGroup.vue.d.mts +540 -0
  463. package/dist/src/components/BFormGroup/BFormGroup.vue.d.ts +252 -13
  464. package/dist/src/components/BFormGroup/index.d.mts +1 -0
  465. package/dist/src/components/BFormGroup/index.d.ts +1 -0
  466. package/dist/src/components/BFormGroup/index.mjs +5 -0
  467. package/dist/src/components/BFormGroup/index.mjs.map +1 -0
  468. package/dist/src/components/BFormGroup/index.umd.js +2 -0
  469. package/dist/src/components/BFormGroup/index.umd.js.map +1 -0
  470. package/dist/src/components/BFormInput/BFormInput.vue.d.mts +40 -0
  471. package/dist/src/components/BFormInput/BFormInput.vue.d.ts +31 -202
  472. package/dist/src/components/BFormInput/index.d.mts +2 -0
  473. package/dist/src/components/BFormInput/index.d.ts +2 -0
  474. package/dist/src/components/BFormInput/index.mjs +6 -0
  475. package/dist/src/components/BFormInput/index.mjs.map +1 -0
  476. package/dist/src/components/BFormInput/index.umd.js +2 -0
  477. package/dist/src/components/BFormInput/index.umd.js.map +1 -0
  478. package/dist/src/components/BFormRadio/BFormRadio.vue.d.mts +52 -0
  479. package/dist/src/components/BFormRadio/BFormRadio.vue.d.ts +36 -159
  480. package/dist/src/components/BFormRadio/BFormRadioGroup.vue.d.mts +55 -0
  481. package/dist/src/components/BFormRadio/BFormRadioGroup.vue.d.ts +38 -186
  482. package/dist/src/components/BFormRadio/index.d.mts +2 -0
  483. package/dist/src/components/BFormRadio/index.d.ts +2 -0
  484. package/dist/src/components/BFormRadio/index.mjs +6 -0
  485. package/dist/src/components/BFormRadio/index.mjs.map +1 -0
  486. package/dist/src/components/BFormRadio/index.umd.js +2 -0
  487. package/dist/src/components/BFormRadio/index.umd.js.map +1 -0
  488. package/dist/src/components/BFormSelect/BFormSelect.vue.d.mts +34 -0
  489. package/dist/src/components/BFormSelect/BFormSelect.vue.d.ts +19 -103
  490. package/dist/src/components/BFormSelect/BFormSelectOption.vue.d.mts +20 -0
  491. package/dist/src/components/BFormSelect/BFormSelectOption.vue.d.ts +8 -34
  492. package/dist/src/components/BFormSelect/BFormSelectOptionGroup.vue.d.mts +22 -0
  493. package/dist/src/components/BFormSelect/BFormSelectOptionGroup.vue.d.ts +10 -52
  494. package/dist/src/components/BFormSelect/index.d.mts +3 -0
  495. package/dist/src/components/BFormSelect/index.d.ts +3 -0
  496. package/dist/src/components/BFormSelect/index.mjs +8 -0
  497. package/dist/src/components/BFormSelect/index.mjs.map +1 -0
  498. package/dist/src/components/BFormSelect/index.umd.js +2 -0
  499. package/dist/src/components/BFormSelect/index.umd.js.map +1 -0
  500. package/dist/src/components/BFormSpinbutton/BFormSpinbutton.vue.d.mts +58 -0
  501. package/dist/src/components/BFormSpinbutton/BFormSpinbutton.vue.d.ts +31 -228
  502. package/dist/src/components/BFormSpinbutton/index.d.mts +1 -0
  503. package/dist/src/components/BFormSpinbutton/index.d.ts +1 -0
  504. package/dist/src/components/BFormSpinbutton/index.mjs +5 -0
  505. package/dist/src/components/BFormSpinbutton/index.mjs.map +1 -0
  506. package/dist/src/components/BFormSpinbutton/index.umd.js +2 -0
  507. package/dist/src/components/BFormSpinbutton/index.umd.js.map +1 -0
  508. package/dist/src/components/BFormTags/BFormTag.vue.d.mts +32 -0
  509. package/dist/src/components/BFormTags/BFormTag.vue.d.ts +20 -49
  510. package/dist/src/components/BFormTags/BFormTags.vue.d.mts +135 -0
  511. package/dist/src/components/BFormTags/BFormTags.vue.d.ts +99 -366
  512. package/dist/src/components/BFormTags/index.d.mts +2 -0
  513. package/dist/src/components/BFormTags/index.d.ts +2 -0
  514. package/dist/src/components/BFormTags/index.mjs +6 -0
  515. package/dist/src/components/BFormTags/index.mjs.map +1 -0
  516. package/dist/src/components/BFormTags/index.umd.js +2 -0
  517. package/dist/src/components/BFormTags/index.umd.js.map +1 -0
  518. package/dist/src/components/BFormTextarea/BFormTextarea.vue.d.mts +39 -0
  519. package/dist/src/components/BFormTextarea/BFormTextarea.vue.d.ts +29 -192
  520. package/dist/src/components/BFormTextarea/index.d.mts +1 -0
  521. package/dist/src/components/BFormTextarea/index.d.ts +1 -0
  522. package/dist/src/components/BFormTextarea/index.mjs +5 -0
  523. package/dist/src/components/BFormTextarea/index.mjs.map +1 -0
  524. package/dist/src/components/BFormTextarea/index.umd.js +2 -0
  525. package/dist/src/components/BFormTextarea/index.umd.js.map +1 -0
  526. package/dist/src/components/BImg/BImg.vue.d.mts +23 -0
  527. package/dist/src/components/BImg/BImg.vue.d.ts +23 -0
  528. package/dist/src/components/BImg/index.d.mts +1 -0
  529. package/dist/src/components/BImg/index.d.ts +1 -0
  530. package/dist/src/components/BImg/index.mjs +5 -0
  531. package/dist/src/components/BImg/index.mjs.map +1 -0
  532. package/dist/src/components/BImg/index.umd.js +2 -0
  533. package/dist/src/components/BImg/index.umd.js.map +1 -0
  534. package/dist/src/components/BInputGroup/BInputGroup.vue.d.mts +31 -0
  535. package/dist/src/components/BInputGroup/BInputGroup.vue.d.ts +20 -47
  536. package/dist/src/components/BInputGroup/BInputGroupText.vue.d.mts +22 -0
  537. package/dist/src/components/BInputGroup/BInputGroupText.vue.d.ts +15 -32
  538. package/dist/src/components/BInputGroup/index.d.mts +2 -0
  539. package/dist/src/components/BInputGroup/index.d.ts +2 -0
  540. package/dist/src/components/BInputGroup/index.mjs +6 -0
  541. package/dist/src/components/BInputGroup/index.mjs.map +1 -0
  542. package/dist/src/components/BInputGroup/index.umd.js +2 -0
  543. package/dist/src/components/BInputGroup/index.umd.js.map +1 -0
  544. package/dist/src/components/BLink/BLink.vue.d.mts +45 -0
  545. package/dist/src/components/BLink/BLink.vue.d.ts +31 -86
  546. package/dist/src/components/BLink/index.d.mts +1 -0
  547. package/dist/src/components/BLink/index.d.ts +1 -0
  548. package/dist/src/components/BLink/index.mjs +5 -0
  549. package/dist/src/components/BLink/index.mjs.map +1 -0
  550. package/dist/src/components/BLink/index.umd.js +2 -0
  551. package/dist/src/components/BLink/index.umd.js.map +1 -0
  552. package/dist/src/components/BListGroup/BListGroup.vue.d.mts +24 -0
  553. package/dist/src/components/BListGroup/BListGroup.vue.d.ts +15 -36
  554. package/dist/src/components/BListGroup/BListGroupItem.vue.d.mts +43 -0
  555. package/dist/src/components/BListGroup/BListGroupItem.vue.d.ts +30 -89
  556. package/dist/src/components/BListGroup/index.d.mts +2 -0
  557. package/dist/src/components/BListGroup/index.d.ts +2 -0
  558. package/dist/src/components/BListGroup/index.mjs +6 -0
  559. package/dist/src/components/BListGroup/index.mjs.map +1 -0
  560. package/dist/src/components/BListGroup/index.umd.js +2 -0
  561. package/dist/src/components/BListGroup/index.umd.js.map +1 -0
  562. package/dist/src/components/BModal/BModal.vue.d.mts +456 -0
  563. package/dist/src/components/BModal/BModal.vue.d.ts +416 -528
  564. package/dist/src/components/BModal/BModalOrchestrator.vue.d.mts +14 -0
  565. package/dist/src/components/BModal/BModalOrchestrator.vue.d.ts +11 -48
  566. package/dist/src/components/BModal/index.d.mts +2 -0
  567. package/dist/src/components/BModal/index.d.ts +2 -0
  568. package/dist/src/components/BModal/index.mjs +6 -0
  569. package/dist/src/components/BModal/index.mjs.map +1 -0
  570. package/dist/src/components/BModal/index.umd.js +2 -0
  571. package/dist/src/components/BModal/index.umd.js.map +1 -0
  572. package/dist/src/components/BNav/BNav.vue.d.mts +30 -0
  573. package/dist/src/components/BNav/BNav.vue.d.ts +15 -48
  574. package/dist/src/components/BNav/BNavForm.vue.d.mts +29 -0
  575. package/dist/src/components/BNav/BNavForm.vue.d.ts +17 -40
  576. package/dist/src/components/BNav/BNavItem.vue.d.mts +46 -0
  577. package/dist/src/components/BNav/BNavItem.vue.d.ts +34 -91
  578. package/dist/src/components/BNav/BNavItemDropdown.vue.d.mts +348 -0
  579. package/dist/src/components/BNav/BNavItemDropdown.vue.d.ts +319 -369
  580. package/dist/src/components/BNav/BNavText.vue.d.mts +21 -0
  581. package/dist/src/components/BNav/BNavText.vue.d.ts +14 -29
  582. package/dist/src/components/BNav/index.d.mts +5 -0
  583. package/dist/src/components/BNav/index.d.ts +5 -0
  584. package/dist/src/components/BNav/index.mjs +9 -0
  585. package/dist/src/components/BNav/index.mjs.map +1 -0
  586. package/dist/src/components/BNav/index.umd.js +2 -0
  587. package/dist/src/components/BNav/index.umd.js.map +1 -0
  588. package/dist/src/components/BNavbar/BNavbar.vue.d.mts +28 -0
  589. package/dist/src/components/BNavbar/BNavbar.vue.d.ts +19 -48
  590. package/dist/src/components/BNavbar/BNavbarBrand.vue.d.mts +41 -0
  591. package/dist/src/components/BNavbar/BNavbarBrand.vue.d.ts +30 -85
  592. package/dist/src/components/BNavbar/BNavbarNav.vue.d.mts +25 -0
  593. package/dist/src/components/BNavbar/BNavbarNav.vue.d.ts +15 -38
  594. package/dist/src/components/BNavbar/BNavbarToggle.vue.d.mts +27 -0
  595. package/dist/src/components/BNavbar/BNavbarToggle.vue.d.ts +18 -37
  596. package/dist/src/components/BNavbar/index.d.mts +4 -0
  597. package/dist/src/components/BNavbar/index.d.ts +4 -0
  598. package/dist/src/components/BNavbar/index.mjs +8 -0
  599. package/dist/src/components/BNavbar/index.mjs.map +1 -0
  600. package/dist/src/components/BNavbar/index.umd.js +2 -0
  601. package/dist/src/components/BNavbar/index.umd.js.map +1 -0
  602. package/dist/src/components/BOffcanvas/BOffcanvas.vue.d.mts +90 -0
  603. package/dist/src/components/BOffcanvas/BOffcanvas.vue.d.ts +62 -239
  604. package/dist/src/components/BOffcanvas/index.d.mts +1 -0
  605. package/dist/src/components/BOffcanvas/index.d.ts +1 -0
  606. package/dist/src/components/BOffcanvas/index.mjs +5 -0
  607. package/dist/src/components/BOffcanvas/index.mjs.map +1 -0
  608. package/dist/src/components/BOffcanvas/index.umd.js +2 -0
  609. package/dist/src/components/BOffcanvas/index.umd.js.map +1 -0
  610. package/dist/src/components/BOverlay/BOverlay.vue.d.mts +56 -0
  611. package/dist/src/components/BOverlay/BOverlay.vue.d.ts +41 -99
  612. package/dist/src/components/BOverlay/index.d.mts +1 -0
  613. package/dist/src/components/BOverlay/index.d.ts +1 -0
  614. package/dist/src/components/BOverlay/index.mjs +5 -0
  615. package/dist/src/components/BOverlay/index.mjs.map +1 -0
  616. package/dist/src/components/BOverlay/index.umd.js +2 -0
  617. package/dist/src/components/BOverlay/index.umd.js.map +1 -0
  618. package/dist/src/components/BPagination/BPagination.vue.d.mts +58 -0
  619. package/dist/src/components/BPagination/BPagination.vue.d.ts +24 -253
  620. package/dist/src/components/BPagination/index.d.mts +1 -0
  621. package/dist/src/components/BPagination/index.d.ts +1 -0
  622. package/dist/src/components/BPagination/index.mjs +5 -0
  623. package/dist/src/components/BPagination/index.mjs.map +1 -0
  624. package/dist/src/components/BPagination/index.umd.js +2 -0
  625. package/dist/src/components/BPagination/index.umd.js.map +1 -0
  626. package/dist/src/components/BPlaceholder/BPlaceholder.vue.d.mts +11 -0
  627. package/dist/src/components/BPlaceholder/BPlaceholder.vue.d.ts +8 -42
  628. package/dist/src/components/BPlaceholder/BPlaceholderButton.vue.d.mts +9 -0
  629. package/dist/src/components/BPlaceholder/BPlaceholderButton.vue.d.ts +7 -37
  630. package/dist/src/components/BPlaceholder/BPlaceholderCard.vue.d.mts +45 -0
  631. package/dist/src/components/BPlaceholder/BPlaceholderCard.vue.d.ts +33 -84
  632. package/dist/src/components/BPlaceholder/BPlaceholderTable.vue.d.mts +42 -0
  633. package/dist/src/components/BPlaceholder/BPlaceholderTable.vue.d.ts +34 -83
  634. package/dist/src/components/BPlaceholder/BPlaceholderWrapper.vue.d.mts +23 -0
  635. package/dist/src/components/BPlaceholder/BPlaceholderWrapper.vue.d.ts +16 -31
  636. package/dist/src/components/BPlaceholder/index.d.mts +5 -0
  637. package/dist/src/components/BPlaceholder/index.d.ts +5 -0
  638. package/dist/src/components/BPlaceholder/index.mjs +9 -0
  639. package/dist/src/components/BPlaceholder/index.mjs.map +1 -0
  640. package/dist/src/components/BPlaceholder/index.umd.js +2 -0
  641. package/dist/src/components/BPlaceholder/index.umd.js.map +1 -0
  642. package/dist/src/components/BPopover/BPopover.vue.d.mts +98 -0
  643. package/dist/src/components/BPopover/BPopover.vue.d.ts +98 -0
  644. package/dist/src/components/BPopover/BPopoverOrchestrator.vue.d.mts +7 -0
  645. package/dist/src/components/BPopover/BPopoverOrchestrator.vue.d.ts +7 -0
  646. package/dist/src/components/BPopover/index.d.mts +2 -0
  647. package/dist/src/components/BPopover/index.d.ts +2 -0
  648. package/dist/src/components/BPopover/index.mjs +7 -0
  649. package/dist/src/components/BPopover/index.mjs.map +1 -0
  650. package/dist/src/components/BPopover/index.umd.js +2 -0
  651. package/dist/src/components/BPopover/index.umd.js.map +1 -0
  652. package/dist/src/components/BProgress/BProgress.vue.d.mts +31 -0
  653. package/dist/src/components/BProgress/BProgress.vue.d.ts +22 -57
  654. package/dist/src/components/BProgress/BProgressBar.vue.d.mts +32 -0
  655. package/dist/src/components/BProgress/BProgressBar.vue.d.ts +22 -59
  656. package/dist/src/components/BProgress/index.d.mts +2 -0
  657. package/dist/src/components/BProgress/index.d.ts +2 -0
  658. package/dist/src/components/BProgress/index.mjs +6 -0
  659. package/dist/src/components/BProgress/index.mjs.map +1 -0
  660. package/dist/src/components/BProgress/index.umd.js +2 -0
  661. package/dist/src/components/BProgress/index.umd.js.map +1 -0
  662. package/dist/src/components/BRow/index.d.mts +1 -0
  663. package/dist/src/components/BRow/index.d.ts +1 -0
  664. package/dist/src/components/BRow/index.mjs +5 -0
  665. package/dist/src/components/BRow/index.mjs.map +1 -0
  666. package/dist/src/components/BRow/index.umd.js +2 -0
  667. package/dist/src/components/BRow/index.umd.js.map +1 -0
  668. package/dist/src/components/BSpinner/BSpinner.vue.d.mts +26 -0
  669. package/dist/src/components/BSpinner/BSpinner.vue.d.ts +26 -0
  670. package/dist/src/components/BSpinner/index.d.mts +1 -0
  671. package/dist/src/components/BSpinner/index.d.ts +1 -0
  672. package/dist/src/components/BSpinner/index.mjs +5 -0
  673. package/dist/src/components/BSpinner/index.mjs.map +1 -0
  674. package/dist/src/components/BSpinner/index.umd.js +2 -0
  675. package/dist/src/components/BSpinner/index.umd.js.map +1 -0
  676. package/dist/src/components/BTable/BTable.vue.d.mts +117 -0
  677. package/dist/src/components/BTable/BTable.vue.d.ts +38 -371
  678. package/dist/src/components/BTable/BTableLite.vue.d.mts +111 -0
  679. package/dist/src/components/BTable/BTableLite.vue.d.ts +44 -356
  680. package/dist/src/components/BTable/BTableSimple.vue.d.mts +39 -0
  681. package/dist/src/components/BTable/BTableSimple.vue.d.ts +22 -73
  682. package/dist/src/components/BTable/BTbody.vue.d.mts +21 -0
  683. package/dist/src/components/BTable/BTbody.vue.d.ts +14 -29
  684. package/dist/src/components/BTable/BTd.vue.d.mts +25 -0
  685. package/dist/src/components/BTable/BTd.vue.d.ts +18 -41
  686. package/dist/src/components/BTable/BTfoot.vue.d.mts +21 -0
  687. package/dist/src/components/BTable/BTfoot.vue.d.ts +14 -29
  688. package/dist/src/components/BTable/BTh.vue.d.mts +25 -0
  689. package/dist/src/components/BTable/BTh.vue.d.ts +18 -41
  690. package/dist/src/components/BTable/BThead.vue.d.mts +21 -0
  691. package/dist/src/components/BTable/BThead.vue.d.ts +14 -29
  692. package/dist/src/components/BTable/BTr.vue.d.mts +21 -0
  693. package/dist/src/components/BTable/BTr.vue.d.ts +14 -29
  694. package/dist/src/components/BTable/index.d.mts +9 -0
  695. package/dist/src/components/BTable/index.d.ts +9 -0
  696. package/dist/src/components/BTable/index.mjs +14 -0
  697. package/dist/src/components/BTable/index.mjs.map +1 -0
  698. package/dist/src/components/BTable/index.umd.js +2 -0
  699. package/dist/src/components/BTable/index.umd.js.map +1 -0
  700. package/dist/src/components/BTabs/BTab.vue.d.mts +43 -0
  701. package/dist/src/components/BTabs/BTab.vue.d.ts +32 -106
  702. package/dist/src/components/BTabs/BTabs.vue.d.mts +64 -0
  703. package/dist/src/components/BTabs/BTabs.vue.d.ts +47 -213
  704. package/dist/src/components/BTabs/index.d.mts +2 -0
  705. package/dist/src/components/BTabs/index.d.ts +2 -0
  706. package/dist/src/components/BTabs/index.mjs +6 -0
  707. package/dist/src/components/BTabs/index.mjs.map +1 -0
  708. package/dist/src/components/BTabs/index.umd.js +2 -0
  709. package/dist/src/components/BTabs/index.umd.js.map +1 -0
  710. package/dist/src/components/BToast/BToast.vue.d.mts +95 -0
  711. package/dist/src/components/BToast/BToast.vue.d.ts +67 -364
  712. package/dist/src/components/BToast/BToastOrchestrator.vue.d.mts +13 -0
  713. package/dist/src/components/BToast/BToastOrchestrator.vue.d.ts +9 -42
  714. package/dist/src/components/BToast/index.d.mts +2 -0
  715. package/dist/src/components/BToast/index.d.ts +2 -0
  716. package/dist/src/components/BToast/index.mjs +6 -0
  717. package/dist/src/components/BToast/index.mjs.map +1 -0
  718. package/dist/src/components/BToast/index.umd.js +2 -0
  719. package/dist/src/components/BToast/index.umd.js.map +1 -0
  720. package/dist/src/components/BTooltip/BTooltip.vue.d.mts +276 -0
  721. package/dist/src/components/BTooltip/BTooltip.vue.d.ts +276 -0
  722. package/dist/src/components/BTooltip/BTooltipOrchestrator.vue.d.mts +7 -0
  723. package/dist/src/components/BTooltip/BTooltipOrchestrator.vue.d.ts +7 -0
  724. package/dist/src/components/BTooltip/index.d.mts +2 -0
  725. package/dist/src/components/BTooltip/index.d.ts +2 -0
  726. package/dist/src/components/BTooltip/index.mjs +6 -0
  727. package/dist/src/components/BTooltip/index.mjs.map +1 -0
  728. package/dist/src/components/BTooltip/index.umd.js +2 -0
  729. package/dist/src/components/BTooltip/index.umd.js.map +1 -0
  730. package/dist/src/components/BTransition.vue.d.mts +50 -0
  731. package/dist/src/components/BTransition.vue.d.ts +50 -0
  732. package/dist/src/components/RenderComponentOrSkip.vue.d.mts +39 -0
  733. package/dist/src/components/RenderComponentOrSkip.vue.d.ts +10 -11
  734. package/dist/src/components/index.d.mts +39 -0
  735. package/dist/src/components/index.d.ts +39 -101
  736. package/dist/src/components/index.mjs +155 -0
  737. package/dist/src/components/index.mjs.map +1 -0
  738. package/dist/src/components/index.umd.js +2 -0
  739. package/dist/src/components/index.umd.js.map +1 -0
  740. package/dist/src/composables/index.d.mts +8 -0
  741. package/dist/src/composables/index.d.ts +8 -25
  742. package/dist/src/composables/index.mjs +19 -0
  743. package/dist/src/composables/index.mjs.map +1 -0
  744. package/dist/src/composables/index.umd.js +2 -0
  745. package/dist/src/composables/index.umd.js.map +1 -0
  746. package/dist/src/composables/useActivatedFocusTrap.d.mts +21 -0
  747. package/dist/src/composables/useActivatedFocusTrap.d.ts +1 -2
  748. package/dist/src/composables/useAlignment.d.mts +3 -0
  749. package/dist/src/composables/useAlignment.d.ts +2 -4
  750. package/dist/src/composables/useAriaInvalid.d.mts +3 -0
  751. package/dist/src/composables/useAriaInvalid.d.ts +2 -4
  752. package/dist/src/composables/useBLinkHelper.d.mts +7 -0
  753. package/dist/src/composables/useBLinkHelper.d.ts +2 -4
  754. package/dist/src/composables/useBreadcrumb/index.d.mts +4 -0
  755. package/dist/src/composables/useBreadcrumb/index.d.ts +4 -0
  756. package/dist/src/composables/useBreadcrumb/index.mjs +7 -0
  757. package/dist/src/composables/useBreadcrumb/index.mjs.map +1 -0
  758. package/dist/src/composables/useBreadcrumb/index.umd.js +2 -0
  759. package/dist/src/composables/useBreadcrumb/index.umd.js.map +1 -0
  760. package/dist/src/composables/{useColorMode.d.ts → useColorMode/index.d.mts} +1 -3
  761. package/dist/src/composables/useColorMode/index.d.ts +9 -0
  762. package/dist/src/composables/useColorMode/index.mjs +16 -0
  763. package/dist/src/composables/useColorMode/index.mjs.map +1 -0
  764. package/dist/src/composables/useColorMode/index.umd.js +2 -0
  765. package/dist/src/composables/useColorMode/index.umd.js.map +1 -0
  766. package/dist/src/composables/useColorVariantClasses.d.mts +5 -0
  767. package/dist/src/composables/useColorVariantClasses.d.ts +2 -4
  768. package/dist/src/composables/useContainerClasses.d.mts +6 -0
  769. package/dist/src/composables/useContainerClasses.d.ts +2 -4
  770. package/dist/src/composables/useCountdown.d.mts +18 -0
  771. package/dist/src/composables/useCountdown.d.ts +11 -16
  772. package/dist/src/composables/useCountdownHover.d.mts +10 -0
  773. package/dist/src/composables/useCountdownHover.d.ts +10 -0
  774. package/dist/src/composables/useDefaults.d.mts +2 -0
  775. package/dist/src/composables/useDefaults.d.ts +1 -2
  776. package/dist/src/composables/useFormCheck.d.mts +62 -0
  777. package/dist/src/composables/useFormCheck.d.ts +4 -3
  778. package/dist/src/composables/useFormInput.d.mts +13 -0
  779. package/dist/src/composables/useFormInput.d.ts +3 -5
  780. package/dist/src/composables/useFormSelect.d.mts +9 -0
  781. package/dist/src/composables/useFormSelect.d.ts +4 -9
  782. package/dist/src/composables/useId.d.mts +2 -0
  783. package/dist/src/composables/useId.d.ts +1 -4
  784. package/dist/src/composables/useLinkClasses.d.mts +7 -0
  785. package/dist/src/composables/useLinkClasses.d.ts +1 -2
  786. package/dist/src/composables/useManualTransition.d.mts +5 -0
  787. package/dist/src/composables/useManualTransition.d.ts +1 -3
  788. package/dist/src/composables/useModal/index.d.mts +6 -0
  789. package/dist/src/composables/useModal/index.d.ts +6 -0
  790. package/dist/src/composables/useModal/index.mjs +51 -0
  791. package/dist/src/composables/useModal/index.mjs.map +1 -0
  792. package/dist/src/composables/useModal/index.umd.js +2 -0
  793. package/dist/src/composables/useModal/index.umd.js.map +1 -0
  794. package/dist/src/composables/useModalController/index.d.mts +9 -0
  795. package/dist/src/composables/useModalController/index.d.ts +9 -0
  796. package/dist/src/composables/useModalController/index.mjs +29 -0
  797. package/dist/src/composables/useModalController/index.mjs.map +1 -0
  798. package/dist/src/composables/useModalController/index.umd.js +2 -0
  799. package/dist/src/composables/useModalController/index.umd.js.map +1 -0
  800. package/dist/src/composables/useModalManager.d.mts +17 -0
  801. package/dist/src/composables/useModalManager.d.ts +2 -4
  802. package/dist/src/composables/useNumberishToStyle.d.mts +3 -0
  803. package/dist/src/composables/useNumberishToStyle.d.ts +2 -4
  804. package/dist/src/composables/usePopover/index.d.mts +6 -0
  805. package/dist/src/composables/usePopover/index.d.ts +6 -0
  806. package/dist/src/composables/usePopover/index.mjs +7 -0
  807. package/dist/src/composables/usePopover/index.mjs.map +1 -0
  808. package/dist/src/composables/usePopover/index.umd.js +2 -0
  809. package/dist/src/composables/usePopover/index.umd.js.map +1 -0
  810. package/dist/src/composables/useRadiusElementClasses.d.mts +5 -0
  811. package/dist/src/composables/useRadiusElementClasses.d.ts +2 -4
  812. package/dist/src/composables/useRtl.d.mts +4 -0
  813. package/dist/src/composables/useRtl.d.ts +3 -4
  814. package/dist/src/composables/useSafeScrollLock.d.mts +2 -0
  815. package/dist/src/composables/useSafeScrollLock.d.ts +1 -3
  816. package/dist/src/composables/{useScrollspy.d.ts → useScrollspy/index.d.mts} +2 -3
  817. package/dist/src/composables/useScrollspy/index.d.ts +27 -0
  818. package/dist/src/composables/useScrollspy/index.mjs +179 -0
  819. package/dist/src/composables/useScrollspy/index.mjs.map +1 -0
  820. package/dist/src/composables/useScrollspy/index.umd.js +2 -0
  821. package/dist/src/composables/useScrollspy/index.umd.js.map +1 -0
  822. package/dist/src/composables/useStateClass.d.mts +2 -0
  823. package/dist/src/composables/useStateClass.d.ts +1 -3
  824. package/dist/src/composables/useToast/index.d.mts +7 -0
  825. package/dist/src/composables/useToast/index.d.ts +7 -0
  826. package/dist/src/composables/useToast/index.mjs +7 -0
  827. package/dist/src/composables/useToast/index.mjs.map +1 -0
  828. package/dist/src/composables/useToast/index.umd.js +2 -0
  829. package/dist/src/composables/useToast/index.umd.js.map +1 -0
  830. package/dist/src/composables/useTooltip/index.d.mts +6 -0
  831. package/dist/src/composables/useTooltip/index.d.ts +6 -0
  832. package/dist/src/composables/useTooltip/index.mjs +7 -0
  833. package/dist/src/composables/useTooltip/index.mjs.map +1 -0
  834. package/dist/src/composables/useTooltip/index.umd.js +2 -0
  835. package/dist/src/composables/useTooltip/index.umd.js.map +1 -0
  836. package/dist/src/composables/useTransitions.d.mts +11 -0
  837. package/dist/src/composables/useTransitions.d.ts +0 -1
  838. package/dist/src/directives/BColorMode/index.d.mts +2 -0
  839. package/dist/src/directives/BColorMode/index.d.ts +2 -0
  840. package/dist/src/directives/BColorMode/index.mjs +13 -0
  841. package/dist/src/directives/BColorMode/index.mjs.map +1 -0
  842. package/dist/src/directives/BColorMode/index.umd.js +2 -0
  843. package/dist/src/directives/BColorMode/index.umd.js.map +1 -0
  844. package/dist/src/directives/BModal/index.d.mts +1 -0
  845. package/dist/src/directives/BModal/index.d.ts +1 -0
  846. package/dist/src/directives/BModal/index.mjs +5 -0
  847. package/dist/src/directives/BModal/index.mjs.map +1 -0
  848. package/dist/src/directives/BModal/index.umd.js +2 -0
  849. package/dist/src/directives/BModal/index.umd.js.map +1 -0
  850. package/dist/src/directives/BPopover/index.d.mts +3 -0
  851. package/dist/src/directives/BPopover/index.d.ts +3 -0
  852. package/dist/src/directives/BPopover/index.mjs +43 -0
  853. package/dist/src/directives/BPopover/index.mjs.map +1 -0
  854. package/dist/src/directives/BPopover/index.umd.js +2 -0
  855. package/dist/src/directives/BPopover/index.umd.js.map +1 -0
  856. package/dist/src/directives/BScrollspy/index.d.mts +6 -0
  857. package/dist/src/directives/BScrollspy/index.d.ts +6 -0
  858. package/dist/src/directives/BScrollspy/index.mjs +21 -0
  859. package/dist/src/directives/BScrollspy/index.mjs.map +1 -0
  860. package/dist/src/directives/BScrollspy/index.umd.js +2 -0
  861. package/dist/src/directives/BScrollspy/index.umd.js.map +1 -0
  862. package/dist/src/directives/BToggle/index.d.mts +5 -0
  863. package/dist/src/directives/BToggle/index.d.ts +5 -0
  864. package/dist/src/directives/BToggle/index.mjs +67 -0
  865. package/dist/src/directives/BToggle/index.mjs.map +1 -0
  866. package/dist/src/directives/BToggle/index.umd.js +2 -0
  867. package/dist/src/directives/BToggle/index.umd.js.map +1 -0
  868. package/dist/src/directives/BTooltip/index.d.mts +3 -0
  869. package/dist/src/directives/BTooltip/index.d.ts +3 -0
  870. package/dist/src/directives/BTooltip/index.mjs +47 -0
  871. package/dist/src/directives/BTooltip/index.mjs.map +1 -0
  872. package/dist/src/directives/BTooltip/index.umd.js +2 -0
  873. package/dist/src/directives/BTooltip/index.umd.js.map +1 -0
  874. package/dist/src/directives/index.d.mts +6 -0
  875. package/dist/src/directives/index.d.ts +6 -6
  876. package/dist/src/directives/index.mjs +14 -0
  877. package/dist/src/directives/index.mjs.map +1 -0
  878. package/dist/src/directives/index.umd.js +2 -0
  879. package/dist/src/directives/index.umd.js.map +1 -0
  880. package/dist/src/index.d.mts +14 -0
  881. package/dist/src/index.d.ts +14 -0
  882. package/dist/src/main.d.mts +0 -0
  883. package/dist/src/main.d.ts +0 -1
  884. package/dist/src/plugins/breadcrumb/index.d.mts +2 -0
  885. package/dist/src/plugins/breadcrumb/index.d.ts +2 -0
  886. package/dist/src/plugins/breadcrumb/index.mjs +15 -0
  887. package/dist/src/plugins/breadcrumb/index.mjs.map +1 -0
  888. package/dist/src/plugins/breadcrumb/index.umd.js +2 -0
  889. package/dist/src/plugins/breadcrumb/index.umd.js.map +1 -0
  890. package/dist/src/plugins/createBootstrap/index.d.mts +3 -0
  891. package/dist/src/plugins/createBootstrap/index.d.ts +3 -0
  892. package/dist/src/plugins/createBootstrap/index.mjs +38 -0
  893. package/dist/src/plugins/createBootstrap/index.mjs.map +1 -0
  894. package/dist/src/plugins/createBootstrap/index.umd.js +2 -0
  895. package/dist/src/plugins/createBootstrap/index.umd.js.map +1 -0
  896. package/dist/src/plugins/defaults/index.d.mts +2 -0
  897. package/dist/src/plugins/defaults/index.d.ts +2 -0
  898. package/dist/src/plugins/defaults/index.mjs +12 -0
  899. package/dist/src/plugins/defaults/index.mjs.map +1 -0
  900. package/dist/src/plugins/defaults/index.umd.js +2 -0
  901. package/dist/src/plugins/defaults/index.umd.js.map +1 -0
  902. package/dist/src/plugins/index.d.mts +9 -0
  903. package/dist/src/plugins/index.d.ts +9 -7
  904. package/dist/src/plugins/index.mjs +21 -0
  905. package/dist/src/plugins/index.mjs.map +1 -0
  906. package/dist/src/plugins/index.umd.js +2 -0
  907. package/dist/src/plugins/index.umd.js.map +1 -0
  908. package/dist/src/plugins/modalController/index.d.mts +2 -0
  909. package/dist/src/plugins/modalController/index.d.ts +2 -0
  910. package/dist/src/plugins/modalController/index.mjs +75 -0
  911. package/dist/src/plugins/modalController/index.mjs.map +1 -0
  912. package/dist/src/plugins/modalController/index.umd.js +2 -0
  913. package/dist/src/plugins/modalController/index.umd.js.map +1 -0
  914. package/dist/src/plugins/modalManager/index.d.mts +2 -0
  915. package/dist/src/plugins/modalManager/index.d.ts +2 -0
  916. package/dist/src/plugins/modalManager/index.mjs +38 -0
  917. package/dist/src/plugins/modalManager/index.mjs.map +1 -0
  918. package/dist/src/plugins/modalManager/index.umd.js +2 -0
  919. package/dist/src/plugins/modalManager/index.umd.js.map +1 -0
  920. package/dist/src/plugins/popover/index.d.mts +2 -0
  921. package/dist/src/plugins/popover/index.d.ts +2 -0
  922. package/dist/src/plugins/popover/index.mjs +55 -0
  923. package/dist/src/plugins/popover/index.mjs.map +1 -0
  924. package/dist/src/plugins/popover/index.umd.js +2 -0
  925. package/dist/src/plugins/popover/index.umd.js.map +1 -0
  926. package/dist/src/plugins/rtl/index.d.mts +2 -0
  927. package/dist/src/plugins/rtl/index.d.ts +2 -0
  928. package/dist/src/plugins/rtl/index.mjs +18 -0
  929. package/dist/src/plugins/rtl/index.mjs.map +1 -0
  930. package/dist/src/plugins/rtl/index.umd.js +2 -0
  931. package/dist/src/plugins/rtl/index.umd.js.map +1 -0
  932. package/dist/src/plugins/toast/index.d.mts +2 -0
  933. package/dist/src/plugins/toast/index.d.ts +2 -0
  934. package/dist/src/plugins/toast/index.mjs +69 -0
  935. package/dist/src/plugins/toast/index.mjs.map +1 -0
  936. package/dist/src/plugins/toast/index.umd.js +2 -0
  937. package/dist/src/plugins/toast/index.umd.js.map +1 -0
  938. package/dist/src/plugins/tooltip/index.d.mts +2 -0
  939. package/dist/src/plugins/tooltip/index.d.ts +2 -0
  940. package/dist/src/plugins/tooltip/index.mjs +57 -0
  941. package/dist/src/plugins/tooltip/index.mjs.map +1 -0
  942. package/dist/src/plugins/tooltip/index.umd.js +2 -0
  943. package/dist/src/plugins/tooltip/index.umd.js.map +1 -0
  944. package/dist/src/resolvers/index.d.mts +10 -0
  945. package/dist/src/resolvers/index.d.ts +10 -0
  946. package/dist/src/resolvers/index.mjs +5 -0
  947. package/dist/src/resolvers/index.mjs.map +1 -0
  948. package/dist/src/resolvers/index.umd.js +2 -0
  949. package/dist/src/resolvers/index.umd.js.map +1 -0
  950. package/dist/src/types/Alignment.d.mts +12 -0
  951. package/dist/src/types/Animation.d.mts +1 -0
  952. package/dist/src/types/AnyValuedAttributes.d.mts +2 -0
  953. package/dist/src/types/AriaInvalid.d.mts +1 -0
  954. package/dist/src/types/BootstrapVueOptions.d.mts +284 -0
  955. package/dist/src/types/BootstrapVueOptions.d.ts +244 -26
  956. package/dist/src/types/BreadcrumbTypes.d.mts +9 -0
  957. package/dist/src/types/BreadcrumbTypes.d.ts +0 -1
  958. package/dist/src/types/BreakpointProps.d.mts +30 -0
  959. package/dist/src/types/ButtonType.d.mts +1 -0
  960. package/dist/src/types/CheckboxTypes.d.mts +7 -0
  961. package/dist/src/types/ColorTypes.d.mts +37 -0
  962. package/dist/src/types/CommonTypes.d.mts +6 -0
  963. package/dist/src/types/CommonTypes.d.ts +0 -1
  964. package/dist/src/types/ComponentOrchestratorTypes.d.mts +80 -0
  965. package/dist/src/types/ComponentOrchestratorTypes.d.ts +62 -5
  966. package/dist/src/types/ComponentProps.d.mts +1159 -0
  967. package/dist/src/types/ComponentProps.d.ts +28 -113
  968. package/dist/src/types/FormCommonInputProps.d.mts +26 -0
  969. package/dist/src/types/FormCommonInputProps.d.ts +3 -2
  970. package/dist/src/types/InputType.d.mts +1 -0
  971. package/dist/src/types/LinkTarget.d.mts +1 -0
  972. package/dist/src/types/LiteralUnion.d.mts +19 -0
  973. package/dist/src/types/MaybePromise.d.mts +1 -0
  974. package/dist/src/types/PaginationPage.d.mts +3 -0
  975. package/dist/src/types/PlaceholderTypes.d.mts +3 -0
  976. package/dist/src/types/PlaceholderTypes.d.ts +1 -2
  977. package/dist/src/types/PopoverPlacement.d.mts +2 -0
  978. package/dist/src/types/PopoverPlacement.d.ts +0 -1
  979. package/dist/src/types/Position.d.mts +1 -0
  980. package/dist/src/types/Props.d.mts +10 -0
  981. package/dist/src/types/RadioTypes.d.mts +7 -0
  982. package/dist/src/types/RadiusElement.d.mts +8 -0
  983. package/dist/src/types/SelectTypes.d.mts +16 -0
  984. package/dist/src/types/Size.d.mts +6 -0
  985. package/dist/src/types/SpinnerType.d.mts +1 -0
  986. package/dist/src/types/Tab.d.mts +15 -0
  987. package/dist/src/types/Tab.d.ts +4 -5
  988. package/dist/src/types/TableTypes.d.mts +53 -0
  989. package/dist/src/types/TableTypes.d.ts +5 -3
  990. package/dist/src/types/TransitionMode.d.mts +1 -0
  991. package/dist/src/types/index.d.mts +27 -0
  992. package/dist/src/types/index.d.ts +16 -20
  993. package/dist/src/utils/classes.d.mts +58 -0
  994. package/dist/src/utils/classes.d.ts +58 -0
  995. package/dist/src/{constants/codes.d.ts → utils/constants.d.mts} +11 -0
  996. package/dist/src/utils/constants.d.ts +25 -0
  997. package/dist/src/utils/dom.d.mts +11 -0
  998. package/dist/src/utils/dom.d.ts +0 -1
  999. package/dist/src/utils/event.d.mts +20 -0
  1000. package/dist/src/utils/event.d.ts +1 -1
  1001. package/dist/src/utils/filterEvent.d.mts +1 -0
  1002. package/dist/src/utils/filterEvent.d.ts +1 -2
  1003. package/dist/src/utils/floatingUi.d.mts +33 -0
  1004. package/dist/src/utils/floatingUi.d.ts +4 -4
  1005. package/dist/src/utils/formatItem.d.mts +2 -0
  1006. package/dist/src/utils/formatItem.d.ts +2 -4
  1007. package/dist/src/utils/getBreakpointProps.d.mts +2 -0
  1008. package/dist/src/utils/getBreakpointProps.d.ts +2 -4
  1009. package/dist/src/utils/getClasses.d.mts +1 -0
  1010. package/dist/src/utils/getClasses.d.ts +1 -2
  1011. package/dist/src/utils/getElement.d.mts +2 -0
  1012. package/dist/src/utils/getElement.d.ts +1 -3
  1013. package/dist/src/utils/getSlotElements.d.mts +2 -0
  1014. package/dist/src/utils/getSlotElements.d.ts +1 -3
  1015. package/dist/src/utils/getTableFieldHeadLabel.d.mts +2 -0
  1016. package/dist/src/utils/getTableFieldHeadLabel.d.ts +2 -4
  1017. package/dist/src/utils/index.d.mts +1 -0
  1018. package/dist/src/utils/index.d.ts +0 -19
  1019. package/dist/src/utils/index.mjs +7 -0
  1020. package/dist/src/utils/index.mjs.map +1 -0
  1021. package/dist/src/utils/index.umd.js +2 -0
  1022. package/dist/src/utils/index.umd.js.map +1 -0
  1023. package/dist/src/utils/isLink.d.mts +5 -0
  1024. package/dist/src/utils/isLink.d.ts +1 -3
  1025. package/dist/src/utils/keys.d.mts +153 -0
  1026. package/dist/src/utils/keys.d.ts +40 -45
  1027. package/dist/src/utils/normalizeInput.d.mts +2 -0
  1028. package/dist/src/utils/normalizeInput.d.ts +2 -4
  1029. package/dist/src/utils/normalizeSlot.d.mts +2 -0
  1030. package/dist/src/utils/normalizeSlot.d.ts +1 -3
  1031. package/dist/src/utils/object.d.mts +34 -0
  1032. package/dist/src/utils/object.d.ts +2 -2
  1033. package/dist/src/utils/positionClasses.d.mts +11 -0
  1034. package/dist/src/utils/props.d.mts +8 -0
  1035. package/dist/src/utils/sanitizer.d.mts +39 -0
  1036. package/dist/src/utils/stringUtils.d.mts +32 -0
  1037. package/dist/stringUtils-D2ajpVM0.js +2 -0
  1038. package/dist/stringUtils-D2ajpVM0.js.map +1 -0
  1039. package/dist/stringUtils-i6NkPGA1.mjs +16 -0
  1040. package/dist/stringUtils-i6NkPGA1.mjs.map +1 -0
  1041. package/dist/useAlignment-BTUJZ_9x.js +2 -0
  1042. package/dist/useAlignment-BTUJZ_9x.js.map +1 -0
  1043. package/dist/useAlignment-Cw-9AVid.mjs +9 -0
  1044. package/dist/useAlignment-Cw-9AVid.mjs.map +1 -0
  1045. package/dist/useAriaInvalid-BTUbGj3Y.mjs +11 -0
  1046. package/dist/useAriaInvalid-BTUbGj3Y.mjs.map +1 -0
  1047. package/dist/useAriaInvalid-DUOcHX79.js +2 -0
  1048. package/dist/useAriaInvalid-DUOcHX79.js.map +1 -0
  1049. package/dist/useBLinkHelper-Bvtov_sk.mjs +37 -0
  1050. package/dist/useBLinkHelper-Bvtov_sk.mjs.map +1 -0
  1051. package/dist/useBLinkHelper-BxI4evA6.js +2 -0
  1052. package/dist/useBLinkHelper-BxI4evA6.js.map +1 -0
  1053. package/dist/useColorVariantClasses-CnrZmyKT.js +2 -0
  1054. package/dist/useColorVariantClasses-CnrZmyKT.js.map +1 -0
  1055. package/dist/useColorVariantClasses-WMXe7khu.mjs +19 -0
  1056. package/dist/useColorVariantClasses-WMXe7khu.mjs.map +1 -0
  1057. package/dist/useCountdownHover-Ds0unFZR.mjs +76 -0
  1058. package/dist/useCountdownHover-Ds0unFZR.mjs.map +1 -0
  1059. package/dist/useCountdownHover-pVk1zcyl.js +2 -0
  1060. package/dist/useCountdownHover-pVk1zcyl.js.map +1 -0
  1061. package/dist/useDefaults-BYx9NNxn.mjs +96 -0
  1062. package/dist/useDefaults-BYx9NNxn.mjs.map +1 -0
  1063. package/dist/useDefaults-Cd8OVIUI.js +2 -0
  1064. package/dist/useDefaults-Cd8OVIUI.js.map +1 -0
  1065. package/dist/useFormCheck-Bcx8Ea7M.mjs +61 -0
  1066. package/dist/useFormCheck-Bcx8Ea7M.mjs.map +1 -0
  1067. package/dist/useFormCheck-DLmeXWHw.js +2 -0
  1068. package/dist/useFormCheck-DLmeXWHw.js.map +1 -0
  1069. package/dist/useFormInput-B-34kU2d.mjs +114 -0
  1070. package/dist/useFormInput-B-34kU2d.mjs.map +1 -0
  1071. package/dist/useFormInput-Cl9jLmfR.js +2 -0
  1072. package/dist/useFormInput-Cl9jLmfR.js.map +1 -0
  1073. package/dist/useFormSelect-C5Ssz8Hc.mjs +63 -0
  1074. package/dist/useFormSelect-C5Ssz8Hc.mjs.map +1 -0
  1075. package/dist/useFormSelect-CPz2u6a6.js +2 -0
  1076. package/dist/useFormSelect-CPz2u6a6.js.map +1 -0
  1077. package/dist/useId-BrAgQfKM.mjs +9 -0
  1078. package/dist/useId-BrAgQfKM.mjs.map +1 -0
  1079. package/dist/useId-z7cQCT28.js +2 -0
  1080. package/dist/useId-z7cQCT28.js.map +1 -0
  1081. package/dist/useModalManager-CcThsNp5.js +2 -0
  1082. package/dist/useModalManager-CcThsNp5.js.map +1 -0
  1083. package/dist/useModalManager-N1MQhnkH.mjs +75 -0
  1084. package/dist/useModalManager-N1MQhnkH.mjs.map +1 -0
  1085. package/dist/useNumberishToStyle-BWrWARZP.mjs +11 -0
  1086. package/dist/useNumberishToStyle-BWrWARZP.mjs.map +1 -0
  1087. package/dist/useNumberishToStyle-CUqOYwz3.js +2 -0
  1088. package/dist/useNumberishToStyle-CUqOYwz3.js.map +1 -0
  1089. package/dist/useRadiusElementClasses-D-ydxJLn.js +2 -0
  1090. package/dist/useRadiusElementClasses-D-ydxJLn.js.map +1 -0
  1091. package/dist/useRadiusElementClasses-DtKYQuWz.mjs +21 -0
  1092. package/dist/useRadiusElementClasses-DtKYQuWz.mjs.map +1 -0
  1093. package/dist/useSafeScrollLock-BfVVwTzO.mjs +1141 -0
  1094. package/dist/useSafeScrollLock-BfVVwTzO.mjs.map +1 -0
  1095. package/dist/useSafeScrollLock-Ib_fUIsz.js +12 -0
  1096. package/dist/useSafeScrollLock-Ib_fUIsz.js.map +1 -0
  1097. package/dist/useStateClass-BGbSLWFN.mjs +9 -0
  1098. package/dist/useStateClass-BGbSLWFN.mjs.map +1 -0
  1099. package/dist/useStateClass-BePLKIel.js +2 -0
  1100. package/dist/useStateClass-BePLKIel.js.map +1 -0
  1101. package/package.json +126 -26
  1102. package/dist/src/BootstrapVue.d.mts +0 -130
  1103. package/dist/src/BootstrapVue.d.ts +0 -130
  1104. package/dist/src/components/BCol.vue.d.ts +0 -96
  1105. package/dist/src/components/BCollapse.vue.d.ts +0 -112
  1106. package/dist/src/components/BContainer.vue.d.ts +0 -43
  1107. package/dist/src/components/BImg.vue.d.ts +0 -81
  1108. package/dist/src/components/BPopover.vue.d.ts +0 -345
  1109. package/dist/src/components/BRow.vue.d.ts +0 -72
  1110. package/dist/src/components/BSpinner.vue.d.ts +0 -51
  1111. package/dist/src/components/BTooltip.vue.d.ts +0 -289
  1112. package/dist/src/components/BTransition/BTransition.vue.d.ts +0 -71
  1113. package/dist/src/composables/exports/index.d.ts +0 -1
  1114. package/dist/src/composables/useBreadcrumb.d.ts +0 -5
  1115. package/dist/src/composables/useModal.d.ts +0 -8
  1116. package/dist/src/composables/useModalController.d.ts +0 -27
  1117. package/dist/src/composables/useToast.d.ts +0 -17
  1118. package/dist/src/constants/regex.d.ts +0 -11
  1119. package/dist/src/directives/BColorMode.d.ts +0 -7
  1120. package/dist/src/directives/BModal.d.ts +0 -3
  1121. package/dist/src/directives/BPopover.d.ts +0 -8
  1122. package/dist/src/directives/BScrollspy.d.ts +0 -12
  1123. package/dist/src/directives/BToggle.d.ts +0 -11
  1124. package/dist/src/directives/BTooltip.d.ts +0 -8
  1125. package/dist/src/plugins/breadcrumbPlugin.d.ts +0 -4
  1126. package/dist/src/plugins/defaultsPlugin.d.ts +0 -6
  1127. package/dist/src/plugins/idPlugin.d.ts +0 -6
  1128. package/dist/src/plugins/modalControllerPlugin.d.ts +0 -4
  1129. package/dist/src/plugins/modalManagerPlugin.d.ts +0 -4
  1130. package/dist/src/plugins/rtlPlugin.d.ts +0 -6
  1131. package/dist/src/plugins/toastPlugin.d.ts +0 -4
  1132. package/dist/src/types/exports/index.d.ts +0 -3
  1133. package/dist/src/utils/classes/BvCarouselEvent.d.ts +0 -20
  1134. package/dist/src/utils/classes/BvEvent.d.ts +0 -27
  1135. package/dist/src/utils/classes/BvTriggerableEvent.d.ts +0 -15
  1136. package/dist/src/utils/classes/index.d.ts +0 -3
  1137. package/dist/src/utils/exports/index.d.ts +0 -1
  1138. package/dist/src/utils/parseActiveImports.d.ts +0 -4
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BTable.vue_vue_type_script_setup_true_lang-CqJmavaJ.mjs","sources":["../src/utils/formatItem.ts","../src/types/TableTypes.ts","../src/components/BTable/BTbody.vue","../src/components/BTable/BTd.vue","../src/components/BTable/BTfoot.vue","../src/components/BTable/BTh.vue","../src/components/BTable/BThead.vue","../src/components/BTable/BTr.vue","../src/utils/getTableFieldHeadLabel.ts","../src/utils/filterEvent.ts","../src/components/BTable/BTableLite.vue","../src/components/BTable/BTable.vue"],"sourcesContent":["import type {TableFieldFormatter} from '../types/TableTypes'\nimport {get} from './object'\n\nexport const formatItem = (\n item: unknown,\n // Weakly type fieldKey because it can be a nested string, such as 'foo.bar.baz'\n fieldKey: string,\n formatter?: TableFieldFormatter<unknown>\n) => {\n const val = get(item, fieldKey)\n return formatter && typeof formatter === 'function' ? formatter(val, fieldKey, item) : val\n}\n","import type {StyleValue} from 'vue'\nimport type {ColorVariant} from './ColorTypes'\nimport type {MaybePromise} from './MaybePromise'\nimport type {LiteralUnion} from './LiteralUnion'\nimport type {AttrsValue, ClassValue} from './AnyValuedAttributes'\n\nexport type TableItem<T = Record<string, unknown>> = T & {\n _rowVariant?: ColorVariant | null\n _cellVariants?: Partial<Record<keyof T, ColorVariant>>\n _showDetails?: boolean\n}\n\nexport const isTableItem = (value: unknown): value is TableItem =>\n typeof value === 'object' && value !== null\n\n// undefined means no sorting\nexport type BTableSortByOrder = 'desc' | 'asc' | undefined\n\nexport type BTableSortBy = {\n order: BTableSortByOrder\n key: string\n comparer?: (a: string, b: string) => number\n}\n\nexport type BTableProviderContext = {\n sortBy: BTableSortBy[] | undefined\n filter: string | undefined\n currentPage: number\n perPage: number\n}\n\nexport type BTableProvider<T> = (\n context: Readonly<BTableProviderContext>\n) => MaybePromise<T[] | undefined>\n\nexport type TableFieldFormatter<T> = (value: unknown, key: string, item: T) => string\n\nexport type TableRowType = 'row' | 'row-details' | 'row-top' | 'row-bottom' | 'table-busy'\nexport type TableRowThead = 'top' | 'bottom'\n\nexport type TableStrictClassValue = unknown\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type TableField<T = any> = {\n key: LiteralUnion<keyof T>\n label?: string\n headerTitle?: string\n headerAbbr?: string\n class?: ClassValue\n formatter?: TableFieldFormatter<T>\n sortable?: boolean\n sortKey?: string\n sortDirection?: string\n sortByFormatted?: boolean | TableFieldFormatter<T>\n filterByFormatted?: boolean | TableFieldFormatter<T>\n tdClass?:\n | TableStrictClassValue\n | ((value: unknown, key: string, item: T) => TableStrictClassValue)\n thClass?: ClassValue\n thStyle?: StyleValue\n variant?: ColorVariant | null\n tdAttr?: AttrsValue | ((value: unknown, key: string, item: T) => AttrsValue)\n thAttr?:\n | AttrsValue\n | ((value: unknown, key: string, item: T | null, type: TableRowThead) => AttrsValue)\n isRowHeader?: boolean\n stickyColumn?: boolean\n}\n\nexport type TableFieldRaw<T = unknown> = T extends object\n ? LiteralUnion<keyof T> | TableField<T>\n : string | TableField\n\nexport const isTableField = <T>(value: unknown): value is TableField<T> =>\n typeof value === 'object' && value !== null && 'key' in value\n\nexport const isTableFieldRaw = <T>(value: unknown): value is TableFieldRaw<T> =>\n typeof value === 'string' || isTableField(value)\n\nexport type NoProviderTypes = 'paging' | 'sorting' | 'filtering'\n","<template>\n <tbody :class=\"computedClasses\">\n <slot />\n </tbody>\n</template>\n\n<script setup lang=\"ts\">\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BTbodyProps} from '../../types/ComponentProps'\nimport {computed} from 'vue'\n\nconst _props = withDefaults(defineProps<BTbodyProps>(), {\n variant: null,\n})\nconst props = useDefaults(_props, 'BTbody')\n\ndefineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n}>()\n\nconst computedClasses = computed(() => ({\n [`thead-${props.variant}`]: props.variant !== null,\n}))\n</script>\n","<template>\n <td\n :scope=\"scope\"\n :class=\"computedClasses\"\n :colspan=\"props.colspan\"\n :rowspan=\"props.rowspan\"\n :data-label=\"props.stackedHeading\"\n >\n <div v-if=\"props.stackedHeading\">\n <slot />\n </div>\n <slot v-else />\n </td>\n</template>\n\n<script setup lang=\"ts\">\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BTdProps} from '../../types/ComponentProps'\nimport {computed} from 'vue'\n\nconst _props = withDefaults(defineProps<BTdProps>(), {\n colspan: undefined,\n rowspan: undefined,\n stackedHeading: undefined,\n stickyColumn: false,\n variant: null,\n})\nconst props = useDefaults(_props, 'BTd')\n\ndefineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n}>()\n\nconst computedClasses = computed(() => ({\n [`table-${props.variant}`]: props.variant !== null,\n 'b-table-sticky-column': props.stickyColumn,\n 'table-b-table-default': props.stickyColumn && props.variant === null,\n}))\n\nconst scope = computed(() => (props.colspan ? 'colspan' : props.rowspan ? 'rowspan' : 'col'))\n</script>\n","<template>\n <tfoot :class=\"computedClasses\">\n <slot />\n </tfoot>\n</template>\n\n<script setup lang=\"ts\">\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BTfootProps} from '../../types/ComponentProps'\nimport {computed} from 'vue'\n\nconst _props = withDefaults(defineProps<BTfootProps>(), {\n variant: null,\n})\nconst props = useDefaults(_props, 'BTfoot')\n\ndefineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n}>()\n\nconst computedClasses = computed(() => ({\n [`table-${props.variant}`]: props.variant !== null,\n}))\n</script>\n","<template>\n <th\n :scope=\"scope\"\n :class=\"computedClasses\"\n :colspan=\"props.colspan\"\n :rowspan=\"props.rowspan\"\n :data-label=\"props.stackedHeading\"\n >\n <div v-if=\"props.stackedHeading !== undefined\">\n <slot />\n </div>\n <slot v-else />\n </th>\n</template>\n\n<script setup lang=\"ts\">\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BThProps} from '../../types/ComponentProps'\nimport {computed} from 'vue'\n\nconst _props = withDefaults(defineProps<BThProps>(), {\n colspan: undefined,\n rowspan: undefined,\n stackedHeading: undefined,\n stickyColumn: false,\n variant: null,\n})\nconst props = useDefaults(_props, 'BTh')\n\ndefineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n}>()\n\nconst computedClasses = computed(() => ({\n [`table-${props.variant}`]: props.variant !== null,\n 'b-table-sticky-column': props.stickyColumn,\n 'table-b-table-default': props.stickyColumn && props.variant === null,\n}))\n\nconst scope = computed(() => (props.colspan ? 'colspan' : props.rowspan ? 'rowspan' : 'col'))\n</script>\n","<template>\n <thead :class=\"computedClasses\">\n <slot />\n </thead>\n</template>\n\n<script setup lang=\"ts\">\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BTheadProps} from '../../types/ComponentProps'\nimport {computed} from 'vue'\n\nconst _props = withDefaults(defineProps<BTheadProps>(), {\n variant: null,\n})\nconst props = useDefaults(_props, 'BThead')\n\ndefineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n}>()\n\nconst computedClasses = computed(() => ({\n [`table-${props.variant}`]: props.variant !== null,\n}))\n</script>\n","<template>\n <tr :class=\"computedClasses\">\n <slot />\n </tr>\n</template>\n\n<script setup lang=\"ts\">\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BTrProps} from '../../types/ComponentProps'\nimport {computed} from 'vue'\n\nconst _props = withDefaults(defineProps<BTrProps>(), {\n variant: null,\n})\nconst props = useDefaults(_props, 'BTr')\n\ndefineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n}>()\n\nconst computedClasses = computed(() => ({\n [`table-${props.variant}`]: props.variant !== null,\n}))\n</script>\n","import {titleCase} from './stringUtils'\nimport type {TableFieldRaw} from '../types/TableTypes'\n\nexport const getTableFieldHeadLabel = (field: Readonly<TableFieldRaw<unknown>>) =>\n typeof field === 'string'\n ? titleCase(field)\n : field.label !== undefined\n ? field.label\n : typeof field.key === 'string'\n ? titleCase(field.key)\n : field.key\n","const TABLE_TAG_NAMES = ['TD', 'TH', 'TR']\n\n// Filter CSS selector for click/dblclick/etc. events\n// If any of these selectors match the clicked element, we ignore the event\nconst eventFilter = [\n 'a',\n 'a *', // Include content inside links\n 'button',\n 'button *', // Include content inside buttons\n 'input:not(.disabled):not([disabled])',\n 'select:not(.disabled):not([disabled])',\n 'textarea:not(.disabled):not([disabled])',\n '[role=\"link\"]',\n '[role=\"link\"] *',\n '[role=\"button\"]',\n '[role=\"button\"] *',\n '[tabindex]:not(.disabled):not([disabled])',\n].join(',')\n\n// Returns `true` if we should ignore the click/double-click/keypress event\n// Avoids having the user need to use `@click.stop` on the form control\nexport const filterEvent = (event: Readonly<Event>) => {\n // Exit early when we don't have a target element\n if (!event || !event.target) {\n return false\n }\n const el = event.target as HTMLElement\n // Exit early when element is disabled or a table element\n if (('disabled' in el && el.disabled) || TABLE_TAG_NAMES.indexOf(el.tagName) !== -1) {\n return false\n }\n // Ignore the click when it was inside a dropdown menu\n if (el.closest('.dropdown-menu')) return true\n\n const label = el.tagName === 'LABEL' ? el : el.closest('label')\n // If the label's form control is not disabled then we don't propagate event\n // Modern browsers have `label.control` that references the associated input, but IE 11\n // does not have this property on the label element, so we resort to DOM lookups\n if (label) {\n const labelFor = label.getAttribute('for')\n const input = labelFor\n ? document.getElementById(labelFor)\n : label.querySelector('input, select, textarea')\n if (input && !(input as HTMLInputElement).disabled) {\n return true\n }\n }\n // Otherwise check if the event target matches one of the selectors in the\n // event filter (i.e. anchors, non disabled inputs, etc.)\n // Return `true` if we should ignore the event\n return el.matches(eventFilter)\n}\n","<template>\n <BTableSimple\n :id=\"props.id\"\n :bordered=\"props.bordered\"\n :borderless=\"props.borderless\"\n :border-variant=\"props.borderVariant\"\n :caption-top=\"props.captionTop\"\n :dark=\"props.dark\"\n :fixed=\"props.fixed\"\n :hover=\"props.hover\"\n :no-border-collapse=\"props.noBorderCollapse\"\n :outlined=\"props.outlined\"\n :responsive=\"props.responsive\"\n :small=\"props.small\"\n :stacked=\"props.stacked\"\n :sticky-header=\"props.stickyHeader\"\n :striped=\"props.striped\"\n :table-class=\"computedTableClasses\"\n :variant=\"props.variant\"\n :striped-columns=\"props.stripedColumns\"\n >\n <BThead v-show=\"showComputedHeaders\" :variant=\"props.headVariant\" :class=\"props.theadClass\">\n <slot v-if=\"$slots['thead-top']\" name=\"thead-top\" />\n <BTr :variant=\"props.headRowVariant\" :class=\"props.theadTrClass\">\n <BTh\n v-for=\"field in computedFields\"\n :key=\"field.key\"\n scope=\"col\"\n :class=\"getFieldColumnClasses(field)\"\n :title=\"field.headerTitle\"\n :variant=\"field.variant\"\n :abbr=\"field.headerAbbr\"\n :style=\"field.thStyle\"\n v-bind=\"callThAttr(null, field, 'top')\"\n @click=\"headerClicked(field, $event)\"\n >\n <slot\n :name=\"$slots[`head(${String(field.key)})`] ? `head(${String(field.key)})` : 'head()'\"\n :label=\"field.label\"\n :column=\"field.key\"\n :field=\"field\"\n :is-foot=\"false\"\n >\n {{ getTableFieldHeadLabel(field) }}\n </slot>\n </BTh>\n </BTr>\n <BTr v-if=\"$slots['thead-sub']\">\n <BTd\n v-for=\"field in computedFields\"\n :key=\"field.key\"\n scope=\"col\"\n :variant=\"field.variant\"\n :class=\"[field.class, field.thClass]\"\n >\n <slot name=\"thead-sub\" :items=\"computedFields\" v-bind=\"field\">\n {{ field.label }}\n </slot>\n </BTd>\n </BTr>\n </BThead>\n <BTbody :class=\"props.tbodyClass\">\n <slot\n name=\"custom-body\"\n :fields=\"computedFields\"\n :items=\"props.items\"\n :columns=\"computedFields.length\"\n >\n <BTr\n v-if=\"!props.stacked && $slots['top-row']\"\n :class=\"getRowClasses(null, 'row-top')\"\n v-bind=\"callTbodyTrAttrs(null, 'row-top')\"\n >\n <slot name=\"top-row\" />\n </BTr>\n\n <template\n v-for=\"(item, itemIndex) in props.items\"\n :key=\"props.primaryKey ? get(item, props.primaryKey) : itemIndex\"\n >\n <BTr\n :class=\"getRowClasses(item, 'row')\"\n :variant=\"isTableItem(item) ? item._rowVariant : undefined\"\n v-bind=\"callTbodyTrAttrs(item, 'row')\"\n @click=\"!filterEvent($event) && emit('row-clicked', item, itemIndex, $event)\"\n @dblclick=\"!filterEvent($event) && emit('row-dbl-clicked', item, itemIndex, $event)\"\n @mouseenter=\"!filterEvent($event) && emit('row-hovered', item, itemIndex, $event)\"\n @mouseleave=\"!filterEvent($event) && emit('row-unhovered', item, itemIndex, $event)\"\n >\n <BTd\n v-for=\"field in computedFields\"\n :key=\"field.key\"\n :variant=\"\n (isTableItem(item) ? item._cellVariants?.[field.key as string] : false)\n ? null\n : field.variant\n \"\n :class=\"getFieldRowClasses(field, item)\"\n v-bind=\"itemAttributes(item, String(field.key), field.tdAttr)\"\n >\n <label v-if=\"props.stacked && props.labelStacked\" class=\"b-table-stacked-label\">\n {{ getTableFieldHeadLabel(field) }}\n </label>\n <slot\n :name=\"\n $slots[`cell(${String(field.key)})`] ? `cell(${String(field.key)})` : 'cell()'\n \"\n :value=\"formatItem(item, String(field.key), field.formatter)\"\n :unformatted=\"get(item, String(field.key))\"\n :index=\"itemIndex\"\n :item=\"item\"\n :field=\"field\"\n :items=\"items\"\n :toggle-details=\"\n () => {\n toggleRowDetails(item)\n }\n \"\n :details-showing=\"isTableItem(item) ? (detailsMap.get(item) ?? false) : false\"\n >\n <template v-if=\"!$slots[`cell(${String(field.key)})`] && !$slots['cell()']\">\n {{ formatItem(item, String(field.key), field.formatter) }}\n </template>\n </slot>\n </BTd>\n </BTr>\n\n <template\n v-if=\"isTableItem(item) && detailsMap.get(item) === true && $slots['row-details']\"\n >\n <BTr aria-hidden=\"true\" role=\"presentation\" class=\"d-none\" />\n <BTr\n :class=\"getRowClasses(item, 'row-details')\"\n :variant=\"item._rowVariant\"\n v-bind=\"callTbodyTrAttrs(item, 'row-details')\"\n >\n <BTd :colspan=\"computedFieldsTotal\" :class=\"detailsTdClass\">\n <slot\n name=\"row-details\"\n :item=\"item\"\n :toggle-details=\"\n () => {\n toggleRowDetails(item)\n }\n \"\n :fields=\"props.fields\"\n :index=\"itemIndex\"\n />\n </BTd>\n </BTr>\n </template>\n </template>\n <BTr v-if=\"props.showEmpty && props.items.length === 0\" class=\"b-table-empty-slot\">\n <BTd :colspan=\"computedFieldsTotal\">\n <slot name=\"empty\" :items=\"props.items\">\n {{ props.emptyText }}\n </slot>\n </BTd>\n </BTr>\n <!-- This class is for specific targetting of this slot element -->\n <BTr\n v-if=\"!props.stacked && $slots['bottom-row']\"\n class=\"bottom-row\"\n :class=\"getRowClasses(null, 'row-bottom')\"\n v-bind=\"callTbodyTrAttrs(null, 'row-bottom')\"\n >\n <slot name=\"bottom-row\" />\n </BTr>\n </slot>\n </BTbody>\n <BTfoot v-if=\"props.footClone\" :variant=\"props.footVariant\" :class=\"props.tfootClass\">\n <BTr :variant=\"props.footRowVariant\" :class=\"props.tfootTrClass\">\n <BTh\n v-for=\"field in computedFields\"\n :key=\"field.key\"\n scope=\"col\"\n :class=\"getFieldColumnClasses(field)\"\n :title=\"field.headerTitle\"\n :abbr=\"field.headerAbbr\"\n :style=\"field.thStyle\"\n :variant=\"field.variant\"\n v-bind=\"callThAttr(null, field, 'bottom')\"\n @click=\"headerClicked(field, $event, true)\"\n >\n <div class=\"d-inline-flex flex-nowrap align-items-center gap-1\">\n <div>\n <slot\n :name=\"\n $slots[`foot(${String(field.key)})`] ? `foot(${String(field.key)})` : 'foot()'\n \"\n :label=\"field.label\"\n :column=\"field.key\"\n :field=\"field\"\n :is-foot=\"true\"\n >\n {{ getTableFieldHeadLabel(field) }}\n </slot>\n </div>\n </div>\n </BTh>\n </BTr>\n </BTfoot>\n <BTfoot v-else-if=\"$slots['custom-foot']\">\n <slot\n name=\"custom-foot\"\n :fields=\"computedFields\"\n :items=\"props.items\"\n :columns=\"computedFields.length\"\n />\n </BTfoot>\n <caption v-if=\"$slots['table-caption'] || props.caption\">\n <slot name=\"table-caption\">\n {{ props.caption }}\n </slot>\n </caption>\n </BTableSimple>\n</template>\n\n<script setup lang=\"ts\" generic=\"T\">\nimport {computed, ref, watch} from 'vue'\nimport type {BTableLiteProps} from '../../types/ComponentProps'\nimport {\n isTableField,\n isTableItem,\n type TableField,\n type TableItem,\n type TableRowThead,\n type TableRowType,\n} from '../../types/TableTypes'\nimport BTableSimple from './BTableSimple.vue'\nimport BTbody from './BTbody.vue'\nimport BTd from './BTd.vue'\nimport BTfoot from './BTfoot.vue'\nimport BTh from './BTh.vue'\nimport BThead from './BThead.vue'\nimport BTr from './BTr.vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {get} from '../../utils/object'\nimport {getTableFieldHeadLabel} from '../../utils/getTableFieldHeadLabel'\nimport {formatItem} from '../../utils/formatItem'\nimport {filterEvent} from '../../utils/filterEvent'\nimport {startCase} from '../../utils/stringUtils'\n\nconst _props = withDefaults(defineProps<BTableLiteProps<T>>(), {\n caption: undefined,\n align: undefined,\n fields: () => [],\n footClone: false,\n items: () => [],\n labelStacked: false,\n showEmpty: false,\n emptyText: 'There are no records to show',\n emptyFilteredText: 'There are no records matching your request', // TODO not implemented\n fieldColumnClass: undefined,\n tbodyTrClass: undefined,\n captionHtml: undefined,\n detailsTdClass: undefined,\n headVariant: undefined,\n headRowVariant: undefined,\n footRowVariant: undefined,\n footVariant: undefined,\n modelValue: undefined,\n primaryKey: undefined,\n tbodyClass: undefined,\n tbodyTrAttrs: undefined,\n tfootClass: undefined,\n tfootTrClass: undefined,\n theadClass: undefined,\n theadTrClass: undefined,\n // BTableSimpleProps props\n borderVariant: undefined,\n tableClass: undefined,\n variant: undefined,\n bordered: undefined,\n borderless: undefined,\n captionTop: undefined,\n dark: undefined,\n hover: undefined,\n id: undefined,\n noBorderCollapse: undefined,\n outlined: undefined,\n fixed: undefined,\n responsive: undefined,\n stacked: undefined,\n striped: undefined,\n stripedColumns: undefined,\n small: undefined,\n stickyHeader: undefined,\n // End BTableSimpleProps props\n})\nconst props = useDefaults(_props, 'BTableLite')\n\nconst emit = defineEmits<{\n 'head-clicked': [key: string, field: TableField<T>, event: MouseEvent, isFooter: boolean]\n 'row-clicked': [item: T, index: number, event: MouseEvent]\n 'row-dbl-clicked': [item: T, index: number, event: MouseEvent]\n 'row-hovered': [item: T, index: number, event: MouseEvent]\n 'row-unhovered': [item: T, index: number, event: MouseEvent]\n}>()\n\nconst generateDetailsItem = (item: TableItem): [object, boolean | undefined] => [\n item,\n item._showDetails,\n]\nconst detailsMap = ref(\n new WeakMap(\n props.items.reduce(\n (acc, el) => {\n if (isTableItem(el)) {\n acc.push(generateDetailsItem(el))\n }\n return acc\n },\n [] as [object, boolean | undefined][]\n )\n )\n)\nwatch(\n () => props.items,\n (items) => {\n items.forEach((item) => {\n if (!isTableItem(item)) return\n const detailsItem = generateDetailsItem(item)\n detailsMap.value.set(detailsItem[0], detailsItem[1])\n })\n },\n {deep: true}\n)\n\nconst computedTableClasses = computed(() => [\n props.tableClass,\n {\n [`align-${props.align}`]: props.align !== undefined,\n },\n])\n\nconst computedFields = computed<(TableField & {_noHeader?: true})[]>(() => {\n if (!props.fields.length && props.items.length) {\n const [firstItem] = props.items\n if (isTableItem(firstItem) || Array.isArray(firstItem)) {\n return Object.keys(firstItem).map((k) => {\n const label = startCase(k)\n return {\n key: k,\n label,\n tdAttr: props.stacked === true ? {'data-label': label} : undefined,\n }\n })\n }\n // The items are primitives, so we just return a single empty field\n // No header will be shown, as we don't know what to show\n return [{key: '', _noHeader: true}]\n }\n\n return props.fields.map((f) => {\n if (isTableField(f)) {\n return {\n ...(f as TableField),\n tdAttr:\n props.stacked === true\n ? {'data-label': startCase(f.key as string), ...f.tdAttr}\n : f.tdAttr,\n }\n }\n const label = startCase(f as string)\n return {\n key: f as string,\n label,\n tdAttr: props.stacked === true ? {'data-label': label} : undefined,\n }\n })\n})\nconst computedFieldsTotal = computed(() => computedFields.value.length)\nconst showComputedHeaders = computed(() => {\n // We only hide the header if all fields have _noHeader set to true. Which would be our doing\n // This usually happens under a circumstance of displaying an array of primitives\n // Under any other circumstance, I'm not sure how this would apply\n if (computedFields.value.length > 0 && computedFields.value.every((el) => el._noHeader === true))\n return false\n return true\n})\n\nconst itemAttributes = (item: T, fieldKey: string, attr?: unknown) => {\n const val = get(item, fieldKey)\n return attr && typeof attr === 'function' ? attr(val, fieldKey, item) : attr\n}\n\nconst callThAttr = (item: T | null, field: TableField<T>, type: TableRowThead) => {\n const fieldKey = String(field.key)\n const val = get(item, fieldKey)\n return field.thAttr && typeof field.thAttr === 'function'\n ? field.thAttr(val, fieldKey, item, type)\n : field.thAttr\n}\n\nconst headerClicked = (field: TableField<T>, event: Readonly<MouseEvent>, isFooter = false) => {\n emit('head-clicked', field.key as string, field, event, isFooter)\n}\n\nconst toggleRowDetails = (tr: T) => {\n if (isTableItem(tr)) {\n const prevValue = detailsMap.value.get(tr)\n detailsMap.value.set(tr, !prevValue)\n tr._showDetails = !prevValue\n }\n}\n\nconst getFieldColumnClasses = (field: TableField) => [\n field.class,\n field.thClass,\n {\n 'b-table-sticky-column': field.stickyColumn,\n },\n props.fieldColumnClass\n ? typeof props.fieldColumnClass === 'function'\n ? props.fieldColumnClass(field)\n : props.fieldColumnClass\n : null,\n]\n\nconst getFieldRowClasses = (field: Readonly<TableField>, tr: T) => {\n const val = get(tr, String(field.key))\n return [\n field.class,\n typeof field.tdClass === 'function' ? field.tdClass(val, String(field.key), tr) : field.tdClass,\n (isTableItem(tr) ? tr._cellVariants?.[field.key as string] : false)\n ? `table-${(tr as TableItem)._cellVariants?.[field.key as string]}`\n : null,\n {\n 'b-table-sticky-column': field.stickyColumn,\n },\n ]\n}\n\nconst callTbodyTrAttrs = (item: T | null, type: TableRowType) =>\n props.tbodyTrAttrs\n ? typeof props.tbodyTrAttrs === 'function'\n ? props.tbodyTrAttrs(item, type)\n : props.tbodyTrAttrs\n : null\n\nconst getRowClasses = (item: T | null, type: TableRowType) =>\n props.tbodyTrClass\n ? typeof props.tbodyTrClass === 'function'\n ? props.tbodyTrClass(item, type)\n : props.tbodyTrClass\n : null\n</script>\n","<template>\n <BTableLite\n v-bind=\"props\"\n :aria-busy=\"busyModel\"\n :items=\"computedDisplayItems\"\n :fields=\"computedFields as TableFieldRaw<T>[]\"\n :table-class=\"tableClasses\"\n :tbody-tr-class=\"getRowClasses\"\n :field-column-class=\"getFieldColumnClasses\"\n @head-clicked=\"onFieldHeadClick\"\n @row-dbl-clicked=\"\n (row: T, index: number, e: MouseEvent) => {\n emit('row-dbl-clicked', row, index, e)\n }\n \"\n @row-clicked=\"onRowClick\"\n @row-hovered=\"\n (row: T, index: number, e: MouseEvent) => {\n emit('row-hovered', row, index, e)\n }\n \"\n @row-unhovered=\"\n (row: T, index: number, e: MouseEvent) => {\n emit('row-unhovered', row, index, e)\n }\n \"\n >\n <template v-for=\"(_, name) in $slots\" #[name]=\"slotData\">\n <slot :name=\"name\" v-bind=\"slotData\" />\n </template>\n <template\n v-for=\"field in computedFields\"\n :key=\"field.key\"\n #[`head(${String(field.key)})`]=\"scope\"\n >\n <slot\n :name=\"$slots[`head(${String(field.key)})`] ? `head(${String(field.key)})` : 'head()'\"\n v-bind=\"scope\"\n >\n {{ getTableFieldHeadLabel(field) }}\n </slot>\n <template v-if=\"isSortable && !!scope.field.sortable && props.noSortableIcon === false\">\n <slot\n v-if=\"sortByModel?.find((el) => el.key === scope.field.key)?.order === 'asc'\"\n v-bind=\"{...scope}\"\n :name=\"\n $slots[`sortAsc(${String(scope.field.key)})`]\n ? `sortAsc(${String(scope.field.key)})`\n : 'sortAsc()'\n \"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"currentColor\"\n class=\"bi bi-arrow-up-short\"\n viewBox=\"0 0 16 16\"\n aria-hidden\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M8 12a.5.5 0 0 0 .5-.5V5.707l2.146 2.147a.5.5 0 0 0 .708-.708l-3-3a.5.5 0 0 0-.708 0l-3 3a.5.5 0 1 0 .708.708L7.5 5.707V11.5a.5.5 0 0 0 .5.5z\"\n />\n </svg>\n </slot>\n <slot\n v-else-if=\"sortByModel?.find((el) => el.key === scope.field.key)?.order === 'desc'\"\n v-bind=\"{...scope}\"\n :name=\"\n $slots[`sortDesc(${String(scope.field.key)})`]\n ? `sortDesc(${String(scope.field.key)})`\n : 'sortDesc()'\n \"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"currentColor\"\n class=\"bi bi-arrow-down-short\"\n viewBox=\"0 0 16 16\"\n aria-hidden\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M8 4a.5.5 0 0 1 .5.5v5.793l2.146-2.147a.5.5 0 0 1 .708.708l-3 3a.5.5 0 0 1-.708 0l-3-3a.5.5 0 1 1 .708-.708L7.5 10.293V4.5A.5.5 0 0 1 8 4z\"\n />\n </svg>\n </slot>\n <slot\n v-else\n v-bind=\"{...scope}\"\n :name=\"\n $slots[`sortDefault(${String(scope.field.key)})`]\n ? `sortDefault(${String(scope.field.key)})`\n : 'sortDefault()'\n \"\n >\n <svg\n :style=\"{opacity: 0.4}\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"currentColor\"\n class=\"bi bi-arrow-up-short\"\n viewBox=\"0 0 16 16\"\n aria-hidden\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M8 12a.5.5 0 0 0 .5-.5V5.707l2.146 2.147a.5.5 0 0 0 .708-.708l-3-3a.5.5 0 0 0-.708 0l-3 3a.5.5 0 1 0 .708.708L7.5 5.707V11.5a.5.5 0 0 0 .5.5z\"\n />\n </svg>\n </slot>\n </template>\n </template>\n <template #custom-body=\"scope\">\n <BTr v-if=\"busyModel\" class=\"b-table-busy-slot\" :class=\"getBusyRowClasses\">\n <BTd :colspan=\"scope.fields.length\">\n <slot name=\"table-busy\">\n <BOverlay show>\n <template #overlay>\n <div class=\"d-flex align-items-center gap-2 mt-5\">\n <BSpinner />\n <strong>{{ props.busyLoadingText }}</strong>\n </div>\n </template>\n </BOverlay>\n </slot>\n </BTd>\n </BTr>\n </template>\n </BTableLite>\n</template>\n\n<script setup lang=\"ts\" generic=\"T\">\nimport {useToNumber} from '@vueuse/core'\nimport {computed, onMounted, type Ref, ref, watch} from 'vue'\nimport {formatItem} from '../../utils/formatItem'\nimport BOverlay from '../BOverlay/BOverlay.vue'\nimport BSpinner from '../BSpinner/BSpinner.vue'\nimport BTableLite from './BTableLite.vue'\nimport BTd from './BTd.vue'\nimport BTr from './BTr.vue'\nimport {\n type BTableSortBy,\n type BTableSortByOrder,\n isTableField,\n isTableItem,\n type NoProviderTypes,\n type TableField,\n type TableFieldRaw,\n type TableItem,\n type TableRowType,\n type TableStrictClassValue,\n} from '../../types/TableTypes'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BTableProps} from '../../types/ComponentProps'\nimport {get, set} from '../../utils/object'\nimport {startCase} from '../../utils/stringUtils'\nimport {getTableFieldHeadLabel} from '../../utils/getTableFieldHeadLabel'\n\nconst _props = withDefaults(\n defineProps<Omit<BTableProps<T>, 'sortBy' | 'busy' | 'selectedItems'>>(),\n {\n noSortableIcon: false,\n perPage: Number.POSITIVE_INFINITY,\n filter: undefined,\n mustSort: false,\n filterable: undefined,\n provider: undefined,\n noProvider: undefined,\n noProviderPaging: false,\n noProviderSorting: false,\n multisort: false,\n noProviderFiltering: false,\n noLocalSorting: false,\n noSelectOnClick: false,\n selectable: false,\n stickySelect: false,\n selectHead: true,\n selectMode: 'multi',\n selectionVariant: 'primary',\n busyLoadingText: 'Loading...',\n currentPage: 1,\n // BTableLite props\n items: () => [],\n fields: () => [],\n // All others use defaults\n caption: undefined,\n align: undefined,\n footClone: undefined,\n labelStacked: undefined,\n showEmpty: undefined,\n emptyText: undefined,\n emptyFilteredText: undefined,\n fieldColumnClass: undefined,\n tbodyTrClass: undefined,\n captionHtml: undefined,\n detailsTdClass: undefined,\n headVariant: undefined,\n headRowVariant: undefined,\n footRowVariant: undefined,\n footVariant: undefined,\n modelValue: undefined,\n primaryKey: undefined,\n tbodyClass: undefined,\n tfootClass: undefined,\n tfootTrClass: undefined,\n theadClass: undefined,\n theadTrClass: undefined,\n // End BTableLite props\n // BTableSimple props\n borderVariant: undefined,\n variant: undefined,\n bordered: undefined,\n borderless: undefined,\n captionTop: undefined,\n dark: undefined,\n hover: undefined,\n id: undefined,\n noBorderCollapse: undefined,\n outlined: undefined,\n fixed: undefined,\n responsive: undefined,\n stacked: undefined,\n striped: undefined,\n stripedColumns: undefined,\n small: undefined,\n stickyHeader: undefined,\n // End BTableSimple props\n }\n)\nconst props = useDefaults(_props, 'BTable')\n\nconst emit = defineEmits<{\n 'filtered': [value: T[]]\n 'head-clicked': [key: string, field: TableField<T>, event: MouseEvent, isFooter: boolean]\n 'row-clicked': [item: T, index: number, event: MouseEvent]\n 'row-dbl-clicked': [item: T, index: number, event: MouseEvent]\n 'row-hovered': [item: T, index: number, event: MouseEvent]\n 'row-unhovered': [item: T, index: number, event: MouseEvent]\n 'row-selected': [value: T]\n 'row-unselected': [value: T]\n 'sorted': [value: BTableSortBy]\n 'change': [value: T[]]\n}>()\n\nconst sortByModel = defineModel<BTableProps<T>['sortBy']>('sortBy', {\n default: undefined,\n})\nconst busyModel = defineModel<Exclude<BTableProps<T>['busy'], undefined>>('busy', {\n default: false,\n})\nconst selectedItemsModel = defineModel<Exclude<BTableProps<T>['selectedItems'], undefined>>(\n 'selectedItems',\n {\n default: () => [],\n }\n)\n\nconst selectedItemsToSet = computed({\n get: () => new Set([...selectedItemsModel.value]),\n set: (val) => {\n selectedItemsModel.value = [...val]\n },\n})\n/**\n * This is to avoid the issue of directly mutating the array structure and to properly trigger the computed setter.\n * The utils also conveniently emit the proper events after\n */\nconst selectedItemsSetUtilities = {\n add: (item: T) => {\n const value = new Set(selectedItemsToSet.value)\n value.add(item)\n selectedItemsToSet.value = value\n emit('row-selected', item)\n },\n clear: () => {\n selectedItemsToSet.value.forEach((item) => {\n selectedItemsSetUtilities.delete(item)\n })\n },\n delete: (item: T) => {\n const value = new Set(selectedItemsToSet.value)\n if (props.primaryKey) {\n const pkey: string = props.primaryKey\n selectedItemsModel.value.forEach((v, i) => {\n const selectedKey = get(v, pkey)\n const itemKey = get(item, pkey)\n\n if (!!selectedKey && !!itemKey && selectedKey === itemKey) {\n value.delete(selectedItemsModel.value[i])\n }\n })\n } else {\n value.delete(item)\n }\n selectedItemsToSet.value = value\n emit('row-unselected', item)\n },\n set: (items: T[]) => {\n selectedItemsToSet.value = new Set(items)\n selectedItemsToSet.value.forEach((item) => {\n emit('row-unselected', item)\n })\n },\n has: (item: T) => {\n if (!props.primaryKey) return selectedItemsToSet.value.has(item)\n\n // Resolver for when we are using primary keys\n const pkey: string = props.primaryKey\n for (const selected of selectedItemsToSet.value) {\n const selectedKey = get(selected, pkey)\n const itemKey = get(item, pkey)\n\n if (!!selectedKey && !!itemKey && selectedKey === itemKey) return true\n }\n return false\n },\n} as const\n\n/**\n * Only stores data that is fetched when using the provider\n */\nconst internalItems: Ref<T[]> = ref([])\n\nconst perPageNumber = useToNumber(() => props.perPage, {method: 'parseInt'})\nconst currentPageNumber = useToNumber(() => props.currentPage, {method: 'parseInt'})\n\nconst isFilterableTable = computed(() => !!props.filter)\nconst usesProvider = computed(() => props.provider !== undefined)\nconst isSelecting = computed(() => selectedItemsToSet.value.size > 0)\n\nconst isSortable = computed(\n () =>\n sortByModel.value !== undefined ||\n props.fields.some(\n (field) => typeof field === 'object' && field !== null && field.sortable === true\n )\n)\n\nconst computedFields = computed<TableField<T>[]>(() =>\n props.fields.map((el) => {\n if (!isTableField(el)) {\n const label = startCase(el as string)\n return {\n key: el as string,\n label,\n tdAttr: props.stacked === true ? {'data-label': label} : undefined,\n }\n }\n\n const value = sortByModel.value?.find((sb) => el.key === sb.key)\n const sortValue =\n isSortable.value === false\n ? undefined\n : value === undefined\n ? 'none'\n : value.order === 'desc'\n ? 'descending'\n : value.order === 'asc'\n ? 'ascending'\n : 'none'\n\n return {\n ...(el as TableField<T>),\n thAttr: {\n 'aria-sort': sortValue,\n ...el.thAttr,\n },\n }\n })\n)\n\nconst tableClasses = computed(() => ({\n 'b-table-busy': busyModel.value,\n 'b-table-selectable': props.selectable,\n 'user-select-none': props.selectable && isSelecting.value,\n}))\n\nconst getBusyRowClasses = computed(() => [\n props.tbodyTrClass\n ? typeof props.tbodyTrClass === 'function'\n ? props.tbodyTrClass(null, 'table-busy')\n : props.tbodyTrClass\n : null,\n])\nconst getFieldColumnClasses = (field: TableField) => [\n {\n 'b-table-sortable-column': isSortable.value && field.sortable,\n },\n]\n// TODO this class has issues if the table has a variant already applied\n// Also the row should technically have aria-selected . Both things could probably just use a function with tbodyTrAttrs\n// But functional tbodyTrAttrs are not supported yet\n// Also the stuff for resolving functions could probably be made a util\nconst getRowClasses = (item: T | null, type: TableRowType): TableStrictClassValue => [\n {\n [`selected table-${props.selectionVariant}`]:\n props.selectable && !!item && selectedItemsSetUtilities.has(item),\n },\n props.tbodyTrClass\n ? typeof props.tbodyTrClass === 'function'\n ? props.tbodyTrClass(item, type)\n : props.tbodyTrClass\n : null,\n]\n\nconst computedItems = computed<T[]>(() => {\n const sortItems = (items: T[]) => {\n // \"undefined\" values are set by us, we do this so we dont wipe out the comparer\n const sortByItems = sortByModel.value?.filter((el) => !!el.order)\n\n if (!sortByItems || sortByItems.length === 0) return items\n\n // Multi-sort\n return [...items].sort((a, b) => {\n for (let i = 0; i < (sortByItems.length ?? 0); i++) {\n const sortOption = sortByItems[i]\n const realVal = (ob: T): string => {\n if (!isTableItem(ob)) return String(ob)\n\n const sortField = computedFields.value.find((el) => {\n if (isTableField(el)) return el.key === sortOption.key\n\n return false\n })\n const val = get(ob, sortOption.key as keyof TableItem)\n if (isTableField(sortField) && !!sortField.sortByFormatted) {\n const formatter =\n typeof sortField.sortByFormatted === 'function'\n ? sortField.sortByFormatted\n : sortField.formatter\n if (formatter) {\n return formatItem(ob, String(sortField.key), formatter) as string\n }\n }\n return typeof val === 'object' && val !== null\n ? JSON.stringify(val)\n : (val?.toString() ?? '')\n }\n\n const aValue = realVal(a)\n const bValue = realVal(b)\n const comparison = sortOption.comparer\n ? sortOption.comparer(aValue, bValue)\n : aValue.localeCompare(bValue, undefined, {numeric: true})\n\n if (comparison !== 0) {\n return sortOption.order === 'asc' ? comparison : -comparison\n }\n }\n return 0 // items are equal\n })\n }\n\n const filterItems = (items: T[]) =>\n items.filter((item) =>\n isTableItem(item)\n ? Object.entries(item).some(([key, val]) => {\n if (\n val === null ||\n val === undefined ||\n key[0] === '_' ||\n (!props.filterable?.includes(key) && !!props.filterable?.length)\n )\n return false\n const realVal = (): string => {\n const filterField = computedFields.value.find((el) => {\n if (isTableField(el)) return el.key === key\n\n return false\n })\n if (isTableField(filterField) && !!filterField.filterByFormatted) {\n const formatter =\n typeof filterField.filterByFormatted === 'function'\n ? filterField.filterByFormatted\n : filterField.formatter\n if (formatter) {\n return formatter(val, String(filterField.key), item) as string\n }\n }\n return typeof val === 'object' ? JSON.stringify(Object.values(val)) : val.toString()\n }\n const itemValue: string = realVal()\n return itemValue.toLowerCase().includes(props.filter?.toLowerCase() ?? '')\n })\n : true\n )\n\n let mappedItems = usesProvider.value ? internalItems.value : (props.items as T[])\n mappedItems = mappedItems.map((item) => {\n if (\n typeof item === 'object' &&\n item !== null &&\n Object.keys(item).some((key) => key.includes('.'))\n ) {\n // We use any here because the TS doesn't isn't certain that \"item\" is the same type as our newItem.\n // But we've determined that it's an object, so we can ignore it since they will always be the same \"object\"\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let newItem: any = {}\n for (const key in item) {\n if (key.includes('.')) {\n newItem = set(newItem, key, item[key])\n } else {\n newItem[key] = item[key]\n }\n }\n return newItem\n // return\n }\n return item\n })\n\n if (\n (isFilterableTable.value === true && !usesProvider.value) ||\n (isFilterableTable.value === true && usesProvider.value && props.noProviderFiltering)\n ) {\n mappedItems = filterItems(mappedItems)\n }\n\n if (\n (isSortable.value === true && !usesProvider.value && !props.noLocalSorting) ||\n (isSortable.value === true && usesProvider.value && props.noProviderSorting)\n ) {\n mappedItems = sortItems(mappedItems)\n }\n\n return mappedItems\n})\n\nconst computedDisplayItems = computed<T[]>(() => {\n if (Number.isNaN(perPageNumber.value) || (usesProvider.value && !props.noProviderPaging)) {\n return computedItems.value\n }\n\n return computedItems.value.slice(\n (currentPageNumber.value - 1) * (perPageNumber.value || Number.POSITIVE_INFINITY),\n currentPageNumber.value * (perPageNumber.value || Number.POSITIVE_INFINITY)\n )\n})\n\nwatch(computedDisplayItems, (v) => {\n emit('change', v)\n})\n\nconst handleRowSelection = (\n row: T,\n index: number,\n shiftClicked = false,\n ctrlClicked = false,\n metaClicked = false\n) => {\n if (!props.selectable) return\n\n if (props.selectMode === 'single' || props.selectMode === 'multi') {\n // Do nothing when these items are held\n if (shiftClicked || ctrlClicked) return\n // Delete if item is in\n if (selectedItemsSetUtilities.has(row)) {\n selectedItemsSetUtilities.delete(row)\n } else {\n if (props.selectMode === 'single') {\n selectedItemsSetUtilities.set([row])\n } else {\n selectedItemsSetUtilities.add(row)\n }\n }\n } else {\n if (ctrlClicked || metaClicked) {\n // Delete if in the object\n if (selectedItemsSetUtilities.has(row)) {\n selectedItemsSetUtilities.delete(row)\n // Otherwise add. Functions similarly to 'multi' at this point\n } else {\n selectedItemsSetUtilities.add(row)\n }\n // This is where range is different, due to the difference in shift\n } else if (shiftClicked) {\n const lastSelectedItem = [...selectedItemsToSet.value].pop()\n const lastSelectedIndex = props.items.findIndex((i) => i === lastSelectedItem)\n const selectStartIndex = Math.min(lastSelectedIndex, index)\n const selectEndIndex = Math.max(lastSelectedIndex, index)\n const items = props.items.slice(selectStartIndex, selectEndIndex + 1)\n selectedItemsSetUtilities.set(items)\n // If nothing is being held, then we just behave like it's single mode\n } else {\n selectedItemsSetUtilities.set([row])\n }\n }\n}\n\nconst onRowClick = (row: T, index: number, e: MouseEvent) => {\n if (props.noSelectOnClick === false) {\n handleRowSelection(row, index, e.shiftKey, e.ctrlKey, e.metaKey)\n }\n emit('row-clicked', row, index, e)\n}\n\nconst handleFieldSorting = (field: TableField<T>) => {\n if (!isSortable.value) return\n\n const fieldKey = typeof field === 'object' && field !== null ? field.key : field\n const fieldSortable = typeof field === 'object' && field !== null ? field.sortable : false\n\n if (!(isSortable.value === true && fieldSortable === true)) return\n\n const resolveOrder = (val: BTableSortByOrder): BTableSortByOrder | undefined => {\n if (val === 'asc') return 'desc'\n if (val === undefined) return 'asc'\n if (\n props.mustSort === true ||\n (Array.isArray(props.mustSort) && props.mustSort.includes(fieldKey as string))\n )\n return 'asc'\n return undefined\n }\n\n const index = sortByModel.value?.findIndex((el) => el.key === fieldKey) ?? -1\n const originalValue = sortByModel.value?.[index]\n const updatedValue: BTableSortBy =\n // If value is new, we default to ascending\n // Otherwise we make a temp copy of the value\n index === -1 || !originalValue ? {key: fieldKey as string, order: 'asc'} : {...originalValue}\n\n /**\n * @returns the updated value to emit for sorted\n */\n const handleMultiSort = (): BTableSortBy => {\n let val = updatedValue\n if (index === -1) {\n sortByModel.value = [...(sortByModel.value ?? []), updatedValue]\n } else {\n const order = resolveOrder(updatedValue.order)\n val = {...updatedValue, order}\n sortByModel.value = order\n ? sortByModel.value?.map((el) => (el.key === val.key ? val : el))\n : sortByModel.value?.filter((el) => el.key !== val.key)\n }\n return val\n }\n\n /**\n * @returns the updated value to emit for sorted\n */\n const handleSingleSort = (): BTableSortBy => {\n const val = {\n ...updatedValue,\n order: index === -1 ? updatedValue.order : resolveOrder(updatedValue.order),\n }\n sortByModel.value = [val]\n return val\n }\n\n // Then emit the returned updated value\n emit('sorted', props.multisort === true ? handleMultiSort() : handleSingleSort())\n}\n\nconst onFieldHeadClick = (\n fieldKey: string,\n field: TableField<T>,\n event: Readonly<MouseEvent>,\n isFooter = false\n) => {\n emit('head-clicked', fieldKey, field, event, isFooter)\n handleFieldSorting(field)\n}\n\nconst callItemsProvider = async () => {\n if (!usesProvider.value || props.provider === undefined || busyModel.value) return\n busyModel.value = true\n const response = props.provider({\n currentPage: currentPageNumber.value,\n filter: props.filter,\n sortBy: sortByModel.value,\n perPage: perPageNumber.value,\n })\n try {\n const items = response instanceof Promise ? await response : response\n\n if (items === undefined) return\n internalItems.value = items\n } finally {\n // Potential race condition could occur if the user explicitly sets the busy value to a different value while the response promise is executing\n // which would have been the users choice.\n // eslint-disable-next-line require-atomic-updates\n busyModel.value = false\n }\n}\n\nconst providerPropsWatch = async (prop: string, val: unknown, oldVal: unknown) => {\n if (val === oldVal) return\n\n //stop provide when paging\n const inNoProvider = (key: NoProviderTypes) => props.noProvider?.includes(key) === true\n const noProvideWhenPaging =\n (prop === 'currentPage' || prop === 'perPage') &&\n (inNoProvider('paging') || props.noProviderPaging === true)\n const noProvideWhenFiltering =\n prop === 'filter' && (inNoProvider('filtering') || props.noProviderFiltering === true)\n const noProvideWhenSorting =\n (prop === 'sortBy' || prop === 'sortDesc') &&\n (inNoProvider('sorting') || props.noProviderSorting === true)\n\n if (noProvideWhenPaging || noProvideWhenFiltering || noProvideWhenSorting) return\n\n if (usesProvider.value === true) {\n await callItemsProvider()\n }\n\n if (!(prop === 'currentPage' || prop === 'perPage')) {\n emit('filtered', [...computedItems.value])\n }\n}\n\nwatch(\n () => props.filter,\n (filter, oldFilter) => {\n providerPropsWatch('filter', filter, oldFilter)\n\n if (filter === oldFilter || usesProvider.value) return\n if (!filter) {\n emit('filtered', [...computedItems.value])\n }\n }\n)\nwatch(currentPageNumber, (val, oldVal) => {\n providerPropsWatch('currentPage', val, oldVal)\n})\nwatch(perPageNumber, (val, oldVal) => {\n providerPropsWatch('perPage', val, oldVal)\n})\nwatch(\n sortByModel,\n (val, oldVal) => {\n providerPropsWatch('sortBy', val, oldVal)\n },\n {deep: true}\n)\n\nwatch(\n () => props.provider,\n (newValue) => {\n // Reset the internal values if the provider stops getting used\n if (newValue === undefined) {\n internalItems.value = []\n return\n }\n // Otherwise we should refresh the table on such a change\n callItemsProvider()\n }\n)\n\nonMounted(callItemsProvider)\n\ndefineExpose({\n // The row selection methods are really for compat. Users should probably use the v-model though\n clearSelected: () => {\n if (!props.selectable) return\n selectedItemsSetUtilities.clear()\n },\n refresh: callItemsProvider,\n selectAllRows: () => {\n if (!props.selectable) return\n const unselectableItems = selectedItemsToSet.value.size > 0 ? [...selectedItemsToSet.value] : []\n selectedItemsToSet.value = new Set([...computedItems.value])\n selectedItemsToSet.value.forEach((item) => {\n if (unselectableItems.includes(item)) return\n emit('row-selected', item)\n })\n },\n selectRow: (index: number) => {\n if (!props.selectable) return\n const item = computedItems.value[index]\n if (!item || selectedItemsSetUtilities.has(item)) return\n selectedItemsSetUtilities.add(item)\n },\n unselectRow: (index: number) => {\n if (!props.selectable) return\n const item = computedItems.value[index]\n if (!item || !selectedItemsSetUtilities.has(item)) return\n selectedItemsSetUtilities.delete(item)\n },\n isRowSelected: (index: number) => {\n if (!props.selectable) return false\n const item = computedItems.value[index]\n return selectedItemsSetUtilities.has(item)\n },\n})\n</script>\n"],"names":["_useModel","_a","_b"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ "use strict";const e=require("vue"),t=require("./object-B-6ddRYH.js"),l=require("./BOverlay.vue_vue_type_script_setup_true_lang-B-DddNvF.js"),o=require("./BSpinner.vue_vue_type_script_setup_true_lang-DybaAUVS.js"),a=require("./BTableSimple.vue_vue_type_script_setup_true_lang-iOO_ebGw.js"),r=require("./useDefaults-Cd8OVIUI.js"),n=require("./stringUtils-D2ajpVM0.js"),s=require("./index-BInTFWT4.js"),d=(e,l,o)=>{const a=t.get(e,l);return o&&"function"==typeof o?o(a,l,e):a},i=e=>"object"==typeof e&&null!==e,u=e=>"object"==typeof e&&null!==e&&"key"in e,c=e.defineComponent({__name:"BTbody",props:{variant:{default:null}},setup(t){const l=t,o=r.useDefaults(l,"BTbody"),a=e.computed((()=>({[`thead-${o.variant}`]:null!==o.variant})));return(t,l)=>(e.openBlock(),e.createElementBlock("tbody",{class:e.normalizeClass(a.value)},[e.renderSlot(t.$slots,"default")],2))}}),f=["scope","colspan","rowspan","data-label"],v={key:0},p=e.defineComponent({__name:"BTd",props:{colspan:{default:void 0},rowspan:{default:void 0},stackedHeading:{default:void 0},stickyColumn:{type:Boolean,default:!1},variant:{default:null}},setup(t){const l=t,o=r.useDefaults(l,"BTd"),a=e.computed((()=>({[`table-${o.variant}`]:null!==o.variant,"b-table-sticky-column":o.stickyColumn,"table-b-table-default":o.stickyColumn&&null===o.variant}))),n=e.computed((()=>o.colspan?"colspan":o.rowspan?"rowspan":"col"));return(t,l)=>(e.openBlock(),e.createElementBlock("td",{scope:n.value,class:e.normalizeClass(a.value),colspan:e.unref(o).colspan,rowspan:e.unref(o).rowspan,"data-label":e.unref(o).stackedHeading},[e.unref(o).stackedHeading?(e.openBlock(),e.createElementBlock("div",v,[e.renderSlot(t.$slots,"default")])):e.renderSlot(t.$slots,"default",{key:1})],10,f))}}),m=e.defineComponent({__name:"BTfoot",props:{variant:{default:null}},setup(t){const l=t,o=r.useDefaults(l,"BTfoot"),a=e.computed((()=>({[`table-${o.variant}`]:null!==o.variant})));return(t,l)=>(e.openBlock(),e.createElementBlock("tfoot",{class:e.normalizeClass(a.value)},[e.renderSlot(t.$slots,"default")],2))}}),y=["scope","colspan","rowspan","data-label"],b={key:0},k=e.defineComponent({__name:"BTh",props:{colspan:{default:void 0},rowspan:{default:void 0},stackedHeading:{default:void 0},stickyColumn:{type:Boolean,default:!1},variant:{default:null}},setup(t){const l=t,o=r.useDefaults(l,"BTh"),a=e.computed((()=>({[`table-${o.variant}`]:null!==o.variant,"b-table-sticky-column":o.stickyColumn,"table-b-table-default":o.stickyColumn&&null===o.variant}))),n=e.computed((()=>o.colspan?"colspan":o.rowspan?"rowspan":"col"));return(t,l)=>(e.openBlock(),e.createElementBlock("th",{scope:n.value,class:e.normalizeClass(a.value),colspan:e.unref(o).colspan,rowspan:e.unref(o).rowspan,"data-label":e.unref(o).stackedHeading},[void 0!==e.unref(o).stackedHeading?(e.openBlock(),e.createElementBlock("div",b,[e.renderSlot(t.$slots,"default")])):e.renderSlot(t.$slots,"default",{key:1})],10,y))}}),g=e.defineComponent({__name:"BThead",props:{variant:{default:null}},setup(t){const l=t,o=r.useDefaults(l,"BThead"),a=e.computed((()=>({[`table-${o.variant}`]:null!==o.variant})));return(t,l)=>(e.openBlock(),e.createElementBlock("thead",{class:e.normalizeClass(a.value)},[e.renderSlot(t.$slots,"default")],2))}}),h=e.defineComponent({__name:"BTr",props:{variant:{default:null}},setup(t){const l=t,o=r.useDefaults(l,"BTr"),a=e.computed((()=>({[`table-${o.variant}`]:null!==o.variant})));return(t,l)=>(e.openBlock(),e.createElementBlock("tr",{class:e.normalizeClass(a.value)},[e.renderSlot(t.$slots,"default")],2))}}),B=e=>"string"==typeof e?n.titleCase(e):void 0!==e.label?e.label:"string"==typeof e.key?n.titleCase(e.key):e.key,C=["TD","TH","TR"],w=["a","a *","button","button *","input:not(.disabled):not([disabled])","select:not(.disabled):not([disabled])","textarea:not(.disabled):not([disabled])",'[role="link"]','[role="link"] *','[role="button"]','[role="button"] *',"[tabindex]:not(.disabled):not([disabled])"].join(","),S=e=>{if(!e||!e.target)return!1;const t=e.target;if("disabled"in t&&t.disabled||-1!==C.indexOf(t.tagName))return!1;if(t.closest(".dropdown-menu"))return!0;const l="LABEL"===t.tagName?t:t.closest("label");if(l){const e=l.getAttribute("for"),t=e?document.getElementById(e):l.querySelector("input, select, textarea");if(t&&!t.disabled)return!0}return t.matches(w)},_={key:0,class:"b-table-stacked-label"},T={class:"d-inline-flex flex-nowrap align-items-center gap-1"},$={key:2},x=e.defineComponent({__name:"BTableLite",props:{align:{default:void 0},caption:{default:void 0},captionHtml:{default:void 0},detailsTdClass:{default:void 0},emptyFilteredText:{default:"There are no records matching your request"},emptyText:{default:"There are no records to show"},fieldColumnClass:{type:[Function,String,Object,Array],default:void 0},fields:{default:()=>[]},footClone:{type:Boolean,default:!1},footRowVariant:{default:void 0},footVariant:{default:void 0},headRowVariant:{default:void 0},headVariant:{default:void 0},items:{default:()=>[]},labelStacked:{type:Boolean,default:!1},modelValue:{default:void 0},primaryKey:{default:void 0},showEmpty:{type:Boolean,default:!1},tbodyClass:{default:void 0},tbodyTrAttrs:{type:[Function,Object],default:void 0},tbodyTrClass:{type:Function,default:void 0},tfootClass:{default:void 0},tfootTrClass:{default:void 0},theadClass:{default:void 0},theadTrClass:{default:void 0},bordered:{type:Boolean,default:void 0},borderless:{type:Boolean,default:void 0},borderVariant:{default:void 0},captionTop:{type:Boolean,default:void 0},dark:{type:Boolean,default:void 0},fixed:{type:Boolean,default:void 0},hover:{type:Boolean,default:void 0},id:{default:void 0},noBorderCollapse:{type:Boolean,default:void 0},outlined:{type:Boolean,default:void 0},responsive:{type:[Boolean,String],default:void 0},small:{type:Boolean,default:void 0},stacked:{type:[Boolean,String],default:void 0},stickyHeader:{type:[Boolean,String,Number],default:void 0},striped:{type:Boolean,default:void 0},stripedColumns:{type:Boolean,default:void 0},variant:{default:void 0},tableAttrs:{},tableClass:{default:void 0}},emits:["head-clicked","row-clicked","row-dbl-clicked","row-hovered","row-unhovered"],setup(l,{emit:o}){const s=l,f=r.useDefaults(s,"BTableLite"),v=o,y=e=>[e,e._showDetails],b=e.ref(new WeakMap(f.items.reduce(((e,t)=>(i(t)&&e.push(y(t)),e)),[])));e.watch((()=>f.items),(e=>{e.forEach((e=>{if(!i(e))return;const t=y(e);b.value.set(t[0],t[1])}))}),{deep:!0});const C=e.computed((()=>[f.tableClass,{[`align-${f.align}`]:void 0!==f.align}])),w=e.computed((()=>{if(!f.fields.length&&f.items.length){const[e]=f.items;return i(e)||Array.isArray(e)?Object.keys(e).map((e=>{const t=n.startCase(e);return{key:e,label:t,tdAttr:!0===f.stacked?{"data-label":t}:void 0}})):[{key:"",_noHeader:!0}]}return f.fields.map((e=>{if(u(e))return{...e,tdAttr:!0===f.stacked?{"data-label":n.startCase(e.key),...e.tdAttr}:e.tdAttr};const t=n.startCase(e);return{key:e,label:t,tdAttr:!0===f.stacked?{"data-label":t}:void 0}}))})),x=e.computed((()=>w.value.length)),V=e.computed((()=>!(w.value.length>0&&w.value.every((e=>!0===e._noHeader))))),N=(e,l,o)=>{const a=String(l.key),r=t.get(e,a);return l.thAttr&&"function"==typeof l.thAttr?l.thAttr(r,a,e,o):l.thAttr},P=(e,t,l=!1)=>{v("head-clicked",e.key,e,t,l)},E=e=>{if(i(e)){const t=b.value.get(e);b.value.set(e,!t),e._showDetails=!t}},A=e=>[e.class,e.thClass,{"b-table-sticky-column":e.stickyColumn},f.fieldColumnClass?"function"==typeof f.fieldColumnClass?f.fieldColumnClass(e):f.fieldColumnClass:null],D=(e,l)=>{var o,a;const r=t.get(l,String(e.key));return[e.class,"function"==typeof e.tdClass?e.tdClass(r,String(e.key),l):e.tdClass,i(l)&&(null==(o=l._cellVariants)?void 0:o[e.key])?`table-${null==(a=l._cellVariants)?void 0:a[e.key]}`:null,{"b-table-sticky-column":e.stickyColumn}]},F=(e,t)=>f.tbodyTrAttrs?"function"==typeof f.tbodyTrAttrs?f.tbodyTrAttrs(e,t):f.tbodyTrAttrs:null,I=(e,t)=>f.tbodyTrClass?"function"==typeof f.tbodyTrClass?f.tbodyTrClass(e,t):f.tbodyTrClass:null;return(l,o)=>(e.openBlock(),e.createBlock(a._sfc_main,{id:e.unref(f).id,bordered:e.unref(f).bordered,borderless:e.unref(f).borderless,"border-variant":e.unref(f).borderVariant,"caption-top":e.unref(f).captionTop,dark:e.unref(f).dark,fixed:e.unref(f).fixed,hover:e.unref(f).hover,"no-border-collapse":e.unref(f).noBorderCollapse,outlined:e.unref(f).outlined,responsive:e.unref(f).responsive,small:e.unref(f).small,stacked:e.unref(f).stacked,"sticky-header":e.unref(f).stickyHeader,striped:e.unref(f).striped,"table-class":C.value,variant:e.unref(f).variant,"striped-columns":e.unref(f).stripedColumns},{default:e.withCtx((()=>[e.withDirectives(e.createVNode(g,{variant:e.unref(f).headVariant,class:e.normalizeClass(e.unref(f).theadClass)},{default:e.withCtx((()=>[l.$slots["thead-top"]?e.renderSlot(l.$slots,"thead-top",{key:0}):e.createCommentVNode("",!0),e.createVNode(h,{variant:e.unref(f).headRowVariant,class:e.normalizeClass(e.unref(f).theadTrClass)},{default:e.withCtx((()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(w.value,(t=>(e.openBlock(),e.createBlock(k,e.mergeProps({key:t.key,scope:"col",class:A(t),title:t.headerTitle,variant:t.variant,abbr:t.headerAbbr,style:t.thStyle,ref_for:!0},N(null,t,"top"),{onClick:e=>P(t,e)}),{default:e.withCtx((()=>[e.renderSlot(l.$slots,l.$slots[`head(${String(t.key)})`]?`head(${String(t.key)})`:"head()",{label:t.label,column:t.key,field:t,isFoot:!1},(()=>[e.createTextVNode(e.toDisplayString(e.unref(B)(t)),1)]))])),_:2},1040,["class","title","variant","abbr","style","onClick"])))),128))])),_:3},8,["variant","class"]),l.$slots["thead-sub"]?(e.openBlock(),e.createBlock(h,{key:1},{default:e.withCtx((()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(w.value,(t=>(e.openBlock(),e.createBlock(p,{key:t.key,scope:"col",variant:t.variant,class:e.normalizeClass([t.class,t.thClass])},{default:e.withCtx((()=>[e.renderSlot(l.$slots,"thead-sub",e.mergeProps({items:w.value,ref_for:!0},t),(()=>[e.createTextVNode(e.toDisplayString(t.label),1)]))])),_:2},1032,["variant","class"])))),128))])),_:3})):e.createCommentVNode("",!0)])),_:3},8,["variant","class"]),[[e.vShow,V.value]]),e.createVNode(c,{class:e.normalizeClass(e.unref(f).tbodyClass)},{default:e.withCtx((()=>[e.renderSlot(l.$slots,"custom-body",{fields:w.value,items:e.unref(f).items,columns:w.value.length},(()=>[!e.unref(f).stacked&&l.$slots["top-row"]?(e.openBlock(),e.createBlock(h,e.mergeProps({key:0,class:I(null,"row-top")},F(null,"row-top")),{default:e.withCtx((()=>[e.renderSlot(l.$slots,"top-row")])),_:3},16,["class"])):e.createCommentVNode("",!0),(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(e.unref(f).items,((o,a)=>(e.openBlock(),e.createElementBlock(e.Fragment,{key:e.unref(f).primaryKey?e.unref(t.get)(o,e.unref(f).primaryKey):a},[e.createVNode(h,e.mergeProps({class:I(o,"row"),variant:e.unref(i)(o)?o._rowVariant:void 0,ref_for:!0},F(o,"row"),{onClick:t=>!e.unref(S)(t)&&v("row-clicked",o,a,t),onDblclick:t=>!e.unref(S)(t)&&v("row-dbl-clicked",o,a,t),onMouseenter:t=>!e.unref(S)(t)&&v("row-hovered",o,a,t),onMouseleave:t=>!e.unref(S)(t)&&v("row-unhovered",o,a,t)}),{default:e.withCtx((()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(w.value,(r=>{var n;return e.openBlock(),e.createBlock(p,e.mergeProps({key:r.key,variant:e.unref(i)(o)&&(null==(n=o._cellVariants)?void 0:n[r.key])?null:r.variant,class:D(r,o),ref_for:!0},((e,l,o)=>{const a=t.get(e,l);return o&&"function"==typeof o?o(a,l,e):o})(o,String(r.key),r.tdAttr)),{default:e.withCtx((()=>[e.unref(f).stacked&&e.unref(f).labelStacked?(e.openBlock(),e.createElementBlock("label",_,e.toDisplayString(e.unref(B)(r)),1)):e.createCommentVNode("",!0),e.renderSlot(l.$slots,l.$slots[`cell(${String(r.key)})`]?`cell(${String(r.key)})`:"cell()",{value:e.unref(d)(o,String(r.key),r.formatter),unformatted:e.unref(t.get)(o,String(r.key)),index:a,item:o,field:r,items:l.items,toggleDetails:()=>{E(o)},detailsShowing:!!e.unref(i)(o)&&(b.value.get(o)??!1)},(()=>[l.$slots[`cell(${String(r.key)})`]||l.$slots["cell()"]?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(e.unref(d)(o,String(r.key),r.formatter)),1)],64))]))])),_:2},1040,["variant","class"])})),128))])),_:2},1040,["class","variant","onClick","onDblclick","onMouseenter","onMouseleave"]),e.unref(i)(o)&&!0===b.value.get(o)&&l.$slots["row-details"]?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createVNode(h,{"aria-hidden":"true",role:"presentation",class:"d-none"}),e.createVNode(h,e.mergeProps({class:I(o,"row-details"),variant:o._rowVariant,ref_for:!0},F(o,"row-details")),{default:e.withCtx((()=>[e.createVNode(p,{colspan:x.value,class:e.normalizeClass(l.detailsTdClass)},{default:e.withCtx((()=>[e.renderSlot(l.$slots,"row-details",{item:o,toggleDetails:()=>{E(o)},fields:e.unref(f).fields,index:a})])),_:2},1032,["colspan","class"])])),_:2},1040,["class","variant"])],64)):e.createCommentVNode("",!0)],64)))),128)),e.unref(f).showEmpty&&0===e.unref(f).items.length?(e.openBlock(),e.createBlock(h,{key:1,class:"b-table-empty-slot"},{default:e.withCtx((()=>[e.createVNode(p,{colspan:x.value},{default:e.withCtx((()=>[e.renderSlot(l.$slots,"empty",{items:e.unref(f).items},(()=>[e.createTextVNode(e.toDisplayString(e.unref(f).emptyText),1)]))])),_:3},8,["colspan"])])),_:3})):e.createCommentVNode("",!0),!e.unref(f).stacked&&l.$slots["bottom-row"]?(e.openBlock(),e.createBlock(h,e.mergeProps({key:2,class:["bottom-row",I(null,"row-bottom")]},F(null,"row-bottom")),{default:e.withCtx((()=>[e.renderSlot(l.$slots,"bottom-row")])),_:3},16,["class"])):e.createCommentVNode("",!0)]))])),_:3},8,["class"]),e.unref(f).footClone?(e.openBlock(),e.createBlock(m,{key:0,variant:e.unref(f).footVariant,class:e.normalizeClass(e.unref(f).tfootClass)},{default:e.withCtx((()=>[e.createVNode(h,{variant:e.unref(f).footRowVariant,class:e.normalizeClass(e.unref(f).tfootTrClass)},{default:e.withCtx((()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(w.value,(t=>(e.openBlock(),e.createBlock(k,e.mergeProps({key:t.key,scope:"col",class:A(t),title:t.headerTitle,abbr:t.headerAbbr,style:t.thStyle,variant:t.variant,ref_for:!0},N(null,t,"bottom"),{onClick:e=>P(t,e,!0)}),{default:e.withCtx((()=>[e.createElementVNode("div",T,[e.createElementVNode("div",null,[e.renderSlot(l.$slots,l.$slots[`foot(${String(t.key)})`]?`foot(${String(t.key)})`:"foot()",{label:t.label,column:t.key,field:t,isFoot:!0},(()=>[e.createTextVNode(e.toDisplayString(e.unref(B)(t)),1)]))])])])),_:2},1040,["class","title","abbr","style","variant","onClick"])))),128))])),_:3},8,["variant","class"])])),_:3},8,["variant","class"])):l.$slots["custom-foot"]?(e.openBlock(),e.createBlock(m,{key:1},{default:e.withCtx((()=>[e.renderSlot(l.$slots,"custom-foot",{fields:w.value,items:e.unref(f).items,columns:w.value.length})])),_:3})):e.createCommentVNode("",!0),l.$slots["table-caption"]||e.unref(f).caption?(e.openBlock(),e.createElementBlock("caption",$,[e.renderSlot(l.$slots,"table-caption",{},(()=>[e.createTextVNode(e.toDisplayString(e.unref(f).caption),1)]))])):e.createCommentVNode("",!0)])),_:3},8,["id","bordered","borderless","border-variant","caption-top","dark","fixed","hover","no-border-collapse","outlined","responsive","small","stacked","sticky-header","striped","table-class","variant","striped-columns"]))}}),V={style:{opacity:.4},xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",fill:"currentColor",class:"bi bi-arrow-up-short",viewBox:"0 0 16 16","aria-hidden":""},N={class:"d-flex align-items-center gap-2 mt-5"},P=e.defineComponent({__name:"BTable",props:e.mergeModels({provider:{default:void 0},noProvider:{default:void 0},noProviderPaging:{type:Boolean,default:!1},noProviderSorting:{type:Boolean,default:!1},noProviderFiltering:{type:Boolean,default:!1},mustSort:{type:[Boolean,Array],default:!1},selectable:{type:Boolean,default:!1},multisort:{type:Boolean,default:!1},stickySelect:{type:Boolean,default:!1},selectHead:{type:[Boolean,String],default:!0},selectMode:{default:"multi"},selectionVariant:{default:"primary"},busyLoadingText:{default:"Loading..."},perPage:{default:Number.POSITIVE_INFINITY},currentPage:{default:1},filter:{default:void 0},filterable:{default:void 0},noLocalSorting:{type:Boolean,default:!1},noSelectOnClick:{type:Boolean,default:!1},noSortableIcon:{type:Boolean,default:!1},align:{default:void 0},caption:{default:void 0},captionHtml:{default:void 0},detailsTdClass:{default:void 0},emptyFilteredText:{default:void 0},emptyText:{default:void 0},fieldColumnClass:{type:[Function,String,Object,Array],default:void 0},fields:{default:()=>[]},footClone:{type:Boolean,default:void 0},footRowVariant:{default:void 0},footVariant:{default:void 0},headRowVariant:{default:void 0},headVariant:{default:void 0},items:{default:()=>[]},labelStacked:{type:Boolean,default:void 0},modelValue:{default:void 0},primaryKey:{default:void 0},showEmpty:{type:Boolean,default:void 0},tbodyClass:{default:void 0},tbodyTrAttrs:{},tbodyTrClass:{type:Function,default:void 0},tfootClass:{default:void 0},tfootTrClass:{default:void 0},theadClass:{default:void 0},theadTrClass:{default:void 0},bordered:{type:Boolean,default:void 0},borderless:{type:Boolean,default:void 0},borderVariant:{default:void 0},captionTop:{type:Boolean,default:void 0},dark:{type:Boolean,default:void 0},fixed:{type:Boolean,default:void 0},hover:{type:Boolean,default:void 0},id:{default:void 0},noBorderCollapse:{type:Boolean,default:void 0},outlined:{type:Boolean,default:void 0},responsive:{type:[Boolean,String],default:void 0},small:{type:Boolean,default:void 0},stacked:{type:[Boolean,String],default:void 0},stickyHeader:{type:[Boolean,String,Number],default:void 0},striped:{type:Boolean,default:void 0},stripedColumns:{type:Boolean,default:void 0},variant:{default:void 0},tableAttrs:{}},{sortBy:{default:void 0},sortByModifiers:{},busy:{type:Boolean,default:!1},busyModifiers:{},selectedItems:{default:()=>[]},selectedItemsModifiers:{}}),emits:e.mergeModels(["filtered","head-clicked","row-clicked","row-dbl-clicked","row-hovered","row-unhovered","row-selected","row-unselected","sorted","change"],["update:sortBy","update:busy","update:selectedItems"]),setup(a,{expose:c,emit:f}){const v=a,m=r.useDefaults(v,"BTable"),y=f,b=e.useModel(a,"sortBy"),k=e.useModel(a,"busy"),g=e.useModel(a,"selectedItems"),C=e.computed({get:()=>new Set([...g.value]),set:e=>{g.value=[...e]}}),w={add:e=>{const t=new Set(C.value);t.add(e),C.value=t,y("row-selected",e)},clear:()=>{C.value.forEach((e=>{w.delete(e)}))},delete:e=>{const l=new Set(C.value);if(m.primaryKey){const o=m.primaryKey;g.value.forEach(((a,r)=>{const n=t.get(a,o),s=t.get(e,o);n&&s&&n===s&&l.delete(g.value[r])}))}else l.delete(e);C.value=l,y("row-unselected",e)},set:e=>{C.value=new Set(e),C.value.forEach((e=>{y("row-unselected",e)}))},has:e=>{if(!m.primaryKey)return C.value.has(e);const l=m.primaryKey;for(const o of C.value){const a=t.get(o,l),r=t.get(e,l);if(a&&r&&a===r)return!0}return!1}},S=e.ref([]),_=s.useToNumber((()=>m.perPage),{method:"parseInt"}),T=s.useToNumber((()=>m.currentPage),{method:"parseInt"}),$=e.computed((()=>!!m.filter)),P=e.computed((()=>void 0!==m.provider)),E=e.computed((()=>C.value.size>0)),A=e.computed((()=>void 0!==b.value||m.fields.some((e=>"object"==typeof e&&null!==e&&!0===e.sortable)))),D=e.computed((()=>m.fields.map((e=>{var t;if(!u(e)){const t=n.startCase(e);return{key:e,label:t,tdAttr:!0===m.stacked?{"data-label":t}:void 0}}const l=null==(t=b.value)?void 0:t.find((t=>e.key===t.key)),o=!1===A.value?void 0:void 0===l?"none":"desc"===l.order?"descending":"asc"===l.order?"ascending":"none";return{...e,thAttr:{"aria-sort":o,...e.thAttr}}})))),F=e.computed((()=>({"b-table-busy":k.value,"b-table-selectable":m.selectable,"user-select-none":m.selectable&&E.value}))),I=e.computed((()=>[m.tbodyTrClass?"function"==typeof m.tbodyTrClass?m.tbodyTrClass(null,"table-busy"):m.tbodyTrClass:null])),j=e=>[{"b-table-sortable-column":A.value&&e.sortable}],z=(e,t)=>[{[`selected table-${m.selectionVariant}`]:m.selectable&&!!e&&w.has(e)},m.tbodyTrClass?"function"==typeof m.tbodyTrClass?m.tbodyTrClass(e,t):m.tbodyTrClass:null],M=e.computed((()=>{let e=P.value?S.value:m.items;return e=e.map((e=>{if("object"==typeof e&&null!==e&&Object.keys(e).some((e=>e.includes(".")))){let l={};for(const o in e)o.includes(".")?l=t.set(l,o,e[o]):l[o]=e[o];return l}return e})),(!0===$.value&&!P.value||!0===$.value&&P.value&&m.noProviderFiltering)&&(e=e.filter((e=>!i(e)||Object.entries(e).some((([t,l])=>{var o,a,r;return!(null==l||"_"===t[0]||!(null==(o=m.filterable)?void 0:o.includes(t))&&(null==(a=m.filterable)?void 0:a.length))&&(()=>{const o=D.value.find((e=>!!u(e)&&e.key===t));if(u(o)&&o.filterByFormatted){const t="function"==typeof o.filterByFormatted?o.filterByFormatted:o.formatter;if(t)return t(l,String(o.key),e)}return"object"==typeof l?JSON.stringify(Object.values(l)):l.toString()})().toLowerCase().includes((null==(r=m.filter)?void 0:r.toLowerCase())??"")}))))),(!0===A.value&&!P.value&&!m.noLocalSorting||!0===A.value&&P.value&&m.noProviderSorting)&&(e=(e=>{var l;const o=null==(l=b.value)?void 0:l.filter((e=>!!e.order));return o&&0!==o.length?[...e].sort(((e,l)=>{for(let a=0;a<(o.length??0);a++){const r=o[a],n=e=>{if(!i(e))return String(e);const l=D.value.find((e=>!!u(e)&&e.key===r.key)),o=t.get(e,r.key);if(u(l)&&l.sortByFormatted){const t="function"==typeof l.sortByFormatted?l.sortByFormatted:l.formatter;if(t)return d(e,String(l.key),t)}return"object"==typeof o&&null!==o?JSON.stringify(o):(null==o?void 0:o.toString())??""},s=n(e),c=n(l),f=r.comparer?r.comparer(s,c):s.localeCompare(c,void 0,{numeric:!0});if(0!==f)return"asc"===r.order?f:-f}return 0})):e})(e)),e})),L=e.computed((()=>Number.isNaN(_.value)||P.value&&!m.noProviderPaging?M.value:M.value.slice((T.value-1)*(_.value||Number.POSITIVE_INFINITY),T.value*(_.value||Number.POSITIVE_INFINITY))));e.watch(L,(e=>{y("change",e)}));const H=(e,t,l)=>{!1===m.noSelectOnClick&&((e,t,l=!1,o=!1,a=!1)=>{if(m.selectable)if("single"===m.selectMode||"multi"===m.selectMode){if(l||o)return;w.has(e)?w.delete(e):"single"===m.selectMode?w.set([e]):w.add(e)}else if(o||a)w.has(e)?w.delete(e):w.add(e);else if(l){const e=[...C.value].pop(),l=m.items.findIndex((t=>t===e)),o=Math.min(l,t),a=Math.max(l,t),r=m.items.slice(o,a+1);w.set(r)}else w.set([e])})(e,t,l.shiftKey,l.ctrlKey,l.metaKey),y("row-clicked",e,t,l)},R=(e,t,l,o=!1)=>{y("head-clicked",e,t,l,o),(e=>{var t,l;if(!A.value)return;const o="object"==typeof e&&null!==e?e.key:e,a="object"==typeof e&&null!==e&&e.sortable;if(!0!==A.value||!0!==a)return;const r=e=>"asc"===e?"desc":void 0===e||!0===m.mustSort||Array.isArray(m.mustSort)&&m.mustSort.includes(o)?"asc":void 0,n=(null==(t=b.value)?void 0:t.findIndex((e=>e.key===o)))??-1,s=null==(l=b.value)?void 0:l[n],d=-1!==n&&s?{...s}:{key:o,order:"asc"};y("sorted",!0===m.multisort?(()=>{var e,t;let l=d;if(-1===n)b.value=[...b.value??[],d];else{const o=r(d.order);l={...d,order:o},b.value=o?null==(e=b.value)?void 0:e.map((e=>e.key===l.key?l:e)):null==(t=b.value)?void 0:t.filter((e=>e.key!==l.key))}return l})():(()=>{const e={...d,order:-1===n?d.order:r(d.order)};return b.value=[e],e})())})(t)},O=async()=>{if(!P.value||void 0===m.provider||k.value)return;k.value=!0;const e=m.provider({currentPage:T.value,filter:m.filter,sortBy:b.value,perPage:_.value});try{const t=e instanceof Promise?await e:e;if(void 0===t)return;S.value=t}finally{k.value=!1}},K=async(e,t,l)=>{if(t===l)return;const o=e=>{var t;return!0===(null==(t=m.noProvider)?void 0:t.includes(e))},a=("currentPage"===e||"perPage"===e)&&(o("paging")||!0===m.noProviderPaging),r="filter"===e&&(o("filtering")||!0===m.noProviderFiltering),n=("sortBy"===e||"sortDesc"===e)&&(o("sorting")||!0===m.noProviderSorting);a||r||n||(!0===P.value&&await O(),"currentPage"!==e&&"perPage"!==e&&y("filtered",[...M.value]))};return e.watch((()=>m.filter),((e,t)=>{K("filter",e,t),e===t||P.value||e||y("filtered",[...M.value])})),e.watch(T,((e,t)=>{K("currentPage",e,t)})),e.watch(_,((e,t)=>{K("perPage",e,t)})),e.watch(b,((e,t)=>{K("sortBy",e,t)}),{deep:!0}),e.watch((()=>m.provider),(e=>{void 0!==e?O():S.value=[]})),e.onMounted(O),c({clearSelected:()=>{m.selectable&&w.clear()},refresh:O,selectAllRows:()=>{if(!m.selectable)return;const e=C.value.size>0?[...C.value]:[];C.value=new Set([...M.value]),C.value.forEach((t=>{e.includes(t)||y("row-selected",t)}))},selectRow:e=>{if(!m.selectable)return;const t=M.value[e];t&&!w.has(t)&&w.add(t)},unselectRow:e=>{if(!m.selectable)return;const t=M.value[e];t&&w.has(t)&&w.delete(t)},isRowSelected:e=>{if(!m.selectable)return!1;const t=M.value[e];return w.has(t)}}),(t,a)=>(e.openBlock(),e.createBlock(x,e.mergeProps(e.unref(m),{"aria-busy":k.value,items:L.value,fields:D.value,"table-class":F.value,"tbody-tr-class":z,"field-column-class":j,onHeadClicked:R,onRowDblClicked:a[0]||(a[0]=(e,t,l)=>{y("row-dbl-clicked",e,t,l)}),onRowClicked:H,onRowHovered:a[1]||(a[1]=(e,t,l)=>{y("row-hovered",e,t,l)}),onRowUnhovered:a[2]||(a[2]=(e,t,l)=>{y("row-unhovered",e,t,l)})}),e.createSlots({"custom-body":e.withCtx((a=>[k.value?(e.openBlock(),e.createBlock(h,{key:0,class:e.normalizeClass(["b-table-busy-slot",I.value])},{default:e.withCtx((()=>[e.createVNode(p,{colspan:a.fields.length},{default:e.withCtx((()=>[e.renderSlot(t.$slots,"table-busy",{},(()=>[e.createVNode(l._sfc_main,{show:""},{overlay:e.withCtx((()=>[e.createElementVNode("div",N,[e.createVNode(o._sfc_main),e.createElementVNode("strong",null,e.toDisplayString(e.unref(m).busyLoadingText),1)])])),_:1})]))])),_:2},1032,["colspan"])])),_:2},1032,["class"])):e.createCommentVNode("",!0)])),_:2},[e.renderList(t.$slots,((l,o)=>({name:o,fn:e.withCtx((l=>[e.renderSlot(t.$slots,o,e.normalizeProps(e.guardReactiveProps(l)))]))}))),e.renderList(D.value,(l=>({name:`head(${String(l.key)})`,fn:e.withCtx((o=>{var r,n,s,d;return[e.renderSlot(t.$slots,t.$slots[`head(${String(l.key)})`]?`head(${String(l.key)})`:"head()",e.normalizeProps(e.guardReactiveProps(o)),(()=>[e.createTextVNode(e.toDisplayString(e.unref(B)(l)),1)])),A.value&&o.field.sortable&&!1===e.unref(m).noSortableIcon?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},["asc"===(null==(n=null==(r=b.value)?void 0:r.find((e=>e.key===o.field.key)))?void 0:n.order)?e.renderSlot(t.$slots,t.$slots[`sortAsc(${String(o.field.key)})`]?`sortAsc(${String(o.field.key)})`:"sortAsc()",e.normalizeProps(e.mergeProps({key:0},{...o})),(()=>[a[3]||(a[3]=e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",fill:"currentColor",class:"bi bi-arrow-up-short",viewBox:"0 0 16 16","aria-hidden":""},[e.createElementVNode("path",{"fill-rule":"evenodd",d:"M8 12a.5.5 0 0 0 .5-.5V5.707l2.146 2.147a.5.5 0 0 0 .708-.708l-3-3a.5.5 0 0 0-.708 0l-3 3a.5.5 0 1 0 .708.708L7.5 5.707V11.5a.5.5 0 0 0 .5.5z"})],-1))])):"desc"===(null==(d=null==(s=b.value)?void 0:s.find((e=>e.key===o.field.key)))?void 0:d.order)?e.renderSlot(t.$slots,t.$slots[`sortDesc(${String(o.field.key)})`]?`sortDesc(${String(o.field.key)})`:"sortDesc()",e.normalizeProps(e.mergeProps({key:1},{...o})),(()=>[a[4]||(a[4]=e.createElementVNode("svg",{xmlns:"http://www.w3.org/2000/svg",width:"24",height:"24",fill:"currentColor",class:"bi bi-arrow-down-short",viewBox:"0 0 16 16","aria-hidden":""},[e.createElementVNode("path",{"fill-rule":"evenodd",d:"M8 4a.5.5 0 0 1 .5.5v5.793l2.146-2.147a.5.5 0 0 1 .708.708l-3 3a.5.5 0 0 1-.708 0l-3-3a.5.5 0 1 1 .708-.708L7.5 10.293V4.5A.5.5 0 0 1 8 4z"})],-1))])):e.renderSlot(t.$slots,t.$slots[`sortDefault(${String(o.field.key)})`]?`sortDefault(${String(o.field.key)})`:"sortDefault()",e.normalizeProps(e.mergeProps({key:2},{...o})),(()=>[(e.openBlock(),e.createElementBlock("svg",V,a[5]||(a[5]=[e.createElementVNode("path",{"fill-rule":"evenodd",d:"M8 12a.5.5 0 0 0 .5-.5V5.707l2.146 2.147a.5.5 0 0 0 .708-.708l-3-3a.5.5 0 0 0-.708 0l-3 3a.5.5 0 1 0 .708.708L7.5 5.707V11.5a.5.5 0 0 0 .5.5z"},null,-1)])))]))],64)):e.createCommentVNode("",!0)]}))})))]),1040,["aria-busy","items","fields","table-class"]))}});exports._sfc_main=P,exports._sfc_main$1=x,exports._sfc_main$2=c,exports._sfc_main$3=p,exports._sfc_main$4=m,exports._sfc_main$5=k,exports._sfc_main$6=g,exports._sfc_main$7=h;
2
+ //# sourceMappingURL=BTable.vue_vue_type_script_setup_true_lang-XAhOu66i.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BTable.vue_vue_type_script_setup_true_lang-XAhOu66i.js","sources":["../src/utils/formatItem.ts","../src/types/TableTypes.ts","../src/components/BTable/BTbody.vue","../src/components/BTable/BTd.vue","../src/components/BTable/BTfoot.vue","../src/components/BTable/BTh.vue","../src/components/BTable/BThead.vue","../src/components/BTable/BTr.vue","../src/utils/getTableFieldHeadLabel.ts","../src/utils/filterEvent.ts","../src/components/BTable/BTableLite.vue","../src/components/BTable/BTable.vue"],"sourcesContent":["import type {TableFieldFormatter} from '../types/TableTypes'\nimport {get} from './object'\n\nexport const formatItem = (\n item: unknown,\n // Weakly type fieldKey because it can be a nested string, such as 'foo.bar.baz'\n fieldKey: string,\n formatter?: TableFieldFormatter<unknown>\n) => {\n const val = get(item, fieldKey)\n return formatter && typeof formatter === 'function' ? formatter(val, fieldKey, item) : val\n}\n","import type {StyleValue} from 'vue'\nimport type {ColorVariant} from './ColorTypes'\nimport type {MaybePromise} from './MaybePromise'\nimport type {LiteralUnion} from './LiteralUnion'\nimport type {AttrsValue, ClassValue} from './AnyValuedAttributes'\n\nexport type TableItem<T = Record<string, unknown>> = T & {\n _rowVariant?: ColorVariant | null\n _cellVariants?: Partial<Record<keyof T, ColorVariant>>\n _showDetails?: boolean\n}\n\nexport const isTableItem = (value: unknown): value is TableItem =>\n typeof value === 'object' && value !== null\n\n// undefined means no sorting\nexport type BTableSortByOrder = 'desc' | 'asc' | undefined\n\nexport type BTableSortBy = {\n order: BTableSortByOrder\n key: string\n comparer?: (a: string, b: string) => number\n}\n\nexport type BTableProviderContext = {\n sortBy: BTableSortBy[] | undefined\n filter: string | undefined\n currentPage: number\n perPage: number\n}\n\nexport type BTableProvider<T> = (\n context: Readonly<BTableProviderContext>\n) => MaybePromise<T[] | undefined>\n\nexport type TableFieldFormatter<T> = (value: unknown, key: string, item: T) => string\n\nexport type TableRowType = 'row' | 'row-details' | 'row-top' | 'row-bottom' | 'table-busy'\nexport type TableRowThead = 'top' | 'bottom'\n\nexport type TableStrictClassValue = unknown\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport type TableField<T = any> = {\n key: LiteralUnion<keyof T>\n label?: string\n headerTitle?: string\n headerAbbr?: string\n class?: ClassValue\n formatter?: TableFieldFormatter<T>\n sortable?: boolean\n sortKey?: string\n sortDirection?: string\n sortByFormatted?: boolean | TableFieldFormatter<T>\n filterByFormatted?: boolean | TableFieldFormatter<T>\n tdClass?:\n | TableStrictClassValue\n | ((value: unknown, key: string, item: T) => TableStrictClassValue)\n thClass?: ClassValue\n thStyle?: StyleValue\n variant?: ColorVariant | null\n tdAttr?: AttrsValue | ((value: unknown, key: string, item: T) => AttrsValue)\n thAttr?:\n | AttrsValue\n | ((value: unknown, key: string, item: T | null, type: TableRowThead) => AttrsValue)\n isRowHeader?: boolean\n stickyColumn?: boolean\n}\n\nexport type TableFieldRaw<T = unknown> = T extends object\n ? LiteralUnion<keyof T> | TableField<T>\n : string | TableField\n\nexport const isTableField = <T>(value: unknown): value is TableField<T> =>\n typeof value === 'object' && value !== null && 'key' in value\n\nexport const isTableFieldRaw = <T>(value: unknown): value is TableFieldRaw<T> =>\n typeof value === 'string' || isTableField(value)\n\nexport type NoProviderTypes = 'paging' | 'sorting' | 'filtering'\n","<template>\n <tbody :class=\"computedClasses\">\n <slot />\n </tbody>\n</template>\n\n<script setup lang=\"ts\">\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BTbodyProps} from '../../types/ComponentProps'\nimport {computed} from 'vue'\n\nconst _props = withDefaults(defineProps<BTbodyProps>(), {\n variant: null,\n})\nconst props = useDefaults(_props, 'BTbody')\n\ndefineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n}>()\n\nconst computedClasses = computed(() => ({\n [`thead-${props.variant}`]: props.variant !== null,\n}))\n</script>\n","<template>\n <td\n :scope=\"scope\"\n :class=\"computedClasses\"\n :colspan=\"props.colspan\"\n :rowspan=\"props.rowspan\"\n :data-label=\"props.stackedHeading\"\n >\n <div v-if=\"props.stackedHeading\">\n <slot />\n </div>\n <slot v-else />\n </td>\n</template>\n\n<script setup lang=\"ts\">\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BTdProps} from '../../types/ComponentProps'\nimport {computed} from 'vue'\n\nconst _props = withDefaults(defineProps<BTdProps>(), {\n colspan: undefined,\n rowspan: undefined,\n stackedHeading: undefined,\n stickyColumn: false,\n variant: null,\n})\nconst props = useDefaults(_props, 'BTd')\n\ndefineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n}>()\n\nconst computedClasses = computed(() => ({\n [`table-${props.variant}`]: props.variant !== null,\n 'b-table-sticky-column': props.stickyColumn,\n 'table-b-table-default': props.stickyColumn && props.variant === null,\n}))\n\nconst scope = computed(() => (props.colspan ? 'colspan' : props.rowspan ? 'rowspan' : 'col'))\n</script>\n","<template>\n <tfoot :class=\"computedClasses\">\n <slot />\n </tfoot>\n</template>\n\n<script setup lang=\"ts\">\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BTfootProps} from '../../types/ComponentProps'\nimport {computed} from 'vue'\n\nconst _props = withDefaults(defineProps<BTfootProps>(), {\n variant: null,\n})\nconst props = useDefaults(_props, 'BTfoot')\n\ndefineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n}>()\n\nconst computedClasses = computed(() => ({\n [`table-${props.variant}`]: props.variant !== null,\n}))\n</script>\n","<template>\n <th\n :scope=\"scope\"\n :class=\"computedClasses\"\n :colspan=\"props.colspan\"\n :rowspan=\"props.rowspan\"\n :data-label=\"props.stackedHeading\"\n >\n <div v-if=\"props.stackedHeading !== undefined\">\n <slot />\n </div>\n <slot v-else />\n </th>\n</template>\n\n<script setup lang=\"ts\">\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BThProps} from '../../types/ComponentProps'\nimport {computed} from 'vue'\n\nconst _props = withDefaults(defineProps<BThProps>(), {\n colspan: undefined,\n rowspan: undefined,\n stackedHeading: undefined,\n stickyColumn: false,\n variant: null,\n})\nconst props = useDefaults(_props, 'BTh')\n\ndefineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n}>()\n\nconst computedClasses = computed(() => ({\n [`table-${props.variant}`]: props.variant !== null,\n 'b-table-sticky-column': props.stickyColumn,\n 'table-b-table-default': props.stickyColumn && props.variant === null,\n}))\n\nconst scope = computed(() => (props.colspan ? 'colspan' : props.rowspan ? 'rowspan' : 'col'))\n</script>\n","<template>\n <thead :class=\"computedClasses\">\n <slot />\n </thead>\n</template>\n\n<script setup lang=\"ts\">\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BTheadProps} from '../../types/ComponentProps'\nimport {computed} from 'vue'\n\nconst _props = withDefaults(defineProps<BTheadProps>(), {\n variant: null,\n})\nconst props = useDefaults(_props, 'BThead')\n\ndefineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n}>()\n\nconst computedClasses = computed(() => ({\n [`table-${props.variant}`]: props.variant !== null,\n}))\n</script>\n","<template>\n <tr :class=\"computedClasses\">\n <slot />\n </tr>\n</template>\n\n<script setup lang=\"ts\">\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BTrProps} from '../../types/ComponentProps'\nimport {computed} from 'vue'\n\nconst _props = withDefaults(defineProps<BTrProps>(), {\n variant: null,\n})\nconst props = useDefaults(_props, 'BTr')\n\ndefineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n}>()\n\nconst computedClasses = computed(() => ({\n [`table-${props.variant}`]: props.variant !== null,\n}))\n</script>\n","import {titleCase} from './stringUtils'\nimport type {TableFieldRaw} from '../types/TableTypes'\n\nexport const getTableFieldHeadLabel = (field: Readonly<TableFieldRaw<unknown>>) =>\n typeof field === 'string'\n ? titleCase(field)\n : field.label !== undefined\n ? field.label\n : typeof field.key === 'string'\n ? titleCase(field.key)\n : field.key\n","const TABLE_TAG_NAMES = ['TD', 'TH', 'TR']\n\n// Filter CSS selector for click/dblclick/etc. events\n// If any of these selectors match the clicked element, we ignore the event\nconst eventFilter = [\n 'a',\n 'a *', // Include content inside links\n 'button',\n 'button *', // Include content inside buttons\n 'input:not(.disabled):not([disabled])',\n 'select:not(.disabled):not([disabled])',\n 'textarea:not(.disabled):not([disabled])',\n '[role=\"link\"]',\n '[role=\"link\"] *',\n '[role=\"button\"]',\n '[role=\"button\"] *',\n '[tabindex]:not(.disabled):not([disabled])',\n].join(',')\n\n// Returns `true` if we should ignore the click/double-click/keypress event\n// Avoids having the user need to use `@click.stop` on the form control\nexport const filterEvent = (event: Readonly<Event>) => {\n // Exit early when we don't have a target element\n if (!event || !event.target) {\n return false\n }\n const el = event.target as HTMLElement\n // Exit early when element is disabled or a table element\n if (('disabled' in el && el.disabled) || TABLE_TAG_NAMES.indexOf(el.tagName) !== -1) {\n return false\n }\n // Ignore the click when it was inside a dropdown menu\n if (el.closest('.dropdown-menu')) return true\n\n const label = el.tagName === 'LABEL' ? el : el.closest('label')\n // If the label's form control is not disabled then we don't propagate event\n // Modern browsers have `label.control` that references the associated input, but IE 11\n // does not have this property on the label element, so we resort to DOM lookups\n if (label) {\n const labelFor = label.getAttribute('for')\n const input = labelFor\n ? document.getElementById(labelFor)\n : label.querySelector('input, select, textarea')\n if (input && !(input as HTMLInputElement).disabled) {\n return true\n }\n }\n // Otherwise check if the event target matches one of the selectors in the\n // event filter (i.e. anchors, non disabled inputs, etc.)\n // Return `true` if we should ignore the event\n return el.matches(eventFilter)\n}\n","<template>\n <BTableSimple\n :id=\"props.id\"\n :bordered=\"props.bordered\"\n :borderless=\"props.borderless\"\n :border-variant=\"props.borderVariant\"\n :caption-top=\"props.captionTop\"\n :dark=\"props.dark\"\n :fixed=\"props.fixed\"\n :hover=\"props.hover\"\n :no-border-collapse=\"props.noBorderCollapse\"\n :outlined=\"props.outlined\"\n :responsive=\"props.responsive\"\n :small=\"props.small\"\n :stacked=\"props.stacked\"\n :sticky-header=\"props.stickyHeader\"\n :striped=\"props.striped\"\n :table-class=\"computedTableClasses\"\n :variant=\"props.variant\"\n :striped-columns=\"props.stripedColumns\"\n >\n <BThead v-show=\"showComputedHeaders\" :variant=\"props.headVariant\" :class=\"props.theadClass\">\n <slot v-if=\"$slots['thead-top']\" name=\"thead-top\" />\n <BTr :variant=\"props.headRowVariant\" :class=\"props.theadTrClass\">\n <BTh\n v-for=\"field in computedFields\"\n :key=\"field.key\"\n scope=\"col\"\n :class=\"getFieldColumnClasses(field)\"\n :title=\"field.headerTitle\"\n :variant=\"field.variant\"\n :abbr=\"field.headerAbbr\"\n :style=\"field.thStyle\"\n v-bind=\"callThAttr(null, field, 'top')\"\n @click=\"headerClicked(field, $event)\"\n >\n <slot\n :name=\"$slots[`head(${String(field.key)})`] ? `head(${String(field.key)})` : 'head()'\"\n :label=\"field.label\"\n :column=\"field.key\"\n :field=\"field\"\n :is-foot=\"false\"\n >\n {{ getTableFieldHeadLabel(field) }}\n </slot>\n </BTh>\n </BTr>\n <BTr v-if=\"$slots['thead-sub']\">\n <BTd\n v-for=\"field in computedFields\"\n :key=\"field.key\"\n scope=\"col\"\n :variant=\"field.variant\"\n :class=\"[field.class, field.thClass]\"\n >\n <slot name=\"thead-sub\" :items=\"computedFields\" v-bind=\"field\">\n {{ field.label }}\n </slot>\n </BTd>\n </BTr>\n </BThead>\n <BTbody :class=\"props.tbodyClass\">\n <slot\n name=\"custom-body\"\n :fields=\"computedFields\"\n :items=\"props.items\"\n :columns=\"computedFields.length\"\n >\n <BTr\n v-if=\"!props.stacked && $slots['top-row']\"\n :class=\"getRowClasses(null, 'row-top')\"\n v-bind=\"callTbodyTrAttrs(null, 'row-top')\"\n >\n <slot name=\"top-row\" />\n </BTr>\n\n <template\n v-for=\"(item, itemIndex) in props.items\"\n :key=\"props.primaryKey ? get(item, props.primaryKey) : itemIndex\"\n >\n <BTr\n :class=\"getRowClasses(item, 'row')\"\n :variant=\"isTableItem(item) ? item._rowVariant : undefined\"\n v-bind=\"callTbodyTrAttrs(item, 'row')\"\n @click=\"!filterEvent($event) && emit('row-clicked', item, itemIndex, $event)\"\n @dblclick=\"!filterEvent($event) && emit('row-dbl-clicked', item, itemIndex, $event)\"\n @mouseenter=\"!filterEvent($event) && emit('row-hovered', item, itemIndex, $event)\"\n @mouseleave=\"!filterEvent($event) && emit('row-unhovered', item, itemIndex, $event)\"\n >\n <BTd\n v-for=\"field in computedFields\"\n :key=\"field.key\"\n :variant=\"\n (isTableItem(item) ? item._cellVariants?.[field.key as string] : false)\n ? null\n : field.variant\n \"\n :class=\"getFieldRowClasses(field, item)\"\n v-bind=\"itemAttributes(item, String(field.key), field.tdAttr)\"\n >\n <label v-if=\"props.stacked && props.labelStacked\" class=\"b-table-stacked-label\">\n {{ getTableFieldHeadLabel(field) }}\n </label>\n <slot\n :name=\"\n $slots[`cell(${String(field.key)})`] ? `cell(${String(field.key)})` : 'cell()'\n \"\n :value=\"formatItem(item, String(field.key), field.formatter)\"\n :unformatted=\"get(item, String(field.key))\"\n :index=\"itemIndex\"\n :item=\"item\"\n :field=\"field\"\n :items=\"items\"\n :toggle-details=\"\n () => {\n toggleRowDetails(item)\n }\n \"\n :details-showing=\"isTableItem(item) ? (detailsMap.get(item) ?? false) : false\"\n >\n <template v-if=\"!$slots[`cell(${String(field.key)})`] && !$slots['cell()']\">\n {{ formatItem(item, String(field.key), field.formatter) }}\n </template>\n </slot>\n </BTd>\n </BTr>\n\n <template\n v-if=\"isTableItem(item) && detailsMap.get(item) === true && $slots['row-details']\"\n >\n <BTr aria-hidden=\"true\" role=\"presentation\" class=\"d-none\" />\n <BTr\n :class=\"getRowClasses(item, 'row-details')\"\n :variant=\"item._rowVariant\"\n v-bind=\"callTbodyTrAttrs(item, 'row-details')\"\n >\n <BTd :colspan=\"computedFieldsTotal\" :class=\"detailsTdClass\">\n <slot\n name=\"row-details\"\n :item=\"item\"\n :toggle-details=\"\n () => {\n toggleRowDetails(item)\n }\n \"\n :fields=\"props.fields\"\n :index=\"itemIndex\"\n />\n </BTd>\n </BTr>\n </template>\n </template>\n <BTr v-if=\"props.showEmpty && props.items.length === 0\" class=\"b-table-empty-slot\">\n <BTd :colspan=\"computedFieldsTotal\">\n <slot name=\"empty\" :items=\"props.items\">\n {{ props.emptyText }}\n </slot>\n </BTd>\n </BTr>\n <!-- This class is for specific targetting of this slot element -->\n <BTr\n v-if=\"!props.stacked && $slots['bottom-row']\"\n class=\"bottom-row\"\n :class=\"getRowClasses(null, 'row-bottom')\"\n v-bind=\"callTbodyTrAttrs(null, 'row-bottom')\"\n >\n <slot name=\"bottom-row\" />\n </BTr>\n </slot>\n </BTbody>\n <BTfoot v-if=\"props.footClone\" :variant=\"props.footVariant\" :class=\"props.tfootClass\">\n <BTr :variant=\"props.footRowVariant\" :class=\"props.tfootTrClass\">\n <BTh\n v-for=\"field in computedFields\"\n :key=\"field.key\"\n scope=\"col\"\n :class=\"getFieldColumnClasses(field)\"\n :title=\"field.headerTitle\"\n :abbr=\"field.headerAbbr\"\n :style=\"field.thStyle\"\n :variant=\"field.variant\"\n v-bind=\"callThAttr(null, field, 'bottom')\"\n @click=\"headerClicked(field, $event, true)\"\n >\n <div class=\"d-inline-flex flex-nowrap align-items-center gap-1\">\n <div>\n <slot\n :name=\"\n $slots[`foot(${String(field.key)})`] ? `foot(${String(field.key)})` : 'foot()'\n \"\n :label=\"field.label\"\n :column=\"field.key\"\n :field=\"field\"\n :is-foot=\"true\"\n >\n {{ getTableFieldHeadLabel(field) }}\n </slot>\n </div>\n </div>\n </BTh>\n </BTr>\n </BTfoot>\n <BTfoot v-else-if=\"$slots['custom-foot']\">\n <slot\n name=\"custom-foot\"\n :fields=\"computedFields\"\n :items=\"props.items\"\n :columns=\"computedFields.length\"\n />\n </BTfoot>\n <caption v-if=\"$slots['table-caption'] || props.caption\">\n <slot name=\"table-caption\">\n {{ props.caption }}\n </slot>\n </caption>\n </BTableSimple>\n</template>\n\n<script setup lang=\"ts\" generic=\"T\">\nimport {computed, ref, watch} from 'vue'\nimport type {BTableLiteProps} from '../../types/ComponentProps'\nimport {\n isTableField,\n isTableItem,\n type TableField,\n type TableItem,\n type TableRowThead,\n type TableRowType,\n} from '../../types/TableTypes'\nimport BTableSimple from './BTableSimple.vue'\nimport BTbody from './BTbody.vue'\nimport BTd from './BTd.vue'\nimport BTfoot from './BTfoot.vue'\nimport BTh from './BTh.vue'\nimport BThead from './BThead.vue'\nimport BTr from './BTr.vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {get} from '../../utils/object'\nimport {getTableFieldHeadLabel} from '../../utils/getTableFieldHeadLabel'\nimport {formatItem} from '../../utils/formatItem'\nimport {filterEvent} from '../../utils/filterEvent'\nimport {startCase} from '../../utils/stringUtils'\n\nconst _props = withDefaults(defineProps<BTableLiteProps<T>>(), {\n caption: undefined,\n align: undefined,\n fields: () => [],\n footClone: false,\n items: () => [],\n labelStacked: false,\n showEmpty: false,\n emptyText: 'There are no records to show',\n emptyFilteredText: 'There are no records matching your request', // TODO not implemented\n fieldColumnClass: undefined,\n tbodyTrClass: undefined,\n captionHtml: undefined,\n detailsTdClass: undefined,\n headVariant: undefined,\n headRowVariant: undefined,\n footRowVariant: undefined,\n footVariant: undefined,\n modelValue: undefined,\n primaryKey: undefined,\n tbodyClass: undefined,\n tbodyTrAttrs: undefined,\n tfootClass: undefined,\n tfootTrClass: undefined,\n theadClass: undefined,\n theadTrClass: undefined,\n // BTableSimpleProps props\n borderVariant: undefined,\n tableClass: undefined,\n variant: undefined,\n bordered: undefined,\n borderless: undefined,\n captionTop: undefined,\n dark: undefined,\n hover: undefined,\n id: undefined,\n noBorderCollapse: undefined,\n outlined: undefined,\n fixed: undefined,\n responsive: undefined,\n stacked: undefined,\n striped: undefined,\n stripedColumns: undefined,\n small: undefined,\n stickyHeader: undefined,\n // End BTableSimpleProps props\n})\nconst props = useDefaults(_props, 'BTableLite')\n\nconst emit = defineEmits<{\n 'head-clicked': [key: string, field: TableField<T>, event: MouseEvent, isFooter: boolean]\n 'row-clicked': [item: T, index: number, event: MouseEvent]\n 'row-dbl-clicked': [item: T, index: number, event: MouseEvent]\n 'row-hovered': [item: T, index: number, event: MouseEvent]\n 'row-unhovered': [item: T, index: number, event: MouseEvent]\n}>()\n\nconst generateDetailsItem = (item: TableItem): [object, boolean | undefined] => [\n item,\n item._showDetails,\n]\nconst detailsMap = ref(\n new WeakMap(\n props.items.reduce(\n (acc, el) => {\n if (isTableItem(el)) {\n acc.push(generateDetailsItem(el))\n }\n return acc\n },\n [] as [object, boolean | undefined][]\n )\n )\n)\nwatch(\n () => props.items,\n (items) => {\n items.forEach((item) => {\n if (!isTableItem(item)) return\n const detailsItem = generateDetailsItem(item)\n detailsMap.value.set(detailsItem[0], detailsItem[1])\n })\n },\n {deep: true}\n)\n\nconst computedTableClasses = computed(() => [\n props.tableClass,\n {\n [`align-${props.align}`]: props.align !== undefined,\n },\n])\n\nconst computedFields = computed<(TableField & {_noHeader?: true})[]>(() => {\n if (!props.fields.length && props.items.length) {\n const [firstItem] = props.items\n if (isTableItem(firstItem) || Array.isArray(firstItem)) {\n return Object.keys(firstItem).map((k) => {\n const label = startCase(k)\n return {\n key: k,\n label,\n tdAttr: props.stacked === true ? {'data-label': label} : undefined,\n }\n })\n }\n // The items are primitives, so we just return a single empty field\n // No header will be shown, as we don't know what to show\n return [{key: '', _noHeader: true}]\n }\n\n return props.fields.map((f) => {\n if (isTableField(f)) {\n return {\n ...(f as TableField),\n tdAttr:\n props.stacked === true\n ? {'data-label': startCase(f.key as string), ...f.tdAttr}\n : f.tdAttr,\n }\n }\n const label = startCase(f as string)\n return {\n key: f as string,\n label,\n tdAttr: props.stacked === true ? {'data-label': label} : undefined,\n }\n })\n})\nconst computedFieldsTotal = computed(() => computedFields.value.length)\nconst showComputedHeaders = computed(() => {\n // We only hide the header if all fields have _noHeader set to true. Which would be our doing\n // This usually happens under a circumstance of displaying an array of primitives\n // Under any other circumstance, I'm not sure how this would apply\n if (computedFields.value.length > 0 && computedFields.value.every((el) => el._noHeader === true))\n return false\n return true\n})\n\nconst itemAttributes = (item: T, fieldKey: string, attr?: unknown) => {\n const val = get(item, fieldKey)\n return attr && typeof attr === 'function' ? attr(val, fieldKey, item) : attr\n}\n\nconst callThAttr = (item: T | null, field: TableField<T>, type: TableRowThead) => {\n const fieldKey = String(field.key)\n const val = get(item, fieldKey)\n return field.thAttr && typeof field.thAttr === 'function'\n ? field.thAttr(val, fieldKey, item, type)\n : field.thAttr\n}\n\nconst headerClicked = (field: TableField<T>, event: Readonly<MouseEvent>, isFooter = false) => {\n emit('head-clicked', field.key as string, field, event, isFooter)\n}\n\nconst toggleRowDetails = (tr: T) => {\n if (isTableItem(tr)) {\n const prevValue = detailsMap.value.get(tr)\n detailsMap.value.set(tr, !prevValue)\n tr._showDetails = !prevValue\n }\n}\n\nconst getFieldColumnClasses = (field: TableField) => [\n field.class,\n field.thClass,\n {\n 'b-table-sticky-column': field.stickyColumn,\n },\n props.fieldColumnClass\n ? typeof props.fieldColumnClass === 'function'\n ? props.fieldColumnClass(field)\n : props.fieldColumnClass\n : null,\n]\n\nconst getFieldRowClasses = (field: Readonly<TableField>, tr: T) => {\n const val = get(tr, String(field.key))\n return [\n field.class,\n typeof field.tdClass === 'function' ? field.tdClass(val, String(field.key), tr) : field.tdClass,\n (isTableItem(tr) ? tr._cellVariants?.[field.key as string] : false)\n ? `table-${(tr as TableItem)._cellVariants?.[field.key as string]}`\n : null,\n {\n 'b-table-sticky-column': field.stickyColumn,\n },\n ]\n}\n\nconst callTbodyTrAttrs = (item: T | null, type: TableRowType) =>\n props.tbodyTrAttrs\n ? typeof props.tbodyTrAttrs === 'function'\n ? props.tbodyTrAttrs(item, type)\n : props.tbodyTrAttrs\n : null\n\nconst getRowClasses = (item: T | null, type: TableRowType) =>\n props.tbodyTrClass\n ? typeof props.tbodyTrClass === 'function'\n ? props.tbodyTrClass(item, type)\n : props.tbodyTrClass\n : null\n</script>\n","<template>\n <BTableLite\n v-bind=\"props\"\n :aria-busy=\"busyModel\"\n :items=\"computedDisplayItems\"\n :fields=\"computedFields as TableFieldRaw<T>[]\"\n :table-class=\"tableClasses\"\n :tbody-tr-class=\"getRowClasses\"\n :field-column-class=\"getFieldColumnClasses\"\n @head-clicked=\"onFieldHeadClick\"\n @row-dbl-clicked=\"\n (row: T, index: number, e: MouseEvent) => {\n emit('row-dbl-clicked', row, index, e)\n }\n \"\n @row-clicked=\"onRowClick\"\n @row-hovered=\"\n (row: T, index: number, e: MouseEvent) => {\n emit('row-hovered', row, index, e)\n }\n \"\n @row-unhovered=\"\n (row: T, index: number, e: MouseEvent) => {\n emit('row-unhovered', row, index, e)\n }\n \"\n >\n <template v-for=\"(_, name) in $slots\" #[name]=\"slotData\">\n <slot :name=\"name\" v-bind=\"slotData\" />\n </template>\n <template\n v-for=\"field in computedFields\"\n :key=\"field.key\"\n #[`head(${String(field.key)})`]=\"scope\"\n >\n <slot\n :name=\"$slots[`head(${String(field.key)})`] ? `head(${String(field.key)})` : 'head()'\"\n v-bind=\"scope\"\n >\n {{ getTableFieldHeadLabel(field) }}\n </slot>\n <template v-if=\"isSortable && !!scope.field.sortable && props.noSortableIcon === false\">\n <slot\n v-if=\"sortByModel?.find((el) => el.key === scope.field.key)?.order === 'asc'\"\n v-bind=\"{...scope}\"\n :name=\"\n $slots[`sortAsc(${String(scope.field.key)})`]\n ? `sortAsc(${String(scope.field.key)})`\n : 'sortAsc()'\n \"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"currentColor\"\n class=\"bi bi-arrow-up-short\"\n viewBox=\"0 0 16 16\"\n aria-hidden\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M8 12a.5.5 0 0 0 .5-.5V5.707l2.146 2.147a.5.5 0 0 0 .708-.708l-3-3a.5.5 0 0 0-.708 0l-3 3a.5.5 0 1 0 .708.708L7.5 5.707V11.5a.5.5 0 0 0 .5.5z\"\n />\n </svg>\n </slot>\n <slot\n v-else-if=\"sortByModel?.find((el) => el.key === scope.field.key)?.order === 'desc'\"\n v-bind=\"{...scope}\"\n :name=\"\n $slots[`sortDesc(${String(scope.field.key)})`]\n ? `sortDesc(${String(scope.field.key)})`\n : 'sortDesc()'\n \"\n >\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"currentColor\"\n class=\"bi bi-arrow-down-short\"\n viewBox=\"0 0 16 16\"\n aria-hidden\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M8 4a.5.5 0 0 1 .5.5v5.793l2.146-2.147a.5.5 0 0 1 .708.708l-3 3a.5.5 0 0 1-.708 0l-3-3a.5.5 0 1 1 .708-.708L7.5 10.293V4.5A.5.5 0 0 1 8 4z\"\n />\n </svg>\n </slot>\n <slot\n v-else\n v-bind=\"{...scope}\"\n :name=\"\n $slots[`sortDefault(${String(scope.field.key)})`]\n ? `sortDefault(${String(scope.field.key)})`\n : 'sortDefault()'\n \"\n >\n <svg\n :style=\"{opacity: 0.4}\"\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"24\"\n height=\"24\"\n fill=\"currentColor\"\n class=\"bi bi-arrow-up-short\"\n viewBox=\"0 0 16 16\"\n aria-hidden\n >\n <path\n fill-rule=\"evenodd\"\n d=\"M8 12a.5.5 0 0 0 .5-.5V5.707l2.146 2.147a.5.5 0 0 0 .708-.708l-3-3a.5.5 0 0 0-.708 0l-3 3a.5.5 0 1 0 .708.708L7.5 5.707V11.5a.5.5 0 0 0 .5.5z\"\n />\n </svg>\n </slot>\n </template>\n </template>\n <template #custom-body=\"scope\">\n <BTr v-if=\"busyModel\" class=\"b-table-busy-slot\" :class=\"getBusyRowClasses\">\n <BTd :colspan=\"scope.fields.length\">\n <slot name=\"table-busy\">\n <BOverlay show>\n <template #overlay>\n <div class=\"d-flex align-items-center gap-2 mt-5\">\n <BSpinner />\n <strong>{{ props.busyLoadingText }}</strong>\n </div>\n </template>\n </BOverlay>\n </slot>\n </BTd>\n </BTr>\n </template>\n </BTableLite>\n</template>\n\n<script setup lang=\"ts\" generic=\"T\">\nimport {useToNumber} from '@vueuse/core'\nimport {computed, onMounted, type Ref, ref, watch} from 'vue'\nimport {formatItem} from '../../utils/formatItem'\nimport BOverlay from '../BOverlay/BOverlay.vue'\nimport BSpinner from '../BSpinner/BSpinner.vue'\nimport BTableLite from './BTableLite.vue'\nimport BTd from './BTd.vue'\nimport BTr from './BTr.vue'\nimport {\n type BTableSortBy,\n type BTableSortByOrder,\n isTableField,\n isTableItem,\n type NoProviderTypes,\n type TableField,\n type TableFieldRaw,\n type TableItem,\n type TableRowType,\n type TableStrictClassValue,\n} from '../../types/TableTypes'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BTableProps} from '../../types/ComponentProps'\nimport {get, set} from '../../utils/object'\nimport {startCase} from '../../utils/stringUtils'\nimport {getTableFieldHeadLabel} from '../../utils/getTableFieldHeadLabel'\n\nconst _props = withDefaults(\n defineProps<Omit<BTableProps<T>, 'sortBy' | 'busy' | 'selectedItems'>>(),\n {\n noSortableIcon: false,\n perPage: Number.POSITIVE_INFINITY,\n filter: undefined,\n mustSort: false,\n filterable: undefined,\n provider: undefined,\n noProvider: undefined,\n noProviderPaging: false,\n noProviderSorting: false,\n multisort: false,\n noProviderFiltering: false,\n noLocalSorting: false,\n noSelectOnClick: false,\n selectable: false,\n stickySelect: false,\n selectHead: true,\n selectMode: 'multi',\n selectionVariant: 'primary',\n busyLoadingText: 'Loading...',\n currentPage: 1,\n // BTableLite props\n items: () => [],\n fields: () => [],\n // All others use defaults\n caption: undefined,\n align: undefined,\n footClone: undefined,\n labelStacked: undefined,\n showEmpty: undefined,\n emptyText: undefined,\n emptyFilteredText: undefined,\n fieldColumnClass: undefined,\n tbodyTrClass: undefined,\n captionHtml: undefined,\n detailsTdClass: undefined,\n headVariant: undefined,\n headRowVariant: undefined,\n footRowVariant: undefined,\n footVariant: undefined,\n modelValue: undefined,\n primaryKey: undefined,\n tbodyClass: undefined,\n tfootClass: undefined,\n tfootTrClass: undefined,\n theadClass: undefined,\n theadTrClass: undefined,\n // End BTableLite props\n // BTableSimple props\n borderVariant: undefined,\n variant: undefined,\n bordered: undefined,\n borderless: undefined,\n captionTop: undefined,\n dark: undefined,\n hover: undefined,\n id: undefined,\n noBorderCollapse: undefined,\n outlined: undefined,\n fixed: undefined,\n responsive: undefined,\n stacked: undefined,\n striped: undefined,\n stripedColumns: undefined,\n small: undefined,\n stickyHeader: undefined,\n // End BTableSimple props\n }\n)\nconst props = useDefaults(_props, 'BTable')\n\nconst emit = defineEmits<{\n 'filtered': [value: T[]]\n 'head-clicked': [key: string, field: TableField<T>, event: MouseEvent, isFooter: boolean]\n 'row-clicked': [item: T, index: number, event: MouseEvent]\n 'row-dbl-clicked': [item: T, index: number, event: MouseEvent]\n 'row-hovered': [item: T, index: number, event: MouseEvent]\n 'row-unhovered': [item: T, index: number, event: MouseEvent]\n 'row-selected': [value: T]\n 'row-unselected': [value: T]\n 'sorted': [value: BTableSortBy]\n 'change': [value: T[]]\n}>()\n\nconst sortByModel = defineModel<BTableProps<T>['sortBy']>('sortBy', {\n default: undefined,\n})\nconst busyModel = defineModel<Exclude<BTableProps<T>['busy'], undefined>>('busy', {\n default: false,\n})\nconst selectedItemsModel = defineModel<Exclude<BTableProps<T>['selectedItems'], undefined>>(\n 'selectedItems',\n {\n default: () => [],\n }\n)\n\nconst selectedItemsToSet = computed({\n get: () => new Set([...selectedItemsModel.value]),\n set: (val) => {\n selectedItemsModel.value = [...val]\n },\n})\n/**\n * This is to avoid the issue of directly mutating the array structure and to properly trigger the computed setter.\n * The utils also conveniently emit the proper events after\n */\nconst selectedItemsSetUtilities = {\n add: (item: T) => {\n const value = new Set(selectedItemsToSet.value)\n value.add(item)\n selectedItemsToSet.value = value\n emit('row-selected', item)\n },\n clear: () => {\n selectedItemsToSet.value.forEach((item) => {\n selectedItemsSetUtilities.delete(item)\n })\n },\n delete: (item: T) => {\n const value = new Set(selectedItemsToSet.value)\n if (props.primaryKey) {\n const pkey: string = props.primaryKey\n selectedItemsModel.value.forEach((v, i) => {\n const selectedKey = get(v, pkey)\n const itemKey = get(item, pkey)\n\n if (!!selectedKey && !!itemKey && selectedKey === itemKey) {\n value.delete(selectedItemsModel.value[i])\n }\n })\n } else {\n value.delete(item)\n }\n selectedItemsToSet.value = value\n emit('row-unselected', item)\n },\n set: (items: T[]) => {\n selectedItemsToSet.value = new Set(items)\n selectedItemsToSet.value.forEach((item) => {\n emit('row-unselected', item)\n })\n },\n has: (item: T) => {\n if (!props.primaryKey) return selectedItemsToSet.value.has(item)\n\n // Resolver for when we are using primary keys\n const pkey: string = props.primaryKey\n for (const selected of selectedItemsToSet.value) {\n const selectedKey = get(selected, pkey)\n const itemKey = get(item, pkey)\n\n if (!!selectedKey && !!itemKey && selectedKey === itemKey) return true\n }\n return false\n },\n} as const\n\n/**\n * Only stores data that is fetched when using the provider\n */\nconst internalItems: Ref<T[]> = ref([])\n\nconst perPageNumber = useToNumber(() => props.perPage, {method: 'parseInt'})\nconst currentPageNumber = useToNumber(() => props.currentPage, {method: 'parseInt'})\n\nconst isFilterableTable = computed(() => !!props.filter)\nconst usesProvider = computed(() => props.provider !== undefined)\nconst isSelecting = computed(() => selectedItemsToSet.value.size > 0)\n\nconst isSortable = computed(\n () =>\n sortByModel.value !== undefined ||\n props.fields.some(\n (field) => typeof field === 'object' && field !== null && field.sortable === true\n )\n)\n\nconst computedFields = computed<TableField<T>[]>(() =>\n props.fields.map((el) => {\n if (!isTableField(el)) {\n const label = startCase(el as string)\n return {\n key: el as string,\n label,\n tdAttr: props.stacked === true ? {'data-label': label} : undefined,\n }\n }\n\n const value = sortByModel.value?.find((sb) => el.key === sb.key)\n const sortValue =\n isSortable.value === false\n ? undefined\n : value === undefined\n ? 'none'\n : value.order === 'desc'\n ? 'descending'\n : value.order === 'asc'\n ? 'ascending'\n : 'none'\n\n return {\n ...(el as TableField<T>),\n thAttr: {\n 'aria-sort': sortValue,\n ...el.thAttr,\n },\n }\n })\n)\n\nconst tableClasses = computed(() => ({\n 'b-table-busy': busyModel.value,\n 'b-table-selectable': props.selectable,\n 'user-select-none': props.selectable && isSelecting.value,\n}))\n\nconst getBusyRowClasses = computed(() => [\n props.tbodyTrClass\n ? typeof props.tbodyTrClass === 'function'\n ? props.tbodyTrClass(null, 'table-busy')\n : props.tbodyTrClass\n : null,\n])\nconst getFieldColumnClasses = (field: TableField) => [\n {\n 'b-table-sortable-column': isSortable.value && field.sortable,\n },\n]\n// TODO this class has issues if the table has a variant already applied\n// Also the row should technically have aria-selected . Both things could probably just use a function with tbodyTrAttrs\n// But functional tbodyTrAttrs are not supported yet\n// Also the stuff for resolving functions could probably be made a util\nconst getRowClasses = (item: T | null, type: TableRowType): TableStrictClassValue => [\n {\n [`selected table-${props.selectionVariant}`]:\n props.selectable && !!item && selectedItemsSetUtilities.has(item),\n },\n props.tbodyTrClass\n ? typeof props.tbodyTrClass === 'function'\n ? props.tbodyTrClass(item, type)\n : props.tbodyTrClass\n : null,\n]\n\nconst computedItems = computed<T[]>(() => {\n const sortItems = (items: T[]) => {\n // \"undefined\" values are set by us, we do this so we dont wipe out the comparer\n const sortByItems = sortByModel.value?.filter((el) => !!el.order)\n\n if (!sortByItems || sortByItems.length === 0) return items\n\n // Multi-sort\n return [...items].sort((a, b) => {\n for (let i = 0; i < (sortByItems.length ?? 0); i++) {\n const sortOption = sortByItems[i]\n const realVal = (ob: T): string => {\n if (!isTableItem(ob)) return String(ob)\n\n const sortField = computedFields.value.find((el) => {\n if (isTableField(el)) return el.key === sortOption.key\n\n return false\n })\n const val = get(ob, sortOption.key as keyof TableItem)\n if (isTableField(sortField) && !!sortField.sortByFormatted) {\n const formatter =\n typeof sortField.sortByFormatted === 'function'\n ? sortField.sortByFormatted\n : sortField.formatter\n if (formatter) {\n return formatItem(ob, String(sortField.key), formatter) as string\n }\n }\n return typeof val === 'object' && val !== null\n ? JSON.stringify(val)\n : (val?.toString() ?? '')\n }\n\n const aValue = realVal(a)\n const bValue = realVal(b)\n const comparison = sortOption.comparer\n ? sortOption.comparer(aValue, bValue)\n : aValue.localeCompare(bValue, undefined, {numeric: true})\n\n if (comparison !== 0) {\n return sortOption.order === 'asc' ? comparison : -comparison\n }\n }\n return 0 // items are equal\n })\n }\n\n const filterItems = (items: T[]) =>\n items.filter((item) =>\n isTableItem(item)\n ? Object.entries(item).some(([key, val]) => {\n if (\n val === null ||\n val === undefined ||\n key[0] === '_' ||\n (!props.filterable?.includes(key) && !!props.filterable?.length)\n )\n return false\n const realVal = (): string => {\n const filterField = computedFields.value.find((el) => {\n if (isTableField(el)) return el.key === key\n\n return false\n })\n if (isTableField(filterField) && !!filterField.filterByFormatted) {\n const formatter =\n typeof filterField.filterByFormatted === 'function'\n ? filterField.filterByFormatted\n : filterField.formatter\n if (formatter) {\n return formatter(val, String(filterField.key), item) as string\n }\n }\n return typeof val === 'object' ? JSON.stringify(Object.values(val)) : val.toString()\n }\n const itemValue: string = realVal()\n return itemValue.toLowerCase().includes(props.filter?.toLowerCase() ?? '')\n })\n : true\n )\n\n let mappedItems = usesProvider.value ? internalItems.value : (props.items as T[])\n mappedItems = mappedItems.map((item) => {\n if (\n typeof item === 'object' &&\n item !== null &&\n Object.keys(item).some((key) => key.includes('.'))\n ) {\n // We use any here because the TS doesn't isn't certain that \"item\" is the same type as our newItem.\n // But we've determined that it's an object, so we can ignore it since they will always be the same \"object\"\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let newItem: any = {}\n for (const key in item) {\n if (key.includes('.')) {\n newItem = set(newItem, key, item[key])\n } else {\n newItem[key] = item[key]\n }\n }\n return newItem\n // return\n }\n return item\n })\n\n if (\n (isFilterableTable.value === true && !usesProvider.value) ||\n (isFilterableTable.value === true && usesProvider.value && props.noProviderFiltering)\n ) {\n mappedItems = filterItems(mappedItems)\n }\n\n if (\n (isSortable.value === true && !usesProvider.value && !props.noLocalSorting) ||\n (isSortable.value === true && usesProvider.value && props.noProviderSorting)\n ) {\n mappedItems = sortItems(mappedItems)\n }\n\n return mappedItems\n})\n\nconst computedDisplayItems = computed<T[]>(() => {\n if (Number.isNaN(perPageNumber.value) || (usesProvider.value && !props.noProviderPaging)) {\n return computedItems.value\n }\n\n return computedItems.value.slice(\n (currentPageNumber.value - 1) * (perPageNumber.value || Number.POSITIVE_INFINITY),\n currentPageNumber.value * (perPageNumber.value || Number.POSITIVE_INFINITY)\n )\n})\n\nwatch(computedDisplayItems, (v) => {\n emit('change', v)\n})\n\nconst handleRowSelection = (\n row: T,\n index: number,\n shiftClicked = false,\n ctrlClicked = false,\n metaClicked = false\n) => {\n if (!props.selectable) return\n\n if (props.selectMode === 'single' || props.selectMode === 'multi') {\n // Do nothing when these items are held\n if (shiftClicked || ctrlClicked) return\n // Delete if item is in\n if (selectedItemsSetUtilities.has(row)) {\n selectedItemsSetUtilities.delete(row)\n } else {\n if (props.selectMode === 'single') {\n selectedItemsSetUtilities.set([row])\n } else {\n selectedItemsSetUtilities.add(row)\n }\n }\n } else {\n if (ctrlClicked || metaClicked) {\n // Delete if in the object\n if (selectedItemsSetUtilities.has(row)) {\n selectedItemsSetUtilities.delete(row)\n // Otherwise add. Functions similarly to 'multi' at this point\n } else {\n selectedItemsSetUtilities.add(row)\n }\n // This is where range is different, due to the difference in shift\n } else if (shiftClicked) {\n const lastSelectedItem = [...selectedItemsToSet.value].pop()\n const lastSelectedIndex = props.items.findIndex((i) => i === lastSelectedItem)\n const selectStartIndex = Math.min(lastSelectedIndex, index)\n const selectEndIndex = Math.max(lastSelectedIndex, index)\n const items = props.items.slice(selectStartIndex, selectEndIndex + 1)\n selectedItemsSetUtilities.set(items)\n // If nothing is being held, then we just behave like it's single mode\n } else {\n selectedItemsSetUtilities.set([row])\n }\n }\n}\n\nconst onRowClick = (row: T, index: number, e: MouseEvent) => {\n if (props.noSelectOnClick === false) {\n handleRowSelection(row, index, e.shiftKey, e.ctrlKey, e.metaKey)\n }\n emit('row-clicked', row, index, e)\n}\n\nconst handleFieldSorting = (field: TableField<T>) => {\n if (!isSortable.value) return\n\n const fieldKey = typeof field === 'object' && field !== null ? field.key : field\n const fieldSortable = typeof field === 'object' && field !== null ? field.sortable : false\n\n if (!(isSortable.value === true && fieldSortable === true)) return\n\n const resolveOrder = (val: BTableSortByOrder): BTableSortByOrder | undefined => {\n if (val === 'asc') return 'desc'\n if (val === undefined) return 'asc'\n if (\n props.mustSort === true ||\n (Array.isArray(props.mustSort) && props.mustSort.includes(fieldKey as string))\n )\n return 'asc'\n return undefined\n }\n\n const index = sortByModel.value?.findIndex((el) => el.key === fieldKey) ?? -1\n const originalValue = sortByModel.value?.[index]\n const updatedValue: BTableSortBy =\n // If value is new, we default to ascending\n // Otherwise we make a temp copy of the value\n index === -1 || !originalValue ? {key: fieldKey as string, order: 'asc'} : {...originalValue}\n\n /**\n * @returns the updated value to emit for sorted\n */\n const handleMultiSort = (): BTableSortBy => {\n let val = updatedValue\n if (index === -1) {\n sortByModel.value = [...(sortByModel.value ?? []), updatedValue]\n } else {\n const order = resolveOrder(updatedValue.order)\n val = {...updatedValue, order}\n sortByModel.value = order\n ? sortByModel.value?.map((el) => (el.key === val.key ? val : el))\n : sortByModel.value?.filter((el) => el.key !== val.key)\n }\n return val\n }\n\n /**\n * @returns the updated value to emit for sorted\n */\n const handleSingleSort = (): BTableSortBy => {\n const val = {\n ...updatedValue,\n order: index === -1 ? updatedValue.order : resolveOrder(updatedValue.order),\n }\n sortByModel.value = [val]\n return val\n }\n\n // Then emit the returned updated value\n emit('sorted', props.multisort === true ? handleMultiSort() : handleSingleSort())\n}\n\nconst onFieldHeadClick = (\n fieldKey: string,\n field: TableField<T>,\n event: Readonly<MouseEvent>,\n isFooter = false\n) => {\n emit('head-clicked', fieldKey, field, event, isFooter)\n handleFieldSorting(field)\n}\n\nconst callItemsProvider = async () => {\n if (!usesProvider.value || props.provider === undefined || busyModel.value) return\n busyModel.value = true\n const response = props.provider({\n currentPage: currentPageNumber.value,\n filter: props.filter,\n sortBy: sortByModel.value,\n perPage: perPageNumber.value,\n })\n try {\n const items = response instanceof Promise ? await response : response\n\n if (items === undefined) return\n internalItems.value = items\n } finally {\n // Potential race condition could occur if the user explicitly sets the busy value to a different value while the response promise is executing\n // which would have been the users choice.\n // eslint-disable-next-line require-atomic-updates\n busyModel.value = false\n }\n}\n\nconst providerPropsWatch = async (prop: string, val: unknown, oldVal: unknown) => {\n if (val === oldVal) return\n\n //stop provide when paging\n const inNoProvider = (key: NoProviderTypes) => props.noProvider?.includes(key) === true\n const noProvideWhenPaging =\n (prop === 'currentPage' || prop === 'perPage') &&\n (inNoProvider('paging') || props.noProviderPaging === true)\n const noProvideWhenFiltering =\n prop === 'filter' && (inNoProvider('filtering') || props.noProviderFiltering === true)\n const noProvideWhenSorting =\n (prop === 'sortBy' || prop === 'sortDesc') &&\n (inNoProvider('sorting') || props.noProviderSorting === true)\n\n if (noProvideWhenPaging || noProvideWhenFiltering || noProvideWhenSorting) return\n\n if (usesProvider.value === true) {\n await callItemsProvider()\n }\n\n if (!(prop === 'currentPage' || prop === 'perPage')) {\n emit('filtered', [...computedItems.value])\n }\n}\n\nwatch(\n () => props.filter,\n (filter, oldFilter) => {\n providerPropsWatch('filter', filter, oldFilter)\n\n if (filter === oldFilter || usesProvider.value) return\n if (!filter) {\n emit('filtered', [...computedItems.value])\n }\n }\n)\nwatch(currentPageNumber, (val, oldVal) => {\n providerPropsWatch('currentPage', val, oldVal)\n})\nwatch(perPageNumber, (val, oldVal) => {\n providerPropsWatch('perPage', val, oldVal)\n})\nwatch(\n sortByModel,\n (val, oldVal) => {\n providerPropsWatch('sortBy', val, oldVal)\n },\n {deep: true}\n)\n\nwatch(\n () => props.provider,\n (newValue) => {\n // Reset the internal values if the provider stops getting used\n if (newValue === undefined) {\n internalItems.value = []\n return\n }\n // Otherwise we should refresh the table on such a change\n callItemsProvider()\n }\n)\n\nonMounted(callItemsProvider)\n\ndefineExpose({\n // The row selection methods are really for compat. Users should probably use the v-model though\n clearSelected: () => {\n if (!props.selectable) return\n selectedItemsSetUtilities.clear()\n },\n refresh: callItemsProvider,\n selectAllRows: () => {\n if (!props.selectable) return\n const unselectableItems = selectedItemsToSet.value.size > 0 ? [...selectedItemsToSet.value] : []\n selectedItemsToSet.value = new Set([...computedItems.value])\n selectedItemsToSet.value.forEach((item) => {\n if (unselectableItems.includes(item)) return\n emit('row-selected', item)\n })\n },\n selectRow: (index: number) => {\n if (!props.selectable) return\n const item = computedItems.value[index]\n if (!item || selectedItemsSetUtilities.has(item)) return\n selectedItemsSetUtilities.add(item)\n },\n unselectRow: (index: number) => {\n if (!props.selectable) return\n const item = computedItems.value[index]\n if (!item || !selectedItemsSetUtilities.has(item)) return\n selectedItemsSetUtilities.delete(item)\n },\n isRowSelected: (index: number) => {\n if (!props.selectable) return false\n const item = computedItems.value[index]\n return selectedItemsSetUtilities.has(item)\n },\n})\n</script>\n"],"names":["formatItem","item","fieldKey","formatter","val","get","isTableItem","value","isTableField","_props","__props","props","useDefaults","computedClasses","computed","variant","stickyColumn","scope","colspan","rowspan","getTableFieldHeadLabel","field","titleCase","label","key","TABLE_TAG_NAMES","eventFilter","join","filterEvent","event","target","el","disabled","indexOf","tagName","closest","labelFor","getAttribute","input","document","getElementById","querySelector","matches","emit","__emit","generateDetailsItem","_showDetails","detailsMap","ref","WeakMap","items","reduce","acc","push","vue","watch","forEach","detailsItem","set","deep","computedTableClasses","tableClass","align","computedFields","fields","length","firstItem","Array","isArray","Object","keys","map","k","startCase","tdAttr","stacked","_noHeader","f","computedFieldsTotal","showComputedHeaders","every","callThAttr","type","String","thAttr","headerClicked","isFooter","toggleRowDetails","tr","prevValue","getFieldColumnClasses","class","thClass","fieldColumnClass","getFieldRowClasses","tdClass","_a","_cellVariants","_b","callTbodyTrAttrs","tbodyTrAttrs","getRowClasses","tbodyTrClass","attr","sortByModel","_useModel","busyModel","selectedItemsModel","useModel","selectedItemsToSet","Set","selectedItemsSetUtilities","add","clear","delete","primaryKey","pkey","v","i","selectedKey","itemKey","has","selected","internalItems","perPageNumber","useToNumber","perPage","method","currentPageNumber","currentPage","isFilterableTable","filter","usesProvider","provider","isSelecting","size","isSortable","some","sortable","find","sb","sortValue","order","tableClasses","selectable","getBusyRowClasses","selectionVariant","computedItems","mappedItems","includes","newItem","noProviderFiltering","entries","filterable","filterField","filterByFormatted","JSON","stringify","values","toString","realVal","toLowerCase","_c","noLocalSorting","noProviderSorting","sortByItems","sort","a","b","sortOption","ob","sortField","sortByFormatted","aValue","bValue","comparison","comparer","localeCompare","numeric","sortItems","computedDisplayItems","Number","isNaN","noProviderPaging","slice","POSITIVE_INFINITY","onRowClick","row","index","e","noSelectOnClick","shiftClicked","ctrlClicked","metaClicked","selectMode","lastSelectedItem","pop","lastSelectedIndex","findIndex","selectStartIndex","Math","min","selectEndIndex","max","handleRowSelection","shiftKey","ctrlKey","metaKey","onFieldHeadClick","fieldSortable","resolveOrder","mustSort","originalValue","updatedValue","multisort","handleMultiSort","handleSingleSort","handleFieldSorting","callItemsProvider","async","response","sortBy","Promise","providerPropsWatch","prop","oldVal","inNoProvider","noProvider","noProvideWhenPaging","noProvideWhenFiltering","noProvideWhenSorting","oldFilter","newValue","onMounted","__expose","clearSelected","refresh","selectAllRows","unselectableItems","selectRow","unselectRow","isRowSelected"],"mappings":"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"}
@@ -0,0 +1,88 @@
1
+ import { defineComponent, computed, openBlock, createElementBlock, normalizeClass, normalizeStyle, createElementVNode, normalizeProps, guardReactiveProps, renderSlot, mergeProps } from "vue";
2
+ import { u as useDefaults } from "./useDefaults-BYx9NNxn.mjs";
3
+ import { u as useNumberishToStyle } from "./useNumberishToStyle-BWrWARZP.mjs";
4
+ const defaultStickyHeaderHeight = "300px";
5
+ const _sfc_main = /* @__PURE__ */ defineComponent({
6
+ __name: "BTableSimple",
7
+ props: {
8
+ bordered: { type: Boolean, default: false },
9
+ borderless: { type: Boolean, default: false },
10
+ borderVariant: { default: null },
11
+ captionTop: { type: Boolean, default: false },
12
+ dark: { type: Boolean, default: false },
13
+ fixed: { type: Boolean, default: false },
14
+ hover: { type: Boolean, default: false },
15
+ id: { default: void 0 },
16
+ noBorderCollapse: { type: Boolean, default: false },
17
+ outlined: { type: Boolean, default: false },
18
+ responsive: { type: [Boolean, String], default: false },
19
+ small: { type: Boolean, default: false },
20
+ stacked: { type: [Boolean, String], default: false },
21
+ stickyHeader: { type: [Boolean, String, Number], default: false },
22
+ striped: { type: Boolean, default: false },
23
+ stripedColumns: { type: Boolean, default: false },
24
+ variant: { default: null },
25
+ tableAttrs: { default: void 0 },
26
+ tableClass: { default: void 0 }
27
+ },
28
+ setup(__props) {
29
+ const _props = __props;
30
+ const props = useDefaults(_props, "BTableSimple");
31
+ const computedClasses = computed(() => [
32
+ props.tableClass,
33
+ "table",
34
+ "b-table",
35
+ {
36
+ "table-bordered": props.bordered,
37
+ "table-borderless": props.borderless,
38
+ [`border-${props.borderVariant}`]: props.borderVariant !== null,
39
+ "caption-top": props.captionTop,
40
+ "table-dark": props.dark,
41
+ "table-hover": props.hover,
42
+ "b-table-stacked": props.stacked === true,
43
+ [`b-table-stacked-${props.stacked}`]: typeof props.stacked === "string",
44
+ "table-striped": props.striped,
45
+ "table-sm": props.small,
46
+ [`table-${props.variant}`]: props.variant !== null,
47
+ "table-striped-columns": props.stripedColumns
48
+ }
49
+ ]);
50
+ const computedTableAttrs = computed(() => ({
51
+ id: props.id,
52
+ class: computedClasses.value,
53
+ ...props.tableAttrs
54
+ }));
55
+ const computedSticky = useNumberishToStyle(
56
+ computed(
57
+ () => (props.stickyHeader === true ? defaultStickyHeaderHeight : props.stickyHeader) || NaN
58
+ )
59
+ );
60
+ const stickyIsValid = computed(() => props.stickyHeader !== false);
61
+ const isResponsive = computed(() => props.responsive !== false || stickyIsValid.value);
62
+ const responsiveStyles = computed(
63
+ () => stickyIsValid.value ? { maxHeight: computedSticky.value } : void 0
64
+ );
65
+ const responsiveClasses = computed(() => ({
66
+ "table-responsive": props.responsive === true,
67
+ [`table-responsive-${props.responsive}`]: typeof props.responsive === "string",
68
+ "b-table-sticky-header": stickyIsValid.value
69
+ }));
70
+ return (_ctx, _cache) => {
71
+ return isResponsive.value ? (openBlock(), createElementBlock("div", {
72
+ key: 0,
73
+ class: normalizeClass(responsiveClasses.value),
74
+ style: normalizeStyle(responsiveStyles.value)
75
+ }, [
76
+ createElementVNode("table", normalizeProps(guardReactiveProps(computedTableAttrs.value)), [
77
+ renderSlot(_ctx.$slots, "default")
78
+ ], 16)
79
+ ], 6)) : (openBlock(), createElementBlock("table", normalizeProps(mergeProps({ key: 1 }, computedTableAttrs.value)), [
80
+ renderSlot(_ctx.$slots, "default")
81
+ ], 16));
82
+ };
83
+ }
84
+ });
85
+ export {
86
+ _sfc_main as _
87
+ };
88
+ //# sourceMappingURL=BTableSimple.vue_vue_type_script_setup_true_lang-B4mLJ-Gd.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BTableSimple.vue_vue_type_script_setup_true_lang-B4mLJ-Gd.mjs","sources":["../src/components/BTable/BTableSimple.vue"],"sourcesContent":["<template>\n <!-- tables definitions are shared. Can't use createReusableTemplate cause it becomes a non-root node -->\n <div v-if=\"isResponsive\" :class=\"responsiveClasses\" :style=\"responsiveStyles\">\n <table v-bind=\"computedTableAttrs\">\n <slot />\n </table>\n </div>\n <table v-else v-bind=\"computedTableAttrs\">\n <slot />\n </table>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, type StyleValue} from 'vue'\nimport type {BTableSimpleProps} from '../../types/ComponentProps'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useNumberishToStyle} from '../../composables/useNumberishToStyle'\n\nconst defaultStickyHeaderHeight = '300px'\n\nconst _props = withDefaults(defineProps<BTableSimpleProps>(), {\n borderVariant: null,\n tableClass: undefined,\n variant: null,\n bordered: false,\n borderless: false,\n captionTop: false,\n dark: false,\n hover: false,\n id: undefined,\n noBorderCollapse: false,\n outlined: false,\n fixed: false,\n responsive: false,\n stacked: false,\n striped: false,\n stripedColumns: false,\n small: false,\n stickyHeader: false,\n tableAttrs: undefined,\n})\nconst props = useDefaults(_props, 'BTableSimple')\n\ndefineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n}>()\n\nconst computedClasses = computed(() => [\n props.tableClass,\n 'table',\n 'b-table',\n {\n 'table-bordered': props.bordered,\n 'table-borderless': props.borderless,\n [`border-${props.borderVariant}`]: props.borderVariant !== null,\n 'caption-top': props.captionTop,\n 'table-dark': props.dark,\n 'table-hover': props.hover,\n 'b-table-stacked': props.stacked === true,\n [`b-table-stacked-${props.stacked}`]: typeof props.stacked === 'string',\n 'table-striped': props.striped,\n 'table-sm': props.small,\n [`table-${props.variant}`]: props.variant !== null,\n 'table-striped-columns': props.stripedColumns,\n },\n])\nconst computedTableAttrs = computed(() => ({\n id: props.id,\n class: computedClasses.value,\n ...props.tableAttrs,\n}))\n\nconst computedSticky = useNumberishToStyle(\n computed(\n () => (props.stickyHeader === true ? defaultStickyHeaderHeight : props.stickyHeader) || NaN\n )\n)\nconst stickyIsValid = computed(() => props.stickyHeader !== false)\n\nconst isResponsive = computed(() => props.responsive !== false || stickyIsValid.value)\nconst responsiveStyles = computed<StyleValue | undefined>(() =>\n stickyIsValid.value ? {maxHeight: computedSticky.value} : undefined\n)\nconst responsiveClasses = computed(() => ({\n 'table-responsive': props.responsive === true,\n [`table-responsive-${props.responsive}`]: typeof props.responsive === 'string',\n 'b-table-sticky-header': stickyIsValid.value,\n}))\n</script>\n"],"names":[],"mappings":";;;AAkBA,MAAM,4BAA4B;;;;;;;;;;;;;;;;;;;;;;;;;AAElC,UAAM,SAAS;AAqBT,UAAA,QAAQ,YAAY,QAAQ,cAAc;AAO1C,UAAA,kBAAkB,SAAS,MAAM;AAAA,MACrC,MAAM;AAAA,MACN;AAAA,MACA;AAAA,MACA;AAAA,QACE,kBAAkB,MAAM;AAAA,QACxB,oBAAoB,MAAM;AAAA,QAC1B,CAAC,UAAU,MAAM,aAAa,EAAE,GAAG,MAAM,kBAAkB;AAAA,QAC3D,eAAe,MAAM;AAAA,QACrB,cAAc,MAAM;AAAA,QACpB,eAAe,MAAM;AAAA,QACrB,mBAAmB,MAAM,YAAY;AAAA,QACrC,CAAC,mBAAmB,MAAM,OAAO,EAAE,GAAG,OAAO,MAAM,YAAY;AAAA,QAC/D,iBAAiB,MAAM;AAAA,QACvB,YAAY,MAAM;AAAA,QAClB,CAAC,SAAS,MAAM,OAAO,EAAE,GAAG,MAAM,YAAY;AAAA,QAC9C,yBAAyB,MAAM;AAAA,MACjC;AAAA,IAAA,CACD;AACK,UAAA,qBAAqB,SAAS,OAAO;AAAA,MACzC,IAAI,MAAM;AAAA,MACV,OAAO,gBAAgB;AAAA,MACvB,GAAG,MAAM;AAAA,IACT,EAAA;AAEF,UAAM,iBAAiB;AAAA,MACrB;AAAA,QACE,OAAO,MAAM,iBAAiB,OAAO,4BAA4B,MAAM,iBAAiB;AAAA,MAC1F;AAAA,IAAA;AAEF,UAAM,gBAAgB,SAAS,MAAM,MAAM,iBAAiB,KAAK;AAEjE,UAAM,eAAe,SAAS,MAAM,MAAM,eAAe,SAAS,cAAc,KAAK;AACrF,UAAM,mBAAmB;AAAA,MAAiC,MACxD,cAAc,QAAQ,EAAC,WAAW,eAAe,MAAS,IAAA;AAAA,IAAA;AAEtD,UAAA,oBAAoB,SAAS,OAAO;AAAA,MACxC,oBAAoB,MAAM,eAAe;AAAA,MACzC,CAAC,oBAAoB,MAAM,UAAU,EAAE,GAAG,OAAO,MAAM,eAAe;AAAA,MACtE,yBAAyB,cAAc;AAAA,IACvC,EAAA;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,2 @@
1
+ "use strict";const e=require("vue"),t=require("./useDefaults-Cd8OVIUI.js"),a=require("./useNumberishToStyle-CUqOYwz3.js"),l=e.defineComponent({__name:"BTableSimple",props:{bordered:{type:Boolean,default:!1},borderless:{type:Boolean,default:!1},borderVariant:{default:null},captionTop:{type:Boolean,default:!1},dark:{type:Boolean,default:!1},fixed:{type:Boolean,default:!1},hover:{type:Boolean,default:!1},id:{default:void 0},noBorderCollapse:{type:Boolean,default:!1},outlined:{type:Boolean,default:!1},responsive:{type:[Boolean,String],default:!1},small:{type:Boolean,default:!1},stacked:{type:[Boolean,String],default:!1},stickyHeader:{type:[Boolean,String,Number],default:!1},striped:{type:Boolean,default:!1},stripedColumns:{type:Boolean,default:!1},variant:{default:null},tableAttrs:{default:void 0},tableClass:{default:void 0}},setup(l){const o=l,r=t.useDefaults(o,"BTableSimple"),s=e.computed((()=>[r.tableClass,"table","b-table",{"table-bordered":r.bordered,"table-borderless":r.borderless,[`border-${r.borderVariant}`]:null!==r.borderVariant,"caption-top":r.captionTop,"table-dark":r.dark,"table-hover":r.hover,"b-table-stacked":!0===r.stacked,[`b-table-stacked-${r.stacked}`]:"string"==typeof r.stacked,"table-striped":r.striped,"table-sm":r.small,[`table-${r.variant}`]:null!==r.variant,"table-striped-columns":r.stripedColumns}])),d=e.computed((()=>({id:r.id,class:s.value,...r.tableAttrs}))),n=a.useNumberishToStyle(e.computed((()=>(!0===r.stickyHeader?"300px":r.stickyHeader)||NaN))),u=e.computed((()=>!1!==r.stickyHeader)),i=e.computed((()=>!1!==r.responsive||u.value)),p=e.computed((()=>u.value?{maxHeight:n.value}:void 0)),b=e.computed((()=>({"table-responsive":!0===r.responsive,[`table-responsive-${r.responsive}`]:"string"==typeof r.responsive,"b-table-sticky-header":u.value})));return(t,a)=>i.value?(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(b.value),style:e.normalizeStyle(p.value)},[e.createElementVNode("table",e.normalizeProps(e.guardReactiveProps(d.value)),[e.renderSlot(t.$slots,"default")],16)],6)):(e.openBlock(),e.createElementBlock("table",e.normalizeProps(e.mergeProps({key:1},d.value)),[e.renderSlot(t.$slots,"default")],16))}});exports._sfc_main=l;
2
+ //# sourceMappingURL=BTableSimple.vue_vue_type_script_setup_true_lang-iOO_ebGw.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BTableSimple.vue_vue_type_script_setup_true_lang-iOO_ebGw.js","sources":["../src/components/BTable/BTableSimple.vue"],"sourcesContent":["<template>\n <!-- tables definitions are shared. Can't use createReusableTemplate cause it becomes a non-root node -->\n <div v-if=\"isResponsive\" :class=\"responsiveClasses\" :style=\"responsiveStyles\">\n <table v-bind=\"computedTableAttrs\">\n <slot />\n </table>\n </div>\n <table v-else v-bind=\"computedTableAttrs\">\n <slot />\n </table>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, type StyleValue} from 'vue'\nimport type {BTableSimpleProps} from '../../types/ComponentProps'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useNumberishToStyle} from '../../composables/useNumberishToStyle'\n\nconst defaultStickyHeaderHeight = '300px'\n\nconst _props = withDefaults(defineProps<BTableSimpleProps>(), {\n borderVariant: null,\n tableClass: undefined,\n variant: null,\n bordered: false,\n borderless: false,\n captionTop: false,\n dark: false,\n hover: false,\n id: undefined,\n noBorderCollapse: false,\n outlined: false,\n fixed: false,\n responsive: false,\n stacked: false,\n striped: false,\n stripedColumns: false,\n small: false,\n stickyHeader: false,\n tableAttrs: undefined,\n})\nconst props = useDefaults(_props, 'BTableSimple')\n\ndefineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n}>()\n\nconst computedClasses = computed(() => [\n props.tableClass,\n 'table',\n 'b-table',\n {\n 'table-bordered': props.bordered,\n 'table-borderless': props.borderless,\n [`border-${props.borderVariant}`]: props.borderVariant !== null,\n 'caption-top': props.captionTop,\n 'table-dark': props.dark,\n 'table-hover': props.hover,\n 'b-table-stacked': props.stacked === true,\n [`b-table-stacked-${props.stacked}`]: typeof props.stacked === 'string',\n 'table-striped': props.striped,\n 'table-sm': props.small,\n [`table-${props.variant}`]: props.variant !== null,\n 'table-striped-columns': props.stripedColumns,\n },\n])\nconst computedTableAttrs = computed(() => ({\n id: props.id,\n class: computedClasses.value,\n ...props.tableAttrs,\n}))\n\nconst computedSticky = useNumberishToStyle(\n computed(\n () => (props.stickyHeader === true ? defaultStickyHeaderHeight : props.stickyHeader) || NaN\n )\n)\nconst stickyIsValid = computed(() => props.stickyHeader !== false)\n\nconst isResponsive = computed(() => props.responsive !== false || stickyIsValid.value)\nconst responsiveStyles = computed<StyleValue | undefined>(() =>\n stickyIsValid.value ? {maxHeight: computedSticky.value} : undefined\n)\nconst responsiveClasses = computed(() => ({\n 'table-responsive': props.responsive === true,\n [`table-responsive-${props.responsive}`]: typeof props.responsive === 'string',\n 'b-table-sticky-header': stickyIsValid.value,\n}))\n</script>\n"],"names":["_props","__props","props","useDefaults","computedClasses","computed","tableClass","bordered","borderless","borderVariant","captionTop","dark","hover","stacked","striped","small","variant","stripedColumns","computedTableAttrs","id","class","value","tableAttrs","computedSticky","useNumberishToStyle","stickyHeader","NaN","stickyIsValid","isResponsive","responsive","responsiveStyles","maxHeight","responsiveClasses"],"mappings":"20BAoBA,MAAMA,EAASC,EAqBTC,EAAQC,EAAAA,YAAYH,EAAQ,gBAO5BI,EAAkBC,EAAAA,UAAS,IAAM,CACrCH,EAAMI,WACN,QACA,UACA,CACE,iBAAkBJ,EAAMK,SACxB,mBAAoBL,EAAMM,WAC1B,CAAC,UAAUN,EAAMO,iBAA0C,OAAxBP,EAAMO,cACzC,cAAeP,EAAMQ,WACrB,aAAcR,EAAMS,KACpB,cAAeT,EAAMU,MACrB,mBAAqC,IAAlBV,EAAMW,QACzB,CAAC,mBAAmBX,EAAMW,WAAqC,iBAAlBX,EAAMW,QACnD,gBAAiBX,EAAMY,QACvB,WAAYZ,EAAMa,MAClB,CAAC,SAASb,EAAMc,WAA8B,OAAlBd,EAAMc,QAClC,wBAAyBd,EAAMe,mBAG7BC,EAAqBb,EAAAA,UAAS,KAAO,CACzCc,GAAIjB,EAAMiB,GACVC,MAAOhB,EAAgBiB,SACpBnB,EAAMoB,eAGLC,EAAiBC,EAAAA,oBACrBnB,EAAAA,UACE,MAA8B,IAAvBH,EAAMuB,aAzDiB,QAyDmCvB,EAAMuB,eAAiBC,OAGtFC,EAAgBtB,EAAAA,UAAS,KAA6B,IAAvBH,EAAMuB,eAErCG,EAAevB,EAASA,UAAA,KAA2B,IAArBH,EAAM2B,YAAwBF,EAAcN,QAC1ES,EAAmBzB,EAAAA,UAAiC,IACxDsB,EAAcN,MAAQ,CAACU,UAAWR,EAAeF,YAAS,IAEtDW,EAAoB3B,EAAAA,UAAS,KAAO,CACxC,oBAAyC,IAArBH,EAAM2B,WAC1B,CAAC,oBAAoB3B,EAAM2B,cAA2C,iBAArB3B,EAAM2B,WACvD,wBAAyBF,EAAcN"}