bootstrap-vue-next 0.26.0 → 0.26.1
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-DGwvrTfm.js → BAccordionItem.vue_vue_type_script_setup_true_lang-CieNYlN6.js} +2 -2
- package/dist/{BAccordionItem.vue_vue_type_script_setup_true_lang-DGwvrTfm.js.map → BAccordionItem.vue_vue_type_script_setup_true_lang-CieNYlN6.js.map} +1 -1
- package/dist/{BAccordionItem.vue_vue_type_script_setup_true_lang-CVVVKs5b.mjs → BAccordionItem.vue_vue_type_script_setup_true_lang-hXpJEtmN.mjs} +2 -2
- package/dist/{BAccordionItem.vue_vue_type_script_setup_true_lang-CVVVKs5b.mjs.map → BAccordionItem.vue_vue_type_script_setup_true_lang-hXpJEtmN.mjs.map} +1 -1
- package/dist/BAlert-CqU4yAgT.js +2 -0
- package/dist/BAlert-CqU4yAgT.js.map +1 -0
- package/dist/{BAlert-COBpr3sv.mjs → BAlert-D6IuXF5P.mjs} +5 -6
- package/dist/BAlert-D6IuXF5P.mjs.map +1 -0
- package/dist/{BButton.vue_vue_type_script_setup_true_lang-jzwMHPCL.mjs → BButton.vue_vue_type_script_setup_true_lang-BpROmjXz.mjs} +3 -4
- package/dist/BButton.vue_vue_type_script_setup_true_lang-BpROmjXz.mjs.map +1 -0
- package/dist/BButton.vue_vue_type_script_setup_true_lang-CJ-hXIGK.js +2 -0
- package/dist/BButton.vue_vue_type_script_setup_true_lang-CJ-hXIGK.js.map +1 -0
- package/dist/BCarouselSlide.vue_vue_type_script_setup_true_lang-BHTUAvZa.js +2 -0
- package/dist/BCarouselSlide.vue_vue_type_script_setup_true_lang-BHTUAvZa.js.map +1 -0
- package/dist/{BCarouselSlide.vue_vue_type_script_setup_true_lang-BTWNL7bv.mjs → BCarouselSlide.vue_vue_type_script_setup_true_lang-CG9zOLX3.mjs} +14 -16
- package/dist/BCarouselSlide.vue_vue_type_script_setup_true_lang-CG9zOLX3.mjs.map +1 -0
- package/dist/BCollapse.vue_vue_type_script_setup_true_lang-CpyJrqDW.js +2 -0
- package/dist/BCollapse.vue_vue_type_script_setup_true_lang-CpyJrqDW.js.map +1 -0
- package/dist/{BCollapse.vue_vue_type_script_setup_true_lang-Dgmxrsug.mjs → BCollapse.vue_vue_type_script_setup_true_lang-CrKEVFwx.mjs} +3 -4
- package/dist/BCollapse.vue_vue_type_script_setup_true_lang-CrKEVFwx.mjs.map +1 -0
- package/dist/{BDropdown-CjksY2j0.mjs → BDropdown-CCfrGwnp.mjs} +11 -17
- package/dist/BDropdown-CCfrGwnp.mjs.map +1 -0
- package/dist/BDropdown-CJkhDiPc.js +2 -0
- package/dist/BDropdown-CJkhDiPc.js.map +1 -0
- package/dist/{BForm.vue_vue_type_script_setup_true_lang-BkJ_oJlm.mjs → BForm.vue_vue_type_script_setup_true_lang-B5bHc7eP.mjs} +3 -4
- package/dist/BForm.vue_vue_type_script_setup_true_lang-B5bHc7eP.mjs.map +1 -0
- package/dist/BForm.vue_vue_type_script_setup_true_lang-D7vAQtAd.js +2 -0
- package/dist/BForm.vue_vue_type_script_setup_true_lang-D7vAQtAd.js.map +1 -0
- package/dist/BFormCheckboxGroup.vue_vue_type_script_setup_true_lang-CRwklK_K.js +2 -0
- package/dist/BFormCheckboxGroup.vue_vue_type_script_setup_true_lang-CRwklK_K.js.map +1 -0
- package/dist/{BFormCheckboxGroup.vue_vue_type_script_setup_true_lang-DxqJb-gk.mjs → BFormCheckboxGroup.vue_vue_type_script_setup_true_lang-DWBg7SDE.mjs} +5 -7
- package/dist/BFormCheckboxGroup.vue_vue_type_script_setup_true_lang-DWBg7SDE.mjs.map +1 -0
- package/dist/{BFormFile.vue_vue_type_script_setup_true_lang-C_pOZSjF.mjs → BFormFile.vue_vue_type_script_setup_true_lang-C0iJ-QKp.mjs} +3 -4
- package/dist/BFormFile.vue_vue_type_script_setup_true_lang-C0iJ-QKp.mjs.map +1 -0
- package/dist/BFormFile.vue_vue_type_script_setup_true_lang-DMMMTAOg.js +2 -0
- package/dist/BFormFile.vue_vue_type_script_setup_true_lang-DMMMTAOg.js.map +1 -0
- package/dist/BFormGroup.vue_vue_type_script_setup_true_lang-Clwc4QCs.js +2 -0
- package/dist/BFormGroup.vue_vue_type_script_setup_true_lang-Clwc4QCs.js.map +1 -0
- package/dist/{BFormGroup.vue_vue_type_script_setup_true_lang-C9aNLzoU.mjs → BFormGroup.vue_vue_type_script_setup_true_lang-ItYt1045.mjs} +9 -12
- package/dist/BFormGroup.vue_vue_type_script_setup_true_lang-ItYt1045.mjs.map +1 -0
- package/dist/{BFormInput.vue_vue_type_script_setup_true_lang-CW2mbEMC.mjs → BFormInput.vue_vue_type_script_setup_true_lang-DOpEJXSp.mjs} +3 -4
- package/dist/BFormInput.vue_vue_type_script_setup_true_lang-DOpEJXSp.mjs.map +1 -0
- package/dist/BFormInput.vue_vue_type_script_setup_true_lang-FFVApfv2.js +2 -0
- package/dist/{BFormInput.vue_vue_type_script_setup_true_lang-CW2mbEMC.mjs.map → BFormInput.vue_vue_type_script_setup_true_lang-FFVApfv2.js.map} +1 -1
- package/dist/BFormRadioGroup.vue_vue_type_script_setup_true_lang-DPDf4vng.js +2 -0
- package/dist/BFormRadioGroup.vue_vue_type_script_setup_true_lang-DPDf4vng.js.map +1 -0
- package/dist/{BFormRadioGroup.vue_vue_type_script_setup_true_lang-Bx613lZi.mjs → BFormRadioGroup.vue_vue_type_script_setup_true_lang-DrSEPnPB.mjs} +5 -7
- package/dist/BFormRadioGroup.vue_vue_type_script_setup_true_lang-DrSEPnPB.mjs.map +1 -0
- package/dist/{BFormSelect.vue_vue_type_script_setup_true_lang-Bti_-QrZ.js → BFormSelect.vue_vue_type_script_setup_true_lang-CdEhox_P.js} +2 -2
- package/dist/BFormSelect.vue_vue_type_script_setup_true_lang-CdEhox_P.js.map +1 -0
- package/dist/{BFormSelect.vue_vue_type_script_setup_true_lang-CcuEI8B1.mjs → BFormSelect.vue_vue_type_script_setup_true_lang-Dl4235Zd.mjs} +3 -4
- package/dist/BFormSelect.vue_vue_type_script_setup_true_lang-Dl4235Zd.mjs.map +1 -0
- package/dist/BFormSpinbutton.vue_vue_type_script_setup_true_lang-D4JBm3tX.js +2 -0
- package/dist/BFormSpinbutton.vue_vue_type_script_setup_true_lang-D4JBm3tX.js.map +1 -0
- package/dist/{BFormSpinbutton.vue_vue_type_script_setup_true_lang-fgdiiWN2.mjs → BFormSpinbutton.vue_vue_type_script_setup_true_lang-DUj3oBSv.mjs} +3 -4
- package/dist/BFormSpinbutton.vue_vue_type_script_setup_true_lang-DUj3oBSv.mjs.map +1 -0
- package/dist/{BFormTags.vue_vue_type_script_setup_true_lang-B0nneNg9.mjs → BFormTags.vue_vue_type_script_setup_true_lang-DKQ27QqA.mjs} +3 -4
- package/dist/BFormTags.vue_vue_type_script_setup_true_lang-DKQ27QqA.mjs.map +1 -0
- package/dist/BFormTags.vue_vue_type_script_setup_true_lang-tEKWHxwM.js +2 -0
- package/dist/BFormTags.vue_vue_type_script_setup_true_lang-tEKWHxwM.js.map +1 -0
- package/dist/{BFormTextarea.vue_vue_type_script_setup_true_lang-WGrVKcpl.mjs → BFormTextarea.vue_vue_type_script_setup_true_lang-Bl_XhZOm.mjs} +3 -4
- package/dist/BFormTextarea.vue_vue_type_script_setup_true_lang-Bl_XhZOm.mjs.map +1 -0
- package/dist/BFormTextarea.vue_vue_type_script_setup_true_lang-C3GF-QPf.js +2 -0
- package/dist/BFormTextarea.vue_vue_type_script_setup_true_lang-C3GF-QPf.js.map +1 -0
- package/dist/BModalOrchestrator.vue_vue_type_script_setup_true_lang-CZ68u1_9.js +2 -0
- package/dist/BModalOrchestrator.vue_vue_type_script_setup_true_lang-CZ68u1_9.js.map +1 -0
- package/dist/{BModalOrchestrator.vue_vue_type_script_setup_true_lang-Dkt9GuHM.mjs → BModalOrchestrator.vue_vue_type_script_setup_true_lang-CzU6ZBVy.mjs} +12 -16
- package/dist/BModalOrchestrator.vue_vue_type_script_setup_true_lang-CzU6ZBVy.mjs.map +1 -0
- package/dist/{BNavText.vue_vue_type_script_setup_true_lang-CFSY1iCd.js → BNavText.vue_vue_type_script_setup_true_lang-DNCt5qpi.js} +2 -2
- package/dist/BNavText.vue_vue_type_script_setup_true_lang-DNCt5qpi.js.map +1 -0
- package/dist/{BNavText.vue_vue_type_script_setup_true_lang-_JNKtlRG.mjs → BNavText.vue_vue_type_script_setup_true_lang-r-UPEiyI.mjs} +5 -8
- package/dist/BNavText.vue_vue_type_script_setup_true_lang-r-UPEiyI.mjs.map +1 -0
- package/dist/{BOffcanvas-DYTUqwmj.mjs → BOffcanvas-CQLyf4Y0.mjs} +7 -9
- package/dist/BOffcanvas-CQLyf4Y0.mjs.map +1 -0
- package/dist/BOffcanvas-iUpi47aH.js +2 -0
- package/dist/BOffcanvas-iUpi47aH.js.map +1 -0
- package/dist/{BPagination.vue_vue_type_script_setup_true_lang-BAqonaXX.mjs → BPagination.vue_vue_type_script_setup_true_lang-CSBDu_xf.mjs} +3 -3
- package/dist/BPagination.vue_vue_type_script_setup_true_lang-CSBDu_xf.mjs.map +1 -0
- package/dist/BPagination.vue_vue_type_script_setup_true_lang-D6Cs89z2.js +2 -0
- package/dist/BPagination.vue_vue_type_script_setup_true_lang-D6Cs89z2.js.map +1 -0
- package/dist/{BPopoverOrchestrator.vue_vue_type_script_setup_true_lang-DvC2d-V_.mjs → BPopoverOrchestrator.vue_vue_type_script_setup_true_lang-Qajc9Oas.mjs} +3 -3
- package/dist/{BPopoverOrchestrator.vue_vue_type_script_setup_true_lang-DvC2d-V_.mjs.map → BPopoverOrchestrator.vue_vue_type_script_setup_true_lang-Qajc9Oas.mjs.map} +1 -1
- package/dist/{BPopoverOrchestrator.vue_vue_type_script_setup_true_lang-jUAzENYy.js → BPopoverOrchestrator.vue_vue_type_script_setup_true_lang-V3d9rRpi.js} +2 -2
- package/dist/{BPopoverOrchestrator.vue_vue_type_script_setup_true_lang-jUAzENYy.js.map → BPopoverOrchestrator.vue_vue_type_script_setup_true_lang-V3d9rRpi.js.map} +1 -1
- package/dist/{BTabs.vue_vue_type_script_setup_true_lang-BVSuBB6u.mjs → BTabs.vue_vue_type_script_setup_true_lang-DA9hy1XE.mjs} +3 -4
- package/dist/BTabs.vue_vue_type_script_setup_true_lang-DA9hy1XE.mjs.map +1 -0
- package/dist/BTabs.vue_vue_type_script_setup_true_lang-ijJRmNUS.js +2 -0
- package/dist/BTabs.vue_vue_type_script_setup_true_lang-ijJRmNUS.js.map +1 -0
- package/dist/{BToastOrchestrator.vue_vue_type_style_index_0_lang-7MSO655C.mjs → BToastOrchestrator.vue_vue_type_style_index_0_lang-9yiv5AJF.mjs} +4 -5
- package/dist/BToastOrchestrator.vue_vue_type_style_index_0_lang-9yiv5AJF.mjs.map +1 -0
- package/dist/BToastOrchestrator.vue_vue_type_style_index_0_lang-DhOx1Bn_.js +2 -0
- package/dist/BToastOrchestrator.vue_vue_type_style_index_0_lang-DhOx1Bn_.js.map +1 -0
- package/dist/{BTooltip.vue_vue_type_script_setup_true_lang-3PE20_TY.mjs → BTooltip.vue_vue_type_script_setup_true_lang-D8EHGVc1.mjs} +4 -7
- package/dist/BTooltip.vue_vue_type_script_setup_true_lang-D8EHGVc1.mjs.map +1 -0
- package/dist/{BTooltip.vue_vue_type_script_setup_true_lang-ChWjwYlI.js → BTooltip.vue_vue_type_script_setup_true_lang-DdAI3Vbd.js} +2 -2
- package/dist/{BTooltip.vue_vue_type_script_setup_true_lang-3PE20_TY.mjs.map → BTooltip.vue_vue_type_script_setup_true_lang-DdAI3Vbd.js.map} +1 -1
- package/dist/bootstrap-vue-next.css +1 -1
- package/dist/bootstrap-vue-next.mjs +26 -26
- package/dist/bootstrap-vue-next.umd.js +1 -1
- package/dist/{floatingUi-CaHdWUtW.mjs → floatingUi-BcuPczz7.mjs} +11 -15
- package/dist/{floatingUi-CaHdWUtW.mjs.map → floatingUi-BcuPczz7.mjs.map} +1 -1
- package/dist/{floatingUi-CDisVIY4.js → floatingUi-D3GXwxpG.js} +2 -2
- package/dist/{floatingUi-CDisVIY4.js.map → floatingUi-D3GXwxpG.js.map} +1 -1
- package/dist/{index-mh6YsupP.js → index-CImbXBBq.js} +2 -2
- package/dist/index-CImbXBBq.js.map +1 -0
- package/dist/{index-BWVwr4xQ.mjs → index-CsFMJRRA.mjs} +26 -26
- package/dist/{index-BWVwr4xQ.mjs.map → index-CsFMJRRA.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/BAlert.vue.d.mts +1 -1
- package/dist/src/components/BAlert/BAlert.vue.d.ts +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/BButton/BButton.vue.d.mts +1 -1
- package/dist/src/components/BButton/BButton.vue.d.ts +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/BCarousel/BCarousel.vue.d.mts +3 -3
- package/dist/src/components/BCarousel/BCarousel.vue.d.ts +3 -3
- package/dist/src/components/BCarousel/index.mjs +1 -1
- package/dist/src/components/BCarousel/index.umd.js +1 -1
- package/dist/src/components/BCollapse/BCollapse.vue.d.mts +1 -1
- package/dist/src/components/BCollapse/BCollapse.vue.d.ts +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/BDropdown.vue.d.mts +3 -43
- package/dist/src/components/BDropdown/BDropdown.vue.d.ts +3 -43
- package/dist/src/components/BDropdown/index.mjs +1 -1
- package/dist/src/components/BDropdown/index.umd.js +1 -1
- package/dist/src/components/BForm/BForm.vue.d.mts +1 -1
- package/dist/src/components/BForm/BForm.vue.d.ts +1 -1
- package/dist/src/components/BForm/index.mjs +1 -1
- package/dist/src/components/BForm/index.umd.js +1 -1
- package/dist/src/components/BFormCheckbox/BFormCheckbox.vue.d.mts +1 -1
- package/dist/src/components/BFormCheckbox/BFormCheckbox.vue.d.ts +1 -1
- package/dist/src/components/BFormCheckbox/BFormCheckboxGroup.vue.d.mts +1 -1
- package/dist/src/components/BFormCheckbox/BFormCheckboxGroup.vue.d.ts +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/BFormFile.vue.d.mts +1 -1
- package/dist/src/components/BFormFile/BFormFile.vue.d.ts +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/BFormGroup.vue.d.mts +1 -1
- package/dist/src/components/BFormGroup/BFormGroup.vue.d.ts +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/BFormInput/index.mjs +1 -1
- package/dist/src/components/BFormInput/index.umd.js +1 -1
- package/dist/src/components/BFormRadio/BFormRadio.vue.d.mts +1 -1
- package/dist/src/components/BFormRadio/BFormRadio.vue.d.ts +1 -1
- package/dist/src/components/BFormRadio/BFormRadioGroup.vue.d.mts +1 -1
- package/dist/src/components/BFormRadio/BFormRadioGroup.vue.d.ts +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/BFormSelect/index.mjs +1 -1
- package/dist/src/components/BFormSelect/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/BFormTags.vue.d.mts +1 -1
- package/dist/src/components/BFormTags/BFormTags.vue.d.ts +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/BModal.vue.d.mts +4 -4
- package/dist/src/components/BModal/BModal.vue.d.ts +4 -4
- package/dist/src/components/BModal/index.mjs +1 -1
- package/dist/src/components/BModal/index.umd.js +1 -1
- package/dist/src/components/BNav/BNavItemDropdown.vue.d.mts +1 -1
- package/dist/src/components/BNav/BNavItemDropdown.vue.d.ts +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/BOffcanvas.vue.d.mts +2 -2
- package/dist/src/components/BOffcanvas/BOffcanvas.vue.d.ts +2 -2
- package/dist/src/components/BOffcanvas/index.mjs +1 -1
- package/dist/src/components/BOffcanvas/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/BPopover/BPopover.vue.d.mts +4 -4
- package/dist/src/components/BPopover/BPopover.vue.d.ts +4 -4
- package/dist/src/components/BPopover/index.mjs +2 -2
- package/dist/src/components/BPopover/index.umd.js +1 -1
- package/dist/src/components/BTabs/BTab.vue.d.mts +1 -1
- package/dist/src/components/BTabs/BTab.vue.d.ts +1 -1
- package/dist/src/components/BTabs/index.mjs +1 -1
- package/dist/src/components/BTabs/index.umd.js +1 -1
- package/dist/src/components/BToast/BToast.vue.d.mts +1 -1
- package/dist/src/components/BToast/BToast.vue.d.ts +1 -1
- package/dist/src/components/BToast/index.mjs +1 -1
- package/dist/src/components/BToast/index.umd.js +1 -1
- package/dist/src/components/BTooltip/BTooltip.vue.d.mts +1 -1
- package/dist/src/components/BTooltip/BTooltip.vue.d.ts +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 +25 -25
- 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/BTooltip/index.mjs +1 -1
- package/dist/src/directives/BTooltip/index.umd.js +1 -1
- package/package.json +1 -1
- package/dist/BAlert-BJwBDl-0.js +0 -2
- package/dist/BAlert-BJwBDl-0.js.map +0 -1
- package/dist/BAlert-COBpr3sv.mjs.map +0 -1
- package/dist/BButton.vue_vue_type_script_setup_true_lang-DgEdM3dn.js +0 -2
- package/dist/BButton.vue_vue_type_script_setup_true_lang-DgEdM3dn.js.map +0 -1
- package/dist/BButton.vue_vue_type_script_setup_true_lang-jzwMHPCL.mjs.map +0 -1
- package/dist/BCarouselSlide.vue_vue_type_script_setup_true_lang-BBJZRypO.js +0 -2
- package/dist/BCarouselSlide.vue_vue_type_script_setup_true_lang-BBJZRypO.js.map +0 -1
- package/dist/BCarouselSlide.vue_vue_type_script_setup_true_lang-BTWNL7bv.mjs.map +0 -1
- package/dist/BCollapse.vue_vue_type_script_setup_true_lang-DBqf-ejP.js +0 -2
- package/dist/BCollapse.vue_vue_type_script_setup_true_lang-DBqf-ejP.js.map +0 -1
- package/dist/BCollapse.vue_vue_type_script_setup_true_lang-Dgmxrsug.mjs.map +0 -1
- package/dist/BDropdown-CjksY2j0.mjs.map +0 -1
- package/dist/BDropdown-DfhycjTK.js +0 -2
- package/dist/BDropdown-DfhycjTK.js.map +0 -1
- package/dist/BForm.vue_vue_type_script_setup_true_lang-BkJ_oJlm.mjs.map +0 -1
- package/dist/BForm.vue_vue_type_script_setup_true_lang-Otfw9l0O.js +0 -2
- package/dist/BForm.vue_vue_type_script_setup_true_lang-Otfw9l0O.js.map +0 -1
- package/dist/BFormCheckboxGroup.vue_vue_type_script_setup_true_lang-DxqJb-gk.mjs.map +0 -1
- package/dist/BFormCheckboxGroup.vue_vue_type_script_setup_true_lang-V4lzHAXh.js +0 -2
- package/dist/BFormCheckboxGroup.vue_vue_type_script_setup_true_lang-V4lzHAXh.js.map +0 -1
- package/dist/BFormFile.vue_vue_type_script_setup_true_lang-C_pOZSjF.mjs.map +0 -1
- package/dist/BFormFile.vue_vue_type_script_setup_true_lang-D9jQXmvE.js +0 -2
- package/dist/BFormFile.vue_vue_type_script_setup_true_lang-D9jQXmvE.js.map +0 -1
- package/dist/BFormGroup.vue_vue_type_script_setup_true_lang-C9aNLzoU.mjs.map +0 -1
- package/dist/BFormGroup.vue_vue_type_script_setup_true_lang-CrVW1ni2.js +0 -2
- package/dist/BFormGroup.vue_vue_type_script_setup_true_lang-CrVW1ni2.js.map +0 -1
- package/dist/BFormInput.vue_vue_type_script_setup_true_lang-DprPjH2_.js +0 -2
- package/dist/BFormInput.vue_vue_type_script_setup_true_lang-DprPjH2_.js.map +0 -1
- package/dist/BFormRadioGroup.vue_vue_type_script_setup_true_lang-Bx613lZi.mjs.map +0 -1
- package/dist/BFormRadioGroup.vue_vue_type_script_setup_true_lang-CkX_UvVv.js +0 -2
- package/dist/BFormRadioGroup.vue_vue_type_script_setup_true_lang-CkX_UvVv.js.map +0 -1
- package/dist/BFormSelect.vue_vue_type_script_setup_true_lang-Bti_-QrZ.js.map +0 -1
- package/dist/BFormSelect.vue_vue_type_script_setup_true_lang-CcuEI8B1.mjs.map +0 -1
- package/dist/BFormSpinbutton.vue_vue_type_script_setup_true_lang-Cc5tnU5U.js +0 -2
- package/dist/BFormSpinbutton.vue_vue_type_script_setup_true_lang-Cc5tnU5U.js.map +0 -1
- package/dist/BFormSpinbutton.vue_vue_type_script_setup_true_lang-fgdiiWN2.mjs.map +0 -1
- package/dist/BFormTags.vue_vue_type_script_setup_true_lang-B0nneNg9.mjs.map +0 -1
- package/dist/BFormTags.vue_vue_type_script_setup_true_lang-DnKihyEX.js +0 -2
- package/dist/BFormTags.vue_vue_type_script_setup_true_lang-DnKihyEX.js.map +0 -1
- package/dist/BFormTextarea.vue_vue_type_script_setup_true_lang-D9P-CNL_.js +0 -2
- package/dist/BFormTextarea.vue_vue_type_script_setup_true_lang-D9P-CNL_.js.map +0 -1
- package/dist/BFormTextarea.vue_vue_type_script_setup_true_lang-WGrVKcpl.mjs.map +0 -1
- package/dist/BModalOrchestrator.vue_vue_type_script_setup_true_lang-D4ERzMiN.js +0 -2
- package/dist/BModalOrchestrator.vue_vue_type_script_setup_true_lang-D4ERzMiN.js.map +0 -1
- package/dist/BModalOrchestrator.vue_vue_type_script_setup_true_lang-Dkt9GuHM.mjs.map +0 -1
- package/dist/BNavText.vue_vue_type_script_setup_true_lang-CFSY1iCd.js.map +0 -1
- package/dist/BNavText.vue_vue_type_script_setup_true_lang-_JNKtlRG.mjs.map +0 -1
- package/dist/BOffcanvas-DS06_xgl.js +0 -2
- package/dist/BOffcanvas-DS06_xgl.js.map +0 -1
- package/dist/BOffcanvas-DYTUqwmj.mjs.map +0 -1
- package/dist/BPagination.vue_vue_type_script_setup_true_lang-BAqonaXX.mjs.map +0 -1
- package/dist/BPagination.vue_vue_type_script_setup_true_lang-DrXb2dtD.js +0 -2
- package/dist/BPagination.vue_vue_type_script_setup_true_lang-DrXb2dtD.js.map +0 -1
- package/dist/BTabs.vue_vue_type_script_setup_true_lang-BVSuBB6u.mjs.map +0 -1
- package/dist/BTabs.vue_vue_type_script_setup_true_lang-Dj36aSgI.js +0 -2
- package/dist/BTabs.vue_vue_type_script_setup_true_lang-Dj36aSgI.js.map +0 -1
- package/dist/BToastOrchestrator.vue_vue_type_style_index_0_lang-7MSO655C.mjs.map +0 -1
- package/dist/BToastOrchestrator.vue_vue_type_style_index_0_lang-Bc_82u6h.js +0 -2
- package/dist/BToastOrchestrator.vue_vue_type_style_index_0_lang-Bc_82u6h.js.map +0 -1
- package/dist/BTooltip.vue_vue_type_script_setup_true_lang-ChWjwYlI.js.map +0 -1
- package/dist/index-mh6YsupP.js.map +0 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";const e=require("vue"),o=require("./keys-DNjuQYyL.js"),l=require("./useId-B5tsy2d5.js"),a=require("./useDefaults-DrxHjHw2.js"),t=require("./BCollapse.vue_vue_type_script_setup_true_lang-
|
|
2
|
-
//# sourceMappingURL=BAccordionItem.vue_vue_type_script_setup_true_lang-
|
|
1
|
+
"use strict";const e=require("vue"),o=require("./keys-DNjuQYyL.js"),l=require("./useId-B5tsy2d5.js"),a=require("./useDefaults-DrxHjHw2.js"),t=require("./BCollapse.vue_vue_type_script_setup_true_lang-CpyJrqDW.js"),n=["id"],d=e.defineComponent({__name:"BAccordion",props:e.mergeModels({flush:{type:Boolean,default:!1},free:{type:Boolean,default:!1},id:{default:void 0},initialAnimation:{type:Boolean,default:!1},lazy:{type:Boolean,default:!1},unmountLazy:{type:Boolean,default:!1}},{modelValue:{default:void 0},modelModifiers:{}}),emits:["update:modelValue"],setup(t){const d=t,u=a.useDefaults(d,"BAccordion"),i=e.useModel(t,"modelValue"),r=l.useId((()=>u.id),"accordion"),s=e.computed((()=>({"accordion-flush":u.flush})));return e.provide(o.accordionInjectionKey,{openItem:e.readonly(i),free:e.toRef((()=>u.free)),initialAnimation:e.toRef((()=>u.initialAnimation)),lazy:e.toRef((()=>u.lazy)),unmountLazy:e.toRef((()=>u.unmountLazy)),setOpenItem:e=>{i.value=e}}),(o,l)=>(e.openBlock(),e.createElementBlock("div",{id:e.unref(r),class:e.normalizeClass(["accordion",s.value])},[e.renderSlot(o.$slots,"default")],10,n))}}),u=["aria-expanded","aria-controls","onClick"],i=e.defineComponent({inheritAttrs:!1,__name:"BAccordionItem",props:e.mergeModels({bodyAttrs:{default:void 0},bodyClass:{default:void 0},buttonAttrs:{default:void 0},buttonClass:{default:void 0},collapseClass:{default:void 0},headerAttrs:{default:void 0},headerClass:{default:void 0},headerTag:{default:"h2"},horizontal:{type:Boolean,default:void 0},id:{default:void 0},isNav:{type:Boolean,default:void 0},lazy:{type:Boolean,default:!1},unmountLazy:{type:Boolean,default:!1},tag:{default:void 0},title:{default:void 0},show:{type:Boolean,default:void 0},visible:{type:Boolean,default:!1},wrapperAttrs:{default:void 0}},{modelValue:{type:Boolean,default:!1},modelModifiers:{}}),emits:e.mergeModels(["hidden","hide","hide-prevented","show","show-prevented","shown"],["update:modelValue"]),setup(n,{emit:d}){const{class:i,...r}=e.useAttrs(),s=n,c=a.useDefaults(s,"BAccordionItem"),f=d,v=e.inject(o.accordionInjectionKey,null),p=l.useId((()=>c.id),"accordion_item"),m=e.useModel(n,"modelValue");return m.value=(null==v?void 0:v.openItem.value)===p.value&&!(null==v?void 0:v.initialAnimation.value),m.value&&!(null==v?void 0:v.free.value)&&(null==v||v.setOpenItem(p.value)),e.onMounted((()=>{m.value||(null==v?void 0:v.openItem.value)!==p.value||e.nextTick((()=>{m.value=!0}))})),e.watch((()=>null==v?void 0:v.openItem.value),(()=>m.value=(null==v?void 0:v.openItem.value)===p.value&&!(null==v?void 0:v.free.value))),e.watch(m,(()=>{m.value&&!(null==v?void 0:v.free.value)&&(null==v||v.setOpenItem(p.value))})),(o,l)=>{var a,n;return e.openBlock(),e.createElementBlock("div",e.mergeProps({class:"accordion-item"},e.unref(c).wrapperAttrs,{class:e.unref(i)}),[e.createVNode(t._sfc_main,e.mergeProps({id:e.unref(p),modelValue:m.value,"onUpdate:modelValue":l[0]||(l[0]=e=>m.value=e),class:["accordion-collapse",e.unref(c).collapseClass],"aria-labelledby":`${e.unref(p)}-heading`},r,{tag:e.unref(c).tag,show:e.unref(c).show,horizontal:e.unref(c).horizontal,visible:e.unref(c).visible,"is-nav":e.unref(c).isNav,lazy:e.unref(c).lazy||(null==(a=e.unref(v))?void 0:a.lazy.value),"unmount-lazy":e.unref(c).unmountLazy||(null==(n=e.unref(v))?void 0:n.unmountLazy.value),onShow:l[1]||(l[1]=e=>f("show",e)),onShown:l[2]||(l[2]=e=>f("shown")),onHide:l[3]||(l[3]=e=>f("hide",e)),onHidden:l[4]||(l[4]=e=>f("hidden")),onHidePrevented:l[5]||(l[5]=e=>f("hide-prevented")),onShowPrevented:l[6]||(l[6]=e=>f("show-prevented"))}),{header:e.withCtx((({visible:l,toggle:a})=>[(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(c).headerTag),e.mergeProps({id:`${e.unref(p)}-heading`,class:["accordion-header",e.unref(c).headerClass]},e.unref(c).headerAttrs),{default:e.withCtx((()=>[e.createElementVNode("button",e.mergeProps({class:"accordion-button"},e.unref(c).buttonAttrs,{class:[{collapsed:!l},e.unref(c).buttonClass],type:"button","aria-expanded":l?"true":"false","aria-controls":e.unref(p),onClick:a}),[e.renderSlot(o.$slots,"title",{},(()=>[e.createTextVNode(e.toDisplayString(e.unref(c).title),1)]))],16,u)])),_:2},1040,["id","class"]))])),default:e.withCtx((()=>[e.createElementVNode("div",e.mergeProps({class:"accordion-body"},e.unref(c).bodyAttrs,{class:e.unref(c).bodyClass}),[e.renderSlot(o.$slots,"default")],16)])),_:3},16,["id","modelValue","class","aria-labelledby","tag","show","horizontal","visible","is-nav","lazy","unmount-lazy"])],16)}}});exports._sfc_main=d,exports._sfc_main$1=i;
|
|
2
|
+
//# sourceMappingURL=BAccordionItem.vue_vue_type_script_setup_true_lang-CieNYlN6.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BAccordionItem.vue_vue_type_script_setup_true_lang-
|
|
1
|
+
{"version":3,"file":"BAccordionItem.vue_vue_type_script_setup_true_lang-CieNYlN6.js","sources":["../src/components/BAccordion/BAccordion.vue","../src/components/BAccordion/BAccordionItem.vue"],"sourcesContent":["<template>\n <div :id=\"computedId\" class=\"accordion\" :class=\"computedClasses\">\n <slot />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, provide, readonly, toRef} from 'vue'\nimport {accordionInjectionKey} from '../../utils/keys'\nimport {useId} from '../../composables/useId'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BAccordionProps} from '../../types/ComponentProps'\n\nconst _props = withDefaults(defineProps<Omit<BAccordionProps, 'modelValue'>>(), {\n flush: false,\n free: false,\n initialAnimation: false,\n id: undefined,\n lazy: false,\n unmountLazy: false,\n})\n\ndefineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n}>()\n\nconst props = useDefaults(_props, 'BAccordion')\n\nconst modelValue = defineModel<BAccordionProps['modelValue']>({\n default: undefined,\n})\n\nconst computedId = useId(() => props.id, 'accordion')\n\nconst computedClasses = computed(() => ({\n 'accordion-flush': props.flush,\n}))\n\nprovide(accordionInjectionKey, {\n openItem: readonly(modelValue),\n free: toRef(() => props.free),\n initialAnimation: toRef(() => props.initialAnimation),\n lazy: toRef(() => props.lazy),\n unmountLazy: toRef(() => props.unmountLazy),\n setOpenItem: (id: string) => {\n modelValue.value = id\n },\n})\n</script>\n","<template>\n <div class=\"accordion-item\" v-bind=\"props.wrapperAttrs\" :class=\"wrapperClass\">\n <BCollapse\n :id=\"computedId\"\n v-model=\"modelValue\"\n class=\"accordion-collapse\"\n :class=\"props.collapseClass\"\n :aria-labelledby=\"`${computedId}-heading`\"\n v-bind=\"collapseAttrs\"\n :tag=\"props.tag\"\n :show=\"props.show\"\n :horizontal=\"props.horizontal\"\n :visible=\"props.visible\"\n :is-nav=\"props.isNav\"\n :lazy=\"props.lazy || parentData?.lazy.value\"\n :unmount-lazy=\"props.unmountLazy || parentData?.unmountLazy.value\"\n @show=\"emit('show', $event)\"\n @shown=\"emit('shown')\"\n @hide=\"emit('hide', $event)\"\n @hidden=\"emit('hidden')\"\n @hide-prevented=\"emit('hide-prevented')\"\n @show-prevented=\"emit('show-prevented')\"\n >\n <template #header=\"{visible: toggleVisible, toggle: slotToggle}\">\n <component\n :is=\"props.headerTag\"\n :id=\"`${computedId}-heading`\"\n class=\"accordion-header\"\n :class=\"props.headerClass\"\n v-bind=\"props.headerAttrs\"\n >\n <button\n class=\"accordion-button\"\n v-bind=\"props.buttonAttrs\"\n :class=\"[{collapsed: !toggleVisible}, props.buttonClass]\"\n type=\"button\"\n :aria-expanded=\"toggleVisible ? 'true' : 'false'\"\n :aria-controls=\"computedId\"\n @click=\"slotToggle\"\n >\n <slot name=\"title\"> {{ props.title }} </slot>\n </button>\n </component>\n </template>\n <div class=\"accordion-body\" v-bind=\"props.bodyAttrs\" :class=\"props.bodyClass\">\n <slot />\n </div>\n </BCollapse>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {inject, nextTick, onMounted, useAttrs, watch} from 'vue'\nimport BCollapse from '../BCollapse/BCollapse.vue'\nimport {accordionInjectionKey} from '../../utils/keys'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useId} from '../../composables/useId'\nimport type {BAccordionItemProps} from '../../types/ComponentProps'\nimport type {BvTriggerableEvent} from '../../utils'\n\ndefineOptions({\n inheritAttrs: false,\n})\nconst {class: wrapperClass, ...collapseAttrs} = useAttrs()\n\nconst _props = withDefaults(defineProps<Omit<BAccordionItemProps, 'modelValue'>>(), {\n bodyAttrs: undefined,\n bodyClass: undefined,\n buttonAttrs: undefined,\n buttonClass: undefined,\n collapseClass: undefined,\n headerAttrs: undefined,\n headerClass: undefined,\n headerTag: 'h2',\n horizontal: undefined,\n id: undefined,\n isNav: undefined,\n lazy: false,\n unmountLazy: false,\n tag: undefined,\n title: undefined,\n show: undefined,\n visible: false,\n wrapperAttrs: undefined,\n})\nconst props = useDefaults(_props, 'BAccordionItem')\n\nconst emit = defineEmits<{\n 'hidden': []\n 'hide': [value: BvTriggerableEvent]\n 'hide-prevented': []\n 'show': [value: BvTriggerableEvent]\n 'show-prevented': []\n 'shown': []\n}>()\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 title?: (props: Record<string, never>) => any\n}>()\n\nconst parentData = inject(accordionInjectionKey, null)\n\nconst computedId = useId(() => props.id, 'accordion_item')\n\nconst modelValue = defineModel<Exclude<BAccordionItemProps['modelValue'], undefined>>({\n default: false,\n})\n\nmodelValue.value =\n parentData?.openItem.value === computedId.value && !parentData?.initialAnimation.value\n\nif (modelValue.value && !parentData?.free.value) {\n parentData?.setOpenItem(computedId.value)\n}\n\nonMounted(() => {\n if (!modelValue.value && parentData?.openItem.value === computedId.value) {\n nextTick(() => {\n modelValue.value = true\n })\n }\n})\n\nwatch(\n () => parentData?.openItem.value,\n () =>\n (modelValue.value = parentData?.openItem.value === computedId.value && !parentData?.free.value)\n)\nwatch(modelValue, () => {\n if (modelValue.value && !parentData?.free.value) parentData?.setOpenItem(computedId.value)\n})\n</script>\n"],"names":["_props","__props","props","useDefaults","modelValue","_useModel","computedId","useId","id","computedClasses","computed","flush","provide","accordionInjectionKey","openItem","readonly","free","toRef","initialAnimation","lazy","unmountLazy","setOpenItem","value","class","wrapperClass","collapseAttrs","useAttrs","emit","__emit","parentData","inject","onMounted","nextTick","vue","watch"],"mappings":"sjBAaA,MAAMA,EAASC,EAcTC,EAAQC,EAAAA,YAAYH,EAAQ,cAE5BI,EAAaC,EAAAA,SAElBJ,EAAA,cAEKK,EAAaC,EAAAA,OAAM,IAAML,EAAMM,IAAI,aAEnCC,EAAkBC,EAAAA,UAAS,KAAO,CACtC,kBAAmBR,EAAMS,iBAG3BC,EAAAA,QAAQC,EAAAA,sBAAuB,CAC7BC,SAAUC,WAASX,GACnBY,KAAMC,EAAAA,OAAM,IAAMf,EAAMc,OACxBE,iBAAkBD,EAAAA,OAAM,IAAMf,EAAMgB,mBACpCC,KAAMF,EAAAA,OAAM,IAAMf,EAAMiB,OACxBC,YAAaH,EAAAA,OAAM,IAAMf,EAAMkB,cAC/BC,YAAcb,IACZJ,EAAWkB,MAAQd,CAAA,k/BCiBvB,MAAOe,MAAOC,KAAiBC,GAAiBC,EAAAA,WAE1C1B,EAASC,EAoBTC,EAAQC,EAAAA,YAAYH,EAAQ,kBAE5B2B,EAAOC,EAgBPC,EAAaC,EAAAA,OAAOjB,EAAAA,sBAAuB,MAE3CP,EAAaC,EAAAA,OAAM,IAAML,EAAMM,IAAI,kBAEnCJ,EAAaC,EAAAA,SAElBJ,EAAA,qBAEUG,EAAAkB,aACTO,WAAYf,SAASQ,SAAUhB,EAAWgB,eAAUO,WAAYX,iBAAiBI,OAE/ElB,EAAWkB,SAAU,MAAAO,OAAA,EAAAA,EAAYb,KAAKM,SAC5B,MAAAO,GAAAA,EAAAR,YAAYf,EAAWgB,QAGrCS,EAAAA,WAAU,KACH3B,EAAWkB,cAASO,WAAYf,SAASQ,SAAUhB,EAAWgB,OACjEU,EAAAA,UAAS,KACP5B,EAAWkB,OAAQ,CAAA,GACpB,IAILW,EAAAC,OACE,UAAML,WAAYf,SAASQ,QAC3B,IACGlB,EAAWkB,OAAoB,MAAZO,OAAY,EAAAA,EAAAf,SAASQ,SAAUhB,EAAWgB,SAAU,MAAAO,OAAA,EAAAA,EAAYb,KAAKM,SAE7FW,EAAAC,MAAM9B,GAAY,KACZA,EAAWkB,SAAU,MAAAO,OAAA,EAAAA,EAAYb,KAAKM,SAAO,MAAAO,GAAAA,EAAYR,YAAYf,EAAWgB,OAAA"}
|
|
@@ -2,7 +2,7 @@ import { defineComponent, mergeModels, useModel, computed, provide, readonly, to
|
|
|
2
2
|
import { e as accordionInjectionKey } from "./keys-CsqIkltC.mjs";
|
|
3
3
|
import { u as useId } from "./useId-BR0P33VS.mjs";
|
|
4
4
|
import { u as useDefaults } from "./useDefaults-dJMhLizZ.mjs";
|
|
5
|
-
import { _ as _sfc_main$2 } from "./BCollapse.vue_vue_type_script_setup_true_lang-
|
|
5
|
+
import { _ as _sfc_main$2 } from "./BCollapse.vue_vue_type_script_setup_true_lang-CrKEVFwx.mjs";
|
|
6
6
|
const _hoisted_1$1 = ["id"];
|
|
7
7
|
const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
8
8
|
__name: "BAccordion",
|
|
@@ -168,4 +168,4 @@ export {
|
|
|
168
168
|
_sfc_main$1 as _,
|
|
169
169
|
_sfc_main as a
|
|
170
170
|
};
|
|
171
|
-
//# sourceMappingURL=BAccordionItem.vue_vue_type_script_setup_true_lang-
|
|
171
|
+
//# sourceMappingURL=BAccordionItem.vue_vue_type_script_setup_true_lang-hXpJEtmN.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BAccordionItem.vue_vue_type_script_setup_true_lang-
|
|
1
|
+
{"version":3,"file":"BAccordionItem.vue_vue_type_script_setup_true_lang-hXpJEtmN.mjs","sources":["../src/components/BAccordion/BAccordion.vue","../src/components/BAccordion/BAccordionItem.vue"],"sourcesContent":["<template>\n <div :id=\"computedId\" class=\"accordion\" :class=\"computedClasses\">\n <slot />\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, provide, readonly, toRef} from 'vue'\nimport {accordionInjectionKey} from '../../utils/keys'\nimport {useId} from '../../composables/useId'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BAccordionProps} from '../../types/ComponentProps'\n\nconst _props = withDefaults(defineProps<Omit<BAccordionProps, 'modelValue'>>(), {\n flush: false,\n free: false,\n initialAnimation: false,\n id: undefined,\n lazy: false,\n unmountLazy: false,\n})\n\ndefineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n}>()\n\nconst props = useDefaults(_props, 'BAccordion')\n\nconst modelValue = defineModel<BAccordionProps['modelValue']>({\n default: undefined,\n})\n\nconst computedId = useId(() => props.id, 'accordion')\n\nconst computedClasses = computed(() => ({\n 'accordion-flush': props.flush,\n}))\n\nprovide(accordionInjectionKey, {\n openItem: readonly(modelValue),\n free: toRef(() => props.free),\n initialAnimation: toRef(() => props.initialAnimation),\n lazy: toRef(() => props.lazy),\n unmountLazy: toRef(() => props.unmountLazy),\n setOpenItem: (id: string) => {\n modelValue.value = id\n },\n})\n</script>\n","<template>\n <div class=\"accordion-item\" v-bind=\"props.wrapperAttrs\" :class=\"wrapperClass\">\n <BCollapse\n :id=\"computedId\"\n v-model=\"modelValue\"\n class=\"accordion-collapse\"\n :class=\"props.collapseClass\"\n :aria-labelledby=\"`${computedId}-heading`\"\n v-bind=\"collapseAttrs\"\n :tag=\"props.tag\"\n :show=\"props.show\"\n :horizontal=\"props.horizontal\"\n :visible=\"props.visible\"\n :is-nav=\"props.isNav\"\n :lazy=\"props.lazy || parentData?.lazy.value\"\n :unmount-lazy=\"props.unmountLazy || parentData?.unmountLazy.value\"\n @show=\"emit('show', $event)\"\n @shown=\"emit('shown')\"\n @hide=\"emit('hide', $event)\"\n @hidden=\"emit('hidden')\"\n @hide-prevented=\"emit('hide-prevented')\"\n @show-prevented=\"emit('show-prevented')\"\n >\n <template #header=\"{visible: toggleVisible, toggle: slotToggle}\">\n <component\n :is=\"props.headerTag\"\n :id=\"`${computedId}-heading`\"\n class=\"accordion-header\"\n :class=\"props.headerClass\"\n v-bind=\"props.headerAttrs\"\n >\n <button\n class=\"accordion-button\"\n v-bind=\"props.buttonAttrs\"\n :class=\"[{collapsed: !toggleVisible}, props.buttonClass]\"\n type=\"button\"\n :aria-expanded=\"toggleVisible ? 'true' : 'false'\"\n :aria-controls=\"computedId\"\n @click=\"slotToggle\"\n >\n <slot name=\"title\"> {{ props.title }} </slot>\n </button>\n </component>\n </template>\n <div class=\"accordion-body\" v-bind=\"props.bodyAttrs\" :class=\"props.bodyClass\">\n <slot />\n </div>\n </BCollapse>\n </div>\n</template>\n\n<script setup lang=\"ts\">\nimport {inject, nextTick, onMounted, useAttrs, watch} from 'vue'\nimport BCollapse from '../BCollapse/BCollapse.vue'\nimport {accordionInjectionKey} from '../../utils/keys'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useId} from '../../composables/useId'\nimport type {BAccordionItemProps} from '../../types/ComponentProps'\nimport type {BvTriggerableEvent} from '../../utils'\n\ndefineOptions({\n inheritAttrs: false,\n})\nconst {class: wrapperClass, ...collapseAttrs} = useAttrs()\n\nconst _props = withDefaults(defineProps<Omit<BAccordionItemProps, 'modelValue'>>(), {\n bodyAttrs: undefined,\n bodyClass: undefined,\n buttonAttrs: undefined,\n buttonClass: undefined,\n collapseClass: undefined,\n headerAttrs: undefined,\n headerClass: undefined,\n headerTag: 'h2',\n horizontal: undefined,\n id: undefined,\n isNav: undefined,\n lazy: false,\n unmountLazy: false,\n tag: undefined,\n title: undefined,\n show: undefined,\n visible: false,\n wrapperAttrs: undefined,\n})\nconst props = useDefaults(_props, 'BAccordionItem')\n\nconst emit = defineEmits<{\n 'hidden': []\n 'hide': [value: BvTriggerableEvent]\n 'hide-prevented': []\n 'show': [value: BvTriggerableEvent]\n 'show-prevented': []\n 'shown': []\n}>()\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 title?: (props: Record<string, never>) => any\n}>()\n\nconst parentData = inject(accordionInjectionKey, null)\n\nconst computedId = useId(() => props.id, 'accordion_item')\n\nconst modelValue = defineModel<Exclude<BAccordionItemProps['modelValue'], undefined>>({\n default: false,\n})\n\nmodelValue.value =\n parentData?.openItem.value === computedId.value && !parentData?.initialAnimation.value\n\nif (modelValue.value && !parentData?.free.value) {\n parentData?.setOpenItem(computedId.value)\n}\n\nonMounted(() => {\n if (!modelValue.value && parentData?.openItem.value === computedId.value) {\n nextTick(() => {\n modelValue.value = true\n })\n }\n})\n\nwatch(\n () => parentData?.openItem.value,\n () =>\n (modelValue.value = parentData?.openItem.value === computedId.value && !parentData?.free.value)\n)\nwatch(modelValue, () => {\n if (modelValue.value && !parentData?.free.value) parentData?.setOpenItem(computedId.value)\n})\n</script>\n"],"names":["_useModel"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;AAaA,UAAM,SAAS;AAcT,UAAA,QAAQ,YAAY,QAAQ,YAAY;AAExC,UAAA,aAAaA,SAElB,SAAA,YAAA;AAED,UAAM,aAAa,MAAM,MAAM,MAAM,IAAI,WAAW;AAE9C,UAAA,kBAAkB,SAAS,OAAO;AAAA,MACtC,mBAAmB,MAAM;AAAA,IAAA,EACzB;AAEF,YAAQ,uBAAuB;AAAA,MAC7B,UAAU,SAAS,UAAU;AAAA,MAC7B,MAAM,MAAM,MAAM,MAAM,IAAI;AAAA,MAC5B,kBAAkB,MAAM,MAAM,MAAM,gBAAgB;AAAA,MACpD,MAAM,MAAM,MAAM,MAAM,IAAI;AAAA,MAC5B,aAAa,MAAM,MAAM,MAAM,WAAW;AAAA,MAC1C,aAAa,CAAC,OAAe;AAC3B,mBAAW,QAAQ;AAAA,MAAA;AAAA,IACrB,CACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACeD,UAAM,EAAC,OAAO,cAAc,GAAG,cAAA,IAAiB,SAAS;AAEzD,UAAM,SAAS;AAoBT,UAAA,QAAQ,YAAY,QAAQ,gBAAgB;AAElD,UAAM,OAAO;AAgBP,UAAA,aAAa,OAAO,uBAAuB,IAAI;AAErD,UAAM,aAAa,MAAM,MAAM,MAAM,IAAI,gBAAgB;AAEnD,UAAA,aAAaA,SAElB,SAAA,YAAA;AAEU,eAAA,SACT,yCAAY,SAAS,WAAU,WAAW,SAAS,EAAC,yCAAY,iBAAiB;AAEnF,QAAI,WAAW,SAAS,EAAC,yCAAY,KAAK,QAAO;AACnC,+CAAA,YAAY,WAAW;AAAA,IAAK;AAG1C,cAAU,MAAM;AACd,UAAI,CAAC,WAAW,UAAS,yCAAY,SAAS,WAAU,WAAW,OAAO;AACxE,iBAAS,MAAM;AACb,qBAAW,QAAQ;AAAA,QAAA,CACpB;AAAA,MAAA;AAAA,IACH,CACD;AAED;AAAA,MACE,MAAM,yCAAY,SAAS;AAAA,MAC3B,MACG,WAAW,SAAQ,yCAAY,SAAS,WAAU,WAAW,SAAS,EAAC,yCAAY,KAAK;AAAA,IAC7F;AACA,UAAM,YAAY,MAAM;AAClB,UAAA,WAAW,SAAS,EAAC,yCAAY,KAAK,OAAO,0CAAY,YAAY,WAAW;AAAA,IAAK,CAC1F;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";const e=require("vue"),o=require("./BTransition.vue_vue_type_style_index_0_lang-dOw0_NRO.js"),l=require("./BCloseButton.vue_vue_type_script_setup_true_lang-CjS6g5F8.js"),t=require("./BButton.vue_vue_type_script_setup_true_lang-CJ-hXIGK.js"),a=require("./useCountdownHover-plTCHnIW.js"),s=require("./useDefaults-DrxHjHw2.js"),u=require("./dom-D5l3V401.js"),n=require("./_plugin-vue_export-helper-CC_fc8JW.js"),r=e.defineComponent({__name:"BAlert",props:e.mergeModels({closeClass:{default:void 0},closeContent:{default:void 0},closeLabel:{default:"Close"},closeVariant:{default:"secondary"},dismissible:{type:Boolean,default:!1},fade:{type:Boolean,default:!1},immediate:{type:Boolean,default:!0},interval:{default:"requestAnimationFrame"},noHoverPause:{type:Boolean,default:!1},noResumeOnHoverLeave:{type:Boolean,default:!1},showOnPause:{type:Boolean,default:!0},variant:{default:"info"}},{modelValue:{type:[Boolean,Number],default:!1},modelModifiers:{}}),emits:e.mergeModels(["close","close-countdown","closed"],["update:modelValue"]),setup(n,{expose:r,emit:i}){const d=n,c=s.useDefaults(d,"BAlert"),m=i,p=e.useSlots(),v=e.useTemplateRef("_element"),f=e.useModel(n,"modelValue"),_=e.computed((()=>!u.isEmptySlot(p.close))),B=e.computed((()=>"boolean"==typeof f.value?0:f.value)),y=e.computed((()=>({[`alert-${c.variant}`]:null!==c.variant,"alert-dismissible":c.dismissible}))),C=e.computed((()=>[c.closeClass,{"btn-close-custom":_.value}])),{isActive:k,pause:b,resume:g,stop:w,isPaused:q,restart:H,value:V}=a.useCountdown(B,c.interval,{immediate:"number"==typeof f.value&&c.immediate});a.useCountdownHover(v,e.computed((()=>({noHoverPause:c.noHoverPause,noResumeOnHoverLeave:c.noResumeOnHoverLeave,modelValueIgnoresHover:"boolean"==typeof f.value}))),{pause:b,resume:g});const x=e.computed((()=>"boolean"==typeof f.value?f.value:k.value||c.showOnPause&&q.value)),P=e.computed((()=>({variant:_.value?c.closeVariant:void 0,class:C.value})));e.watchEffect((()=>{m("close-countdown",V.value)}));const h=()=>{m("close"),"boolean"==typeof f.value?f.value=!1:(f.value=0,w()),m("closed")};return r({pause:b,resume:g,stop:w,restart:H}),(a,s)=>(e.openBlock(),e.createBlock(o._sfc_main,{"no-fade":!e.unref(c).fade,"trans-props":{enterToClass:"show"}},{default:e.withCtx((()=>[x.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref:"_element",class:e.normalizeClass(["alert",y.value]),role:"alert","aria-live":"polite","aria-atomic":"true"},[e.renderSlot(a.$slots,"default",{},void 0,!0),e.unref(c).dismissible?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[_.value||e.unref(c).closeContent?(e.openBlock(),e.createBlock(t._sfc_main,e.mergeProps({key:0},P.value,{onClick:h}),{default:e.withCtx((()=>[e.renderSlot(a.$slots,"close",{},(()=>[e.createTextVNode(e.toDisplayString(e.unref(c).closeContent),1)]),!0)])),_:3},16)):(e.openBlock(),e.createBlock(l._sfc_main,e.mergeProps({key:1,"aria-label":e.unref(c).closeLabel},P.value,{onClick:h}),null,16,["aria-label"]))],64)):e.createCommentVNode("",!0)],2)):e.createCommentVNode("",!0)])),_:3},8,["no-fade"]))}}),i=n._export_sfc(r,[["__scopeId","data-v-0d0da42d"]]);exports.BAlert=i;
|
|
2
|
+
//# sourceMappingURL=BAlert-CqU4yAgT.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BAlert-CqU4yAgT.js","sources":["../src/components/BAlert/BAlert.vue"],"sourcesContent":["<template>\n <BTransition :no-fade=\"!props.fade\" :trans-props=\"{enterToClass: 'show'}\">\n <div\n v-if=\"isAlertVisible\"\n ref=\"_element\"\n class=\"alert\"\n role=\"alert\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n :class=\"computedClasses\"\n >\n <slot />\n <template v-if=\"props.dismissible\">\n <BButton v-if=\"hasCloseSlot || props.closeContent\" v-bind=\"closeAttrs\" @click=\"hide\">\n <slot name=\"close\">\n {{ props.closeContent }}\n </slot>\n </BButton>\n <BCloseButton v-else :aria-label=\"props.closeLabel\" v-bind=\"closeAttrs\" @click=\"hide\" />\n </template>\n </div>\n </BTransition>\n</template>\n\n<script setup lang=\"ts\">\nimport BTransition from '../BTransition.vue'\nimport BCloseButton from '../BButton/BCloseButton.vue'\nimport BButton from '../BButton/BButton.vue'\nimport type {BAlertProps} from '../../types/ComponentProps'\nimport {computed, useTemplateRef, watchEffect} from 'vue'\nimport {useCountdown} from '../../composables/useCountdown'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {isEmptySlot} from '../../utils/dom'\nimport {useCountdownHover} from '../../composables/useCountdownHover'\n\nconst _props = withDefaults(defineProps<Omit<BAlertProps, 'modelValue'>>(), {\n closeClass: undefined,\n closeContent: undefined,\n closeLabel: 'Close',\n closeVariant: 'secondary',\n dismissible: false,\n fade: false,\n immediate: true,\n interval: 'requestAnimationFrame',\n noHoverPause: false,\n noResumeOnHoverLeave: false,\n showOnPause: true,\n variant: 'info',\n})\n\nconst props = useDefaults(_props, 'BAlert')\n\nconst emit = defineEmits<{\n 'close': []\n 'close-countdown': [value: number]\n 'closed': []\n}>()\n\nconst slots = defineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n close?: (props: Record<string, never>) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n}>()\n\nconst element = useTemplateRef<HTMLElement>('_element')\n\nconst modelValue = defineModel<Exclude<BAlertProps['modelValue'], undefined>>({default: false})\n\nconst hasCloseSlot = computed(() => !isEmptySlot(slots.close))\nconst countdownLength = computed(() =>\n typeof modelValue.value === 'boolean' ? 0 : modelValue.value\n)\n\nconst computedClasses = computed(() => ({\n [`alert-${props.variant}`]: props.variant !== null,\n 'alert-dismissible': props.dismissible,\n}))\n\nconst closeClasses = computed(() => [props.closeClass, {'btn-close-custom': hasCloseSlot.value}])\n\nconst {\n isActive,\n pause,\n resume,\n stop,\n isPaused,\n restart,\n value: remainingMs,\n} = useCountdown(countdownLength, props.interval, {\n immediate: typeof modelValue.value === 'number' && props.immediate,\n})\nuseCountdownHover(\n element,\n computed(() => ({\n noHoverPause: props.noHoverPause,\n noResumeOnHoverLeave: props.noResumeOnHoverLeave,\n modelValueIgnoresHover: typeof modelValue.value === 'boolean',\n })),\n {pause, resume}\n)\n\nconst isAlertVisible = computed(() =>\n typeof modelValue.value === 'boolean'\n ? modelValue.value\n : isActive.value || (props.showOnPause && isPaused.value)\n)\n\nconst closeAttrs = computed(() => ({\n variant: hasCloseSlot.value ? props.closeVariant : undefined,\n class: closeClasses.value,\n}))\n\nwatchEffect(() => {\n emit('close-countdown', remainingMs.value)\n})\n\nconst hide = () => {\n emit('close')\n\n if (typeof modelValue.value === 'boolean') {\n modelValue.value = false\n } else {\n modelValue.value = 0\n stop()\n }\n\n emit('closed')\n}\n\ndefineExpose({\n pause,\n resume,\n stop,\n restart,\n})\n</script>\n\n<style lang=\"scss\" scoped>\n.btn-close-custom {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 2;\n margin: var(--bs-alert-padding-y) var(--bs-alert-padding-x);\n}\n</style>\n"],"names":["_props","__props","props","useDefaults","emit","__emit","slots","_useSlots","element","useTemplateRef","modelValue","_useModel","hasCloseSlot","computed","isEmptySlot","close","countdownLength","value","computedClasses","variant","dismissible","closeClasses","closeClass","isActive","pause","resume","stop","isPaused","restart","remainingMs","useCountdown","interval","immediate","useCountdownHover","noHoverPause","noResumeOnHoverLeave","modelValueIgnoresHover","isAlertVisible","showOnPause","closeAttrs","closeVariant","class","watchEffect","hide","__expose"],"mappings":"kjCAmCA,MAAMA,EAASC,EAeTC,EAAQC,EAAAA,YAAYH,EAAQ,UAE5BI,EAAOC,EAMPC,EAAQC,EAAAA,WAORC,EAAUC,iBAA4B,YAEtCC,EAAaC,EAAAA,SAA2EV,EAAA,cAExFW,EAAeC,EAAAA,UAAS,KAAOC,EAAAA,YAAYR,EAAMS,SACjDC,EAAkBH,EAAAA,UAAS,IACH,kBAArBH,EAAWO,MAAsB,EAAIP,EAAWO,QAGnDC,EAAkBL,EAAAA,UAAS,KAAO,CACtC,CAAC,SAASX,EAAMiB,WAA8B,OAAlBjB,EAAMiB,QAClC,oBAAqBjB,EAAMkB,gBAGvBC,EAAeR,YAAS,IAAM,CAACX,EAAMoB,WAAY,CAAC,mBAAoBV,EAAaK,WAEnFM,SACJA,EAAAC,MACAA,EAAAC,OACAA,EAAAC,KACAA,EAAAC,SACAA,EAAAC,QACAA,EACAX,MAAOY,GACLC,eAAad,EAAiBd,EAAM6B,SAAU,CAChDC,UAAuC,iBAArBtB,EAAWO,OAAsBf,EAAM8B,YAE3DC,EAAAA,kBACEzB,EACAK,EAAAA,UAAS,KAAO,CACdqB,aAAchC,EAAMgC,aACpBC,qBAAsBjC,EAAMiC,qBAC5BC,uBAAoD,kBAArB1B,EAAWO,UAE5C,CAACO,QAAOC,WAGV,MAAMY,EAAiBxB,EAAAA,UAAS,IACF,kBAArBH,EAAWO,MACdP,EAAWO,MACXM,EAASN,OAAUf,EAAMoC,aAAeX,EAASV,QAGjDsB,EAAa1B,EAAAA,UAAS,KAAO,CACjCM,QAASP,EAAaK,MAAQf,EAAMsC,kBAAe,EACnDC,MAAOpB,EAAaJ,UAGtByB,EAAAA,aAAY,KACLtC,EAAA,kBAAmByB,EAAYZ,MAAK,IAG3C,MAAM0B,EAAO,KACXvC,EAAK,SAE2B,kBAArBM,EAAWO,MACpBP,EAAWO,OAAQ,GAEnBP,EAAWO,MAAQ,EACdS,KAGPtB,EAAK,SAAQ,SAGFwC,EAAA,CACXpB,QACAC,SACAC,OACAE"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { defineComponent, mergeModels, useSlots, useTemplateRef, useModel, computed, watchEffect, openBlock, createBlock, unref, withCtx, createElementBlock, normalizeClass, renderSlot, Fragment, mergeProps, createTextVNode, toDisplayString, createCommentVNode } from "vue";
|
|
2
2
|
import { _ as _sfc_main$1 } from "./BTransition.vue_vue_type_style_index_0_lang-X5a8jq3A.mjs";
|
|
3
3
|
import { _ as _sfc_main$3 } from "./BCloseButton.vue_vue_type_script_setup_true_lang-cwGZUWKt.mjs";
|
|
4
|
-
import { _ as _sfc_main$2 } from "./BButton.vue_vue_type_script_setup_true_lang-
|
|
4
|
+
import { _ as _sfc_main$2 } from "./BButton.vue_vue_type_script_setup_true_lang-BpROmjXz.mjs";
|
|
5
5
|
import { u as useCountdown, a as useCountdownHover } from "./useCountdownHover-Bw0qnnAu.mjs";
|
|
6
6
|
import { u as useDefaults } from "./useDefaults-dJMhLizZ.mjs";
|
|
7
7
|
import { i as isEmptySlot } from "./dom-DSGRrOAo.mjs";
|
|
@@ -31,7 +31,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
31
31
|
const props = useDefaults(_props, "BAlert");
|
|
32
32
|
const emit = __emit;
|
|
33
33
|
const slots = useSlots();
|
|
34
|
-
const element = useTemplateRef("
|
|
34
|
+
const element = useTemplateRef("_element");
|
|
35
35
|
const modelValue = useModel(__props, "modelValue");
|
|
36
36
|
const hasCloseSlot = computed(() => !isEmptySlot(slots.close));
|
|
37
37
|
const countdownLength = computed(
|
|
@@ -96,8 +96,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
96
96
|
default: withCtx(() => [
|
|
97
97
|
isAlertVisible.value ? (openBlock(), createElementBlock("div", {
|
|
98
98
|
key: 0,
|
|
99
|
-
|
|
100
|
-
ref: element,
|
|
99
|
+
ref: "_element",
|
|
101
100
|
class: normalizeClass(["alert", computedClasses.value]),
|
|
102
101
|
role: "alert",
|
|
103
102
|
"aria-live": "polite",
|
|
@@ -124,8 +123,8 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
124
123
|
};
|
|
125
124
|
}
|
|
126
125
|
});
|
|
127
|
-
const BAlert = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-
|
|
126
|
+
const BAlert = /* @__PURE__ */ _export_sfc(_sfc_main, [["__scopeId", "data-v-0d0da42d"]]);
|
|
128
127
|
export {
|
|
129
128
|
BAlert as B
|
|
130
129
|
};
|
|
131
|
-
//# sourceMappingURL=BAlert-
|
|
130
|
+
//# sourceMappingURL=BAlert-D6IuXF5P.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BAlert-D6IuXF5P.mjs","sources":["../src/components/BAlert/BAlert.vue"],"sourcesContent":["<template>\n <BTransition :no-fade=\"!props.fade\" :trans-props=\"{enterToClass: 'show'}\">\n <div\n v-if=\"isAlertVisible\"\n ref=\"_element\"\n class=\"alert\"\n role=\"alert\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n :class=\"computedClasses\"\n >\n <slot />\n <template v-if=\"props.dismissible\">\n <BButton v-if=\"hasCloseSlot || props.closeContent\" v-bind=\"closeAttrs\" @click=\"hide\">\n <slot name=\"close\">\n {{ props.closeContent }}\n </slot>\n </BButton>\n <BCloseButton v-else :aria-label=\"props.closeLabel\" v-bind=\"closeAttrs\" @click=\"hide\" />\n </template>\n </div>\n </BTransition>\n</template>\n\n<script setup lang=\"ts\">\nimport BTransition from '../BTransition.vue'\nimport BCloseButton from '../BButton/BCloseButton.vue'\nimport BButton from '../BButton/BButton.vue'\nimport type {BAlertProps} from '../../types/ComponentProps'\nimport {computed, useTemplateRef, watchEffect} from 'vue'\nimport {useCountdown} from '../../composables/useCountdown'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {isEmptySlot} from '../../utils/dom'\nimport {useCountdownHover} from '../../composables/useCountdownHover'\n\nconst _props = withDefaults(defineProps<Omit<BAlertProps, 'modelValue'>>(), {\n closeClass: undefined,\n closeContent: undefined,\n closeLabel: 'Close',\n closeVariant: 'secondary',\n dismissible: false,\n fade: false,\n immediate: true,\n interval: 'requestAnimationFrame',\n noHoverPause: false,\n noResumeOnHoverLeave: false,\n showOnPause: true,\n variant: 'info',\n})\n\nconst props = useDefaults(_props, 'BAlert')\n\nconst emit = defineEmits<{\n 'close': []\n 'close-countdown': [value: number]\n 'closed': []\n}>()\n\nconst slots = defineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n close?: (props: Record<string, never>) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: Record<string, never>) => any\n}>()\n\nconst element = useTemplateRef<HTMLElement>('_element')\n\nconst modelValue = defineModel<Exclude<BAlertProps['modelValue'], undefined>>({default: false})\n\nconst hasCloseSlot = computed(() => !isEmptySlot(slots.close))\nconst countdownLength = computed(() =>\n typeof modelValue.value === 'boolean' ? 0 : modelValue.value\n)\n\nconst computedClasses = computed(() => ({\n [`alert-${props.variant}`]: props.variant !== null,\n 'alert-dismissible': props.dismissible,\n}))\n\nconst closeClasses = computed(() => [props.closeClass, {'btn-close-custom': hasCloseSlot.value}])\n\nconst {\n isActive,\n pause,\n resume,\n stop,\n isPaused,\n restart,\n value: remainingMs,\n} = useCountdown(countdownLength, props.interval, {\n immediate: typeof modelValue.value === 'number' && props.immediate,\n})\nuseCountdownHover(\n element,\n computed(() => ({\n noHoverPause: props.noHoverPause,\n noResumeOnHoverLeave: props.noResumeOnHoverLeave,\n modelValueIgnoresHover: typeof modelValue.value === 'boolean',\n })),\n {pause, resume}\n)\n\nconst isAlertVisible = computed(() =>\n typeof modelValue.value === 'boolean'\n ? modelValue.value\n : isActive.value || (props.showOnPause && isPaused.value)\n)\n\nconst closeAttrs = computed(() => ({\n variant: hasCloseSlot.value ? props.closeVariant : undefined,\n class: closeClasses.value,\n}))\n\nwatchEffect(() => {\n emit('close-countdown', remainingMs.value)\n})\n\nconst hide = () => {\n emit('close')\n\n if (typeof modelValue.value === 'boolean') {\n modelValue.value = false\n } else {\n modelValue.value = 0\n stop()\n }\n\n emit('closed')\n}\n\ndefineExpose({\n pause,\n resume,\n stop,\n restart,\n})\n</script>\n\n<style lang=\"scss\" scoped>\n.btn-close-custom {\n position: absolute;\n top: 0;\n right: 0;\n z-index: 2;\n margin: var(--bs-alert-padding-y) var(--bs-alert-padding-x);\n}\n</style>\n"],"names":["_useSlots","_useModel"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmCA,UAAM,SAAS;AAeT,UAAA,QAAQ,YAAY,QAAQ,QAAQ;AAE1C,UAAM,OAAO;AAMb,UAAM,QAAQA,SAAA;AAOR,UAAA,UAAU,eAA4B,UAAU;AAEhD,UAAA,aAAaC,SAA2E,SAAA,YAAA;AAE9F,UAAM,eAAe,SAAS,MAAM,CAAC,YAAY,MAAM,KAAK,CAAC;AAC7D,UAAM,kBAAkB;AAAA,MAAS,MAC/B,OAAO,WAAW,UAAU,YAAY,IAAI,WAAW;AAAA,IACzD;AAEM,UAAA,kBAAkB,SAAS,OAAO;AAAA,MACtC,CAAC,SAAS,MAAM,OAAO,EAAE,GAAG,MAAM,YAAY;AAAA,MAC9C,qBAAqB,MAAM;AAAA,IAAA,EAC3B;AAEI,UAAA,eAAe,SAAS,MAAM,CAAC,MAAM,YAAY,EAAC,oBAAoB,aAAa,MAAK,CAAC,CAAC;AAE1F,UAAA;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,OAAO;AAAA,IACL,IAAA,aAAa,iBAAiB,MAAM,UAAU;AAAA,MAChD,WAAW,OAAO,WAAW,UAAU,YAAY,MAAM;AAAA,IAAA,CAC1D;AACD;AAAA,MACE;AAAA,MACA,SAAS,OAAO;AAAA,QACd,cAAc,MAAM;AAAA,QACpB,sBAAsB,MAAM;AAAA,QAC5B,wBAAwB,OAAO,WAAW,UAAU;AAAA,MAAA,EACpD;AAAA,MACF,EAAC,OAAO,OAAM;AAAA,IAChB;AAEA,UAAM,iBAAiB;AAAA,MAAS,MAC9B,OAAO,WAAW,UAAU,YACxB,WAAW,QACX,SAAS,SAAU,MAAM,eAAe,SAAS;AAAA,IACvD;AAEM,UAAA,aAAa,SAAS,OAAO;AAAA,MACjC,SAAS,aAAa,QAAQ,MAAM,eAAe;AAAA,MACnD,OAAO,aAAa;AAAA,IAAA,EACpB;AAEF,gBAAY,MAAM;AACX,WAAA,mBAAmB,YAAY,KAAK;AAAA,IAAA,CAC1C;AAED,UAAM,OAAO,MAAM;AACjB,WAAK,OAAO;AAER,UAAA,OAAO,WAAW,UAAU,WAAW;AACzC,mBAAW,QAAQ;AAAA,MAAA,OACd;AACL,mBAAW,QAAQ;AACd,aAAA;AAAA,MAAA;AAGP,WAAK,QAAQ;AAAA,IACf;AAEa,aAAA;AAAA,MACX;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA,CACD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -46,7 +46,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
46
46
|
const _props = __props;
|
|
47
47
|
const props = useDefaults(_props, "BButton");
|
|
48
48
|
const emit = __emit;
|
|
49
|
-
const element = useTemplateRef("
|
|
49
|
+
const element = useTemplateRef("_element");
|
|
50
50
|
const pressedValue = useModel(__props, "pressed");
|
|
51
51
|
const { computedLink, computedLinkProps } = useBLinkHelper(props, [
|
|
52
52
|
"active-class",
|
|
@@ -126,8 +126,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
126
126
|
);
|
|
127
127
|
return (_ctx, _cache) => {
|
|
128
128
|
return openBlock(), createBlock(resolveDynamicComponent(computedTag.value), mergeProps({
|
|
129
|
-
|
|
130
|
-
ref: element,
|
|
129
|
+
ref: "_element",
|
|
131
130
|
class: "btn"
|
|
132
131
|
}, linkProps.value, {
|
|
133
132
|
class: computedClasses.value,
|
|
@@ -164,4 +163,4 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
164
163
|
export {
|
|
165
164
|
_sfc_main as _
|
|
166
165
|
};
|
|
167
|
-
//# sourceMappingURL=BButton.vue_vue_type_script_setup_true_lang-
|
|
166
|
+
//# sourceMappingURL=BButton.vue_vue_type_script_setup_true_lang-BpROmjXz.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BButton.vue_vue_type_script_setup_true_lang-BpROmjXz.mjs","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, useTemplateRef} 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 = useTemplateRef<HTMLElement>('_element')\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":["_useModel","BLink"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA0DA,UAAM,SAAS;AAmCT,UAAA,QAAQ,YAAY,QAAQ,SAAS;AAE3C,UAAM,OAAO;AAIP,UAAA,UAAU,eAA4B,UAAU;AAEhD,UAAA,eAAeA,SAAoC,SAAC,SAA+B;AAEzF,UAAM,EAAC,cAAc,sBAAqB,eAAe,OAAO;AAAA,MAC9D;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA,CACD;AAED,UAAM,WAAW,SAAS,MAAM,OAAO,aAAa,UAAU,SAAS;AACvE,UAAM,WAAW;AAAA,MACf,MAAM,MAAM,QAAQ,YAAY,MAAM,SAAS,UAAa,MAAM,OAAO;AAAA,IAC3E;AACA,UAAM,UAAU,SAAS,MAAM,MAAM,OAAO,MAAS;AAC/C,UAAA,iBAAiB,SAAS,MAAO,MAAM,SAAS,SAAY,QAAQ,CAAC,SAAS,KAAM;AAEpF,UAAA,YAAY,SAAS,MAAO,QAAQ,QAAQ,kBAAkB,QAAQ,EAAG;AACzE,UAAA,uBAAuB,SAAS,MAAM;AAC1C,UAAI,MAAM,SAAS,OAAO,MAAM,SAAiB,QAAA;AAE1C,aAAA,eAAe,QAAQ,MAAM,WAAW;AAAA,IAAA,CAChD;AAEK,UAAA,oBAAoB,SAAS;;AAAM,0BAAM,YAAN,mBAAe,WAAW,YAAW;AAAA,KAAK;AAC7E,UAAA,0BAA0B,SAAS;;AAAM,0BAAM,YAAN,mBAAe,WAAW,aAAY;AAAA,KAAK;AAC1F,UAAM,mBAAmB;AAAA,MACvB,SAAS,MAAO;;AAAA;AAAA,UACd,GAAI,kBAAkB,SAAS;AAAA,YAC7B,MAAM,MAAM;AAAA,YACZ,SAAS,MAAM;AAAA,YACf,cAAc,MAAM;AAAA,YACpB,iBAAiB,MAAM;AAAA,YACvB,sBAAsB,MAAM;AAAA,YAC5B,kBAAkB,MAAM;AAAA,YACxB,uBAAuB,MAAM;AAAA,YAC7B,kBAAkB,MAAM;AAAA,YACxB,SACE,wBAAwB,UAAU,QAAQ,WAAM,YAAN,mBAAe,MAAM,KAAsB;AAAA,UAAA;AAAA,QACzF;AAAA,OACA;AAAA,IACJ;AACM,UAAA,kBAAkB,SAAS,MAAM;AAAA,MACrC,kBAAkB,UAAU,QAAQ,aAAa,UAAU,QACvD,iBAAiB,QACjB;AAAA,MACJ,CAAC,OAAO,MAAM,IAAI,EAAE;AAAA,MACpB;AAAA,QACE,CAAC,OAAO,MAAM,OAAO,EAAE,GAAG,MAAM,YAAY,QAAQ,wBAAwB,UAAU;AAAA,QACtF,UAAU,MAAM,UAAU,aAAa;AAAA,QACvC,gBAAgB,MAAM;AAAA,QACtB,aAAa,MAAM;AAAA,QACnB,YAAY,MAAM;AAAA,MAAA;AAAA,IACpB,CACD;AAEK,UAAA,cAAc,SAAS,MAAO,QAAQ,QAAQC,cAAQ,MAAM,OAAO,MAAM,MAAM,GAAI;AAEnF,UAAA,UAAU,CAAC,MAAkC;AACjD,UAAI,MAAM,UAAU;AAClB,UAAE,eAAe;AACjB,UAAE,gBAAgB;AAClB;AAAA,MAAA;AAEF,WAAK,SAAS,CAAC;AACf,UAAI,SAAS,MAAoB,cAAA,QAAQ,CAAC,aAAa;AAAA,IACzD;AAEA;AAAA,MACE,CAAC,KAAK,OAAO;AAAA,MACb,CAAC,MAAM;;AACD,YAAA,MAAM,SAAS,KAAK;AACtB,YAAE,eAAe;AACjB,wBAAQ,UAAR,mBAAe;AAAA,QAAM;AAAA,MAEzB;AAAA,MACA,EAAC,QAAQ,QAAO;AAAA,IAClB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";const e=require("vue"),l=require("./BSpinner.vue_vue_type_script_setup_true_lang-BcJV3drv.js"),t=require("./useBLinkHelper-BxI4evA6.js"),a=require("./BLink.vue_vue_type_script_setup_true_lang-D6jmfiNf.js"),u=require("./index-BzNnAdg6.js"),n=require("./useDefaults-DrxHjHw2.js"),o=e.defineComponent({__name:"BButton",props:e.mergeModels({loading:{type:Boolean,default:!1},loadingFill:{type:Boolean,default:!1},loadingText:{default:"Loading..."},pill:{type:Boolean,default:!1},size:{default:"md"},squared:{type:Boolean,default:!1},tag:{default:"button"},type:{default:"button"},variant:{default:"secondary"},active:{type:Boolean,default:!1},activeClass:{default:void 0},disabled:{type:Boolean,default:void 0},exactActiveClass:{default:void 0},href:{default:void 0},icon:{type:Boolean,default:!1},noRel:{type:Boolean},opacity:{default:void 0},opacityHover:{default:void 0},rel:{default:void 0},replace:{type:Boolean,default:void 0},routerComponentName:{default:void 0},routerTag:{default:void 0},stretched:{type:Boolean,default:!1},target:{default:void 0},to:{default:void 0},underlineOffset:{default:void 0},underlineOffsetHover:{default:void 0},underlineOpacity:{default:void 0},underlineOpacityHover:{default:void 0},underlineVariant:{default:null}},{pressed:{type:Boolean,default:void 0},pressedModifiers:{}}),emits:e.mergeModels(["click"],["update:pressed"]),setup(o,{emit:r}){const i=o,d=n.useDefaults(i,"BButton"),s=r,v=e.useTemplateRef("_element"),f=e.useModel(o,"pressed"),{computedLink:p,computedLinkProps:c}=t.useBLinkHelper(d,["active-class","exact-active-class","replace","routerComponentName","routerTag"]),m=e.computed((()=>"boolean"==typeof f.value)),y=e.computed((()=>"button"===d.tag&&void 0===d.href&&void 0===d.to)),g=e.computed((()=>void 0!==d.to)),B=e.computed((()=>void 0===d.href&&!y.value)),_=e.computed((()=>g.value?c.value:[])),b=e.computed((()=>!("#"!==d.href||!d.disabled)||(B.value?d.disabled:null))),k=e.computed((()=>{var e;return(null==(e=d.variant)?void 0:e.startsWith("link"))||!1})),h=e.computed((()=>{var e;return(null==(e=d.variant)?void 0:e.startsWith("link-"))||!1})),O=a.useLinkClasses(e.computed((()=>{var e;return{...k.value&&{icon:d.icon,opacity:d.opacity,opacityHover:d.opacityHover,underlineOffset:d.underlineOffset,underlineOffsetHover:d.underlineOffsetHover,underlineOpacity:d.underlineOpacity,underlineOpacityHover:d.underlineOpacityHover,underlineVariant:d.underlineVariant,variant:!0===h.value?null==(e=d.variant)?void 0:e.slice(5):null}}}))),H=e.computed((()=>[!0===k.value&&!1===p.value?O.value:void 0,[`btn-${d.size}`],{[`btn-${d.variant}`]:null!==d.variant&&!1===h.value,active:d.active||f.value,"rounded-pill":d.pill,"rounded-0":d.squared,disabled:d.disabled}])),x=e.computed((()=>g.value?a._sfc_main:d.href?"a":d.tag)),C=e=>{if(d.disabled)return e.preventDefault(),void e.stopPropagation();s("click",e),m.value&&(f.value=!f.value)};return u.onKeyStroke([" ","enter"],(e=>{var l;"#"===d.href&&(e.preventDefault(),null==(l=v.value)||l.click())}),{target:v}),(t,a)=>(e.openBlock(),e.createBlock(e.resolveDynamicComponent(x.value),e.mergeProps({ref:"_element",class:"btn"},_.value,{class:H.value,"aria-disabled":b.value,"aria-pressed":m.value?f.value:null,autocomplete:m.value?"off":null,disabled:y.value?e.unref(d).disabled:null,href:e.unref(d).href,rel:e.unref(p)?e.unref(d).rel:null,role:B.value||e.unref(p)?"button":null,target:e.unref(p)?e.unref(d).target:null,type:y.value?e.unref(d).type:null,to:y.value?null:e.unref(d).to,onClick:C}),{default:e.withCtx((()=>[e.unref(d).loading?e.renderSlot(t.$slots,"loading",{key:0},(()=>[e.unref(d).loadingFill?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.createTextVNode(e.toDisplayString(e.unref(d).loadingText),1)],64)),e.renderSlot(t.$slots,"loading-spinner",{},(()=>[e.createVNode(l._sfc_main,{small:"lg"!==e.unref(d).size,label:e.unref(d).loadingFill?e.unref(d).loadingText:void 0},null,8,["small","label"])]))])):e.renderSlot(t.$slots,"default",{key:1})])),_:3},16,["class","aria-disabled","aria-pressed","autocomplete","disabled","href","rel","role","target","type","to"]))}});exports._sfc_main=o;
|
|
2
|
+
//# sourceMappingURL=BButton.vue_vue_type_script_setup_true_lang-CJ-hXIGK.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BButton.vue_vue_type_script_setup_true_lang-CJ-hXIGK.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, useTemplateRef} 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 = useTemplateRef<HTMLElement>('_element')\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","useTemplateRef","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,iBAA4B,YAEtCC,EAAeC,EAAAA,SAAoCR,EAAC,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,YAAS,SAAsB,IAAfZ,EAAMgB,OAA8BF,EAASD,QAE9EO,EAAYR,EAAAA,UAAS,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,YAAQ7C,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,QAAM,GAGzB,CAACC,OAAQjD"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";const e=require("vue"),l=require("./classes-CXBJXuVd.js"),t=require("./useId-B5tsy2d5.js"),a=require("./index-BzNnAdg6.js"),o=require("./useDefaults-DrxHjHw2.js"),r=require("./keys-DNjuQYyL.js"),n=require("./index-DNkIH70v.js"),u=require("./BImg.vue_vue_type_script_setup_true_lang-JB2OX10-.js"),i=require("./dom-D5l3V401.js"),s=["id"],d=["aria-label","aria-owns"],c=["aria-current","aria-label","aria-controls","aria-describedby","onClick"],v={ref:"_relatedTarget",class:"carousel-inner"},f={class:"visually-hidden"},m={class:"visually-hidden"},p=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:p}){const g=u,k=o.useDefaults(g,"BCarousel"),y=p,h=e.useSlots(),B=t.useId((()=>k.id),"carousel"),b=t.useId(void 0,"carousel-button-ownership"),_=e.useModel(u,"modelValue"),S=e.useTemplateRef("_slideValues"),C=n.useToNumber((()=>k.touchThreshold)),x=e.ref(null);e.onMounted((()=>{var e,l;x.value=(null==(l=null==(e=S.value)?void 0:e.find((e=>"none"!==e.$el.style.display)))?void 0:l._interval)??null}));const V=n.useToNumber((()=>x.value??k.interval)),E=e.ref(!1),T=e.ref(!1),w=e.ref(!0),N=e.useTemplateRef("_relatedTarget"),$=e.useTemplateRef("_element"),D=e.ref(_.value),j=a.useElementHover($),I=e.computed((()=>`carousel-item carousel-item-${w.value?"prev":"next"} carousel-item-${w.value?"end":"start"}`)),R=e.computed((()=>"carousel-item active carousel-item-"+(w.value?"start":"end"))),{pause:q,resume:A}=n.useIntervalFn((()=>{k.rideReverse?M():F()}),V,{immediate:"carousel"===k.ride}),L=e.computed((()=>!0===k.ride&&!0===T.value||"carousel"===k.ride)),W=e.computed((()=>{return e=h.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})),H=e.computed((()=>({"carousel-fade":k.fade}))),P=e=>{var t;return new l.BvCarouselEvent(e,{componentId:B.value,cancelable:!1,target:$.value,direction:w.value?"right":"left",from:D.value,to:_.value,relatedTarget:(null==(t=N.value)?void 0:t.children[_.value])??null})},z=e=>{if(!0!==E.value)if(!0===k.ride&&(T.value=!0),!0===L.value&&A(),w.value=!(e<_.value),e>=W.value.length){if(k.noWrap)return;_.value=0}else if(e<0){if(k.noWrap)return;_.value=W.value.length-1}else D.value=_.value,_.value=e},M=()=>{z(_.value-1)},F=()=>{z(_.value+1)},K=e=>{!1!==k.keyboard&&e()},{lengthX:U}=a.useSwipe($,{passive:!0,onSwipeStart(){!0!==k.noTouch&&q()},onSwipeEnd(){if(!0===k.noTouch)return;const e=()=>{!1!==L.value&&A()};if(U.value>=C.value)return F(),void e();U.value<=-C.value&&(M(),e())}}),X=()=>{y("slide",P("slide")),E.value=!0},G=()=>{y("slid",P("slid")),E.value=!1},J=e=>{0!==_.value&&e.classList.add("carousel-item")},O=e=>{var l,t;x.value=(null==(t=null==(l=S.value)?void 0:l.find((l=>l.$el===e)))?void 0:t._interval)??null};a.onKeyStroke("ArrowLeft",(()=>{K(M)}),{target:$}),a.onKeyStroke("ArrowRight",(()=>{K(F)}),{target:$}),e.watch((()=>k.ride),(()=>{T.value=!1})),e.watch(j,(e=>{e?k.noHoverPause||q():L.value&&A()}));const Q=e=>{y("click:prev",e),e.defaultPrevented||M()},Y=e=>{y("click:next",e),e.defaultPrevented||F()};return i({next:F,pause:q,prev:M,resume:A}),e.provide(r.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:"_element",class:e.normalizeClass(["carousel slide pointer-event",H.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(b)},[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(W.value.length,((l,t)=>{var a;return e.openBlock(),e.createElementBlock("button",{key:t,type:"button","data-bs-target":"",class:e.normalizeClass(t===_.value?"active":""),"aria-current":t===_.value||void 0,"aria-label":`${e.unref(k).indicatorsButtonLabel} ${t}`,"aria-controls":e.unref(b),"aria-describedby":null==(a=e.unref(S))?void 0:a[t]._id,onClick:e=>z(t)},null,10,c)})),128))],8,d)):e.createCommentVNode("",!0),e.createElementVNode("div",v,[e.createVNode(e.TransitionGroup,{"enter-from-class":I.value,"enter-active-class":I.value,"enter-to-class":I.value,"leave-from-class":R.value,"leave-active-class":R.value,"leave-to-class":R.value,onBeforeLeave:X,onAfterLeave:G,onAfterEnter:J,onEnter:O},{default:e.withCtx((()=>[(e.openBlock(!0),e.createElementBlock(e.Fragment,null,e.renderList(W.value,((l,t)=>e.withDirectives((e.openBlock(),e.createBlock(e.resolveDynamicComponent(l),{key:t,ref_for:!0,ref:"_slideValues",class:e.normalizeClass({active:t===_.value&&!1===E.value}),style:e.normalizeStyle(e.unref(k).noAnimation&&{transition:"none"})},null,8,["class","style"])),[[e.vShow,t===_.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:Q},[t[0]||(t[0]=e.createElementVNode("span",{class:"carousel-control-prev-icon","aria-hidden":"true"},null,-1)),e.createElementVNode("span",f,e.toDisplayString(e.unref(k).controlsPrevText),1)]),e.createElementVNode("button",{class:"carousel-control-next",type:"button",onClick:Y},[t[1]||(t[1]=e.createElementVNode("span",{class:"carousel-control-next-icon","aria-hidden":"true"},null,-1)),e.createElementVNode("span",m,e.toDisplayString(e.unref(k).controlsNextText),1)])],64)):e.createCommentVNode("",!0)],10,s))}}),g=["id"],k=e.defineComponent({__name:"BCarouselSlide",props:{background:{default:void 0},caption:{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},textTag:{default:"p"}},setup(l,{expose:a}){const n=l,s=o.useDefaults(n,"BCarouselSlide"),d=e.useSlots(),c=t.useId((()=>s.id),"carousel-slide"),v=e.inject(r.carouselInjectionKey,null),f=e.computed((()=>s.text||!i.isEmptySlot(d.text))),m=e.computed((()=>s.caption||!i.isEmptySlot(d.caption))),p=e.computed((()=>f.value||m.value||!i.isEmptySlot(d.default))),k=e.computed((()=>({background:`${s.background||(null==v?void 0:v.background.value)||"rgb(171, 171, 171)"} none repeat scroll 0% 0%`}))),y=e.computed((()=>({"d-none":void 0!==s.contentVisibleUp,[`d-${s.contentVisibleUp}-block`]:void 0!==s.contentVisibleUp})));return a({_interval:e.toRef((()=>s.interval)),_id:c}),(l,t)=>(e.openBlock(),e.createElementBlock("div",{id:e.unref(c),class:"carousel-item",style:e.normalizeStyle(k.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"])]})),p.value?(e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(s).contentTag),{key:0,class:e.normalizeClass(["carousel-caption",y.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.createElementVNode("span",null,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.createElementVNode("span",null,e.toDisplayString(e.unref(s).text),1)]))])),_:3})):e.createCommentVNode("",!0),e.renderSlot(l.$slots,"default")])),_:3},8,["class"])):e.createCommentVNode("",!0)],12,g))}});exports._sfc_main=p,exports._sfc_main$1=k;
|
|
2
|
+
//# sourceMappingURL=BCarouselSlide.vue_vue_type_script_setup_true_lang-BHTUAvZa.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BCarouselSlide.vue_vue_type_script_setup_true_lang-BHTUAvZa.js","sources":["../src/components/BCarousel/BCarousel.vue","../src/utils/getSlotElements.ts","../src/components/BCarousel/BCarouselSlide.vue"],"sourcesContent":["<template>\n <div\n :id=\"computedId\"\n ref=\"_element\"\n class=\"carousel slide pointer-event\"\n :class=\"computedClasses\"\n >\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, useTemplateRef, 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 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 = useTemplateRef<InstanceType<typeof BCarouselSlide>[]>('_slideValues')\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 = useTemplateRef<HTMLElement>('_relatedTarget')\nconst element = useTemplateRef<HTMLElement>('_element')\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 if (props.rideReverse) {\n prev()\n return\n }\n 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 <span>{{ props.caption }}</span>\n </slot>\n </component>\n <component :is=\"props.textTag\" v-if=\"hasText\">\n <slot name=\"text\">\n <span>{{ 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 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 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 || !isEmptySlot(slots.text))\nconst hasCaption = computed(() => props.caption || !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","useTemplateRef","touchThresholdNumber","useToNumber","touchThreshold","slideInterval","ref","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","isEmptySlot","hasCaption","caption","hasContent","computedStyle","computedContentClasses","contentVisibleUp","_id"],"mappings":"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"}
|
|
@@ -21,8 +21,12 @@ const getSlotElements = (slot, filterBy) => ((slot == null ? void 0 : slot()) ??
|
|
|
21
21
|
const _hoisted_1$1 = ["id"];
|
|
22
22
|
const _hoisted_2 = ["aria-label", "aria-owns"];
|
|
23
23
|
const _hoisted_3 = ["aria-current", "aria-label", "aria-controls", "aria-describedby", "onClick"];
|
|
24
|
-
const _hoisted_4 = {
|
|
24
|
+
const _hoisted_4 = {
|
|
25
|
+
ref: "_relatedTarget",
|
|
26
|
+
class: "carousel-inner"
|
|
27
|
+
};
|
|
25
28
|
const _hoisted_5 = { class: "visually-hidden" };
|
|
29
|
+
const _hoisted_6 = { class: "visually-hidden" };
|
|
26
30
|
const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
27
31
|
__name: "BCarousel",
|
|
28
32
|
props: /* @__PURE__ */ mergeModels({
|
|
@@ -59,7 +63,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
59
63
|
const computedId = useId(() => props.id, "carousel");
|
|
60
64
|
const buttonOwnership = useId(void 0, "carousel-button-ownership");
|
|
61
65
|
const modelValue = useModel(__props, "modelValue");
|
|
62
|
-
const slideValues = useTemplateRef("
|
|
66
|
+
const slideValues = useTemplateRef("_slideValues");
|
|
63
67
|
const touchThresholdNumber = useToNumber(() => props.touchThreshold);
|
|
64
68
|
const slideInterval = ref(null);
|
|
65
69
|
onMounted(() => {
|
|
@@ -70,8 +74,8 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
70
74
|
const isTransitioning = ref(false);
|
|
71
75
|
const rideStarted = ref(false);
|
|
72
76
|
const direction = ref(true);
|
|
73
|
-
const relatedTarget = useTemplateRef("
|
|
74
|
-
const element = useTemplateRef("
|
|
77
|
+
const relatedTarget = useTemplateRef("_relatedTarget");
|
|
78
|
+
const element = useTemplateRef("_element");
|
|
75
79
|
const previousModelValue = ref(modelValue.value);
|
|
76
80
|
const isHovering = useElementHover(element);
|
|
77
81
|
const enterClasses = computed(
|
|
@@ -239,8 +243,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
239
243
|
return (_ctx, _cache) => {
|
|
240
244
|
return openBlock(), createElementBlock("div", {
|
|
241
245
|
id: unref(computedId),
|
|
242
|
-
|
|
243
|
-
ref: element,
|
|
246
|
+
ref: "_element",
|
|
244
247
|
class: normalizeClass(["carousel slide pointer-event", computedClasses.value])
|
|
245
248
|
}, [
|
|
246
249
|
unref(props).indicators ? (openBlock(), createElementBlock("div", {
|
|
@@ -264,11 +267,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
264
267
|
}, null, 10, _hoisted_3);
|
|
265
268
|
}), 128))
|
|
266
269
|
], 8, _hoisted_2)) : createCommentVNode("", true),
|
|
267
|
-
createElementVNode("div",
|
|
268
|
-
ref_key: "relatedTarget",
|
|
269
|
-
ref: relatedTarget,
|
|
270
|
-
class: "carousel-inner"
|
|
271
|
-
}, [
|
|
270
|
+
createElementVNode("div", _hoisted_4, [
|
|
272
271
|
createVNode(TransitionGroup, {
|
|
273
272
|
"enter-from-class": enterClasses.value,
|
|
274
273
|
"enter-active-class": enterClasses.value,
|
|
@@ -286,8 +285,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
286
285
|
return withDirectives((openBlock(), createBlock(resolveDynamicComponent(slide), {
|
|
287
286
|
key: i,
|
|
288
287
|
ref_for: true,
|
|
289
|
-
|
|
290
|
-
ref: slideValues,
|
|
288
|
+
ref: "_slideValues",
|
|
291
289
|
class: normalizeClass({ active: i === modelValue.value && isTransitioning.value === false }),
|
|
292
290
|
style: normalizeStyle(unref(props).noAnimation && { transition: "none" })
|
|
293
291
|
}, null, 8, ["class", "style"])), [
|
|
@@ -308,7 +306,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
308
306
|
class: "carousel-control-prev-icon",
|
|
309
307
|
"aria-hidden": "true"
|
|
310
308
|
}, null, -1)),
|
|
311
|
-
createElementVNode("span",
|
|
309
|
+
createElementVNode("span", _hoisted_5, toDisplayString(unref(props).controlsPrevText), 1)
|
|
312
310
|
]),
|
|
313
311
|
createElementVNode("button", {
|
|
314
312
|
class: "carousel-control-next",
|
|
@@ -319,7 +317,7 @@ const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
|
319
317
|
class: "carousel-control-next-icon",
|
|
320
318
|
"aria-hidden": "true"
|
|
321
319
|
}, null, -1)),
|
|
322
|
-
createElementVNode("span",
|
|
320
|
+
createElementVNode("span", _hoisted_6, toDisplayString(unref(props).controlsNextText), 1)
|
|
323
321
|
])
|
|
324
322
|
], 64)) : createCommentVNode("", true)
|
|
325
323
|
], 10, _hoisted_1$1);
|
|
@@ -421,4 +419,4 @@ export {
|
|
|
421
419
|
_sfc_main$1 as _,
|
|
422
420
|
_sfc_main as a
|
|
423
421
|
};
|
|
424
|
-
//# sourceMappingURL=BCarouselSlide.vue_vue_type_script_setup_true_lang-
|
|
422
|
+
//# sourceMappingURL=BCarouselSlide.vue_vue_type_script_setup_true_lang-CG9zOLX3.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BCarouselSlide.vue_vue_type_script_setup_true_lang-CG9zOLX3.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\n :id=\"computedId\"\n ref=\"_element\"\n class=\"carousel slide pointer-event\"\n :class=\"computedClasses\"\n >\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, useTemplateRef, 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 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 = useTemplateRef<InstanceType<typeof BCarouselSlide>[]>('_slideValues')\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 = useTemplateRef<HTMLElement>('_relatedTarget')\nconst element = useTemplateRef<HTMLElement>('_element')\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 if (props.rideReverse) {\n prev()\n return\n }\n 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 <span>{{ props.caption }}</span>\n </slot>\n </component>\n <component :is=\"props.textTag\" v-if=\"hasText\">\n <slot name=\"text\">\n <span>{{ 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 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 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 || !isEmptySlot(slots.text))\nconst hasCaption = computed(() => props.caption || !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,EAAA;AAER,SAAA;AACT,GAAG,CAAE,CAAA,EACJ,OAAO,CAAC,UAAW;;AAAA,sBAAM,SAAN,mBAA6C,YAAW;AAAA,CAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACkExF,UAAM,SAAS;AAsBT,UAAA,QAAQ,YAAY,QAAQ,WAAW;AAE7C,UAAM,OAAO;AAOb,UAAM,QAAQC,SAAA;AAKd,UAAM,aAAa,MAAM,MAAM,MAAM,IAAI,UAAU;AAC7C,UAAA,kBAAkB,MAAM,QAAW,2BAA2B;AAE9D,UAAA,aAAaC,SAA0E,SAAA,YAAA;AAEvF,UAAA,cAAc,eAAsD,cAAc;AAExF,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,eAA4B,gBAAgB;AAC5D,UAAA,UAAU,eAA4B,UAAU;AAChD,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,IACJ;AACA,UAAM,eAAe;AAAA,MACnB,MAAM,sCAAsC,UAAU,QAAQ,UAAU,KAAK;AAAA,IAC/E;AAEM,UAAA,EAAC,OAAO,OAAA,IAAU;AAAA,MACtB,MAAM;AACJ,YAAI,MAAM,aAAa;AAChB,eAAA;AACL;AAAA,QAAA;AAEG,aAAA;AAAA,MACP;AAAA,MACA;AAAA,MACA,EAAC,WAAW,MAAM,SAAS,WAAU;AAAA,IACvC;AAEA,UAAM,WAAW;AAAA,MACf,MAAO,MAAM,SAAS,QAAQ,YAAY,UAAU,QAAS,MAAM,SAAS;AAAA,IAC9E;AACA,UAAM,SAAS,SAAS,MAAM,gBAAgB,MAAM,SAAS,gBAAgB,CAAC;AAC9E,UAAM,kBAAkB,SAAS,OAAO,EAAC,iBAAiB,MAAM,OAAM;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,MAAA;AAElB,UAAA,SAAS,UAAU,MAAM;AACpB,eAAA;AAAA,MAAA;AAET,gBAAU,QAAQ,QAAQ,WAAW,QAAQ,QAAQ;AACjD,UAAA,SAAS,OAAO,MAAM,QAAQ;AAChC,YAAI,MAAM,OAAQ;AAClB,mBAAW,QAAQ;AACnB;AAAA,MAAA;AAEF,UAAI,QAAQ,GAAG;AACb,YAAI,MAAM,OAAQ;AACP,mBAAA,QAAQ,OAAO,MAAM,SAAS;AACzC;AAAA,MAAA;AAEF,yBAAmB,QAAQ,WAAW;AACtC,iBAAW,QAAQ;AAAA,IACrB;AAEA,UAAM,OAAO,MAAY;AACb,gBAAA,WAAW,QAAQ,CAAC;AAAA,IAChC;AACA,UAAM,OAAO,MAAY;AACb,gBAAA,WAAW,QAAQ,CAAC;AAAA,IAChC;AAEM,UAAA,YAAY,CAAC,OAAmB;AAChC,UAAA,MAAM,aAAa,MAAO;AAC3B,SAAA;AAAA,IACL;AAEA,UAAM,eAAe,MAAM;AACzB,UAAI,MAAM,aAAc;AAClB,YAAA;AAAA,IACR;AACA,UAAM,eAAe,MAAM;AACrB,UAAA,CAAC,SAAS,MAAO;AACd,aAAA;AAAA,IACT;AAEA,UAAM,EAAC,QAAA,IAAW,SAAS,SAAS;AAAA,MAClC,SAAS;AAAA,MACT,eAAe;AACT,YAAA,MAAM,YAAY,KAAM;AACtB,cAAA;AAAA,MACR;AAAA,MACA,aAAa;AACP,YAAA,MAAM,YAAY,KAAM;AAC5B,cAAM,eAAe,MAAM;AACrB,cAAA,SAAS,UAAU,MAAO;AACvB,iBAAA;AAAA,QACT;AACI,YAAA,QAAQ,SAAS,qBAAqB,OAAO;AAC1C,eAAA;AACQ,uBAAA;AACb;AAAA,QAAA;AAEF,YAAI,QAAQ,SAAS,CAAC,qBAAqB,OAAO;AAC3C,eAAA;AACQ,uBAAA;AAAA,QAAA;AAAA,MACf;AAAA,IACF,CACD;AAED,UAAM,gBAAgB,MAAM;AACrB,WAAA,SAAS,qBAAqB,OAAO,CAAC;AAC3C,sBAAgB,QAAQ;AAAA,IAC1B;AACA,UAAM,eAAe,MAAM;AACpB,WAAA,QAAQ,qBAAqB,MAAM,CAAC;AACzC,sBAAgB,QAAQ;AAAA,IAC1B;AAIM,UAAA,eAAe,CAAC,OAA0B;AAC1C,UAAA,WAAW,UAAU,GAAG;AACvB,WAAA,UAAU,IAAI,eAAe;AAAA,MAAA;AAAA,IAEpC;AACM,UAAA,UAAU,CAAC,OAA0B;;AAC3B,oBAAA,UAAQ,uBAAY,UAAZ,mBAAmB,KAAK,CAAC,SAAS,KAAK,QAAQ,QAA/C,mBAAoD,cAAa;AAAA,IACzF;AAEA;AAAA,MACE;AAAA,MACA,MAAM;AACJ,kBAAU,IAAI;AAAA,MAChB;AAAA,MACA,EAAC,QAAQ,QAAO;AAAA,IAClB;AACA;AAAA,MACE;AAAA,MACA,MAAM;AACJ,kBAAU,IAAI;AAAA,MAChB;AAAA,MACA,EAAC,QAAQ,QAAO;AAAA,IAClB;AAEA;AAAA,MACE,MAAM,MAAM;AAAA,MACZ,MAAM;AACJ,oBAAY,QAAQ;AAAA,MAAA;AAAA,IAExB;AAEM,UAAA,YAAY,CAAC,aAAa;AAC9B,UAAI,UAAU;AACC,qBAAA;AACb;AAAA,MAAA;AAEW,mBAAA;AAAA,IAAA,CACd;AAEK,UAAA,cAAc,CAAC,UAAsB;AACzC,WAAK,cAAc,KAAK;AACxB,UAAI,MAAM,iBAAkB;AACvB,WAAA;AAAA,IACP;AACM,UAAA,cAAc,CAAC,UAAsB;AACzC,WAAK,cAAc,KAAK;AACxB,UAAI,MAAM,iBAAkB;AACvB,WAAA;AAAA,IACP;AAEa,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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACvRD,UAAM,SAAS;AAkBT,UAAA,QAAQ,YAAY,QAAQ,gBAAgB;AAElD,UAAM,QAAQD,SAAA;AAWd,UAAM,aAAa,MAAM,MAAM,MAAM,IAAI,gBAAgB;AACnD,UAAA,aAAa,OAAO,sBAAsB,IAAI;AAE9C,UAAA,UAAU,SAAS,MAAM,MAAM,QAAQ,CAAC,YAAY,MAAM,IAAI,CAAC;AAC/D,UAAA,aAAa,SAAS,MAAM,MAAM,WAAW,CAAC,YAAY,MAAM,OAAO,CAAC;AACxE,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,IAAA,EACA;AAEI,UAAA,yBAAyB,SAAS,OAAO;AAAA,MAC7C,UAAU,MAAM,qBAAqB;AAAA,MACrC,CAAC,KAAK,MAAM,gBAAgB,QAAQ,GAAG,MAAM,qBAAqB;AAAA,IAAA,EAClE;AAEW,aAAA;AAAA,MACX,WAAW,MAAM,MAAM,MAAM,QAAQ;AAAA,MACrC,KAAK;AAAA,IAAA,CACN;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
"use strict";const e=require("vue"),o=require("./useDefaults-DrxHjHw2.js"),t=require("./useId-B5tsy2d5.js"),l=require("./keys-DNjuQYyL.js"),a=require("./useShowHide-tBlURHfL.js"),s=e.defineComponent({inheritAttrs:!1,__name:"BCollapse",props:e.mergeModels({horizontal:{type:Boolean,default:!1},id:{default:void 0},isNav:{type:Boolean,default:!1},tag:{default:"div"},initialAnimation:{type:Boolean,default:!1},noAnimation:{type:Boolean,default:!1},noFade:{type:Boolean},lazy:{type:Boolean,default:!1},unmountLazy:{type:Boolean,default:!1},show:{type:Boolean,default:!1},transProps:{},visible:{type:Boolean,default:!1}},{modelValue:{type:Boolean,default:!1},modelModifiers:{}}),emits:e.mergeModels(["hidden","hide","hide-prevented","show","show-prevented","shown","toggle"],["update:modelValue"]),setup(s,{expose:i,emit:n}){var r;const d=s,u=o.useDefaults(d,"BCollapse"),p=n,v=e.useModel(s,"modelValue"),c=t.useId((()=>u.id),"collapse"),h=e.useTemplateRef("_element");let m=!1;const{showRef:f,renderRef:g,hide:y,show:w,toggle:B,isActive:C,computedNoAnimation:z,contentShowing:A,transitionProps:P}=a.useShowHide(v,u,p,h,c,{transitionProps:{onBeforeLeave:e=>{m||(u.horizontal?e.style.width=`${e.scrollWidth}px`:e.style.height=`${e.scrollHeight}px`,e.offsetHeight)},onEnter:e=>{m=!0,requestAnimationFrame((()=>{u.horizontal?e.style.width=`${e.scrollWidth}px`:e.style.height=`${e.scrollHeight}px`}))},onLeave:e=>{requestAnimationFrame((()=>{u.horizontal?e.style.width="":e.style.height=""}))},onAfterEnter:e=>{e.style.height="",e.style.width="",m=!1},onAfterLeave:e=>{e.style.height="",e.style.width="",m=!1},enterToClass:"",leaveToClass:"",enterFromClass:"",leaveFromClass:"",enterActiveClass:"",leaveActiveClass:""}}),N=e.computed((()=>({show:C.value,"navbar-collapse":u.isNav,"collapse-horizontal":u.horizontal}))),k=e.computed((()=>({toggle:B,show:w,hide:y,id:c.value,visible:f.value})));i({hide:y,isNav:u.isNav,show:w,toggle:B,visible:e.readonly(f)}),e.provide(l.collapseInjectionKey,{id:c,hide:y,show:w,toggle:B,visible:e.readonly(f),isNav:e.toRef((()=>u.isNav))});const x=null==(r=e.inject(l.globalCollapseStorageInjectionKey,void 0))?void 0:r({id:c.value,toggle:B,value:e.readonly(f)});return e.onBeforeUnmount((()=>{null==x||x.unregister()})),(o,t)=>(e.openBlock(),e.createElementBlock(e.Fragment,null,[e.renderSlot(o.$slots,"header",e.normalizeProps(e.guardReactiveProps(k.value))),e.unref(g)||e.unref(A)?(e.openBlock(),e.createBlock(e.Transition,e.mergeProps({key:0},e.unref(P),{"enter-active-class":e.unref(z)?"":"collapsing","leave-active-class":e.unref(z)?"":"collapsing",appear:v.value}),{default:e.withCtx((()=>[e.withDirectives((e.openBlock(),e.createBlock(e.resolveDynamicComponent(e.unref(u).tag),e.mergeProps({id:e.unref(c),ref:"_element",class:["collapse",N.value],"is-nav":e.unref(u).isNav},o.$attrs),{default:e.withCtx((()=>[e.unref(A)?e.renderSlot(o.$slots,"default",e.normalizeProps(e.mergeProps({key:0},k.value))):e.createCommentVNode("",!0)])),_:3},16,["id","class","is-nav"])),[[e.vShow,e.unref(f)]])])),_:3},16,["enter-active-class","leave-active-class","appear"])):e.createCommentVNode("",!0),e.renderSlot(o.$slots,"footer",e.normalizeProps(e.guardReactiveProps(k.value)))],64))}});exports._sfc_main=s;
|
|
2
|
+
//# sourceMappingURL=BCollapse.vue_vue_type_script_setup_true_lang-CpyJrqDW.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"BCollapse.vue_vue_type_script_setup_true_lang-CpyJrqDW.js","sources":["../src/components/BCollapse/BCollapse.vue"],"sourcesContent":["<template>\n <slot name=\"header\" v-bind=\"sharedSlots\" />\n <Transition\n v-if=\"renderRef || contentShowing\"\n v-bind=\"transitionProps\"\n :enter-active-class=\"computedNoAnimation ? '' : 'collapsing'\"\n :leave-active-class=\"computedNoAnimation ? '' : 'collapsing'\"\n :appear=\"modelValue\"\n >\n <component\n :is=\"props.tag\"\n v-show=\"showRef\"\n :id=\"computedId\"\n ref=\"_element\"\n class=\"collapse\"\n :class=\"computedClasses\"\n :is-nav=\"props.isNav\"\n v-bind=\"$attrs\"\n >\n <slot v-if=\"contentShowing\" v-bind=\"sharedSlots\" />\n </component>\n </Transition>\n <slot name=\"footer\" v-bind=\"sharedSlots\" />\n</template>\n\n<script setup lang=\"ts\">\nimport {\n computed,\n type EmitFn,\n inject,\n onBeforeUnmount,\n provide,\n readonly,\n toRef,\n useTemplateRef,\n} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useId} from '../../composables/useId'\nimport {collapseInjectionKey, globalCollapseStorageInjectionKey} from '../../utils/keys'\nimport type {BCollapseProps} from '../../types/ComponentProps'\nimport {BvTriggerableEvent} from '../../utils'\nimport {useShowHide} from '../../composables/useShowHide'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<Omit<BCollapseProps, 'modelValue'>>(), {\n horizontal: false,\n id: undefined,\n initialAnimation: false,\n isNav: false,\n lazy: false,\n noAnimation: false,\n unmountLazy: false,\n tag: 'div',\n show: false,\n visible: false,\n})\n\nconst props = useDefaults(_props, 'BCollapse')\n\nconst emit = defineEmits<{\n 'hidden': [value: BvTriggerableEvent]\n 'hide': [value: BvTriggerableEvent]\n 'hide-prevented': [value: BvTriggerableEvent]\n 'show': [value: BvTriggerableEvent]\n 'show-prevented': [value: BvTriggerableEvent]\n 'shown': [value: BvTriggerableEvent]\n 'toggle': [value: BvTriggerableEvent]\n}>()\n\ntype SharedSlotsData = {\n hide: () => void\n id: string\n show: () => void\n toggle: () => void\n visible: boolean\n}\n\ndefineSlots<{\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n default?: (props: SharedSlotsData) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n footer?: (props: SharedSlotsData) => any\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n header?: (props: SharedSlotsData) => any\n}>()\n\nconst modelValue = defineModel<Exclude<BCollapseProps['modelValue'], undefined>>({\n default: false,\n})\n\nconst computedId = useId(() => props.id, 'collapse')\n\nconst element = useTemplateRef<HTMLElement>('_element')\n\nlet inCollapse = false\nconst onEnter = (el: Element) => {\n inCollapse = true\n requestAnimationFrame(() => {\n if (props.horizontal) {\n ;(el as HTMLElement).style.width = `${(el as HTMLElement).scrollWidth}px`\n } else {\n ;(el as HTMLElement).style.height = `${(el as HTMLElement).scrollHeight}px`\n }\n })\n}\nconst onBeforeLeave = (el: Element) => {\n if (inCollapse) {\n return\n }\n if (props.horizontal) {\n ;(el as HTMLElement).style.width = `${el.scrollWidth}px`\n } else {\n ;(el as HTMLElement).style.height = `${el.scrollHeight}px`\n }\n // eslint-disable-next-line @typescript-eslint/no-unused-expressions\n ;(el as HTMLElement).offsetHeight // force reflow\n}\nconst onLeave = (el: Element) => {\n requestAnimationFrame(() => {\n if (props.horizontal) {\n ;(el as HTMLElement).style.width = ``\n } else {\n ;(el as HTMLElement).style.height = ``\n }\n })\n}\n\nconst onAfterEnter = (el: Element) => {\n ;(el as HTMLElement).style.height = ``\n ;(el as HTMLElement).style.width = ``\n inCollapse = false\n}\n\nconst onAfterLeave = (el: Element) => {\n ;(el as HTMLElement).style.height = ``\n ;(el as HTMLElement).style.width = ``\n inCollapse = false\n}\n\nconst {\n showRef,\n renderRef,\n hide,\n show,\n toggle,\n isActive,\n computedNoAnimation,\n contentShowing,\n transitionProps,\n} = useShowHide(modelValue, props, emit as EmitFn, element, computedId, {\n // addShowClass: false,\n transitionProps: {\n onBeforeLeave,\n onEnter,\n onLeave,\n onAfterEnter,\n onAfterLeave,\n enterToClass: '',\n leaveToClass: '',\n enterFromClass: '',\n leaveFromClass: '',\n enterActiveClass: '',\n leaveActiveClass: '',\n },\n})\n\nconst computedClasses = computed(() => ({\n 'show': isActive.value,\n 'navbar-collapse': props.isNav,\n 'collapse-horizontal': props.horizontal,\n}))\n\nconst sharedSlots = computed<SharedSlotsData>(() => ({\n toggle,\n show,\n hide,\n id: computedId.value,\n visible: showRef.value,\n}))\n\ndefineExpose({\n hide,\n isNav: props.isNav,\n show,\n toggle,\n visible: readonly(showRef),\n})\n\nprovide(collapseInjectionKey, {\n id: computedId,\n hide,\n show,\n toggle,\n visible: readonly(showRef),\n isNav: toRef(() => props.isNav),\n})\n\nconst appRegistry = inject(\n globalCollapseStorageInjectionKey,\n undefined\n)?.({\n id: computedId.value,\n toggle,\n value: readonly(showRef),\n})\n\nonBeforeUnmount(() => {\n appRegistry?.unregister()\n})\n</script>\n"],"names":["_props","__props","props","useDefaults","emit","__emit","modelValue","_useModel","computedId","useId","id","element","useTemplateRef","inCollapse","showRef","renderRef","hide","show","toggle","isActive","computedNoAnimation","contentShowing","transitionProps","useShowHide","onBeforeLeave","el","horizontal","style","width","scrollWidth","height","scrollHeight","offsetHeight","onEnter","requestAnimationFrame","onLeave","onAfterEnter","onAfterLeave","enterToClass","leaveToClass","enterFromClass","leaveFromClass","enterActiveClass","leaveActiveClass","computedClasses","computed","value","isNav","sharedSlots","visible","__expose","readonly","provide","collapseInjectionKey","toRef","appRegistry","inject","vue","globalCollapseStorageInjectionKey","_a","onBeforeUnmount","unregister"],"mappings":"2zBA+CA,MAAMA,EAASC,EAaTC,EAAQC,EAAAA,YAAYH,EAAQ,aAE5BI,EAAOC,EA2BPC,EAAaC,EAAAA,SAElBN,EAAA,cAEKO,EAAaC,EAAAA,OAAM,IAAMP,EAAMQ,IAAI,YAEnCC,EAAUC,iBAA4B,YAE5C,IAAIC,GAAa,EACX,MA4CAC,QACJA,EAAAC,UACAA,EAAAC,KACAA,EAAAC,KACAA,EAAAC,OACAA,EAAAC,SACAA,EAAAC,oBACAA,EAAAC,eACAA,EAAAC,gBACAA,GACEC,EAAAA,YAAYjB,EAAYJ,EAAOE,EAAgBO,EAASH,EAAY,CAEtEc,gBAAiB,CACfE,cA/CmBC,IACjBZ,IAGAX,EAAMwB,WACND,EAAmBE,MAAMC,MAAQ,GAAGH,EAAGI,gBAEvCJ,EAAmBE,MAAMG,OAAS,GAAGL,EAAGM,iBAGvBN,EAAAO,aAAA,EAsCnBC,QA1DaR,IACFZ,GAAA,EACbqB,uBAAsB,KAChBhC,EAAMwB,WACND,EAAmBE,MAAMC,MAAQ,GAAIH,EAAmBI,gBAExDJ,EAAmBE,MAAMG,OAAS,GAAIL,EAAmBM,gBAAY,GAE1E,EAmDCI,QArCaV,IACfS,uBAAsB,KAChBhC,EAAMwB,WACND,EAAmBE,MAAMC,MAAQ,GAEjCH,EAAmBE,MAAMG,OAAS,EAAA,GAEvC,EA+BCM,aA5BkBX,IAClBA,EAAmBE,MAAMG,OAAS,GAClCL,EAAmBE,MAAMC,MAAQ,GACtBf,GAAA,CAAA,EA0BXwB,aAvBkBZ,IAClBA,EAAmBE,MAAMG,OAAS,GAClCL,EAAmBE,MAAMC,MAAQ,GACtBf,GAAA,CAAA,EAqBXyB,aAAc,GACdC,aAAc,GACdC,eAAgB,GAChBC,eAAgB,GAChBC,iBAAkB,GAClBC,iBAAkB,MAIhBC,EAAkBC,EAAAA,UAAS,KAAO,CACtC5B,KAAQE,EAAS2B,MACjB,kBAAmB5C,EAAM6C,MACzB,sBAAuB7C,EAAMwB,eAGzBsB,EAAcH,EAAAA,UAA0B,KAAO,CACnD3B,SACAD,OACAD,OACAN,GAAIF,EAAWsC,MACfG,QAASnC,EAAQgC,UAGNI,EAAA,CACXlC,OACA+B,MAAO7C,EAAM6C,MACb9B,OACAC,SACA+B,QAASE,WAASrC,KAGpBsC,EAAAA,QAAQC,EAAAA,qBAAsB,CAC5B3C,GAAIF,EACJQ,OACAC,OACAC,SACA+B,QAASE,WAASrC,GAClBiC,MAAOO,EAAAA,OAAM,IAAMpD,EAAM6C,UAG3B,MAAMQ,EAAcC,OAAAA,EAAAC,EAAAD,OAClBE,EAAAA,uCACA,SACE,EAAAC,EAAA,CACFjD,GAAIF,EAAWsC,MACf5B,SACA4B,MAAOK,WAASrC,YAGlB8C,EAAAA,iBAAgB,KACD,MAAAL,GAAAA,EAAAM,YAAA"}
|
|
@@ -35,7 +35,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
35
35
|
const emit = __emit;
|
|
36
36
|
const modelValue = useModel(__props, "modelValue");
|
|
37
37
|
const computedId = useId(() => props.id, "collapse");
|
|
38
|
-
const element = useTemplateRef("
|
|
38
|
+
const element = useTemplateRef("_element");
|
|
39
39
|
let inCollapse = false;
|
|
40
40
|
const onEnter = (el) => {
|
|
41
41
|
inCollapse = true;
|
|
@@ -152,8 +152,7 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
152
152
|
default: withCtx(() => [
|
|
153
153
|
withDirectives((openBlock(), createBlock(resolveDynamicComponent(unref(props).tag), mergeProps({
|
|
154
154
|
id: unref(computedId),
|
|
155
|
-
|
|
156
|
-
ref: element,
|
|
155
|
+
ref: "_element",
|
|
157
156
|
class: ["collapse", computedClasses.value],
|
|
158
157
|
"is-nav": unref(props).isNav
|
|
159
158
|
}, _ctx.$attrs), {
|
|
@@ -175,4 +174,4 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
175
174
|
export {
|
|
176
175
|
_sfc_main as _
|
|
177
176
|
};
|
|
178
|
-
//# sourceMappingURL=BCollapse.vue_vue_type_script_setup_true_lang-
|
|
177
|
+
//# sourceMappingURL=BCollapse.vue_vue_type_script_setup_true_lang-CrKEVFwx.mjs.map
|