bootstrap-vue-next 0.25.12 → 0.25.14
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.
- package/dist/{BAccordionItem.vue_vue_type_script_setup_true_lang-D9YjTRCX.js → BAccordionItem.vue_vue_type_script_setup_true_lang-1GDL3vr-.js} +2 -2
- package/dist/{BAccordionItem.vue_vue_type_script_setup_true_lang-D9YjTRCX.js.map → BAccordionItem.vue_vue_type_script_setup_true_lang-1GDL3vr-.js.map} +1 -1
- package/dist/{BAccordionItem.vue_vue_type_script_setup_true_lang-CoqPu-3M.mjs → BAccordionItem.vue_vue_type_script_setup_true_lang-DZBo9eMJ.mjs} +2 -2
- package/dist/{BAccordionItem.vue_vue_type_script_setup_true_lang-CoqPu-3M.mjs.map → BAccordionItem.vue_vue_type_script_setup_true_lang-DZBo9eMJ.mjs.map} +1 -1
- package/dist/{BAlert-P_IB7iko.js → BAlert-DsaBZc23.js} +2 -2
- package/dist/{BAlert-P_IB7iko.js.map → BAlert-DsaBZc23.js.map} +1 -1
- package/dist/{BAlert-DRD6Q3cQ.mjs → BAlert-yDDvNnHT.mjs} +3 -3
- package/dist/{BAlert-DRD6Q3cQ.mjs.map → BAlert-yDDvNnHT.mjs.map} +1 -1
- package/dist/{BAvatarGroup.vue_vue_type_script_setup_true_lang-U1HdwmLV.mjs → BAvatarGroup.vue_vue_type_script_setup_true_lang-Dk7uwBEF.mjs} +3 -3
- package/dist/{BAvatarGroup.vue_vue_type_script_setup_true_lang-U1HdwmLV.mjs.map → BAvatarGroup.vue_vue_type_script_setup_true_lang-Dk7uwBEF.mjs.map} +1 -1
- package/dist/{BAvatarGroup.vue_vue_type_script_setup_true_lang-k3Cvn-sv.js → BAvatarGroup.vue_vue_type_script_setup_true_lang-kYztrVvA.js} +2 -2
- package/dist/{BAvatarGroup.vue_vue_type_script_setup_true_lang-k3Cvn-sv.js.map → BAvatarGroup.vue_vue_type_script_setup_true_lang-kYztrVvA.js.map} +1 -1
- package/dist/{BButton.vue_vue_type_script_setup_true_lang-BdSl6KfQ.mjs → BButton.vue_vue_type_script_setup_true_lang-BgQ4EhEV.mjs} +2 -2
- package/dist/{BButton.vue_vue_type_script_setup_true_lang-BdSl6KfQ.mjs.map → BButton.vue_vue_type_script_setup_true_lang-BgQ4EhEV.mjs.map} +1 -1
- package/dist/{BButton.vue_vue_type_script_setup_true_lang-CJw5OVdo.js → BButton.vue_vue_type_script_setup_true_lang-CE6qvsTI.js} +2 -2
- package/dist/{BButton.vue_vue_type_script_setup_true_lang-CJw5OVdo.js.map → BButton.vue_vue_type_script_setup_true_lang-CE6qvsTI.js.map} +1 -1
- package/dist/{BCard.vue_vue_type_script_setup_true_lang-DLDdxVe_.js → BCard.vue_vue_type_script_setup_true_lang-BqdbfWMb.js} +2 -2
- package/dist/{BCard.vue_vue_type_script_setup_true_lang-DLDdxVe_.js.map → BCard.vue_vue_type_script_setup_true_lang-BqdbfWMb.js.map} +1 -1
- package/dist/{BCard.vue_vue_type_script_setup_true_lang-CX1FMcek.mjs → BCard.vue_vue_type_script_setup_true_lang-D6Igu7rn.mjs} +2 -2
- package/dist/{BCard.vue_vue_type_script_setup_true_lang-CX1FMcek.mjs.map → BCard.vue_vue_type_script_setup_true_lang-D6Igu7rn.mjs.map} +1 -1
- package/dist/{BCarouselSlide.vue_vue_type_script_setup_true_lang-DOIhFGe-.mjs → BCarouselSlide.vue_vue_type_script_setup_true_lang-39Cf6kIO.mjs} +2 -2
- package/dist/{BCarouselSlide.vue_vue_type_script_setup_true_lang-DOIhFGe-.mjs.map → BCarouselSlide.vue_vue_type_script_setup_true_lang-39Cf6kIO.mjs.map} +1 -1
- package/dist/{BCarouselSlide.vue_vue_type_script_setup_true_lang-DcmVPeu1.js → BCarouselSlide.vue_vue_type_script_setup_true_lang-DfPYIRXv.js} +2 -2
- package/dist/{BCarouselSlide.vue_vue_type_script_setup_true_lang-DcmVPeu1.js.map → BCarouselSlide.vue_vue_type_script_setup_true_lang-DfPYIRXv.js.map} +1 -1
- package/dist/{BCollapse.vue_vue_type_script_setup_true_lang-3jB06xjh.js → BCollapse.vue_vue_type_script_setup_true_lang-Bga8wCsA.js} +2 -2
- package/dist/{BCollapse.vue_vue_type_script_setup_true_lang-3jB06xjh.js.map → BCollapse.vue_vue_type_script_setup_true_lang-Bga8wCsA.js.map} +1 -1
- package/dist/{BCollapse.vue_vue_type_script_setup_true_lang-DvEpGRxZ.mjs → BCollapse.vue_vue_type_script_setup_true_lang-DziCIQzt.mjs} +2 -2
- package/dist/{BCollapse.vue_vue_type_script_setup_true_lang-DvEpGRxZ.mjs.map → BCollapse.vue_vue_type_script_setup_true_lang-DziCIQzt.mjs.map} +1 -1
- package/dist/{BDropdown.vue_vue_type_script_setup_true_lang-Dx8FFIw7.js → BDropdown.vue_vue_type_script_setup_true_lang-BK6sfMpo.js} +2 -2
- package/dist/{BDropdown.vue_vue_type_script_setup_true_lang-Dx8FFIw7.js.map → BDropdown.vue_vue_type_script_setup_true_lang-BK6sfMpo.js.map} +1 -1
- package/dist/{BDropdown.vue_vue_type_script_setup_true_lang-LMav8a4R.mjs → BDropdown.vue_vue_type_script_setup_true_lang-mWmBPkge.mjs} +3 -3
- package/dist/{BDropdown.vue_vue_type_script_setup_true_lang-LMav8a4R.mjs.map → BDropdown.vue_vue_type_script_setup_true_lang-mWmBPkge.mjs.map} +1 -1
- package/dist/{BFormCheckboxGroup.vue_vue_type_script_setup_true_lang-BFw7wsON.mjs → BFormCheckboxGroup.vue_vue_type_script_setup_true_lang-BA2cj9wB.mjs} +2 -2
- package/dist/{BFormCheckboxGroup.vue_vue_type_script_setup_true_lang-BFw7wsON.mjs.map → BFormCheckboxGroup.vue_vue_type_script_setup_true_lang-BA2cj9wB.mjs.map} +1 -1
- package/dist/{BFormCheckboxGroup.vue_vue_type_script_setup_true_lang-DJVinNIW.js → BFormCheckboxGroup.vue_vue_type_script_setup_true_lang-lwqv-dPO.js} +2 -2
- package/dist/{BFormCheckboxGroup.vue_vue_type_script_setup_true_lang-DJVinNIW.js.map → BFormCheckboxGroup.vue_vue_type_script_setup_true_lang-lwqv-dPO.js.map} +1 -1
- package/dist/{BFormFile.vue_vue_type_script_setup_true_lang-B7usYuIr.mjs → BFormFile.vue_vue_type_script_setup_true_lang-DDxHDir8.mjs} +2 -2
- package/dist/{BFormFile.vue_vue_type_script_setup_true_lang-B7usYuIr.mjs.map → BFormFile.vue_vue_type_script_setup_true_lang-DDxHDir8.mjs.map} +1 -1
- package/dist/{BFormFile.vue_vue_type_script_setup_true_lang-FZxJ49mp.js → BFormFile.vue_vue_type_script_setup_true_lang-DYYWAUc6.js} +2 -2
- package/dist/{BFormFile.vue_vue_type_script_setup_true_lang-FZxJ49mp.js.map → BFormFile.vue_vue_type_script_setup_true_lang-DYYWAUc6.js.map} +1 -1
- package/dist/{BFormGroup.vue_vue_type_script_setup_true_lang-DMeTU5tW.mjs → BFormGroup.vue_vue_type_script_setup_true_lang-B_p2tnRu.mjs} +3 -3
- package/dist/{BFormGroup.vue_vue_type_script_setup_true_lang-DMeTU5tW.mjs.map → BFormGroup.vue_vue_type_script_setup_true_lang-B_p2tnRu.mjs.map} +1 -1
- package/dist/{BFormGroup.vue_vue_type_script_setup_true_lang-DAyEVpcH.js → BFormGroup.vue_vue_type_script_setup_true_lang-DbAwJrFq.js} +2 -2
- package/dist/{BFormGroup.vue_vue_type_script_setup_true_lang-DAyEVpcH.js.map → BFormGroup.vue_vue_type_script_setup_true_lang-DbAwJrFq.js.map} +1 -1
- package/dist/{BFormRadioGroup.vue_vue_type_script_setup_true_lang-C8NbWP6Y.mjs → BFormRadioGroup.vue_vue_type_script_setup_true_lang-CCGwc1k7.mjs} +2 -2
- package/dist/{BFormRadioGroup.vue_vue_type_script_setup_true_lang-C8NbWP6Y.mjs.map → BFormRadioGroup.vue_vue_type_script_setup_true_lang-CCGwc1k7.mjs.map} +1 -1
- package/dist/{BFormRadioGroup.vue_vue_type_script_setup_true_lang-CIidoofY.js → BFormRadioGroup.vue_vue_type_script_setup_true_lang-CjJvVSl0.js} +2 -2
- package/dist/{BFormRadioGroup.vue_vue_type_script_setup_true_lang-CIidoofY.js.map → BFormRadioGroup.vue_vue_type_script_setup_true_lang-CjJvVSl0.js.map} +1 -1
- package/dist/BFormSpinbutton.vue_vue_type_script_setup_true_lang-DiJQOhXx.js +2 -0
- package/dist/BFormSpinbutton.vue_vue_type_script_setup_true_lang-DiJQOhXx.js.map +1 -0
- package/dist/{BFormSpinbutton.vue_vue_type_script_setup_true_lang-BIJdbkPq.mjs → BFormSpinbutton.vue_vue_type_script_setup_true_lang-pqUxFkZ9.mjs} +7 -11
- package/dist/BFormSpinbutton.vue_vue_type_script_setup_true_lang-pqUxFkZ9.mjs.map +1 -0
- package/dist/{BFormTags.vue_vue_type_script_setup_true_lang-DklJQim4.mjs → BFormTags.vue_vue_type_script_setup_true_lang-CsJfx9iR.mjs} +2 -2
- package/dist/{BFormTags.vue_vue_type_script_setup_true_lang-DklJQim4.mjs.map → BFormTags.vue_vue_type_script_setup_true_lang-CsJfx9iR.mjs.map} +1 -1
- package/dist/{BFormTags.vue_vue_type_script_setup_true_lang-DrB8VO9P.js → BFormTags.vue_vue_type_script_setup_true_lang-Cxf_qFud.js} +2 -2
- package/dist/{BFormTags.vue_vue_type_script_setup_true_lang-DrB8VO9P.js.map → BFormTags.vue_vue_type_script_setup_true_lang-Cxf_qFud.js.map} +1 -1
- package/dist/{BFormTextarea.vue_vue_type_script_setup_true_lang-DkM0TiJF.mjs → BFormTextarea.vue_vue_type_script_setup_true_lang-BIngbcIZ.mjs} +2 -2
- package/dist/{BFormTextarea.vue_vue_type_script_setup_true_lang-DkM0TiJF.mjs.map → BFormTextarea.vue_vue_type_script_setup_true_lang-BIngbcIZ.mjs.map} +1 -1
- package/dist/{BFormTextarea.vue_vue_type_script_setup_true_lang-B5Sf8cOv.js → BFormTextarea.vue_vue_type_script_setup_true_lang-CFqs_8vM.js} +2 -2
- package/dist/{BFormTextarea.vue_vue_type_script_setup_true_lang-B5Sf8cOv.js.map → BFormTextarea.vue_vue_type_script_setup_true_lang-CFqs_8vM.js.map} +1 -1
- package/dist/{BModalOrchestrator.vue_vue_type_script_setup_true_lang-BzRcyiEp.js → BModalOrchestrator.vue_vue_type_script_setup_true_lang-Bf-q22fr.js} +2 -2
- package/dist/{BModalOrchestrator.vue_vue_type_script_setup_true_lang-BzRcyiEp.js.map → BModalOrchestrator.vue_vue_type_script_setup_true_lang-Bf-q22fr.js.map} +1 -1
- package/dist/{BModalOrchestrator.vue_vue_type_script_setup_true_lang-8xWoSTM5.mjs → BModalOrchestrator.vue_vue_type_script_setup_true_lang-DsYuMQQT.mjs} +3 -3
- package/dist/{BModalOrchestrator.vue_vue_type_script_setup_true_lang-8xWoSTM5.mjs.map → BModalOrchestrator.vue_vue_type_script_setup_true_lang-DsYuMQQT.mjs.map} +1 -1
- package/dist/{BNavText.vue_vue_type_script_setup_true_lang-4wrL1sjB.js → BNavText.vue_vue_type_script_setup_true_lang-45b75T3m.js} +2 -2
- package/dist/{BNavText.vue_vue_type_script_setup_true_lang-4wrL1sjB.js.map → BNavText.vue_vue_type_script_setup_true_lang-45b75T3m.js.map} +1 -1
- package/dist/{BNavText.vue_vue_type_script_setup_true_lang-BtimVYIK.mjs → BNavText.vue_vue_type_script_setup_true_lang-6nJpTPZR.mjs} +2 -2
- package/dist/{BNavText.vue_vue_type_script_setup_true_lang-BtimVYIK.mjs.map → BNavText.vue_vue_type_script_setup_true_lang-6nJpTPZR.mjs.map} +1 -1
- package/dist/{BOffcanvas.vue_vue_type_script_setup_true_lang-BpZ1A9Zx.js → BOffcanvas.vue_vue_type_script_setup_true_lang-CH7wXgc6.js} +2 -2
- package/dist/{BOffcanvas.vue_vue_type_script_setup_true_lang-BpZ1A9Zx.js.map → BOffcanvas.vue_vue_type_script_setup_true_lang-CH7wXgc6.js.map} +1 -1
- package/dist/{BOffcanvas.vue_vue_type_script_setup_true_lang-BoWlBnwp.mjs → BOffcanvas.vue_vue_type_script_setup_true_lang-DtrKwIGF.mjs} +3 -3
- package/dist/{BOffcanvas.vue_vue_type_script_setup_true_lang-BoWlBnwp.mjs.map → BOffcanvas.vue_vue_type_script_setup_true_lang-DtrKwIGF.mjs.map} +1 -1
- package/dist/{BOverlay.vue_vue_type_script_setup_true_lang-ChDZt_kU.mjs → BOverlay.vue_vue_type_script_setup_true_lang-3PUR2l0W.mjs} +2 -2
- package/dist/{BOverlay.vue_vue_type_script_setup_true_lang-ChDZt_kU.mjs.map → BOverlay.vue_vue_type_script_setup_true_lang-3PUR2l0W.mjs.map} +1 -1
- package/dist/{BOverlay.vue_vue_type_script_setup_true_lang-DCLwhRri.js → BOverlay.vue_vue_type_script_setup_true_lang-BLTGSt-A.js} +2 -2
- package/dist/{BOverlay.vue_vue_type_script_setup_true_lang-DCLwhRri.js.map → BOverlay.vue_vue_type_script_setup_true_lang-BLTGSt-A.js.map} +1 -1
- package/dist/BPagination.vue_vue_type_script_setup_true_lang-B2Tvdu2E.js +2 -0
- package/dist/BPagination.vue_vue_type_script_setup_true_lang-B2Tvdu2E.js.map +1 -0
- package/dist/{BPagination.vue_vue_type_script_setup_true_lang-zRHVG-iF.mjs → BPagination.vue_vue_type_script_setup_true_lang-DoVfW7WP.mjs} +72 -5
- package/dist/BPagination.vue_vue_type_script_setup_true_lang-DoVfW7WP.mjs.map +1 -0
- package/dist/{BPlaceholderWrapper.vue_vue_type_script_setup_true_lang-C50GIwEd.js → BPlaceholderWrapper.vue_vue_type_script_setup_true_lang-BJIut_Nq.js} +2 -2
- package/dist/{BPlaceholderWrapper.vue_vue_type_script_setup_true_lang-C50GIwEd.js.map → BPlaceholderWrapper.vue_vue_type_script_setup_true_lang-BJIut_Nq.js.map} +1 -1
- package/dist/{BPlaceholderWrapper.vue_vue_type_script_setup_true_lang-BzToaZ06.mjs → BPlaceholderWrapper.vue_vue_type_script_setup_true_lang-CNo1PNed.mjs} +3 -3
- package/dist/{BPlaceholderWrapper.vue_vue_type_script_setup_true_lang-BzToaZ06.mjs.map → BPlaceholderWrapper.vue_vue_type_script_setup_true_lang-CNo1PNed.mjs.map} +1 -1
- package/dist/{BPopoverOrchestrator.vue_vue_type_script_setup_true_lang-DT9DiFfu.mjs → BPopoverOrchestrator.vue_vue_type_script_setup_true_lang-8w3ayAzi.mjs} +3 -3
- package/dist/{BPopoverOrchestrator.vue_vue_type_script_setup_true_lang-DT9DiFfu.mjs.map → BPopoverOrchestrator.vue_vue_type_script_setup_true_lang-8w3ayAzi.mjs.map} +1 -1
- package/dist/{BPopoverOrchestrator.vue_vue_type_script_setup_true_lang-CS3Vqld3.js → BPopoverOrchestrator.vue_vue_type_script_setup_true_lang-C7jYzuKr.js} +2 -2
- package/dist/{BPopoverOrchestrator.vue_vue_type_script_setup_true_lang-CS3Vqld3.js.map → BPopoverOrchestrator.vue_vue_type_script_setup_true_lang-C7jYzuKr.js.map} +1 -1
- package/dist/{BSpinner.vue_vue_type_script_setup_true_lang-DD4fhTVT.mjs → BSpinner.vue_vue_type_script_setup_true_lang-BW4_VLJ-.mjs} +2 -2
- package/dist/{BSpinner.vue_vue_type_script_setup_true_lang-DD4fhTVT.mjs.map → BSpinner.vue_vue_type_script_setup_true_lang-BW4_VLJ-.mjs.map} +1 -1
- package/dist/{BSpinner.vue_vue_type_script_setup_true_lang-CnrNxh78.js → BSpinner.vue_vue_type_script_setup_true_lang-BzFbYl8A.js} +2 -2
- package/dist/{BSpinner.vue_vue_type_script_setup_true_lang-CnrNxh78.js.map → BSpinner.vue_vue_type_script_setup_true_lang-BzFbYl8A.js.map} +1 -1
- package/dist/{BTable.vue_vue_type_script_setup_true_lang-CumrgwnT.mjs → BTable.vue_vue_type_script_setup_true_lang-BwXXQkuD.mjs} +25 -11
- package/dist/BTable.vue_vue_type_script_setup_true_lang-BwXXQkuD.mjs.map +1 -0
- package/dist/BTable.vue_vue_type_script_setup_true_lang-DbNxRszM.js +2 -0
- package/dist/BTable.vue_vue_type_script_setup_true_lang-DbNxRszM.js.map +1 -0
- package/dist/{BTableSimple.vue_vue_type_script_setup_true_lang-BHwMXn1g.mjs → BTableSimple.vue_vue_type_script_setup_true_lang-Blac9Rkj.mjs} +2 -2
- package/dist/{BTableSimple.vue_vue_type_script_setup_true_lang-BHwMXn1g.mjs.map → BTableSimple.vue_vue_type_script_setup_true_lang-Blac9Rkj.mjs.map} +1 -1
- package/dist/{BTableSimple.vue_vue_type_script_setup_true_lang-ph_fYlOS.js → BTableSimple.vue_vue_type_script_setup_true_lang-CsCw-o1p.js} +2 -2
- package/dist/{BTableSimple.vue_vue_type_script_setup_true_lang-ph_fYlOS.js.map → BTableSimple.vue_vue_type_script_setup_true_lang-CsCw-o1p.js.map} +1 -1
- package/dist/{BTooltip.vue_vue_type_script_setup_true_lang-Do0IxGJx.mjs → BTooltip.vue_vue_type_script_setup_true_lang-DcUaQLqI.mjs} +2 -2
- package/dist/{BTooltip.vue_vue_type_script_setup_true_lang-Do0IxGJx.mjs.map → BTooltip.vue_vue_type_script_setup_true_lang-DcUaQLqI.mjs.map} +1 -1
- package/dist/{BTooltip.vue_vue_type_script_setup_true_lang-o2dcBqfI.js → BTooltip.vue_vue_type_script_setup_true_lang-SdkF0ejt.js} +2 -2
- package/dist/{BTooltip.vue_vue_type_script_setup_true_lang-o2dcBqfI.js.map → BTooltip.vue_vue_type_script_setup_true_lang-SdkF0ejt.js.map} +1 -1
- package/dist/bootstrap-vue-next.mjs +28 -28
- package/dist/bootstrap-vue-next.umd.js +1 -1
- package/dist/constants-B1zBgSOo.js +2 -0
- package/dist/constants-B1zBgSOo.js.map +1 -0
- package/dist/{constants-BdrZaBP8.mjs → constants-DY6pmjuU.mjs} +20 -16
- package/dist/constants-DY6pmjuU.mjs.map +1 -0
- package/dist/{dom-B-SQyhbA.mjs → dom-BUCypNEC.mjs} +8 -7
- package/dist/dom-BUCypNEC.mjs.map +1 -0
- package/dist/dom-BUc9qVuq.js +2 -0
- package/dist/dom-BUc9qVuq.js.map +1 -0
- package/dist/event-BvfSGhL-.js +2 -0
- package/dist/{event-DqyBZX_g.js.map → event-BvfSGhL-.js.map} +1 -1
- package/dist/{event-aFP-C_yt.mjs → event-D6prph0u.mjs} +14 -2
- package/dist/{event-aFP-C_yt.mjs.map → event-D6prph0u.mjs.map} +1 -1
- package/dist/{floatingUi-B76xsVek.mjs → floatingUi-DcPjNG-o.mjs} +3 -3
- package/dist/{floatingUi-B76xsVek.mjs.map → floatingUi-DcPjNG-o.mjs.map} +1 -1
- package/dist/{floatingUi-D2izbGt_.js → floatingUi-sheKfMg1.js} +2 -2
- package/dist/{floatingUi-D2izbGt_.js.map → floatingUi-sheKfMg1.js.map} +1 -1
- package/dist/{index-C9vrUZ8E.js → index-6nssT6qa.js} +2 -2
- package/dist/index-6nssT6qa.js.map +1 -0
- package/dist/{index-D7kcZVUN.mjs → index-gCR_nToH.mjs} +28 -28
- package/dist/{index-D7kcZVUN.mjs.map → index-gCR_nToH.mjs.map} +1 -1
- package/dist/src/components/BAccordion/index.mjs +1 -1
- package/dist/src/components/BAccordion/index.umd.js +1 -1
- package/dist/src/components/BAlert/index.mjs +1 -1
- package/dist/src/components/BAlert/index.umd.js +1 -1
- package/dist/src/components/BAvatar/index.mjs +1 -1
- package/dist/src/components/BAvatar/index.umd.js +1 -1
- package/dist/src/components/BButton/index.mjs +1 -1
- package/dist/src/components/BButton/index.umd.js +1 -1
- package/dist/src/components/BCard/index.mjs +1 -1
- package/dist/src/components/BCard/index.umd.js +1 -1
- package/dist/src/components/BCarousel/index.mjs +1 -1
- package/dist/src/components/BCarousel/index.umd.js +1 -1
- package/dist/src/components/BCollapse/index.mjs +1 -1
- package/dist/src/components/BCollapse/index.umd.js +1 -1
- package/dist/src/components/BDropdown/index.mjs +1 -1
- package/dist/src/components/BDropdown/index.umd.js +1 -1
- package/dist/src/components/BFormCheckbox/index.mjs +1 -1
- package/dist/src/components/BFormCheckbox/index.umd.js +1 -1
- package/dist/src/components/BFormFile/index.mjs +1 -1
- package/dist/src/components/BFormFile/index.umd.js +1 -1
- package/dist/src/components/BFormGroup/index.mjs +1 -1
- package/dist/src/components/BFormGroup/index.umd.js +1 -1
- package/dist/src/components/BFormRadio/index.mjs +1 -1
- package/dist/src/components/BFormRadio/index.umd.js +1 -1
- package/dist/src/components/BFormSpinbutton/index.mjs +1 -1
- package/dist/src/components/BFormSpinbutton/index.umd.js +1 -1
- package/dist/src/components/BFormTags/index.mjs +1 -1
- package/dist/src/components/BFormTags/index.umd.js +1 -1
- package/dist/src/components/BFormTextarea/index.mjs +1 -1
- package/dist/src/components/BFormTextarea/index.umd.js +1 -1
- package/dist/src/components/BModal/index.mjs +1 -1
- package/dist/src/components/BModal/index.umd.js +1 -1
- package/dist/src/components/BNav/index.mjs +1 -1
- package/dist/src/components/BNav/index.umd.js +1 -1
- package/dist/src/components/BOffcanvas/index.mjs +1 -1
- package/dist/src/components/BOffcanvas/index.umd.js +1 -1
- package/dist/src/components/BOverlay/index.mjs +1 -1
- package/dist/src/components/BOverlay/index.umd.js +1 -1
- package/dist/src/components/BPagination/index.mjs +1 -1
- package/dist/src/components/BPagination/index.umd.js +1 -1
- package/dist/src/components/BPlaceholder/index.mjs +1 -1
- package/dist/src/components/BPlaceholder/index.umd.js +1 -1
- package/dist/src/components/BPopover/index.mjs +2 -2
- package/dist/src/components/BPopover/index.umd.js +1 -1
- package/dist/src/components/BSpinner/index.mjs +1 -1
- package/dist/src/components/BSpinner/index.umd.js +1 -1
- package/dist/src/components/BTable/index.mjs +2 -2
- package/dist/src/components/BTable/index.umd.js +1 -1
- package/dist/src/components/BTooltip/index.mjs +1 -1
- package/dist/src/components/BTooltip/index.umd.js +1 -1
- package/dist/src/components/index.mjs +27 -27
- package/dist/src/components/index.umd.js +1 -1
- package/dist/src/directives/BPopover/index.mjs +1 -1
- package/dist/src/directives/BPopover/index.umd.js +1 -1
- package/dist/src/directives/BToggle/index.mjs +1 -1
- package/dist/src/directives/BToggle/index.umd.js +1 -1
- package/dist/src/directives/BTooltip/index.mjs +1 -1
- package/dist/src/directives/BTooltip/index.umd.js +1 -1
- package/dist/src/utils/constants.d.mts +2 -2
- package/dist/src/utils/constants.d.ts +2 -2
- package/dist/src/utils/dom.d.mts +1 -0
- package/dist/src/utils/dom.d.ts +1 -0
- package/dist/src/utils/event.d.mts +5 -0
- package/dist/src/utils/event.d.ts +5 -0
- package/dist/{stringUtils-i6NkPGA1.mjs → stringUtils-BCx12BQM.mjs} +2 -2
- package/dist/{stringUtils-i6NkPGA1.mjs.map → stringUtils-BCx12BQM.mjs.map} +1 -1
- package/dist/{stringUtils-D2ajpVM0.js → stringUtils-DWyEJm3G.js} +2 -2
- package/dist/{stringUtils-D2ajpVM0.js.map → stringUtils-DWyEJm3G.js.map} +1 -1
- package/dist/{useNumberishToStyle-BWrWARZP.mjs → useNumberishToStyle-BaHH1FuW.mjs} +2 -2
- package/dist/{useNumberishToStyle-BWrWARZP.mjs.map → useNumberishToStyle-BaHH1FuW.mjs.map} +1 -1
- package/dist/useNumberishToStyle-CKSSKRiz.js +2 -0
- package/dist/{useNumberishToStyle-CUqOYwz3.js.map → useNumberishToStyle-CKSSKRiz.js.map} +1 -1
- package/package.json +1 -1
- package/dist/BFormSpinbutton.vue_vue_type_script_setup_true_lang-BIJdbkPq.mjs.map +0 -1
- package/dist/BFormSpinbutton.vue_vue_type_script_setup_true_lang-_-HbboVN.js +0 -2
- package/dist/BFormSpinbutton.vue_vue_type_script_setup_true_lang-_-HbboVN.js.map +0 -1
- package/dist/BPagination.vue_vue_type_script_setup_true_lang-DLW4Bi3B.js +0 -2
- package/dist/BPagination.vue_vue_type_script_setup_true_lang-DLW4Bi3B.js.map +0 -1
- package/dist/BPagination.vue_vue_type_script_setup_true_lang-zRHVG-iF.mjs.map +0 -1
- package/dist/BTable.vue_vue_type_script_setup_true_lang-BgBZgKGz.js +0 -2
- package/dist/BTable.vue_vue_type_script_setup_true_lang-BgBZgKGz.js.map +0 -1
- package/dist/BTable.vue_vue_type_script_setup_true_lang-CumrgwnT.mjs.map +0 -1
- package/dist/constants-BdrZaBP8.mjs.map +0 -1
- package/dist/constants-Caz6vMlV.js +0 -2
- package/dist/constants-Caz6vMlV.js.map +0 -1
- package/dist/dom-B-SQyhbA.mjs.map +0 -1
- package/dist/dom-C-F8jHop.js +0 -2
- package/dist/dom-C-F8jHop.js.map +0 -1
- package/dist/event-DqyBZX_g.js +0 -2
- package/dist/index-C9vrUZ8E.js.map +0 -1
- package/dist/useNumberishToStyle-CUqOYwz3.js +0 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BButton.vue_vue_type_script_setup_true_lang-
|
|
1
|
+
{"version":3,"file":"BButton.vue_vue_type_script_setup_true_lang-CE6qvsTI.js","sources":["../src/components/BButton/BButton.vue"],"sourcesContent":["<template>\n <component\n :is=\"computedTag\"\n ref=\"element\"\n class=\"btn\"\n v-bind=\"linkProps\"\n :class=\"computedClasses\"\n :aria-disabled=\"computedAriaDisabled\"\n :aria-pressed=\"isToggle ? pressedValue : null\"\n :autocomplete=\"isToggle ? 'off' : null\"\n :disabled=\"isButton ? props.disabled : null\"\n :href=\"props.href\"\n :rel=\"computedLink ? props.rel : null\"\n :role=\"nonStandardTag || computedLink ? 'button' : null\"\n :target=\"computedLink ? props.target : null\"\n :type=\"isButton ? props.type : null\"\n :to=\"!isButton ? props.to : null\"\n @click=\"clicked\"\n >\n <template v-if=\"props.loading\">\n <slot name=\"loading\">\n <template v-if=\"!props.loadingFill\">\n {{ props.loadingText }}\n </template>\n <slot name=\"loading-spinner\">\n <BSpinner\n :small=\"props.size !== 'lg'\"\n :label=\"props.loadingFill ? props.loadingText : undefined\"\n />\n </slot>\n </slot>\n </template>\n <template v-else>\n <slot />\n </template>\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, ref} from 'vue'\nimport BSpinner from '../BSpinner/BSpinner.vue'\nimport {useBLinkHelper} from '../../composables/useBLinkHelper'\nimport BLink from '../BLink/BLink.vue'\nimport {useLinkClasses} from '../../composables/useLinkClasses'\nimport {onKeyStroke} from '@vueuse/core'\nimport type {BButtonProps} from '../../types/ComponentProps'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {ColorVariant} from '../../types/ColorTypes'\n\ndefineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n 'default'?: (props: Record<string, never>) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n 'loading'?: (props: Record<string, never>) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n 'loading-spinner'?: (props: Record<string, never>) => any\n}>()\n\nconst _props = withDefaults(defineProps<Omit<BButtonProps, 'pressed'>>(), {\n loading: false,\n loadingFill: false,\n loadingText: 'Loading...',\n pill: false,\n size: 'md',\n squared: false,\n tag: 'button',\n type: 'button',\n // Link props\n active: false, // Why is this active: false?\n variant: 'secondary',\n // All others use defaults\n activeClass: undefined,\n disabled: undefined,\n exactActiveClass: undefined,\n stretched: false,\n href: undefined,\n icon: false,\n opacity: undefined,\n opacityHover: undefined,\n rel: undefined,\n replace: undefined,\n routerComponentName: undefined,\n routerTag: undefined,\n target: undefined,\n to: undefined,\n underlineOffset: undefined,\n underlineOffsetHover: undefined,\n underlineOpacity: undefined,\n underlineOpacityHover: undefined,\n underlineVariant: null,\n // End link props\n})\n\nconst props = useDefaults(_props, 'BButton')\n\nconst emit = defineEmits<{\n click: [value: MouseEvent]\n}>()\n\nconst element = ref<HTMLElement | null>(null)\n\nconst pressedValue = defineModel<BButtonProps['pressed']>('pressed', {default: undefined})\n\nconst {computedLink, computedLinkProps} = useBLinkHelper(props, [\n 'active-class',\n 'exact-active-class',\n 'replace',\n 'routerComponentName',\n 'routerTag',\n])\n\nconst isToggle = computed(() => typeof pressedValue.value === 'boolean')\nconst isButton = computed(\n () => props.tag === 'button' && props.href === undefined && props.to === undefined\n)\nconst isBLink = computed(() => props.to !== undefined)\nconst nonStandardTag = computed(() => (props.href !== undefined ? false : !isButton.value))\n\nconst linkProps = computed(() => (isBLink.value ? computedLinkProps.value : []))\nconst computedAriaDisabled = computed(() => {\n if (props.href === '#' && props.disabled) return true\n\n return nonStandardTag.value ? props.disabled : null\n})\n\nconst variantIsLinkType = computed(() => props.variant?.startsWith('link') || false)\nconst variantIsLinkTypeSubset = computed(() => props.variant?.startsWith('link-') || false)\nconst linkValueClasses = useLinkClasses(\n computed(() => ({\n ...(variantIsLinkType.value && {\n icon: props.icon,\n opacity: props.opacity,\n opacityHover: props.opacityHover,\n underlineOffset: props.underlineOffset,\n underlineOffsetHover: props.underlineOffsetHover,\n underlineOpacity: props.underlineOpacity,\n underlineOpacityHover: props.underlineOpacityHover,\n underlineVariant: props.underlineVariant,\n variant:\n variantIsLinkTypeSubset.value === true ? (props.variant?.slice(5) as ColorVariant) : null,\n }),\n }))\n)\nconst computedClasses = computed(() => [\n variantIsLinkType.value === true && computedLink.value === false\n ? linkValueClasses.value\n : undefined,\n [`btn-${props.size}`],\n {\n [`btn-${props.variant}`]: props.variant !== null && variantIsLinkTypeSubset.value === false,\n 'active': props.active || pressedValue.value,\n 'rounded-pill': props.pill,\n 'rounded-0': props.squared,\n 'disabled': props.disabled,\n },\n])\n\nconst computedTag = computed(() => (isBLink.value ? BLink : props.href ? 'a' : props.tag))\n\nconst clicked = (e: Readonly<MouseEvent>): void => {\n if (props.disabled) {\n e.preventDefault()\n e.stopPropagation()\n return\n }\n emit('click', e)\n if (isToggle.value) pressedValue.value = !pressedValue.value\n}\n\nonKeyStroke(\n [' ', 'enter'],\n (e) => {\n if (props.href === '#') {\n e.preventDefault()\n element.value?.click()\n }\n },\n {target: element}\n)\n</script>\n"],"names":["_props","__props","props","useDefaults","emit","__emit","element","ref","pressedValue","_useModel","computedLink","computedLinkProps","useBLinkHelper","isToggle","computed","value","isButton","tag","href","to","isBLink","nonStandardTag","linkProps","computedAriaDisabled","disabled","variantIsLinkType","_a","variant","startsWith","variantIsLinkTypeSubset","linkValueClasses","useLinkClasses","icon","opacity","opacityHover","underlineOffset","underlineOffsetHover","underlineOpacity","underlineOpacityHover","underlineVariant","slice","computedClasses","size","active","pill","squared","computedTag","BLink","clicked","e","preventDefault","stopPropagation","index","onKeyStroke","click","target"],"mappings":"g3CA0DA,MAAMA,EAASC,EAmCTC,EAAQC,EAAAA,YAAYH,EAAQ,WAE5BI,EAAOC,EAIPC,EAAUC,MAAwB,MAElCC,EAAeC,EAAAA,SAAqCR,EAAA,YAEpDS,aAACA,EAAcC,kBAAAA,GAAqBC,EAAAA,eAAeV,EAAO,CAC9D,eACA,qBACA,UACA,sBACA,cAGIW,EAAWC,EAAAA,UAAS,IAAoC,kBAAvBN,EAAaO,QAC9CC,EAAWF,EAAAA,UACf,IAAoB,WAAdZ,EAAMe,UAAmC,IAAff,EAAMgB,WAAmC,IAAbhB,EAAMiB,KAE9DC,EAAUN,EAAAA,UAAS,SAAmB,IAAbZ,EAAMiB,KAC/BE,EAAiBP,EAAAA,UAAS,SAAsB,IAAfZ,EAAMgB,OAA8BF,EAASD,QAE9EO,EAAYR,YAAS,IAAOM,EAAQL,MAAQJ,EAAkBI,MAAQ,KACtEQ,EAAuBT,EAAAA,UAAS,MACjB,MAAfZ,EAAMgB,OAAgBhB,EAAMsB,YAEzBH,EAAeN,MAAQb,EAAMsB,SAAW,QAG3CC,EAAoBX,YAAS,WAAY,OAAN,OAAMY,EAAAxB,EAAAyB,cAAS,EAAAD,EAAAE,WAAW,WAAW,CAAA,IACxEC,EAA0Bf,YAAS,WAAY,OAAN,OAAMY,EAAAxB,EAAAyB,cAAS,EAAAD,EAAAE,WAAW,YAAY,CAAA,IAC/EE,EAAmBC,EAAAA,eACvBjB,EAAAA,UAAS,WAAO,MAAA,IACVW,EAAkBV,OAAS,CAC7BiB,KAAM9B,EAAM8B,KACZC,QAAS/B,EAAM+B,QACfC,aAAchC,EAAMgC,aACpBC,gBAAiBjC,EAAMiC,gBACvBC,qBAAsBlC,EAAMkC,qBAC5BC,iBAAkBnC,EAAMmC,iBACxBC,sBAAuBpC,EAAMoC,sBAC7BC,iBAAkBrC,EAAMqC,iBACxBZ,SACoC,IAAlCE,EAAwBd,MAAkB,OAAAW,IAAMC,cAAN,EAAAD,EAAec,MAAM,GAAsB,MACzF,KAGEC,EAAkB3B,EAAAA,UAAS,IAAM,EACT,IAA5BW,EAAkBV,QAAyC,IAAvBL,EAAaK,MAC7Ce,EAAiBf,WACjB,EACJ,CAAC,OAAOb,EAAMwC,QACd,CACE,CAAC,OAAOxC,EAAMyB,WAA8B,OAAlBzB,EAAMyB,UAAsD,IAAlCE,EAAwBd,MAC5E4B,OAAUzC,EAAMyC,QAAUnC,EAAaO,MACvC,eAAgBb,EAAM0C,KACtB,YAAa1C,EAAM2C,QACnBrB,SAAYtB,EAAMsB,aAIhBsB,EAAchC,EAAAA,UAAS,IAAOM,EAAQL,MAAQgC,EAAAA,UAAQ7C,EAAMgB,KAAO,IAAMhB,EAAMe,MAE/E+B,EAAWC,IACf,GAAI/C,EAAMsB,SAGR,OAFAyB,EAAEC,sBACFD,EAAEE,kBAGJ/C,EAAK,QAAS6C,GACVpC,EAASE,QAAoBP,EAAAO,OAASP,EAAaO,MAAA,SAGzDqC,EAAAC,YACE,CAAC,IAAK,UACLJ,UACoB,MAAf/C,EAAMgB,OACR+B,EAAEC,iBACF,OAAAxB,EAAApB,EAAQS,QAAOW,EAAA4B,QACjB,GAEF,CAACC,OAAQjD"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const e=require("vue"),t=require("./dom-
|
|
2
|
-
//# sourceMappingURL=BCard.vue_vue_type_script_setup_true_lang-
|
|
1
|
+
"use strict";const e=require("vue"),t=require("./dom-BUc9qVuq.js"),a=require("./useColorVariantClasses-CE658Sm0.js"),r=require("./useDefaults-DA3S59IE.js"),l=require("./BImg.vue_vue_type_script_setup_true_lang-CUI0BSKd.js"),o=require("./object-B-6ddRYH.js"),d=require("./index-CHhN7c8p.js"),n=e.defineComponent({__name:"BCardImg",props:{placement:{default:"top"},blank:{type:Boolean,default:void 0},blankColor:{default:void 0},block:{type:Boolean,default:void 0},fluid:{type:Boolean,default:void 0},fluidGrow:{type:Boolean,default:void 0},height:{default:void 0},tag:{},lazy:{type:Boolean,default:void 0},sizes:{default:void 0},src:{default:void 0},srcset:{default:void 0},thumbnail:{type:Boolean,default:void 0},width:{default:void 0},rounded:{type:[Boolean,String,Number],default:void 0},roundedTop:{type:[Boolean,String,Number],default:void 0},roundedBottom:{type:[Boolean,String,Number],default:void 0},roundedStart:{type:[Boolean,String,Number],default:void 0},roundedEnd:{type:[Boolean,String,Number],default:void 0}},setup(t){const a=t,d=r.useDefaults(a,"BCardImg"),n=e.computed((()=>({"card-img-top":"top"===d.placement,"card-img-end":"end"===d.placement,"card-img-bottom":"bottom"===d.placement,"card-img-start":"start"===d.placement,"card-img":"overlay"===d.placement}))),i=e.computed((()=>o.omit(d,["placement"])));return(t,a)=>(e.openBlock(),e.createBlock(l._sfc_main,e.mergeProps(i.value,{class:n.value}),null,16,["class"]))}}),i=["innerHTML"],u=e.defineComponent({__name:"BCardHeadFoot",props:{borderVariant:{default:null},html:{default:void 0},tag:{default:"div"},text:{default:void 0},variant:{default:null},bgVariant:{default:null},textVariant:{default:null}},setup(t){const r=t,l=a.useColorVariantClasses(r);return(t,a)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(t.tag),{class:e.normalizeClass(e.unref(l))},{default:e.withCtx((()=>[t.html?(e.openBlock(),e.createElementBlock("div",{key:0,innerHTML:t.html},null,8,i)):e.renderSlot(t.$slots,"default",{key:1},(()=>[e.createTextVNode(e.toDisplayString(t.text),1)]))])),_:3},8,["class"]))}}),s=e.defineComponent({__name:"BCardHeader",props:{borderVariant:{default:void 0},html:{default:void 0},tag:{default:"div"},text:{default:void 0},variant:{default:void 0},bgVariant:{default:void 0},textVariant:{default:void 0}},setup(t){const a=t,l=r.useDefaults(a,"BCardHeader");return(t,a)=>(e.openBlock(),e.createBlock(u,e.mergeProps({class:"card-header"},e.unref(l)),{default:e.withCtx((()=>[e.renderSlot(t.$slots,"default")])),_:3},16))}}),f=e.defineComponent({__name:"BCardTitle",props:{tag:{default:"h4"},text:{default:void 0}},setup(t){const a=t,l=r.useDefaults(a,"BCardTitle");return(t,a)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(l).tag),{class:"card-title"},{default:e.withCtx((()=>[e.renderSlot(t.$slots,"default",{},(()=>[e.createTextVNode(e.toDisplayString(e.unref(l).text),1)]))])),_:3}))}}),c=e.defineComponent({__name:"BCardSubtitle",props:{text:{default:void 0},tag:{default:"h6"},textVariant:{default:"body-secondary"}},setup(t){const l=t,o=r.useDefaults(l,"BCardSubtitle"),d=a.useColorVariantClasses(o);return(t,a)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(o).tag),{class:e.normalizeClass(["card-subtitle mb-2",e.unref(d)])},{default:e.withCtx((()=>[e.renderSlot(t.$slots,"default",{},(()=>[e.createTextVNode(e.toDisplayString(e.unref(o).text),1)]))])),_:3},8,["class"]))}}),m=e.defineComponent({__name:"BCardBody",props:{overlay:{type:Boolean,default:!1},subtitle:{default:void 0},subtitleTag:{default:"h4"},subtitleTextVariant:{default:void 0},tag:{default:"div"},text:{default:void 0},title:{default:void 0},titleTag:{default:"h4"},variant:{default:null},bgVariant:{default:null},textVariant:{default:null}},setup(l){const o=l,d=r.useDefaults(o,"BCardBody"),n=e.useSlots(),i=e.computed((()=>!t.isEmptySlot(n.title))),u=e.computed((()=>!t.isEmptySlot(n.subtitle))),s=a.useColorVariantClasses(d),m=e.computed((()=>[s.value,d.overlay?"card-img-overlay":"card-body"]));return(t,a)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(d).tag),{class:e.normalizeClass(m.value)},{default:e.withCtx((()=>[e.unref(d).title||i.value?(e.openBlock(),e.createBlock(f,{key:0,tag:e.unref(d).titleTag},{default:e.withCtx((()=>[e.renderSlot(t.$slots,"title",{},(()=>[e.createTextVNode(e.toDisplayString(e.unref(d).title),1)]))])),_:3},8,["tag"])):e.createCommentVNode("",!0),e.unref(d).subtitle||u.value?(e.openBlock(),e.createBlock(c,{key:1,tag:e.unref(d).subtitleTag,"text-variant":e.unref(d).subtitleTextVariant},{default:e.withCtx((()=>[e.renderSlot(t.$slots,"subtitle",{},(()=>[e.createTextVNode(e.toDisplayString(e.unref(d).subtitle),1)]))])),_:3},8,["tag","text-variant"])):e.createCommentVNode("",!0),e.renderSlot(t.$slots,"default",{},(()=>[e.createTextVNode(e.toDisplayString(e.unref(d).text),1)]))])),_:3},8,["class"]))}}),v=e.defineComponent({__name:"BCardFooter",props:{borderVariant:{default:void 0},html:{default:void 0},tag:{default:"div"},text:{default:void 0},variant:{default:void 0},bgVariant:{default:void 0},textVariant:{default:void 0}},setup(t){const a=t,l=r.useDefaults(a,"BCardFooter");return(t,a)=>(e.openBlock(),e.createBlock(u,e.mergeProps({class:"card-footer"},e.unref(l)),{default:e.withCtx((()=>[e.renderSlot(t.$slots,"default",{},(()=>[e.createTextVNode(e.toDisplayString(e.unref(l).text),1)]))])),_:3},16))}}),p=e.defineComponent({__name:"BCard",props:{align:{default:void 0},bodyBgVariant:{default:void 0},bodyClass:{default:void 0},bodyTag:{default:"div"},bodyText:{default:""},bodyTextVariant:{default:void 0},borderVariant:{default:null},footer:{default:void 0},footerBgVariant:{default:void 0},footerBorderVariant:{default:void 0},footerClass:{default:void 0},footerHtml:{default:""},footerTag:{default:"div"},footerTextVariant:{default:void 0},footerVariant:{default:null},header:{default:void 0},headerBgVariant:{default:void 0},headerBorderVariant:{default:void 0},headerClass:{default:void 0},headerHtml:{default:""},headerTag:{default:"div"},headerTextVariant:{default:void 0},headerVariant:{default:null},imgAlt:{default:void 0},imgPlacement:{default:"top"},imgHeight:{default:void 0},imgSrc:{default:void 0},imgWidth:{default:void 0},noBody:{type:Boolean,default:!1},subtitle:{default:void 0},subtitleTag:{default:"h6"},subtitleTextVariant:{default:"body-secondary"},tag:{default:"div"},title:{default:void 0},titleTag:{default:"h4"},variant:{default:null},bgVariant:{default:null},textVariant:{default:null}},setup(l){const o=l,i=r.useDefaults(o,"BCard"),u=e.useSlots(),f=e.computed((()=>!t.isEmptySlot(u.header))),c=e.computed((()=>!t.isEmptySlot(u.footer))),p=a.useColorVariantClasses(i),g=e.computed((()=>[p.value,{[`text-${i.align}`]:void 0!==i.align,"flex-row":"start"===i.imgPlacement,"flex-row-reverse":"end"===i.imgPlacement}])),B=e.computed((()=>({src:i.imgSrc,alt:i.imgAlt,height:i.imgHeight,width:i.imgWidth,placement:i.imgPlacement}))),x=d.createReusableTemplate();return(t,a)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(i).tag),{class:e.normalizeClass(["card",g.value])},{default:e.withCtx((()=>[e.createVNode(e.unref(x).define,null,{default:e.withCtx((()=>[e.renderSlot(t.$slots,"img",{},(()=>[e.unref(i).imgSrc?(e.openBlock(),e.createBlock(n,e.normalizeProps(e.mergeProps({key:0},B.value)),null,16)):e.createCommentVNode("",!0)]))])),_:3}),"bottom"!==e.unref(i).imgPlacement?(e.openBlock(),e.createBlock(e.unref(x).reuse,{key:0})):e.createCommentVNode("",!0),e.unref(i).header||f.value||e.unref(i).headerHtml?(e.openBlock(),e.createBlock(s,{key:1,"bg-variant":e.unref(i).headerBgVariant,variant:e.unref(i).headerVariant,"border-variant":e.unref(i).headerBorderVariant,html:e.unref(i).headerHtml,tag:e.unref(i).headerTag,"text-variant":e.unref(i).headerTextVariant,class:e.normalizeClass(e.unref(i).headerClass)},{default:e.withCtx((()=>[e.renderSlot(t.$slots,"header",{},(()=>[e.createTextVNode(e.toDisplayString(e.unref(i).header),1)]))])),_:3},8,["bg-variant","variant","border-variant","html","tag","text-variant","class"])):e.createCommentVNode("",!0),e.unref(i).noBody?e.renderSlot(t.$slots,"default",{key:3},(()=>[e.createTextVNode(e.toDisplayString(e.unref(i).bodyText),1)])):(e.openBlock(),e.createBlock(m,{key:2,overlay:"overlay"===e.unref(i).imgPlacement,"bg-variant":e.unref(i).bodyBgVariant,tag:e.unref(i).bodyTag,"text-variant":e.unref(i).bodyTextVariant,subtitle:e.unref(i).subtitle,"subtitle-tag":e.unref(i).subtitleTag,"subtitle-text-variant":e.unref(i).subtitleTextVariant,title:e.unref(i).title,"title-tag":e.unref(i).titleTag,class:e.normalizeClass(e.unref(i).bodyClass)},{default:e.withCtx((()=>[e.renderSlot(t.$slots,"default",{},(()=>[e.createTextVNode(e.toDisplayString(e.unref(i).bodyText),1)]))])),_:3},8,["overlay","bg-variant","tag","text-variant","subtitle","subtitle-tag","subtitle-text-variant","title","title-tag","class"])),e.unref(i).footer||c.value||e.unref(i).footerHtml?(e.openBlock(),e.createBlock(v,{key:4,"bg-variant":e.unref(i).footerBgVariant,"border-variant":e.unref(i).footerBorderVariant,variant:e.unref(i).footerVariant,html:e.unref(i).footerHtml,tag:e.unref(i).footerTag,"text-variant":e.unref(i).footerTextVariant,class:e.normalizeClass(e.unref(i).footerClass)},{default:e.withCtx((()=>[e.renderSlot(t.$slots,"footer",{},(()=>[e.createTextVNode(e.toDisplayString(e.unref(i).footer),1)]))])),_:3},8,["bg-variant","border-variant","variant","html","tag","text-variant","class"])):e.createCommentVNode("",!0),"bottom"===e.unref(i).imgPlacement?(e.openBlock(),e.createBlock(e.unref(x).reuse,{key:5})):e.createCommentVNode("",!0)])),_:3},8,["class"]))}});exports._sfc_main=p,exports._sfc_main$1=m,exports._sfc_main$2=v,exports._sfc_main$3=s,exports._sfc_main$4=n,exports._sfc_main$5=c,exports._sfc_main$6=f;
|
|
2
|
+
//# sourceMappingURL=BCard.vue_vue_type_script_setup_true_lang-BqdbfWMb.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BCard.vue_vue_type_script_setup_true_lang-DLDdxVe_.js","sources":["../src/components/BCard/BCardImg.vue","../src/components/BCardHeadFoot.vue","../src/components/BCard/BCardHeader.vue","../src/components/BCard/BCardTitle.vue","../src/components/BCard/BCardSubtitle.vue","../src/components/BCard/BCardBody.vue","../src/components/BCard/BCardFooter.vue","../src/components/BCard/BCard.vue"],"sourcesContent":["<template>\n <BImg v-bind=\"computedImgProps\" :class=\"baseAlignmentClasses\" />\n</template>\n\n<script setup lang=\"ts\">\nimport BImg from '../BImg/BImg.vue'\nimport type {BCardImgProps} from '../../types/ComponentProps'\nimport {omit} from '../../utils/object'\nimport {computed} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\n\nconst _props = withDefaults(defineProps<BCardImgProps>(), {\n placement: 'top',\n // BImg props\n blank: undefined,\n blankColor: undefined,\n block: undefined,\n fluid: undefined,\n fluidGrow: undefined,\n height: undefined,\n lazy: undefined,\n rounded: undefined,\n roundedBottom: undefined,\n roundedEnd: undefined,\n roundedStart: undefined,\n roundedTop: undefined,\n sizes: undefined,\n src: undefined,\n srcset: undefined,\n thumbnail: undefined,\n width: undefined,\n // End BImg props\n})\nconst props = useDefaults(_props, 'BCardImg')\n\nconst baseAlignmentClasses = computed(() => ({\n 'card-img-top': props.placement === 'top',\n // TODO implement this class\n 'card-img-end': props.placement === 'end',\n 'card-img-bottom': props.placement === 'bottom',\n // TODO implement this class\n 'card-img-start': props.placement === 'start',\n 'card-img': props.placement === 'overlay',\n}))\n\nconst computedImgProps = computed(() => omit(props, ['placement']))\n</script>\n","<template>\n <component :is=\"tag\" :class=\"computedClasses\">\n <!-- eslint-disable-next-line vue/no-v-html -->\n <div v-if=\"!!html\" v-html=\"html\" />\n <slot v-else>\n {{ text }}\n </slot>\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport type {BCardHeadFootProps} from '../types/ComponentProps'\nimport {useColorVariantClasses} from '../composables/useColorVariantClasses'\n\nconst props = withDefaults(defineProps<BCardHeadFootProps>(), {\n borderVariant: null,\n html: undefined,\n tag: 'div',\n text: undefined,\n // ColorExtendables props\n bgVariant: null,\n textVariant: null,\n variant: null,\n // End ColorExtendables props\n})\n\ndefineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n}>()\n\nconst computedClasses = useColorVariantClasses(props)\n</script>\n","<template>\n <BCardHeadFoot class=\"card-header\" v-bind=\"props\">\n <slot />\n </BCardHeadFoot>\n</template>\n\n<script setup lang=\"ts\">\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BCardHeadFootProps} from '../../types/ComponentProps'\nimport BCardHeadFoot from '../BCardHeadFoot.vue'\n\nconst _props = withDefaults(defineProps<BCardHeadFootProps>(), {\n borderVariant: undefined,\n html: undefined,\n tag: 'div',\n text: undefined,\n // ColorExtendables props\n bgVariant: undefined,\n textVariant: undefined,\n variant: undefined,\n // End ColorExtendables props\n})\nconst props = useDefaults(_props, 'BCardHeader')\n\ndefineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n}>()\n</script>\n","<template>\n <component :is=\"props.tag\" class=\"card-title\">\n <slot>\n {{ props.text }}\n </slot>\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BCardTitleProps} from '../../types/ComponentProps'\n\nconst _props = withDefaults(defineProps<BCardTitleProps>(), {\n tag: 'h4',\n text: undefined,\n})\nconst props = useDefaults(_props, 'BCardTitle')\n\ndefineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n}>()\n</script>\n","<template>\n <component :is=\"props.tag\" class=\"card-subtitle mb-2\" :class=\"computedClasses\">\n <slot>\n {{ props.text }}\n </slot>\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BCardSubtitleProps} from '../../types/ComponentProps'\n\nconst _props = withDefaults(defineProps<BCardSubtitleProps>(), {\n tag: 'h6',\n text: undefined,\n textVariant: 'body-secondary',\n})\nconst props = useDefaults(_props, 'BCardSubtitle')\n\ndefineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n}>()\n\nconst computedClasses = useColorVariantClasses(props)\n</script>\n","<template>\n <component :is=\"props.tag\" :class=\"computedClasses\">\n <BCardTitle v-if=\"!!props.title || hasTitleSlot\" :tag=\"props.titleTag\">\n <slot name=\"title\">\n {{ props.title }}\n </slot>\n </BCardTitle>\n\n <BCardSubtitle\n v-if=\"!!props.subtitle || hasSubtitleSlot\"\n :tag=\"props.subtitleTag\"\n :text-variant=\"props.subtitleTextVariant\"\n >\n <slot name=\"subtitle\">\n {{ props.subtitle }}\n </slot>\n </BCardSubtitle>\n\n <slot>\n {{ props.text }}\n </slot>\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed} from 'vue'\nimport BCardTitle from './BCardTitle.vue'\nimport {isEmptySlot} from '../../utils/dom'\nimport BCardSubtitle from './BCardSubtitle.vue'\nimport type {BCardBodyProps} from '../../types/ComponentProps'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport {useDefaults} from '../../composables/useDefaults'\n\nconst _props = withDefaults(defineProps<BCardBodyProps>(), {\n overlay: false,\n subtitle: undefined,\n subtitleTag: 'h4',\n subtitleTextVariant: undefined,\n tag: 'div',\n text: undefined,\n title: undefined,\n titleTag: 'h4',\n // ColorExtendables props\n bgVariant: null,\n textVariant: null,\n variant: null,\n // End ColorExtendables props\n})\nconst props = useDefaults(_props, 'BCardBody')\n\nconst slots = defineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n subtitle?: (props: Record<string, never>) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n title?: (props: Record<string, never>) => any\n}>()\n\nconst hasTitleSlot = computed(() => !isEmptySlot(slots.title))\nconst hasSubtitleSlot = computed(() => !isEmptySlot(slots.subtitle))\n\nconst colorClasses = useColorVariantClasses(props)\nconst computedClasses = computed(() => [\n colorClasses.value,\n props.overlay ? 'card-img-overlay' : 'card-body',\n])\n</script>\n","<template>\n <BCardHeadFoot class=\"card-footer\" v-bind=\"props\">\n <slot>\n {{ props.text }}\n </slot>\n </BCardHeadFoot>\n</template>\n\n<script setup lang=\"ts\">\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BCardHeadFootProps} from '../../types/ComponentProps'\nimport BCardHeadFoot from '../BCardHeadFoot.vue'\n\nconst _props = withDefaults(defineProps<BCardHeadFootProps>(), {\n borderVariant: undefined,\n html: undefined,\n tag: 'div',\n text: undefined,\n // ColorExtendables props\n bgVariant: undefined,\n textVariant: undefined,\n variant: undefined,\n // End ColorExtendables props\n})\nconst props = useDefaults(_props, 'BCardFooter')\n\ndefineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n}>()\n</script>\n","<template>\n <component :is=\"props.tag\" class=\"card\" :class=\"computedClasses\">\n <ReusableImg.define>\n <slot name=\"img\">\n <BCardImg v-if=\"props.imgSrc\" v-bind=\"imgAttr\" />\n </slot>\n </ReusableImg.define>\n\n <ReusableImg.reuse v-if=\"props.imgPlacement !== 'bottom'\" />\n <BCardHeader\n v-if=\"props.header || hasHeaderSlot || props.headerHtml\"\n :bg-variant=\"props.headerBgVariant\"\n :variant=\"props.headerVariant\"\n :border-variant=\"props.headerBorderVariant\"\n :html=\"props.headerHtml\"\n :tag=\"props.headerTag\"\n :text-variant=\"props.headerTextVariant\"\n :class=\"props.headerClass\"\n >\n <slot name=\"header\">\n {{ props.header }}\n </slot>\n </BCardHeader>\n <BCardBody\n v-if=\"!props.noBody\"\n :overlay=\"props.imgPlacement === 'overlay'\"\n :bg-variant=\"props.bodyBgVariant\"\n :tag=\"props.bodyTag\"\n :text-variant=\"props.bodyTextVariant\"\n :subtitle=\"props.subtitle\"\n :subtitle-tag=\"props.subtitleTag\"\n :subtitle-text-variant=\"props.subtitleTextVariant\"\n :title=\"props.title\"\n :title-tag=\"props.titleTag\"\n :class=\"props.bodyClass\"\n >\n <slot>\n {{ props.bodyText }}\n </slot>\n </BCardBody>\n <slot v-else>\n {{ props.bodyText }}\n </slot>\n <BCardFooter\n v-if=\"props.footer || hasFooterSlot || props.footerHtml\"\n :bg-variant=\"props.footerBgVariant\"\n :border-variant=\"props.footerBorderVariant\"\n :variant=\"props.footerVariant\"\n :html=\"props.footerHtml\"\n :tag=\"props.footerTag\"\n :text-variant=\"props.footerTextVariant\"\n :class=\"props.footerClass\"\n >\n <slot name=\"footer\">\n {{ props.footer }}\n </slot>\n </BCardFooter>\n <ReusableImg.reuse v-if=\"props.imgPlacement === 'bottom'\" />\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport type {BCardProps} from '../../types/ComponentProps'\nimport {isEmptySlot} from '../../utils/dom'\nimport {computed} from 'vue'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport {useDefaults} from '../../composables/useDefaults'\nimport BCardImg from './BCardImg.vue'\nimport BCardHeader from './BCardHeader.vue'\nimport BCardBody from './BCardBody.vue'\nimport BCardFooter from './BCardFooter.vue'\nimport {createReusableTemplate} from '@vueuse/core'\n\nconst _props = withDefaults(defineProps<BCardProps>(), {\n align: undefined,\n bodyBgVariant: undefined,\n bodyClass: undefined,\n bodyTag: 'div',\n bodyText: '',\n bodyTextVariant: undefined,\n borderVariant: null,\n footer: undefined,\n footerBgVariant: undefined,\n footerBorderVariant: undefined,\n footerClass: undefined,\n footerHtml: '',\n footerTag: 'div',\n footerTextVariant: undefined,\n footerVariant: null,\n header: undefined,\n headerBgVariant: undefined,\n headerBorderVariant: undefined,\n headerClass: undefined,\n headerHtml: '',\n headerTag: 'div',\n headerTextVariant: undefined,\n headerVariant: null,\n imgAlt: undefined,\n imgPlacement: 'top',\n imgHeight: undefined,\n imgSrc: undefined,\n imgWidth: undefined,\n noBody: false,\n subtitle: undefined,\n subtitleTag: 'h6',\n subtitleTextVariant: 'body-secondary',\n tag: 'div',\n title: undefined,\n titleTag: 'h4',\n // ColorExtendables props\n bgVariant: null,\n textVariant: null,\n variant: null,\n // End ColorExtendables props\n})\nconst props = useDefaults(_props, 'BCard')\n\nconst slots = defineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n footer?: (props: Record<string, never>) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n header?: (props: Record<string, never>) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n img?: (props: Record<string, never>) => any\n}>()\n\nconst hasHeaderSlot = computed(() => !isEmptySlot(slots.header))\nconst hasFooterSlot = computed(() => !isEmptySlot(slots.footer))\n\nconst colorClasses = useColorVariantClasses(props)\nconst computedClasses = computed(() => [\n colorClasses.value,\n {\n [`text-${props.align}`]: props.align !== undefined,\n 'flex-row': props.imgPlacement === 'start',\n 'flex-row-reverse': props.imgPlacement === 'end',\n },\n])\n\nconst imgAttr = computed(() => ({\n src: props.imgSrc,\n alt: props.imgAlt,\n height: props.imgHeight,\n width: props.imgWidth,\n placement: props.imgPlacement,\n}))\n\nconst ReusableImg = createReusableTemplate()\n</script>\n"],"names":["_props","__props","props","useDefaults","baseAlignmentClasses","computed","placement","computedImgProps","omit","computedClasses","useColorVariantClasses","slots","_useSlots","hasTitleSlot","isEmptySlot","title","hasSubtitleSlot","subtitle","colorClasses","value","overlay","hasHeaderSlot","header","hasFooterSlot","footer","align","imgPlacement","imgAttr","src","imgSrc","alt","imgAlt","height","imgHeight","width","imgWidth","ReusableImg","createReusableTemplate"],"mappings":"ygCAWA,MAAMA,EAASC,EAsBTC,EAAQC,EAAAA,YAAYH,EAAQ,YAE5BI,EAAuBC,EAAAA,UAAS,KAAO,CAC3C,eAAoC,QAApBH,EAAMI,UAEtB,eAAoC,QAApBJ,EAAMI,UACtB,kBAAuC,WAApBJ,EAAMI,UAEzB,iBAAsC,UAApBJ,EAAMI,UACxB,WAAgC,YAApBJ,EAAMI,cAGdC,EAAmBF,EAAAA,UAAS,IAAMG,EAAAA,KAAKN,EAAO,CAAC,wXC/BrD,MAAMA,EAAQD,EAiBRQ,EAAkBC,yBAAuBR,qkBCpB/C,MAAMF,EAASC,EAWTC,EAAQC,EAAAA,YAAYH,EAAQ,uRCVlC,MAAMA,EAASC,EAITC,EAAQC,EAAAA,YAAYH,EAAQ,8YCHlC,MAAMA,EAASC,EAKTC,EAAQC,EAAAA,YAAYH,EAAQ,iBAO5BS,EAAkBC,yBAAuBR,koBCQ/C,MAAMF,EAASC,EAeTC,EAAQC,EAAAA,YAAYH,EAAQ,aAE5BW,EAAQC,EAAAA,WASRC,EAAeR,EAAAA,UAAS,KAAOS,EAAYA,YAAAH,EAAMI,SACjDC,EAAkBX,EAAAA,UAAS,KAAOS,EAAYA,YAAAH,EAAMM,YAEpDC,EAAeR,yBAAuBR,GACtCO,EAAkBJ,EAAAA,UAAS,IAAM,CACrCa,EAAaC,MACbjB,EAAMkB,QAAU,mBAAqB,ylCCpDvC,MAAMpB,EAASC,EAWTC,EAAQC,EAAAA,YAAYH,EAAQ,w1CCiDlC,MAAMA,EAASC,EA0CTC,EAAQC,EAAAA,YAAYH,EAAQ,SAE5BW,EAAQC,EAAAA,WAWRS,EAAgBhB,EAAAA,UAAS,KAAOS,EAAYA,YAAAH,EAAMW,UAClDC,EAAgBlB,EAAAA,UAAS,KAAOS,EAAYA,YAAAH,EAAMa,UAElDN,EAAeR,yBAAuBR,GACtCO,EAAkBJ,EAAAA,UAAS,IAAM,CACrCa,EAAaC,MACb,CACE,CAAC,QAAQjB,EAAMuB,cAA0B,IAAhBvB,EAAMuB,MAC/B,WAAmC,UAAvBvB,EAAMwB,aAClB,mBAA2C,QAAvBxB,EAAMwB,iBAIxBC,EAAUtB,EAAAA,UAAS,KAAO,CAC9BuB,IAAK1B,EAAM2B,OACXC,IAAK5B,EAAM6B,OACXC,OAAQ9B,EAAM+B,UACdC,MAAOhC,EAAMiC,SACb7B,UAAWJ,EAAMwB,iBAGbU,EAAcC,EAAAA"}
|
|
1
|
+
{"version":3,"file":"BCard.vue_vue_type_script_setup_true_lang-BqdbfWMb.js","sources":["../src/components/BCard/BCardImg.vue","../src/components/BCardHeadFoot.vue","../src/components/BCard/BCardHeader.vue","../src/components/BCard/BCardTitle.vue","../src/components/BCard/BCardSubtitle.vue","../src/components/BCard/BCardBody.vue","../src/components/BCard/BCardFooter.vue","../src/components/BCard/BCard.vue"],"sourcesContent":["<template>\n <BImg v-bind=\"computedImgProps\" :class=\"baseAlignmentClasses\" />\n</template>\n\n<script setup lang=\"ts\">\nimport BImg from '../BImg/BImg.vue'\nimport type {BCardImgProps} from '../../types/ComponentProps'\nimport {omit} from '../../utils/object'\nimport {computed} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\n\nconst _props = withDefaults(defineProps<BCardImgProps>(), {\n placement: 'top',\n // BImg props\n blank: undefined,\n blankColor: undefined,\n block: undefined,\n fluid: undefined,\n fluidGrow: undefined,\n height: undefined,\n lazy: undefined,\n rounded: undefined,\n roundedBottom: undefined,\n roundedEnd: undefined,\n roundedStart: undefined,\n roundedTop: undefined,\n sizes: undefined,\n src: undefined,\n srcset: undefined,\n thumbnail: undefined,\n width: undefined,\n // End BImg props\n})\nconst props = useDefaults(_props, 'BCardImg')\n\nconst baseAlignmentClasses = computed(() => ({\n 'card-img-top': props.placement === 'top',\n // TODO implement this class\n 'card-img-end': props.placement === 'end',\n 'card-img-bottom': props.placement === 'bottom',\n // TODO implement this class\n 'card-img-start': props.placement === 'start',\n 'card-img': props.placement === 'overlay',\n}))\n\nconst computedImgProps = computed(() => omit(props, ['placement']))\n</script>\n","<template>\n <component :is=\"tag\" :class=\"computedClasses\">\n <!-- eslint-disable-next-line vue/no-v-html -->\n <div v-if=\"!!html\" v-html=\"html\" />\n <slot v-else>\n {{ text }}\n </slot>\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport type {BCardHeadFootProps} from '../types/ComponentProps'\nimport {useColorVariantClasses} from '../composables/useColorVariantClasses'\n\nconst props = withDefaults(defineProps<BCardHeadFootProps>(), {\n borderVariant: null,\n html: undefined,\n tag: 'div',\n text: undefined,\n // ColorExtendables props\n bgVariant: null,\n textVariant: null,\n variant: null,\n // End ColorExtendables props\n})\n\ndefineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n}>()\n\nconst computedClasses = useColorVariantClasses(props)\n</script>\n","<template>\n <BCardHeadFoot class=\"card-header\" v-bind=\"props\">\n <slot />\n </BCardHeadFoot>\n</template>\n\n<script setup lang=\"ts\">\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BCardHeadFootProps} from '../../types/ComponentProps'\nimport BCardHeadFoot from '../BCardHeadFoot.vue'\n\nconst _props = withDefaults(defineProps<BCardHeadFootProps>(), {\n borderVariant: undefined,\n html: undefined,\n tag: 'div',\n text: undefined,\n // ColorExtendables props\n bgVariant: undefined,\n textVariant: undefined,\n variant: undefined,\n // End ColorExtendables props\n})\nconst props = useDefaults(_props, 'BCardHeader')\n\ndefineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n}>()\n</script>\n","<template>\n <component :is=\"props.tag\" class=\"card-title\">\n <slot>\n {{ props.text }}\n </slot>\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BCardTitleProps} from '../../types/ComponentProps'\n\nconst _props = withDefaults(defineProps<BCardTitleProps>(), {\n tag: 'h4',\n text: undefined,\n})\nconst props = useDefaults(_props, 'BCardTitle')\n\ndefineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n}>()\n</script>\n","<template>\n <component :is=\"props.tag\" class=\"card-subtitle mb-2\" :class=\"computedClasses\">\n <slot>\n {{ props.text }}\n </slot>\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BCardSubtitleProps} from '../../types/ComponentProps'\n\nconst _props = withDefaults(defineProps<BCardSubtitleProps>(), {\n tag: 'h6',\n text: undefined,\n textVariant: 'body-secondary',\n})\nconst props = useDefaults(_props, 'BCardSubtitle')\n\ndefineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n}>()\n\nconst computedClasses = useColorVariantClasses(props)\n</script>\n","<template>\n <component :is=\"props.tag\" :class=\"computedClasses\">\n <BCardTitle v-if=\"!!props.title || hasTitleSlot\" :tag=\"props.titleTag\">\n <slot name=\"title\">\n {{ props.title }}\n </slot>\n </BCardTitle>\n\n <BCardSubtitle\n v-if=\"!!props.subtitle || hasSubtitleSlot\"\n :tag=\"props.subtitleTag\"\n :text-variant=\"props.subtitleTextVariant\"\n >\n <slot name=\"subtitle\">\n {{ props.subtitle }}\n </slot>\n </BCardSubtitle>\n\n <slot>\n {{ props.text }}\n </slot>\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed} from 'vue'\nimport BCardTitle from './BCardTitle.vue'\nimport {isEmptySlot} from '../../utils/dom'\nimport BCardSubtitle from './BCardSubtitle.vue'\nimport type {BCardBodyProps} from '../../types/ComponentProps'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport {useDefaults} from '../../composables/useDefaults'\n\nconst _props = withDefaults(defineProps<BCardBodyProps>(), {\n overlay: false,\n subtitle: undefined,\n subtitleTag: 'h4',\n subtitleTextVariant: undefined,\n tag: 'div',\n text: undefined,\n title: undefined,\n titleTag: 'h4',\n // ColorExtendables props\n bgVariant: null,\n textVariant: null,\n variant: null,\n // End ColorExtendables props\n})\nconst props = useDefaults(_props, 'BCardBody')\n\nconst slots = defineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n subtitle?: (props: Record<string, never>) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n title?: (props: Record<string, never>) => any\n}>()\n\nconst hasTitleSlot = computed(() => !isEmptySlot(slots.title))\nconst hasSubtitleSlot = computed(() => !isEmptySlot(slots.subtitle))\n\nconst colorClasses = useColorVariantClasses(props)\nconst computedClasses = computed(() => [\n colorClasses.value,\n props.overlay ? 'card-img-overlay' : 'card-body',\n])\n</script>\n","<template>\n <BCardHeadFoot class=\"card-footer\" v-bind=\"props\">\n <slot>\n {{ props.text }}\n </slot>\n </BCardHeadFoot>\n</template>\n\n<script setup lang=\"ts\">\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BCardHeadFootProps} from '../../types/ComponentProps'\nimport BCardHeadFoot from '../BCardHeadFoot.vue'\n\nconst _props = withDefaults(defineProps<BCardHeadFootProps>(), {\n borderVariant: undefined,\n html: undefined,\n tag: 'div',\n text: undefined,\n // ColorExtendables props\n bgVariant: undefined,\n textVariant: undefined,\n variant: undefined,\n // End ColorExtendables props\n})\nconst props = useDefaults(_props, 'BCardFooter')\n\ndefineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n}>()\n</script>\n","<template>\n <component :is=\"props.tag\" class=\"card\" :class=\"computedClasses\">\n <ReusableImg.define>\n <slot name=\"img\">\n <BCardImg v-if=\"props.imgSrc\" v-bind=\"imgAttr\" />\n </slot>\n </ReusableImg.define>\n\n <ReusableImg.reuse v-if=\"props.imgPlacement !== 'bottom'\" />\n <BCardHeader\n v-if=\"props.header || hasHeaderSlot || props.headerHtml\"\n :bg-variant=\"props.headerBgVariant\"\n :variant=\"props.headerVariant\"\n :border-variant=\"props.headerBorderVariant\"\n :html=\"props.headerHtml\"\n :tag=\"props.headerTag\"\n :text-variant=\"props.headerTextVariant\"\n :class=\"props.headerClass\"\n >\n <slot name=\"header\">\n {{ props.header }}\n </slot>\n </BCardHeader>\n <BCardBody\n v-if=\"!props.noBody\"\n :overlay=\"props.imgPlacement === 'overlay'\"\n :bg-variant=\"props.bodyBgVariant\"\n :tag=\"props.bodyTag\"\n :text-variant=\"props.bodyTextVariant\"\n :subtitle=\"props.subtitle\"\n :subtitle-tag=\"props.subtitleTag\"\n :subtitle-text-variant=\"props.subtitleTextVariant\"\n :title=\"props.title\"\n :title-tag=\"props.titleTag\"\n :class=\"props.bodyClass\"\n >\n <slot>\n {{ props.bodyText }}\n </slot>\n </BCardBody>\n <slot v-else>\n {{ props.bodyText }}\n </slot>\n <BCardFooter\n v-if=\"props.footer || hasFooterSlot || props.footerHtml\"\n :bg-variant=\"props.footerBgVariant\"\n :border-variant=\"props.footerBorderVariant\"\n :variant=\"props.footerVariant\"\n :html=\"props.footerHtml\"\n :tag=\"props.footerTag\"\n :text-variant=\"props.footerTextVariant\"\n :class=\"props.footerClass\"\n >\n <slot name=\"footer\">\n {{ props.footer }}\n </slot>\n </BCardFooter>\n <ReusableImg.reuse v-if=\"props.imgPlacement === 'bottom'\" />\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport type {BCardProps} from '../../types/ComponentProps'\nimport {isEmptySlot} from '../../utils/dom'\nimport {computed} from 'vue'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport {useDefaults} from '../../composables/useDefaults'\nimport BCardImg from './BCardImg.vue'\nimport BCardHeader from './BCardHeader.vue'\nimport BCardBody from './BCardBody.vue'\nimport BCardFooter from './BCardFooter.vue'\nimport {createReusableTemplate} from '@vueuse/core'\n\nconst _props = withDefaults(defineProps<BCardProps>(), {\n align: undefined,\n bodyBgVariant: undefined,\n bodyClass: undefined,\n bodyTag: 'div',\n bodyText: '',\n bodyTextVariant: undefined,\n borderVariant: null,\n footer: undefined,\n footerBgVariant: undefined,\n footerBorderVariant: undefined,\n footerClass: undefined,\n footerHtml: '',\n footerTag: 'div',\n footerTextVariant: undefined,\n footerVariant: null,\n header: undefined,\n headerBgVariant: undefined,\n headerBorderVariant: undefined,\n headerClass: undefined,\n headerHtml: '',\n headerTag: 'div',\n headerTextVariant: undefined,\n headerVariant: null,\n imgAlt: undefined,\n imgPlacement: 'top',\n imgHeight: undefined,\n imgSrc: undefined,\n imgWidth: undefined,\n noBody: false,\n subtitle: undefined,\n subtitleTag: 'h6',\n subtitleTextVariant: 'body-secondary',\n tag: 'div',\n title: undefined,\n titleTag: 'h4',\n // ColorExtendables props\n bgVariant: null,\n textVariant: null,\n variant: null,\n // End ColorExtendables props\n})\nconst props = useDefaults(_props, 'BCard')\n\nconst slots = defineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n footer?: (props: Record<string, never>) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n header?: (props: Record<string, never>) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n img?: (props: Record<string, never>) => any\n}>()\n\nconst hasHeaderSlot = computed(() => !isEmptySlot(slots.header))\nconst hasFooterSlot = computed(() => !isEmptySlot(slots.footer))\n\nconst colorClasses = useColorVariantClasses(props)\nconst computedClasses = computed(() => [\n colorClasses.value,\n {\n [`text-${props.align}`]: props.align !== undefined,\n 'flex-row': props.imgPlacement === 'start',\n 'flex-row-reverse': props.imgPlacement === 'end',\n },\n])\n\nconst imgAttr = computed(() => ({\n src: props.imgSrc,\n alt: props.imgAlt,\n height: props.imgHeight,\n width: props.imgWidth,\n placement: props.imgPlacement,\n}))\n\nconst ReusableImg = createReusableTemplate()\n</script>\n"],"names":["_props","__props","props","useDefaults","baseAlignmentClasses","computed","placement","computedImgProps","omit","computedClasses","useColorVariantClasses","slots","_useSlots","hasTitleSlot","isEmptySlot","title","hasSubtitleSlot","subtitle","colorClasses","value","overlay","hasHeaderSlot","header","hasFooterSlot","footer","align","imgPlacement","imgAttr","src","imgSrc","alt","imgAlt","height","imgHeight","width","imgWidth","ReusableImg","createReusableTemplate"],"mappings":"ygCAWA,MAAMA,EAASC,EAsBTC,EAAQC,EAAAA,YAAYH,EAAQ,YAE5BI,EAAuBC,EAAAA,UAAS,KAAO,CAC3C,eAAoC,QAApBH,EAAMI,UAEtB,eAAoC,QAApBJ,EAAMI,UACtB,kBAAuC,WAApBJ,EAAMI,UAEzB,iBAAsC,UAApBJ,EAAMI,UACxB,WAAgC,YAApBJ,EAAMI,cAGdC,EAAmBF,EAAAA,UAAS,IAAMG,EAAAA,KAAKN,EAAO,CAAC,wXC/BrD,MAAMA,EAAQD,EAiBRQ,EAAkBC,yBAAuBR,qkBCpB/C,MAAMF,EAASC,EAWTC,EAAQC,EAAAA,YAAYH,EAAQ,uRCVlC,MAAMA,EAASC,EAITC,EAAQC,EAAAA,YAAYH,EAAQ,8YCHlC,MAAMA,EAASC,EAKTC,EAAQC,EAAAA,YAAYH,EAAQ,iBAO5BS,EAAkBC,yBAAuBR,koBCQ/C,MAAMF,EAASC,EAeTC,EAAQC,EAAAA,YAAYH,EAAQ,aAE5BW,EAAQC,EAAAA,WASRC,EAAeR,EAAAA,UAAS,KAAOS,EAAYA,YAAAH,EAAMI,SACjDC,EAAkBX,EAAAA,UAAS,KAAOS,EAAYA,YAAAH,EAAMM,YAEpDC,EAAeR,yBAAuBR,GACtCO,EAAkBJ,EAAAA,UAAS,IAAM,CACrCa,EAAaC,MACbjB,EAAMkB,QAAU,mBAAqB,ylCCpDvC,MAAMpB,EAASC,EAWTC,EAAQC,EAAAA,YAAYH,EAAQ,w1CCiDlC,MAAMA,EAASC,EA0CTC,EAAQC,EAAAA,YAAYH,EAAQ,SAE5BW,EAAQC,EAAAA,WAWRS,EAAgBhB,EAAAA,UAAS,KAAOS,EAAYA,YAAAH,EAAMW,UAClDC,EAAgBlB,EAAAA,UAAS,KAAOS,EAAYA,YAAAH,EAAMa,UAElDN,EAAeR,yBAAuBR,GACtCO,EAAkBJ,EAAAA,UAAS,IAAM,CACrCa,EAAaC,MACb,CACE,CAAC,QAAQjB,EAAMuB,cAA0B,IAAhBvB,EAAMuB,MAC/B,WAAmC,UAAvBvB,EAAMwB,aAClB,mBAA2C,QAAvBxB,EAAMwB,iBAIxBC,EAAUtB,EAAAA,UAAS,KAAO,CAC9BuB,IAAK1B,EAAM2B,OACXC,IAAK5B,EAAM6B,OACXC,OAAQ9B,EAAM+B,UACdC,MAAOhC,EAAMiC,SACb7B,UAAWJ,EAAMwB,iBAGbU,EAAcC,EAAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { defineComponent, computed, openBlock, createBlock, mergeProps, resolveDynamicComponent, normalizeClass, unref, withCtx, createElementBlock, renderSlot, createTextVNode, toDisplayString, useSlots, createCommentVNode, createVNode, normalizeProps } from "vue";
|
|
2
|
-
import { i as isEmptySlot } from "./dom-
|
|
2
|
+
import { i as isEmptySlot } from "./dom-BUCypNEC.mjs";
|
|
3
3
|
import { u as useColorVariantClasses } from "./useColorVariantClasses-ZDE19TZw.mjs";
|
|
4
4
|
import { u as useDefaults } from "./useDefaults-6tLPt05C.mjs";
|
|
5
5
|
import { _ as _sfc_main$8 } from "./BImg.vue_vue_type_script_setup_true_lang-D-lfs4yb.mjs";
|
|
@@ -388,4 +388,4 @@ export {
|
|
|
388
388
|
_sfc_main$3 as e,
|
|
389
389
|
_sfc_main$4 as f
|
|
390
390
|
};
|
|
391
|
-
//# sourceMappingURL=BCard.vue_vue_type_script_setup_true_lang-
|
|
391
|
+
//# sourceMappingURL=BCard.vue_vue_type_script_setup_true_lang-D6Igu7rn.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BCard.vue_vue_type_script_setup_true_lang-CX1FMcek.mjs","sources":["../src/components/BCard/BCardImg.vue","../src/components/BCardHeadFoot.vue","../src/components/BCard/BCardHeader.vue","../src/components/BCard/BCardTitle.vue","../src/components/BCard/BCardSubtitle.vue","../src/components/BCard/BCardBody.vue","../src/components/BCard/BCardFooter.vue","../src/components/BCard/BCard.vue"],"sourcesContent":["<template>\n <BImg v-bind=\"computedImgProps\" :class=\"baseAlignmentClasses\" />\n</template>\n\n<script setup lang=\"ts\">\nimport BImg from '../BImg/BImg.vue'\nimport type {BCardImgProps} from '../../types/ComponentProps'\nimport {omit} from '../../utils/object'\nimport {computed} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\n\nconst _props = withDefaults(defineProps<BCardImgProps>(), {\n placement: 'top',\n // BImg props\n blank: undefined,\n blankColor: undefined,\n block: undefined,\n fluid: undefined,\n fluidGrow: undefined,\n height: undefined,\n lazy: undefined,\n rounded: undefined,\n roundedBottom: undefined,\n roundedEnd: undefined,\n roundedStart: undefined,\n roundedTop: undefined,\n sizes: undefined,\n src: undefined,\n srcset: undefined,\n thumbnail: undefined,\n width: undefined,\n // End BImg props\n})\nconst props = useDefaults(_props, 'BCardImg')\n\nconst baseAlignmentClasses = computed(() => ({\n 'card-img-top': props.placement === 'top',\n // TODO implement this class\n 'card-img-end': props.placement === 'end',\n 'card-img-bottom': props.placement === 'bottom',\n // TODO implement this class\n 'card-img-start': props.placement === 'start',\n 'card-img': props.placement === 'overlay',\n}))\n\nconst computedImgProps = computed(() => omit(props, ['placement']))\n</script>\n","<template>\n <component :is=\"tag\" :class=\"computedClasses\">\n <!-- eslint-disable-next-line vue/no-v-html -->\n <div v-if=\"!!html\" v-html=\"html\" />\n <slot v-else>\n {{ text }}\n </slot>\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport type {BCardHeadFootProps} from '../types/ComponentProps'\nimport {useColorVariantClasses} from '../composables/useColorVariantClasses'\n\nconst props = withDefaults(defineProps<BCardHeadFootProps>(), {\n borderVariant: null,\n html: undefined,\n tag: 'div',\n text: undefined,\n // ColorExtendables props\n bgVariant: null,\n textVariant: null,\n variant: null,\n // End ColorExtendables props\n})\n\ndefineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n}>()\n\nconst computedClasses = useColorVariantClasses(props)\n</script>\n","<template>\n <BCardHeadFoot class=\"card-header\" v-bind=\"props\">\n <slot />\n </BCardHeadFoot>\n</template>\n\n<script setup lang=\"ts\">\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BCardHeadFootProps} from '../../types/ComponentProps'\nimport BCardHeadFoot from '../BCardHeadFoot.vue'\n\nconst _props = withDefaults(defineProps<BCardHeadFootProps>(), {\n borderVariant: undefined,\n html: undefined,\n tag: 'div',\n text: undefined,\n // ColorExtendables props\n bgVariant: undefined,\n textVariant: undefined,\n variant: undefined,\n // End ColorExtendables props\n})\nconst props = useDefaults(_props, 'BCardHeader')\n\ndefineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n}>()\n</script>\n","<template>\n <component :is=\"props.tag\" class=\"card-title\">\n <slot>\n {{ props.text }}\n </slot>\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BCardTitleProps} from '../../types/ComponentProps'\n\nconst _props = withDefaults(defineProps<BCardTitleProps>(), {\n tag: 'h4',\n text: undefined,\n})\nconst props = useDefaults(_props, 'BCardTitle')\n\ndefineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n}>()\n</script>\n","<template>\n <component :is=\"props.tag\" class=\"card-subtitle mb-2\" :class=\"computedClasses\">\n <slot>\n {{ props.text }}\n </slot>\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BCardSubtitleProps} from '../../types/ComponentProps'\n\nconst _props = withDefaults(defineProps<BCardSubtitleProps>(), {\n tag: 'h6',\n text: undefined,\n textVariant: 'body-secondary',\n})\nconst props = useDefaults(_props, 'BCardSubtitle')\n\ndefineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n}>()\n\nconst computedClasses = useColorVariantClasses(props)\n</script>\n","<template>\n <component :is=\"props.tag\" :class=\"computedClasses\">\n <BCardTitle v-if=\"!!props.title || hasTitleSlot\" :tag=\"props.titleTag\">\n <slot name=\"title\">\n {{ props.title }}\n </slot>\n </BCardTitle>\n\n <BCardSubtitle\n v-if=\"!!props.subtitle || hasSubtitleSlot\"\n :tag=\"props.subtitleTag\"\n :text-variant=\"props.subtitleTextVariant\"\n >\n <slot name=\"subtitle\">\n {{ props.subtitle }}\n </slot>\n </BCardSubtitle>\n\n <slot>\n {{ props.text }}\n </slot>\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed} from 'vue'\nimport BCardTitle from './BCardTitle.vue'\nimport {isEmptySlot} from '../../utils/dom'\nimport BCardSubtitle from './BCardSubtitle.vue'\nimport type {BCardBodyProps} from '../../types/ComponentProps'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport {useDefaults} from '../../composables/useDefaults'\n\nconst _props = withDefaults(defineProps<BCardBodyProps>(), {\n overlay: false,\n subtitle: undefined,\n subtitleTag: 'h4',\n subtitleTextVariant: undefined,\n tag: 'div',\n text: undefined,\n title: undefined,\n titleTag: 'h4',\n // ColorExtendables props\n bgVariant: null,\n textVariant: null,\n variant: null,\n // End ColorExtendables props\n})\nconst props = useDefaults(_props, 'BCardBody')\n\nconst slots = defineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n subtitle?: (props: Record<string, never>) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n title?: (props: Record<string, never>) => any\n}>()\n\nconst hasTitleSlot = computed(() => !isEmptySlot(slots.title))\nconst hasSubtitleSlot = computed(() => !isEmptySlot(slots.subtitle))\n\nconst colorClasses = useColorVariantClasses(props)\nconst computedClasses = computed(() => [\n colorClasses.value,\n props.overlay ? 'card-img-overlay' : 'card-body',\n])\n</script>\n","<template>\n <BCardHeadFoot class=\"card-footer\" v-bind=\"props\">\n <slot>\n {{ props.text }}\n </slot>\n </BCardHeadFoot>\n</template>\n\n<script setup lang=\"ts\">\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BCardHeadFootProps} from '../../types/ComponentProps'\nimport BCardHeadFoot from '../BCardHeadFoot.vue'\n\nconst _props = withDefaults(defineProps<BCardHeadFootProps>(), {\n borderVariant: undefined,\n html: undefined,\n tag: 'div',\n text: undefined,\n // ColorExtendables props\n bgVariant: undefined,\n textVariant: undefined,\n variant: undefined,\n // End ColorExtendables props\n})\nconst props = useDefaults(_props, 'BCardFooter')\n\ndefineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n}>()\n</script>\n","<template>\n <component :is=\"props.tag\" class=\"card\" :class=\"computedClasses\">\n <ReusableImg.define>\n <slot name=\"img\">\n <BCardImg v-if=\"props.imgSrc\" v-bind=\"imgAttr\" />\n </slot>\n </ReusableImg.define>\n\n <ReusableImg.reuse v-if=\"props.imgPlacement !== 'bottom'\" />\n <BCardHeader\n v-if=\"props.header || hasHeaderSlot || props.headerHtml\"\n :bg-variant=\"props.headerBgVariant\"\n :variant=\"props.headerVariant\"\n :border-variant=\"props.headerBorderVariant\"\n :html=\"props.headerHtml\"\n :tag=\"props.headerTag\"\n :text-variant=\"props.headerTextVariant\"\n :class=\"props.headerClass\"\n >\n <slot name=\"header\">\n {{ props.header }}\n </slot>\n </BCardHeader>\n <BCardBody\n v-if=\"!props.noBody\"\n :overlay=\"props.imgPlacement === 'overlay'\"\n :bg-variant=\"props.bodyBgVariant\"\n :tag=\"props.bodyTag\"\n :text-variant=\"props.bodyTextVariant\"\n :subtitle=\"props.subtitle\"\n :subtitle-tag=\"props.subtitleTag\"\n :subtitle-text-variant=\"props.subtitleTextVariant\"\n :title=\"props.title\"\n :title-tag=\"props.titleTag\"\n :class=\"props.bodyClass\"\n >\n <slot>\n {{ props.bodyText }}\n </slot>\n </BCardBody>\n <slot v-else>\n {{ props.bodyText }}\n </slot>\n <BCardFooter\n v-if=\"props.footer || hasFooterSlot || props.footerHtml\"\n :bg-variant=\"props.footerBgVariant\"\n :border-variant=\"props.footerBorderVariant\"\n :variant=\"props.footerVariant\"\n :html=\"props.footerHtml\"\n :tag=\"props.footerTag\"\n :text-variant=\"props.footerTextVariant\"\n :class=\"props.footerClass\"\n >\n <slot name=\"footer\">\n {{ props.footer }}\n </slot>\n </BCardFooter>\n <ReusableImg.reuse v-if=\"props.imgPlacement === 'bottom'\" />\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport type {BCardProps} from '../../types/ComponentProps'\nimport {isEmptySlot} from '../../utils/dom'\nimport {computed} from 'vue'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport {useDefaults} from '../../composables/useDefaults'\nimport BCardImg from './BCardImg.vue'\nimport BCardHeader from './BCardHeader.vue'\nimport BCardBody from './BCardBody.vue'\nimport BCardFooter from './BCardFooter.vue'\nimport {createReusableTemplate} from '@vueuse/core'\n\nconst _props = withDefaults(defineProps<BCardProps>(), {\n align: undefined,\n bodyBgVariant: undefined,\n bodyClass: undefined,\n bodyTag: 'div',\n bodyText: '',\n bodyTextVariant: undefined,\n borderVariant: null,\n footer: undefined,\n footerBgVariant: undefined,\n footerBorderVariant: undefined,\n footerClass: undefined,\n footerHtml: '',\n footerTag: 'div',\n footerTextVariant: undefined,\n footerVariant: null,\n header: undefined,\n headerBgVariant: undefined,\n headerBorderVariant: undefined,\n headerClass: undefined,\n headerHtml: '',\n headerTag: 'div',\n headerTextVariant: undefined,\n headerVariant: null,\n imgAlt: undefined,\n imgPlacement: 'top',\n imgHeight: undefined,\n imgSrc: undefined,\n imgWidth: undefined,\n noBody: false,\n subtitle: undefined,\n subtitleTag: 'h6',\n subtitleTextVariant: 'body-secondary',\n tag: 'div',\n title: undefined,\n titleTag: 'h4',\n // ColorExtendables props\n bgVariant: null,\n textVariant: null,\n variant: null,\n // End ColorExtendables props\n})\nconst props = useDefaults(_props, 'BCard')\n\nconst slots = defineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n footer?: (props: Record<string, never>) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n header?: (props: Record<string, never>) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n img?: (props: Record<string, never>) => any\n}>()\n\nconst hasHeaderSlot = computed(() => !isEmptySlot(slots.header))\nconst hasFooterSlot = computed(() => !isEmptySlot(slots.footer))\n\nconst colorClasses = useColorVariantClasses(props)\nconst computedClasses = computed(() => [\n colorClasses.value,\n {\n [`text-${props.align}`]: props.align !== undefined,\n 'flex-row': props.imgPlacement === 'start',\n 'flex-row-reverse': props.imgPlacement === 'end',\n },\n])\n\nconst imgAttr = computed(() => ({\n src: props.imgSrc,\n alt: props.imgAlt,\n height: props.imgHeight,\n width: props.imgWidth,\n placement: props.imgPlacement,\n}))\n\nconst ReusableImg = createReusableTemplate()\n</script>\n"],"names":["_useSlots"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWA,UAAM,SAAS;AAsBT,UAAA,QAAQ,YAAY,QAAQ,UAAU;AAEtC,UAAA,uBAAuB,SAAS,OAAO;AAAA,MAC3C,gBAAgB,MAAM,cAAc;AAAA;AAAA,MAEpC,gBAAgB,MAAM,cAAc;AAAA,MACpC,mBAAmB,MAAM,cAAc;AAAA;AAAA,MAEvC,kBAAkB,MAAM,cAAc;AAAA,MACtC,YAAY,MAAM,cAAc;AAAA,IAChC,EAAA;AAEI,UAAA,mBAAmB,SAAS,MAAM,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;;;;;;;;;;;;;;;;;;;AC/BlE,UAAM,QAAQ;AAiBR,UAAA,kBAAkB,uBAAuB,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpBpD,UAAM,SAAS;AAWT,UAAA,QAAQ,YAAY,QAAQ,aAAa;;;;;;;;;;;;;;;;;;ACV/C,UAAM,SAAS;AAIT,UAAA,QAAQ,YAAY,QAAQ,YAAY;;;;;;;;;;;;;;;;;;;;;ACH9C,UAAM,SAAS;AAKT,UAAA,QAAQ,YAAY,QAAQ,eAAe;AAO3C,UAAA,kBAAkB,uBAAuB,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACQpD,UAAM,SAAS;AAeT,UAAA,QAAQ,YAAY,QAAQ,WAAW;AAE7C,UAAM,QAAQA;AASd,UAAM,eAAe,SAAS,MAAM,CAAC,YAAY,MAAM,KAAK,CAAC;AAC7D,UAAM,kBAAkB,SAAS,MAAM,CAAC,YAAY,MAAM,QAAQ,CAAC;AAE7D,UAAA,eAAe,uBAAuB,KAAK;AAC3C,UAAA,kBAAkB,SAAS,MAAM;AAAA,MACrC,aAAa;AAAA,MACb,MAAM,UAAU,qBAAqB;AAAA,IAAA,CACtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrDD,UAAM,SAAS;AAWT,UAAA,QAAQ,YAAY,QAAQ,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACiD/C,UAAM,SAAS;AA0CT,UAAA,QAAQ,YAAY,QAAQ,OAAO;AAEzC,UAAM,QAAQA;AAWd,UAAM,gBAAgB,SAAS,MAAM,CAAC,YAAY,MAAM,MAAM,CAAC;AAC/D,UAAM,gBAAgB,SAAS,MAAM,CAAC,YAAY,MAAM,MAAM,CAAC;AAEzD,UAAA,eAAe,uBAAuB,KAAK;AAC3C,UAAA,kBAAkB,SAAS,MAAM;AAAA,MACrC,aAAa;AAAA,MACb;AAAA,QACE,CAAC,QAAQ,MAAM,KAAK,EAAE,GAAG,MAAM,UAAU;AAAA,QACzC,YAAY,MAAM,iBAAiB;AAAA,QACnC,oBAAoB,MAAM,iBAAiB;AAAA,MAC7C;AAAA,IAAA,CACD;AAEK,UAAA,UAAU,SAAS,OAAO;AAAA,MAC9B,KAAK,MAAM;AAAA,MACX,KAAK,MAAM;AAAA,MACX,QAAQ,MAAM;AAAA,MACd,OAAO,MAAM;AAAA,MACb,WAAW,MAAM;AAAA,IACjB,EAAA;AAEF,UAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"BCard.vue_vue_type_script_setup_true_lang-D6Igu7rn.mjs","sources":["../src/components/BCard/BCardImg.vue","../src/components/BCardHeadFoot.vue","../src/components/BCard/BCardHeader.vue","../src/components/BCard/BCardTitle.vue","../src/components/BCard/BCardSubtitle.vue","../src/components/BCard/BCardBody.vue","../src/components/BCard/BCardFooter.vue","../src/components/BCard/BCard.vue"],"sourcesContent":["<template>\n <BImg v-bind=\"computedImgProps\" :class=\"baseAlignmentClasses\" />\n</template>\n\n<script setup lang=\"ts\">\nimport BImg from '../BImg/BImg.vue'\nimport type {BCardImgProps} from '../../types/ComponentProps'\nimport {omit} from '../../utils/object'\nimport {computed} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\n\nconst _props = withDefaults(defineProps<BCardImgProps>(), {\n placement: 'top',\n // BImg props\n blank: undefined,\n blankColor: undefined,\n block: undefined,\n fluid: undefined,\n fluidGrow: undefined,\n height: undefined,\n lazy: undefined,\n rounded: undefined,\n roundedBottom: undefined,\n roundedEnd: undefined,\n roundedStart: undefined,\n roundedTop: undefined,\n sizes: undefined,\n src: undefined,\n srcset: undefined,\n thumbnail: undefined,\n width: undefined,\n // End BImg props\n})\nconst props = useDefaults(_props, 'BCardImg')\n\nconst baseAlignmentClasses = computed(() => ({\n 'card-img-top': props.placement === 'top',\n // TODO implement this class\n 'card-img-end': props.placement === 'end',\n 'card-img-bottom': props.placement === 'bottom',\n // TODO implement this class\n 'card-img-start': props.placement === 'start',\n 'card-img': props.placement === 'overlay',\n}))\n\nconst computedImgProps = computed(() => omit(props, ['placement']))\n</script>\n","<template>\n <component :is=\"tag\" :class=\"computedClasses\">\n <!-- eslint-disable-next-line vue/no-v-html -->\n <div v-if=\"!!html\" v-html=\"html\" />\n <slot v-else>\n {{ text }}\n </slot>\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport type {BCardHeadFootProps} from '../types/ComponentProps'\nimport {useColorVariantClasses} from '../composables/useColorVariantClasses'\n\nconst props = withDefaults(defineProps<BCardHeadFootProps>(), {\n borderVariant: null,\n html: undefined,\n tag: 'div',\n text: undefined,\n // ColorExtendables props\n bgVariant: null,\n textVariant: null,\n variant: null,\n // End ColorExtendables props\n})\n\ndefineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n}>()\n\nconst computedClasses = useColorVariantClasses(props)\n</script>\n","<template>\n <BCardHeadFoot class=\"card-header\" v-bind=\"props\">\n <slot />\n </BCardHeadFoot>\n</template>\n\n<script setup lang=\"ts\">\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BCardHeadFootProps} from '../../types/ComponentProps'\nimport BCardHeadFoot from '../BCardHeadFoot.vue'\n\nconst _props = withDefaults(defineProps<BCardHeadFootProps>(), {\n borderVariant: undefined,\n html: undefined,\n tag: 'div',\n text: undefined,\n // ColorExtendables props\n bgVariant: undefined,\n textVariant: undefined,\n variant: undefined,\n // End ColorExtendables props\n})\nconst props = useDefaults(_props, 'BCardHeader')\n\ndefineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n}>()\n</script>\n","<template>\n <component :is=\"props.tag\" class=\"card-title\">\n <slot>\n {{ props.text }}\n </slot>\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BCardTitleProps} from '../../types/ComponentProps'\n\nconst _props = withDefaults(defineProps<BCardTitleProps>(), {\n tag: 'h4',\n text: undefined,\n})\nconst props = useDefaults(_props, 'BCardTitle')\n\ndefineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n}>()\n</script>\n","<template>\n <component :is=\"props.tag\" class=\"card-subtitle mb-2\" :class=\"computedClasses\">\n <slot>\n {{ props.text }}\n </slot>\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BCardSubtitleProps} from '../../types/ComponentProps'\n\nconst _props = withDefaults(defineProps<BCardSubtitleProps>(), {\n tag: 'h6',\n text: undefined,\n textVariant: 'body-secondary',\n})\nconst props = useDefaults(_props, 'BCardSubtitle')\n\ndefineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n}>()\n\nconst computedClasses = useColorVariantClasses(props)\n</script>\n","<template>\n <component :is=\"props.tag\" :class=\"computedClasses\">\n <BCardTitle v-if=\"!!props.title || hasTitleSlot\" :tag=\"props.titleTag\">\n <slot name=\"title\">\n {{ props.title }}\n </slot>\n </BCardTitle>\n\n <BCardSubtitle\n v-if=\"!!props.subtitle || hasSubtitleSlot\"\n :tag=\"props.subtitleTag\"\n :text-variant=\"props.subtitleTextVariant\"\n >\n <slot name=\"subtitle\">\n {{ props.subtitle }}\n </slot>\n </BCardSubtitle>\n\n <slot>\n {{ props.text }}\n </slot>\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed} from 'vue'\nimport BCardTitle from './BCardTitle.vue'\nimport {isEmptySlot} from '../../utils/dom'\nimport BCardSubtitle from './BCardSubtitle.vue'\nimport type {BCardBodyProps} from '../../types/ComponentProps'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport {useDefaults} from '../../composables/useDefaults'\n\nconst _props = withDefaults(defineProps<BCardBodyProps>(), {\n overlay: false,\n subtitle: undefined,\n subtitleTag: 'h4',\n subtitleTextVariant: undefined,\n tag: 'div',\n text: undefined,\n title: undefined,\n titleTag: 'h4',\n // ColorExtendables props\n bgVariant: null,\n textVariant: null,\n variant: null,\n // End ColorExtendables props\n})\nconst props = useDefaults(_props, 'BCardBody')\n\nconst slots = defineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n subtitle?: (props: Record<string, never>) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n title?: (props: Record<string, never>) => any\n}>()\n\nconst hasTitleSlot = computed(() => !isEmptySlot(slots.title))\nconst hasSubtitleSlot = computed(() => !isEmptySlot(slots.subtitle))\n\nconst colorClasses = useColorVariantClasses(props)\nconst computedClasses = computed(() => [\n colorClasses.value,\n props.overlay ? 'card-img-overlay' : 'card-body',\n])\n</script>\n","<template>\n <BCardHeadFoot class=\"card-footer\" v-bind=\"props\">\n <slot>\n {{ props.text }}\n </slot>\n </BCardHeadFoot>\n</template>\n\n<script setup lang=\"ts\">\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BCardHeadFootProps} from '../../types/ComponentProps'\nimport BCardHeadFoot from '../BCardHeadFoot.vue'\n\nconst _props = withDefaults(defineProps<BCardHeadFootProps>(), {\n borderVariant: undefined,\n html: undefined,\n tag: 'div',\n text: undefined,\n // ColorExtendables props\n bgVariant: undefined,\n textVariant: undefined,\n variant: undefined,\n // End ColorExtendables props\n})\nconst props = useDefaults(_props, 'BCardFooter')\n\ndefineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n}>()\n</script>\n","<template>\n <component :is=\"props.tag\" class=\"card\" :class=\"computedClasses\">\n <ReusableImg.define>\n <slot name=\"img\">\n <BCardImg v-if=\"props.imgSrc\" v-bind=\"imgAttr\" />\n </slot>\n </ReusableImg.define>\n\n <ReusableImg.reuse v-if=\"props.imgPlacement !== 'bottom'\" />\n <BCardHeader\n v-if=\"props.header || hasHeaderSlot || props.headerHtml\"\n :bg-variant=\"props.headerBgVariant\"\n :variant=\"props.headerVariant\"\n :border-variant=\"props.headerBorderVariant\"\n :html=\"props.headerHtml\"\n :tag=\"props.headerTag\"\n :text-variant=\"props.headerTextVariant\"\n :class=\"props.headerClass\"\n >\n <slot name=\"header\">\n {{ props.header }}\n </slot>\n </BCardHeader>\n <BCardBody\n v-if=\"!props.noBody\"\n :overlay=\"props.imgPlacement === 'overlay'\"\n :bg-variant=\"props.bodyBgVariant\"\n :tag=\"props.bodyTag\"\n :text-variant=\"props.bodyTextVariant\"\n :subtitle=\"props.subtitle\"\n :subtitle-tag=\"props.subtitleTag\"\n :subtitle-text-variant=\"props.subtitleTextVariant\"\n :title=\"props.title\"\n :title-tag=\"props.titleTag\"\n :class=\"props.bodyClass\"\n >\n <slot>\n {{ props.bodyText }}\n </slot>\n </BCardBody>\n <slot v-else>\n {{ props.bodyText }}\n </slot>\n <BCardFooter\n v-if=\"props.footer || hasFooterSlot || props.footerHtml\"\n :bg-variant=\"props.footerBgVariant\"\n :border-variant=\"props.footerBorderVariant\"\n :variant=\"props.footerVariant\"\n :html=\"props.footerHtml\"\n :tag=\"props.footerTag\"\n :text-variant=\"props.footerTextVariant\"\n :class=\"props.footerClass\"\n >\n <slot name=\"footer\">\n {{ props.footer }}\n </slot>\n </BCardFooter>\n <ReusableImg.reuse v-if=\"props.imgPlacement === 'bottom'\" />\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport type {BCardProps} from '../../types/ComponentProps'\nimport {isEmptySlot} from '../../utils/dom'\nimport {computed} from 'vue'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport {useDefaults} from '../../composables/useDefaults'\nimport BCardImg from './BCardImg.vue'\nimport BCardHeader from './BCardHeader.vue'\nimport BCardBody from './BCardBody.vue'\nimport BCardFooter from './BCardFooter.vue'\nimport {createReusableTemplate} from '@vueuse/core'\n\nconst _props = withDefaults(defineProps<BCardProps>(), {\n align: undefined,\n bodyBgVariant: undefined,\n bodyClass: undefined,\n bodyTag: 'div',\n bodyText: '',\n bodyTextVariant: undefined,\n borderVariant: null,\n footer: undefined,\n footerBgVariant: undefined,\n footerBorderVariant: undefined,\n footerClass: undefined,\n footerHtml: '',\n footerTag: 'div',\n footerTextVariant: undefined,\n footerVariant: null,\n header: undefined,\n headerBgVariant: undefined,\n headerBorderVariant: undefined,\n headerClass: undefined,\n headerHtml: '',\n headerTag: 'div',\n headerTextVariant: undefined,\n headerVariant: null,\n imgAlt: undefined,\n imgPlacement: 'top',\n imgHeight: undefined,\n imgSrc: undefined,\n imgWidth: undefined,\n noBody: false,\n subtitle: undefined,\n subtitleTag: 'h6',\n subtitleTextVariant: 'body-secondary',\n tag: 'div',\n title: undefined,\n titleTag: 'h4',\n // ColorExtendables props\n bgVariant: null,\n textVariant: null,\n variant: null,\n // End ColorExtendables props\n})\nconst props = useDefaults(_props, 'BCard')\n\nconst slots = defineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n footer?: (props: Record<string, never>) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n header?: (props: Record<string, never>) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n img?: (props: Record<string, never>) => any\n}>()\n\nconst hasHeaderSlot = computed(() => !isEmptySlot(slots.header))\nconst hasFooterSlot = computed(() => !isEmptySlot(slots.footer))\n\nconst colorClasses = useColorVariantClasses(props)\nconst computedClasses = computed(() => [\n colorClasses.value,\n {\n [`text-${props.align}`]: props.align !== undefined,\n 'flex-row': props.imgPlacement === 'start',\n 'flex-row-reverse': props.imgPlacement === 'end',\n },\n])\n\nconst imgAttr = computed(() => ({\n src: props.imgSrc,\n alt: props.imgAlt,\n height: props.imgHeight,\n width: props.imgWidth,\n placement: props.imgPlacement,\n}))\n\nconst ReusableImg = createReusableTemplate()\n</script>\n"],"names":["_useSlots"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAWA,UAAM,SAAS;AAsBT,UAAA,QAAQ,YAAY,QAAQ,UAAU;AAEtC,UAAA,uBAAuB,SAAS,OAAO;AAAA,MAC3C,gBAAgB,MAAM,cAAc;AAAA;AAAA,MAEpC,gBAAgB,MAAM,cAAc;AAAA,MACpC,mBAAmB,MAAM,cAAc;AAAA;AAAA,MAEvC,kBAAkB,MAAM,cAAc;AAAA,MACtC,YAAY,MAAM,cAAc;AAAA,IAChC,EAAA;AAEI,UAAA,mBAAmB,SAAS,MAAM,KAAK,OAAO,CAAC,WAAW,CAAC,CAAC;;;;;;;;;;;;;;;;;;;AC/BlE,UAAM,QAAQ;AAiBR,UAAA,kBAAkB,uBAAuB,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACpBpD,UAAM,SAAS;AAWT,UAAA,QAAQ,YAAY,QAAQ,aAAa;;;;;;;;;;;;;;;;;;ACV/C,UAAM,SAAS;AAIT,UAAA,QAAQ,YAAY,QAAQ,YAAY;;;;;;;;;;;;;;;;;;;;;ACH9C,UAAM,SAAS;AAKT,UAAA,QAAQ,YAAY,QAAQ,eAAe;AAO3C,UAAA,kBAAkB,uBAAuB,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACQpD,UAAM,SAAS;AAeT,UAAA,QAAQ,YAAY,QAAQ,WAAW;AAE7C,UAAM,QAAQA;AASd,UAAM,eAAe,SAAS,MAAM,CAAC,YAAY,MAAM,KAAK,CAAC;AAC7D,UAAM,kBAAkB,SAAS,MAAM,CAAC,YAAY,MAAM,QAAQ,CAAC;AAE7D,UAAA,eAAe,uBAAuB,KAAK;AAC3C,UAAA,kBAAkB,SAAS,MAAM;AAAA,MACrC,aAAa;AAAA,MACb,MAAM,UAAU,qBAAqB;AAAA,IAAA,CACtC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACrDD,UAAM,SAAS;AAWT,UAAA,QAAQ,YAAY,QAAQ,aAAa;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACiD/C,UAAM,SAAS;AA0CT,UAAA,QAAQ,YAAY,QAAQ,OAAO;AAEzC,UAAM,QAAQA;AAWd,UAAM,gBAAgB,SAAS,MAAM,CAAC,YAAY,MAAM,MAAM,CAAC;AAC/D,UAAM,gBAAgB,SAAS,MAAM,CAAC,YAAY,MAAM,MAAM,CAAC;AAEzD,UAAA,eAAe,uBAAuB,KAAK;AAC3C,UAAA,kBAAkB,SAAS,MAAM;AAAA,MACrC,aAAa;AAAA,MACb;AAAA,QACE,CAAC,QAAQ,MAAM,KAAK,EAAE,GAAG,MAAM,UAAU;AAAA,QACzC,YAAY,MAAM,iBAAiB;AAAA,QACnC,oBAAoB,MAAM,iBAAiB;AAAA,MAC7C;AAAA,IAAA,CACD;AAEK,UAAA,UAAU,SAAS,OAAO;AAAA,MAC9B,KAAK,MAAM;AAAA,MACX,KAAK,MAAM;AAAA,MACX,QAAQ,MAAM;AAAA,MACd,OAAO,MAAM;AAAA,MACb,WAAW,MAAM;AAAA,IACjB,EAAA;AAEF,UAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -6,7 +6,7 @@ import { u as useDefaults } from "./useDefaults-6tLPt05C.mjs";
|
|
|
6
6
|
import { s as carouselInjectionKey } from "./keys-CFfh7DXf.mjs";
|
|
7
7
|
import { u as useToNumber, j as useIntervalFn } from "./index-ujIxCC2r.mjs";
|
|
8
8
|
import { _ as _sfc_main$2 } from "./BImg.vue_vue_type_script_setup_true_lang-D-lfs4yb.mjs";
|
|
9
|
-
import { i as isEmptySlot } from "./dom-
|
|
9
|
+
import { i as isEmptySlot } from "./dom-BUCypNEC.mjs";
|
|
10
10
|
const getSlotElements = (slot, filterBy) => ((slot == null ? void 0 : slot()) ?? []).reduce((arr, slot2) => {
|
|
11
11
|
if (typeof slot2.type === "symbol") {
|
|
12
12
|
arr = arr.concat(slot2.children);
|
|
@@ -429,4 +429,4 @@ export {
|
|
|
429
429
|
_sfc_main$1 as _,
|
|
430
430
|
_sfc_main as a
|
|
431
431
|
};
|
|
432
|
-
//# sourceMappingURL=BCarouselSlide.vue_vue_type_script_setup_true_lang-
|
|
432
|
+
//# sourceMappingURL=BCarouselSlide.vue_vue_type_script_setup_true_lang-39Cf6kIO.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BCarouselSlide.vue_vue_type_script_setup_true_lang-DOIhFGe-.mjs","sources":["../src/utils/getSlotElements.ts","../src/components/BCarousel/BCarousel.vue","../src/components/BCarousel/BCarouselSlide.vue"],"sourcesContent":["import type {Slot, VNode} from 'vue'\n\nexport const getSlotElements = (slot: Slot | undefined, filterBy: string): VNode[] =>\n (slot?.() ?? [])\n .reduce((arr: VNode[], slot: VNode) => {\n if (typeof slot.type === 'symbol') {\n arr = arr.concat(slot.children as unknown as VNode)\n } else {\n arr.push(slot)\n }\n return arr\n }, [])\n .filter((child) => (child.type as {__name: string} | undefined)?.__name === filterBy)\n","<template>\n <div :id=\"computedId\" ref=\"element\" class=\"carousel slide pointer-event\" :class=\"computedClasses\">\n <div\n v-if=\"props.indicators\"\n class=\"carousel-indicators\"\n :aria-label=\"props.labelIndicators\"\n :aria-owns=\"buttonOwnership\"\n >\n <!-- :data-bs-target=\"`#${computedId}`\" is required since the classes target elems with that attr -->\n <button\n v-for=\"(_, i) in slides.length\"\n :key=\"i\"\n type=\"button\"\n data-bs-target=\"\"\n :class=\"i === modelValue ? 'active' : ''\"\n :aria-current=\"i === modelValue ? true : undefined\"\n :aria-label=\"`${props.indicatorsButtonLabel} ${i}`\"\n :aria-controls=\"buttonOwnership\"\n :aria-describedby=\"slideValues?.[i]._id\"\n @click=\"goToValue(i)\"\n />\n </div>\n\n <div ref=\"relatedTarget\" class=\"carousel-inner\">\n <TransitionGroup\n :enter-from-class=\"enterClasses\"\n :enter-active-class=\"enterClasses\"\n :enter-to-class=\"enterClasses\"\n :leave-from-class=\"leaveClasses\"\n :leave-active-class=\"leaveClasses\"\n :leave-to-class=\"leaveClasses\"\n @before-leave=\"onBeforeLeave\"\n @after-leave=\"onAfterLeave\"\n @after-enter=\"onAfterEnter\"\n @enter=\"onEnter\"\n >\n <component\n :is=\"slide\"\n v-for=\"(slide, i) in slides\"\n v-show=\"i === modelValue\"\n :key=\"i\"\n ref=\"slideValues\"\n :class=\"{active: i === modelValue && isTransitioning === false}\"\n :style=\"props.noAnimation && {transition: 'none'}\"\n />\n </TransitionGroup>\n </div>\n\n <template v-if=\"props.controls\">\n <button class=\"carousel-control-prev\" type=\"button\" @click=\"onClickPrev\">\n <span class=\"carousel-control-prev-icon\" aria-hidden=\"true\" />\n <span class=\"visually-hidden\">{{ props.controlsPrevText }}</span>\n </button>\n <button class=\"carousel-control-next\" type=\"button\" @click=\"onClickNext\">\n <span class=\"carousel-control-next-icon\" aria-hidden=\"true\" />\n <span class=\"visually-hidden\">{{ props.controlsNextText }}</span>\n </button>\n </template>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {BvCarouselEvent} from '../../utils'\nimport {computed, onMounted, provide, ref, toRef, watch} from 'vue'\nimport {useId} from '../../composables/useId'\nimport type {BCarouselProps} from '../../types/ComponentProps'\nimport {onKeyStroke, useElementHover, useIntervalFn, useSwipe, useToNumber} from '@vueuse/core'\nimport type BCarouselSlide from './BCarouselSlide.vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {Numberish} from '../../types/CommonTypes'\nimport {getSlotElements} from '../../utils/getSlotElements'\nimport {carouselInjectionKey} from '../../utils/keys'\n\nconst _props = withDefaults(defineProps<Omit<BCarouselProps, 'modelValue'>>(), {\n background: undefined,\n controls: false,\n controlsNextText: 'Next',\n controlsPrevText: 'Previous',\n fade: false,\n id: undefined,\n imgHeight: undefined,\n imgWidth: undefined,\n indicators: false,\n indicatorsButtonLabel: 'Slide',\n interval: 5000,\n labelIndicators: 'Select a slide to display',\n keyboard: true,\n noAnimation: false,\n noHoverPause: false,\n noTouch: false,\n noWrap: false,\n // eslint-disable-next-line vue/require-valid-default-prop\n ride: false,\n rideReverse: false,\n touchThreshold: 50,\n})\nconst props = useDefaults(_props, 'BCarousel')\n\nconst emit = defineEmits<{\n 'slide': [value: BvCarouselEvent]\n 'slid': [value: BvCarouselEvent]\n 'click:prev': [value: MouseEvent]\n 'click:next': [value: MouseEvent]\n}>()\n\nconst slots = defineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n}>()\n\nconst computedId = useId(() => props.id, 'carousel')\nconst buttonOwnership = useId(undefined, 'carousel-button-ownership')\n\nconst modelValue = defineModel<Exclude<BCarouselProps['modelValue'], undefined>>({default: 0})\n\nconst slideValues = ref<null | InstanceType<typeof BCarouselSlide>[]>(null)\n\nconst touchThresholdNumber = useToNumber(() => props.touchThreshold)\nconst slideInterval = ref<Numberish | null>(null)\nonMounted(() => {\n slideInterval.value =\n slideValues.value?.find((slid) => slid.$el.style.display !== 'none')?._interval ?? null\n})\nconst intervalNumber = useToNumber(() => slideInterval.value ?? props.interval)\n\nconst isTransitioning = ref(false)\nconst rideStarted = ref(false)\nconst direction = ref(true)\nconst relatedTarget = ref<HTMLElement | null>(null)\nconst element = ref<HTMLElement | null>(null)\nconst previousModelValue = ref(modelValue.value)\n\nconst isHovering = useElementHover(element)\n\n// Class carousel-item is a static property\n// If you make it static, the direction can be reversed -- properly (atm it does the carousel-item-${} logic backwards for entering, a weird hack)\n// So all that would be great. However, when you do this, it will break the transition flow. Something about it breaks and I'm not sure why!\n// Try it by removing carousel-item from below and making `!direction.value` => `direction.value` for enter\n// Then reviewing the behavior\nconst enterClasses = computed(\n () =>\n `carousel-item carousel-item-${!direction.value ? 'next' : 'prev'} carousel-item-${\n !direction.value ? 'start' : 'end'\n }`\n)\nconst leaveClasses = computed(\n () => `carousel-item active carousel-item-${direction.value ? 'start' : 'end'}`\n)\n\nconst {pause, resume} = useIntervalFn(\n () => {\n props.rideReverse ? prev() : next()\n },\n intervalNumber,\n {immediate: props.ride === 'carousel'}\n)\n\nconst isRiding = computed(\n () => (props.ride === true && rideStarted.value === true) || props.ride === 'carousel'\n)\nconst slides = computed(() => getSlotElements(slots.default, 'BCarouselSlide'))\nconst computedClasses = computed(() => ({'carousel-fade': props.fade}))\n\nconst buildBvCarouselEvent = (event: 'slid' | 'slide') =>\n new BvCarouselEvent(event, {\n componentId: computedId.value,\n cancelable: false,\n target: element.value,\n direction: direction.value ? 'right' : 'left',\n from: previousModelValue.value,\n to: modelValue.value,\n relatedTarget: relatedTarget.value?.children[modelValue.value] ?? null,\n })\n\nconst goToValue = (value: number): void => {\n if (isTransitioning.value === true) return\n\n if (props.ride === true) {\n rideStarted.value = true\n }\n if (isRiding.value === true) {\n resume()\n }\n direction.value = value < modelValue.value ? false : true\n if (value >= slides.value.length) {\n if (props.noWrap) return\n modelValue.value = 0\n return\n }\n if (value < 0) {\n if (props.noWrap) return\n modelValue.value = slides.value.length - 1\n return\n }\n previousModelValue.value = modelValue.value\n modelValue.value = value\n}\n\nconst prev = (): void => {\n goToValue(modelValue.value - 1)\n}\nconst next = (): void => {\n goToValue(modelValue.value + 1)\n}\n\nconst onKeydown = (fn: () => void) => {\n if (props.keyboard === false) return\n fn()\n}\n\nconst onMouseEnter = () => {\n if (props.noHoverPause) return\n pause()\n}\nconst onMouseLeave = () => {\n if (!isRiding.value) return\n resume()\n}\n\nconst {lengthX} = useSwipe(element, {\n passive: true,\n onSwipeStart() {\n if (props.noTouch === true) return\n pause()\n },\n onSwipeEnd() {\n if (props.noTouch === true) return\n const resumeRiding = () => {\n if (isRiding.value === false) return\n resume()\n }\n if (lengthX.value >= touchThresholdNumber.value) {\n next()\n resumeRiding()\n return\n }\n if (lengthX.value <= -touchThresholdNumber.value) {\n prev()\n resumeRiding()\n }\n },\n})\n\nconst onBeforeLeave = () => {\n emit('slide', buildBvCarouselEvent('slide'))\n isTransitioning.value = true\n}\nconst onAfterLeave = () => {\n emit('slid', buildBvCarouselEvent('slid'))\n isTransitioning.value = false\n}\n// carousel-item class is removed from the slide during the transition,\n// as is included within enter classes.\n// The first slide recovers carousel-item class,\nconst onAfterEnter = (el: Readonly<Element>) => {\n if (modelValue.value !== 0) {\n el.classList.add('carousel-item')\n }\n}\nconst onEnter = (el: Readonly<Element>) => {\n slideInterval.value = slideValues.value?.find((slid) => slid.$el === el)?._interval ?? null\n}\n\nonKeyStroke(\n 'ArrowLeft',\n () => {\n onKeydown(prev)\n },\n {target: element}\n)\nonKeyStroke(\n 'ArrowRight',\n () => {\n onKeydown(next)\n },\n {target: element}\n)\n\nwatch(\n () => props.ride,\n () => {\n rideStarted.value = false\n }\n)\n\nwatch(isHovering, (newValue) => {\n if (newValue) {\n onMouseEnter()\n return\n }\n onMouseLeave()\n})\n\nconst onClickPrev = (event: MouseEvent) => {\n emit('click:prev', event)\n if (event.defaultPrevented) return\n prev()\n}\nconst onClickNext = (event: MouseEvent) => {\n emit('click:next', event)\n if (event.defaultPrevented) return\n next()\n}\n\ndefineExpose({\n next,\n pause,\n prev,\n resume,\n})\n\nprovide(carouselInjectionKey, {\n background: toRef(() => props.background),\n width: toRef(() => props.imgWidth),\n height: toRef(() => props.imgHeight),\n})\n</script>\n","<template>\n <div :id=\"computedId\" class=\"carousel-item\" :style=\"computedStyle\">\n <slot name=\"img\">\n <BImg\n class=\"d-block w-100\"\n :alt=\"props.imgAlt\"\n :srcset=\"props.imgSrcset\"\n :src=\"props.imgSrc\"\n :width=\"props.imgWidth || parentData?.width.value\"\n :height=\"props.imgHeight || parentData?.height.value\"\n :blank=\"props.imgBlank\"\n :blank-color=\"props.imgBlankColor\"\n />\n </slot>\n <component\n :is=\"props.contentTag\"\n v-if=\"hasContent\"\n class=\"carousel-caption\"\n :class=\"computedContentClasses\"\n >\n <component :is=\"props.captionTag\" v-if=\"hasCaption\">\n <slot name=\"caption\">\n <!-- eslint-disable-next-line vue/no-v-html -->\n <span v-if=\"props.captionHtml\" v-html=\"props.captionHtml\" />\n <span v-else>{{ props.caption }}</span>\n </slot>\n </component>\n <component :is=\"props.textTag\" v-if=\"hasText\">\n <slot name=\"text\">\n <!-- eslint-disable-next-line vue/no-v-html -->\n <span v-if=\"props.textHtml\" v-html=\"props.textHtml\" />\n <span v-else>{{ props.text }}</span>\n </slot>\n </component>\n <slot />\n </component>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, type CSSProperties, inject, toRef} from 'vue'\nimport type {BCarouselSlideProps} from '../../types/ComponentProps'\nimport {carouselInjectionKey} from '../../utils/keys'\nimport BImg from '../BImg/BImg.vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {isEmptySlot} from '../../utils/dom'\nimport {useId} from '../../composables/useId'\n\nconst _props = withDefaults(defineProps<BCarouselSlideProps>(), {\n background: undefined,\n caption: undefined,\n captionHtml: undefined,\n captionTag: 'h3',\n contentTag: 'div',\n contentVisibleUp: undefined,\n id: undefined,\n imgAlt: undefined,\n imgBlank: false,\n imgBlankColor: 'transparent',\n imgHeight: undefined,\n imgSrc: undefined,\n imgSrcset: undefined,\n imgWidth: undefined,\n interval: undefined,\n text: undefined,\n textHtml: undefined,\n textTag: 'p',\n})\nconst props = useDefaults(_props, 'BCarouselSlide')\n\nconst slots = defineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n caption?: (props: Record<string, never>) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n img?: (props: Record<string, never>) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n text?: (props: Record<string, never>) => any\n}>()\n\nconst computedId = useId(() => props.id, 'carousel-slide')\nconst parentData = inject(carouselInjectionKey, null)\n\nconst hasText = computed(() => props.text || props.textHtml || !isEmptySlot(slots.text))\nconst hasCaption = computed(() => props.caption || props.captionHtml || !isEmptySlot(slots.caption))\nconst hasContent = computed(() => hasText.value || hasCaption.value || !isEmptySlot(slots.default))\n\nconst computedStyle = computed<CSSProperties>(() => ({\n background: `${\n props.background || parentData?.background.value || 'rgb(171, 171, 171)'\n } none repeat scroll 0% 0%`,\n}))\n\nconst computedContentClasses = computed(() => ({\n 'd-none': props.contentVisibleUp !== undefined,\n [`d-${props.contentVisibleUp}-block`]: props.contentVisibleUp !== undefined,\n}))\n\ndefineExpose({\n _interval: toRef(() => props.interval),\n _id: computedId,\n})\n</script>\n"],"names":["slot","_useSlots","_useModel"],"mappings":";;;;;;;;;AAEa,MAAA,kBAAkB,CAAC,MAAwB,eACrD,mCAAY,CAAA,GACV,OAAO,CAAC,KAAcA,UAAgB;AACjC,MAAA,OAAOA,MAAK,SAAS,UAAU;AAC3B,UAAA,IAAI,OAAOA,MAAK,QAA4B;AAAA,EAAA,OAC7C;AACL,QAAI,KAAKA,KAAI;AAAA,EACf;AACO,SAAA;AACT,GAAG,CAAE,CAAA,EACJ,OAAO,CAAC,UAAW;;AAAA,sBAAM,SAAN,mBAA6C,YAAW;AAAA,CAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC6DxF,UAAM,SAAS;AAuBT,UAAA,QAAQ,YAAY,QAAQ,WAAW;AAE7C,UAAM,OAAO;AAOb,UAAM,QAAQC;AAKd,UAAM,aAAa,MAAM,MAAM,MAAM,IAAI,UAAU;AAC7C,UAAA,kBAAkB,MAAM,QAAW,2BAA2B;AAE9D,UAAA,aAAaC,8BAA0E;AAEvF,UAAA,cAAc,IAAkD,IAAI;AAE1E,UAAM,uBAAuB,YAAY,MAAM,MAAM,cAAc;AAC7D,UAAA,gBAAgB,IAAsB,IAAI;AAChD,cAAU,MAAM;;AACd,oBAAc,UACZ,uBAAY,UAAZ,mBAAmB,KAAK,CAAC,SAAS,KAAK,IAAI,MAAM,YAAY,YAA7D,mBAAsE,cAAa;AAAA,IAAA,CACtF;AACD,UAAM,iBAAiB,YAAY,MAAM,cAAc,SAAS,MAAM,QAAQ;AAExE,UAAA,kBAAkB,IAAI,KAAK;AAC3B,UAAA,cAAc,IAAI,KAAK;AACvB,UAAA,YAAY,IAAI,IAAI;AACpB,UAAA,gBAAgB,IAAwB,IAAI;AAC5C,UAAA,UAAU,IAAwB,IAAI;AACtC,UAAA,qBAAqB,IAAI,WAAW,KAAK;AAEzC,UAAA,aAAa,gBAAgB,OAAO;AAO1C,UAAM,eAAe;AAAA,MACnB,MACE,+BAA+B,CAAC,UAAU,QAAQ,SAAS,MAAM,kBAC/D,CAAC,UAAU,QAAQ,UAAU,KAC/B;AAAA,IAAA;AAEJ,UAAM,eAAe;AAAA,MACnB,MAAM,sCAAsC,UAAU,QAAQ,UAAU,KAAK;AAAA,IAAA;AAGzE,UAAA,EAAC,OAAO,OAAA,IAAU;AAAA,MACtB,MAAM;AACE,cAAA,cAAc,KAAK,IAAI,KAAK;AAAA,MACpC;AAAA,MACA;AAAA,MACA,EAAC,WAAW,MAAM,SAAS,WAAU;AAAA,IAAA;AAGvC,UAAM,WAAW;AAAA,MACf,MAAO,MAAM,SAAS,QAAQ,YAAY,UAAU,QAAS,MAAM,SAAS;AAAA,IAAA;AAE9E,UAAM,SAAS,SAAS,MAAM,gBAAgB,MAAM,SAAS,gBAAgB,CAAC;AAC9E,UAAM,kBAAkB,SAAS,OAAO,EAAC,iBAAiB,MAAM,KAAM,EAAA;AAEtE,UAAM,uBAAuB,CAAC;;AAC5B,iBAAI,gBAAgB,OAAO;AAAA,QACzB,aAAa,WAAW;AAAA,QACxB,YAAY;AAAA,QACZ,QAAQ,QAAQ;AAAA,QAChB,WAAW,UAAU,QAAQ,UAAU;AAAA,QACvC,MAAM,mBAAmB;AAAA,QACzB,IAAI,WAAW;AAAA,QACf,iBAAe,mBAAc,UAAd,mBAAqB,SAAS,WAAW,WAAU;AAAA,MAAA,CACnE;AAAA;AAEG,UAAA,YAAY,CAAC,UAAwB;AACrC,UAAA,gBAAgB,UAAU,KAAM;AAEhC,UAAA,MAAM,SAAS,MAAM;AACvB,oBAAY,QAAQ;AAAA,MACtB;AACI,UAAA,SAAS,UAAU,MAAM;AACpB;MACT;AACA,gBAAU,QAAQ,QAAQ,WAAW,QAAQ,QAAQ;AACjD,UAAA,SAAS,OAAO,MAAM,QAAQ;AAChC,YAAI,MAAM,OAAQ;AAClB,mBAAW,QAAQ;AACnB;AAAA,MACF;AACA,UAAI,QAAQ,GAAG;AACb,YAAI,MAAM,OAAQ;AACP,mBAAA,QAAQ,OAAO,MAAM,SAAS;AACzC;AAAA,MACF;AACA,yBAAmB,QAAQ,WAAW;AACtC,iBAAW,QAAQ;AAAA,IAAA;AAGrB,UAAM,OAAO,MAAY;AACb,gBAAA,WAAW,QAAQ,CAAC;AAAA,IAAA;AAEhC,UAAM,OAAO,MAAY;AACb,gBAAA,WAAW,QAAQ,CAAC;AAAA,IAAA;AAG1B,UAAA,YAAY,CAAC,OAAmB;AAChC,UAAA,MAAM,aAAa,MAAO;AAC3B;IAAA;AAGL,UAAM,eAAe,MAAM;AACzB,UAAI,MAAM,aAAc;AAClB;IAAA;AAER,UAAM,eAAe,MAAM;AACrB,UAAA,CAAC,SAAS,MAAO;AACd;IAAA;AAGT,UAAM,EAAC,QAAA,IAAW,SAAS,SAAS;AAAA,MAClC,SAAS;AAAA,MACT,eAAe;AACT,YAAA,MAAM,YAAY,KAAM;AACtB;MACR;AAAA,MACA,aAAa;AACP,YAAA,MAAM,YAAY,KAAM;AAC5B,cAAM,eAAe,MAAM;AACrB,cAAA,SAAS,UAAU,MAAO;AACvB;QAAA;AAEL,YAAA,QAAQ,SAAS,qBAAqB,OAAO;AAC1C;AACQ;AACb;AAAA,QACF;AACA,YAAI,QAAQ,SAAS,CAAC,qBAAqB,OAAO;AAC3C;AACQ;QACf;AAAA,MACF;AAAA,IAAA,CACD;AAED,UAAM,gBAAgB,MAAM;AACrB,WAAA,SAAS,qBAAqB,OAAO,CAAC;AAC3C,sBAAgB,QAAQ;AAAA,IAAA;AAE1B,UAAM,eAAe,MAAM;AACpB,WAAA,QAAQ,qBAAqB,MAAM,CAAC;AACzC,sBAAgB,QAAQ;AAAA,IAAA;AAKpB,UAAA,eAAe,CAAC,OAA0B;AAC1C,UAAA,WAAW,UAAU,GAAG;AACvB,WAAA,UAAU,IAAI,eAAe;AAAA,MAClC;AAAA,IAAA;AAEI,UAAA,UAAU,CAAC,OAA0B;;AAC3B,oBAAA,UAAQ,uBAAY,UAAZ,mBAAmB,KAAK,CAAC,SAAS,KAAK,QAAQ,QAA/C,mBAAoD,cAAa;AAAA,IAAA;AAGzF;AAAA,MACE;AAAA,MACA,MAAM;AACJ,kBAAU,IAAI;AAAA,MAChB;AAAA,MACA,EAAC,QAAQ,QAAO;AAAA,IAAA;AAElB;AAAA,MACE;AAAA,MACA,MAAM;AACJ,kBAAU,IAAI;AAAA,MAChB;AAAA,MACA,EAAC,QAAQ,QAAO;AAAA,IAAA;AAGlB;AAAA,MACE,MAAM,MAAM;AAAA,MACZ,MAAM;AACJ,oBAAY,QAAQ;AAAA,MACtB;AAAA,IAAA;AAGI,UAAA,YAAY,CAAC,aAAa;AAC9B,UAAI,UAAU;AACC;AACb;AAAA,MACF;AACa;IAAA,CACd;AAEK,UAAA,cAAc,CAAC,UAAsB;AACzC,WAAK,cAAc,KAAK;AACxB,UAAI,MAAM,iBAAkB;AACvB;IAAA;AAED,UAAA,cAAc,CAAC,UAAsB;AACzC,WAAK,cAAc,KAAK;AACxB,UAAI,MAAM,iBAAkB;AACvB;IAAA;AAGM,aAAA;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA,CACD;AAED,YAAQ,sBAAsB;AAAA,MAC5B,YAAY,MAAM,MAAM,MAAM,UAAU;AAAA,MACxC,OAAO,MAAM,MAAM,MAAM,QAAQ;AAAA,MACjC,QAAQ,MAAM,MAAM,MAAM,SAAS;AAAA,IAAA,CACpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3QD,UAAM,SAAS;AAoBT,UAAA,QAAQ,YAAY,QAAQ,gBAAgB;AAElD,UAAM,QAAQD;AAWd,UAAM,aAAa,MAAM,MAAM,MAAM,IAAI,gBAAgB;AACnD,UAAA,aAAa,OAAO,sBAAsB,IAAI;AAE9C,UAAA,UAAU,SAAS,MAAM,MAAM,QAAQ,MAAM,YAAY,CAAC,YAAY,MAAM,IAAI,CAAC;AACjF,UAAA,aAAa,SAAS,MAAM,MAAM,WAAW,MAAM,eAAe,CAAC,YAAY,MAAM,OAAO,CAAC;AAC7F,UAAA,aAAa,SAAS,MAAM,QAAQ,SAAS,WAAW,SAAS,CAAC,YAAY,MAAM,OAAO,CAAC;AAE5F,UAAA,gBAAgB,SAAwB,OAAO;AAAA,MACnD,YAAY,GACV,MAAM,eAAc,yCAAY,WAAW,UAAS,oBACtD;AAAA,IACA,EAAA;AAEI,UAAA,yBAAyB,SAAS,OAAO;AAAA,MAC7C,UAAU,MAAM,qBAAqB;AAAA,MACrC,CAAC,KAAK,MAAM,gBAAgB,QAAQ,GAAG,MAAM,qBAAqB;AAAA,IAClE,EAAA;AAEW,aAAA;AAAA,MACX,WAAW,MAAM,MAAM,MAAM,QAAQ;AAAA,MACrC,KAAK;AAAA,IAAA,CACN;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"BCarouselSlide.vue_vue_type_script_setup_true_lang-39Cf6kIO.mjs","sources":["../src/utils/getSlotElements.ts","../src/components/BCarousel/BCarousel.vue","../src/components/BCarousel/BCarouselSlide.vue"],"sourcesContent":["import type {Slot, VNode} from 'vue'\n\nexport const getSlotElements = (slot: Slot | undefined, filterBy: string): VNode[] =>\n (slot?.() ?? [])\n .reduce((arr: VNode[], slot: VNode) => {\n if (typeof slot.type === 'symbol') {\n arr = arr.concat(slot.children as unknown as VNode)\n } else {\n arr.push(slot)\n }\n return arr\n }, [])\n .filter((child) => (child.type as {__name: string} | undefined)?.__name === filterBy)\n","<template>\n <div :id=\"computedId\" ref=\"element\" class=\"carousel slide pointer-event\" :class=\"computedClasses\">\n <div\n v-if=\"props.indicators\"\n class=\"carousel-indicators\"\n :aria-label=\"props.labelIndicators\"\n :aria-owns=\"buttonOwnership\"\n >\n <!-- :data-bs-target=\"`#${computedId}`\" is required since the classes target elems with that attr -->\n <button\n v-for=\"(_, i) in slides.length\"\n :key=\"i\"\n type=\"button\"\n data-bs-target=\"\"\n :class=\"i === modelValue ? 'active' : ''\"\n :aria-current=\"i === modelValue ? true : undefined\"\n :aria-label=\"`${props.indicatorsButtonLabel} ${i}`\"\n :aria-controls=\"buttonOwnership\"\n :aria-describedby=\"slideValues?.[i]._id\"\n @click=\"goToValue(i)\"\n />\n </div>\n\n <div ref=\"relatedTarget\" class=\"carousel-inner\">\n <TransitionGroup\n :enter-from-class=\"enterClasses\"\n :enter-active-class=\"enterClasses\"\n :enter-to-class=\"enterClasses\"\n :leave-from-class=\"leaveClasses\"\n :leave-active-class=\"leaveClasses\"\n :leave-to-class=\"leaveClasses\"\n @before-leave=\"onBeforeLeave\"\n @after-leave=\"onAfterLeave\"\n @after-enter=\"onAfterEnter\"\n @enter=\"onEnter\"\n >\n <component\n :is=\"slide\"\n v-for=\"(slide, i) in slides\"\n v-show=\"i === modelValue\"\n :key=\"i\"\n ref=\"slideValues\"\n :class=\"{active: i === modelValue && isTransitioning === false}\"\n :style=\"props.noAnimation && {transition: 'none'}\"\n />\n </TransitionGroup>\n </div>\n\n <template v-if=\"props.controls\">\n <button class=\"carousel-control-prev\" type=\"button\" @click=\"onClickPrev\">\n <span class=\"carousel-control-prev-icon\" aria-hidden=\"true\" />\n <span class=\"visually-hidden\">{{ props.controlsPrevText }}</span>\n </button>\n <button class=\"carousel-control-next\" type=\"button\" @click=\"onClickNext\">\n <span class=\"carousel-control-next-icon\" aria-hidden=\"true\" />\n <span class=\"visually-hidden\">{{ props.controlsNextText }}</span>\n </button>\n </template>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {BvCarouselEvent} from '../../utils'\nimport {computed, onMounted, provide, ref, toRef, watch} from 'vue'\nimport {useId} from '../../composables/useId'\nimport type {BCarouselProps} from '../../types/ComponentProps'\nimport {onKeyStroke, useElementHover, useIntervalFn, useSwipe, useToNumber} from '@vueuse/core'\nimport type BCarouselSlide from './BCarouselSlide.vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {Numberish} from '../../types/CommonTypes'\nimport {getSlotElements} from '../../utils/getSlotElements'\nimport {carouselInjectionKey} from '../../utils/keys'\n\nconst _props = withDefaults(defineProps<Omit<BCarouselProps, 'modelValue'>>(), {\n background: undefined,\n controls: false,\n controlsNextText: 'Next',\n controlsPrevText: 'Previous',\n fade: false,\n id: undefined,\n imgHeight: undefined,\n imgWidth: undefined,\n indicators: false,\n indicatorsButtonLabel: 'Slide',\n interval: 5000,\n labelIndicators: 'Select a slide to display',\n keyboard: true,\n noAnimation: false,\n noHoverPause: false,\n noTouch: false,\n noWrap: false,\n // eslint-disable-next-line vue/require-valid-default-prop\n ride: false,\n rideReverse: false,\n touchThreshold: 50,\n})\nconst props = useDefaults(_props, 'BCarousel')\n\nconst emit = defineEmits<{\n 'slide': [value: BvCarouselEvent]\n 'slid': [value: BvCarouselEvent]\n 'click:prev': [value: MouseEvent]\n 'click:next': [value: MouseEvent]\n}>()\n\nconst slots = defineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n}>()\n\nconst computedId = useId(() => props.id, 'carousel')\nconst buttonOwnership = useId(undefined, 'carousel-button-ownership')\n\nconst modelValue = defineModel<Exclude<BCarouselProps['modelValue'], undefined>>({default: 0})\n\nconst slideValues = ref<null | InstanceType<typeof BCarouselSlide>[]>(null)\n\nconst touchThresholdNumber = useToNumber(() => props.touchThreshold)\nconst slideInterval = ref<Numberish | null>(null)\nonMounted(() => {\n slideInterval.value =\n slideValues.value?.find((slid) => slid.$el.style.display !== 'none')?._interval ?? null\n})\nconst intervalNumber = useToNumber(() => slideInterval.value ?? props.interval)\n\nconst isTransitioning = ref(false)\nconst rideStarted = ref(false)\nconst direction = ref(true)\nconst relatedTarget = ref<HTMLElement | null>(null)\nconst element = ref<HTMLElement | null>(null)\nconst previousModelValue = ref(modelValue.value)\n\nconst isHovering = useElementHover(element)\n\n// Class carousel-item is a static property\n// If you make it static, the direction can be reversed -- properly (atm it does the carousel-item-${} logic backwards for entering, a weird hack)\n// So all that would be great. However, when you do this, it will break the transition flow. Something about it breaks and I'm not sure why!\n// Try it by removing carousel-item from below and making `!direction.value` => `direction.value` for enter\n// Then reviewing the behavior\nconst enterClasses = computed(\n () =>\n `carousel-item carousel-item-${!direction.value ? 'next' : 'prev'} carousel-item-${\n !direction.value ? 'start' : 'end'\n }`\n)\nconst leaveClasses = computed(\n () => `carousel-item active carousel-item-${direction.value ? 'start' : 'end'}`\n)\n\nconst {pause, resume} = useIntervalFn(\n () => {\n props.rideReverse ? prev() : next()\n },\n intervalNumber,\n {immediate: props.ride === 'carousel'}\n)\n\nconst isRiding = computed(\n () => (props.ride === true && rideStarted.value === true) || props.ride === 'carousel'\n)\nconst slides = computed(() => getSlotElements(slots.default, 'BCarouselSlide'))\nconst computedClasses = computed(() => ({'carousel-fade': props.fade}))\n\nconst buildBvCarouselEvent = (event: 'slid' | 'slide') =>\n new BvCarouselEvent(event, {\n componentId: computedId.value,\n cancelable: false,\n target: element.value,\n direction: direction.value ? 'right' : 'left',\n from: previousModelValue.value,\n to: modelValue.value,\n relatedTarget: relatedTarget.value?.children[modelValue.value] ?? null,\n })\n\nconst goToValue = (value: number): void => {\n if (isTransitioning.value === true) return\n\n if (props.ride === true) {\n rideStarted.value = true\n }\n if (isRiding.value === true) {\n resume()\n }\n direction.value = value < modelValue.value ? false : true\n if (value >= slides.value.length) {\n if (props.noWrap) return\n modelValue.value = 0\n return\n }\n if (value < 0) {\n if (props.noWrap) return\n modelValue.value = slides.value.length - 1\n return\n }\n previousModelValue.value = modelValue.value\n modelValue.value = value\n}\n\nconst prev = (): void => {\n goToValue(modelValue.value - 1)\n}\nconst next = (): void => {\n goToValue(modelValue.value + 1)\n}\n\nconst onKeydown = (fn: () => void) => {\n if (props.keyboard === false) return\n fn()\n}\n\nconst onMouseEnter = () => {\n if (props.noHoverPause) return\n pause()\n}\nconst onMouseLeave = () => {\n if (!isRiding.value) return\n resume()\n}\n\nconst {lengthX} = useSwipe(element, {\n passive: true,\n onSwipeStart() {\n if (props.noTouch === true) return\n pause()\n },\n onSwipeEnd() {\n if (props.noTouch === true) return\n const resumeRiding = () => {\n if (isRiding.value === false) return\n resume()\n }\n if (lengthX.value >= touchThresholdNumber.value) {\n next()\n resumeRiding()\n return\n }\n if (lengthX.value <= -touchThresholdNumber.value) {\n prev()\n resumeRiding()\n }\n },\n})\n\nconst onBeforeLeave = () => {\n emit('slide', buildBvCarouselEvent('slide'))\n isTransitioning.value = true\n}\nconst onAfterLeave = () => {\n emit('slid', buildBvCarouselEvent('slid'))\n isTransitioning.value = false\n}\n// carousel-item class is removed from the slide during the transition,\n// as is included within enter classes.\n// The first slide recovers carousel-item class,\nconst onAfterEnter = (el: Readonly<Element>) => {\n if (modelValue.value !== 0) {\n el.classList.add('carousel-item')\n }\n}\nconst onEnter = (el: Readonly<Element>) => {\n slideInterval.value = slideValues.value?.find((slid) => slid.$el === el)?._interval ?? null\n}\n\nonKeyStroke(\n 'ArrowLeft',\n () => {\n onKeydown(prev)\n },\n {target: element}\n)\nonKeyStroke(\n 'ArrowRight',\n () => {\n onKeydown(next)\n },\n {target: element}\n)\n\nwatch(\n () => props.ride,\n () => {\n rideStarted.value = false\n }\n)\n\nwatch(isHovering, (newValue) => {\n if (newValue) {\n onMouseEnter()\n return\n }\n onMouseLeave()\n})\n\nconst onClickPrev = (event: MouseEvent) => {\n emit('click:prev', event)\n if (event.defaultPrevented) return\n prev()\n}\nconst onClickNext = (event: MouseEvent) => {\n emit('click:next', event)\n if (event.defaultPrevented) return\n next()\n}\n\ndefineExpose({\n next,\n pause,\n prev,\n resume,\n})\n\nprovide(carouselInjectionKey, {\n background: toRef(() => props.background),\n width: toRef(() => props.imgWidth),\n height: toRef(() => props.imgHeight),\n})\n</script>\n","<template>\n <div :id=\"computedId\" class=\"carousel-item\" :style=\"computedStyle\">\n <slot name=\"img\">\n <BImg\n class=\"d-block w-100\"\n :alt=\"props.imgAlt\"\n :srcset=\"props.imgSrcset\"\n :src=\"props.imgSrc\"\n :width=\"props.imgWidth || parentData?.width.value\"\n :height=\"props.imgHeight || parentData?.height.value\"\n :blank=\"props.imgBlank\"\n :blank-color=\"props.imgBlankColor\"\n />\n </slot>\n <component\n :is=\"props.contentTag\"\n v-if=\"hasContent\"\n class=\"carousel-caption\"\n :class=\"computedContentClasses\"\n >\n <component :is=\"props.captionTag\" v-if=\"hasCaption\">\n <slot name=\"caption\">\n <!-- eslint-disable-next-line vue/no-v-html -->\n <span v-if=\"props.captionHtml\" v-html=\"props.captionHtml\" />\n <span v-else>{{ props.caption }}</span>\n </slot>\n </component>\n <component :is=\"props.textTag\" v-if=\"hasText\">\n <slot name=\"text\">\n <!-- eslint-disable-next-line vue/no-v-html -->\n <span v-if=\"props.textHtml\" v-html=\"props.textHtml\" />\n <span v-else>{{ props.text }}</span>\n </slot>\n </component>\n <slot />\n </component>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, type CSSProperties, inject, toRef} from 'vue'\nimport type {BCarouselSlideProps} from '../../types/ComponentProps'\nimport {carouselInjectionKey} from '../../utils/keys'\nimport BImg from '../BImg/BImg.vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {isEmptySlot} from '../../utils/dom'\nimport {useId} from '../../composables/useId'\n\nconst _props = withDefaults(defineProps<BCarouselSlideProps>(), {\n background: undefined,\n caption: undefined,\n captionHtml: undefined,\n captionTag: 'h3',\n contentTag: 'div',\n contentVisibleUp: undefined,\n id: undefined,\n imgAlt: undefined,\n imgBlank: false,\n imgBlankColor: 'transparent',\n imgHeight: undefined,\n imgSrc: undefined,\n imgSrcset: undefined,\n imgWidth: undefined,\n interval: undefined,\n text: undefined,\n textHtml: undefined,\n textTag: 'p',\n})\nconst props = useDefaults(_props, 'BCarouselSlide')\n\nconst slots = defineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n caption?: (props: Record<string, never>) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n img?: (props: Record<string, never>) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n text?: (props: Record<string, never>) => any\n}>()\n\nconst computedId = useId(() => props.id, 'carousel-slide')\nconst parentData = inject(carouselInjectionKey, null)\n\nconst hasText = computed(() => props.text || props.textHtml || !isEmptySlot(slots.text))\nconst hasCaption = computed(() => props.caption || props.captionHtml || !isEmptySlot(slots.caption))\nconst hasContent = computed(() => hasText.value || hasCaption.value || !isEmptySlot(slots.default))\n\nconst computedStyle = computed<CSSProperties>(() => ({\n background: `${\n props.background || parentData?.background.value || 'rgb(171, 171, 171)'\n } none repeat scroll 0% 0%`,\n}))\n\nconst computedContentClasses = computed(() => ({\n 'd-none': props.contentVisibleUp !== undefined,\n [`d-${props.contentVisibleUp}-block`]: props.contentVisibleUp !== undefined,\n}))\n\ndefineExpose({\n _interval: toRef(() => props.interval),\n _id: computedId,\n})\n</script>\n"],"names":["slot","_useSlots","_useModel"],"mappings":";;;;;;;;;AAEa,MAAA,kBAAkB,CAAC,MAAwB,eACrD,mCAAY,CAAA,GACV,OAAO,CAAC,KAAcA,UAAgB;AACjC,MAAA,OAAOA,MAAK,SAAS,UAAU;AAC3B,UAAA,IAAI,OAAOA,MAAK,QAA4B;AAAA,EAAA,OAC7C;AACL,QAAI,KAAKA,KAAI;AAAA,EACf;AACO,SAAA;AACT,GAAG,CAAE,CAAA,EACJ,OAAO,CAAC,UAAW;;AAAA,sBAAM,SAAN,mBAA6C,YAAW;AAAA,CAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC6DxF,UAAM,SAAS;AAuBT,UAAA,QAAQ,YAAY,QAAQ,WAAW;AAE7C,UAAM,OAAO;AAOb,UAAM,QAAQC;AAKd,UAAM,aAAa,MAAM,MAAM,MAAM,IAAI,UAAU;AAC7C,UAAA,kBAAkB,MAAM,QAAW,2BAA2B;AAE9D,UAAA,aAAaC,8BAA0E;AAEvF,UAAA,cAAc,IAAkD,IAAI;AAE1E,UAAM,uBAAuB,YAAY,MAAM,MAAM,cAAc;AAC7D,UAAA,gBAAgB,IAAsB,IAAI;AAChD,cAAU,MAAM;;AACd,oBAAc,UACZ,uBAAY,UAAZ,mBAAmB,KAAK,CAAC,SAAS,KAAK,IAAI,MAAM,YAAY,YAA7D,mBAAsE,cAAa;AAAA,IAAA,CACtF;AACD,UAAM,iBAAiB,YAAY,MAAM,cAAc,SAAS,MAAM,QAAQ;AAExE,UAAA,kBAAkB,IAAI,KAAK;AAC3B,UAAA,cAAc,IAAI,KAAK;AACvB,UAAA,YAAY,IAAI,IAAI;AACpB,UAAA,gBAAgB,IAAwB,IAAI;AAC5C,UAAA,UAAU,IAAwB,IAAI;AACtC,UAAA,qBAAqB,IAAI,WAAW,KAAK;AAEzC,UAAA,aAAa,gBAAgB,OAAO;AAO1C,UAAM,eAAe;AAAA,MACnB,MACE,+BAA+B,CAAC,UAAU,QAAQ,SAAS,MAAM,kBAC/D,CAAC,UAAU,QAAQ,UAAU,KAC/B;AAAA,IAAA;AAEJ,UAAM,eAAe;AAAA,MACnB,MAAM,sCAAsC,UAAU,QAAQ,UAAU,KAAK;AAAA,IAAA;AAGzE,UAAA,EAAC,OAAO,OAAA,IAAU;AAAA,MACtB,MAAM;AACE,cAAA,cAAc,KAAK,IAAI,KAAK;AAAA,MACpC;AAAA,MACA;AAAA,MACA,EAAC,WAAW,MAAM,SAAS,WAAU;AAAA,IAAA;AAGvC,UAAM,WAAW;AAAA,MACf,MAAO,MAAM,SAAS,QAAQ,YAAY,UAAU,QAAS,MAAM,SAAS;AAAA,IAAA;AAE9E,UAAM,SAAS,SAAS,MAAM,gBAAgB,MAAM,SAAS,gBAAgB,CAAC;AAC9E,UAAM,kBAAkB,SAAS,OAAO,EAAC,iBAAiB,MAAM,KAAM,EAAA;AAEtE,UAAM,uBAAuB,CAAC;;AAC5B,iBAAI,gBAAgB,OAAO;AAAA,QACzB,aAAa,WAAW;AAAA,QACxB,YAAY;AAAA,QACZ,QAAQ,QAAQ;AAAA,QAChB,WAAW,UAAU,QAAQ,UAAU;AAAA,QACvC,MAAM,mBAAmB;AAAA,QACzB,IAAI,WAAW;AAAA,QACf,iBAAe,mBAAc,UAAd,mBAAqB,SAAS,WAAW,WAAU;AAAA,MAAA,CACnE;AAAA;AAEG,UAAA,YAAY,CAAC,UAAwB;AACrC,UAAA,gBAAgB,UAAU,KAAM;AAEhC,UAAA,MAAM,SAAS,MAAM;AACvB,oBAAY,QAAQ;AAAA,MACtB;AACI,UAAA,SAAS,UAAU,MAAM;AACpB;MACT;AACA,gBAAU,QAAQ,QAAQ,WAAW,QAAQ,QAAQ;AACjD,UAAA,SAAS,OAAO,MAAM,QAAQ;AAChC,YAAI,MAAM,OAAQ;AAClB,mBAAW,QAAQ;AACnB;AAAA,MACF;AACA,UAAI,QAAQ,GAAG;AACb,YAAI,MAAM,OAAQ;AACP,mBAAA,QAAQ,OAAO,MAAM,SAAS;AACzC;AAAA,MACF;AACA,yBAAmB,QAAQ,WAAW;AACtC,iBAAW,QAAQ;AAAA,IAAA;AAGrB,UAAM,OAAO,MAAY;AACb,gBAAA,WAAW,QAAQ,CAAC;AAAA,IAAA;AAEhC,UAAM,OAAO,MAAY;AACb,gBAAA,WAAW,QAAQ,CAAC;AAAA,IAAA;AAG1B,UAAA,YAAY,CAAC,OAAmB;AAChC,UAAA,MAAM,aAAa,MAAO;AAC3B;IAAA;AAGL,UAAM,eAAe,MAAM;AACzB,UAAI,MAAM,aAAc;AAClB;IAAA;AAER,UAAM,eAAe,MAAM;AACrB,UAAA,CAAC,SAAS,MAAO;AACd;IAAA;AAGT,UAAM,EAAC,QAAA,IAAW,SAAS,SAAS;AAAA,MAClC,SAAS;AAAA,MACT,eAAe;AACT,YAAA,MAAM,YAAY,KAAM;AACtB;MACR;AAAA,MACA,aAAa;AACP,YAAA,MAAM,YAAY,KAAM;AAC5B,cAAM,eAAe,MAAM;AACrB,cAAA,SAAS,UAAU,MAAO;AACvB;QAAA;AAEL,YAAA,QAAQ,SAAS,qBAAqB,OAAO;AAC1C;AACQ;AACb;AAAA,QACF;AACA,YAAI,QAAQ,SAAS,CAAC,qBAAqB,OAAO;AAC3C;AACQ;QACf;AAAA,MACF;AAAA,IAAA,CACD;AAED,UAAM,gBAAgB,MAAM;AACrB,WAAA,SAAS,qBAAqB,OAAO,CAAC;AAC3C,sBAAgB,QAAQ;AAAA,IAAA;AAE1B,UAAM,eAAe,MAAM;AACpB,WAAA,QAAQ,qBAAqB,MAAM,CAAC;AACzC,sBAAgB,QAAQ;AAAA,IAAA;AAKpB,UAAA,eAAe,CAAC,OAA0B;AAC1C,UAAA,WAAW,UAAU,GAAG;AACvB,WAAA,UAAU,IAAI,eAAe;AAAA,MAClC;AAAA,IAAA;AAEI,UAAA,UAAU,CAAC,OAA0B;;AAC3B,oBAAA,UAAQ,uBAAY,UAAZ,mBAAmB,KAAK,CAAC,SAAS,KAAK,QAAQ,QAA/C,mBAAoD,cAAa;AAAA,IAAA;AAGzF;AAAA,MACE;AAAA,MACA,MAAM;AACJ,kBAAU,IAAI;AAAA,MAChB;AAAA,MACA,EAAC,QAAQ,QAAO;AAAA,IAAA;AAElB;AAAA,MACE;AAAA,MACA,MAAM;AACJ,kBAAU,IAAI;AAAA,MAChB;AAAA,MACA,EAAC,QAAQ,QAAO;AAAA,IAAA;AAGlB;AAAA,MACE,MAAM,MAAM;AAAA,MACZ,MAAM;AACJ,oBAAY,QAAQ;AAAA,MACtB;AAAA,IAAA;AAGI,UAAA,YAAY,CAAC,aAAa;AAC9B,UAAI,UAAU;AACC;AACb;AAAA,MACF;AACa;IAAA,CACd;AAEK,UAAA,cAAc,CAAC,UAAsB;AACzC,WAAK,cAAc,KAAK;AACxB,UAAI,MAAM,iBAAkB;AACvB;IAAA;AAED,UAAA,cAAc,CAAC,UAAsB;AACzC,WAAK,cAAc,KAAK;AACxB,UAAI,MAAM,iBAAkB;AACvB;IAAA;AAGM,aAAA;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA,CACD;AAED,YAAQ,sBAAsB;AAAA,MAC5B,YAAY,MAAM,MAAM,MAAM,UAAU;AAAA,MACxC,OAAO,MAAM,MAAM,MAAM,QAAQ;AAAA,MACjC,QAAQ,MAAM,MAAM,MAAM,SAAS;AAAA,IAAA,CACpC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AC3QD,UAAM,SAAS;AAoBT,UAAA,QAAQ,YAAY,QAAQ,gBAAgB;AAElD,UAAM,QAAQD;AAWd,UAAM,aAAa,MAAM,MAAM,MAAM,IAAI,gBAAgB;AACnD,UAAA,aAAa,OAAO,sBAAsB,IAAI;AAE9C,UAAA,UAAU,SAAS,MAAM,MAAM,QAAQ,MAAM,YAAY,CAAC,YAAY,MAAM,IAAI,CAAC;AACjF,UAAA,aAAa,SAAS,MAAM,MAAM,WAAW,MAAM,eAAe,CAAC,YAAY,MAAM,OAAO,CAAC;AAC7F,UAAA,aAAa,SAAS,MAAM,QAAQ,SAAS,WAAW,SAAS,CAAC,YAAY,MAAM,OAAO,CAAC;AAE5F,UAAA,gBAAgB,SAAwB,OAAO;AAAA,MACnD,YAAY,GACV,MAAM,eAAc,yCAAY,WAAW,UAAS,oBACtD;AAAA,IACA,EAAA;AAEI,UAAA,yBAAyB,SAAS,OAAO;AAAA,MAC7C,UAAU,MAAM,qBAAqB;AAAA,MACrC,CAAC,KAAK,MAAM,gBAAgB,QAAQ,GAAG,MAAM,qBAAqB;AAAA,IAClE,EAAA;AAEW,aAAA;AAAA,MACX,WAAW,MAAM,MAAM,MAAM,QAAQ;AAAA,MACrC,KAAK;AAAA,IAAA,CACN;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const e=require("vue"),l=require("./classes-CXBJXuVd.js"),t=require("./useId-C1J_udPo.js"),a=require("./index-CHhN7c8p.js"),o=require("./useDefaults-DA3S59IE.js"),n=require("./keys-dS8HZUdm.js"),r=require("./index-BthPTI3K.js"),u=require("./BImg.vue_vue_type_script_setup_true_lang-CUI0BSKd.js"),i=require("./dom-
|
|
2
|
-
//# sourceMappingURL=BCarouselSlide.vue_vue_type_script_setup_true_lang-
|
|
1
|
+
"use strict";const e=require("vue"),l=require("./classes-CXBJXuVd.js"),t=require("./useId-C1J_udPo.js"),a=require("./index-CHhN7c8p.js"),o=require("./useDefaults-DA3S59IE.js"),n=require("./keys-dS8HZUdm.js"),r=require("./index-BthPTI3K.js"),u=require("./BImg.vue_vue_type_script_setup_true_lang-CUI0BSKd.js"),i=require("./dom-BUc9qVuq.js"),s=["id"],c=["aria-label","aria-owns"],d=["aria-current","aria-label","aria-controls","aria-describedby","onClick"],v={class:"visually-hidden"},f={class:"visually-hidden"},m=e.defineComponent({__name:"BCarousel",props:e.mergeModels({background:{default:void 0},controls:{type:Boolean,default:!1},controlsNextText:{default:"Next"},controlsPrevText:{default:"Previous"},fade:{type:Boolean,default:!1},id:{default:void 0},imgHeight:{default:void 0},imgWidth:{default:void 0},indicators:{type:Boolean,default:!1},indicatorsButtonLabel:{default:"Slide"},interval:{default:5e3},labelIndicators:{default:"Select a slide to display"},keyboard:{type:Boolean,default:!0},noAnimation:{type:Boolean,default:!1},noHoverPause:{type:Boolean,default:!1},noTouch:{type:Boolean,default:!1},noWrap:{type:Boolean,default:!1},ride:{type:[Boolean,String],default:!1},rideReverse:{type:Boolean,default:!1},touchThreshold:{default:50}},{modelValue:{default:0},modelModifiers:{}}),emits:e.mergeModels(["slide","slid","click:prev","click:next"],["update:modelValue"]),setup(u,{expose:i,emit:m}){const p=u,k=o.useDefaults(p,"BCarousel"),g=m,y=e.useSlots(),B=t.useId((()=>k.id),"carousel"),h=t.useId(void 0,"carousel-button-ownership"),b=e.useModel(u,"modelValue"),x=e.ref(null),S=r.useToNumber((()=>k.touchThreshold)),_=e.ref(null);e.onMounted((()=>{var e,l;_.value=(null==(l=null==(e=x.value)?void 0:e.find((e=>"none"!==e.$el.style.display)))?void 0:l._interval)??null}));const C=r.useToNumber((()=>_.value??k.interval)),E=e.ref(!1),T=e.ref(!1),V=e.ref(!0),w=e.ref(null),H=e.ref(null),N=e.ref(b.value),$=a.useElementHover(H),D=e.computed((()=>`carousel-item carousel-item-${V.value?"prev":"next"} carousel-item-${V.value?"end":"start"}`)),L=e.computed((()=>"carousel-item active carousel-item-"+(V.value?"start":"end"))),{pause:j,resume:I}=r.useIntervalFn((()=>{k.rideReverse?R():z()}),C,{immediate:"carousel"===k.ride}),q=e.computed((()=>!0===k.ride&&!0===T.value||"carousel"===k.ride)),M=e.computed((()=>{return e=y.default,l="BCarouselSlide",((null==e?void 0:e())??[]).reduce(((e,l)=>("symbol"==typeof l.type?e=e.concat(l.children):e.push(l),e)),[]).filter((e=>{var t;return(null==(t=e.type)?void 0:t.__name)===l}));var e,l})),A=e.computed((()=>({"carousel-fade":k.fade}))),W=e=>{var t;return new l.BvCarouselEvent(e,{componentId:B.value,cancelable:!1,target:H.value,direction:V.value?"right":"left",from:N.value,to:b.value,relatedTarget:(null==(t=w.value)?void 0:t.children[b.value])??null})},P=e=>{if(!0!==E.value)if(!0===k.ride&&(T.value=!0),!0===q.value&&I(),V.value=!(e<b.value),e>=M.value.length){if(k.noWrap)return;b.value=0}else if(e<0){if(k.noWrap)return;b.value=M.value.length-1}else N.value=b.value,b.value=e},R=()=>{P(b.value-1)},z=()=>{P(b.value+1)},F=e=>{!1!==k.keyboard&&e()},{lengthX:K}=a.useSwipe(H,{passive:!0,onSwipeStart(){!0!==k.noTouch&&j()},onSwipeEnd(){if(!0===k.noTouch)return;const e=()=>{!1!==q.value&&I()};if(K.value>=S.value)return z(),void e();K.value<=-S.value&&(R(),e())}}),U=()=>{g("slide",W("slide")),E.value=!0},X=()=>{g("slid",W("slid")),E.value=!1},G=e=>{0!==b.value&&e.classList.add("carousel-item")},J=e=>{var l,t;_.value=(null==(t=null==(l=x.value)?void 0:l.find((l=>l.$el===e)))?void 0:t._interval)??null};a.onKeyStroke("ArrowLeft",(()=>{F(R)}),{target:H}),a.onKeyStroke("ArrowRight",(()=>{F(z)}),{target:H}),e.watch((()=>k.ride),(()=>{T.value=!1})),e.watch($,(e=>{e?k.noHoverPause||j():q.value&&I()}));const O=e=>{g("click:prev",e),e.defaultPrevented||R()},Q=e=>{g("click:next",e),e.defaultPrevented||z()};return i({next:z,pause:j,prev:R,resume:I}),e.provide(n.carouselInjectionKey,{background:e.toRef((()=>k.background)),width:e.toRef((()=>k.imgWidth)),height:e.toRef((()=>k.imgHeight))}),(l,t)=>(e.openBlock(),e.createElementBlock("div",{id:e.unref(B),ref_key:"element",ref:H,class:e.normalizeClass(["carousel slide pointer-event",A.value])},[e.unref(k).indicators?(e.openBlock(),e.createElementBlock("div",{key:0,class:"carousel-indicators","aria-label":e.unref(k).labelIndicators,"aria-owns":e.unref(h)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(M.value.length,((l,t)=>{var a;return e.openBlock(),e.createElementBlock("button",{key:t,type:"button","data-bs-target":"",class:e.normalizeClass(t===b.value?"active":""),"aria-current":t===b.value||void 0,"aria-label":`${e.unref(k).indicatorsButtonLabel} ${t}`,"aria-controls":e.unref(h),"aria-describedby":null==(a=x.value)?void 0:a[t]._id,onClick:e=>P(t)},null,10,d)})),128))],8,c)):e.createCommentVNode("",!0),e.createElementVNode("div",{ref_key:"relatedTarget",ref:w,class:"carousel-inner"},[e.createVNode(e.TransitionGroup,{"enter-from-class":D.value,"enter-active-class":D.value,"enter-to-class":D.value,"leave-from-class":L.value,"leave-active-class":L.value,"leave-to-class":L.value,onBeforeLeave:U,onAfterLeave:X,onAfterEnter:G,onEnter:J},{default:e.withCtx((()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(M.value,((l,t)=>e.withDirectives((e.openBlock(),e.createBlock(e.resolveDynamicComponent(l),{key:t,ref_for:!0,ref_key:"slideValues",ref:x,class:e.normalizeClass({active:t===b.value&&!1===E.value}),style:e.normalizeStyle(e.unref(k).noAnimation&&{transition:"none"})},null,8,["class","style"])),[[e.vShow,t===b.value]]))),128))])),_:1},8,["enter-from-class","enter-active-class","enter-to-class","leave-from-class","leave-active-class","leave-to-class"])],512),e.unref(k).controls?(e.openBlock(),e.createElementBlock(e.Fragment,{key:1},[e.createElementVNode("button",{class:"carousel-control-prev",type:"button",onClick:O},[t[0]||(t[0]=e.createElementVNode("span",{class:"carousel-control-prev-icon","aria-hidden":"true"},null,-1)),e.createElementVNode("span",v,e.toDisplayString(e.unref(k).controlsPrevText),1)]),e.createElementVNode("button",{class:"carousel-control-next",type:"button",onClick:Q},[t[1]||(t[1]=e.createElementVNode("span",{class:"carousel-control-next-icon","aria-hidden":"true"},null,-1)),e.createElementVNode("span",f,e.toDisplayString(e.unref(k).controlsNextText),1)])],64)):e.createCommentVNode("",!0)],10,s))}}),p=["id"],k=["innerHTML"],g={key:1},y=["innerHTML"],B={key:1},h=e.defineComponent({__name:"BCarouselSlide",props:{background:{default:void 0},caption:{default:void 0},captionHtml:{default:void 0},captionTag:{default:"h3"},contentTag:{default:"div"},contentVisibleUp:{default:void 0},id:{default:void 0},imgAlt:{default:void 0},imgBlank:{type:Boolean,default:!1},imgBlankColor:{default:"transparent"},imgHeight:{default:void 0},imgSrc:{default:void 0},imgSrcset:{default:void 0},imgWidth:{default:void 0},interval:{default:void 0},text:{default:void 0},textHtml:{default:void 0},textTag:{default:"p"}},setup(l,{expose:a}){const r=l,s=o.useDefaults(r,"BCarouselSlide"),c=e.useSlots(),d=t.useId((()=>s.id),"carousel-slide"),v=e.inject(n.carouselInjectionKey,null),f=e.computed((()=>s.text||s.textHtml||!i.isEmptySlot(c.text))),m=e.computed((()=>s.caption||s.captionHtml||!i.isEmptySlot(c.caption))),h=e.computed((()=>f.value||m.value||!i.isEmptySlot(c.default))),b=e.computed((()=>({background:`${s.background||(null==v?void 0:v.background.value)||"rgb(171, 171, 171)"} none repeat scroll 0% 0%`}))),x=e.computed((()=>({"d-none":void 0!==s.contentVisibleUp,[`d-${s.contentVisibleUp}-block`]:void 0!==s.contentVisibleUp})));return a({_interval:e.toRef((()=>s.interval)),_id:d}),(l,t)=>(e.openBlock(),e.createElementBlock("div",{id:e.unref(d),class:"carousel-item",style:e.normalizeStyle(b.value)},[e.renderSlot(l.$slots,"img",{},(()=>{var l,t;return[e.createVNode(u._sfc_main,{class:"d-block w-100",alt:e.unref(s).imgAlt,srcset:e.unref(s).imgSrcset,src:e.unref(s).imgSrc,width:e.unref(s).imgWidth||(null==(l=e.unref(v))?void 0:l.width.value),height:e.unref(s).imgHeight||(null==(t=e.unref(v))?void 0:t.height.value),blank:e.unref(s).imgBlank,"blank-color":e.unref(s).imgBlankColor},null,8,["alt","srcset","src","width","height","blank","blank-color"])]})),h.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(s).contentTag),{key:0,class:e.normalizeClass(["carousel-caption",x.value])},{default:e.withCtx((()=>[m.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(s).captionTag),{key:0},{default:e.withCtx((()=>[e.renderSlot(l.$slots,"caption",{},(()=>[e.unref(s).captionHtml?(e.openBlock(),e.createElementBlock("span",{key:0,innerHTML:e.unref(s).captionHtml},null,8,k)):(e.openBlock(),e.createElementBlock("span",g,e.toDisplayString(e.unref(s).caption),1))]))])),_:3})):e.createCommentVNode("",!0),f.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(s).textTag),{key:1},{default:e.withCtx((()=>[e.renderSlot(l.$slots,"text",{},(()=>[e.unref(s).textHtml?(e.openBlock(),e.createElementBlock("span",{key:0,innerHTML:e.unref(s).textHtml},null,8,y)):(e.openBlock(),e.createElementBlock("span",B,e.toDisplayString(e.unref(s).text),1))]))])),_:3})):e.createCommentVNode("",!0),e.renderSlot(l.$slots,"default")])),_:3},8,["class"])):e.createCommentVNode("",!0)],12,p))}});exports._sfc_main=m,exports._sfc_main$1=h;
|
|
2
|
+
//# sourceMappingURL=BCarouselSlide.vue_vue_type_script_setup_true_lang-DfPYIRXv.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BCarouselSlide.vue_vue_type_script_setup_true_lang-DcmVPeu1.js","sources":["../src/components/BCarousel/BCarousel.vue","../src/utils/getSlotElements.ts","../src/components/BCarousel/BCarouselSlide.vue"],"sourcesContent":["<template>\n <div :id=\"computedId\" ref=\"element\" class=\"carousel slide pointer-event\" :class=\"computedClasses\">\n <div\n v-if=\"props.indicators\"\n class=\"carousel-indicators\"\n :aria-label=\"props.labelIndicators\"\n :aria-owns=\"buttonOwnership\"\n >\n <!-- :data-bs-target=\"`#${computedId}`\" is required since the classes target elems with that attr -->\n <button\n v-for=\"(_, i) in slides.length\"\n :key=\"i\"\n type=\"button\"\n data-bs-target=\"\"\n :class=\"i === modelValue ? 'active' : ''\"\n :aria-current=\"i === modelValue ? true : undefined\"\n :aria-label=\"`${props.indicatorsButtonLabel} ${i}`\"\n :aria-controls=\"buttonOwnership\"\n :aria-describedby=\"slideValues?.[i]._id\"\n @click=\"goToValue(i)\"\n />\n </div>\n\n <div ref=\"relatedTarget\" class=\"carousel-inner\">\n <TransitionGroup\n :enter-from-class=\"enterClasses\"\n :enter-active-class=\"enterClasses\"\n :enter-to-class=\"enterClasses\"\n :leave-from-class=\"leaveClasses\"\n :leave-active-class=\"leaveClasses\"\n :leave-to-class=\"leaveClasses\"\n @before-leave=\"onBeforeLeave\"\n @after-leave=\"onAfterLeave\"\n @after-enter=\"onAfterEnter\"\n @enter=\"onEnter\"\n >\n <component\n :is=\"slide\"\n v-for=\"(slide, i) in slides\"\n v-show=\"i === modelValue\"\n :key=\"i\"\n ref=\"slideValues\"\n :class=\"{active: i === modelValue && isTransitioning === false}\"\n :style=\"props.noAnimation && {transition: 'none'}\"\n />\n </TransitionGroup>\n </div>\n\n <template v-if=\"props.controls\">\n <button class=\"carousel-control-prev\" type=\"button\" @click=\"onClickPrev\">\n <span class=\"carousel-control-prev-icon\" aria-hidden=\"true\" />\n <span class=\"visually-hidden\">{{ props.controlsPrevText }}</span>\n </button>\n <button class=\"carousel-control-next\" type=\"button\" @click=\"onClickNext\">\n <span class=\"carousel-control-next-icon\" aria-hidden=\"true\" />\n <span class=\"visually-hidden\">{{ props.controlsNextText }}</span>\n </button>\n </template>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {BvCarouselEvent} from '../../utils'\nimport {computed, onMounted, provide, ref, toRef, watch} from 'vue'\nimport {useId} from '../../composables/useId'\nimport type {BCarouselProps} from '../../types/ComponentProps'\nimport {onKeyStroke, useElementHover, useIntervalFn, useSwipe, useToNumber} from '@vueuse/core'\nimport type BCarouselSlide from './BCarouselSlide.vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {Numberish} from '../../types/CommonTypes'\nimport {getSlotElements} from '../../utils/getSlotElements'\nimport {carouselInjectionKey} from '../../utils/keys'\n\nconst _props = withDefaults(defineProps<Omit<BCarouselProps, 'modelValue'>>(), {\n background: undefined,\n controls: false,\n controlsNextText: 'Next',\n controlsPrevText: 'Previous',\n fade: false,\n id: undefined,\n imgHeight: undefined,\n imgWidth: undefined,\n indicators: false,\n indicatorsButtonLabel: 'Slide',\n interval: 5000,\n labelIndicators: 'Select a slide to display',\n keyboard: true,\n noAnimation: false,\n noHoverPause: false,\n noTouch: false,\n noWrap: false,\n // eslint-disable-next-line vue/require-valid-default-prop\n ride: false,\n rideReverse: false,\n touchThreshold: 50,\n})\nconst props = useDefaults(_props, 'BCarousel')\n\nconst emit = defineEmits<{\n 'slide': [value: BvCarouselEvent]\n 'slid': [value: BvCarouselEvent]\n 'click:prev': [value: MouseEvent]\n 'click:next': [value: MouseEvent]\n}>()\n\nconst slots = defineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n}>()\n\nconst computedId = useId(() => props.id, 'carousel')\nconst buttonOwnership = useId(undefined, 'carousel-button-ownership')\n\nconst modelValue = defineModel<Exclude<BCarouselProps['modelValue'], undefined>>({default: 0})\n\nconst slideValues = ref<null | InstanceType<typeof BCarouselSlide>[]>(null)\n\nconst touchThresholdNumber = useToNumber(() => props.touchThreshold)\nconst slideInterval = ref<Numberish | null>(null)\nonMounted(() => {\n slideInterval.value =\n slideValues.value?.find((slid) => slid.$el.style.display !== 'none')?._interval ?? null\n})\nconst intervalNumber = useToNumber(() => slideInterval.value ?? props.interval)\n\nconst isTransitioning = ref(false)\nconst rideStarted = ref(false)\nconst direction = ref(true)\nconst relatedTarget = ref<HTMLElement | null>(null)\nconst element = ref<HTMLElement | null>(null)\nconst previousModelValue = ref(modelValue.value)\n\nconst isHovering = useElementHover(element)\n\n// Class carousel-item is a static property\n// If you make it static, the direction can be reversed -- properly (atm it does the carousel-item-${} logic backwards for entering, a weird hack)\n// So all that would be great. However, when you do this, it will break the transition flow. Something about it breaks and I'm not sure why!\n// Try it by removing carousel-item from below and making `!direction.value` => `direction.value` for enter\n// Then reviewing the behavior\nconst enterClasses = computed(\n () =>\n `carousel-item carousel-item-${!direction.value ? 'next' : 'prev'} carousel-item-${\n !direction.value ? 'start' : 'end'\n }`\n)\nconst leaveClasses = computed(\n () => `carousel-item active carousel-item-${direction.value ? 'start' : 'end'}`\n)\n\nconst {pause, resume} = useIntervalFn(\n () => {\n props.rideReverse ? prev() : next()\n },\n intervalNumber,\n {immediate: props.ride === 'carousel'}\n)\n\nconst isRiding = computed(\n () => (props.ride === true && rideStarted.value === true) || props.ride === 'carousel'\n)\nconst slides = computed(() => getSlotElements(slots.default, 'BCarouselSlide'))\nconst computedClasses = computed(() => ({'carousel-fade': props.fade}))\n\nconst buildBvCarouselEvent = (event: 'slid' | 'slide') =>\n new BvCarouselEvent(event, {\n componentId: computedId.value,\n cancelable: false,\n target: element.value,\n direction: direction.value ? 'right' : 'left',\n from: previousModelValue.value,\n to: modelValue.value,\n relatedTarget: relatedTarget.value?.children[modelValue.value] ?? null,\n })\n\nconst goToValue = (value: number): void => {\n if (isTransitioning.value === true) return\n\n if (props.ride === true) {\n rideStarted.value = true\n }\n if (isRiding.value === true) {\n resume()\n }\n direction.value = value < modelValue.value ? false : true\n if (value >= slides.value.length) {\n if (props.noWrap) return\n modelValue.value = 0\n return\n }\n if (value < 0) {\n if (props.noWrap) return\n modelValue.value = slides.value.length - 1\n return\n }\n previousModelValue.value = modelValue.value\n modelValue.value = value\n}\n\nconst prev = (): void => {\n goToValue(modelValue.value - 1)\n}\nconst next = (): void => {\n goToValue(modelValue.value + 1)\n}\n\nconst onKeydown = (fn: () => void) => {\n if (props.keyboard === false) return\n fn()\n}\n\nconst onMouseEnter = () => {\n if (props.noHoverPause) return\n pause()\n}\nconst onMouseLeave = () => {\n if (!isRiding.value) return\n resume()\n}\n\nconst {lengthX} = useSwipe(element, {\n passive: true,\n onSwipeStart() {\n if (props.noTouch === true) return\n pause()\n },\n onSwipeEnd() {\n if (props.noTouch === true) return\n const resumeRiding = () => {\n if (isRiding.value === false) return\n resume()\n }\n if (lengthX.value >= touchThresholdNumber.value) {\n next()\n resumeRiding()\n return\n }\n if (lengthX.value <= -touchThresholdNumber.value) {\n prev()\n resumeRiding()\n }\n },\n})\n\nconst onBeforeLeave = () => {\n emit('slide', buildBvCarouselEvent('slide'))\n isTransitioning.value = true\n}\nconst onAfterLeave = () => {\n emit('slid', buildBvCarouselEvent('slid'))\n isTransitioning.value = false\n}\n// carousel-item class is removed from the slide during the transition,\n// as is included within enter classes.\n// The first slide recovers carousel-item class,\nconst onAfterEnter = (el: Readonly<Element>) => {\n if (modelValue.value !== 0) {\n el.classList.add('carousel-item')\n }\n}\nconst onEnter = (el: Readonly<Element>) => {\n slideInterval.value = slideValues.value?.find((slid) => slid.$el === el)?._interval ?? null\n}\n\nonKeyStroke(\n 'ArrowLeft',\n () => {\n onKeydown(prev)\n },\n {target: element}\n)\nonKeyStroke(\n 'ArrowRight',\n () => {\n onKeydown(next)\n },\n {target: element}\n)\n\nwatch(\n () => props.ride,\n () => {\n rideStarted.value = false\n }\n)\n\nwatch(isHovering, (newValue) => {\n if (newValue) {\n onMouseEnter()\n return\n }\n onMouseLeave()\n})\n\nconst onClickPrev = (event: MouseEvent) => {\n emit('click:prev', event)\n if (event.defaultPrevented) return\n prev()\n}\nconst onClickNext = (event: MouseEvent) => {\n emit('click:next', event)\n if (event.defaultPrevented) return\n next()\n}\n\ndefineExpose({\n next,\n pause,\n prev,\n resume,\n})\n\nprovide(carouselInjectionKey, {\n background: toRef(() => props.background),\n width: toRef(() => props.imgWidth),\n height: toRef(() => props.imgHeight),\n})\n</script>\n","import type {Slot, VNode} from 'vue'\n\nexport const getSlotElements = (slot: Slot | undefined, filterBy: string): VNode[] =>\n (slot?.() ?? [])\n .reduce((arr: VNode[], slot: VNode) => {\n if (typeof slot.type === 'symbol') {\n arr = arr.concat(slot.children as unknown as VNode)\n } else {\n arr.push(slot)\n }\n return arr\n }, [])\n .filter((child) => (child.type as {__name: string} | undefined)?.__name === filterBy)\n","<template>\n <div :id=\"computedId\" class=\"carousel-item\" :style=\"computedStyle\">\n <slot name=\"img\">\n <BImg\n class=\"d-block w-100\"\n :alt=\"props.imgAlt\"\n :srcset=\"props.imgSrcset\"\n :src=\"props.imgSrc\"\n :width=\"props.imgWidth || parentData?.width.value\"\n :height=\"props.imgHeight || parentData?.height.value\"\n :blank=\"props.imgBlank\"\n :blank-color=\"props.imgBlankColor\"\n />\n </slot>\n <component\n :is=\"props.contentTag\"\n v-if=\"hasContent\"\n class=\"carousel-caption\"\n :class=\"computedContentClasses\"\n >\n <component :is=\"props.captionTag\" v-if=\"hasCaption\">\n <slot name=\"caption\">\n <!-- eslint-disable-next-line vue/no-v-html -->\n <span v-if=\"props.captionHtml\" v-html=\"props.captionHtml\" />\n <span v-else>{{ props.caption }}</span>\n </slot>\n </component>\n <component :is=\"props.textTag\" v-if=\"hasText\">\n <slot name=\"text\">\n <!-- eslint-disable-next-line vue/no-v-html -->\n <span v-if=\"props.textHtml\" v-html=\"props.textHtml\" />\n <span v-else>{{ props.text }}</span>\n </slot>\n </component>\n <slot />\n </component>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, type CSSProperties, inject, toRef} from 'vue'\nimport type {BCarouselSlideProps} from '../../types/ComponentProps'\nimport {carouselInjectionKey} from '../../utils/keys'\nimport BImg from '../BImg/BImg.vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {isEmptySlot} from '../../utils/dom'\nimport {useId} from '../../composables/useId'\n\nconst _props = withDefaults(defineProps<BCarouselSlideProps>(), {\n background: undefined,\n caption: undefined,\n captionHtml: undefined,\n captionTag: 'h3',\n contentTag: 'div',\n contentVisibleUp: undefined,\n id: undefined,\n imgAlt: undefined,\n imgBlank: false,\n imgBlankColor: 'transparent',\n imgHeight: undefined,\n imgSrc: undefined,\n imgSrcset: undefined,\n imgWidth: undefined,\n interval: undefined,\n text: undefined,\n textHtml: undefined,\n textTag: 'p',\n})\nconst props = useDefaults(_props, 'BCarouselSlide')\n\nconst slots = defineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n caption?: (props: Record<string, never>) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n img?: (props: Record<string, never>) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n text?: (props: Record<string, never>) => any\n}>()\n\nconst computedId = useId(() => props.id, 'carousel-slide')\nconst parentData = inject(carouselInjectionKey, null)\n\nconst hasText = computed(() => props.text || props.textHtml || !isEmptySlot(slots.text))\nconst hasCaption = computed(() => props.caption || props.captionHtml || !isEmptySlot(slots.caption))\nconst hasContent = computed(() => hasText.value || hasCaption.value || !isEmptySlot(slots.default))\n\nconst computedStyle = computed<CSSProperties>(() => ({\n background: `${\n props.background || parentData?.background.value || 'rgb(171, 171, 171)'\n } none repeat scroll 0% 0%`,\n}))\n\nconst computedContentClasses = computed(() => ({\n 'd-none': props.contentVisibleUp !== undefined,\n [`d-${props.contentVisibleUp}-block`]: props.contentVisibleUp !== undefined,\n}))\n\ndefineExpose({\n _interval: toRef(() => props.interval),\n _id: computedId,\n})\n</script>\n"],"names":["_props","__props","props","useDefaults","emit","__emit","slots","_useSlots","computedId","useId","id","buttonOwnership","modelValue","_useModel","slideValues","ref","touchThresholdNumber","useToNumber","touchThreshold","slideInterval","onMounted","value","_b","_a","find","slid","$el","style","display","_interval","intervalNumber","interval","isTransitioning","rideStarted","direction","relatedTarget","element","previousModelValue","isHovering","useElementHover","enterClasses","computed","leaveClasses","pause","resume","useIntervalFn","rideReverse","prev","next","immediate","ride","isRiding","slides","getSlotElements","slot","default","filterBy","reduce","arr","type","concat","children","push","filter","child","__name","computedClasses","fade","buildBvCarouselEvent","event","BvCarouselEvent","componentId","cancelable","target","from","to","goToValue","length","noWrap","onKeydown","fn","keyboard","lengthX","useSwipe","passive","onSwipeStart","noTouch","onSwipeEnd","resumeRiding","onBeforeLeave","onAfterLeave","onAfterEnter","el","classList","add","onEnter","index$1","onKeyStroke","vue","watch","newValue","noHoverPause","onClickPrev","defaultPrevented","onClickNext","__expose","provide","carouselInjectionKey","background","toRef","width","imgWidth","height","imgHeight","parentData","inject","hasText","text","textHtml","isEmptySlot","hasCaption","caption","captionHtml","hasContent","computedStyle","computedContentClasses","contentVisibleUp","_id"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"BCarouselSlide.vue_vue_type_script_setup_true_lang-DfPYIRXv.js","sources":["../src/components/BCarousel/BCarousel.vue","../src/utils/getSlotElements.ts","../src/components/BCarousel/BCarouselSlide.vue"],"sourcesContent":["<template>\n <div :id=\"computedId\" ref=\"element\" class=\"carousel slide pointer-event\" :class=\"computedClasses\">\n <div\n v-if=\"props.indicators\"\n class=\"carousel-indicators\"\n :aria-label=\"props.labelIndicators\"\n :aria-owns=\"buttonOwnership\"\n >\n <!-- :data-bs-target=\"`#${computedId}`\" is required since the classes target elems with that attr -->\n <button\n v-for=\"(_, i) in slides.length\"\n :key=\"i\"\n type=\"button\"\n data-bs-target=\"\"\n :class=\"i === modelValue ? 'active' : ''\"\n :aria-current=\"i === modelValue ? true : undefined\"\n :aria-label=\"`${props.indicatorsButtonLabel} ${i}`\"\n :aria-controls=\"buttonOwnership\"\n :aria-describedby=\"slideValues?.[i]._id\"\n @click=\"goToValue(i)\"\n />\n </div>\n\n <div ref=\"relatedTarget\" class=\"carousel-inner\">\n <TransitionGroup\n :enter-from-class=\"enterClasses\"\n :enter-active-class=\"enterClasses\"\n :enter-to-class=\"enterClasses\"\n :leave-from-class=\"leaveClasses\"\n :leave-active-class=\"leaveClasses\"\n :leave-to-class=\"leaveClasses\"\n @before-leave=\"onBeforeLeave\"\n @after-leave=\"onAfterLeave\"\n @after-enter=\"onAfterEnter\"\n @enter=\"onEnter\"\n >\n <component\n :is=\"slide\"\n v-for=\"(slide, i) in slides\"\n v-show=\"i === modelValue\"\n :key=\"i\"\n ref=\"slideValues\"\n :class=\"{active: i === modelValue && isTransitioning === false}\"\n :style=\"props.noAnimation && {transition: 'none'}\"\n />\n </TransitionGroup>\n </div>\n\n <template v-if=\"props.controls\">\n <button class=\"carousel-control-prev\" type=\"button\" @click=\"onClickPrev\">\n <span class=\"carousel-control-prev-icon\" aria-hidden=\"true\" />\n <span class=\"visually-hidden\">{{ props.controlsPrevText }}</span>\n </button>\n <button class=\"carousel-control-next\" type=\"button\" @click=\"onClickNext\">\n <span class=\"carousel-control-next-icon\" aria-hidden=\"true\" />\n <span class=\"visually-hidden\">{{ props.controlsNextText }}</span>\n </button>\n </template>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {BvCarouselEvent} from '../../utils'\nimport {computed, onMounted, provide, ref, toRef, watch} from 'vue'\nimport {useId} from '../../composables/useId'\nimport type {BCarouselProps} from '../../types/ComponentProps'\nimport {onKeyStroke, useElementHover, useIntervalFn, useSwipe, useToNumber} from '@vueuse/core'\nimport type BCarouselSlide from './BCarouselSlide.vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {Numberish} from '../../types/CommonTypes'\nimport {getSlotElements} from '../../utils/getSlotElements'\nimport {carouselInjectionKey} from '../../utils/keys'\n\nconst _props = withDefaults(defineProps<Omit<BCarouselProps, 'modelValue'>>(), {\n background: undefined,\n controls: false,\n controlsNextText: 'Next',\n controlsPrevText: 'Previous',\n fade: false,\n id: undefined,\n imgHeight: undefined,\n imgWidth: undefined,\n indicators: false,\n indicatorsButtonLabel: 'Slide',\n interval: 5000,\n labelIndicators: 'Select a slide to display',\n keyboard: true,\n noAnimation: false,\n noHoverPause: false,\n noTouch: false,\n noWrap: false,\n // eslint-disable-next-line vue/require-valid-default-prop\n ride: false,\n rideReverse: false,\n touchThreshold: 50,\n})\nconst props = useDefaults(_props, 'BCarousel')\n\nconst emit = defineEmits<{\n 'slide': [value: BvCarouselEvent]\n 'slid': [value: BvCarouselEvent]\n 'click:prev': [value: MouseEvent]\n 'click:next': [value: MouseEvent]\n}>()\n\nconst slots = defineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n}>()\n\nconst computedId = useId(() => props.id, 'carousel')\nconst buttonOwnership = useId(undefined, 'carousel-button-ownership')\n\nconst modelValue = defineModel<Exclude<BCarouselProps['modelValue'], undefined>>({default: 0})\n\nconst slideValues = ref<null | InstanceType<typeof BCarouselSlide>[]>(null)\n\nconst touchThresholdNumber = useToNumber(() => props.touchThreshold)\nconst slideInterval = ref<Numberish | null>(null)\nonMounted(() => {\n slideInterval.value =\n slideValues.value?.find((slid) => slid.$el.style.display !== 'none')?._interval ?? null\n})\nconst intervalNumber = useToNumber(() => slideInterval.value ?? props.interval)\n\nconst isTransitioning = ref(false)\nconst rideStarted = ref(false)\nconst direction = ref(true)\nconst relatedTarget = ref<HTMLElement | null>(null)\nconst element = ref<HTMLElement | null>(null)\nconst previousModelValue = ref(modelValue.value)\n\nconst isHovering = useElementHover(element)\n\n// Class carousel-item is a static property\n// If you make it static, the direction can be reversed -- properly (atm it does the carousel-item-${} logic backwards for entering, a weird hack)\n// So all that would be great. However, when you do this, it will break the transition flow. Something about it breaks and I'm not sure why!\n// Try it by removing carousel-item from below and making `!direction.value` => `direction.value` for enter\n// Then reviewing the behavior\nconst enterClasses = computed(\n () =>\n `carousel-item carousel-item-${!direction.value ? 'next' : 'prev'} carousel-item-${\n !direction.value ? 'start' : 'end'\n }`\n)\nconst leaveClasses = computed(\n () => `carousel-item active carousel-item-${direction.value ? 'start' : 'end'}`\n)\n\nconst {pause, resume} = useIntervalFn(\n () => {\n props.rideReverse ? prev() : next()\n },\n intervalNumber,\n {immediate: props.ride === 'carousel'}\n)\n\nconst isRiding = computed(\n () => (props.ride === true && rideStarted.value === true) || props.ride === 'carousel'\n)\nconst slides = computed(() => getSlotElements(slots.default, 'BCarouselSlide'))\nconst computedClasses = computed(() => ({'carousel-fade': props.fade}))\n\nconst buildBvCarouselEvent = (event: 'slid' | 'slide') =>\n new BvCarouselEvent(event, {\n componentId: computedId.value,\n cancelable: false,\n target: element.value,\n direction: direction.value ? 'right' : 'left',\n from: previousModelValue.value,\n to: modelValue.value,\n relatedTarget: relatedTarget.value?.children[modelValue.value] ?? null,\n })\n\nconst goToValue = (value: number): void => {\n if (isTransitioning.value === true) return\n\n if (props.ride === true) {\n rideStarted.value = true\n }\n if (isRiding.value === true) {\n resume()\n }\n direction.value = value < modelValue.value ? false : true\n if (value >= slides.value.length) {\n if (props.noWrap) return\n modelValue.value = 0\n return\n }\n if (value < 0) {\n if (props.noWrap) return\n modelValue.value = slides.value.length - 1\n return\n }\n previousModelValue.value = modelValue.value\n modelValue.value = value\n}\n\nconst prev = (): void => {\n goToValue(modelValue.value - 1)\n}\nconst next = (): void => {\n goToValue(modelValue.value + 1)\n}\n\nconst onKeydown = (fn: () => void) => {\n if (props.keyboard === false) return\n fn()\n}\n\nconst onMouseEnter = () => {\n if (props.noHoverPause) return\n pause()\n}\nconst onMouseLeave = () => {\n if (!isRiding.value) return\n resume()\n}\n\nconst {lengthX} = useSwipe(element, {\n passive: true,\n onSwipeStart() {\n if (props.noTouch === true) return\n pause()\n },\n onSwipeEnd() {\n if (props.noTouch === true) return\n const resumeRiding = () => {\n if (isRiding.value === false) return\n resume()\n }\n if (lengthX.value >= touchThresholdNumber.value) {\n next()\n resumeRiding()\n return\n }\n if (lengthX.value <= -touchThresholdNumber.value) {\n prev()\n resumeRiding()\n }\n },\n})\n\nconst onBeforeLeave = () => {\n emit('slide', buildBvCarouselEvent('slide'))\n isTransitioning.value = true\n}\nconst onAfterLeave = () => {\n emit('slid', buildBvCarouselEvent('slid'))\n isTransitioning.value = false\n}\n// carousel-item class is removed from the slide during the transition,\n// as is included within enter classes.\n// The first slide recovers carousel-item class,\nconst onAfterEnter = (el: Readonly<Element>) => {\n if (modelValue.value !== 0) {\n el.classList.add('carousel-item')\n }\n}\nconst onEnter = (el: Readonly<Element>) => {\n slideInterval.value = slideValues.value?.find((slid) => slid.$el === el)?._interval ?? null\n}\n\nonKeyStroke(\n 'ArrowLeft',\n () => {\n onKeydown(prev)\n },\n {target: element}\n)\nonKeyStroke(\n 'ArrowRight',\n () => {\n onKeydown(next)\n },\n {target: element}\n)\n\nwatch(\n () => props.ride,\n () => {\n rideStarted.value = false\n }\n)\n\nwatch(isHovering, (newValue) => {\n if (newValue) {\n onMouseEnter()\n return\n }\n onMouseLeave()\n})\n\nconst onClickPrev = (event: MouseEvent) => {\n emit('click:prev', event)\n if (event.defaultPrevented) return\n prev()\n}\nconst onClickNext = (event: MouseEvent) => {\n emit('click:next', event)\n if (event.defaultPrevented) return\n next()\n}\n\ndefineExpose({\n next,\n pause,\n prev,\n resume,\n})\n\nprovide(carouselInjectionKey, {\n background: toRef(() => props.background),\n width: toRef(() => props.imgWidth),\n height: toRef(() => props.imgHeight),\n})\n</script>\n","import type {Slot, VNode} from 'vue'\n\nexport const getSlotElements = (slot: Slot | undefined, filterBy: string): VNode[] =>\n (slot?.() ?? [])\n .reduce((arr: VNode[], slot: VNode) => {\n if (typeof slot.type === 'symbol') {\n arr = arr.concat(slot.children as unknown as VNode)\n } else {\n arr.push(slot)\n }\n return arr\n }, [])\n .filter((child) => (child.type as {__name: string} | undefined)?.__name === filterBy)\n","<template>\n <div :id=\"computedId\" class=\"carousel-item\" :style=\"computedStyle\">\n <slot name=\"img\">\n <BImg\n class=\"d-block w-100\"\n :alt=\"props.imgAlt\"\n :srcset=\"props.imgSrcset\"\n :src=\"props.imgSrc\"\n :width=\"props.imgWidth || parentData?.width.value\"\n :height=\"props.imgHeight || parentData?.height.value\"\n :blank=\"props.imgBlank\"\n :blank-color=\"props.imgBlankColor\"\n />\n </slot>\n <component\n :is=\"props.contentTag\"\n v-if=\"hasContent\"\n class=\"carousel-caption\"\n :class=\"computedContentClasses\"\n >\n <component :is=\"props.captionTag\" v-if=\"hasCaption\">\n <slot name=\"caption\">\n <!-- eslint-disable-next-line vue/no-v-html -->\n <span v-if=\"props.captionHtml\" v-html=\"props.captionHtml\" />\n <span v-else>{{ props.caption }}</span>\n </slot>\n </component>\n <component :is=\"props.textTag\" v-if=\"hasText\">\n <slot name=\"text\">\n <!-- eslint-disable-next-line vue/no-v-html -->\n <span v-if=\"props.textHtml\" v-html=\"props.textHtml\" />\n <span v-else>{{ props.text }}</span>\n </slot>\n </component>\n <slot />\n </component>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, type CSSProperties, inject, toRef} from 'vue'\nimport type {BCarouselSlideProps} from '../../types/ComponentProps'\nimport {carouselInjectionKey} from '../../utils/keys'\nimport BImg from '../BImg/BImg.vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {isEmptySlot} from '../../utils/dom'\nimport {useId} from '../../composables/useId'\n\nconst _props = withDefaults(defineProps<BCarouselSlideProps>(), {\n background: undefined,\n caption: undefined,\n captionHtml: undefined,\n captionTag: 'h3',\n contentTag: 'div',\n contentVisibleUp: undefined,\n id: undefined,\n imgAlt: undefined,\n imgBlank: false,\n imgBlankColor: 'transparent',\n imgHeight: undefined,\n imgSrc: undefined,\n imgSrcset: undefined,\n imgWidth: undefined,\n interval: undefined,\n text: undefined,\n textHtml: undefined,\n textTag: 'p',\n})\nconst props = useDefaults(_props, 'BCarouselSlide')\n\nconst slots = defineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n caption?: (props: Record<string, never>) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n img?: (props: Record<string, never>) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n text?: (props: Record<string, never>) => any\n}>()\n\nconst computedId = useId(() => props.id, 'carousel-slide')\nconst parentData = inject(carouselInjectionKey, null)\n\nconst hasText = computed(() => props.text || props.textHtml || !isEmptySlot(slots.text))\nconst hasCaption = computed(() => props.caption || props.captionHtml || !isEmptySlot(slots.caption))\nconst hasContent = computed(() => hasText.value || hasCaption.value || !isEmptySlot(slots.default))\n\nconst computedStyle = computed<CSSProperties>(() => ({\n background: `${\n props.background || parentData?.background.value || 'rgb(171, 171, 171)'\n } none repeat scroll 0% 0%`,\n}))\n\nconst computedContentClasses = computed(() => ({\n 'd-none': props.contentVisibleUp !== undefined,\n [`d-${props.contentVisibleUp}-block`]: props.contentVisibleUp !== undefined,\n}))\n\ndefineExpose({\n _interval: toRef(() => props.interval),\n _id: computedId,\n})\n</script>\n"],"names":["_props","__props","props","useDefaults","emit","__emit","slots","_useSlots","computedId","useId","id","buttonOwnership","modelValue","_useModel","slideValues","ref","touchThresholdNumber","useToNumber","touchThreshold","slideInterval","onMounted","value","_b","_a","find","slid","$el","style","display","_interval","intervalNumber","interval","isTransitioning","rideStarted","direction","relatedTarget","element","previousModelValue","isHovering","useElementHover","enterClasses","computed","leaveClasses","pause","resume","useIntervalFn","rideReverse","prev","next","immediate","ride","isRiding","slides","getSlotElements","slot","default","filterBy","reduce","arr","type","concat","children","push","filter","child","__name","computedClasses","fade","buildBvCarouselEvent","event","BvCarouselEvent","componentId","cancelable","target","from","to","goToValue","length","noWrap","onKeydown","fn","keyboard","lengthX","useSwipe","passive","onSwipeStart","noTouch","onSwipeEnd","resumeRiding","onBeforeLeave","onAfterLeave","onAfterEnter","el","classList","add","onEnter","index$1","onKeyStroke","vue","watch","newValue","noHoverPause","onClickPrev","defaultPrevented","onClickNext","__expose","provide","carouselInjectionKey","background","toRef","width","imgWidth","height","imgHeight","parentData","inject","hasText","text","textHtml","isEmptySlot","hasCaption","caption","captionHtml","hasContent","computedStyle","computedContentClasses","contentVisibleUp","_id"],"mappings":"g4CAyEA,MAAMA,EAASC,EAuBTC,EAAQC,EAAAA,YAAYH,EAAQ,aAE5BI,EAAOC,EAOPC,EAAQC,EAAAA,WAKRC,EAAaC,EAAAA,OAAM,IAAMP,EAAMQ,IAAI,YACnCC,EAAkBF,EAAMA,WAAA,EAAW,6BAEnCG,EAAaC,EAAAA,yBAEbC,EAAcC,MAAkD,MAEhEC,EAAuBC,EAAAA,aAAY,IAAMf,EAAMgB,iBAC/CC,EAAgBJ,MAAsB,MAC5CK,EAAAA,WAAU,aACRD,EAAcE,OACZ,OAAAC,EAAA,OAAAC,EAAAT,EAAYO,YAAZ,EAAAE,EAAmBC,MAAMC,GAAoC,SAA3BA,EAAKC,IAAIC,MAAMC,oBAAqBC,YAAa,IAAA,IAEvF,MAAMC,EAAiBb,EAAAA,aAAY,IAAME,EAAcE,OAASnB,EAAM6B,WAEhEC,EAAkBjB,OAAI,GACtBkB,EAAclB,OAAI,GAClBmB,EAAYnB,OAAI,GAChBoB,EAAgBpB,MAAwB,MACxCqB,EAAUrB,MAAwB,MAClCsB,EAAqBtB,EAAAA,IAAIH,EAAWS,OAEpCiB,EAAaC,kBAAgBH,GAO7BI,EAAeC,EAAAA,UACnB,IACE,+BAAgCP,EAAUb,MAAiB,OAAT,wBAC/Ca,EAAUb,MAAkB,MAAV,YAGnBqB,EAAeD,EAAAA,UACnB,IAAM,uCAAsCP,EAAUb,MAAQ,QAAU,UAGpEsB,MAACA,EAAAC,OAAOA,GAAUC,EAAAA,eACtB,KACQ3C,EAAA4C,YAAcC,IAASC,GAAK,GAEpClB,EACA,CAACmB,UAA0B,aAAf/C,EAAMgD,OAGdC,EAAWV,EAAAA,UACf,KAAsB,IAAfvC,EAAMgD,OAAuC,IAAtBjB,EAAYZ,OAAkC,aAAfnB,EAAMgD,OAE/DE,EAASX,EAAAA,UAAS,KAAMY,OC9JEC,ED8JchD,EAAMiD,QC9JIC,ED8JK,mBC7J1D,MAAAF,OAAA,EAAAA,MAAY,IACVG,QAAO,CAACC,EAAcJ,KACI,iBAAdA,EAAKK,KACRD,EAAAA,EAAIE,OAAON,EAAKO,UAEtBH,EAAII,KAAKR,GAEJI,IACN,IACFK,QAAQC,UAAiB,OAAN,OAAMzC,EAAAyC,EAAAL,eAAuCM,UAAWT,CAAA,IAVjD,IAACF,EAAwBE,CD8JsB,IACxEU,EAAkBzB,EAAAA,UAAS,KAAA,CAAQ,gBAAiBvC,EAAMiE,SAE1DC,EAAwBC,UACxBC,OAAAA,IAAAA,EAAAA,gBAAgBD,EAAO,CACzBE,YAAa/D,EAAWa,MACxBmD,YAAY,EACZC,OAAQrC,EAAQf,MAChBa,UAAWA,EAAUb,MAAQ,QAAU,OACvCqD,KAAMrC,EAAmBhB,MACzBsD,GAAI/D,EAAWS,MACfc,eAAe,OAAAZ,EAAcY,EAAAd,YAAO,EAAAE,EAAAsC,SAASjD,EAAWS,SAAU,MACnE,EAEGuD,EAAavD,IACb,IAA0B,IAA1BW,EAAgBX,MAShB,IAPe,IAAfnB,EAAMgD,OACRjB,EAAYZ,OAAQ,IAEC,IAAnB8B,EAAS9B,WAGba,EAAUb,QAAQA,EAAQT,EAAWS,OACjCA,GAAS+B,EAAO/B,MAAMwD,OAAtB,CACF,GAAI3E,EAAM4E,OAAQ,OAClBlE,EAAWS,MAAQ,CAErB,MACA,GAAIA,EAAQ,EAAZ,CACE,GAAInB,EAAM4E,OAAQ,OACPlE,EAAAS,MAAQ+B,EAAO/B,MAAMwD,OAAS,CAE3C,MACAxC,EAAmBhB,MAAQT,EAAWS,MACtCT,EAAWS,MAAQA,CAAA,EAGf0B,EAAO,KACD6B,EAAAhE,EAAWS,MAAQ,EAAC,EAE1B2B,EAAO,KACD4B,EAAAhE,EAAWS,MAAQ,EAAC,EAG1B0D,EAAaC,KACM,IAAnB9E,EAAM+E,gBAaNC,QAACA,GAAWC,EAAAA,SAAS/C,EAAS,CAClCgD,SAAS,EACT,YAAAC,IACwB,IAAlBnF,EAAMoF,YAEZ,EACA,UAAAC,GACM,IAAkB,IAAlBrF,EAAMoF,QAAkB,OAC5B,MAAME,EAAe,MACI,IAAnBrC,EAAS9B,YAGX,GAAA6D,EAAQ7D,OAASL,EAAqBK,MAGxC,oBAEE6D,EAAQ7D,QAAUL,EAAqBK,gBAI7C,IAGIoE,EAAgB,KACfrF,EAAA,QAASgE,EAAqB,UACnCpC,EAAgBX,OAAQ,CAAA,EAEpBqE,EAAe,KACdtF,EAAA,OAAQgE,EAAqB,SAClCpC,EAAgBX,OAAQ,CAAA,EAKpBsE,EAAgBC,IACK,IAArBhF,EAAWS,OACVuE,EAAAC,UAAUC,IAAI,gBACnB,EAEIC,EAAWH,YACDzE,EAAAE,OAAQ,OAAAC,EAAA,OAAYC,EAAAT,EAAAO,YAAO,EAAAE,EAAAC,MAAMC,GAASA,EAAKC,MAAQkE,UAA/C,EAAAtE,EAAoDO,YAAa,IAAA,EAGzFmE,EAAAC,YACE,aACA,KACElB,EAAUhC,EAAI,GAEhB,CAAC0B,OAAQrC,IAEX4D,EAAAC,YACE,cACA,KACElB,EAAU/B,EAAI,GAEhB,CAACyB,OAAQrC,IAGX8D,EAAAC,OACE,IAAMjG,EAAMgD,OACZ,KACEjB,EAAYZ,OAAQ,CAAA,YAIlBiB,GAAa8D,IACbA,EA3EAlG,EAAMmG,kBAILlD,EAAS9B,cA8EV,MAAAiF,EAAejC,IACnBjE,EAAK,aAAciE,GACfA,EAAMkC,uBAGNC,EAAenC,IACnBjE,EAAK,aAAciE,GACfA,EAAMkC,8BAICE,EAAA,CACXzD,OACAL,QACAI,OACAH,WAGF8D,EAAAA,QAAQC,EAAAA,qBAAsB,CAC5BC,WAAYC,EAAAA,OAAM,IAAM3G,EAAM0G,aAC9BE,MAAOD,EAAAA,OAAM,IAAM3G,EAAM6G,WACzBC,OAAQH,EAAAA,OAAM,IAAM3G,EAAM+G,i7FE1Q5B,MAAMjH,EAASC,EAoBTC,EAAQC,EAAAA,YAAYH,EAAQ,kBAE5BM,EAAQC,EAAAA,WAWRC,EAAaC,EAAAA,OAAM,IAAMP,EAAMQ,IAAI,kBACnCwG,EAAaC,EAAAA,OAAOR,EAAAA,qBAAsB,MAE1CS,EAAU3E,EAAAA,UAAS,IAAMvC,EAAMmH,MAAQnH,EAAMoH,WAAaC,EAAAA,YAAYjH,EAAM+G,QAC5EG,EAAa/E,EAAAA,UAAS,IAAMvC,EAAMuH,SAAWvH,EAAMwH,cAAgBH,EAAAA,YAAYjH,EAAMmH,WACrFE,EAAalF,EAAAA,UAAS,IAAM2E,EAAQ/F,OAASmG,EAAWnG,QAAUkG,EAAAA,YAAYjH,EAAMiD,WAEpFqE,EAAgBnF,EAAAA,UAAwB,KAAO,CACnDmE,WAAY,GACV1G,EAAM0G,aAA0B,MAAZM,OAAY,EAAAA,EAAAN,WAAWvF,QAAS,oDAIlDwG,EAAyBpF,EAAAA,UAAS,KAAO,CAC7C,cAAqC,IAA3BvC,EAAM4H,iBAChB,CAAC,KAAK5H,EAAM4H,+BAAsD,IAA3B5H,EAAM4H,4BAGlCrB,EAAA,CACX5E,UAAWgF,EAAAA,OAAM,IAAM3G,EAAM6B,WAC7BgG,IAAKvH"}
|