bootstrap-vue-next 0.45.0 → 0.45.2
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/{BAccordion-CJZMsvwP.js → BAccordion-DgXJMqdG.js} +2 -2
- package/dist/{BAccordion-CJZMsvwP.js.map → BAccordion-DgXJMqdG.js.map} +1 -1
- package/dist/{BAccordion-CNzV6f8e.mjs → BAccordion-Gz2SpRmq.mjs} +2 -2
- package/dist/{BAccordion-CNzV6f8e.mjs.map → BAccordion-Gz2SpRmq.mjs.map} +1 -1
- package/dist/{BAlert-CRRUJXYi.mjs → BAlert-BFPBalmr.mjs} +9 -10
- package/dist/BAlert-BFPBalmr.mjs.map +1 -0
- package/dist/{BAlert-CHbgLTZH.js → BAlert-Dk3rgEOI.js} +9 -10
- package/dist/BAlert-Dk3rgEOI.js.map +1 -0
- package/dist/{BApp-DJWC2mB8.mjs → BApp-CIu-zI8K.mjs} +2 -2
- package/dist/BApp-CIu-zI8K.mjs.map +1 -0
- package/dist/{BApp-DaM0UKIg.js → BApp-cBKQc5Dd.js} +2 -2
- package/dist/BApp-cBKQc5Dd.js.map +1 -0
- package/dist/BAspect-BULTO240.js.map +1 -1
- package/dist/BAspect-CwokVvvn.mjs.map +1 -1
- package/dist/{BAutocomplete-4CFl6XQR.js → BAutocomplete-BCOfyy8g.js} +126 -66
- package/dist/{BAutocomplete-4CFl6XQR.js.map → BAutocomplete-BCOfyy8g.js.map} +1 -1
- package/dist/{BAutocomplete-B7yzKPIp.mjs → BAutocomplete-j3KJbBFs.mjs} +127 -67
- package/dist/{BAutocomplete-B7yzKPIp.mjs.map → BAutocomplete-j3KJbBFs.mjs.map} +1 -1
- package/dist/{BAvatar-BHqTW5Ll.js → BAvatar-CZn0MQHY.js} +7 -7
- package/dist/BAvatar-CZn0MQHY.js.map +1 -0
- package/dist/{BAvatar-BSLk69M0.mjs → BAvatar-DODGnQMY.mjs} +7 -7
- package/dist/BAvatar-DODGnQMY.mjs.map +1 -0
- package/dist/{BBadge-D5ra3W5R.mjs → BBadge-CZ219I7a.mjs} +5 -5
- package/dist/BBadge-CZ219I7a.mjs.map +1 -0
- package/dist/{BBadge-BBUcrujj.js → BBadge-DTJcCo9u.js} +5 -5
- package/dist/BBadge-DTJcCo9u.js.map +1 -0
- package/dist/{BBreadcrumb-BSsiwCNB.js → BBreadcrumb-DFG2Qxl9.js} +2 -2
- package/dist/BBreadcrumb-DFG2Qxl9.js.map +1 -0
- package/dist/{BBreadcrumb-amkzWyz6.mjs → BBreadcrumb-Dk4ia-9c.mjs} +2 -2
- package/dist/BBreadcrumb-Dk4ia-9c.mjs.map +1 -0
- package/dist/{BButton-BUYwco3v.js → BButton-BZ9eI3ZX.js} +4 -4
- package/dist/BButton-BZ9eI3ZX.js.map +1 -0
- package/dist/{BButton-DgequxLk.mjs → BButton-C0Ylhonf.mjs} +4 -4
- package/dist/BButton-C0Ylhonf.mjs.map +1 -0
- package/dist/{BButton-CDo9SRvU.mjs → BButton-D_sCrjpg.mjs} +4 -5
- package/dist/BButton-D_sCrjpg.mjs.map +1 -0
- package/dist/{BButton-Bw4HgpsF.js → BButton-Dr-RadYQ.js} +4 -5
- package/dist/BButton-Dr-RadYQ.js.map +1 -0
- package/dist/{BCard-CSyEHz8Z.js → BCard-BjQkY783.js} +2 -2
- package/dist/BCard-BjQkY783.js.map +1 -0
- package/dist/{BCard-CgbTFn3S.js → BCard-BkvG5Zzw.js} +5 -11
- package/dist/BCard-BkvG5Zzw.js.map +1 -0
- package/dist/{BCard-C1G8PO5k.mjs → BCard-TS8DtOwm.mjs} +6 -12
- package/dist/BCard-TS8DtOwm.mjs.map +1 -0
- package/dist/{BCard-CJ822HyH.mjs → BCard-cj8_dIcz.mjs} +2 -2
- package/dist/BCard-cj8_dIcz.mjs.map +1 -0
- package/dist/{BCarousel-BgT74ryc.js → BCarousel-D23rApAX.js} +3 -3
- package/dist/{BCarousel-BgT74ryc.js.map → BCarousel-D23rApAX.js.map} +1 -1
- package/dist/{BCarousel-D9Yei1Q4.mjs → BCarousel-VL1gVXpt.mjs} +3 -3
- package/dist/{BCarousel-D9Yei1Q4.mjs.map → BCarousel-VL1gVXpt.mjs.map} +1 -1
- package/dist/{BCloseButton-CjgbR1Ec.mjs → BCloseButton-CCdRwLDo.mjs} +1 -1
- package/dist/BCloseButton-CCdRwLDo.mjs.map +1 -0
- package/dist/{BCloseButton-CN__Jjcj.js → BCloseButton-fw5ONnhr.js} +1 -1
- package/dist/BCloseButton-fw5ONnhr.js.map +1 -0
- package/dist/{BCol-0tZmpOme.js → BCol-CArTYHqb.js} +2 -2
- package/dist/BCol-CArTYHqb.js.map +1 -0
- package/dist/{BCol-C4v-TOX6.mjs → BCol-VPaTVLsM.mjs} +2 -2
- package/dist/BCol-VPaTVLsM.mjs.map +1 -0
- package/dist/{BCollapse-D-xTGkX_.mjs → BCollapse-CTvK48kB.mjs} +2 -2
- package/dist/BCollapse-CTvK48kB.mjs.map +1 -0
- package/dist/{BCollapse-DZ1z2c8U.js → BCollapse-CZlDVTpI.js} +2 -2
- package/dist/BCollapse-CZlDVTpI.js.map +1 -0
- package/dist/{BContainer-BZUI2qQv.js → BContainer-CNmEk2mi.js} +3 -3
- package/dist/BContainer-CNmEk2mi.js.map +1 -0
- package/dist/{BContainer-DjIGH6-y.mjs → BContainer-CeHyMYb_.mjs} +3 -3
- package/dist/BContainer-CeHyMYb_.mjs.map +1 -0
- package/dist/{BDateField-RWwEMIwd.js → BDateField-B4yL8Pju.js} +6 -6
- package/dist/BDateField-B4yL8Pju.js.map +1 -0
- package/dist/{BDateField-BJIq6gs9.mjs → BDateField-gRWIwMnA.mjs} +6 -6
- package/dist/BDateField-gRWIwMnA.mjs.map +1 -0
- package/dist/{BDatePicker-DfzZBWjU.mjs → BDatePicker-ZuMpgD91.mjs} +8 -8
- package/dist/{BDatePicker-DfzZBWjU.mjs.map → BDatePicker-ZuMpgD91.mjs.map} +1 -1
- package/dist/{BDatePicker-BQN6qZXa.js → BDatePicker-m2drV1fl.js} +8 -8
- package/dist/{BDatePicker-BQN6qZXa.js.map → BDatePicker-m2drV1fl.js.map} +1 -1
- package/dist/{BDropdown-D2pBrZsG.mjs → BDropdown-B2vWJ-u0.mjs} +12 -12
- package/dist/BDropdown-B2vWJ-u0.mjs.map +1 -0
- package/dist/{BDropdown-BxciLgyt.js → BDropdown-BSCasYDc.js} +12 -12
- package/dist/BDropdown-BSCasYDc.js.map +1 -0
- package/dist/{BDropdown-DgbFCKfP.js → BDropdown-CL-erjq8.js} +4 -4
- package/dist/BDropdown-CL-erjq8.js.map +1 -0
- package/dist/{BDropdown-CRIh9xqy.mjs → BDropdown-D2ep4wKG.mjs} +4 -4
- package/dist/BDropdown-D2ep4wKG.mjs.map +1 -0
- package/dist/{BForm-Oh6PpdcD.mjs → BForm-CpNuvbIt.mjs} +1 -1
- package/dist/BForm-CpNuvbIt.mjs.map +1 -0
- package/dist/{BForm-_h0kYDl7.js → BForm-CriVh5cC.js} +5 -5
- package/dist/BForm-CriVh5cC.js.map +1 -0
- package/dist/{BForm-Bp7SFxiK.js → BForm-K67Ciyza.js} +1 -1
- package/dist/BForm-K67Ciyza.js.map +1 -0
- package/dist/{BForm-C8I6v7bU.mjs → BForm-__5Chigr.mjs} +5 -5
- package/dist/BForm-__5Chigr.mjs.map +1 -0
- package/dist/{BFormCheckbox-BPQxUDQG.js → BFormCheckbox-g7gtIrhy.js} +5 -5
- package/dist/BFormCheckbox-g7gtIrhy.js.map +1 -0
- package/dist/{BFormCheckbox-DPNPjRKN.mjs → BFormCheckbox-xN7AQw4O.mjs} +5 -5
- package/dist/BFormCheckbox-xN7AQw4O.mjs.map +1 -0
- package/dist/{BFormFile-BWknj7fW.js → BFormFile-DC-x9wQo.js} +3 -3
- package/dist/{BFormFile-BWknj7fW.js.map → BFormFile-DC-x9wQo.js.map} +1 -1
- package/dist/{BFormFile-Bf3GMYeX.mjs → BFormFile-DXdAyYmv.mjs} +3 -3
- package/dist/{BFormFile-Bf3GMYeX.mjs.map → BFormFile-DXdAyYmv.mjs.map} +1 -1
- package/dist/BFormGroup-DZTiChgT.js +505 -0
- package/dist/BFormGroup-DZTiChgT.js.map +1 -0
- package/dist/BFormGroup-ayltvQts.mjs +499 -0
- package/dist/BFormGroup-ayltvQts.mjs.map +1 -0
- package/dist/{BFormInput-BuRSGYdY.js → BFormInput-DNuvqbFQ.js} +2 -2
- package/dist/BFormInput-DNuvqbFQ.js.map +1 -0
- package/dist/{BFormInput-Dg9dbwHp.mjs → BFormInput-NKko58M2.mjs} +2 -2
- package/dist/BFormInput-NKko58M2.mjs.map +1 -0
- package/dist/{BFormOtp-DYjsPhQN.mjs → BFormOtp-B4al7MJf.mjs} +6 -6
- package/dist/{BFormOtp-DYjsPhQN.mjs.map → BFormOtp-B4al7MJf.mjs.map} +1 -1
- package/dist/{BFormOtp-C1YJvwN8.js → BFormOtp-UcLR9oFd.js} +6 -6
- package/dist/{BFormOtp-C1YJvwN8.js.map → BFormOtp-UcLR9oFd.js.map} +1 -1
- package/dist/{BFormRadio-CqYd0bLV.mjs → BFormRadio-DHx68AdL.mjs} +5 -5
- package/dist/BFormRadio-DHx68AdL.mjs.map +1 -0
- package/dist/{BFormRadio-BZ0etDxl.js → BFormRadio-DX-gM5Rc.js} +5 -5
- package/dist/BFormRadio-DX-gM5Rc.js.map +1 -0
- package/dist/{BFormRating-Bb_ACp-9.mjs → BFormRating-BR7RMvZG.mjs} +2 -2
- package/dist/BFormRating-BR7RMvZG.mjs.map +1 -0
- package/dist/{BFormRating-CNqf91vN.js → BFormRating-CF-x5qkB.js} +2 -2
- package/dist/BFormRating-CF-x5qkB.js.map +1 -0
- package/dist/{BFormSelect-B_mbfTMC.js → BFormSelect-CUkyKBNN.js} +5 -5
- package/dist/BFormSelect-CUkyKBNN.js.map +1 -0
- package/dist/{BFormSelect-CpkJ1haI.mjs → BFormSelect-Co-ZU8yY.mjs} +5 -5
- package/dist/BFormSelect-Co-ZU8yY.mjs.map +1 -0
- package/dist/{BFormSelectOption-O8cyyv3i.mjs → BFormSelectOption-B3BO50XB.mjs} +1 -1
- package/dist/BFormSelectOption-B3BO50XB.mjs.map +1 -0
- package/dist/{BFormSelectOption-BY4P8HOf.js → BFormSelectOption-CQ3j1Q5j.js} +1 -1
- package/dist/BFormSelectOption-CQ3j1Q5j.js.map +1 -0
- package/dist/{BFormSpinbutton-BLO0Yf36.mjs → BFormSpinbutton-CPsVUIh9.mjs} +4 -4
- package/dist/{BFormSpinbutton-BLO0Yf36.mjs.map → BFormSpinbutton-CPsVUIh9.mjs.map} +1 -1
- package/dist/{BFormSpinbutton-BaOTL1k1.js → BFormSpinbutton-DPCXum9q.js} +4 -4
- package/dist/{BFormSpinbutton-BaOTL1k1.js.map → BFormSpinbutton-DPCXum9q.js.map} +1 -1
- package/dist/{BFormTag-C7B-bX72.js → BFormTag-Bsy6Znok.js} +3 -3
- package/dist/BFormTag-Bsy6Znok.js.map +1 -0
- package/dist/{BFormTag-BUWEugEC.mjs → BFormTag-Cjg1R-Lj.mjs} +3 -3
- package/dist/BFormTag-Cjg1R-Lj.mjs.map +1 -0
- package/dist/{BFormTags-DJzXJp7d.js → BFormTags-BIZyBseI.js} +9 -7
- package/dist/BFormTags-BIZyBseI.js.map +1 -0
- package/dist/{BFormTags-DWAWX2av.mjs → BFormTags-D2Dk598Q.mjs} +9 -7
- package/dist/BFormTags-D2Dk598Q.mjs.map +1 -0
- package/dist/{BFormTextarea-8c3B3kAI.js → BFormTextarea-CYh47SxL.js} +3 -3
- package/dist/BFormTextarea-CYh47SxL.js.map +1 -0
- package/dist/{BFormTextarea-BMk05ojJ.mjs → BFormTextarea-M21mholw.mjs} +3 -3
- package/dist/BFormTextarea-M21mholw.mjs.map +1 -0
- package/dist/{BFormValidFeedback-DvTgwqSe.js → BFormValidFeedback-BhkEhSa0.js} +3 -3
- package/dist/BFormValidFeedback-BhkEhSa0.js.map +1 -0
- package/dist/{BFormValidFeedback-_Dgzm0Ag.mjs → BFormValidFeedback-DWkakzVO.mjs} +3 -3
- package/dist/BFormValidFeedback-DWkakzVO.mjs.map +1 -0
- package/dist/{BImg-Dyy0N-WQ.js → BImg-DFiJSy66.js} +7 -7
- package/dist/BImg-DFiJSy66.js.map +1 -0
- package/dist/{BImg-BQqZfIM9.mjs → BImg-UUMOpbK0.mjs} +7 -7
- package/dist/BImg-UUMOpbK0.mjs.map +1 -0
- package/dist/{BInputGroup-C5sxenhE.mjs → BInputGroup-3AVRA3U7.mjs} +1 -1
- package/dist/BInputGroup-3AVRA3U7.mjs.map +1 -0
- package/dist/{BInputGroup-DTP5Vf1f.js → BInputGroup-BAC-B_UM.js} +1 -1
- package/dist/BInputGroup-BAC-B_UM.js.map +1 -0
- package/dist/{BInputGroup-Dl9AgpAx.mjs → BInputGroup-CfELrPhK.mjs} +2 -2
- package/dist/BInputGroup-CfELrPhK.mjs.map +1 -0
- package/dist/{BInputGroup-Bfcs5h_Q.js → BInputGroup-CiKwWBSu.js} +2 -2
- package/dist/BInputGroup-CiKwWBSu.js.map +1 -0
- package/dist/{BLink-Cz5YCsnv.mjs → BLink-CNFWSz0D.mjs} +2 -2
- package/dist/{BLink-Cz5YCsnv.mjs.map → BLink-CNFWSz0D.mjs.map} +1 -1
- package/dist/{BLink-uemyYKst.js → BLink-uLjtY3bY.js} +2 -2
- package/dist/{BLink-uemyYKst.js.map → BLink-uLjtY3bY.js.map} +1 -1
- package/dist/{BListGroup-BmtN0xQ3.mjs → BListGroup-CGxa7ZEu.mjs} +2 -2
- package/dist/BListGroup-CGxa7ZEu.mjs.map +1 -0
- package/dist/{BListGroup-DuyMdAxJ.js → BListGroup-CeXKZio1.js} +2 -2
- package/dist/BListGroup-CeXKZio1.js.map +1 -0
- package/dist/{BModal-BnHYbFuj.js → BModal-6hh-azT8.js} +9 -9
- package/dist/{BModal-BnHYbFuj.js.map → BModal-6hh-azT8.js.map} +1 -1
- package/dist/{BModal-CAjLrkBp.mjs → BModal-BEmloby5.mjs} +9 -9
- package/dist/{BModal-CAjLrkBp.mjs.map → BModal-BEmloby5.mjs.map} +1 -1
- package/dist/{BNav-BdO2N7G0.mjs → BNav-EHHlEg1E.mjs} +5 -5
- package/dist/BNav-EHHlEg1E.mjs.map +1 -0
- package/dist/{BNav-MjroX-Jl.js → BNav-u9QwSGj3.js} +5 -5
- package/dist/BNav-u9QwSGj3.js.map +1 -0
- package/dist/{BNavbar-vN3_CMLn.mjs → BNavbar-kgHIo_Gr.mjs} +5 -5
- package/dist/BNavbar-kgHIo_Gr.mjs.map +1 -0
- package/dist/{BNavbar-s9Ak5PnO.js → BNavbar-s8yvmhyz.js} +5 -5
- package/dist/BNavbar-s8yvmhyz.js.map +1 -0
- package/dist/{BOffcanvas-DmkJSSFy.mjs → BOffcanvas-DaKJOICF.mjs} +9 -9
- package/dist/BOffcanvas-DaKJOICF.mjs.map +1 -0
- package/dist/{BOffcanvas-ColOuYdV.js → BOffcanvas-mlOkh8T1.js} +9 -9
- package/dist/BOffcanvas-mlOkh8T1.js.map +1 -0
- package/dist/{BOverlay-B7vJAdHO.js → BOverlay--gZBEMlX.js} +5 -5
- package/dist/BOverlay--gZBEMlX.js.map +1 -0
- package/dist/{BOverlay-BGxH9JVy.mjs → BOverlay-DSUoseNJ.mjs} +5 -5
- package/dist/BOverlay-DSUoseNJ.mjs.map +1 -0
- package/dist/{BPagination-CvoSN1He.mjs → BPagination-C7MKOk8h.mjs} +8 -8
- package/dist/BPagination-C7MKOk8h.mjs.map +1 -0
- package/dist/{BPagination-C0-4NVzW.js → BPagination-D6W1LdgK.js} +8 -8
- package/dist/BPagination-D6W1LdgK.js.map +1 -0
- package/dist/{BPlaceholder-n447tOzJ.js → BPlaceholder-Ckvq3tMu.js} +6 -6
- package/dist/BPlaceholder-Ckvq3tMu.js.map +1 -0
- package/dist/{BPlaceholder-DKDtjMjy.mjs → BPlaceholder-D__hNPyQ.mjs} +6 -6
- package/dist/BPlaceholder-D__hNPyQ.mjs.map +1 -0
- package/dist/{BProgress-BIqo6vLh.mjs → BProgress-I1ucNlpA.mjs} +3 -3
- package/dist/BProgress-I1ucNlpA.mjs.map +1 -0
- package/dist/{BProgress-Bc3ZSkac.js → BProgress-ySlPjpRn.js} +3 -3
- package/dist/BProgress-ySlPjpRn.js.map +1 -0
- package/dist/{BRow-tqMEhkZS.js → BRow-CmKiMcMZ.js} +3 -3
- package/dist/BRow-CmKiMcMZ.js.map +1 -0
- package/dist/{BRow-BCEK3fe6.mjs → BRow-U3L8AcKV.mjs} +3 -3
- package/dist/BRow-U3L8AcKV.mjs.map +1 -0
- package/dist/{BSpinner-8UMAINYb.js → BSpinner-C1bm8U4-.js} +2 -2
- package/dist/BSpinner-C1bm8U4-.js.map +1 -0
- package/dist/{BSpinner-BpnwONvx.mjs → BSpinner-CAo-XD04.mjs} +2 -2
- package/dist/BSpinner-CAo-XD04.mjs.map +1 -0
- package/dist/{BTable-CjHMx8Yv.mjs → BTable-DYS8Lftg.mjs} +7 -7
- package/dist/BTable-DYS8Lftg.mjs.map +1 -0
- package/dist/{BTable-Btzu1IJ_.js → BTable-G-Pjvx68.js} +7 -7
- package/dist/BTable-G-Pjvx68.js.map +1 -0
- package/dist/{BTableSimple-C901Z5V9.mjs → BTableSimple-CThwYBVl.mjs} +3 -3
- package/dist/BTableSimple-CThwYBVl.mjs.map +1 -0
- package/dist/{BTableSimple-BcdizuDm.js → BTableSimple-pyz_6D4s.js} +3 -3
- package/dist/BTableSimple-pyz_6D4s.js.map +1 -0
- package/dist/{BTabs-DiYaJi22.js → BTabs-C8rUY0Lx.js} +41 -13
- package/dist/BTabs-C8rUY0Lx.js.map +1 -0
- package/dist/{BTabs-DZEF9kgT.mjs → BTabs-Krs_Lv-R.mjs} +42 -14
- package/dist/BTabs-Krs_Lv-R.mjs.map +1 -0
- package/dist/{BTimeField-DSWZeGYP.mjs → BTimeField-DSf4cMpN.mjs} +5 -5
- package/dist/{BTimeField-DSWZeGYP.mjs.map → BTimeField-DSf4cMpN.mjs.map} +1 -1
- package/dist/{BTimeField-VTrtxGkI.js → BTimeField-W2LqGCjB.js} +5 -5
- package/dist/{BTimeField-VTrtxGkI.js.map → BTimeField-W2LqGCjB.js.map} +1 -1
- package/dist/{BToast-BFcT76M1.js → BToast-DZuxMDbe.js} +10 -11
- package/dist/BToast-DZuxMDbe.js.map +1 -0
- package/dist/{BToast-D5XkJqF4.mjs → BToast-Dcfnqbxt.mjs} +10 -11
- package/dist/BToast-Dcfnqbxt.mjs.map +1 -0
- package/dist/{BTooltip-BwiqjqX-.js → BTooltip-BGTjsV1z.js} +2 -2
- package/dist/BTooltip-BGTjsV1z.js.map +1 -0
- package/dist/{BTooltip-DohT1Q3C.mjs → BTooltip-BWij0hjE.mjs} +2 -2
- package/dist/BTooltip-BWij0hjE.mjs.map +1 -0
- package/dist/{BootstrapVueOptions-DbXZtoXX.js → BootstrapVueOptions-DeViqxoD.js} +1 -1
- package/dist/{BootstrapVueOptions-DbXZtoXX.js.map → BootstrapVueOptions-DeViqxoD.js.map} +1 -1
- package/dist/{BootstrapVueOptions-D3flIVqU.mjs → BootstrapVueOptions-Dt1TQdih.mjs} +1 -1
- package/dist/{BootstrapVueOptions-D3flIVqU.mjs.map → BootstrapVueOptions-Dt1TQdih.mjs.map} +1 -1
- package/dist/{ConditionalTeleport-BNsziElf.mjs → ConditionalTeleport-B4KYZIM6.mjs} +1 -1
- package/dist/ConditionalTeleport-B4KYZIM6.mjs.map +1 -0
- package/dist/{ConditionalTeleport-BJZk6HAx.js → ConditionalTeleport-BDWcebyD.js} +1 -1
- package/dist/ConditionalTeleport-BDWcebyD.js.map +1 -0
- package/dist/{ConditionalWrapper-Cc7EIszd.js → ConditionalWrapper-DZH_VSwb.js} +1 -1
- package/dist/{ConditionalWrapper-Cc7EIszd.js.map → ConditionalWrapper-DZH_VSwb.js.map} +1 -1
- package/dist/{ConditionalWrapper-D9ovtbHB.mjs → ConditionalWrapper-Dbc_O6qe.mjs} +1 -1
- package/dist/{ConditionalWrapper-D9ovtbHB.mjs.map → ConditionalWrapper-Dbc_O6qe.mjs.map} +1 -1
- package/dist/{DateRangeFieldInput-DiVuhf4Y.mjs → DateRangeFieldInput-B86VEz0H.mjs} +5 -5
- package/dist/{DateRangeFieldInput-DiVuhf4Y.mjs.map → DateRangeFieldInput-B86VEz0H.mjs.map} +1 -1
- package/dist/{DateRangeFieldInput-Ce7PM3PJ.js → DateRangeFieldInput-HvvI2You.js} +5 -5
- package/dist/{DateRangeFieldInput-Ce7PM3PJ.js.map → DateRangeFieldInput-HvvI2You.js.map} +1 -1
- package/dist/{PopperContent-CSwv2Fih.js → PopperContent-BS_eKjzD.js} +6 -6
- package/dist/{PopperContent-CSwv2Fih.js.map → PopperContent-BS_eKjzD.js.map} +1 -1
- package/dist/{PopperContent-BTUvv6Tu.mjs → PopperContent-DmSgsjSC.mjs} +6 -6
- package/dist/{PopperContent-BTUvv6Tu.mjs.map → PopperContent-DmSgsjSC.mjs.map} +1 -1
- package/dist/{VisuallyHidden-Bbwok8oL.mjs → VisuallyHidden-C4sXnc-k.mjs} +2 -2
- package/dist/{VisuallyHidden-Bbwok8oL.mjs.map → VisuallyHidden-C4sXnc-k.mjs.map} +1 -1
- package/dist/{VisuallyHidden-DaN947I0.js → VisuallyHidden-Cx0phlXT.js} +2 -2
- package/dist/{VisuallyHidden-DaN947I0.js.map → VisuallyHidden-Cx0phlXT.js.map} +1 -1
- package/dist/{VisuallyHiddenInput-Biq4Qv5j.js → VisuallyHiddenInput-BNrInt6d.js} +2 -2
- package/dist/{VisuallyHiddenInput-Biq4Qv5j.js.map → VisuallyHiddenInput-BNrInt6d.js.map} +1 -1
- package/dist/{VisuallyHiddenInput-D1SjTCVH.mjs → VisuallyHiddenInput-DKIzxsQR.mjs} +2 -2
- package/dist/{VisuallyHiddenInput-D1SjTCVH.mjs.map → VisuallyHiddenInput-DKIzxsQR.mjs.map} +1 -1
- package/dist/bootstrap-vue-next.css +56 -1
- package/dist/bootstrap-vue-next.mjs +60 -60
- package/dist/bootstrap-vue-next.umd.js +60 -60
- package/dist/components/BAccordion/BAccordionItem.vue.d.mts +1 -2
- package/dist/components/BAccordion/BAccordionItem.vue.d.ts +1 -2
- package/dist/components/BAlert/BAlert.vue.d.mts +1 -1
- package/dist/components/BAlert/BAlert.vue.d.ts +1 -1
- package/dist/components/BApp/BApp.vue.d.mts +1 -1
- package/dist/components/BApp/BApp.vue.d.ts +1 -1
- package/dist/components/BApp/BOrchestrator.vue.d.mts +1 -1
- package/dist/components/BApp/BOrchestrator.vue.d.ts +1 -1
- package/dist/components/BAspect/BAspect.vue.d.mts +2 -4
- package/dist/components/BAspect/BAspect.vue.d.ts +2 -4
- package/dist/components/BAutocomplete/BAutocomplete.vue.d.mts +270 -6
- package/dist/components/BAutocomplete/BAutocomplete.vue.d.ts +270 -6
- package/dist/components/BAvatar/BAvatar.vue.d.mts +1 -2
- package/dist/components/BAvatar/BAvatar.vue.d.ts +1 -2
- package/dist/components/BAvatar/BAvatarGroup.vue.d.mts +1 -2
- package/dist/components/BAvatar/BAvatarGroup.vue.d.ts +1 -2
- package/dist/components/BBadge/BBadge.vue.d.mts +1 -2
- package/dist/components/BBadge/BBadge.vue.d.ts +1 -2
- package/dist/components/BBreadcrumb/BBreadcrumb.vue.d.mts +1 -2
- package/dist/components/BBreadcrumb/BBreadcrumb.vue.d.ts +1 -2
- package/dist/components/BBreadcrumb/BBreadcrumbItem.vue.d.mts +1 -2
- package/dist/components/BBreadcrumb/BBreadcrumbItem.vue.d.ts +1 -2
- package/dist/components/BButton/BButton.vue.d.mts +1 -3
- package/dist/components/BButton/BButton.vue.d.ts +1 -3
- package/dist/components/BButton/BButtonGroup.vue.d.mts +1 -2
- package/dist/components/BButton/BButtonGroup.vue.d.ts +1 -2
- package/dist/components/BButton/BCloseButton.vue.d.mts +1 -1
- package/dist/components/BButton/BCloseButton.vue.d.ts +1 -1
- package/dist/components/BCard/BCard.vue.d.mts +1 -2
- package/dist/components/BCard/BCard.vue.d.ts +1 -2
- package/dist/components/BCard/BCardBody.vue.d.mts +1 -2
- package/dist/components/BCard/BCardBody.vue.d.ts +1 -2
- package/dist/components/BCard/BCardGroup.vue.d.mts +1 -2
- package/dist/components/BCard/BCardGroup.vue.d.ts +1 -2
- package/dist/components/BCard/BCardHeader.vue.d.mts +1 -1
- package/dist/components/BCard/BCardHeader.vue.d.ts +1 -1
- package/dist/components/BCard/BCardImg.vue.d.mts +1 -1
- package/dist/components/BCard/BCardImg.vue.d.ts +1 -1
- package/dist/components/BCard/BCardSubtitle.vue.d.mts +1 -2
- package/dist/components/BCard/BCardSubtitle.vue.d.ts +1 -2
- package/dist/components/BCard/BCardText.vue.d.mts +1 -2
- package/dist/components/BCard/BCardText.vue.d.ts +1 -2
- package/dist/components/BCard/BCardTitle.vue.d.mts +1 -2
- package/dist/components/BCard/BCardTitle.vue.d.ts +1 -2
- package/dist/components/BCardHeadFoot.vue.d.mts +1 -2
- package/dist/components/BCardHeadFoot.vue.d.ts +1 -2
- package/dist/components/BCarousel/BCarousel.vue.d.mts +1 -1
- package/dist/components/BCarousel/BCarousel.vue.d.ts +1 -1
- package/dist/components/BCarousel/BCarouselSlide.vue.d.mts +1 -2
- package/dist/components/BCarousel/BCarouselSlide.vue.d.ts +1 -2
- package/dist/components/BCollapse/BCollapse.vue.d.mts +1 -2
- package/dist/components/BCollapse/BCollapse.vue.d.ts +1 -2
- package/dist/components/BContainer/BCol.vue.d.mts +1 -2
- package/dist/components/BContainer/BCol.vue.d.ts +1 -2
- package/dist/components/BContainer/BContainer.vue.d.mts +1 -2
- package/dist/components/BContainer/BContainer.vue.d.ts +1 -2
- package/dist/components/BContainer/BRow.vue.d.mts +1 -2
- package/dist/components/BContainer/BRow.vue.d.ts +1 -2
- package/dist/components/BDateField/BDateField.vue.d.mts +2 -3
- package/dist/components/BDateField/BDateField.vue.d.ts +2 -3
- package/dist/components/BDateField/BDateRangeField.vue.d.mts +2 -3
- package/dist/components/BDateField/BDateRangeField.vue.d.ts +2 -3
- package/dist/components/BDateField/BTimeRangeField.vue.d.mts +5 -6
- package/dist/components/BDateField/BTimeRangeField.vue.d.ts +5 -6
- package/dist/components/BDatePicker/BDatePicker.vue.d.mts +3 -4
- package/dist/components/BDatePicker/BDatePicker.vue.d.ts +3 -4
- package/dist/components/BDatePicker/BDateRangePicker.vue.d.mts +3 -4
- package/dist/components/BDatePicker/BDateRangePicker.vue.d.ts +3 -4
- package/dist/components/BDropdown/BDropdownDivider.vue.d.mts +1 -1
- package/dist/components/BDropdown/BDropdownDivider.vue.d.ts +1 -1
- package/dist/components/BDropdown/BDropdownForm.vue.d.mts +1 -2
- package/dist/components/BDropdown/BDropdownForm.vue.d.ts +1 -2
- package/dist/components/BDropdown/BDropdownGroup.vue.d.mts +1 -2
- package/dist/components/BDropdown/BDropdownGroup.vue.d.ts +1 -2
- package/dist/components/BDropdown/BDropdownHeader.vue.d.mts +1 -2
- package/dist/components/BDropdown/BDropdownHeader.vue.d.ts +1 -2
- package/dist/components/BDropdown/BDropdownItem.vue.d.mts +1 -2
- package/dist/components/BDropdown/BDropdownItem.vue.d.ts +1 -2
- package/dist/components/BDropdown/BDropdownItemButton.vue.d.mts +1 -2
- package/dist/components/BDropdown/BDropdownItemButton.vue.d.ts +1 -2
- package/dist/components/BDropdown/BDropdownText.vue.d.mts +1 -2
- package/dist/components/BDropdown/BDropdownText.vue.d.ts +1 -2
- package/dist/components/BForm/BForm.vue.d.mts +1 -2
- package/dist/components/BForm/BForm.vue.d.ts +1 -2
- package/dist/components/BForm/BFormDatalist.vue.d.mts +1 -2
- package/dist/components/BForm/BFormDatalist.vue.d.ts +1 -2
- package/dist/components/BForm/BFormDatalistBase.vue.d.mts +1 -1
- package/dist/components/BForm/BFormDatalistBase.vue.d.ts +1 -1
- package/dist/components/BForm/BFormFloatingLabel.vue.d.mts +1 -2
- package/dist/components/BForm/BFormFloatingLabel.vue.d.ts +1 -2
- package/dist/components/BForm/BFormRow.vue.d.mts +1 -2
- package/dist/components/BForm/BFormRow.vue.d.ts +1 -2
- package/dist/components/BForm/BFormText.vue.d.mts +1 -2
- package/dist/components/BForm/BFormText.vue.d.ts +1 -2
- package/dist/components/BFormCheckbox/BFormCheckbox.vue.d.mts +1 -3
- package/dist/components/BFormCheckbox/BFormCheckbox.vue.d.ts +1 -3
- package/dist/components/BFormCheckbox/BFormCheckboxGroup.vue.d.mts +1 -2
- package/dist/components/BFormCheckbox/BFormCheckboxGroup.vue.d.ts +1 -2
- package/dist/components/BFormCheckbox/BFormCheckboxGroupBase.vue.d.mts +1 -2
- package/dist/components/BFormCheckbox/BFormCheckboxGroupBase.vue.d.ts +1 -2
- package/dist/components/BFormGroup/BFormGroup.vue.d.mts +3 -3
- package/dist/components/BFormGroup/BFormGroup.vue.d.ts +3 -3
- package/dist/components/BFormGroupContent.vue.d.mts +35 -0
- package/dist/components/BFormGroupContent.vue.d.ts +35 -0
- package/dist/components/BFormGroupLabel.vue.d.mts +35 -0
- package/dist/components/BFormGroupLabel.vue.d.ts +35 -0
- package/dist/components/BFormInput/BFormInput.vue.d.mts +2 -2
- package/dist/components/BFormInput/BFormInput.vue.d.ts +2 -2
- package/dist/components/BFormRadio/BFormRadio.vue.d.mts +1 -3
- package/dist/components/BFormRadio/BFormRadio.vue.d.ts +1 -3
- package/dist/components/BFormRadio/BFormRadioGroup.vue.d.mts +1 -2
- package/dist/components/BFormRadio/BFormRadioGroup.vue.d.ts +1 -2
- package/dist/components/BFormRadio/BFormRadioGroupBase.vue.d.mts +1 -2
- package/dist/components/BFormRadio/BFormRadioGroupBase.vue.d.ts +1 -2
- package/dist/components/BFormSelect/BFormSelect.vue.d.mts +1 -3
- package/dist/components/BFormSelect/BFormSelect.vue.d.ts +1 -3
- package/dist/components/BFormSelect/BFormSelectBase.vue.d.mts +1 -1
- package/dist/components/BFormSelect/BFormSelectBase.vue.d.ts +1 -1
- package/dist/components/BFormSelect/BFormSelectOption.vue.d.mts +1 -2
- package/dist/components/BFormSelect/BFormSelectOption.vue.d.ts +1 -2
- package/dist/components/BFormSelect/BFormSelectOptionGroup.vue.d.mts +1 -2
- package/dist/components/BFormSelect/BFormSelectOptionGroup.vue.d.ts +1 -2
- package/dist/components/BFormSpinbutton/BFormSpinbutton.vue.d.mts +3 -3
- package/dist/components/BFormSpinbutton/BFormSpinbutton.vue.d.ts +3 -3
- package/dist/components/BFormTags/BFormTag.vue.d.mts +1 -2
- package/dist/components/BFormTags/BFormTag.vue.d.ts +1 -2
- package/dist/components/BFormTags/BFormTags.vue.d.mts +4 -3
- package/dist/components/BFormTags/BFormTags.vue.d.ts +4 -3
- package/dist/components/BFormTextarea/BFormTextarea.vue.d.mts +2 -2
- package/dist/components/BFormTextarea/BFormTextarea.vue.d.ts +2 -2
- package/dist/components/BImg/BImg.vue.d.mts +1 -1
- package/dist/components/BImg/BImg.vue.d.ts +1 -1
- package/dist/components/BInputGroup/BInputGroup.vue.d.mts +1 -2
- package/dist/components/BInputGroup/BInputGroup.vue.d.ts +1 -2
- package/dist/components/BInputGroup/BInputGroupText.vue.d.mts +1 -2
- package/dist/components/BInputGroup/BInputGroupText.vue.d.ts +1 -2
- package/dist/components/BListGroup/BListGroup.vue.d.mts +1 -2
- package/dist/components/BListGroup/BListGroup.vue.d.ts +1 -2
- package/dist/components/BListGroup/BListGroupItem.vue.d.mts +1 -2
- package/dist/components/BListGroup/BListGroupItem.vue.d.ts +1 -2
- package/dist/components/BModal/BModal.vue.d.mts +2 -2
- package/dist/components/BModal/BModal.vue.d.ts +2 -2
- package/dist/components/BNav/BNav.vue.d.mts +1 -2
- package/dist/components/BNav/BNav.vue.d.ts +1 -2
- package/dist/components/BNav/BNavForm.vue.d.mts +1 -2
- package/dist/components/BNav/BNavForm.vue.d.ts +1 -2
- package/dist/components/BNav/BNavItem.vue.d.mts +1 -2
- package/dist/components/BNav/BNavItem.vue.d.ts +1 -2
- package/dist/components/BNav/BNavItemDropdown.vue.d.mts +1 -2
- package/dist/components/BNav/BNavItemDropdown.vue.d.ts +1 -2
- package/dist/components/BNav/BNavText.vue.d.mts +1 -2
- package/dist/components/BNav/BNavText.vue.d.ts +1 -2
- package/dist/components/BNavbar/BNavbar.vue.d.mts +1 -2
- package/dist/components/BNavbar/BNavbar.vue.d.ts +1 -2
- package/dist/components/BNavbar/BNavbarBrand.vue.d.mts +1 -2
- package/dist/components/BNavbar/BNavbarBrand.vue.d.ts +1 -2
- package/dist/components/BNavbar/BNavbarNav.vue.d.mts +1 -2
- package/dist/components/BNavbar/BNavbarNav.vue.d.ts +1 -2
- package/dist/components/BNavbar/BNavbarToggle.vue.d.mts +1 -2
- package/dist/components/BNavbar/BNavbarToggle.vue.d.ts +1 -2
- package/dist/components/BOffcanvas/BOffcanvas.vue.d.mts +1 -2
- package/dist/components/BOffcanvas/BOffcanvas.vue.d.ts +1 -2
- package/dist/components/BOverlay/BOverlay.vue.d.mts +1 -2
- package/dist/components/BOverlay/BOverlay.vue.d.ts +1 -2
- package/dist/components/BPagination/BPagination.vue.d.mts +1 -1
- package/dist/components/BPagination/BPagination.vue.d.ts +1 -1
- package/dist/components/BPlaceholder/BPlaceholder.vue.d.mts +1 -1
- package/dist/components/BPlaceholder/BPlaceholder.vue.d.ts +1 -1
- package/dist/components/BPlaceholder/BPlaceholderButton.vue.d.mts +1 -1
- package/dist/components/BPlaceholder/BPlaceholderButton.vue.d.ts +1 -1
- package/dist/components/BPlaceholder/BPlaceholderCard.vue.d.mts +1 -2
- package/dist/components/BPlaceholder/BPlaceholderCard.vue.d.ts +1 -2
- package/dist/components/BPlaceholder/BPlaceholderTable.vue.d.mts +1 -2
- package/dist/components/BPlaceholder/BPlaceholderTable.vue.d.ts +1 -2
- package/dist/components/BPlaceholder/BPlaceholderWrapper.vue.d.mts +1 -2
- package/dist/components/BPlaceholder/BPlaceholderWrapper.vue.d.ts +1 -2
- package/dist/components/BPopover/BPopover.vue.d.mts +1 -1
- package/dist/components/BPopover/BPopover.vue.d.ts +1 -1
- package/dist/components/BProgress/BProgress.vue.d.mts +1 -2
- package/dist/components/BProgress/BProgress.vue.d.ts +1 -2
- package/dist/components/BProgress/BProgressBar.vue.d.mts +1 -2
- package/dist/components/BProgress/BProgressBar.vue.d.ts +1 -2
- package/dist/components/BSpinner/BSpinner.vue.d.mts +1 -2
- package/dist/components/BSpinner/BSpinner.vue.d.ts +1 -2
- package/dist/components/BTable/BTableLite.vue.d.mts +1 -2
- package/dist/components/BTable/BTableLite.vue.d.ts +1 -2
- package/dist/components/BTable/BTableSimple.vue.d.mts +1 -2
- package/dist/components/BTable/BTableSimple.vue.d.ts +1 -2
- package/dist/components/BTable/BTbody.vue.d.mts +1 -2
- package/dist/components/BTable/BTbody.vue.d.ts +1 -2
- package/dist/components/BTable/BTd.vue.d.mts +1 -2
- package/dist/components/BTable/BTd.vue.d.ts +1 -2
- package/dist/components/BTable/BTfoot.vue.d.mts +1 -2
- package/dist/components/BTable/BTfoot.vue.d.ts +1 -2
- package/dist/components/BTable/BTh.vue.d.mts +1 -2
- package/dist/components/BTable/BTh.vue.d.ts +1 -2
- package/dist/components/BTable/BThead.vue.d.mts +1 -2
- package/dist/components/BTable/BThead.vue.d.ts +1 -2
- package/dist/components/BTable/BTr.vue.d.mts +1 -2
- package/dist/components/BTable/BTr.vue.d.ts +1 -2
- package/dist/components/BTabs/BTabs.vue.d.mts +2 -0
- package/dist/components/BTabs/BTabs.vue.d.ts +2 -0
- package/dist/components/BTabsTabContent.vue.d.mts +27 -0
- package/dist/components/BTabsTabContent.vue.d.ts +27 -0
- package/dist/components/BTimeField/BTimeField.vue.d.mts +2 -3
- package/dist/components/BTimeField/BTimeField.vue.d.ts +2 -3
- package/dist/components/BToast/BToast.vue.d.mts +1 -2
- package/dist/components/BToast/BToast.vue.d.ts +1 -2
- package/dist/components/BTooltip/BTooltip.vue.d.mts +1 -1
- package/dist/components/BTooltip/BTooltip.vue.d.ts +1 -1
- package/dist/composables/useAriaInvalid.d.mts +3 -2
- package/dist/composables/useAriaInvalid.d.ts +3 -2
- package/dist/composables/useFormInput.d.mts +1 -1
- package/dist/composables/useFormInput.d.ts +1 -1
- package/dist/{constants-hccBP09R.js → constants-BLIvvaat.js} +1 -1
- package/dist/{constants-hccBP09R.js.map → constants-BLIvvaat.js.map} +1 -1
- package/dist/{constants-BSIK14yA.mjs → constants-Ba9iJn2H.mjs} +1 -1
- package/dist/{constants-BSIK14yA.mjs.map → constants-Ba9iJn2H.mjs.map} +1 -1
- package/dist/{debounce-C-5Oukxb.js → debounce-D6kifS6w.js} +1 -1
- package/dist/{debounce-C-5Oukxb.js.map → debounce-D6kifS6w.js.map} +1 -1
- package/dist/{debounce-C_wjWVGH.mjs → debounce-DHxNfjan.mjs} +1 -1
- package/dist/{debounce-C_wjWVGH.mjs.map → debounce-DHxNfjan.mjs.map} +1 -1
- package/dist/{dist-BJ15ThEs.js → dist-DiXKLh_W.js} +2 -66
- package/dist/{dist-BJ15ThEs.js.map → dist-DiXKLh_W.js.map} +1 -1
- package/dist/{dist-B10a-gZ8.mjs → dist-Dk9C_HFS.mjs} +4 -62
- package/dist/dist-Dk9C_HFS.mjs.map +1 -0
- package/dist/{floating-ui.vue-CAMaNcqI.mjs → floating-ui.vue-CH2o_mZU.mjs} +1 -1
- package/dist/{floating-ui.vue-CAMaNcqI.mjs.map → floating-ui.vue-CH2o_mZU.mjs.map} +1 -1
- package/dist/{floating-ui.vue-GXIS2sFG.js → floating-ui.vue-DDOIU2nS.js} +1 -1
- package/dist/{floating-ui.vue-GXIS2sFG.js.map → floating-ui.vue-DDOIU2nS.js.map} +1 -1
- package/dist/{floatingUi-BAUk171g.mjs → floatingUi-8xXp54zf.mjs} +12 -12
- package/dist/floatingUi-8xXp54zf.mjs.map +1 -0
- package/dist/{floatingUi-DBLN9xLH.js → floatingUi-9SWu8BgZ.js} +12 -12
- package/dist/floatingUi-9SWu8BgZ.js.map +1 -0
- package/dist/{getClasses-qqI6x4f4.js → getClasses-8P0iBind.js} +1 -1
- package/dist/{getClasses-qqI6x4f4.js.map → getClasses-8P0iBind.js.map} +1 -1
- package/dist/{getClasses-DaWzwT2S.mjs → getClasses-COokMI60.mjs} +1 -1
- package/dist/{getClasses-DaWzwT2S.mjs.map → getClasses-COokMI60.mjs.map} +1 -1
- package/dist/{getElement-0_htvrFw.mjs → getElement-D2Jr1cbp.mjs} +1 -1
- package/dist/{getElement-0_htvrFw.mjs.map → getElement-D2Jr1cbp.mjs.map} +1 -1
- package/dist/{getElement-CxWWOx3K.js → getElement-DWGFJn0w.js} +1 -1
- package/dist/{getElement-CxWWOx3K.js.map → getElement-DWGFJn0w.js.map} +1 -1
- package/dist/{registryAccess-D-YxwQJq.js → registryAccess-B9QDQwV8.js} +1 -1
- package/dist/{registryAccess-D-YxwQJq.js.map → registryAccess-B9QDQwV8.js.map} +1 -1
- package/dist/{registryAccess-C1Ti_nxW.mjs → registryAccess-BkJDdh-3.mjs} +1 -1
- package/dist/{registryAccess-C1Ti_nxW.mjs.map → registryAccess-BkJDdh-3.mjs.map} +1 -1
- package/dist/src/components/BAccordion/index.mjs +1 -1
- package/dist/src/components/BAccordion/index.umd.js +1 -1
- package/dist/src/components/BAlert/index.mjs +1 -1
- package/dist/src/components/BAlert/index.umd.js +1 -1
- package/dist/src/components/BApp/index.mjs +1 -1
- package/dist/src/components/BApp/index.umd.js +1 -1
- package/dist/src/components/BAutocomplete/index.mjs +1 -1
- package/dist/src/components/BAutocomplete/index.umd.js +1 -1
- package/dist/src/components/BAvatar/index.mjs +1 -1
- package/dist/src/components/BAvatar/index.umd.js +1 -1
- package/dist/src/components/BBadge/index.mjs +1 -1
- package/dist/src/components/BBadge/index.umd.js +1 -1
- package/dist/src/components/BBreadcrumb/index.mjs +1 -1
- package/dist/src/components/BBreadcrumb/index.umd.js +1 -1
- package/dist/src/components/BButton/index.mjs +3 -3
- package/dist/src/components/BButton/index.umd.js +3 -3
- package/dist/src/components/BCard/index.mjs +2 -2
- package/dist/src/components/BCard/index.umd.js +2 -2
- package/dist/src/components/BCarousel/index.mjs +1 -1
- package/dist/src/components/BCarousel/index.umd.js +1 -1
- package/dist/src/components/BCol/index.mjs +1 -1
- package/dist/src/components/BCol/index.umd.js +1 -1
- package/dist/src/components/BCollapse/index.mjs +1 -1
- package/dist/src/components/BCollapse/index.umd.js +1 -1
- package/dist/src/components/BContainer/index.mjs +3 -3
- package/dist/src/components/BContainer/index.umd.js +3 -3
- package/dist/src/components/BDateField/index.mjs +1 -1
- package/dist/src/components/BDateField/index.umd.js +1 -1
- package/dist/src/components/BDatePicker/index.mjs +1 -1
- package/dist/src/components/BDatePicker/index.umd.js +1 -1
- package/dist/src/components/BDropdown/index.mjs +2 -2
- package/dist/src/components/BDropdown/index.umd.js +2 -2
- package/dist/src/components/BForm/index.mjs +3 -3
- package/dist/src/components/BForm/index.umd.js +3 -3
- package/dist/src/components/BFormCheckbox/index.mjs +1 -1
- package/dist/src/components/BFormCheckbox/index.umd.js +1 -1
- package/dist/src/components/BFormFile/index.mjs +1 -1
- package/dist/src/components/BFormFile/index.umd.js +1 -1
- package/dist/src/components/BFormGroup/index.mjs +1 -1
- package/dist/src/components/BFormGroup/index.umd.js +1 -1
- package/dist/src/components/BFormInput/index.mjs +1 -1
- package/dist/src/components/BFormInput/index.umd.js +1 -1
- package/dist/src/components/BFormOtp/index.mjs +1 -1
- package/dist/src/components/BFormOtp/index.umd.js +1 -1
- package/dist/src/components/BFormRadio/index.mjs +1 -1
- package/dist/src/components/BFormRadio/index.umd.js +1 -1
- package/dist/src/components/BFormRating/index.mjs +1 -1
- package/dist/src/components/BFormRating/index.umd.js +1 -1
- package/dist/src/components/BFormSelect/index.mjs +2 -2
- package/dist/src/components/BFormSelect/index.umd.js +2 -2
- package/dist/src/components/BFormSpinbutton/index.mjs +1 -1
- package/dist/src/components/BFormSpinbutton/index.umd.js +1 -1
- package/dist/src/components/BFormTags/index.mjs +2 -2
- package/dist/src/components/BFormTags/index.umd.js +2 -2
- package/dist/src/components/BFormTextarea/index.mjs +1 -1
- package/dist/src/components/BFormTextarea/index.umd.js +1 -1
- package/dist/src/components/BImg/index.mjs +1 -1
- package/dist/src/components/BImg/index.umd.js +1 -1
- package/dist/src/components/BInputGroup/index.mjs +2 -2
- package/dist/src/components/BInputGroup/index.umd.js +2 -2
- package/dist/src/components/BLink/index.mjs +1 -1
- package/dist/src/components/BLink/index.umd.js +1 -1
- package/dist/src/components/BListGroup/index.mjs +1 -1
- package/dist/src/components/BListGroup/index.umd.js +1 -1
- package/dist/src/components/BModal/index.mjs +1 -1
- package/dist/src/components/BModal/index.umd.js +1 -1
- package/dist/src/components/BNav/index.mjs +1 -1
- package/dist/src/components/BNav/index.umd.js +1 -1
- package/dist/src/components/BNavbar/index.mjs +1 -1
- package/dist/src/components/BNavbar/index.umd.js +1 -1
- package/dist/src/components/BOffcanvas/index.mjs +1 -1
- package/dist/src/components/BOffcanvas/index.umd.js +1 -1
- package/dist/src/components/BOverlay/index.mjs +1 -1
- package/dist/src/components/BOverlay/index.umd.js +1 -1
- package/dist/src/components/BPagination/index.mjs +1 -1
- package/dist/src/components/BPagination/index.umd.js +1 -1
- package/dist/src/components/BPlaceholder/index.mjs +1 -1
- package/dist/src/components/BPlaceholder/index.umd.js +1 -1
- package/dist/src/components/BPopover/index.mjs +1 -1
- package/dist/src/components/BPopover/index.umd.js +1 -1
- package/dist/src/components/BProgress/index.mjs +1 -1
- package/dist/src/components/BProgress/index.umd.js +1 -1
- package/dist/src/components/BRow/index.mjs +1 -1
- package/dist/src/components/BRow/index.umd.js +1 -1
- package/dist/src/components/BSpinner/index.mjs +1 -1
- package/dist/src/components/BSpinner/index.umd.js +1 -1
- package/dist/src/components/BTable/index.mjs +2 -2
- package/dist/src/components/BTable/index.umd.js +2 -2
- package/dist/src/components/BTabs/index.mjs +1 -1
- package/dist/src/components/BTabs/index.umd.js +1 -1
- package/dist/src/components/BTimeField/index.mjs +1 -1
- package/dist/src/components/BTimeField/index.umd.js +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/index.mjs +1 -1
- package/dist/src/components/BTooltip/index.umd.js +1 -1
- package/dist/src/components/index.mjs +58 -58
- package/dist/src/components/index.umd.js +58 -58
- package/dist/src/composables/useColorMode/index.mjs +1 -1
- package/dist/src/composables/useColorMode/index.umd.js +1 -1
- package/dist/src/composables/useModal/index.mjs +1 -1
- package/dist/src/composables/useModal/index.umd.js +1 -1
- package/dist/src/composables/usePopover/index.mjs +2 -2
- package/dist/src/composables/usePopover/index.umd.js +2 -2
- package/dist/src/composables/useScrollLock/index.mjs +1 -1
- package/dist/src/composables/useScrollLock/index.umd.js +1 -1
- package/dist/src/composables/useScrollspy/index.mjs +2 -2
- package/dist/src/composables/useScrollspy/index.umd.js +2 -2
- package/dist/src/composables/useToast/index.mjs +1 -1
- package/dist/src/composables/useToast/index.umd.js +1 -1
- package/dist/src/composables/useToggle/index.mjs +1 -1
- package/dist/src/composables/useToggle/index.umd.js +1 -1
- package/dist/src/directives/BPopover/index.mjs +2 -2
- package/dist/src/directives/BPopover/index.umd.js +2 -2
- package/dist/src/directives/BScrollspy/index.mjs +1 -1
- package/dist/src/directives/BScrollspy/index.umd.js +1 -1
- package/dist/src/directives/BToggle/index.mjs +3 -3
- package/dist/src/directives/BToggle/index.umd.js +3 -3
- package/dist/src/directives/BTooltip/index.mjs +2 -2
- package/dist/src/directives/BTooltip/index.umd.js +2 -2
- package/dist/src/resolvers/index.mjs +1 -1
- package/dist/src/resolvers/index.umd.js +1 -1
- package/dist/src/types/index.mjs +1 -1
- package/dist/src/types/index.umd.js +1 -1
- package/dist/{stringUtils-BwKOASdU.js → stringUtils-68ZN_GRt.js} +2 -2
- package/dist/{stringUtils-BwKOASdU.js.map → stringUtils-68ZN_GRt.js.map} +1 -1
- package/dist/{stringUtils-CslYpDTt.mjs → stringUtils-D4eEDlt1.mjs} +2 -2
- package/dist/{stringUtils-CslYpDTt.mjs.map → stringUtils-D4eEDlt1.mjs.map} +1 -1
- package/dist/types/AriaInvalid.d.mts +1 -0
- package/dist/types/AriaInvalid.d.ts +1 -0
- package/dist/types/ComponentEmits.d.mts +8 -1
- package/dist/types/ComponentEmits.d.ts +8 -1
- package/dist/types/ComponentProps.d.mts +3 -0
- package/dist/types/ComponentProps.d.ts +3 -0
- package/dist/types/ComponentSlots.d.mts +23 -0
- package/dist/types/ComponentSlots.d.ts +23 -0
- package/dist/{useAlignment-BiCREohQ.mjs → useAlignment-DuR8ymKI.mjs} +1 -1
- package/dist/{useAlignment-BiCREohQ.mjs.map → useAlignment-DuR8ymKI.mjs.map} +1 -1
- package/dist/{useAlignment-D5xKBRez.js → useAlignment-oKolnDpb.js} +1 -1
- package/dist/{useAlignment-D5xKBRez.js.map → useAlignment-oKolnDpb.js.map} +1 -1
- package/dist/useAriaInvalid-CHHPHNLU.js.map +1 -1
- package/dist/useAriaInvalid-apOwgexm.mjs.map +1 -1
- package/dist/{useColorVariantClasses-B6Me_Kx6.mjs → useColorVariantClasses-CqeXHjRh.mjs} +1 -1
- package/dist/{useColorVariantClasses-B6Me_Kx6.mjs.map → useColorVariantClasses-CqeXHjRh.mjs.map} +1 -1
- package/dist/{useColorVariantClasses-CEfOwjPv.js → useColorVariantClasses-Dq0sOYDL.js} +1 -1
- package/dist/{useColorVariantClasses-CEfOwjPv.js.map → useColorVariantClasses-Dq0sOYDL.js.map} +1 -1
- package/dist/{useCountdownHover-t9O7DHoK.mjs → useCountdownHover-C3NXiAaF.mjs} +2 -2
- package/dist/{useCountdownHover-t9O7DHoK.mjs.map → useCountdownHover-C3NXiAaF.mjs.map} +1 -1
- package/dist/{useCountdownHover-8bwLWYoN.js → useCountdownHover-DbVhE-N0.js} +2 -2
- package/dist/{useCountdownHover-8bwLWYoN.js.map → useCountdownHover-DbVhE-N0.js.map} +1 -1
- package/dist/{useDateField-DmmXa0_5.mjs → useDateField-CJKgollJ.mjs} +3 -3
- package/dist/{useDateField-DmmXa0_5.mjs.map → useDateField-CJKgollJ.mjs.map} +1 -1
- package/dist/{useDateField-COTiu3aN.js → useDateField-DWv3600o.js} +3 -3
- package/dist/{useDateField-COTiu3aN.js.map → useDateField-DWv3600o.js.map} +1 -1
- package/dist/{useFormCheck-CbRHduFK.mjs → useFormCheck-BKXrwS3g.mjs} +2 -2
- package/dist/{useFormCheck-CbRHduFK.mjs.map → useFormCheck-BKXrwS3g.mjs.map} +1 -1
- package/dist/{useFormCheck-Cj5K6pk-.js → useFormCheck-DYjLG4WA.js} +2 -2
- package/dist/{useFormCheck-Cj5K6pk-.js.map → useFormCheck-DYjLG4WA.js.map} +1 -1
- package/dist/{useFormInput-BgJCT9k_.mjs → useFormInput-CA4FYoV7.mjs} +4 -4
- package/dist/{useFormInput-BgJCT9k_.mjs.map → useFormInput-CA4FYoV7.mjs.map} +1 -1
- package/dist/{useFormInput-CsR38QR6.js → useFormInput-D31FCDxr.js} +4 -4
- package/dist/{useFormInput-CsR38QR6.js.map → useFormInput-D31FCDxr.js.map} +1 -1
- package/dist/{useFormSelect-D3gVO4jJ.mjs → useFormSelect-C0nvno12.mjs} +1 -1
- package/dist/{useFormSelect-D3gVO4jJ.mjs.map → useFormSelect-C0nvno12.mjs.map} +1 -1
- package/dist/{useFormSelect-CiIMUolC.js → useFormSelect-CjAziZpu.js} +1 -1
- package/dist/{useFormSelect-CiIMUolC.js.map → useFormSelect-CjAziZpu.js.map} +1 -1
- package/dist/{useForwardExpose-DrJOy0jY.js → useForwardExpose-BpZJluPs.js} +2 -2
- package/dist/{useForwardExpose-DrJOy0jY.js.map → useForwardExpose-BpZJluPs.js.map} +1 -1
- package/dist/{useForwardExpose-4OUimdPL.mjs → useForwardExpose-Cob6LlGd.mjs} +2 -2
- package/dist/{useForwardExpose-4OUimdPL.mjs.map → useForwardExpose-Cob6LlGd.mjs.map} +1 -1
- package/dist/{useKbd-IZRktImL.mjs → useKbd-DfmgFov6.mjs} +1 -1
- package/dist/{useKbd-IZRktImL.mjs.map → useKbd-DfmgFov6.mjs.map} +1 -1
- package/dist/{useKbd-ZZushx7D.js → useKbd-sqDCJtXL.js} +1 -1
- package/dist/{useKbd-ZZushx7D.js.map → useKbd-sqDCJtXL.js.map} +1 -1
- package/dist/{useNumberishToStyle-DFf9fokb.js → useNumberishToStyle-BtMa0R27.js} +2 -2
- package/dist/{useNumberishToStyle-DFf9fokb.js.map → useNumberishToStyle-BtMa0R27.js.map} +1 -1
- package/dist/{useNumberishToStyle-DEqGK1UH.mjs → useNumberishToStyle-DgS1slD3.mjs} +2 -2
- package/dist/{useNumberishToStyle-DEqGK1UH.mjs.map → useNumberishToStyle-DgS1slD3.mjs.map} +1 -1
- package/dist/{useRadiusElementClasses-BlrN-T6U.mjs → useRadiusElementClasses-BW832F7F.mjs} +1 -1
- package/dist/{useRadiusElementClasses-BlrN-T6U.mjs.map → useRadiusElementClasses-BW832F7F.mjs.map} +1 -1
- package/dist/{useRadiusElementClasses-C13_PhPM.js → useRadiusElementClasses-DWiUVgex.js} +1 -1
- package/dist/{useRadiusElementClasses-C13_PhPM.js.map → useRadiusElementClasses-DWiUVgex.js.map} +1 -1
- package/dist/{useRtl-DXAooTrl.js → useRtl-DDPRnA7g.js} +1 -1
- package/dist/{useRtl-DXAooTrl.js.map → useRtl-DDPRnA7g.js.map} +1 -1
- package/dist/{useRtl-DpwU_RM8.mjs → useRtl-VR3M2Txg.mjs} +1 -1
- package/dist/{useRtl-DpwU_RM8.mjs.map → useRtl-VR3M2Txg.mjs.map} +1 -1
- package/dist/{useSafeScrollLock-Bm9RxDoY.js → useSafeScrollLock-7wmPH_Hy.js} +2 -2
- package/dist/{useSafeScrollLock-Bm9RxDoY.js.map → useSafeScrollLock-7wmPH_Hy.js.map} +1 -1
- package/dist/{useSafeScrollLock-D62o8jto.mjs → useSafeScrollLock-Me5LyqjD.mjs} +2 -2
- package/dist/{useSafeScrollLock-D62o8jto.mjs.map → useSafeScrollLock-Me5LyqjD.mjs.map} +1 -1
- package/dist/{useShowHide-BTCaeU5j.js → useShowHide-BhdrR1wG.js} +2 -2
- package/dist/{useShowHide-BTCaeU5j.js.map → useShowHide-BhdrR1wG.js.map} +1 -1
- package/dist/{useShowHide-yAK5dhPT.mjs → useShowHide-DKdljnpv.mjs} +2 -2
- package/dist/{useShowHide-yAK5dhPT.mjs.map → useShowHide-DKdljnpv.mjs.map} +1 -1
- package/dist/{useStateClass-CJ24hpkn.js → useStateClass-CXK3nCg9.js} +1 -1
- package/dist/{useStateClass-CJ24hpkn.js.map → useStateClass-CXK3nCg9.js.map} +1 -1
- package/dist/{useStateClass-CdmlbrGn.mjs → useStateClass-DxlL_m2E.mjs} +1 -1
- package/dist/{useStateClass-CdmlbrGn.mjs.map → useStateClass-DxlL_m2E.mjs.map} +1 -1
- package/dist/{utils-DtPi91ue.js → utils-BTPjS0XS.js} +2 -2
- package/dist/{utils-DtPi91ue.js.map → utils-BTPjS0XS.js.map} +1 -1
- package/dist/{utils-D30CwVm-.mjs → utils-Dgz9Trtl.mjs} +2 -2
- package/dist/{utils-D30CwVm-.mjs.map → utils-Dgz9Trtl.mjs.map} +1 -1
- package/package.json +1 -1
- package/src/components/BAutocomplete/_autocomplete.scss +69 -1
- package/dist/BAlert-CHbgLTZH.js.map +0 -1
- package/dist/BAlert-CRRUJXYi.mjs.map +0 -1
- package/dist/BApp-DJWC2mB8.mjs.map +0 -1
- package/dist/BApp-DaM0UKIg.js.map +0 -1
- package/dist/BAvatar-BHqTW5Ll.js.map +0 -1
- package/dist/BAvatar-BSLk69M0.mjs.map +0 -1
- package/dist/BBadge-BBUcrujj.js.map +0 -1
- package/dist/BBadge-D5ra3W5R.mjs.map +0 -1
- package/dist/BBreadcrumb-BSsiwCNB.js.map +0 -1
- package/dist/BBreadcrumb-amkzWyz6.mjs.map +0 -1
- package/dist/BButton-BUYwco3v.js.map +0 -1
- package/dist/BButton-Bw4HgpsF.js.map +0 -1
- package/dist/BButton-CDo9SRvU.mjs.map +0 -1
- package/dist/BButton-DgequxLk.mjs.map +0 -1
- package/dist/BCard-C1G8PO5k.mjs.map +0 -1
- package/dist/BCard-CJ822HyH.mjs.map +0 -1
- package/dist/BCard-CSyEHz8Z.js.map +0 -1
- package/dist/BCard-CgbTFn3S.js.map +0 -1
- package/dist/BCloseButton-CN__Jjcj.js.map +0 -1
- package/dist/BCloseButton-CjgbR1Ec.mjs.map +0 -1
- package/dist/BCol-0tZmpOme.js.map +0 -1
- package/dist/BCol-C4v-TOX6.mjs.map +0 -1
- package/dist/BCollapse-D-xTGkX_.mjs.map +0 -1
- package/dist/BCollapse-DZ1z2c8U.js.map +0 -1
- package/dist/BContainer-BZUI2qQv.js.map +0 -1
- package/dist/BContainer-DjIGH6-y.mjs.map +0 -1
- package/dist/BDateField-BJIq6gs9.mjs.map +0 -1
- package/dist/BDateField-RWwEMIwd.js.map +0 -1
- package/dist/BDropdown-BxciLgyt.js.map +0 -1
- package/dist/BDropdown-CRIh9xqy.mjs.map +0 -1
- package/dist/BDropdown-D2pBrZsG.mjs.map +0 -1
- package/dist/BDropdown-DgbFCKfP.js.map +0 -1
- package/dist/BForm-Bp7SFxiK.js.map +0 -1
- package/dist/BForm-C8I6v7bU.mjs.map +0 -1
- package/dist/BForm-Oh6PpdcD.mjs.map +0 -1
- package/dist/BForm-_h0kYDl7.js.map +0 -1
- package/dist/BFormCheckbox-BPQxUDQG.js.map +0 -1
- package/dist/BFormCheckbox-DPNPjRKN.mjs.map +0 -1
- package/dist/BFormGroup--38dFj0X.mjs +0 -381
- package/dist/BFormGroup--38dFj0X.mjs.map +0 -1
- package/dist/BFormGroup-BwO1BZD1.js +0 -387
- package/dist/BFormGroup-BwO1BZD1.js.map +0 -1
- package/dist/BFormInput-BuRSGYdY.js.map +0 -1
- package/dist/BFormInput-Dg9dbwHp.mjs.map +0 -1
- package/dist/BFormRadio-BZ0etDxl.js.map +0 -1
- package/dist/BFormRadio-CqYd0bLV.mjs.map +0 -1
- package/dist/BFormRating-Bb_ACp-9.mjs.map +0 -1
- package/dist/BFormRating-CNqf91vN.js.map +0 -1
- package/dist/BFormSelect-B_mbfTMC.js.map +0 -1
- package/dist/BFormSelect-CpkJ1haI.mjs.map +0 -1
- package/dist/BFormSelectOption-BY4P8HOf.js.map +0 -1
- package/dist/BFormSelectOption-O8cyyv3i.mjs.map +0 -1
- package/dist/BFormTag-BUWEugEC.mjs.map +0 -1
- package/dist/BFormTag-C7B-bX72.js.map +0 -1
- package/dist/BFormTags-DJzXJp7d.js.map +0 -1
- package/dist/BFormTags-DWAWX2av.mjs.map +0 -1
- package/dist/BFormTextarea-8c3B3kAI.js.map +0 -1
- package/dist/BFormTextarea-BMk05ojJ.mjs.map +0 -1
- package/dist/BFormValidFeedback-DvTgwqSe.js.map +0 -1
- package/dist/BFormValidFeedback-_Dgzm0Ag.mjs.map +0 -1
- package/dist/BImg-BQqZfIM9.mjs.map +0 -1
- package/dist/BImg-Dyy0N-WQ.js.map +0 -1
- package/dist/BInputGroup-Bfcs5h_Q.js.map +0 -1
- package/dist/BInputGroup-C5sxenhE.mjs.map +0 -1
- package/dist/BInputGroup-DTP5Vf1f.js.map +0 -1
- package/dist/BInputGroup-Dl9AgpAx.mjs.map +0 -1
- package/dist/BListGroup-BmtN0xQ3.mjs.map +0 -1
- package/dist/BListGroup-DuyMdAxJ.js.map +0 -1
- package/dist/BNav-BdO2N7G0.mjs.map +0 -1
- package/dist/BNav-MjroX-Jl.js.map +0 -1
- package/dist/BNavbar-s9Ak5PnO.js.map +0 -1
- package/dist/BNavbar-vN3_CMLn.mjs.map +0 -1
- package/dist/BOffcanvas-ColOuYdV.js.map +0 -1
- package/dist/BOffcanvas-DmkJSSFy.mjs.map +0 -1
- package/dist/BOverlay-B7vJAdHO.js.map +0 -1
- package/dist/BOverlay-BGxH9JVy.mjs.map +0 -1
- package/dist/BPagination-C0-4NVzW.js.map +0 -1
- package/dist/BPagination-CvoSN1He.mjs.map +0 -1
- package/dist/BPlaceholder-DKDtjMjy.mjs.map +0 -1
- package/dist/BPlaceholder-n447tOzJ.js.map +0 -1
- package/dist/BProgress-BIqo6vLh.mjs.map +0 -1
- package/dist/BProgress-Bc3ZSkac.js.map +0 -1
- package/dist/BRow-BCEK3fe6.mjs.map +0 -1
- package/dist/BRow-tqMEhkZS.js.map +0 -1
- package/dist/BSpinner-8UMAINYb.js.map +0 -1
- package/dist/BSpinner-BpnwONvx.mjs.map +0 -1
- package/dist/BTable-Btzu1IJ_.js.map +0 -1
- package/dist/BTable-CjHMx8Yv.mjs.map +0 -1
- package/dist/BTableSimple-BcdizuDm.js.map +0 -1
- package/dist/BTableSimple-C901Z5V9.mjs.map +0 -1
- package/dist/BTabs-DZEF9kgT.mjs.map +0 -1
- package/dist/BTabs-DiYaJi22.js.map +0 -1
- package/dist/BToast-BFcT76M1.js.map +0 -1
- package/dist/BToast-D5XkJqF4.mjs.map +0 -1
- package/dist/BTooltip-BwiqjqX-.js.map +0 -1
- package/dist/BTooltip-DohT1Q3C.mjs.map +0 -1
- package/dist/ConditionalTeleport-BJZk6HAx.js.map +0 -1
- package/dist/ConditionalTeleport-BNsziElf.mjs.map +0 -1
- package/dist/dist-B10a-gZ8.mjs.map +0 -1
- package/dist/floatingUi-BAUk171g.mjs.map +0 -1
- package/dist/floatingUi-DBLN9xLH.js.map +0 -1
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BOffcanvas-ColOuYdV.js","names":["$attrs"],"sources":["../src/components/BOffcanvas/BOffcanvas.vue","../src/components/BOffcanvas/BOffcanvas.vue"],"sourcesContent":["<template>\n <ConditionalTeleport\n :to=\"props.teleportTo\"\n :disabled=\"props.teleportDisabled || isOpenByBreakpoint\"\n >\n <Transition\n v-if=\"renderRef || contentShowing || isOpenByBreakpoint\"\n v-bind=\"transitionProps\"\n :appear=\"modelValue || props.visible\"\n >\n <div\n v-show=\"\n (showRef && ((backdropReady && props.backdropFirst) || !props.backdropFirst)) ||\n isOpenByBreakpoint\n \"\n :id=\"computedId\"\n ref=\"_element\"\n aria-modal=\"true\"\n role=\"dialog\"\n :class=\"computedClasses\"\n :style=\"computedStyles\"\n tabindex=\"-1\"\n :aria-labelledby=\"`${computedId}-offcanvas-label`\"\n data-bs-backdrop=\"false\"\n v-bind=\"$attrs\"\n >\n <template v-if=\"contentShowing || isOpenByBreakpoint\">\n <div\n v-if=\"!props.noHeader\"\n class=\"offcanvas-header\"\n :class=\"props.headerClass\"\n v-bind=\"props.headerAttrs\"\n >\n <slot name=\"header\" v-bind=\"sharedSlots\">\n <h5 :id=\"`${computedId}-offcanvas-label`\" class=\"offcanvas-title\">\n <slot name=\"title\" v-bind=\"sharedSlots\">\n {{ props.title }}\n </slot>\n </h5>\n <template v-if=\"!props.noHeaderClose\">\n <BButton\n v-if=\"hasHeaderCloseSlot\"\n ref=\"_close\"\n v-bind=\"headerCloseAttrs\"\n @click=\"hide('close')\"\n >\n <slot name=\"header-close\" v-bind=\"sharedSlots\" />\n </BButton>\n <BCloseButton\n v-else\n ref=\"_close\"\n :aria-label=\"props.headerCloseLabel\"\n v-bind=\"headerCloseAttrs\"\n @click=\"hide('close')\"\n />\n </template>\n </slot>\n </div>\n <div class=\"offcanvas-body\" :class=\"props.bodyClass\" v-bind=\"props.bodyAttrs\">\n <slot v-bind=\"sharedSlots\" />\n </div>\n <div v-if=\"hasFooterSlot\" :class=\"props.footerClass\">\n <slot name=\"footer\" v-bind=\"sharedSlots\" />\n </div>\n </template>\n <div\n v-if=\"needsFallback\"\n ref=\"_fallbackFocusElement\"\n :class=\"fallbackClassSelector\"\n tabindex=\"0\"\n style=\"width: 0; height: 0; overflow: hidden\"\n />\n </div>\n </Transition>\n <slot v-if=\"!props.noBackdrop\" name=\"backdrop\" v-bind=\"sharedSlots\">\n <Transition v-if=\"renderBackdropRef\" v-bind=\"backdropTransitionProps\">\n <div\n v-show=\"showBackdrop\"\n class=\"offcanvas-backdrop\"\n :class=\"{\n fade: !computedNoAnimation,\n show: backdropVisible || computedNoAnimation,\n }\"\n @click=\"hide('backdrop')\"\n />\n </Transition>\n </slot>\n </ConditionalTeleport>\n</template>\n\n<script setup lang=\"ts\">\nimport {breakpointsBootstrapV5, onKeyStroke, unrefElement, useBreakpoints} from '@vueuse/core'\nimport {useActivatedFocusTrap} from '../../composables/useActivatedFocusTrap'\nimport {computed, type EmitFn, nextTick, onMounted, ref, useTemplateRef, watch} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useId} from '../../composables/useId'\nimport type {BOffcanvasProps} from '../../types/ComponentProps'\nimport type {BOffcanvasEmits} from '../../types/ComponentEmits'\nimport type {BOffcanvasSlots, BOffcanvasSlotsData} from '../../types/ComponentSlots'\nimport BButton from '../BButton/BButton.vue'\nimport BCloseButton from '../BButton/BCloseButton.vue'\nimport ConditionalTeleport from '../ConditionalTeleport.vue'\nimport {useSafeScrollLock} from '../../composables/useSafeScrollLock'\nimport {isEmptySlot} from '../../utils/dom'\nimport {useShowHide} from '../../composables/useShowHide'\nimport {getElement} from '../../utils/getElement'\n\n// TODO once the responsive stuff may be implemented correctly,\n// What needs to occur is a fixing of the \"body scrolling\".\n// If the offcanvas is on the screen on a large screen, body scrolling is not disabled\n// Even though the modelValue is true\n// When it's a small screen and close, it works, as normal,\n// But then when it opens up on a small screen, it must disable again\n// This is implemented on Layout.vue, but is not officially supported.\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<Omit<BOffcanvasProps, 'modelValue'>>(), {\n backdropFirst: false,\n bodyAttrs: undefined,\n bodyClass: undefined,\n bodyScrolling: false,\n focus: undefined,\n footerClass: undefined,\n headerAttrs: undefined,\n headerClass: undefined,\n headerCloseClass: undefined,\n headerCloseLabel: 'Close',\n headerCloseVariant: 'secondary',\n id: undefined,\n initialAnimation: false,\n lazy: false,\n noAnimation: false,\n noBackdrop: false,\n noCloseOnBackdrop: false,\n noCloseOnEsc: false,\n noTrap: false,\n noHeader: false,\n noHeaderClose: false,\n unmountLazy: false,\n placement: 'start',\n shadow: false,\n teleportDisabled: false,\n teleportTo: 'body',\n title: undefined,\n show: false,\n width: undefined,\n visible: false,\n})\nconst props = useDefaults(_props, 'BOffcanvas')\nconst emit = defineEmits<BOffcanvasEmits>()\nconst slots = defineSlots<BOffcanvasSlots>()\n\nconst modelValue = defineModel<Exclude<BOffcanvasProps['modelValue'], undefined>>({\n default: false,\n})\n\nconst computedId = useId(() => props.id, 'offcanvas')\n\nconst element = useTemplateRef<HTMLElement | null>('_element')\nconst fallbackFocusElement = useTemplateRef<HTMLElement | null>('_fallbackFocusElement')\nconst closeButton = useTemplateRef<HTMLElement | null>('_close')\n\nconst pickFocusItem = () => {\n if (props.focus && typeof props.focus !== 'boolean') {\n if (props.focus === 'close') {\n return closeButton\n }\n return getElement(props.focus, element.value ?? undefined)\n }\n return element\n}\n\nconst onAfterEnter = () => {\n nextTick(() => {\n if (props.focus !== false && !isOpenByBreakpoint.value && props.noTrap) {\n const focusElement = unrefElement(pickFocusItem())\n focusElement?.focus()\n }\n })\n}\n\nconst {\n showRef,\n renderRef,\n renderBackdropRef,\n hide,\n show,\n toggle,\n computedNoAnimation,\n contentShowing,\n transitionProps,\n backdropReady,\n backdropTransitionProps,\n backdropVisible,\n isVisible,\n buildTriggerableEvent,\n isLeaving,\n trapActive,\n setLocalNoAnimation,\n} = useShowHide(modelValue, props, emit as EmitFn, element, computedId, {\n transitionProps: {\n onAfterEnter,\n enterToClass: 'showing',\n leaveToClass: 'hiding',\n enterActiveClass: '',\n leaveActiveClass: '',\n enterFromClass: '',\n leaveFromClass: '',\n },\n})\n\nconst breakpoints = useBreakpoints(breakpointsBootstrapV5)\nconst smallerOrEqualToBreakpoint = breakpoints.smallerOrEqual(() => props.responsive ?? 'xs')\n// Initialize with SSR-safe default value to prevent hydration mismatches\n// The actual breakpoint evaluation is deferred to onMounted (client-side only)\nconst isOpenByBreakpoint = ref(false)\n\nonMounted(() => {\n if (props.responsive !== undefined) {\n // Update the breakpoint state after mounting (client-side only)\n isOpenByBreakpoint.value = !smallerOrEqualToBreakpoint.value\n emit('breakpoint', buildTriggerableEvent('breakpoint'), isOpenByBreakpoint.value)\n }\n})\n\nuseSafeScrollLock(showRef, () => props.bodyScrolling || isOpenByBreakpoint.value)\n\nonKeyStroke(\n 'Escape',\n () => {\n hide('esc')\n },\n {target: element, passive: true}\n)\n\nconst fallbackClassSelector = 'offcanvas-fallback-focus'\n\nconst {needsFallback} = useActivatedFocusTrap({\n element,\n isActive: trapActive,\n noTrap: () => props.noTrap || isOpenByBreakpoint.value,\n fallbackFocus: {\n classSelector: fallbackClassSelector,\n ref: fallbackFocusElement,\n },\n focus: () =>\n props.focus === false || isOpenByBreakpoint.value\n ? false\n : (unrefElement(pickFocusItem()) ?? undefined),\n})\n\nconst showBackdrop = computed(\n () =>\n (props.responsive === undefined || !isOpenByBreakpoint.value) &&\n props.noBackdrop === false &&\n (showRef.value === true ||\n (isLeaving.value && props.backdropFirst && !computedNoAnimation.value))\n)\n\nconst hasHeaderCloseSlot = computed(() => !isEmptySlot(slots['header-close']))\nconst headerCloseClasses = computed(() => [\n {'text-reset': !hasHeaderCloseSlot.value},\n props.headerCloseClass,\n])\nconst headerCloseAttrs = computed(() => ({\n variant: hasHeaderCloseSlot.value ? props.headerCloseVariant : undefined,\n class: headerCloseClasses.value,\n}))\n\nconst hasFooterSlot = computed(() => !isEmptySlot(slots.footer))\nconst computedClasses = computed(() => [\n props.responsive === undefined ? 'offcanvas' : `offcanvas-${props.responsive}`,\n `offcanvas-${props.placement}`,\n {\n 'show': isVisible.value,\n [`shadow-${props.shadow}`]: !!props.shadow,\n 'no-transition': computedNoAnimation.value,\n },\n])\n\nconst computedStyles = computed(() => ({\n width: props.width,\n}))\n\nconst sharedSlots = computed<BOffcanvasSlotsData>(() => ({\n visible: isVisible.value,\n placement: props.placement,\n hide,\n show,\n toggle,\n id: computedId.value,\n active: trapActive.value,\n}))\n\nwatch(smallerOrEqualToBreakpoint, (newValue) => {\n if (props.responsive === undefined) return\n if (newValue === true) {\n const opened = false\n setLocalNoAnimation(true)\n requestAnimationFrame(() => {\n isOpenByBreakpoint.value = opened\n })\n emit('breakpoint', buildTriggerableEvent('breakpoint'), opened)\n emit('hide', buildTriggerableEvent('hide'))\n } else {\n const opened = true\n setLocalNoAnimation(true)\n requestAnimationFrame(() => {\n isOpenByBreakpoint.value = opened\n })\n emit('breakpoint', buildTriggerableEvent('breakpoint'), opened)\n emit('show', buildTriggerableEvent('show'))\n }\n})\n\ndefineExpose({\n hide,\n show,\n toggle,\n isOpenByBreakpoint,\n})\n</script>\n","<template>\n <ConditionalTeleport\n :to=\"props.teleportTo\"\n :disabled=\"props.teleportDisabled || isOpenByBreakpoint\"\n >\n <Transition\n v-if=\"renderRef || contentShowing || isOpenByBreakpoint\"\n v-bind=\"transitionProps\"\n :appear=\"modelValue || props.visible\"\n >\n <div\n v-show=\"\n (showRef && ((backdropReady && props.backdropFirst) || !props.backdropFirst)) ||\n isOpenByBreakpoint\n \"\n :id=\"computedId\"\n ref=\"_element\"\n aria-modal=\"true\"\n role=\"dialog\"\n :class=\"computedClasses\"\n :style=\"computedStyles\"\n tabindex=\"-1\"\n :aria-labelledby=\"`${computedId}-offcanvas-label`\"\n data-bs-backdrop=\"false\"\n v-bind=\"$attrs\"\n >\n <template v-if=\"contentShowing || isOpenByBreakpoint\">\n <div\n v-if=\"!props.noHeader\"\n class=\"offcanvas-header\"\n :class=\"props.headerClass\"\n v-bind=\"props.headerAttrs\"\n >\n <slot name=\"header\" v-bind=\"sharedSlots\">\n <h5 :id=\"`${computedId}-offcanvas-label`\" class=\"offcanvas-title\">\n <slot name=\"title\" v-bind=\"sharedSlots\">\n {{ props.title }}\n </slot>\n </h5>\n <template v-if=\"!props.noHeaderClose\">\n <BButton\n v-if=\"hasHeaderCloseSlot\"\n ref=\"_close\"\n v-bind=\"headerCloseAttrs\"\n @click=\"hide('close')\"\n >\n <slot name=\"header-close\" v-bind=\"sharedSlots\" />\n </BButton>\n <BCloseButton\n v-else\n ref=\"_close\"\n :aria-label=\"props.headerCloseLabel\"\n v-bind=\"headerCloseAttrs\"\n @click=\"hide('close')\"\n />\n </template>\n </slot>\n </div>\n <div class=\"offcanvas-body\" :class=\"props.bodyClass\" v-bind=\"props.bodyAttrs\">\n <slot v-bind=\"sharedSlots\" />\n </div>\n <div v-if=\"hasFooterSlot\" :class=\"props.footerClass\">\n <slot name=\"footer\" v-bind=\"sharedSlots\" />\n </div>\n </template>\n <div\n v-if=\"needsFallback\"\n ref=\"_fallbackFocusElement\"\n :class=\"fallbackClassSelector\"\n tabindex=\"0\"\n style=\"width: 0; height: 0; overflow: hidden\"\n />\n </div>\n </Transition>\n <slot v-if=\"!props.noBackdrop\" name=\"backdrop\" v-bind=\"sharedSlots\">\n <Transition v-if=\"renderBackdropRef\" v-bind=\"backdropTransitionProps\">\n <div\n v-show=\"showBackdrop\"\n class=\"offcanvas-backdrop\"\n :class=\"{\n fade: !computedNoAnimation,\n show: backdropVisible || computedNoAnimation,\n }\"\n @click=\"hide('backdrop')\"\n />\n </Transition>\n </slot>\n </ConditionalTeleport>\n</template>\n\n<script setup lang=\"ts\">\nimport {breakpointsBootstrapV5, onKeyStroke, unrefElement, useBreakpoints} from '@vueuse/core'\nimport {useActivatedFocusTrap} from '../../composables/useActivatedFocusTrap'\nimport {computed, type EmitFn, nextTick, onMounted, ref, useTemplateRef, watch} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useId} from '../../composables/useId'\nimport type {BOffcanvasProps} from '../../types/ComponentProps'\nimport type {BOffcanvasEmits} from '../../types/ComponentEmits'\nimport type {BOffcanvasSlots, BOffcanvasSlotsData} from '../../types/ComponentSlots'\nimport BButton from '../BButton/BButton.vue'\nimport BCloseButton from '../BButton/BCloseButton.vue'\nimport ConditionalTeleport from '../ConditionalTeleport.vue'\nimport {useSafeScrollLock} from '../../composables/useSafeScrollLock'\nimport {isEmptySlot} from '../../utils/dom'\nimport {useShowHide} from '../../composables/useShowHide'\nimport {getElement} from '../../utils/getElement'\n\n// TODO once the responsive stuff may be implemented correctly,\n// What needs to occur is a fixing of the \"body scrolling\".\n// If the offcanvas is on the screen on a large screen, body scrolling is not disabled\n// Even though the modelValue is true\n// When it's a small screen and close, it works, as normal,\n// But then when it opens up on a small screen, it must disable again\n// This is implemented on Layout.vue, but is not officially supported.\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<Omit<BOffcanvasProps, 'modelValue'>>(), {\n backdropFirst: false,\n bodyAttrs: undefined,\n bodyClass: undefined,\n bodyScrolling: false,\n focus: undefined,\n footerClass: undefined,\n headerAttrs: undefined,\n headerClass: undefined,\n headerCloseClass: undefined,\n headerCloseLabel: 'Close',\n headerCloseVariant: 'secondary',\n id: undefined,\n initialAnimation: false,\n lazy: false,\n noAnimation: false,\n noBackdrop: false,\n noCloseOnBackdrop: false,\n noCloseOnEsc: false,\n noTrap: false,\n noHeader: false,\n noHeaderClose: false,\n unmountLazy: false,\n placement: 'start',\n shadow: false,\n teleportDisabled: false,\n teleportTo: 'body',\n title: undefined,\n show: false,\n width: undefined,\n visible: false,\n})\nconst props = useDefaults(_props, 'BOffcanvas')\nconst emit = defineEmits<BOffcanvasEmits>()\nconst slots = defineSlots<BOffcanvasSlots>()\n\nconst modelValue = defineModel<Exclude<BOffcanvasProps['modelValue'], undefined>>({\n default: false,\n})\n\nconst computedId = useId(() => props.id, 'offcanvas')\n\nconst element = useTemplateRef<HTMLElement | null>('_element')\nconst fallbackFocusElement = useTemplateRef<HTMLElement | null>('_fallbackFocusElement')\nconst closeButton = useTemplateRef<HTMLElement | null>('_close')\n\nconst pickFocusItem = () => {\n if (props.focus && typeof props.focus !== 'boolean') {\n if (props.focus === 'close') {\n return closeButton\n }\n return getElement(props.focus, element.value ?? undefined)\n }\n return element\n}\n\nconst onAfterEnter = () => {\n nextTick(() => {\n if (props.focus !== false && !isOpenByBreakpoint.value && props.noTrap) {\n const focusElement = unrefElement(pickFocusItem())\n focusElement?.focus()\n }\n })\n}\n\nconst {\n showRef,\n renderRef,\n renderBackdropRef,\n hide,\n show,\n toggle,\n computedNoAnimation,\n contentShowing,\n transitionProps,\n backdropReady,\n backdropTransitionProps,\n backdropVisible,\n isVisible,\n buildTriggerableEvent,\n isLeaving,\n trapActive,\n setLocalNoAnimation,\n} = useShowHide(modelValue, props, emit as EmitFn, element, computedId, {\n transitionProps: {\n onAfterEnter,\n enterToClass: 'showing',\n leaveToClass: 'hiding',\n enterActiveClass: '',\n leaveActiveClass: '',\n enterFromClass: '',\n leaveFromClass: '',\n },\n})\n\nconst breakpoints = useBreakpoints(breakpointsBootstrapV5)\nconst smallerOrEqualToBreakpoint = breakpoints.smallerOrEqual(() => props.responsive ?? 'xs')\n// Initialize with SSR-safe default value to prevent hydration mismatches\n// The actual breakpoint evaluation is deferred to onMounted (client-side only)\nconst isOpenByBreakpoint = ref(false)\n\nonMounted(() => {\n if (props.responsive !== undefined) {\n // Update the breakpoint state after mounting (client-side only)\n isOpenByBreakpoint.value = !smallerOrEqualToBreakpoint.value\n emit('breakpoint', buildTriggerableEvent('breakpoint'), isOpenByBreakpoint.value)\n }\n})\n\nuseSafeScrollLock(showRef, () => props.bodyScrolling || isOpenByBreakpoint.value)\n\nonKeyStroke(\n 'Escape',\n () => {\n hide('esc')\n },\n {target: element, passive: true}\n)\n\nconst fallbackClassSelector = 'offcanvas-fallback-focus'\n\nconst {needsFallback} = useActivatedFocusTrap({\n element,\n isActive: trapActive,\n noTrap: () => props.noTrap || isOpenByBreakpoint.value,\n fallbackFocus: {\n classSelector: fallbackClassSelector,\n ref: fallbackFocusElement,\n },\n focus: () =>\n props.focus === false || isOpenByBreakpoint.value\n ? false\n : (unrefElement(pickFocusItem()) ?? undefined),\n})\n\nconst showBackdrop = computed(\n () =>\n (props.responsive === undefined || !isOpenByBreakpoint.value) &&\n props.noBackdrop === false &&\n (showRef.value === true ||\n (isLeaving.value && props.backdropFirst && !computedNoAnimation.value))\n)\n\nconst hasHeaderCloseSlot = computed(() => !isEmptySlot(slots['header-close']))\nconst headerCloseClasses = computed(() => [\n {'text-reset': !hasHeaderCloseSlot.value},\n props.headerCloseClass,\n])\nconst headerCloseAttrs = computed(() => ({\n variant: hasHeaderCloseSlot.value ? props.headerCloseVariant : undefined,\n class: headerCloseClasses.value,\n}))\n\nconst hasFooterSlot = computed(() => !isEmptySlot(slots.footer))\nconst computedClasses = computed(() => [\n props.responsive === undefined ? 'offcanvas' : `offcanvas-${props.responsive}`,\n `offcanvas-${props.placement}`,\n {\n 'show': isVisible.value,\n [`shadow-${props.shadow}`]: !!props.shadow,\n 'no-transition': computedNoAnimation.value,\n },\n])\n\nconst computedStyles = computed(() => ({\n width: props.width,\n}))\n\nconst sharedSlots = computed<BOffcanvasSlotsData>(() => ({\n visible: isVisible.value,\n placement: props.placement,\n hide,\n show,\n toggle,\n id: computedId.value,\n active: trapActive.value,\n}))\n\nwatch(smallerOrEqualToBreakpoint, (newValue) => {\n if (props.responsive === undefined) return\n if (newValue === true) {\n const opened = false\n setLocalNoAnimation(true)\n requestAnimationFrame(() => {\n isOpenByBreakpoint.value = opened\n })\n emit('breakpoint', buildTriggerableEvent('breakpoint'), opened)\n emit('hide', buildTriggerableEvent('hide'))\n } else {\n const opened = true\n setLocalNoAnimation(true)\n requestAnimationFrame(() => {\n isOpenByBreakpoint.value = opened\n })\n emit('breakpoint', buildTriggerableEvent('breakpoint'), opened)\n emit('show', buildTriggerableEvent('show'))\n }\n})\n\ndefineExpose({\n hide,\n show,\n toggle,\n isOpenByBreakpoint,\n})\n</script>\n"],"mappings":";;;;;;;;;;;;;;;AA8OA,IAAM,wBAAwB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAvF9B,MAAM,QAAQ,oBAAA,YAhCC,SAgCmB,aAAY;EAC9C,MAAM,OAAO;EACb,MAAM,SAAA,GAAA,IAAA,WAAQ;EAEd,MAAM,cAAA,GAAA,IAAA,UAA2E,SAAA,aAEhF;EAED,MAAM,aAAa,cAAA,YAAY,MAAM,IAAI,YAAW;EAEpD,MAAM,WAAA,GAAA,IAAA,gBAA6C,WAAU;EAC7D,MAAM,wBAAA,GAAA,IAAA,gBAA0D,wBAAuB;EACvF,MAAM,eAAA,GAAA,IAAA,gBAAiD,SAAQ;EAE/D,MAAM,sBAAsB;AAC1B,OAAI,MAAM,SAAS,OAAO,MAAM,UAAU,WAAW;AACnD,QAAI,MAAM,UAAU,QAClB,QAAO;AAET,WAAO,mBAAA,WAAW,MAAM,OAAO,QAAQ,SAAS,KAAA,EAAS;;AAE3D,UAAO;;EAGT,MAAM,qBAAqB;AACzB,IAAA,GAAA,IAAA,gBAAe;AACb,QAAI,MAAM,UAAU,SAAS,CAAC,mBAAmB,SAAS,MAAM,OACzC,cAAA,aAAa,eAAe,CAAA,EACnC,OAAM;KAEvB;;EAGH,MAAM,EACJ,SACA,WACA,mBACA,MACA,MACA,QACA,qBACA,gBACA,iBACA,eACA,yBACA,iBACA,WACA,uBACA,WACA,YACA,wBACE,oBAAA,YAAY,YAAY,OAAO,MAAgB,SAAS,YAAY,EACtE,iBAAiB;GACf;GACA,cAAc;GACd,cAAc;GACd,kBAAkB;GAClB,kBAAkB;GAClB,gBAAgB;GAChB,gBAAgB;GACjB,EACF,CAAA;EAGD,MAAM,6BADc,aAAA,eAAe,aAAA,uBAAsB,CACV,qBAAqB,MAAM,cAAc,KAAI;EAG5F,MAAM,sBAAA,GAAA,IAAA,KAAyB,MAAK;AAEpC,GAAA,GAAA,IAAA,iBAAgB;AACd,OAAI,MAAM,eAAe,KAAA,GAAW;AAElC,uBAAmB,QAAQ,CAAC,2BAA2B;AACvD,SAAK,cAAc,sBAAsB,aAAa,EAAE,mBAAmB,MAAK;;IAEnF;AAED,4BAAA,kBAAkB,eAAe,MAAM,iBAAiB,mBAAmB,MAAK;AAEhF,eAAA,YACE,gBACM;AACJ,QAAK,MAAK;KAEZ;GAAC,QAAQ;GAAS,SAAS;GAAI,CACjC;EAIA,MAAM,EAAC,kBAAiB,0BAAA,sBAAsB;GAC5C;GACA,UAAU;GACV,cAAc,MAAM,UAAU,mBAAmB;GACjD,eAAe;IACb,eAAe;IACf,KAAK;IACN;GACD,aACE,MAAM,UAAU,SAAS,mBAAmB,QACxC,QACC,aAAA,aAAa,eAAe,CAAC,IAAI,KAAA;GACzC,CAAA;EAED,MAAM,gBAAA,GAAA,IAAA,iBAED,MAAM,eAAe,KAAA,KAAa,CAAC,mBAAmB,UACvD,MAAM,eAAe,UACpB,QAAQ,UAAU,QAChB,UAAU,SAAS,MAAM,iBAAiB,CAAC,oBAAoB,OACtE;EAEA,MAAM,sBAAA,GAAA,IAAA,gBAAoC,CAAC,YAAA,YAAY,MAAM,gBAAgB,CAAA;EAC7E,MAAM,sBAAA,GAAA,IAAA,gBAAoC,CACxC,EAAC,cAAc,CAAC,mBAAmB,OAAM,EACzC,MAAM,iBACP,CAAA;EACD,MAAM,oBAAA,GAAA,IAAA,iBAAmC;GACvC,SAAS,mBAAmB,QAAQ,MAAM,qBAAqB,KAAA;GAC/D,OAAO,mBAAmB;GAC3B,EAAC;EAEF,MAAM,iBAAA,GAAA,IAAA,gBAA+B,CAAC,YAAA,YAAY,MAAM,OAAO,CAAA;EAC/D,MAAM,mBAAA,GAAA,IAAA,gBAAiC;GACrC,MAAM,eAAe,KAAA,IAAY,cAAc,aAAa,MAAM;GAClE,aAAa,MAAM;GACnB;IACE,QAAQ,UAAU;KACjB,UAAU,MAAM,WAAW,CAAC,CAAC,MAAM;IACpC,iBAAiB,oBAAoB;;GAExC,CAAA;EAED,MAAM,kBAAA,GAAA,IAAA,iBAAiC,EACrC,OAAO,MAAM,OACd,EAAC;EAEF,MAAM,eAAA,GAAA,IAAA,iBAAmD;GACvD,SAAS,UAAU;GACnB,WAAW,MAAM;GACjB;GACA;GACA;GACA,IAAI,WAAW;GACf,QAAQ,WAAW;GACpB,EAAC;AAEF,GAAA,GAAA,IAAA,OAAM,6BAA6B,aAAa;AAC9C,OAAI,MAAM,eAAe,KAAA,EAAW;AACpC,OAAI,aAAa,MAAM;IACrB,MAAM,SAAS;AACf,wBAAoB,KAAI;AACxB,gCAA4B;AAC1B,wBAAmB,QAAQ;MAC5B;AACD,SAAK,cAAc,sBAAsB,aAAa,EAAE,OAAM;AAC9D,SAAK,QAAQ,sBAAsB,OAAO,CAAA;UACrC;IACL,MAAM,SAAS;AACf,wBAAoB,KAAI;AACxB,gCAA4B;AAC1B,wBAAmB,QAAQ;MAC5B;AACD,SAAK,cAAc,sBAAsB,aAAa,EAAE,OAAM;AAC9D,SAAK,QAAQ,sBAAsB,OAAO,CAAA;;IAE7C;AAED,WAAa;GACX;GACA;GACA;GACA;GACD,CAAA;;qDA5OuB,4BAAA,6BAAA;IArFnB,KAAA,GAAA,IAAA,OAAI,MAAK,CAAC;IACV,WAAA,GAAA,IAAA,OAAU,MAAK,CAAC,oBAAoB,mBAAA;;oCAsExB,EAAA,GAAA,IAAA,OAnEL,UAAS,KAAA,GAAA,IAAA,OAAI,eAAc,IAAI,mBAAA,UAAA,GAAA,IAAA,YAAA,GAAA,GAAA,IAAA,aAmE1B,IAAA,aAAA,GAAA,IAAA,YAAA,EAAA,KAAA,GAAA,GAAA,GAAA,IAAA,OAlEH,gBAAe,EAAA,EACtB,QAAQ,WAAA,UAAA,GAAA,IAAA,OAAc,MAAK,CAAC,SAAA,CAAA,EAAA;qCAgEvB,EAAA,GAAA,IAAA,iBAAA,GAAA,IAAA,oBAAA,QAAA,GAAA,IAAA,YAAA;MAzDH,KAAA,GAAA,IAAA,OAAI,WAAU;MACf,KAAI;MACJ,cAAW;MACX,MAAK;MACJ,OAAO,gBAAA;MACP,OAAO,eAAA;MACR,UAAS;MACR,mBAAe,IAAA,GAAA,IAAA,OAAK,WAAU,CAAA;MAC/B,oBAAiB;QACTA,KAAAA,OAAM,EAAA,EAAA,GAAA,IAAA,OAEE,eAAc,IAAI,mBAAA,UAAA,GAAA,IAAA,YAAA,GAAA,GAAA,IAAA,oBAsCvB,IAAA,UAAA,EAAA,KAAA,GAAA,EAAA;sBApCA,MAAK,CAAC,aAAA,GAAA,IAAA,YAAA,GAAA,GAAA,IAAA,oBA6BT,QAAA,GAAA,IAAA,YAAA;;OA5BJ,OAAK,CAAC,qBAAA,GAAA,IAAA,OACE,MAAK,CAAC,YAAA;wBACN,MAAK,CAAC,YAAW,EAAA,EAAA,GAAA,IAAA,YAyBlB,KAAA,QAAA,WAAA,GAAA,IAAA,iBAAA,GAAA,IAAA,oBAvBqB,YAAA,MAAW,CAAA,QAuBhC,EAAA,GAAA,IAAA,oBAlBA,MAAA;OAJA,IAAE,IAAA,GAAA,IAAA,OAAK,WAAU,CAAA;OAAoB,OAAM;8BAGvC,KAAA,QAAA,UAAA,GAAA,IAAA,iBAAA,GAAA,IAAA,oBAFoB,YAAA,MAAW,CAAA,QAE/B,EAAA,GAAA,IAAA,kBAAA,GAAA,IAAA,kBAAA,GAAA,IAAA,OADF,MAAK,CAAC,MAAK,EAAA,EAAA,CAAA,CAAA,CAAA,EAAA,GAAA,WAAA,EAAA,EAAA,GAAA,IAAA,OAGD,MAAK,CAAC,kBAAA,GAAA,IAAA,YAAA,GAAA,GAAA,IAAA,oBAgBZ,IAAA,UAAA,EAAA,KAAA,GAAA,EAAA,CAdD,mBAAA,UAAA,GAAA,IAAA,YAAA,GAAA,GAAA,IAAA,aAME,gBAAA,kBAAA,GAAA,IAAA,YAAA;;OALR,KAAI;SACI,iBAAA,OAAgB,EACvB,SAAK,OAAA,OAAA,OAAA,MAAA,YAAA,GAAA,IAAA,OAAE,KAAI,CAAA,QAAA,GAAA,CAAA,EAAA;uCAEqC,EAAA,GAAA,IAAA,YAAA,KAAA,QAAA,iBAAA,GAAA,IAAA,iBAAA,GAAA,IAAA,oBAAf,YAAA,MAAW,CAAA,CAAA,CAAA,CAAA;;4DAQ7C,qBAAA,uBAAA,GAAA,IAAA,YAAA;;OAJA,KAAI;OACH,eAAA,GAAA,IAAA,OAAY,MAAK,CAAC;SACX,iBAAA,OAAgB,EACvB,SAAK,OAAA,OAAA,OAAA,MAAA,YAAA,GAAA,IAAA,OAAE,KAAI,CAAA,QAAA,GAAA,CAAA,EAAA,MAAA,IAAA,CAAA,aAAA,CAAA,EAAA,EAAA,GAAA,KAAA,GAAA,IAAA,oBAAA,IAAA,KAAA,CAAA,CAAA,CAAA,EAAA,GAAA,KAAA,GAAA,IAAA,oBAAA,IAAA,KAAA;kCAOd,QAAA,GAAA,IAAA,YAAA,EAFD,OAAK,CAAC,mBAAA,GAAA,IAAA,OAAyB,MAAK,CAAC,UAAS,EAAA,GAAA,GAAA,IAAA,OAAU,MAAK,CAAC,UAAS,EAAA,EAAA,GAAA,IAAA,YAC7C,KAAA,QAAA,YAAA,GAAA,IAAA,iBAAA,GAAA,IAAA,oBAAf,YAAA,MAAW,CAAA,CAAA,CAAA,EAAA,GAAA;MAEhB,cAAA,UAAA,GAAA,IAAA,YAAA,GAAA,GAAA,IAAA,oBAEL,OAAA;;OAFqB,QAAA,GAAA,IAAA,iBAAA,GAAA,IAAA,OAAO,MAAK,CAAC,YAAA;8BACK,KAAA,QAAA,WAAA,GAAA,IAAA,iBAAA,GAAA,IAAA,oBAAf,YAAA,MAAW,CAAA,CAAA,CAAA,EAAA,EAAA,KAAA,GAAA,IAAA,oBAAA,IAAA,KAAA;qEAInC,cAAa,KAAA,GAAA,IAAA,YAAA,GAAA,GAAA,IAAA,oBAKnB,OAAA;;MAJA,KAAI;MACH,QAAA,GAAA,IAAA,gBAAO,sBAAqB;MAC7B,UAAS;MACT,OAAA;OAAA,SAAA;OAAA,UAAA;OAAA,YAAA;;2GA3DkB,QAAO,MAAA,GAAA,IAAA,OAAM,cAAa,KAAA,GAAA,IAAA,OAAI,MAAK,CAAC,iBAAa,EAAA,GAAA,IAAA,OAAM,MAAK,CAAC,kBAA6B,mBAAA,MAAA,CAAA,CAAA,CAAA,CAAA;;iFA+DrG,MAAK,CAAC,cAAA,GAAA,IAAA,YAYZ,KAAA,QAAA,aAAA,GAAA,IAAA,iBAAA,GAAA,IAAA,YAAA,EAAA,KAAA,GAAA,EAZgD,YAAA,MAAW,CAAA,QAY3D,EAAA,GAAA,IAAA,OAXa,kBAAiB,KAAA,GAAA,IAAA,YAAA,GAAA,GAAA,IAAA,aAUtB,IAAA,aAAA,GAAA,IAAA,iBAAA,GAAA,IAAA,YAAA,EAAA,KAAA,GAAA,GAAA,GAAA,IAAA,OAVgC,wBAAuB,CAAA,CAAA,EAAA;qCAShE,EAAA,GAAA,IAAA,iBAAA,GAAA,IAAA,oBAAA,OAAA;MANA,QAAA,GAAA,IAAA,gBAAK,CAAC,sBAAoB;6BACG,oBAAmB;4BAAoB,gBAAe,KAAA,GAAA,IAAA,OAAI,oBAAA;;MAItF,SAAK,OAAA,OAAA,OAAA,MAAA,YAAA,GAAA,IAAA,OAAE,KAAI,CAAA,WAAA;+BANJ,aAAA,MAAY,CAAA,CAAA,CAAA,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BOffcanvas-DmkJSSFy.mjs","names":["$attrs"],"sources":["../src/components/BOffcanvas/BOffcanvas.vue","../src/components/BOffcanvas/BOffcanvas.vue"],"sourcesContent":["<template>\n <ConditionalTeleport\n :to=\"props.teleportTo\"\n :disabled=\"props.teleportDisabled || isOpenByBreakpoint\"\n >\n <Transition\n v-if=\"renderRef || contentShowing || isOpenByBreakpoint\"\n v-bind=\"transitionProps\"\n :appear=\"modelValue || props.visible\"\n >\n <div\n v-show=\"\n (showRef && ((backdropReady && props.backdropFirst) || !props.backdropFirst)) ||\n isOpenByBreakpoint\n \"\n :id=\"computedId\"\n ref=\"_element\"\n aria-modal=\"true\"\n role=\"dialog\"\n :class=\"computedClasses\"\n :style=\"computedStyles\"\n tabindex=\"-1\"\n :aria-labelledby=\"`${computedId}-offcanvas-label`\"\n data-bs-backdrop=\"false\"\n v-bind=\"$attrs\"\n >\n <template v-if=\"contentShowing || isOpenByBreakpoint\">\n <div\n v-if=\"!props.noHeader\"\n class=\"offcanvas-header\"\n :class=\"props.headerClass\"\n v-bind=\"props.headerAttrs\"\n >\n <slot name=\"header\" v-bind=\"sharedSlots\">\n <h5 :id=\"`${computedId}-offcanvas-label`\" class=\"offcanvas-title\">\n <slot name=\"title\" v-bind=\"sharedSlots\">\n {{ props.title }}\n </slot>\n </h5>\n <template v-if=\"!props.noHeaderClose\">\n <BButton\n v-if=\"hasHeaderCloseSlot\"\n ref=\"_close\"\n v-bind=\"headerCloseAttrs\"\n @click=\"hide('close')\"\n >\n <slot name=\"header-close\" v-bind=\"sharedSlots\" />\n </BButton>\n <BCloseButton\n v-else\n ref=\"_close\"\n :aria-label=\"props.headerCloseLabel\"\n v-bind=\"headerCloseAttrs\"\n @click=\"hide('close')\"\n />\n </template>\n </slot>\n </div>\n <div class=\"offcanvas-body\" :class=\"props.bodyClass\" v-bind=\"props.bodyAttrs\">\n <slot v-bind=\"sharedSlots\" />\n </div>\n <div v-if=\"hasFooterSlot\" :class=\"props.footerClass\">\n <slot name=\"footer\" v-bind=\"sharedSlots\" />\n </div>\n </template>\n <div\n v-if=\"needsFallback\"\n ref=\"_fallbackFocusElement\"\n :class=\"fallbackClassSelector\"\n tabindex=\"0\"\n style=\"width: 0; height: 0; overflow: hidden\"\n />\n </div>\n </Transition>\n <slot v-if=\"!props.noBackdrop\" name=\"backdrop\" v-bind=\"sharedSlots\">\n <Transition v-if=\"renderBackdropRef\" v-bind=\"backdropTransitionProps\">\n <div\n v-show=\"showBackdrop\"\n class=\"offcanvas-backdrop\"\n :class=\"{\n fade: !computedNoAnimation,\n show: backdropVisible || computedNoAnimation,\n }\"\n @click=\"hide('backdrop')\"\n />\n </Transition>\n </slot>\n </ConditionalTeleport>\n</template>\n\n<script setup lang=\"ts\">\nimport {breakpointsBootstrapV5, onKeyStroke, unrefElement, useBreakpoints} from '@vueuse/core'\nimport {useActivatedFocusTrap} from '../../composables/useActivatedFocusTrap'\nimport {computed, type EmitFn, nextTick, onMounted, ref, useTemplateRef, watch} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useId} from '../../composables/useId'\nimport type {BOffcanvasProps} from '../../types/ComponentProps'\nimport type {BOffcanvasEmits} from '../../types/ComponentEmits'\nimport type {BOffcanvasSlots, BOffcanvasSlotsData} from '../../types/ComponentSlots'\nimport BButton from '../BButton/BButton.vue'\nimport BCloseButton from '../BButton/BCloseButton.vue'\nimport ConditionalTeleport from '../ConditionalTeleport.vue'\nimport {useSafeScrollLock} from '../../composables/useSafeScrollLock'\nimport {isEmptySlot} from '../../utils/dom'\nimport {useShowHide} from '../../composables/useShowHide'\nimport {getElement} from '../../utils/getElement'\n\n// TODO once the responsive stuff may be implemented correctly,\n// What needs to occur is a fixing of the \"body scrolling\".\n// If the offcanvas is on the screen on a large screen, body scrolling is not disabled\n// Even though the modelValue is true\n// When it's a small screen and close, it works, as normal,\n// But then when it opens up on a small screen, it must disable again\n// This is implemented on Layout.vue, but is not officially supported.\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<Omit<BOffcanvasProps, 'modelValue'>>(), {\n backdropFirst: false,\n bodyAttrs: undefined,\n bodyClass: undefined,\n bodyScrolling: false,\n focus: undefined,\n footerClass: undefined,\n headerAttrs: undefined,\n headerClass: undefined,\n headerCloseClass: undefined,\n headerCloseLabel: 'Close',\n headerCloseVariant: 'secondary',\n id: undefined,\n initialAnimation: false,\n lazy: false,\n noAnimation: false,\n noBackdrop: false,\n noCloseOnBackdrop: false,\n noCloseOnEsc: false,\n noTrap: false,\n noHeader: false,\n noHeaderClose: false,\n unmountLazy: false,\n placement: 'start',\n shadow: false,\n teleportDisabled: false,\n teleportTo: 'body',\n title: undefined,\n show: false,\n width: undefined,\n visible: false,\n})\nconst props = useDefaults(_props, 'BOffcanvas')\nconst emit = defineEmits<BOffcanvasEmits>()\nconst slots = defineSlots<BOffcanvasSlots>()\n\nconst modelValue = defineModel<Exclude<BOffcanvasProps['modelValue'], undefined>>({\n default: false,\n})\n\nconst computedId = useId(() => props.id, 'offcanvas')\n\nconst element = useTemplateRef<HTMLElement | null>('_element')\nconst fallbackFocusElement = useTemplateRef<HTMLElement | null>('_fallbackFocusElement')\nconst closeButton = useTemplateRef<HTMLElement | null>('_close')\n\nconst pickFocusItem = () => {\n if (props.focus && typeof props.focus !== 'boolean') {\n if (props.focus === 'close') {\n return closeButton\n }\n return getElement(props.focus, element.value ?? undefined)\n }\n return element\n}\n\nconst onAfterEnter = () => {\n nextTick(() => {\n if (props.focus !== false && !isOpenByBreakpoint.value && props.noTrap) {\n const focusElement = unrefElement(pickFocusItem())\n focusElement?.focus()\n }\n })\n}\n\nconst {\n showRef,\n renderRef,\n renderBackdropRef,\n hide,\n show,\n toggle,\n computedNoAnimation,\n contentShowing,\n transitionProps,\n backdropReady,\n backdropTransitionProps,\n backdropVisible,\n isVisible,\n buildTriggerableEvent,\n isLeaving,\n trapActive,\n setLocalNoAnimation,\n} = useShowHide(modelValue, props, emit as EmitFn, element, computedId, {\n transitionProps: {\n onAfterEnter,\n enterToClass: 'showing',\n leaveToClass: 'hiding',\n enterActiveClass: '',\n leaveActiveClass: '',\n enterFromClass: '',\n leaveFromClass: '',\n },\n})\n\nconst breakpoints = useBreakpoints(breakpointsBootstrapV5)\nconst smallerOrEqualToBreakpoint = breakpoints.smallerOrEqual(() => props.responsive ?? 'xs')\n// Initialize with SSR-safe default value to prevent hydration mismatches\n// The actual breakpoint evaluation is deferred to onMounted (client-side only)\nconst isOpenByBreakpoint = ref(false)\n\nonMounted(() => {\n if (props.responsive !== undefined) {\n // Update the breakpoint state after mounting (client-side only)\n isOpenByBreakpoint.value = !smallerOrEqualToBreakpoint.value\n emit('breakpoint', buildTriggerableEvent('breakpoint'), isOpenByBreakpoint.value)\n }\n})\n\nuseSafeScrollLock(showRef, () => props.bodyScrolling || isOpenByBreakpoint.value)\n\nonKeyStroke(\n 'Escape',\n () => {\n hide('esc')\n },\n {target: element, passive: true}\n)\n\nconst fallbackClassSelector = 'offcanvas-fallback-focus'\n\nconst {needsFallback} = useActivatedFocusTrap({\n element,\n isActive: trapActive,\n noTrap: () => props.noTrap || isOpenByBreakpoint.value,\n fallbackFocus: {\n classSelector: fallbackClassSelector,\n ref: fallbackFocusElement,\n },\n focus: () =>\n props.focus === false || isOpenByBreakpoint.value\n ? false\n : (unrefElement(pickFocusItem()) ?? undefined),\n})\n\nconst showBackdrop = computed(\n () =>\n (props.responsive === undefined || !isOpenByBreakpoint.value) &&\n props.noBackdrop === false &&\n (showRef.value === true ||\n (isLeaving.value && props.backdropFirst && !computedNoAnimation.value))\n)\n\nconst hasHeaderCloseSlot = computed(() => !isEmptySlot(slots['header-close']))\nconst headerCloseClasses = computed(() => [\n {'text-reset': !hasHeaderCloseSlot.value},\n props.headerCloseClass,\n])\nconst headerCloseAttrs = computed(() => ({\n variant: hasHeaderCloseSlot.value ? props.headerCloseVariant : undefined,\n class: headerCloseClasses.value,\n}))\n\nconst hasFooterSlot = computed(() => !isEmptySlot(slots.footer))\nconst computedClasses = computed(() => [\n props.responsive === undefined ? 'offcanvas' : `offcanvas-${props.responsive}`,\n `offcanvas-${props.placement}`,\n {\n 'show': isVisible.value,\n [`shadow-${props.shadow}`]: !!props.shadow,\n 'no-transition': computedNoAnimation.value,\n },\n])\n\nconst computedStyles = computed(() => ({\n width: props.width,\n}))\n\nconst sharedSlots = computed<BOffcanvasSlotsData>(() => ({\n visible: isVisible.value,\n placement: props.placement,\n hide,\n show,\n toggle,\n id: computedId.value,\n active: trapActive.value,\n}))\n\nwatch(smallerOrEqualToBreakpoint, (newValue) => {\n if (props.responsive === undefined) return\n if (newValue === true) {\n const opened = false\n setLocalNoAnimation(true)\n requestAnimationFrame(() => {\n isOpenByBreakpoint.value = opened\n })\n emit('breakpoint', buildTriggerableEvent('breakpoint'), opened)\n emit('hide', buildTriggerableEvent('hide'))\n } else {\n const opened = true\n setLocalNoAnimation(true)\n requestAnimationFrame(() => {\n isOpenByBreakpoint.value = opened\n })\n emit('breakpoint', buildTriggerableEvent('breakpoint'), opened)\n emit('show', buildTriggerableEvent('show'))\n }\n})\n\ndefineExpose({\n hide,\n show,\n toggle,\n isOpenByBreakpoint,\n})\n</script>\n","<template>\n <ConditionalTeleport\n :to=\"props.teleportTo\"\n :disabled=\"props.teleportDisabled || isOpenByBreakpoint\"\n >\n <Transition\n v-if=\"renderRef || contentShowing || isOpenByBreakpoint\"\n v-bind=\"transitionProps\"\n :appear=\"modelValue || props.visible\"\n >\n <div\n v-show=\"\n (showRef && ((backdropReady && props.backdropFirst) || !props.backdropFirst)) ||\n isOpenByBreakpoint\n \"\n :id=\"computedId\"\n ref=\"_element\"\n aria-modal=\"true\"\n role=\"dialog\"\n :class=\"computedClasses\"\n :style=\"computedStyles\"\n tabindex=\"-1\"\n :aria-labelledby=\"`${computedId}-offcanvas-label`\"\n data-bs-backdrop=\"false\"\n v-bind=\"$attrs\"\n >\n <template v-if=\"contentShowing || isOpenByBreakpoint\">\n <div\n v-if=\"!props.noHeader\"\n class=\"offcanvas-header\"\n :class=\"props.headerClass\"\n v-bind=\"props.headerAttrs\"\n >\n <slot name=\"header\" v-bind=\"sharedSlots\">\n <h5 :id=\"`${computedId}-offcanvas-label`\" class=\"offcanvas-title\">\n <slot name=\"title\" v-bind=\"sharedSlots\">\n {{ props.title }}\n </slot>\n </h5>\n <template v-if=\"!props.noHeaderClose\">\n <BButton\n v-if=\"hasHeaderCloseSlot\"\n ref=\"_close\"\n v-bind=\"headerCloseAttrs\"\n @click=\"hide('close')\"\n >\n <slot name=\"header-close\" v-bind=\"sharedSlots\" />\n </BButton>\n <BCloseButton\n v-else\n ref=\"_close\"\n :aria-label=\"props.headerCloseLabel\"\n v-bind=\"headerCloseAttrs\"\n @click=\"hide('close')\"\n />\n </template>\n </slot>\n </div>\n <div class=\"offcanvas-body\" :class=\"props.bodyClass\" v-bind=\"props.bodyAttrs\">\n <slot v-bind=\"sharedSlots\" />\n </div>\n <div v-if=\"hasFooterSlot\" :class=\"props.footerClass\">\n <slot name=\"footer\" v-bind=\"sharedSlots\" />\n </div>\n </template>\n <div\n v-if=\"needsFallback\"\n ref=\"_fallbackFocusElement\"\n :class=\"fallbackClassSelector\"\n tabindex=\"0\"\n style=\"width: 0; height: 0; overflow: hidden\"\n />\n </div>\n </Transition>\n <slot v-if=\"!props.noBackdrop\" name=\"backdrop\" v-bind=\"sharedSlots\">\n <Transition v-if=\"renderBackdropRef\" v-bind=\"backdropTransitionProps\">\n <div\n v-show=\"showBackdrop\"\n class=\"offcanvas-backdrop\"\n :class=\"{\n fade: !computedNoAnimation,\n show: backdropVisible || computedNoAnimation,\n }\"\n @click=\"hide('backdrop')\"\n />\n </Transition>\n </slot>\n </ConditionalTeleport>\n</template>\n\n<script setup lang=\"ts\">\nimport {breakpointsBootstrapV5, onKeyStroke, unrefElement, useBreakpoints} from '@vueuse/core'\nimport {useActivatedFocusTrap} from '../../composables/useActivatedFocusTrap'\nimport {computed, type EmitFn, nextTick, onMounted, ref, useTemplateRef, watch} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useId} from '../../composables/useId'\nimport type {BOffcanvasProps} from '../../types/ComponentProps'\nimport type {BOffcanvasEmits} from '../../types/ComponentEmits'\nimport type {BOffcanvasSlots, BOffcanvasSlotsData} from '../../types/ComponentSlots'\nimport BButton from '../BButton/BButton.vue'\nimport BCloseButton from '../BButton/BCloseButton.vue'\nimport ConditionalTeleport from '../ConditionalTeleport.vue'\nimport {useSafeScrollLock} from '../../composables/useSafeScrollLock'\nimport {isEmptySlot} from '../../utils/dom'\nimport {useShowHide} from '../../composables/useShowHide'\nimport {getElement} from '../../utils/getElement'\n\n// TODO once the responsive stuff may be implemented correctly,\n// What needs to occur is a fixing of the \"body scrolling\".\n// If the offcanvas is on the screen on a large screen, body scrolling is not disabled\n// Even though the modelValue is true\n// When it's a small screen and close, it works, as normal,\n// But then when it opens up on a small screen, it must disable again\n// This is implemented on Layout.vue, but is not officially supported.\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<Omit<BOffcanvasProps, 'modelValue'>>(), {\n backdropFirst: false,\n bodyAttrs: undefined,\n bodyClass: undefined,\n bodyScrolling: false,\n focus: undefined,\n footerClass: undefined,\n headerAttrs: undefined,\n headerClass: undefined,\n headerCloseClass: undefined,\n headerCloseLabel: 'Close',\n headerCloseVariant: 'secondary',\n id: undefined,\n initialAnimation: false,\n lazy: false,\n noAnimation: false,\n noBackdrop: false,\n noCloseOnBackdrop: false,\n noCloseOnEsc: false,\n noTrap: false,\n noHeader: false,\n noHeaderClose: false,\n unmountLazy: false,\n placement: 'start',\n shadow: false,\n teleportDisabled: false,\n teleportTo: 'body',\n title: undefined,\n show: false,\n width: undefined,\n visible: false,\n})\nconst props = useDefaults(_props, 'BOffcanvas')\nconst emit = defineEmits<BOffcanvasEmits>()\nconst slots = defineSlots<BOffcanvasSlots>()\n\nconst modelValue = defineModel<Exclude<BOffcanvasProps['modelValue'], undefined>>({\n default: false,\n})\n\nconst computedId = useId(() => props.id, 'offcanvas')\n\nconst element = useTemplateRef<HTMLElement | null>('_element')\nconst fallbackFocusElement = useTemplateRef<HTMLElement | null>('_fallbackFocusElement')\nconst closeButton = useTemplateRef<HTMLElement | null>('_close')\n\nconst pickFocusItem = () => {\n if (props.focus && typeof props.focus !== 'boolean') {\n if (props.focus === 'close') {\n return closeButton\n }\n return getElement(props.focus, element.value ?? undefined)\n }\n return element\n}\n\nconst onAfterEnter = () => {\n nextTick(() => {\n if (props.focus !== false && !isOpenByBreakpoint.value && props.noTrap) {\n const focusElement = unrefElement(pickFocusItem())\n focusElement?.focus()\n }\n })\n}\n\nconst {\n showRef,\n renderRef,\n renderBackdropRef,\n hide,\n show,\n toggle,\n computedNoAnimation,\n contentShowing,\n transitionProps,\n backdropReady,\n backdropTransitionProps,\n backdropVisible,\n isVisible,\n buildTriggerableEvent,\n isLeaving,\n trapActive,\n setLocalNoAnimation,\n} = useShowHide(modelValue, props, emit as EmitFn, element, computedId, {\n transitionProps: {\n onAfterEnter,\n enterToClass: 'showing',\n leaveToClass: 'hiding',\n enterActiveClass: '',\n leaveActiveClass: '',\n enterFromClass: '',\n leaveFromClass: '',\n },\n})\n\nconst breakpoints = useBreakpoints(breakpointsBootstrapV5)\nconst smallerOrEqualToBreakpoint = breakpoints.smallerOrEqual(() => props.responsive ?? 'xs')\n// Initialize with SSR-safe default value to prevent hydration mismatches\n// The actual breakpoint evaluation is deferred to onMounted (client-side only)\nconst isOpenByBreakpoint = ref(false)\n\nonMounted(() => {\n if (props.responsive !== undefined) {\n // Update the breakpoint state after mounting (client-side only)\n isOpenByBreakpoint.value = !smallerOrEqualToBreakpoint.value\n emit('breakpoint', buildTriggerableEvent('breakpoint'), isOpenByBreakpoint.value)\n }\n})\n\nuseSafeScrollLock(showRef, () => props.bodyScrolling || isOpenByBreakpoint.value)\n\nonKeyStroke(\n 'Escape',\n () => {\n hide('esc')\n },\n {target: element, passive: true}\n)\n\nconst fallbackClassSelector = 'offcanvas-fallback-focus'\n\nconst {needsFallback} = useActivatedFocusTrap({\n element,\n isActive: trapActive,\n noTrap: () => props.noTrap || isOpenByBreakpoint.value,\n fallbackFocus: {\n classSelector: fallbackClassSelector,\n ref: fallbackFocusElement,\n },\n focus: () =>\n props.focus === false || isOpenByBreakpoint.value\n ? false\n : (unrefElement(pickFocusItem()) ?? undefined),\n})\n\nconst showBackdrop = computed(\n () =>\n (props.responsive === undefined || !isOpenByBreakpoint.value) &&\n props.noBackdrop === false &&\n (showRef.value === true ||\n (isLeaving.value && props.backdropFirst && !computedNoAnimation.value))\n)\n\nconst hasHeaderCloseSlot = computed(() => !isEmptySlot(slots['header-close']))\nconst headerCloseClasses = computed(() => [\n {'text-reset': !hasHeaderCloseSlot.value},\n props.headerCloseClass,\n])\nconst headerCloseAttrs = computed(() => ({\n variant: hasHeaderCloseSlot.value ? props.headerCloseVariant : undefined,\n class: headerCloseClasses.value,\n}))\n\nconst hasFooterSlot = computed(() => !isEmptySlot(slots.footer))\nconst computedClasses = computed(() => [\n props.responsive === undefined ? 'offcanvas' : `offcanvas-${props.responsive}`,\n `offcanvas-${props.placement}`,\n {\n 'show': isVisible.value,\n [`shadow-${props.shadow}`]: !!props.shadow,\n 'no-transition': computedNoAnimation.value,\n },\n])\n\nconst computedStyles = computed(() => ({\n width: props.width,\n}))\n\nconst sharedSlots = computed<BOffcanvasSlotsData>(() => ({\n visible: isVisible.value,\n placement: props.placement,\n hide,\n show,\n toggle,\n id: computedId.value,\n active: trapActive.value,\n}))\n\nwatch(smallerOrEqualToBreakpoint, (newValue) => {\n if (props.responsive === undefined) return\n if (newValue === true) {\n const opened = false\n setLocalNoAnimation(true)\n requestAnimationFrame(() => {\n isOpenByBreakpoint.value = opened\n })\n emit('breakpoint', buildTriggerableEvent('breakpoint'), opened)\n emit('hide', buildTriggerableEvent('hide'))\n } else {\n const opened = true\n setLocalNoAnimation(true)\n requestAnimationFrame(() => {\n isOpenByBreakpoint.value = opened\n })\n emit('breakpoint', buildTriggerableEvent('breakpoint'), opened)\n emit('show', buildTriggerableEvent('show'))\n }\n})\n\ndefineExpose({\n hide,\n show,\n toggle,\n isOpenByBreakpoint,\n})\n</script>\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BOverlay-B7vJAdHO.js","names":[],"sources":["../src/composables/useTransitions.ts","../src/components/BOverlay/BOverlay.vue","../src/components/BOverlay/BOverlay.vue"],"sourcesContent":["import {computed, type MaybeRefOrGetter, toValue, type TransitionProps} from 'vue'\n\nconst NO_FADE_PROPS = {\n name: '',\n enterActiveClass: '',\n enterToClass: '',\n leaveActiveClass: '',\n leaveToClass: 'showing',\n enterFromClass: 'showing',\n leaveFromClass: '',\n} as const satisfies TransitionProps\nconst FADE_PROPS = {\n ...NO_FADE_PROPS,\n enterActiveClass: 'fade showing',\n leaveActiveClass: 'fade showing',\n} as const satisfies TransitionProps\n\nexport const useFadeTransition = (fade: MaybeRefOrGetter<boolean>) =>\n computed(() => (toValue(fade) ? FADE_PROPS : NO_FADE_PROPS))\n","<template>\n <ConditionalWrapper\n :tag=\"props.wrapTag\"\n class=\"b-overlay-wrap position-relative\"\n :aria-busy=\"computedAriaBusy\"\n :skip=\"props.noWrap\"\n >\n <slot />\n <Transition\n v-bind=\"fadeTransitions\"\n enter-to-class=\"show\"\n name=\"fade\"\n @after-enter=\"emit('shown')\"\n @after-leave=\"emit('hidden')\"\n >\n <component\n :is=\"props.overlayTag\"\n v-if=\"props.show\"\n class=\"b-overlay\"\n :class=\"overlayClasses\"\n :style=\"overlayStyles\"\n @click=\"emit('click', $event)\"\n >\n <div class=\"position-absolute\" :class=\"blurClasses\" :style=\"blurStyles\" />\n\n <div class=\"position-absolute\" :style=\"spinWrapperStyles\">\n <slot name=\"overlay\" v-bind=\"spinnerAttrs\">\n <BSpinner v-if=\"!props.noSpinner\" v-bind=\"spinnerAttrs\" />\n </slot>\n </div>\n </component>\n </Transition>\n </ConditionalWrapper>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed} from 'vue'\nimport type {BOverlayProps} from '../../types/ComponentProps'\nimport {useDefaults} from '../../composables/useDefaults'\nimport BSpinner from '../BSpinner/BSpinner.vue'\nimport ConditionalWrapper from '../ConditionalWrapper.vue'\nimport {useRadiusElementClasses} from '../../composables/useRadiusElementClasses'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport type {BgColorVariant} from '../../types/ColorTypes'\nimport {useFadeTransition} from '../../composables/useTransitions'\nimport type {BOverlayEmits, BOverlaySlots} from '../../types'\n\nconst _props = withDefaults(defineProps<BOverlayProps>(), {\n bgColor: undefined,\n blur: '2px',\n fixed: false,\n noCenter: false,\n noFade: false,\n noSpinner: false,\n noWrap: false,\n opacity: 0.85,\n overlayTag: 'div',\n show: false,\n spinnerSmall: false,\n spinnerType: 'border',\n spinnerVariant: undefined,\n variant: 'light',\n wrapTag: 'div',\n zIndex: 10,\n // RadiusElementExtendables props\n rounded: false,\n roundedBottom: undefined,\n roundedEnd: undefined,\n roundedStart: undefined,\n roundedTop: undefined,\n // End RadiusElementExtendables props\n})\nconst props = useDefaults(_props, 'BOverlay')\nconst emit = defineEmits<BOverlayEmits>()\ndefineSlots<BOverlaySlots>()\n\nconst positionStyles = {top: 0, left: 0, bottom: 0, right: 0} as const\n\nconst fadeTransitions = useFadeTransition(() => !props.noFade)\n\nconst radiusElementClasses = useRadiusElementClasses(() => ({\n rounded: props.rounded,\n roundedTop: props.roundedTop,\n roundedBottom: props.roundedBottom,\n roundedStart: props.roundedStart,\n roundedEnd: props.roundedEnd,\n}))\n\nconst computedAriaBusy = computed(() => (props.show ? true : null))\n\nconst spinnerAttrs = computed(() => ({\n type: props.spinnerType,\n variant: props.spinnerVariant,\n small: props.spinnerSmall,\n}))\n\nconst overlayStyles = computed(() => ({\n ...positionStyles,\n zIndex: props.zIndex || 10,\n}))\n\nconst overlayClasses = computed(() => ({\n 'position-absolute': !props.noWrap || !props.fixed,\n 'position-fixed': props.noWrap && props.fixed,\n}))\n\nconst colorClasses = useColorVariantClasses(\n computed(() => ({\n bgVariant: props.variant !== null && !props.bgColor ? (props.variant as BgColorVariant) : null,\n }))\n)\nconst blurClasses = computed(() => [colorClasses.value, radiusElementClasses.value])\n\nconst blurStyles = computed(() => ({\n ...positionStyles,\n opacity: props.opacity,\n backgroundColor: props.bgColor || undefined,\n backdropFilter:\n props.blur && !props.bgColor && (props.variant === 'white' || props.variant === 'transparent')\n ? `blur(${props.blur})`\n : undefined,\n}))\n\nconst spinWrapperStyles = computed(() =>\n props.noCenter\n ? positionStyles\n : {\n top: '50%',\n left: '50%',\n transform: 'translateX(-50%) translateY(-50%)',\n }\n)\n</script>\n","<template>\n <ConditionalWrapper\n :tag=\"props.wrapTag\"\n class=\"b-overlay-wrap position-relative\"\n :aria-busy=\"computedAriaBusy\"\n :skip=\"props.noWrap\"\n >\n <slot />\n <Transition\n v-bind=\"fadeTransitions\"\n enter-to-class=\"show\"\n name=\"fade\"\n @after-enter=\"emit('shown')\"\n @after-leave=\"emit('hidden')\"\n >\n <component\n :is=\"props.overlayTag\"\n v-if=\"props.show\"\n class=\"b-overlay\"\n :class=\"overlayClasses\"\n :style=\"overlayStyles\"\n @click=\"emit('click', $event)\"\n >\n <div class=\"position-absolute\" :class=\"blurClasses\" :style=\"blurStyles\" />\n\n <div class=\"position-absolute\" :style=\"spinWrapperStyles\">\n <slot name=\"overlay\" v-bind=\"spinnerAttrs\">\n <BSpinner v-if=\"!props.noSpinner\" v-bind=\"spinnerAttrs\" />\n </slot>\n </div>\n </component>\n </Transition>\n </ConditionalWrapper>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed} from 'vue'\nimport type {BOverlayProps} from '../../types/ComponentProps'\nimport {useDefaults} from '../../composables/useDefaults'\nimport BSpinner from '../BSpinner/BSpinner.vue'\nimport ConditionalWrapper from '../ConditionalWrapper.vue'\nimport {useRadiusElementClasses} from '../../composables/useRadiusElementClasses'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport type {BgColorVariant} from '../../types/ColorTypes'\nimport {useFadeTransition} from '../../composables/useTransitions'\nimport type {BOverlayEmits, BOverlaySlots} from '../../types'\n\nconst _props = withDefaults(defineProps<BOverlayProps>(), {\n bgColor: undefined,\n blur: '2px',\n fixed: false,\n noCenter: false,\n noFade: false,\n noSpinner: false,\n noWrap: false,\n opacity: 0.85,\n overlayTag: 'div',\n show: false,\n spinnerSmall: false,\n spinnerType: 'border',\n spinnerVariant: undefined,\n variant: 'light',\n wrapTag: 'div',\n zIndex: 10,\n // RadiusElementExtendables props\n rounded: false,\n roundedBottom: undefined,\n roundedEnd: undefined,\n roundedStart: undefined,\n roundedTop: undefined,\n // End RadiusElementExtendables props\n})\nconst props = useDefaults(_props, 'BOverlay')\nconst emit = defineEmits<BOverlayEmits>()\ndefineSlots<BOverlaySlots>()\n\nconst positionStyles = {top: 0, left: 0, bottom: 0, right: 0} as const\n\nconst fadeTransitions = useFadeTransition(() => !props.noFade)\n\nconst radiusElementClasses = useRadiusElementClasses(() => ({\n rounded: props.rounded,\n roundedTop: props.roundedTop,\n roundedBottom: props.roundedBottom,\n roundedStart: props.roundedStart,\n roundedEnd: props.roundedEnd,\n}))\n\nconst computedAriaBusy = computed(() => (props.show ? true : null))\n\nconst spinnerAttrs = computed(() => ({\n type: props.spinnerType,\n variant: props.spinnerVariant,\n small: props.spinnerSmall,\n}))\n\nconst overlayStyles = computed(() => ({\n ...positionStyles,\n zIndex: props.zIndex || 10,\n}))\n\nconst overlayClasses = computed(() => ({\n 'position-absolute': !props.noWrap || !props.fixed,\n 'position-fixed': props.noWrap && props.fixed,\n}))\n\nconst colorClasses = useColorVariantClasses(\n computed(() => ({\n bgVariant: props.variant !== null && !props.bgColor ? (props.variant as BgColorVariant) : null,\n }))\n)\nconst blurClasses = computed(() => [colorClasses.value, radiusElementClasses.value])\n\nconst blurStyles = computed(() => ({\n ...positionStyles,\n opacity: props.opacity,\n backgroundColor: props.bgColor || undefined,\n backdropFilter:\n props.blur && !props.bgColor && (props.variant === 'white' || props.variant === 'transparent')\n ? `blur(${props.blur})`\n : undefined,\n}))\n\nconst spinWrapperStyles = computed(() =>\n props.noCenter\n ? positionStyles\n : {\n top: '50%',\n left: '50%',\n transform: 'translateX(-50%) translateY(-50%)',\n }\n)\n</script>\n"],"mappings":";;;;;;;;AAEA,IAAM,gBAAgB;CACpB,MAAM;CACN,kBAAkB;CAClB,cAAc;CACd,kBAAkB;CAClB,cAAc;CACd,gBAAgB;CAChB,gBAAgB;CACjB;AACD,IAAM,aAAa;CACjB,GAAG;CACH,kBAAkB;CAClB,kBAAkB;CACnB;AAED,IAAa,qBAAqB,UAAA,GAAA,IAAA,iBAAA,GAAA,IAAA,SACR,KAAK,GAAG,aAAa,cAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ECsD9D,MAAM,QAAQ,oBAAA,YAzBC,SAyBmB,WAAU;EAC5C,MAAM,OAAO;EAGb,MAAM,iBAAiB;GAAC,KAAK;GAAG,MAAM;GAAG,QAAQ;GAAG,OAAO;GAAE;EAE7D,MAAM,kBAAkB,wBAAwB,CAAC,MAAM,OAAM;EAE7D,MAAM,uBAAuB,gCAAA,+BAA+B;GAC1D,SAAS,MAAM;GACf,YAAY,MAAM;GAClB,eAAe,MAAM;GACrB,cAAc,MAAM;GACpB,YAAY,MAAM;GACnB,EAAC;EAEF,MAAM,oBAAA,GAAA,IAAA,gBAAmC,MAAM,OAAO,OAAO,KAAK;EAElE,MAAM,gBAAA,GAAA,IAAA,iBAA+B;GACnC,MAAM,MAAM;GACZ,SAAS,MAAM;GACf,OAAO,MAAM;GACd,EAAC;EAEF,MAAM,iBAAA,GAAA,IAAA,iBAAgC;GACpC,GAAG;GACH,QAAQ,MAAM,UAAU;GACzB,EAAC;EAEF,MAAM,kBAAA,GAAA,IAAA,iBAAiC;GACrC,qBAAqB,CAAC,MAAM,UAAU,CAAC,MAAM;GAC7C,kBAAkB,MAAM,UAAU,MAAM;GACzC,EAAC;EAEF,MAAM,eAAe,+BAAA,wBAAA,GAAA,IAAA,iBACH,EACd,WAAW,MAAM,YAAY,QAAQ,CAAC,MAAM,UAAW,MAAM,UAA6B,MAC3F,EAAC,CACJ;EACA,MAAM,eAAA,GAAA,IAAA,gBAA6B,CAAC,aAAa,OAAO,qBAAqB,MAAM,CAAA;EAEnF,MAAM,cAAA,GAAA,IAAA,iBAA6B;GACjC,GAAG;GACH,SAAS,MAAM;GACf,iBAAiB,MAAM,WAAW,KAAA;GAClC,gBACE,MAAM,QAAQ,CAAC,MAAM,YAAY,MAAM,YAAY,WAAW,MAAM,YAAY,iBAC5E,QAAQ,MAAM,KAAK,KACnB,KAAA;GACP,EAAC;EAEF,MAAM,qBAAA,GAAA,IAAA,gBACJ,MAAM,WACF,iBACA;GACE,KAAK;GACL,MAAM;GACN,WAAW;GACb,CACN;;qDAnGuB,2BAAA,4BAAA;IA9BlB,MAAA,GAAA,IAAA,OAAK,MAAK,CAAC;IACZ,OAAM;IACL,aAAW,iBAAA;IACX,OAAA,GAAA,IAAA,OAAM,MAAK,CAAC;;oCAEL,EAAA,GAAA,IAAA,YAAA,KAAA,QAAA,UAAA,GAAA,GAAA,IAAA,aAwBK,IAAA,aAAA,GAAA,IAAA,aAAA,GAAA,IAAA,OAAA,gBAtBY,EAAA;KACvB,kBAAe;KACf,MAAK;KACJ,cAAW,OAAA,OAAA,OAAA,MAAA,WAAE,KAAI,QAAA;KACjB,cAAW,OAAA,OAAA,OAAA,MAAA,WAAE,KAAI,SAAA;;qCAiBN,EAAA,GAAA,IAAA,OAbJ,MAAK,CAAC,SAAA,GAAA,IAAA,YAAA,GAAA,GAAA,IAAA,cAAA,GAAA,IAAA,0BAAA,GAAA,IAAA,OADP,MAAK,CAAC,WAAU,EAAA;;MAErB,QAAA,GAAA,IAAA,gBAAK,CAAC,aACE,eAAA,MAAc,CAAA;MACrB,QAAA,GAAA,IAAA,gBAAO,cAAA,MAAa;MACpB,SAAK,OAAA,OAAA,OAAA,MAAA,WAAE,KAAI,SAAU,OAAM;;sCAE8C,EAAA,GAAA,IAAA,oBAAA,OAAA;OAArE,QAAA,GAAA,IAAA,gBAAK,CAAC,qBAA4B,YAAA,MAAW,CAAA;OAAG,QAAA,GAAA,IAAA,gBAAO,WAAA,MAAA;+CAMtD,OAAA;OAJD,OAAM;OAAqB,QAAA,GAAA,IAAA,gBAAO,kBAAA,MAAA;8BAG9B,KAAA,QAAA,YAAA,GAAA,IAAA,iBAAA,GAAA,IAAA,oBAFsB,aAAA,MAAY,CAAA,QAElC,CAAA,EAAA,GAAA,IAAA,OADY,MAAK,CAAC,cAAA,GAAA,IAAA,YAAA,GAAA,GAAA,IAAA,aAAmC,iBAAA,mBAAA,GAAA,IAAA,iBAAA,GAAA,IAAA,YAAA,EAAA,KAAA,GAAA,EAAhB,aAAA,MAAY,CAAA,EAAA,MAAA,GAAA,KAAA,GAAA,IAAA,oBAAA,IAAA,KAAA,CAAA,CAAA,CAAA,EAAA,EAAA,CAAA,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BOverlay-BGxH9JVy.mjs","names":[],"sources":["../src/composables/useTransitions.ts","../src/components/BOverlay/BOverlay.vue","../src/components/BOverlay/BOverlay.vue"],"sourcesContent":["import {computed, type MaybeRefOrGetter, toValue, type TransitionProps} from 'vue'\n\nconst NO_FADE_PROPS = {\n name: '',\n enterActiveClass: '',\n enterToClass: '',\n leaveActiveClass: '',\n leaveToClass: 'showing',\n enterFromClass: 'showing',\n leaveFromClass: '',\n} as const satisfies TransitionProps\nconst FADE_PROPS = {\n ...NO_FADE_PROPS,\n enterActiveClass: 'fade showing',\n leaveActiveClass: 'fade showing',\n} as const satisfies TransitionProps\n\nexport const useFadeTransition = (fade: MaybeRefOrGetter<boolean>) =>\n computed(() => (toValue(fade) ? FADE_PROPS : NO_FADE_PROPS))\n","<template>\n <ConditionalWrapper\n :tag=\"props.wrapTag\"\n class=\"b-overlay-wrap position-relative\"\n :aria-busy=\"computedAriaBusy\"\n :skip=\"props.noWrap\"\n >\n <slot />\n <Transition\n v-bind=\"fadeTransitions\"\n enter-to-class=\"show\"\n name=\"fade\"\n @after-enter=\"emit('shown')\"\n @after-leave=\"emit('hidden')\"\n >\n <component\n :is=\"props.overlayTag\"\n v-if=\"props.show\"\n class=\"b-overlay\"\n :class=\"overlayClasses\"\n :style=\"overlayStyles\"\n @click=\"emit('click', $event)\"\n >\n <div class=\"position-absolute\" :class=\"blurClasses\" :style=\"blurStyles\" />\n\n <div class=\"position-absolute\" :style=\"spinWrapperStyles\">\n <slot name=\"overlay\" v-bind=\"spinnerAttrs\">\n <BSpinner v-if=\"!props.noSpinner\" v-bind=\"spinnerAttrs\" />\n </slot>\n </div>\n </component>\n </Transition>\n </ConditionalWrapper>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed} from 'vue'\nimport type {BOverlayProps} from '../../types/ComponentProps'\nimport {useDefaults} from '../../composables/useDefaults'\nimport BSpinner from '../BSpinner/BSpinner.vue'\nimport ConditionalWrapper from '../ConditionalWrapper.vue'\nimport {useRadiusElementClasses} from '../../composables/useRadiusElementClasses'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport type {BgColorVariant} from '../../types/ColorTypes'\nimport {useFadeTransition} from '../../composables/useTransitions'\nimport type {BOverlayEmits, BOverlaySlots} from '../../types'\n\nconst _props = withDefaults(defineProps<BOverlayProps>(), {\n bgColor: undefined,\n blur: '2px',\n fixed: false,\n noCenter: false,\n noFade: false,\n noSpinner: false,\n noWrap: false,\n opacity: 0.85,\n overlayTag: 'div',\n show: false,\n spinnerSmall: false,\n spinnerType: 'border',\n spinnerVariant: undefined,\n variant: 'light',\n wrapTag: 'div',\n zIndex: 10,\n // RadiusElementExtendables props\n rounded: false,\n roundedBottom: undefined,\n roundedEnd: undefined,\n roundedStart: undefined,\n roundedTop: undefined,\n // End RadiusElementExtendables props\n})\nconst props = useDefaults(_props, 'BOverlay')\nconst emit = defineEmits<BOverlayEmits>()\ndefineSlots<BOverlaySlots>()\n\nconst positionStyles = {top: 0, left: 0, bottom: 0, right: 0} as const\n\nconst fadeTransitions = useFadeTransition(() => !props.noFade)\n\nconst radiusElementClasses = useRadiusElementClasses(() => ({\n rounded: props.rounded,\n roundedTop: props.roundedTop,\n roundedBottom: props.roundedBottom,\n roundedStart: props.roundedStart,\n roundedEnd: props.roundedEnd,\n}))\n\nconst computedAriaBusy = computed(() => (props.show ? true : null))\n\nconst spinnerAttrs = computed(() => ({\n type: props.spinnerType,\n variant: props.spinnerVariant,\n small: props.spinnerSmall,\n}))\n\nconst overlayStyles = computed(() => ({\n ...positionStyles,\n zIndex: props.zIndex || 10,\n}))\n\nconst overlayClasses = computed(() => ({\n 'position-absolute': !props.noWrap || !props.fixed,\n 'position-fixed': props.noWrap && props.fixed,\n}))\n\nconst colorClasses = useColorVariantClasses(\n computed(() => ({\n bgVariant: props.variant !== null && !props.bgColor ? (props.variant as BgColorVariant) : null,\n }))\n)\nconst blurClasses = computed(() => [colorClasses.value, radiusElementClasses.value])\n\nconst blurStyles = computed(() => ({\n ...positionStyles,\n opacity: props.opacity,\n backgroundColor: props.bgColor || undefined,\n backdropFilter:\n props.blur && !props.bgColor && (props.variant === 'white' || props.variant === 'transparent')\n ? `blur(${props.blur})`\n : undefined,\n}))\n\nconst spinWrapperStyles = computed(() =>\n props.noCenter\n ? positionStyles\n : {\n top: '50%',\n left: '50%',\n transform: 'translateX(-50%) translateY(-50%)',\n }\n)\n</script>\n","<template>\n <ConditionalWrapper\n :tag=\"props.wrapTag\"\n class=\"b-overlay-wrap position-relative\"\n :aria-busy=\"computedAriaBusy\"\n :skip=\"props.noWrap\"\n >\n <slot />\n <Transition\n v-bind=\"fadeTransitions\"\n enter-to-class=\"show\"\n name=\"fade\"\n @after-enter=\"emit('shown')\"\n @after-leave=\"emit('hidden')\"\n >\n <component\n :is=\"props.overlayTag\"\n v-if=\"props.show\"\n class=\"b-overlay\"\n :class=\"overlayClasses\"\n :style=\"overlayStyles\"\n @click=\"emit('click', $event)\"\n >\n <div class=\"position-absolute\" :class=\"blurClasses\" :style=\"blurStyles\" />\n\n <div class=\"position-absolute\" :style=\"spinWrapperStyles\">\n <slot name=\"overlay\" v-bind=\"spinnerAttrs\">\n <BSpinner v-if=\"!props.noSpinner\" v-bind=\"spinnerAttrs\" />\n </slot>\n </div>\n </component>\n </Transition>\n </ConditionalWrapper>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed} from 'vue'\nimport type {BOverlayProps} from '../../types/ComponentProps'\nimport {useDefaults} from '../../composables/useDefaults'\nimport BSpinner from '../BSpinner/BSpinner.vue'\nimport ConditionalWrapper from '../ConditionalWrapper.vue'\nimport {useRadiusElementClasses} from '../../composables/useRadiusElementClasses'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\nimport type {BgColorVariant} from '../../types/ColorTypes'\nimport {useFadeTransition} from '../../composables/useTransitions'\nimport type {BOverlayEmits, BOverlaySlots} from '../../types'\n\nconst _props = withDefaults(defineProps<BOverlayProps>(), {\n bgColor: undefined,\n blur: '2px',\n fixed: false,\n noCenter: false,\n noFade: false,\n noSpinner: false,\n noWrap: false,\n opacity: 0.85,\n overlayTag: 'div',\n show: false,\n spinnerSmall: false,\n spinnerType: 'border',\n spinnerVariant: undefined,\n variant: 'light',\n wrapTag: 'div',\n zIndex: 10,\n // RadiusElementExtendables props\n rounded: false,\n roundedBottom: undefined,\n roundedEnd: undefined,\n roundedStart: undefined,\n roundedTop: undefined,\n // End RadiusElementExtendables props\n})\nconst props = useDefaults(_props, 'BOverlay')\nconst emit = defineEmits<BOverlayEmits>()\ndefineSlots<BOverlaySlots>()\n\nconst positionStyles = {top: 0, left: 0, bottom: 0, right: 0} as const\n\nconst fadeTransitions = useFadeTransition(() => !props.noFade)\n\nconst radiusElementClasses = useRadiusElementClasses(() => ({\n rounded: props.rounded,\n roundedTop: props.roundedTop,\n roundedBottom: props.roundedBottom,\n roundedStart: props.roundedStart,\n roundedEnd: props.roundedEnd,\n}))\n\nconst computedAriaBusy = computed(() => (props.show ? true : null))\n\nconst spinnerAttrs = computed(() => ({\n type: props.spinnerType,\n variant: props.spinnerVariant,\n small: props.spinnerSmall,\n}))\n\nconst overlayStyles = computed(() => ({\n ...positionStyles,\n zIndex: props.zIndex || 10,\n}))\n\nconst overlayClasses = computed(() => ({\n 'position-absolute': !props.noWrap || !props.fixed,\n 'position-fixed': props.noWrap && props.fixed,\n}))\n\nconst colorClasses = useColorVariantClasses(\n computed(() => ({\n bgVariant: props.variant !== null && !props.bgColor ? (props.variant as BgColorVariant) : null,\n }))\n)\nconst blurClasses = computed(() => [colorClasses.value, radiusElementClasses.value])\n\nconst blurStyles = computed(() => ({\n ...positionStyles,\n opacity: props.opacity,\n backgroundColor: props.bgColor || undefined,\n backdropFilter:\n props.blur && !props.bgColor && (props.variant === 'white' || props.variant === 'transparent')\n ? `blur(${props.blur})`\n : undefined,\n}))\n\nconst spinWrapperStyles = computed(() =>\n props.noCenter\n ? positionStyles\n : {\n top: '50%',\n left: '50%',\n transform: 'translateX(-50%) translateY(-50%)',\n }\n)\n</script>\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BPagination-C0-4NVzW.js","names":[],"sources":["../src/components/BPagination/BPagination.vue","../src/components/BPagination/BPagination.vue"],"sourcesContent":["<template>\n <ul\n class=\"pagination\"\n :class=\"computedWrapperClasses\"\n role=\"menubar\"\n :aria-disabled=\"props.disabled\"\n :aria-label=\"props.ariaLabel || undefined\"\n @keydown=\"handleKeyNav\"\n >\n <li\n v-for=\"(page, index) in pages\"\n :key=\"`page-${page.id}`\"\n v-bind=\"page.li\"\n ref=\"_pageElements\"\n :displayIndex=\"index\"\n >\n <span\n v-if=\"page.id === FIRST_ELLIPSIS || page.id === LAST_ELLIPSIS\"\n v-bind=\"ellipsisProps.span\"\n >\n <slot name=\"ellipsis-text\">\n {{ props.ellipsisText || '...' }}\n </slot>\n </span>\n <component\n v-bind=\"page.button\"\n :is=\"page.button.is\"\n v-else-if=\"'button' in page\"\n @click=\"page.clickHandler\"\n >\n <slot\n :name=\"page.text.name\"\n :disabled=\"page.text.disabled\"\n :page=\"page.text.page\"\n :index=\"page.text.index\"\n :active=\"page.text.active ?? false\"\n :content=\"page.text.value\"\n >\n {{ page.text.value }}\n </slot>\n </component>\n </li>\n </ul>\n</template>\n\n<script setup lang=\"ts\">\nimport {BvEvent} from '../../utils'\nimport {computed, nextTick, useTemplateRef, watch} from 'vue'\nimport {useAlignment} from '../../composables/useAlignment'\nimport {useToNumber} from '@vueuse/core'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {ClassValue} from '../../types/AnyValuedAttributes'\nimport {CODE_DOWN, CODE_LEFT, CODE_RIGHT, CODE_UP} from '../../utils/constants'\nimport {getActiveElement} from '../../utils/dom'\nimport {type BPaginationEmits, type BPaginationSlots, type BPaginationProps} from '../../types'\n\n// Threshold of limit size when we start/stop showing ellipsis\nconst ELLIPSIS_THRESHOLD = 3\n\nconst FIRST_BUTTON = -1\nconst PREV_BUTTON = -2\nconst NEXT_BUTTON = -3\nconst LAST_BUTTON = -4\nconst FIRST_ELLIPSIS = -5\nconst LAST_ELLIPSIS = -6\n\nconst _props = withDefaults(defineProps<Omit<BPaginationProps, 'modelValue'>>(), {\n align: 'start',\n ariaControls: undefined,\n ariaLabel: 'Pagination',\n disabled: false,\n ellipsisClass: undefined,\n ellipsisText: '\\u2026',\n firstClass: undefined,\n firstNumber: false,\n firstText: '\\u00AB',\n noEllipsis: false,\n noGotoEndButtons: false,\n labelFirstPage: 'Go to first page',\n labelLastPage: 'Go to last page',\n labelNextPage: 'Go to next page',\n labelPage: 'Go to page',\n labelPrevPage: 'Go to previous page',\n lastClass: undefined,\n lastNumber: false,\n lastText: '\\u00BB',\n limit: 5,\n nextClass: undefined,\n nextText: '\\u203A',\n pageClass: undefined,\n perPage: DEFAULT_PER_PAGE,\n pills: false,\n prevClass: undefined,\n prevText: '\\u2039',\n size: undefined,\n totalRows: DEFAULT_TOTAL_ROWS,\n})\nconst props = useDefaults(_props, 'BPagination')\nconst emit = defineEmits<BPaginationEmits>()\ndefineSlots<BPaginationSlots>()\n\nconst modelValue = defineModel<Exclude<BPaginationProps['modelValue'], undefined>>({\n default: 1,\n})\n\nconst pageElements = useTemplateRef('_pageElements')\n\nconst limitNumber = useToNumber(() => props.limit, {nanToZero: true, method: 'parseInt'})\nconst perPageNumber = useToNumber(() => props.perPage, {nanToZero: true, method: 'parseInt'})\nconst totalRowsNumber = useToNumber(() => props.totalRows, {nanToZero: true, method: 'parseInt'})\nconst modelValueNumber = useToNumber(modelValue, {nanToZero: true, method: 'parseInt'})\n\nconst perPageSanitized = computed(() => Math.max(perPageNumber.value || DEFAULT_PER_PAGE, 1))\nconst totalRowsSanitized = computed(() => Math.max(totalRowsNumber.value || DEFAULT_TOTAL_ROWS, 0))\n// Use Active to on page-item to denote active tab\nconst numberOfPages = computed(() => Math.ceil(totalRowsSanitized.value / perPageSanitized.value))\nconst computedFill = computed(() => props.align === 'fill')\n// This doesn't use the computedFill util because TS cannot infer that it would never be 'fill'\nconst justifyAlign = computed(() => (props.align === 'fill' ? 'start' : props.align))\n\nconst alignment = useAlignment(justifyAlign)\n\nconst isActivePage = (pageNumber: number) => pageNumber === computedModelValue.value\nconst getTabIndex = (num: number) => (props.disabled ? null : isActivePage(num) ? '0' : '-1')\n\nconst checkDisabled = (num: number) =>\n props.disabled ||\n isActivePage(num) ||\n computedModelValue.value < 1 ||\n // Check if the number is out of bounds\n num < 1 ||\n num > numberOfPages.value\n\nconst firstDisabled = computed(() => checkDisabled(1))\nconst prevDisabled = computed(() => checkDisabled(computedModelValue.value - 1))\nconst lastDisabled = computed(() => checkDisabled(numberOfPages.value))\nconst nextDisabled = computed(() => checkDisabled(computedModelValue.value + 1))\n\nconst getBaseButtonProps = ({\n page,\n classVal,\n disabled,\n slotName,\n textValue,\n tabIndex,\n label,\n position,\n isActive,\n hidden,\n isSmHidden,\n}: {\n page: number\n disabled: boolean\n classVal: ClassValue\n slotName: 'first-text' | 'prev-text' | 'next-text' | 'last-text' | 'page'\n textValue?: string\n tabIndex?: string\n label?: string\n position?: number\n isActive?: boolean\n hidden?: boolean\n isSmHidden?: boolean\n}) => ({\n li: {\n 'class': [\n 'page-item',\n {\n 'active': isActive,\n disabled,\n 'bv-d-sm-down-none': isSmHidden,\n 'flex-fill': computedFill.value,\n 'd-flex': computedFill.value && !disabled,\n },\n classVal,\n ],\n 'role': 'presentation',\n 'aria-hidden': hidden,\n },\n button: {\n 'is': disabled ? 'span' : 'button',\n 'class': ['page-link', 'text-center', {'flex-grow-1': !disabled && computedFill.value}],\n 'aria-label': label,\n 'aria-controls': props.ariaControls || undefined,\n 'aria-disabled': disabled ? true : undefined,\n 'aria-posinset': position,\n 'aria-setsize': position ? numberOfPages.value : undefined,\n 'role': 'menuitem',\n 'type': disabled ? undefined : 'button',\n 'tabindex': disabled ? undefined : tabIndex,\n },\n text: {\n name: slotName,\n active: isActive,\n value: textValue ?? page,\n page,\n disabled,\n index: page - 1,\n content: textValue ? undefined : String(page),\n },\n clickHandler: (e: Readonly<MouseEvent>) => pageClick(e, page),\n})\n\nconst getButtonProps = ({\n page,\n classVal,\n disabled,\n slotName,\n textValue,\n label,\n}: {\n page: number\n disabled: boolean\n classVal: ClassValue\n slotName: 'first-text' | 'prev-text' | 'next-text' | 'last-text' | 'page'\n textValue?: string\n label: string\n}) => getBaseButtonProps({page, classVal, disabled, slotName, textValue, label, tabIndex: '-1'})\n\nconst getPageButtonProps = (page: number, isSmHidden?: boolean) =>\n getBaseButtonProps({\n page,\n disabled: props.disabled,\n classVal: props.pageClass,\n slotName: 'page',\n label: props.labelPage ? `${props.labelPage} ${page}` : undefined,\n tabIndex: getTabIndex(page) ?? undefined,\n position: page,\n isActive: isActivePage(page),\n isSmHidden,\n })\n\nconst firstButtonProps = computed(() =>\n getButtonProps({\n page: 1,\n disabled: firstDisabled.value,\n classVal: props.firstClass,\n slotName: 'first-text',\n textValue: props.firstText,\n label: props.labelFirstPage,\n })\n)\nconst prevButtonProps = computed(() =>\n getButtonProps({\n page: Math.max(computedModelValue.value - 1, 1),\n disabled: prevDisabled.value,\n classVal: props.prevClass,\n slotName: 'prev-text',\n textValue: props.prevText,\n label: props.labelPrevPage,\n })\n)\nconst nextButtonProps = computed(() =>\n getButtonProps({\n page: Math.min(computedModelValue.value + 1, numberOfPages.value),\n disabled: nextDisabled.value,\n classVal: props.nextClass,\n slotName: 'next-text',\n textValue: props.nextText,\n label: props.labelNextPage,\n })\n)\nconst lastButtonProps = computed(() =>\n getButtonProps({\n page: numberOfPages.value,\n disabled: lastDisabled.value,\n classVal: props.lastClass,\n slotName: 'last-text',\n textValue: props.lastText,\n label: props.labelLastPage,\n })\n)\n\nconst ellipsisProps = computed(() => ({\n li: {\n class: [\n 'page-item',\n 'disabled',\n 'text-center',\n 'bv-d-sm-down-none',\n computedFill.value ? 'flex-fill' : '',\n props.ellipsisClass,\n ],\n role: 'separator',\n },\n span: {\n class: ['page-link'],\n },\n}))\n\nconst computedWrapperClasses = computed(() => [\n alignment.value,\n {\n [`pagination-${props.size}`]: props.size !== undefined,\n 'b-pagination-pills': props.pills,\n },\n])\n\nconst pagination = computed(() => ({\n pageSize: perPageSanitized.value,\n totalRows: totalRowsNumber.value,\n numberOfPages: numberOfPages.value,\n}))\n\nconst pageClick = (event: Readonly<MouseEvent>, pageNumber: number) => {\n if (pageNumber === computedModelValue.value) return\n const clickEvent = new BvEvent('page-click', {\n cancelable: true,\n target: event.target,\n })\n emit('page-click', clickEvent, pageNumber)\n\n if (clickEvent.defaultPrevented) return\n\n modelValue.value = pageNumber\n\n nextTick(() => {\n if (pageNumber === 1) {\n focusFirst()\n } else if (pageNumber === pagination.value.numberOfPages) {\n focusLast()\n }\n })\n // nextTick(() => {\n // if (isVisible(target) && un_element.contains(target)) {\n // attemptFocus(target)\n //} else {\n //this.focusCurrent()\n //}\n // })\n}\n\nconst isDisabled = (el: HTMLButtonElement) => {\n const isElement = el && el.nodeType === Node.ELEMENT_NODE\n const hasAttr = isElement ? el.hasAttribute('disabled') : null\n const hasClass = isElement && el.classList ? el.classList.contains('disabled') : false\n\n return !isElement || el.disabled || hasAttr || hasClass\n}\n\nconst getButtons = (): HTMLButtonElement[] =>\n [...(pageElements.value ?? [])]\n .sort(\n (a, b) =>\n Number.parseInt(a.getAttribute('displayIndex') || '0') -\n Number.parseInt(b.getAttribute('displayIndex') || '0')\n )\n .map((page) => page.children[0])\n .filter((el) => {\n if (el?.getAttribute('display') === 'none' || el?.tagName.toUpperCase() !== 'BUTTON') {\n return false\n }\n\n const bcr = el?.getBoundingClientRect()\n\n return !!(bcr && bcr.height > 0 && bcr.width > 0)\n })\n .map((el) => el as HTMLButtonElement)\n\nconst focusFirst = () => {\n nextTick(() => {\n const btn = getButtons().find((el) => !isDisabled(el))\n btn?.focus()\n })\n}\n\nconst focusPrev = () => {\n nextTick(() => {\n const buttons = getButtons()\n const index = buttons.indexOf(getActiveElement() as HTMLButtonElement)\n\n const button = buttons[index - 1]\n if (index > 0 && button !== undefined && !isDisabled(button)) {\n buttons[index - 1]?.focus()\n }\n })\n}\n\nconst focusLast = () => {\n nextTick(() => {\n const btn = getButtons()\n .reverse()\n .find((el) => !isDisabled(el))\n btn?.focus()\n })\n}\n\nconst focusNext = () => {\n nextTick(() => {\n const buttons = getButtons()\n const index = buttons.indexOf(getActiveElement() as HTMLButtonElement)\n const button = buttons[index + 1]\n if (index < buttons.length - 1 && button !== undefined && !isDisabled(button)) {\n buttons[index + 1]?.focus()\n }\n })\n}\n\nconst handleKeyNav = (event: KeyboardEvent) => {\n const {code, shiftKey} = event\n if (code === CODE_LEFT || code === CODE_UP) {\n event.preventDefault()\n if (shiftKey) {\n focusFirst()\n } else {\n focusPrev()\n }\n } else if (code === CODE_RIGHT || code === CODE_DOWN) {\n event.preventDefault()\n if (shiftKey) {\n focusLast()\n } else {\n focusNext()\n }\n }\n}\n\nconst computedModelValue = computed(() => {\n const page = modelValueNumber.value || 1\n return page > numberOfPages.value ? numberOfPages.value : page < 1 ? 1 : page\n})\n\nwatch(pagination, (oldValue, newValue) => {\n if (newValue.pageSize !== oldValue.pageSize && newValue.totalRows === oldValue.totalRows) {\n // If the page size changes, reset to page 1\n modelValue.value = 1\n }\n})\n\nconst noFirstButton = computed(() => (props.noGotoEndButtons && !props.firstNumber ? 1 : 0))\nconst noLastButton = computed(() => (props.noGotoEndButtons && !props.lastNumber ? 1 : 0))\nconst showFirstButton = computed(() => (noFirstButton.value ? 0 : 1))\nconst showLastButton = computed(() => (noLastButton.value ? 0 : 1))\nconst firstPage = computed(() => (props.firstNumber ? 1 : 0))\nconst lastPage = computed(() => (props.lastNumber ? 1 : 0))\nconst halfLimit = computed(() => Math.floor(limitNumber.value / 2))\n\nconst pages = computed(() => {\n const {value} = computedModelValue\n\n const els = elements.value.map((p) => {\n switch (p) {\n case FIRST_BUTTON:\n return {id: p, ...firstButtonProps.value}\n case PREV_BUTTON:\n return {id: p, ...prevButtonProps.value}\n case NEXT_BUTTON:\n return {id: p, ...nextButtonProps.value}\n case LAST_BUTTON:\n return {id: p, ...lastButtonProps.value}\n case FIRST_ELLIPSIS:\n case LAST_ELLIPSIS:\n return {id: p, ...ellipsisProps.value}\n default:\n return {id: p, ...getPageButtonProps(p)}\n }\n })\n\n if (numberOfPages.value > 3) {\n if (value > numberOfPages.value - halfLimit.value - lastPage.value) {\n const idx = 2 + showFirstButton.value\n const el = els[idx]\n if (el !== undefined) {\n els[idx] = {id: el.id, ...getPageButtonProps(el.id, true)}\n }\n }\n\n if (value <= halfLimit.value + firstPage.value) {\n const idx = els.length - (3 + showLastButton.value)\n const el = els[idx]\n if (el !== undefined) {\n els[idx] = {id: el.id, ...getPageButtonProps(el.id, true)}\n }\n }\n }\n\n return els\n})\n\nconst elements = computed(() => {\n // The idea here is to create an array of all the buttons on the page control.\n // This way we can keep the invariants in one place and the template code just\n // iterates over the array.\n\n const pages = numberOfPages.value\n const {value} = computedModelValue\n const limit = limitNumber.value\n const noEllipsis = props.noEllipsis || limit <= ELLIPSIS_THRESHOLD\n\n // The first case is when all of the page buttons fit on the control, this is\n // the simplest case and the only one that will create an array smaller than\n // Limit + 4 - noEndButtons * 2 (the [first, last,] prev, next buttons)\n\n if (pages < limit + firstPage.value + lastPage.value) {\n return [\n !firstPage.value && !noFirstButton.value ? FIRST_BUTTON : null,\n PREV_BUTTON,\n ...Array.from({length: pages}, (_, index) => index + 1),\n NEXT_BUTTON,\n !lastPage.value && !noLastButton.value ? LAST_BUTTON : null,\n ].filter((x) => x !== null) as number[]\n }\n\n // All of the remaining cases result in an array that is exactly limit + 4 - noEndButtons * 2 in length, so create\n // the array upfront and set up the beginning and end buttons, then fill the rest for each case\n\n const buttons = Array.from({length: limit + 4 - (noFirstButton.value + noLastButton.value)})\n if (!noFirstButton.value) {\n if (!firstPage.value) {\n buttons[0] = FIRST_BUTTON\n buttons[1] = PREV_BUTTON\n } else {\n buttons[0] = PREV_BUTTON\n buttons[1] = 1\n }\n } else {\n buttons[0] = PREV_BUTTON\n }\n\n if (!noLastButton.value) {\n if (!lastPage.value) {\n buttons[buttons.length - 1] = LAST_BUTTON\n buttons[buttons.length - 2] = NEXT_BUTTON\n } else {\n buttons[buttons.length - 1] = NEXT_BUTTON\n buttons[buttons.length - 2] = pages\n }\n } else {\n buttons[buttons.length - 1] = NEXT_BUTTON\n }\n\n // The next case is where the page buttons start at the begginning, with\n // no ellipsis at the beginning, but one at the end\n\n if (value <= halfLimit.value + firstPage.value) {\n for (let index = 1; index <= limit; index++) {\n buttons[index + 1 - noFirstButton.value] = index + firstPage.value\n }\n\n if (!noEllipsis) {\n buttons[buttons.length - (2 + showLastButton.value)] = LAST_ELLIPSIS\n }\n }\n\n // And then we have the case where the page buttons go up to the end, with no\n // ellipsis at the end, but one at the beginning\n\n if (value > pages - halfLimit.value - lastPage.value) {\n const start = pages - (limit - 1) - lastPage.value\n for (let index = 0; index < limit; index++) {\n buttons[index + 2 - noFirstButton.value] = start + index\n }\n\n if (!noEllipsis) {\n buttons[1 + showFirstButton.value] = FIRST_ELLIPSIS\n }\n }\n\n // Finally we have the case where we have ellipsis at both ends\n if (!buttons[2]) {\n // Is there a more elegant way to ceck that we're in the final case?\n const start = value - Math.floor(limit / 2)\n for (let index = 0; index < limit; index++) {\n buttons[index + 2 - noFirstButton.value] = start + index\n }\n\n if (!noEllipsis) {\n buttons[1 + showFirstButton.value] = FIRST_ELLIPSIS\n buttons[buttons.length - (2 + showLastButton.value)] = LAST_ELLIPSIS\n }\n }\n\n //Enable sanity check for debugging purposes\n // for (let i = 0; i < buttons.length; i++) {\n // if (!buttons[i]) {\n // // eslint-disable-next-line no-console\n // console.log(\n // `Failed: button == ${i}, limit=${limit}, pages=${pages}, firstPage=${firstPage}, lastPage=${lastPage}, value=${value}`\n // )\n // }\n // }\n\n return buttons.filter((x) => x !== null) as number[]\n})\n</script>\n\n<script lang=\"ts\">\nconst DEFAULT_PER_PAGE = 20\nconst DEFAULT_TOTAL_ROWS = 0\n</script>\n","<template>\n <ul\n class=\"pagination\"\n :class=\"computedWrapperClasses\"\n role=\"menubar\"\n :aria-disabled=\"props.disabled\"\n :aria-label=\"props.ariaLabel || undefined\"\n @keydown=\"handleKeyNav\"\n >\n <li\n v-for=\"(page, index) in pages\"\n :key=\"`page-${page.id}`\"\n v-bind=\"page.li\"\n ref=\"_pageElements\"\n :displayIndex=\"index\"\n >\n <span\n v-if=\"page.id === FIRST_ELLIPSIS || page.id === LAST_ELLIPSIS\"\n v-bind=\"ellipsisProps.span\"\n >\n <slot name=\"ellipsis-text\">\n {{ props.ellipsisText || '...' }}\n </slot>\n </span>\n <component\n v-bind=\"page.button\"\n :is=\"page.button.is\"\n v-else-if=\"'button' in page\"\n @click=\"page.clickHandler\"\n >\n <slot\n :name=\"page.text.name\"\n :disabled=\"page.text.disabled\"\n :page=\"page.text.page\"\n :index=\"page.text.index\"\n :active=\"page.text.active ?? false\"\n :content=\"page.text.value\"\n >\n {{ page.text.value }}\n </slot>\n </component>\n </li>\n </ul>\n</template>\n\n<script setup lang=\"ts\">\nimport {BvEvent} from '../../utils'\nimport {computed, nextTick, useTemplateRef, watch} from 'vue'\nimport {useAlignment} from '../../composables/useAlignment'\nimport {useToNumber} from '@vueuse/core'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {ClassValue} from '../../types/AnyValuedAttributes'\nimport {CODE_DOWN, CODE_LEFT, CODE_RIGHT, CODE_UP} from '../../utils/constants'\nimport {getActiveElement} from '../../utils/dom'\nimport {type BPaginationEmits, type BPaginationSlots, type BPaginationProps} from '../../types'\n\n// Threshold of limit size when we start/stop showing ellipsis\nconst ELLIPSIS_THRESHOLD = 3\n\nconst FIRST_BUTTON = -1\nconst PREV_BUTTON = -2\nconst NEXT_BUTTON = -3\nconst LAST_BUTTON = -4\nconst FIRST_ELLIPSIS = -5\nconst LAST_ELLIPSIS = -6\n\nconst _props = withDefaults(defineProps<Omit<BPaginationProps, 'modelValue'>>(), {\n align: 'start',\n ariaControls: undefined,\n ariaLabel: 'Pagination',\n disabled: false,\n ellipsisClass: undefined,\n ellipsisText: '\\u2026',\n firstClass: undefined,\n firstNumber: false,\n firstText: '\\u00AB',\n noEllipsis: false,\n noGotoEndButtons: false,\n labelFirstPage: 'Go to first page',\n labelLastPage: 'Go to last page',\n labelNextPage: 'Go to next page',\n labelPage: 'Go to page',\n labelPrevPage: 'Go to previous page',\n lastClass: undefined,\n lastNumber: false,\n lastText: '\\u00BB',\n limit: 5,\n nextClass: undefined,\n nextText: '\\u203A',\n pageClass: undefined,\n perPage: DEFAULT_PER_PAGE,\n pills: false,\n prevClass: undefined,\n prevText: '\\u2039',\n size: undefined,\n totalRows: DEFAULT_TOTAL_ROWS,\n})\nconst props = useDefaults(_props, 'BPagination')\nconst emit = defineEmits<BPaginationEmits>()\ndefineSlots<BPaginationSlots>()\n\nconst modelValue = defineModel<Exclude<BPaginationProps['modelValue'], undefined>>({\n default: 1,\n})\n\nconst pageElements = useTemplateRef('_pageElements')\n\nconst limitNumber = useToNumber(() => props.limit, {nanToZero: true, method: 'parseInt'})\nconst perPageNumber = useToNumber(() => props.perPage, {nanToZero: true, method: 'parseInt'})\nconst totalRowsNumber = useToNumber(() => props.totalRows, {nanToZero: true, method: 'parseInt'})\nconst modelValueNumber = useToNumber(modelValue, {nanToZero: true, method: 'parseInt'})\n\nconst perPageSanitized = computed(() => Math.max(perPageNumber.value || DEFAULT_PER_PAGE, 1))\nconst totalRowsSanitized = computed(() => Math.max(totalRowsNumber.value || DEFAULT_TOTAL_ROWS, 0))\n// Use Active to on page-item to denote active tab\nconst numberOfPages = computed(() => Math.ceil(totalRowsSanitized.value / perPageSanitized.value))\nconst computedFill = computed(() => props.align === 'fill')\n// This doesn't use the computedFill util because TS cannot infer that it would never be 'fill'\nconst justifyAlign = computed(() => (props.align === 'fill' ? 'start' : props.align))\n\nconst alignment = useAlignment(justifyAlign)\n\nconst isActivePage = (pageNumber: number) => pageNumber === computedModelValue.value\nconst getTabIndex = (num: number) => (props.disabled ? null : isActivePage(num) ? '0' : '-1')\n\nconst checkDisabled = (num: number) =>\n props.disabled ||\n isActivePage(num) ||\n computedModelValue.value < 1 ||\n // Check if the number is out of bounds\n num < 1 ||\n num > numberOfPages.value\n\nconst firstDisabled = computed(() => checkDisabled(1))\nconst prevDisabled = computed(() => checkDisabled(computedModelValue.value - 1))\nconst lastDisabled = computed(() => checkDisabled(numberOfPages.value))\nconst nextDisabled = computed(() => checkDisabled(computedModelValue.value + 1))\n\nconst getBaseButtonProps = ({\n page,\n classVal,\n disabled,\n slotName,\n textValue,\n tabIndex,\n label,\n position,\n isActive,\n hidden,\n isSmHidden,\n}: {\n page: number\n disabled: boolean\n classVal: ClassValue\n slotName: 'first-text' | 'prev-text' | 'next-text' | 'last-text' | 'page'\n textValue?: string\n tabIndex?: string\n label?: string\n position?: number\n isActive?: boolean\n hidden?: boolean\n isSmHidden?: boolean\n}) => ({\n li: {\n 'class': [\n 'page-item',\n {\n 'active': isActive,\n disabled,\n 'bv-d-sm-down-none': isSmHidden,\n 'flex-fill': computedFill.value,\n 'd-flex': computedFill.value && !disabled,\n },\n classVal,\n ],\n 'role': 'presentation',\n 'aria-hidden': hidden,\n },\n button: {\n 'is': disabled ? 'span' : 'button',\n 'class': ['page-link', 'text-center', {'flex-grow-1': !disabled && computedFill.value}],\n 'aria-label': label,\n 'aria-controls': props.ariaControls || undefined,\n 'aria-disabled': disabled ? true : undefined,\n 'aria-posinset': position,\n 'aria-setsize': position ? numberOfPages.value : undefined,\n 'role': 'menuitem',\n 'type': disabled ? undefined : 'button',\n 'tabindex': disabled ? undefined : tabIndex,\n },\n text: {\n name: slotName,\n active: isActive,\n value: textValue ?? page,\n page,\n disabled,\n index: page - 1,\n content: textValue ? undefined : String(page),\n },\n clickHandler: (e: Readonly<MouseEvent>) => pageClick(e, page),\n})\n\nconst getButtonProps = ({\n page,\n classVal,\n disabled,\n slotName,\n textValue,\n label,\n}: {\n page: number\n disabled: boolean\n classVal: ClassValue\n slotName: 'first-text' | 'prev-text' | 'next-text' | 'last-text' | 'page'\n textValue?: string\n label: string\n}) => getBaseButtonProps({page, classVal, disabled, slotName, textValue, label, tabIndex: '-1'})\n\nconst getPageButtonProps = (page: number, isSmHidden?: boolean) =>\n getBaseButtonProps({\n page,\n disabled: props.disabled,\n classVal: props.pageClass,\n slotName: 'page',\n label: props.labelPage ? `${props.labelPage} ${page}` : undefined,\n tabIndex: getTabIndex(page) ?? undefined,\n position: page,\n isActive: isActivePage(page),\n isSmHidden,\n })\n\nconst firstButtonProps = computed(() =>\n getButtonProps({\n page: 1,\n disabled: firstDisabled.value,\n classVal: props.firstClass,\n slotName: 'first-text',\n textValue: props.firstText,\n label: props.labelFirstPage,\n })\n)\nconst prevButtonProps = computed(() =>\n getButtonProps({\n page: Math.max(computedModelValue.value - 1, 1),\n disabled: prevDisabled.value,\n classVal: props.prevClass,\n slotName: 'prev-text',\n textValue: props.prevText,\n label: props.labelPrevPage,\n })\n)\nconst nextButtonProps = computed(() =>\n getButtonProps({\n page: Math.min(computedModelValue.value + 1, numberOfPages.value),\n disabled: nextDisabled.value,\n classVal: props.nextClass,\n slotName: 'next-text',\n textValue: props.nextText,\n label: props.labelNextPage,\n })\n)\nconst lastButtonProps = computed(() =>\n getButtonProps({\n page: numberOfPages.value,\n disabled: lastDisabled.value,\n classVal: props.lastClass,\n slotName: 'last-text',\n textValue: props.lastText,\n label: props.labelLastPage,\n })\n)\n\nconst ellipsisProps = computed(() => ({\n li: {\n class: [\n 'page-item',\n 'disabled',\n 'text-center',\n 'bv-d-sm-down-none',\n computedFill.value ? 'flex-fill' : '',\n props.ellipsisClass,\n ],\n role: 'separator',\n },\n span: {\n class: ['page-link'],\n },\n}))\n\nconst computedWrapperClasses = computed(() => [\n alignment.value,\n {\n [`pagination-${props.size}`]: props.size !== undefined,\n 'b-pagination-pills': props.pills,\n },\n])\n\nconst pagination = computed(() => ({\n pageSize: perPageSanitized.value,\n totalRows: totalRowsNumber.value,\n numberOfPages: numberOfPages.value,\n}))\n\nconst pageClick = (event: Readonly<MouseEvent>, pageNumber: number) => {\n if (pageNumber === computedModelValue.value) return\n const clickEvent = new BvEvent('page-click', {\n cancelable: true,\n target: event.target,\n })\n emit('page-click', clickEvent, pageNumber)\n\n if (clickEvent.defaultPrevented) return\n\n modelValue.value = pageNumber\n\n nextTick(() => {\n if (pageNumber === 1) {\n focusFirst()\n } else if (pageNumber === pagination.value.numberOfPages) {\n focusLast()\n }\n })\n // nextTick(() => {\n // if (isVisible(target) && un_element.contains(target)) {\n // attemptFocus(target)\n //} else {\n //this.focusCurrent()\n //}\n // })\n}\n\nconst isDisabled = (el: HTMLButtonElement) => {\n const isElement = el && el.nodeType === Node.ELEMENT_NODE\n const hasAttr = isElement ? el.hasAttribute('disabled') : null\n const hasClass = isElement && el.classList ? el.classList.contains('disabled') : false\n\n return !isElement || el.disabled || hasAttr || hasClass\n}\n\nconst getButtons = (): HTMLButtonElement[] =>\n [...(pageElements.value ?? [])]\n .sort(\n (a, b) =>\n Number.parseInt(a.getAttribute('displayIndex') || '0') -\n Number.parseInt(b.getAttribute('displayIndex') || '0')\n )\n .map((page) => page.children[0])\n .filter((el) => {\n if (el?.getAttribute('display') === 'none' || el?.tagName.toUpperCase() !== 'BUTTON') {\n return false\n }\n\n const bcr = el?.getBoundingClientRect()\n\n return !!(bcr && bcr.height > 0 && bcr.width > 0)\n })\n .map((el) => el as HTMLButtonElement)\n\nconst focusFirst = () => {\n nextTick(() => {\n const btn = getButtons().find((el) => !isDisabled(el))\n btn?.focus()\n })\n}\n\nconst focusPrev = () => {\n nextTick(() => {\n const buttons = getButtons()\n const index = buttons.indexOf(getActiveElement() as HTMLButtonElement)\n\n const button = buttons[index - 1]\n if (index > 0 && button !== undefined && !isDisabled(button)) {\n buttons[index - 1]?.focus()\n }\n })\n}\n\nconst focusLast = () => {\n nextTick(() => {\n const btn = getButtons()\n .reverse()\n .find((el) => !isDisabled(el))\n btn?.focus()\n })\n}\n\nconst focusNext = () => {\n nextTick(() => {\n const buttons = getButtons()\n const index = buttons.indexOf(getActiveElement() as HTMLButtonElement)\n const button = buttons[index + 1]\n if (index < buttons.length - 1 && button !== undefined && !isDisabled(button)) {\n buttons[index + 1]?.focus()\n }\n })\n}\n\nconst handleKeyNav = (event: KeyboardEvent) => {\n const {code, shiftKey} = event\n if (code === CODE_LEFT || code === CODE_UP) {\n event.preventDefault()\n if (shiftKey) {\n focusFirst()\n } else {\n focusPrev()\n }\n } else if (code === CODE_RIGHT || code === CODE_DOWN) {\n event.preventDefault()\n if (shiftKey) {\n focusLast()\n } else {\n focusNext()\n }\n }\n}\n\nconst computedModelValue = computed(() => {\n const page = modelValueNumber.value || 1\n return page > numberOfPages.value ? numberOfPages.value : page < 1 ? 1 : page\n})\n\nwatch(pagination, (oldValue, newValue) => {\n if (newValue.pageSize !== oldValue.pageSize && newValue.totalRows === oldValue.totalRows) {\n // If the page size changes, reset to page 1\n modelValue.value = 1\n }\n})\n\nconst noFirstButton = computed(() => (props.noGotoEndButtons && !props.firstNumber ? 1 : 0))\nconst noLastButton = computed(() => (props.noGotoEndButtons && !props.lastNumber ? 1 : 0))\nconst showFirstButton = computed(() => (noFirstButton.value ? 0 : 1))\nconst showLastButton = computed(() => (noLastButton.value ? 0 : 1))\nconst firstPage = computed(() => (props.firstNumber ? 1 : 0))\nconst lastPage = computed(() => (props.lastNumber ? 1 : 0))\nconst halfLimit = computed(() => Math.floor(limitNumber.value / 2))\n\nconst pages = computed(() => {\n const {value} = computedModelValue\n\n const els = elements.value.map((p) => {\n switch (p) {\n case FIRST_BUTTON:\n return {id: p, ...firstButtonProps.value}\n case PREV_BUTTON:\n return {id: p, ...prevButtonProps.value}\n case NEXT_BUTTON:\n return {id: p, ...nextButtonProps.value}\n case LAST_BUTTON:\n return {id: p, ...lastButtonProps.value}\n case FIRST_ELLIPSIS:\n case LAST_ELLIPSIS:\n return {id: p, ...ellipsisProps.value}\n default:\n return {id: p, ...getPageButtonProps(p)}\n }\n })\n\n if (numberOfPages.value > 3) {\n if (value > numberOfPages.value - halfLimit.value - lastPage.value) {\n const idx = 2 + showFirstButton.value\n const el = els[idx]\n if (el !== undefined) {\n els[idx] = {id: el.id, ...getPageButtonProps(el.id, true)}\n }\n }\n\n if (value <= halfLimit.value + firstPage.value) {\n const idx = els.length - (3 + showLastButton.value)\n const el = els[idx]\n if (el !== undefined) {\n els[idx] = {id: el.id, ...getPageButtonProps(el.id, true)}\n }\n }\n }\n\n return els\n})\n\nconst elements = computed(() => {\n // The idea here is to create an array of all the buttons on the page control.\n // This way we can keep the invariants in one place and the template code just\n // iterates over the array.\n\n const pages = numberOfPages.value\n const {value} = computedModelValue\n const limit = limitNumber.value\n const noEllipsis = props.noEllipsis || limit <= ELLIPSIS_THRESHOLD\n\n // The first case is when all of the page buttons fit on the control, this is\n // the simplest case and the only one that will create an array smaller than\n // Limit + 4 - noEndButtons * 2 (the [first, last,] prev, next buttons)\n\n if (pages < limit + firstPage.value + lastPage.value) {\n return [\n !firstPage.value && !noFirstButton.value ? FIRST_BUTTON : null,\n PREV_BUTTON,\n ...Array.from({length: pages}, (_, index) => index + 1),\n NEXT_BUTTON,\n !lastPage.value && !noLastButton.value ? LAST_BUTTON : null,\n ].filter((x) => x !== null) as number[]\n }\n\n // All of the remaining cases result in an array that is exactly limit + 4 - noEndButtons * 2 in length, so create\n // the array upfront and set up the beginning and end buttons, then fill the rest for each case\n\n const buttons = Array.from({length: limit + 4 - (noFirstButton.value + noLastButton.value)})\n if (!noFirstButton.value) {\n if (!firstPage.value) {\n buttons[0] = FIRST_BUTTON\n buttons[1] = PREV_BUTTON\n } else {\n buttons[0] = PREV_BUTTON\n buttons[1] = 1\n }\n } else {\n buttons[0] = PREV_BUTTON\n }\n\n if (!noLastButton.value) {\n if (!lastPage.value) {\n buttons[buttons.length - 1] = LAST_BUTTON\n buttons[buttons.length - 2] = NEXT_BUTTON\n } else {\n buttons[buttons.length - 1] = NEXT_BUTTON\n buttons[buttons.length - 2] = pages\n }\n } else {\n buttons[buttons.length - 1] = NEXT_BUTTON\n }\n\n // The next case is where the page buttons start at the begginning, with\n // no ellipsis at the beginning, but one at the end\n\n if (value <= halfLimit.value + firstPage.value) {\n for (let index = 1; index <= limit; index++) {\n buttons[index + 1 - noFirstButton.value] = index + firstPage.value\n }\n\n if (!noEllipsis) {\n buttons[buttons.length - (2 + showLastButton.value)] = LAST_ELLIPSIS\n }\n }\n\n // And then we have the case where the page buttons go up to the end, with no\n // ellipsis at the end, but one at the beginning\n\n if (value > pages - halfLimit.value - lastPage.value) {\n const start = pages - (limit - 1) - lastPage.value\n for (let index = 0; index < limit; index++) {\n buttons[index + 2 - noFirstButton.value] = start + index\n }\n\n if (!noEllipsis) {\n buttons[1 + showFirstButton.value] = FIRST_ELLIPSIS\n }\n }\n\n // Finally we have the case where we have ellipsis at both ends\n if (!buttons[2]) {\n // Is there a more elegant way to ceck that we're in the final case?\n const start = value - Math.floor(limit / 2)\n for (let index = 0; index < limit; index++) {\n buttons[index + 2 - noFirstButton.value] = start + index\n }\n\n if (!noEllipsis) {\n buttons[1 + showFirstButton.value] = FIRST_ELLIPSIS\n buttons[buttons.length - (2 + showLastButton.value)] = LAST_ELLIPSIS\n }\n }\n\n //Enable sanity check for debugging purposes\n // for (let i = 0; i < buttons.length; i++) {\n // if (!buttons[i]) {\n // // eslint-disable-next-line no-console\n // console.log(\n // `Failed: button == ${i}, limit=${limit}, pages=${pages}, firstPage=${firstPage}, lastPage=${lastPage}, value=${value}`\n // )\n // }\n // }\n\n return buttons.filter((x) => x !== null) as number[]\n})\n</script>\n\n<script lang=\"ts\">\nconst DEFAULT_PER_PAGE = 20\nconst DEFAULT_TOTAL_ROWS = 0\n</script>\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BPagination-CvoSN1He.mjs","names":[],"sources":["../src/components/BPagination/BPagination.vue","../src/components/BPagination/BPagination.vue"],"sourcesContent":["<template>\n <ul\n class=\"pagination\"\n :class=\"computedWrapperClasses\"\n role=\"menubar\"\n :aria-disabled=\"props.disabled\"\n :aria-label=\"props.ariaLabel || undefined\"\n @keydown=\"handleKeyNav\"\n >\n <li\n v-for=\"(page, index) in pages\"\n :key=\"`page-${page.id}`\"\n v-bind=\"page.li\"\n ref=\"_pageElements\"\n :displayIndex=\"index\"\n >\n <span\n v-if=\"page.id === FIRST_ELLIPSIS || page.id === LAST_ELLIPSIS\"\n v-bind=\"ellipsisProps.span\"\n >\n <slot name=\"ellipsis-text\">\n {{ props.ellipsisText || '...' }}\n </slot>\n </span>\n <component\n v-bind=\"page.button\"\n :is=\"page.button.is\"\n v-else-if=\"'button' in page\"\n @click=\"page.clickHandler\"\n >\n <slot\n :name=\"page.text.name\"\n :disabled=\"page.text.disabled\"\n :page=\"page.text.page\"\n :index=\"page.text.index\"\n :active=\"page.text.active ?? false\"\n :content=\"page.text.value\"\n >\n {{ page.text.value }}\n </slot>\n </component>\n </li>\n </ul>\n</template>\n\n<script setup lang=\"ts\">\nimport {BvEvent} from '../../utils'\nimport {computed, nextTick, useTemplateRef, watch} from 'vue'\nimport {useAlignment} from '../../composables/useAlignment'\nimport {useToNumber} from '@vueuse/core'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {ClassValue} from '../../types/AnyValuedAttributes'\nimport {CODE_DOWN, CODE_LEFT, CODE_RIGHT, CODE_UP} from '../../utils/constants'\nimport {getActiveElement} from '../../utils/dom'\nimport {type BPaginationEmits, type BPaginationSlots, type BPaginationProps} from '../../types'\n\n// Threshold of limit size when we start/stop showing ellipsis\nconst ELLIPSIS_THRESHOLD = 3\n\nconst FIRST_BUTTON = -1\nconst PREV_BUTTON = -2\nconst NEXT_BUTTON = -3\nconst LAST_BUTTON = -4\nconst FIRST_ELLIPSIS = -5\nconst LAST_ELLIPSIS = -6\n\nconst _props = withDefaults(defineProps<Omit<BPaginationProps, 'modelValue'>>(), {\n align: 'start',\n ariaControls: undefined,\n ariaLabel: 'Pagination',\n disabled: false,\n ellipsisClass: undefined,\n ellipsisText: '\\u2026',\n firstClass: undefined,\n firstNumber: false,\n firstText: '\\u00AB',\n noEllipsis: false,\n noGotoEndButtons: false,\n labelFirstPage: 'Go to first page',\n labelLastPage: 'Go to last page',\n labelNextPage: 'Go to next page',\n labelPage: 'Go to page',\n labelPrevPage: 'Go to previous page',\n lastClass: undefined,\n lastNumber: false,\n lastText: '\\u00BB',\n limit: 5,\n nextClass: undefined,\n nextText: '\\u203A',\n pageClass: undefined,\n perPage: DEFAULT_PER_PAGE,\n pills: false,\n prevClass: undefined,\n prevText: '\\u2039',\n size: undefined,\n totalRows: DEFAULT_TOTAL_ROWS,\n})\nconst props = useDefaults(_props, 'BPagination')\nconst emit = defineEmits<BPaginationEmits>()\ndefineSlots<BPaginationSlots>()\n\nconst modelValue = defineModel<Exclude<BPaginationProps['modelValue'], undefined>>({\n default: 1,\n})\n\nconst pageElements = useTemplateRef('_pageElements')\n\nconst limitNumber = useToNumber(() => props.limit, {nanToZero: true, method: 'parseInt'})\nconst perPageNumber = useToNumber(() => props.perPage, {nanToZero: true, method: 'parseInt'})\nconst totalRowsNumber = useToNumber(() => props.totalRows, {nanToZero: true, method: 'parseInt'})\nconst modelValueNumber = useToNumber(modelValue, {nanToZero: true, method: 'parseInt'})\n\nconst perPageSanitized = computed(() => Math.max(perPageNumber.value || DEFAULT_PER_PAGE, 1))\nconst totalRowsSanitized = computed(() => Math.max(totalRowsNumber.value || DEFAULT_TOTAL_ROWS, 0))\n// Use Active to on page-item to denote active tab\nconst numberOfPages = computed(() => Math.ceil(totalRowsSanitized.value / perPageSanitized.value))\nconst computedFill = computed(() => props.align === 'fill')\n// This doesn't use the computedFill util because TS cannot infer that it would never be 'fill'\nconst justifyAlign = computed(() => (props.align === 'fill' ? 'start' : props.align))\n\nconst alignment = useAlignment(justifyAlign)\n\nconst isActivePage = (pageNumber: number) => pageNumber === computedModelValue.value\nconst getTabIndex = (num: number) => (props.disabled ? null : isActivePage(num) ? '0' : '-1')\n\nconst checkDisabled = (num: number) =>\n props.disabled ||\n isActivePage(num) ||\n computedModelValue.value < 1 ||\n // Check if the number is out of bounds\n num < 1 ||\n num > numberOfPages.value\n\nconst firstDisabled = computed(() => checkDisabled(1))\nconst prevDisabled = computed(() => checkDisabled(computedModelValue.value - 1))\nconst lastDisabled = computed(() => checkDisabled(numberOfPages.value))\nconst nextDisabled = computed(() => checkDisabled(computedModelValue.value + 1))\n\nconst getBaseButtonProps = ({\n page,\n classVal,\n disabled,\n slotName,\n textValue,\n tabIndex,\n label,\n position,\n isActive,\n hidden,\n isSmHidden,\n}: {\n page: number\n disabled: boolean\n classVal: ClassValue\n slotName: 'first-text' | 'prev-text' | 'next-text' | 'last-text' | 'page'\n textValue?: string\n tabIndex?: string\n label?: string\n position?: number\n isActive?: boolean\n hidden?: boolean\n isSmHidden?: boolean\n}) => ({\n li: {\n 'class': [\n 'page-item',\n {\n 'active': isActive,\n disabled,\n 'bv-d-sm-down-none': isSmHidden,\n 'flex-fill': computedFill.value,\n 'd-flex': computedFill.value && !disabled,\n },\n classVal,\n ],\n 'role': 'presentation',\n 'aria-hidden': hidden,\n },\n button: {\n 'is': disabled ? 'span' : 'button',\n 'class': ['page-link', 'text-center', {'flex-grow-1': !disabled && computedFill.value}],\n 'aria-label': label,\n 'aria-controls': props.ariaControls || undefined,\n 'aria-disabled': disabled ? true : undefined,\n 'aria-posinset': position,\n 'aria-setsize': position ? numberOfPages.value : undefined,\n 'role': 'menuitem',\n 'type': disabled ? undefined : 'button',\n 'tabindex': disabled ? undefined : tabIndex,\n },\n text: {\n name: slotName,\n active: isActive,\n value: textValue ?? page,\n page,\n disabled,\n index: page - 1,\n content: textValue ? undefined : String(page),\n },\n clickHandler: (e: Readonly<MouseEvent>) => pageClick(e, page),\n})\n\nconst getButtonProps = ({\n page,\n classVal,\n disabled,\n slotName,\n textValue,\n label,\n}: {\n page: number\n disabled: boolean\n classVal: ClassValue\n slotName: 'first-text' | 'prev-text' | 'next-text' | 'last-text' | 'page'\n textValue?: string\n label: string\n}) => getBaseButtonProps({page, classVal, disabled, slotName, textValue, label, tabIndex: '-1'})\n\nconst getPageButtonProps = (page: number, isSmHidden?: boolean) =>\n getBaseButtonProps({\n page,\n disabled: props.disabled,\n classVal: props.pageClass,\n slotName: 'page',\n label: props.labelPage ? `${props.labelPage} ${page}` : undefined,\n tabIndex: getTabIndex(page) ?? undefined,\n position: page,\n isActive: isActivePage(page),\n isSmHidden,\n })\n\nconst firstButtonProps = computed(() =>\n getButtonProps({\n page: 1,\n disabled: firstDisabled.value,\n classVal: props.firstClass,\n slotName: 'first-text',\n textValue: props.firstText,\n label: props.labelFirstPage,\n })\n)\nconst prevButtonProps = computed(() =>\n getButtonProps({\n page: Math.max(computedModelValue.value - 1, 1),\n disabled: prevDisabled.value,\n classVal: props.prevClass,\n slotName: 'prev-text',\n textValue: props.prevText,\n label: props.labelPrevPage,\n })\n)\nconst nextButtonProps = computed(() =>\n getButtonProps({\n page: Math.min(computedModelValue.value + 1, numberOfPages.value),\n disabled: nextDisabled.value,\n classVal: props.nextClass,\n slotName: 'next-text',\n textValue: props.nextText,\n label: props.labelNextPage,\n })\n)\nconst lastButtonProps = computed(() =>\n getButtonProps({\n page: numberOfPages.value,\n disabled: lastDisabled.value,\n classVal: props.lastClass,\n slotName: 'last-text',\n textValue: props.lastText,\n label: props.labelLastPage,\n })\n)\n\nconst ellipsisProps = computed(() => ({\n li: {\n class: [\n 'page-item',\n 'disabled',\n 'text-center',\n 'bv-d-sm-down-none',\n computedFill.value ? 'flex-fill' : '',\n props.ellipsisClass,\n ],\n role: 'separator',\n },\n span: {\n class: ['page-link'],\n },\n}))\n\nconst computedWrapperClasses = computed(() => [\n alignment.value,\n {\n [`pagination-${props.size}`]: props.size !== undefined,\n 'b-pagination-pills': props.pills,\n },\n])\n\nconst pagination = computed(() => ({\n pageSize: perPageSanitized.value,\n totalRows: totalRowsNumber.value,\n numberOfPages: numberOfPages.value,\n}))\n\nconst pageClick = (event: Readonly<MouseEvent>, pageNumber: number) => {\n if (pageNumber === computedModelValue.value) return\n const clickEvent = new BvEvent('page-click', {\n cancelable: true,\n target: event.target,\n })\n emit('page-click', clickEvent, pageNumber)\n\n if (clickEvent.defaultPrevented) return\n\n modelValue.value = pageNumber\n\n nextTick(() => {\n if (pageNumber === 1) {\n focusFirst()\n } else if (pageNumber === pagination.value.numberOfPages) {\n focusLast()\n }\n })\n // nextTick(() => {\n // if (isVisible(target) && un_element.contains(target)) {\n // attemptFocus(target)\n //} else {\n //this.focusCurrent()\n //}\n // })\n}\n\nconst isDisabled = (el: HTMLButtonElement) => {\n const isElement = el && el.nodeType === Node.ELEMENT_NODE\n const hasAttr = isElement ? el.hasAttribute('disabled') : null\n const hasClass = isElement && el.classList ? el.classList.contains('disabled') : false\n\n return !isElement || el.disabled || hasAttr || hasClass\n}\n\nconst getButtons = (): HTMLButtonElement[] =>\n [...(pageElements.value ?? [])]\n .sort(\n (a, b) =>\n Number.parseInt(a.getAttribute('displayIndex') || '0') -\n Number.parseInt(b.getAttribute('displayIndex') || '0')\n )\n .map((page) => page.children[0])\n .filter((el) => {\n if (el?.getAttribute('display') === 'none' || el?.tagName.toUpperCase() !== 'BUTTON') {\n return false\n }\n\n const bcr = el?.getBoundingClientRect()\n\n return !!(bcr && bcr.height > 0 && bcr.width > 0)\n })\n .map((el) => el as HTMLButtonElement)\n\nconst focusFirst = () => {\n nextTick(() => {\n const btn = getButtons().find((el) => !isDisabled(el))\n btn?.focus()\n })\n}\n\nconst focusPrev = () => {\n nextTick(() => {\n const buttons = getButtons()\n const index = buttons.indexOf(getActiveElement() as HTMLButtonElement)\n\n const button = buttons[index - 1]\n if (index > 0 && button !== undefined && !isDisabled(button)) {\n buttons[index - 1]?.focus()\n }\n })\n}\n\nconst focusLast = () => {\n nextTick(() => {\n const btn = getButtons()\n .reverse()\n .find((el) => !isDisabled(el))\n btn?.focus()\n })\n}\n\nconst focusNext = () => {\n nextTick(() => {\n const buttons = getButtons()\n const index = buttons.indexOf(getActiveElement() as HTMLButtonElement)\n const button = buttons[index + 1]\n if (index < buttons.length - 1 && button !== undefined && !isDisabled(button)) {\n buttons[index + 1]?.focus()\n }\n })\n}\n\nconst handleKeyNav = (event: KeyboardEvent) => {\n const {code, shiftKey} = event\n if (code === CODE_LEFT || code === CODE_UP) {\n event.preventDefault()\n if (shiftKey) {\n focusFirst()\n } else {\n focusPrev()\n }\n } else if (code === CODE_RIGHT || code === CODE_DOWN) {\n event.preventDefault()\n if (shiftKey) {\n focusLast()\n } else {\n focusNext()\n }\n }\n}\n\nconst computedModelValue = computed(() => {\n const page = modelValueNumber.value || 1\n return page > numberOfPages.value ? numberOfPages.value : page < 1 ? 1 : page\n})\n\nwatch(pagination, (oldValue, newValue) => {\n if (newValue.pageSize !== oldValue.pageSize && newValue.totalRows === oldValue.totalRows) {\n // If the page size changes, reset to page 1\n modelValue.value = 1\n }\n})\n\nconst noFirstButton = computed(() => (props.noGotoEndButtons && !props.firstNumber ? 1 : 0))\nconst noLastButton = computed(() => (props.noGotoEndButtons && !props.lastNumber ? 1 : 0))\nconst showFirstButton = computed(() => (noFirstButton.value ? 0 : 1))\nconst showLastButton = computed(() => (noLastButton.value ? 0 : 1))\nconst firstPage = computed(() => (props.firstNumber ? 1 : 0))\nconst lastPage = computed(() => (props.lastNumber ? 1 : 0))\nconst halfLimit = computed(() => Math.floor(limitNumber.value / 2))\n\nconst pages = computed(() => {\n const {value} = computedModelValue\n\n const els = elements.value.map((p) => {\n switch (p) {\n case FIRST_BUTTON:\n return {id: p, ...firstButtonProps.value}\n case PREV_BUTTON:\n return {id: p, ...prevButtonProps.value}\n case NEXT_BUTTON:\n return {id: p, ...nextButtonProps.value}\n case LAST_BUTTON:\n return {id: p, ...lastButtonProps.value}\n case FIRST_ELLIPSIS:\n case LAST_ELLIPSIS:\n return {id: p, ...ellipsisProps.value}\n default:\n return {id: p, ...getPageButtonProps(p)}\n }\n })\n\n if (numberOfPages.value > 3) {\n if (value > numberOfPages.value - halfLimit.value - lastPage.value) {\n const idx = 2 + showFirstButton.value\n const el = els[idx]\n if (el !== undefined) {\n els[idx] = {id: el.id, ...getPageButtonProps(el.id, true)}\n }\n }\n\n if (value <= halfLimit.value + firstPage.value) {\n const idx = els.length - (3 + showLastButton.value)\n const el = els[idx]\n if (el !== undefined) {\n els[idx] = {id: el.id, ...getPageButtonProps(el.id, true)}\n }\n }\n }\n\n return els\n})\n\nconst elements = computed(() => {\n // The idea here is to create an array of all the buttons on the page control.\n // This way we can keep the invariants in one place and the template code just\n // iterates over the array.\n\n const pages = numberOfPages.value\n const {value} = computedModelValue\n const limit = limitNumber.value\n const noEllipsis = props.noEllipsis || limit <= ELLIPSIS_THRESHOLD\n\n // The first case is when all of the page buttons fit on the control, this is\n // the simplest case and the only one that will create an array smaller than\n // Limit + 4 - noEndButtons * 2 (the [first, last,] prev, next buttons)\n\n if (pages < limit + firstPage.value + lastPage.value) {\n return [\n !firstPage.value && !noFirstButton.value ? FIRST_BUTTON : null,\n PREV_BUTTON,\n ...Array.from({length: pages}, (_, index) => index + 1),\n NEXT_BUTTON,\n !lastPage.value && !noLastButton.value ? LAST_BUTTON : null,\n ].filter((x) => x !== null) as number[]\n }\n\n // All of the remaining cases result in an array that is exactly limit + 4 - noEndButtons * 2 in length, so create\n // the array upfront and set up the beginning and end buttons, then fill the rest for each case\n\n const buttons = Array.from({length: limit + 4 - (noFirstButton.value + noLastButton.value)})\n if (!noFirstButton.value) {\n if (!firstPage.value) {\n buttons[0] = FIRST_BUTTON\n buttons[1] = PREV_BUTTON\n } else {\n buttons[0] = PREV_BUTTON\n buttons[1] = 1\n }\n } else {\n buttons[0] = PREV_BUTTON\n }\n\n if (!noLastButton.value) {\n if (!lastPage.value) {\n buttons[buttons.length - 1] = LAST_BUTTON\n buttons[buttons.length - 2] = NEXT_BUTTON\n } else {\n buttons[buttons.length - 1] = NEXT_BUTTON\n buttons[buttons.length - 2] = pages\n }\n } else {\n buttons[buttons.length - 1] = NEXT_BUTTON\n }\n\n // The next case is where the page buttons start at the begginning, with\n // no ellipsis at the beginning, but one at the end\n\n if (value <= halfLimit.value + firstPage.value) {\n for (let index = 1; index <= limit; index++) {\n buttons[index + 1 - noFirstButton.value] = index + firstPage.value\n }\n\n if (!noEllipsis) {\n buttons[buttons.length - (2 + showLastButton.value)] = LAST_ELLIPSIS\n }\n }\n\n // And then we have the case where the page buttons go up to the end, with no\n // ellipsis at the end, but one at the beginning\n\n if (value > pages - halfLimit.value - lastPage.value) {\n const start = pages - (limit - 1) - lastPage.value\n for (let index = 0; index < limit; index++) {\n buttons[index + 2 - noFirstButton.value] = start + index\n }\n\n if (!noEllipsis) {\n buttons[1 + showFirstButton.value] = FIRST_ELLIPSIS\n }\n }\n\n // Finally we have the case where we have ellipsis at both ends\n if (!buttons[2]) {\n // Is there a more elegant way to ceck that we're in the final case?\n const start = value - Math.floor(limit / 2)\n for (let index = 0; index < limit; index++) {\n buttons[index + 2 - noFirstButton.value] = start + index\n }\n\n if (!noEllipsis) {\n buttons[1 + showFirstButton.value] = FIRST_ELLIPSIS\n buttons[buttons.length - (2 + showLastButton.value)] = LAST_ELLIPSIS\n }\n }\n\n //Enable sanity check for debugging purposes\n // for (let i = 0; i < buttons.length; i++) {\n // if (!buttons[i]) {\n // // eslint-disable-next-line no-console\n // console.log(\n // `Failed: button == ${i}, limit=${limit}, pages=${pages}, firstPage=${firstPage}, lastPage=${lastPage}, value=${value}`\n // )\n // }\n // }\n\n return buttons.filter((x) => x !== null) as number[]\n})\n</script>\n\n<script lang=\"ts\">\nconst DEFAULT_PER_PAGE = 20\nconst DEFAULT_TOTAL_ROWS = 0\n</script>\n","<template>\n <ul\n class=\"pagination\"\n :class=\"computedWrapperClasses\"\n role=\"menubar\"\n :aria-disabled=\"props.disabled\"\n :aria-label=\"props.ariaLabel || undefined\"\n @keydown=\"handleKeyNav\"\n >\n <li\n v-for=\"(page, index) in pages\"\n :key=\"`page-${page.id}`\"\n v-bind=\"page.li\"\n ref=\"_pageElements\"\n :displayIndex=\"index\"\n >\n <span\n v-if=\"page.id === FIRST_ELLIPSIS || page.id === LAST_ELLIPSIS\"\n v-bind=\"ellipsisProps.span\"\n >\n <slot name=\"ellipsis-text\">\n {{ props.ellipsisText || '...' }}\n </slot>\n </span>\n <component\n v-bind=\"page.button\"\n :is=\"page.button.is\"\n v-else-if=\"'button' in page\"\n @click=\"page.clickHandler\"\n >\n <slot\n :name=\"page.text.name\"\n :disabled=\"page.text.disabled\"\n :page=\"page.text.page\"\n :index=\"page.text.index\"\n :active=\"page.text.active ?? false\"\n :content=\"page.text.value\"\n >\n {{ page.text.value }}\n </slot>\n </component>\n </li>\n </ul>\n</template>\n\n<script setup lang=\"ts\">\nimport {BvEvent} from '../../utils'\nimport {computed, nextTick, useTemplateRef, watch} from 'vue'\nimport {useAlignment} from '../../composables/useAlignment'\nimport {useToNumber} from '@vueuse/core'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {ClassValue} from '../../types/AnyValuedAttributes'\nimport {CODE_DOWN, CODE_LEFT, CODE_RIGHT, CODE_UP} from '../../utils/constants'\nimport {getActiveElement} from '../../utils/dom'\nimport {type BPaginationEmits, type BPaginationSlots, type BPaginationProps} from '../../types'\n\n// Threshold of limit size when we start/stop showing ellipsis\nconst ELLIPSIS_THRESHOLD = 3\n\nconst FIRST_BUTTON = -1\nconst PREV_BUTTON = -2\nconst NEXT_BUTTON = -3\nconst LAST_BUTTON = -4\nconst FIRST_ELLIPSIS = -5\nconst LAST_ELLIPSIS = -6\n\nconst _props = withDefaults(defineProps<Omit<BPaginationProps, 'modelValue'>>(), {\n align: 'start',\n ariaControls: undefined,\n ariaLabel: 'Pagination',\n disabled: false,\n ellipsisClass: undefined,\n ellipsisText: '\\u2026',\n firstClass: undefined,\n firstNumber: false,\n firstText: '\\u00AB',\n noEllipsis: false,\n noGotoEndButtons: false,\n labelFirstPage: 'Go to first page',\n labelLastPage: 'Go to last page',\n labelNextPage: 'Go to next page',\n labelPage: 'Go to page',\n labelPrevPage: 'Go to previous page',\n lastClass: undefined,\n lastNumber: false,\n lastText: '\\u00BB',\n limit: 5,\n nextClass: undefined,\n nextText: '\\u203A',\n pageClass: undefined,\n perPage: DEFAULT_PER_PAGE,\n pills: false,\n prevClass: undefined,\n prevText: '\\u2039',\n size: undefined,\n totalRows: DEFAULT_TOTAL_ROWS,\n})\nconst props = useDefaults(_props, 'BPagination')\nconst emit = defineEmits<BPaginationEmits>()\ndefineSlots<BPaginationSlots>()\n\nconst modelValue = defineModel<Exclude<BPaginationProps['modelValue'], undefined>>({\n default: 1,\n})\n\nconst pageElements = useTemplateRef('_pageElements')\n\nconst limitNumber = useToNumber(() => props.limit, {nanToZero: true, method: 'parseInt'})\nconst perPageNumber = useToNumber(() => props.perPage, {nanToZero: true, method: 'parseInt'})\nconst totalRowsNumber = useToNumber(() => props.totalRows, {nanToZero: true, method: 'parseInt'})\nconst modelValueNumber = useToNumber(modelValue, {nanToZero: true, method: 'parseInt'})\n\nconst perPageSanitized = computed(() => Math.max(perPageNumber.value || DEFAULT_PER_PAGE, 1))\nconst totalRowsSanitized = computed(() => Math.max(totalRowsNumber.value || DEFAULT_TOTAL_ROWS, 0))\n// Use Active to on page-item to denote active tab\nconst numberOfPages = computed(() => Math.ceil(totalRowsSanitized.value / perPageSanitized.value))\nconst computedFill = computed(() => props.align === 'fill')\n// This doesn't use the computedFill util because TS cannot infer that it would never be 'fill'\nconst justifyAlign = computed(() => (props.align === 'fill' ? 'start' : props.align))\n\nconst alignment = useAlignment(justifyAlign)\n\nconst isActivePage = (pageNumber: number) => pageNumber === computedModelValue.value\nconst getTabIndex = (num: number) => (props.disabled ? null : isActivePage(num) ? '0' : '-1')\n\nconst checkDisabled = (num: number) =>\n props.disabled ||\n isActivePage(num) ||\n computedModelValue.value < 1 ||\n // Check if the number is out of bounds\n num < 1 ||\n num > numberOfPages.value\n\nconst firstDisabled = computed(() => checkDisabled(1))\nconst prevDisabled = computed(() => checkDisabled(computedModelValue.value - 1))\nconst lastDisabled = computed(() => checkDisabled(numberOfPages.value))\nconst nextDisabled = computed(() => checkDisabled(computedModelValue.value + 1))\n\nconst getBaseButtonProps = ({\n page,\n classVal,\n disabled,\n slotName,\n textValue,\n tabIndex,\n label,\n position,\n isActive,\n hidden,\n isSmHidden,\n}: {\n page: number\n disabled: boolean\n classVal: ClassValue\n slotName: 'first-text' | 'prev-text' | 'next-text' | 'last-text' | 'page'\n textValue?: string\n tabIndex?: string\n label?: string\n position?: number\n isActive?: boolean\n hidden?: boolean\n isSmHidden?: boolean\n}) => ({\n li: {\n 'class': [\n 'page-item',\n {\n 'active': isActive,\n disabled,\n 'bv-d-sm-down-none': isSmHidden,\n 'flex-fill': computedFill.value,\n 'd-flex': computedFill.value && !disabled,\n },\n classVal,\n ],\n 'role': 'presentation',\n 'aria-hidden': hidden,\n },\n button: {\n 'is': disabled ? 'span' : 'button',\n 'class': ['page-link', 'text-center', {'flex-grow-1': !disabled && computedFill.value}],\n 'aria-label': label,\n 'aria-controls': props.ariaControls || undefined,\n 'aria-disabled': disabled ? true : undefined,\n 'aria-posinset': position,\n 'aria-setsize': position ? numberOfPages.value : undefined,\n 'role': 'menuitem',\n 'type': disabled ? undefined : 'button',\n 'tabindex': disabled ? undefined : tabIndex,\n },\n text: {\n name: slotName,\n active: isActive,\n value: textValue ?? page,\n page,\n disabled,\n index: page - 1,\n content: textValue ? undefined : String(page),\n },\n clickHandler: (e: Readonly<MouseEvent>) => pageClick(e, page),\n})\n\nconst getButtonProps = ({\n page,\n classVal,\n disabled,\n slotName,\n textValue,\n label,\n}: {\n page: number\n disabled: boolean\n classVal: ClassValue\n slotName: 'first-text' | 'prev-text' | 'next-text' | 'last-text' | 'page'\n textValue?: string\n label: string\n}) => getBaseButtonProps({page, classVal, disabled, slotName, textValue, label, tabIndex: '-1'})\n\nconst getPageButtonProps = (page: number, isSmHidden?: boolean) =>\n getBaseButtonProps({\n page,\n disabled: props.disabled,\n classVal: props.pageClass,\n slotName: 'page',\n label: props.labelPage ? `${props.labelPage} ${page}` : undefined,\n tabIndex: getTabIndex(page) ?? undefined,\n position: page,\n isActive: isActivePage(page),\n isSmHidden,\n })\n\nconst firstButtonProps = computed(() =>\n getButtonProps({\n page: 1,\n disabled: firstDisabled.value,\n classVal: props.firstClass,\n slotName: 'first-text',\n textValue: props.firstText,\n label: props.labelFirstPage,\n })\n)\nconst prevButtonProps = computed(() =>\n getButtonProps({\n page: Math.max(computedModelValue.value - 1, 1),\n disabled: prevDisabled.value,\n classVal: props.prevClass,\n slotName: 'prev-text',\n textValue: props.prevText,\n label: props.labelPrevPage,\n })\n)\nconst nextButtonProps = computed(() =>\n getButtonProps({\n page: Math.min(computedModelValue.value + 1, numberOfPages.value),\n disabled: nextDisabled.value,\n classVal: props.nextClass,\n slotName: 'next-text',\n textValue: props.nextText,\n label: props.labelNextPage,\n })\n)\nconst lastButtonProps = computed(() =>\n getButtonProps({\n page: numberOfPages.value,\n disabled: lastDisabled.value,\n classVal: props.lastClass,\n slotName: 'last-text',\n textValue: props.lastText,\n label: props.labelLastPage,\n })\n)\n\nconst ellipsisProps = computed(() => ({\n li: {\n class: [\n 'page-item',\n 'disabled',\n 'text-center',\n 'bv-d-sm-down-none',\n computedFill.value ? 'flex-fill' : '',\n props.ellipsisClass,\n ],\n role: 'separator',\n },\n span: {\n class: ['page-link'],\n },\n}))\n\nconst computedWrapperClasses = computed(() => [\n alignment.value,\n {\n [`pagination-${props.size}`]: props.size !== undefined,\n 'b-pagination-pills': props.pills,\n },\n])\n\nconst pagination = computed(() => ({\n pageSize: perPageSanitized.value,\n totalRows: totalRowsNumber.value,\n numberOfPages: numberOfPages.value,\n}))\n\nconst pageClick = (event: Readonly<MouseEvent>, pageNumber: number) => {\n if (pageNumber === computedModelValue.value) return\n const clickEvent = new BvEvent('page-click', {\n cancelable: true,\n target: event.target,\n })\n emit('page-click', clickEvent, pageNumber)\n\n if (clickEvent.defaultPrevented) return\n\n modelValue.value = pageNumber\n\n nextTick(() => {\n if (pageNumber === 1) {\n focusFirst()\n } else if (pageNumber === pagination.value.numberOfPages) {\n focusLast()\n }\n })\n // nextTick(() => {\n // if (isVisible(target) && un_element.contains(target)) {\n // attemptFocus(target)\n //} else {\n //this.focusCurrent()\n //}\n // })\n}\n\nconst isDisabled = (el: HTMLButtonElement) => {\n const isElement = el && el.nodeType === Node.ELEMENT_NODE\n const hasAttr = isElement ? el.hasAttribute('disabled') : null\n const hasClass = isElement && el.classList ? el.classList.contains('disabled') : false\n\n return !isElement || el.disabled || hasAttr || hasClass\n}\n\nconst getButtons = (): HTMLButtonElement[] =>\n [...(pageElements.value ?? [])]\n .sort(\n (a, b) =>\n Number.parseInt(a.getAttribute('displayIndex') || '0') -\n Number.parseInt(b.getAttribute('displayIndex') || '0')\n )\n .map((page) => page.children[0])\n .filter((el) => {\n if (el?.getAttribute('display') === 'none' || el?.tagName.toUpperCase() !== 'BUTTON') {\n return false\n }\n\n const bcr = el?.getBoundingClientRect()\n\n return !!(bcr && bcr.height > 0 && bcr.width > 0)\n })\n .map((el) => el as HTMLButtonElement)\n\nconst focusFirst = () => {\n nextTick(() => {\n const btn = getButtons().find((el) => !isDisabled(el))\n btn?.focus()\n })\n}\n\nconst focusPrev = () => {\n nextTick(() => {\n const buttons = getButtons()\n const index = buttons.indexOf(getActiveElement() as HTMLButtonElement)\n\n const button = buttons[index - 1]\n if (index > 0 && button !== undefined && !isDisabled(button)) {\n buttons[index - 1]?.focus()\n }\n })\n}\n\nconst focusLast = () => {\n nextTick(() => {\n const btn = getButtons()\n .reverse()\n .find((el) => !isDisabled(el))\n btn?.focus()\n })\n}\n\nconst focusNext = () => {\n nextTick(() => {\n const buttons = getButtons()\n const index = buttons.indexOf(getActiveElement() as HTMLButtonElement)\n const button = buttons[index + 1]\n if (index < buttons.length - 1 && button !== undefined && !isDisabled(button)) {\n buttons[index + 1]?.focus()\n }\n })\n}\n\nconst handleKeyNav = (event: KeyboardEvent) => {\n const {code, shiftKey} = event\n if (code === CODE_LEFT || code === CODE_UP) {\n event.preventDefault()\n if (shiftKey) {\n focusFirst()\n } else {\n focusPrev()\n }\n } else if (code === CODE_RIGHT || code === CODE_DOWN) {\n event.preventDefault()\n if (shiftKey) {\n focusLast()\n } else {\n focusNext()\n }\n }\n}\n\nconst computedModelValue = computed(() => {\n const page = modelValueNumber.value || 1\n return page > numberOfPages.value ? numberOfPages.value : page < 1 ? 1 : page\n})\n\nwatch(pagination, (oldValue, newValue) => {\n if (newValue.pageSize !== oldValue.pageSize && newValue.totalRows === oldValue.totalRows) {\n // If the page size changes, reset to page 1\n modelValue.value = 1\n }\n})\n\nconst noFirstButton = computed(() => (props.noGotoEndButtons && !props.firstNumber ? 1 : 0))\nconst noLastButton = computed(() => (props.noGotoEndButtons && !props.lastNumber ? 1 : 0))\nconst showFirstButton = computed(() => (noFirstButton.value ? 0 : 1))\nconst showLastButton = computed(() => (noLastButton.value ? 0 : 1))\nconst firstPage = computed(() => (props.firstNumber ? 1 : 0))\nconst lastPage = computed(() => (props.lastNumber ? 1 : 0))\nconst halfLimit = computed(() => Math.floor(limitNumber.value / 2))\n\nconst pages = computed(() => {\n const {value} = computedModelValue\n\n const els = elements.value.map((p) => {\n switch (p) {\n case FIRST_BUTTON:\n return {id: p, ...firstButtonProps.value}\n case PREV_BUTTON:\n return {id: p, ...prevButtonProps.value}\n case NEXT_BUTTON:\n return {id: p, ...nextButtonProps.value}\n case LAST_BUTTON:\n return {id: p, ...lastButtonProps.value}\n case FIRST_ELLIPSIS:\n case LAST_ELLIPSIS:\n return {id: p, ...ellipsisProps.value}\n default:\n return {id: p, ...getPageButtonProps(p)}\n }\n })\n\n if (numberOfPages.value > 3) {\n if (value > numberOfPages.value - halfLimit.value - lastPage.value) {\n const idx = 2 + showFirstButton.value\n const el = els[idx]\n if (el !== undefined) {\n els[idx] = {id: el.id, ...getPageButtonProps(el.id, true)}\n }\n }\n\n if (value <= halfLimit.value + firstPage.value) {\n const idx = els.length - (3 + showLastButton.value)\n const el = els[idx]\n if (el !== undefined) {\n els[idx] = {id: el.id, ...getPageButtonProps(el.id, true)}\n }\n }\n }\n\n return els\n})\n\nconst elements = computed(() => {\n // The idea here is to create an array of all the buttons on the page control.\n // This way we can keep the invariants in one place and the template code just\n // iterates over the array.\n\n const pages = numberOfPages.value\n const {value} = computedModelValue\n const limit = limitNumber.value\n const noEllipsis = props.noEllipsis || limit <= ELLIPSIS_THRESHOLD\n\n // The first case is when all of the page buttons fit on the control, this is\n // the simplest case and the only one that will create an array smaller than\n // Limit + 4 - noEndButtons * 2 (the [first, last,] prev, next buttons)\n\n if (pages < limit + firstPage.value + lastPage.value) {\n return [\n !firstPage.value && !noFirstButton.value ? FIRST_BUTTON : null,\n PREV_BUTTON,\n ...Array.from({length: pages}, (_, index) => index + 1),\n NEXT_BUTTON,\n !lastPage.value && !noLastButton.value ? LAST_BUTTON : null,\n ].filter((x) => x !== null) as number[]\n }\n\n // All of the remaining cases result in an array that is exactly limit + 4 - noEndButtons * 2 in length, so create\n // the array upfront and set up the beginning and end buttons, then fill the rest for each case\n\n const buttons = Array.from({length: limit + 4 - (noFirstButton.value + noLastButton.value)})\n if (!noFirstButton.value) {\n if (!firstPage.value) {\n buttons[0] = FIRST_BUTTON\n buttons[1] = PREV_BUTTON\n } else {\n buttons[0] = PREV_BUTTON\n buttons[1] = 1\n }\n } else {\n buttons[0] = PREV_BUTTON\n }\n\n if (!noLastButton.value) {\n if (!lastPage.value) {\n buttons[buttons.length - 1] = LAST_BUTTON\n buttons[buttons.length - 2] = NEXT_BUTTON\n } else {\n buttons[buttons.length - 1] = NEXT_BUTTON\n buttons[buttons.length - 2] = pages\n }\n } else {\n buttons[buttons.length - 1] = NEXT_BUTTON\n }\n\n // The next case is where the page buttons start at the begginning, with\n // no ellipsis at the beginning, but one at the end\n\n if (value <= halfLimit.value + firstPage.value) {\n for (let index = 1; index <= limit; index++) {\n buttons[index + 1 - noFirstButton.value] = index + firstPage.value\n }\n\n if (!noEllipsis) {\n buttons[buttons.length - (2 + showLastButton.value)] = LAST_ELLIPSIS\n }\n }\n\n // And then we have the case where the page buttons go up to the end, with no\n // ellipsis at the end, but one at the beginning\n\n if (value > pages - halfLimit.value - lastPage.value) {\n const start = pages - (limit - 1) - lastPage.value\n for (let index = 0; index < limit; index++) {\n buttons[index + 2 - noFirstButton.value] = start + index\n }\n\n if (!noEllipsis) {\n buttons[1 + showFirstButton.value] = FIRST_ELLIPSIS\n }\n }\n\n // Finally we have the case where we have ellipsis at both ends\n if (!buttons[2]) {\n // Is there a more elegant way to ceck that we're in the final case?\n const start = value - Math.floor(limit / 2)\n for (let index = 0; index < limit; index++) {\n buttons[index + 2 - noFirstButton.value] = start + index\n }\n\n if (!noEllipsis) {\n buttons[1 + showFirstButton.value] = FIRST_ELLIPSIS\n buttons[buttons.length - (2 + showLastButton.value)] = LAST_ELLIPSIS\n }\n }\n\n //Enable sanity check for debugging purposes\n // for (let i = 0; i < buttons.length; i++) {\n // if (!buttons[i]) {\n // // eslint-disable-next-line no-console\n // console.log(\n // `Failed: button == ${i}, limit=${limit}, pages=${pages}, firstPage=${firstPage}, lastPage=${lastPage}, value=${value}`\n // )\n // }\n // }\n\n return buttons.filter((x) => x !== null) as number[]\n})\n</script>\n\n<script lang=\"ts\">\nconst DEFAULT_PER_PAGE = 20\nconst DEFAULT_TOTAL_ROWS = 0\n</script>\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BPlaceholder-DKDtjMjy.mjs","names":["$attrs"],"sources":["../src/components/BPlaceholder/BPlaceholder.vue","../src/components/BPlaceholder/BPlaceholder.vue","../src/components/BPlaceholder/BPlaceholderButton.vue","../src/components/BPlaceholder/BPlaceholderButton.vue","../src/components/BPlaceholder/BPlaceholderCard.vue","../src/components/BPlaceholder/BPlaceholderCard.vue","../src/components/BPlaceholder/BPlaceholderTable.vue","../src/components/BPlaceholder/BPlaceholderTable.vue","../src/components/BPlaceholder/BPlaceholderWrapper.vue","../src/components/BPlaceholder/BPlaceholderWrapper.vue"],"sourcesContent":["<template>\n <component :is=\"props.wrapperTag\" :class=\"wrapperClasses\">\n <component\n v-bind=\"$attrs\"\n :is=\"tag\"\n class=\"placeholder\"\n :class=\"computedClasses\"\n :style=\"computedStyle\"\n />\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, type CSSProperties} from 'vue'\nimport type {BPlaceholderProps} from '../../types/ComponentProps'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BPlaceholderProps>(), {\n animation: undefined,\n cols: 12,\n size: undefined,\n tag: 'span',\n variant: null,\n width: undefined,\n wrapperTag: 'span',\n})\nconst props = useDefaults(_props, 'BPlaceholder')\n\nconst widthString = computed(() =>\n props.width === undefined\n ? undefined\n : typeof props.width === 'number'\n ? props.width.toString()\n : props.width.replace('%', '')\n)\n\nconst colsString = computed(() =>\n props.cols === undefined\n ? undefined\n : typeof props.cols === 'number'\n ? props.cols.toString()\n : props.cols\n)\n\nconst colorClasses = useColorVariantClasses(\n computed(() => ({\n bgVariant: props.variant,\n }))\n)\nconst computedClasses = computed(() => [\n colorClasses.value,\n {\n [`col-${colsString.value}`]: colsString.value !== undefined && widthString.value === undefined,\n [`placeholder-${props.size}`]: props.size !== undefined,\n },\n])\n\nconst wrapperClasses = computed(() => ({\n [`placeholder-${props.animation}`]: props.animation !== undefined,\n}))\n\nconst computedStyle = computed<CSSProperties>(() => ({\n width: widthString.value === undefined ? undefined : `${widthString.value}%`,\n}))\n</script>\n","<template>\n <component :is=\"props.wrapperTag\" :class=\"wrapperClasses\">\n <component\n v-bind=\"$attrs\"\n :is=\"tag\"\n class=\"placeholder\"\n :class=\"computedClasses\"\n :style=\"computedStyle\"\n />\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, type CSSProperties} from 'vue'\nimport type {BPlaceholderProps} from '../../types/ComponentProps'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BPlaceholderProps>(), {\n animation: undefined,\n cols: 12,\n size: undefined,\n tag: 'span',\n variant: null,\n width: undefined,\n wrapperTag: 'span',\n})\nconst props = useDefaults(_props, 'BPlaceholder')\n\nconst widthString = computed(() =>\n props.width === undefined\n ? undefined\n : typeof props.width === 'number'\n ? props.width.toString()\n : props.width.replace('%', '')\n)\n\nconst colsString = computed(() =>\n props.cols === undefined\n ? undefined\n : typeof props.cols === 'number'\n ? props.cols.toString()\n : props.cols\n)\n\nconst colorClasses = useColorVariantClasses(\n computed(() => ({\n bgVariant: props.variant,\n }))\n)\nconst computedClasses = computed(() => [\n colorClasses.value,\n {\n [`col-${colsString.value}`]: colsString.value !== undefined && widthString.value === undefined,\n [`placeholder-${props.size}`]: props.size !== undefined,\n },\n])\n\nconst wrapperClasses = computed(() => ({\n [`placeholder-${props.animation}`]: props.animation !== undefined,\n}))\n\nconst computedStyle = computed<CSSProperties>(() => ({\n width: widthString.value === undefined ? undefined : `${widthString.value}%`,\n}))\n</script>\n","<template>\n <BPlaceholder\n class=\"btn disabled\"\n :class=\"computedClasses\"\n :animation=\"props.animation\"\n :width=\"props.width\"\n :cols=\"props.cols\"\n :tag=\"props.tag\"\n :style=\"{'cursor': 'wait', 'pointer-events': 'auto'}\"\n />\n</template>\n\n<script setup lang=\"ts\">\nimport BPlaceholder from './BPlaceholder.vue'\nimport type {BPlaceholderButtonProps} from '../../types/ComponentProps'\nimport {computed} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\n\nconst _props = withDefaults(defineProps<BPlaceholderButtonProps>(), {\n animation: undefined,\n cols: undefined,\n tag: 'div',\n variant: 'primary',\n width: undefined,\n})\nconst props = useDefaults(_props, 'BPlaceholderButton')\n\nconst computedClasses = computed(() => ({\n [`btn-${props.variant}`]: props.variant !== null,\n}))\n</script>\n","<template>\n <BPlaceholder\n class=\"btn disabled\"\n :class=\"computedClasses\"\n :animation=\"props.animation\"\n :width=\"props.width\"\n :cols=\"props.cols\"\n :tag=\"props.tag\"\n :style=\"{'cursor': 'wait', 'pointer-events': 'auto'}\"\n />\n</template>\n\n<script setup lang=\"ts\">\nimport BPlaceholder from './BPlaceholder.vue'\nimport type {BPlaceholderButtonProps} from '../../types/ComponentProps'\nimport {computed} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\n\nconst _props = withDefaults(defineProps<BPlaceholderButtonProps>(), {\n animation: undefined,\n cols: undefined,\n tag: 'div',\n variant: 'primary',\n width: undefined,\n})\nconst props = useDefaults(_props, 'BPlaceholderButton')\n\nconst computedClasses = computed(() => ({\n [`btn-${props.variant}`]: props.variant !== null,\n}))\n</script>\n","<template>\n <BCard :img-placement=\"props.imgPlacement\">\n <template v-if=\"!props.noImg\" #img>\n <slot name=\"img\">\n <BCardImg\n :blank=\"!props.imgSrc ? true : false\"\n :blank-color=\"props.imgBlankColor\"\n :height=\"!props.imgSrc ? props.imgHeight : undefined\"\n :src=\"props.imgSrc\"\n :img-placement=\"props.imgPlacement\"\n :style=\"{cursor: 'wait'}\"\n />\n </slot>\n </template>\n\n <template v-if=\"!props.noHeader\" #header>\n <slot name=\"header\">\n <BPlaceholder\n :width=\"props.headerWidth\"\n :variant=\"props.headerVariant\"\n :animation=\"props.headerAnimation\"\n :size=\"props.headerSize\"\n />\n </slot>\n </template>\n <slot>\n <BPlaceholder cols=\"7\" v-bind=\"defaultAttrs\" />\n <BPlaceholder cols=\"4\" v-bind=\"defaultAttrs\" />\n <BPlaceholder cols=\"4\" v-bind=\"defaultAttrs\" />\n <BPlaceholder cols=\"6\" v-bind=\"defaultAttrs\" />\n <BPlaceholder cols=\"8\" v-bind=\"defaultAttrs\" />\n </slot>\n <template v-if=\"!props.noFooter\" #footer>\n <slot name=\"footer\">\n <component\n :is=\"footerComponent\"\n :width=\"props.footerWidth\"\n :animation=\"props.footerAnimation\"\n :size=\"props.noButton ? props.footerSize : undefined\"\n :variant=\"props.footerVariant\"\n />\n </slot>\n </template>\n </BCard>\n</template>\n\n<script setup lang=\"ts\">\nimport BCard from '../BCard/BCard.vue'\nimport BCardImg from '../BCard/BCardImg.vue'\nimport BPlaceholder from './BPlaceholder.vue'\nimport BPlaceholderButton from './BPlaceholderButton.vue'\nimport type {BPlaceholderCardProps} from '../../types/ComponentProps'\nimport {computed} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BPlaceholderCardSlots} from '../../types/ComponentSlots'\n\nconst _props = withDefaults(defineProps<BPlaceholderCardProps>(), {\n animation: undefined,\n footerAnimation: undefined,\n footerSize: undefined,\n footerVariant: undefined,\n footerWidth: 100,\n headerAnimation: undefined,\n headerSize: undefined,\n headerVariant: undefined,\n headerWidth: 100,\n imgBlankColor: '#868e96',\n imgPlacement: 'top',\n imgHeight: 100,\n imgSrc: undefined,\n noButton: false,\n noFooter: false,\n noHeader: false,\n noImg: false,\n size: undefined,\n variant: undefined,\n})\nconst props = useDefaults(_props, 'BPlaceholderCard')\ndefineSlots<BPlaceholderCardSlots>()\n\nconst defaultAttrs = computed(() => ({\n animation: props.animation,\n size: props.size,\n variant: props.variant,\n}))\n\nconst footerComponent = computed(() => (!props.noButton ? BPlaceholderButton : BPlaceholder))\n</script>\n","<template>\n <BCard :img-placement=\"props.imgPlacement\">\n <template v-if=\"!props.noImg\" #img>\n <slot name=\"img\">\n <BCardImg\n :blank=\"!props.imgSrc ? true : false\"\n :blank-color=\"props.imgBlankColor\"\n :height=\"!props.imgSrc ? props.imgHeight : undefined\"\n :src=\"props.imgSrc\"\n :img-placement=\"props.imgPlacement\"\n :style=\"{cursor: 'wait'}\"\n />\n </slot>\n </template>\n\n <template v-if=\"!props.noHeader\" #header>\n <slot name=\"header\">\n <BPlaceholder\n :width=\"props.headerWidth\"\n :variant=\"props.headerVariant\"\n :animation=\"props.headerAnimation\"\n :size=\"props.headerSize\"\n />\n </slot>\n </template>\n <slot>\n <BPlaceholder cols=\"7\" v-bind=\"defaultAttrs\" />\n <BPlaceholder cols=\"4\" v-bind=\"defaultAttrs\" />\n <BPlaceholder cols=\"4\" v-bind=\"defaultAttrs\" />\n <BPlaceholder cols=\"6\" v-bind=\"defaultAttrs\" />\n <BPlaceholder cols=\"8\" v-bind=\"defaultAttrs\" />\n </slot>\n <template v-if=\"!props.noFooter\" #footer>\n <slot name=\"footer\">\n <component\n :is=\"footerComponent\"\n :width=\"props.footerWidth\"\n :animation=\"props.footerAnimation\"\n :size=\"props.noButton ? props.footerSize : undefined\"\n :variant=\"props.footerVariant\"\n />\n </slot>\n </template>\n </BCard>\n</template>\n\n<script setup lang=\"ts\">\nimport BCard from '../BCard/BCard.vue'\nimport BCardImg from '../BCard/BCardImg.vue'\nimport BPlaceholder from './BPlaceholder.vue'\nimport BPlaceholderButton from './BPlaceholderButton.vue'\nimport type {BPlaceholderCardProps} from '../../types/ComponentProps'\nimport {computed} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BPlaceholderCardSlots} from '../../types/ComponentSlots'\n\nconst _props = withDefaults(defineProps<BPlaceholderCardProps>(), {\n animation: undefined,\n footerAnimation: undefined,\n footerSize: undefined,\n footerVariant: undefined,\n footerWidth: 100,\n headerAnimation: undefined,\n headerSize: undefined,\n headerVariant: undefined,\n headerWidth: 100,\n imgBlankColor: '#868e96',\n imgPlacement: 'top',\n imgHeight: 100,\n imgSrc: undefined,\n noButton: false,\n noFooter: false,\n noHeader: false,\n noImg: false,\n size: undefined,\n variant: undefined,\n})\nconst props = useDefaults(_props, 'BPlaceholderCard')\ndefineSlots<BPlaceholderCardSlots>()\n\nconst defaultAttrs = computed(() => ({\n animation: props.animation,\n size: props.size,\n variant: props.variant,\n}))\n\nconst footerComponent = computed(() => (!props.noButton ? BPlaceholderButton : BPlaceholder))\n</script>\n","<template>\n <BTableSimple>\n <slot v-if=\"!props.noHeader\" name=\"thead\">\n <thead>\n <tr>\n <th v-for=\"(_, i) in computedHeaderColumnsLength\" :key=\"i\">\n <BPlaceholder\n :size=\"props.headerSize\"\n :variant=\"props.headerVariant\"\n :animation=\"props.headerAnimation\"\n :width=\"props.headerCellWidth\"\n />\n </th>\n </tr>\n </thead>\n </slot>\n <slot>\n <tbody>\n <tr v-for=\"(_, j) in rowsNumber\" :key=\"j\">\n <td v-for=\"(__, k) in columnsNumber\" :key=\"k\">\n <BPlaceholder\n :size=\"props.size\"\n :variant=\"props.variant\"\n :animation=\"props.animation\"\n :width=\"props.cellWidth\"\n />\n </td>\n </tr>\n </tbody>\n </slot>\n <slot v-if=\"props.showFooter\" name=\"tfoot\">\n <tfoot>\n <tr>\n <th v-for=\"(_, l) in computedFooterColumnsLength\" :key=\"l\">\n <BPlaceholder\n :size=\"props.footerSize\"\n :variant=\"props.footerVariant\"\n :animation=\"props.footerAnimation\"\n :width=\"props.footerCellWidth\"\n />\n </th>\n </tr>\n </tfoot>\n </slot>\n </BTableSimple>\n</template>\n\n<script setup lang=\"ts\">\nimport type {BPlaceholderTableProps} from '../../types/ComponentProps'\nimport BTableSimple from '../BTable/BTableSimple.vue'\nimport BPlaceholder from './BPlaceholder.vue'\nimport {useToNumber} from '@vueuse/core'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {computed} from 'vue'\nimport type {BPlaceholderTableSlots} from '../../types'\n\nconst _props = withDefaults(defineProps<BPlaceholderTableProps>(), {\n animation: undefined,\n cellWidth: 100,\n columns: 5,\n footerAnimation: undefined,\n footerCellWidth: 100,\n footerColumns: undefined,\n footerSize: undefined,\n footerVariant: undefined,\n headerAnimation: undefined,\n headerCellWidth: 100,\n headerColumns: undefined,\n headerSize: undefined,\n headerVariant: undefined,\n noHeader: false,\n rows: 3,\n showFooter: false,\n size: undefined,\n variant: undefined,\n})\nconst props = useDefaults(_props, 'BPlaceholderTable')\ndefineSlots<BPlaceholderTableSlots>()\n\nconst columnsToNumber = useToNumber(() => props.columns)\nconst rowsToNumber = useToNumber(() => props.rows)\nconst computedHeaderColumns = computed(() => props.headerColumns ?? Number.NaN)\nconst computedFooterColumns = computed(() => props.footerColumns ?? Number.NaN)\nconst headerColumnsNumber = useToNumber(computedHeaderColumns)\nconst footerColumnsNumber = useToNumber(computedFooterColumns)\n\nconst columnsNumber = computed(() => columnsToNumber.value || 5)\nconst rowsNumber = computed(() => rowsToNumber.value || 3)\n\nconst computedHeaderColumnsLength = computed(() =>\n props.headerColumns === undefined\n ? columnsNumber.value\n : Number.isNaN(headerColumnsNumber.value)\n ? columnsNumber.value\n : headerColumnsNumber.value\n)\nconst computedFooterColumnsLength = computed(() =>\n props.footerColumns === undefined\n ? columnsNumber.value\n : Number.isNaN(footerColumnsNumber.value)\n ? columnsNumber.value\n : footerColumnsNumber.value\n)\n</script>\n","<template>\n <BTableSimple>\n <slot v-if=\"!props.noHeader\" name=\"thead\">\n <thead>\n <tr>\n <th v-for=\"(_, i) in computedHeaderColumnsLength\" :key=\"i\">\n <BPlaceholder\n :size=\"props.headerSize\"\n :variant=\"props.headerVariant\"\n :animation=\"props.headerAnimation\"\n :width=\"props.headerCellWidth\"\n />\n </th>\n </tr>\n </thead>\n </slot>\n <slot>\n <tbody>\n <tr v-for=\"(_, j) in rowsNumber\" :key=\"j\">\n <td v-for=\"(__, k) in columnsNumber\" :key=\"k\">\n <BPlaceholder\n :size=\"props.size\"\n :variant=\"props.variant\"\n :animation=\"props.animation\"\n :width=\"props.cellWidth\"\n />\n </td>\n </tr>\n </tbody>\n </slot>\n <slot v-if=\"props.showFooter\" name=\"tfoot\">\n <tfoot>\n <tr>\n <th v-for=\"(_, l) in computedFooterColumnsLength\" :key=\"l\">\n <BPlaceholder\n :size=\"props.footerSize\"\n :variant=\"props.footerVariant\"\n :animation=\"props.footerAnimation\"\n :width=\"props.footerCellWidth\"\n />\n </th>\n </tr>\n </tfoot>\n </slot>\n </BTableSimple>\n</template>\n\n<script setup lang=\"ts\">\nimport type {BPlaceholderTableProps} from '../../types/ComponentProps'\nimport BTableSimple from '../BTable/BTableSimple.vue'\nimport BPlaceholder from './BPlaceholder.vue'\nimport {useToNumber} from '@vueuse/core'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {computed} from 'vue'\nimport type {BPlaceholderTableSlots} from '../../types'\n\nconst _props = withDefaults(defineProps<BPlaceholderTableProps>(), {\n animation: undefined,\n cellWidth: 100,\n columns: 5,\n footerAnimation: undefined,\n footerCellWidth: 100,\n footerColumns: undefined,\n footerSize: undefined,\n footerVariant: undefined,\n headerAnimation: undefined,\n headerCellWidth: 100,\n headerColumns: undefined,\n headerSize: undefined,\n headerVariant: undefined,\n noHeader: false,\n rows: 3,\n showFooter: false,\n size: undefined,\n variant: undefined,\n})\nconst props = useDefaults(_props, 'BPlaceholderTable')\ndefineSlots<BPlaceholderTableSlots>()\n\nconst columnsToNumber = useToNumber(() => props.columns)\nconst rowsToNumber = useToNumber(() => props.rows)\nconst computedHeaderColumns = computed(() => props.headerColumns ?? Number.NaN)\nconst computedFooterColumns = computed(() => props.footerColumns ?? Number.NaN)\nconst headerColumnsNumber = useToNumber(computedHeaderColumns)\nconst footerColumnsNumber = useToNumber(computedFooterColumns)\n\nconst columnsNumber = computed(() => columnsToNumber.value || 5)\nconst rowsNumber = computed(() => rowsToNumber.value || 3)\n\nconst computedHeaderColumnsLength = computed(() =>\n props.headerColumns === undefined\n ? columnsNumber.value\n : Number.isNaN(headerColumnsNumber.value)\n ? columnsNumber.value\n : headerColumnsNumber.value\n)\nconst computedFooterColumnsLength = computed(() =>\n props.footerColumns === undefined\n ? columnsNumber.value\n : Number.isNaN(footerColumnsNumber.value)\n ? columnsNumber.value\n : footerColumnsNumber.value\n)\n</script>\n","<template>\n <slot v-if=\"props.loading\" name=\"loading\" />\n <slot v-else />\n</template>\n\n<script setup lang=\"ts\">\nimport type {BPlaceholderWrapperSlots} from '../../types'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BPlaceholderWrapperProps} from '../../types/ComponentProps'\n\nconst _props = withDefaults(defineProps<BPlaceholderWrapperProps>(), {\n loading: false,\n})\nconst props = useDefaults(_props, 'BPlaceholderWrapper')\ndefineSlots<BPlaceholderWrapperSlots>()\n</script>\n","<template>\n <slot v-if=\"props.loading\" name=\"loading\" />\n <slot v-else />\n</template>\n\n<script setup lang=\"ts\">\nimport type {BPlaceholderWrapperSlots} from '../../types'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BPlaceholderWrapperProps} from '../../types/ComponentProps'\n\nconst _props = withDefaults(defineProps<BPlaceholderWrapperProps>(), {\n loading: false,\n})\nconst props = useDefaults(_props, 'BPlaceholderWrapper')\ndefineSlots<BPlaceholderWrapperSlots>()\n</script>\n"],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"BPlaceholder-n447tOzJ.js","names":["$attrs"],"sources":["../src/components/BPlaceholder/BPlaceholder.vue","../src/components/BPlaceholder/BPlaceholder.vue","../src/components/BPlaceholder/BPlaceholderButton.vue","../src/components/BPlaceholder/BPlaceholderButton.vue","../src/components/BPlaceholder/BPlaceholderCard.vue","../src/components/BPlaceholder/BPlaceholderCard.vue","../src/components/BPlaceholder/BPlaceholderTable.vue","../src/components/BPlaceholder/BPlaceholderTable.vue","../src/components/BPlaceholder/BPlaceholderWrapper.vue","../src/components/BPlaceholder/BPlaceholderWrapper.vue"],"sourcesContent":["<template>\n <component :is=\"props.wrapperTag\" :class=\"wrapperClasses\">\n <component\n v-bind=\"$attrs\"\n :is=\"tag\"\n class=\"placeholder\"\n :class=\"computedClasses\"\n :style=\"computedStyle\"\n />\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, type CSSProperties} from 'vue'\nimport type {BPlaceholderProps} from '../../types/ComponentProps'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BPlaceholderProps>(), {\n animation: undefined,\n cols: 12,\n size: undefined,\n tag: 'span',\n variant: null,\n width: undefined,\n wrapperTag: 'span',\n})\nconst props = useDefaults(_props, 'BPlaceholder')\n\nconst widthString = computed(() =>\n props.width === undefined\n ? undefined\n : typeof props.width === 'number'\n ? props.width.toString()\n : props.width.replace('%', '')\n)\n\nconst colsString = computed(() =>\n props.cols === undefined\n ? undefined\n : typeof props.cols === 'number'\n ? props.cols.toString()\n : props.cols\n)\n\nconst colorClasses = useColorVariantClasses(\n computed(() => ({\n bgVariant: props.variant,\n }))\n)\nconst computedClasses = computed(() => [\n colorClasses.value,\n {\n [`col-${colsString.value}`]: colsString.value !== undefined && widthString.value === undefined,\n [`placeholder-${props.size}`]: props.size !== undefined,\n },\n])\n\nconst wrapperClasses = computed(() => ({\n [`placeholder-${props.animation}`]: props.animation !== undefined,\n}))\n\nconst computedStyle = computed<CSSProperties>(() => ({\n width: widthString.value === undefined ? undefined : `${widthString.value}%`,\n}))\n</script>\n","<template>\n <component :is=\"props.wrapperTag\" :class=\"wrapperClasses\">\n <component\n v-bind=\"$attrs\"\n :is=\"tag\"\n class=\"placeholder\"\n :class=\"computedClasses\"\n :style=\"computedStyle\"\n />\n </component>\n</template>\n\n<script setup lang=\"ts\">\nimport {computed, type CSSProperties} from 'vue'\nimport type {BPlaceholderProps} from '../../types/ComponentProps'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {useColorVariantClasses} from '../../composables/useColorVariantClasses'\n\ndefineOptions({\n inheritAttrs: false,\n})\n\nconst _props = withDefaults(defineProps<BPlaceholderProps>(), {\n animation: undefined,\n cols: 12,\n size: undefined,\n tag: 'span',\n variant: null,\n width: undefined,\n wrapperTag: 'span',\n})\nconst props = useDefaults(_props, 'BPlaceholder')\n\nconst widthString = computed(() =>\n props.width === undefined\n ? undefined\n : typeof props.width === 'number'\n ? props.width.toString()\n : props.width.replace('%', '')\n)\n\nconst colsString = computed(() =>\n props.cols === undefined\n ? undefined\n : typeof props.cols === 'number'\n ? props.cols.toString()\n : props.cols\n)\n\nconst colorClasses = useColorVariantClasses(\n computed(() => ({\n bgVariant: props.variant,\n }))\n)\nconst computedClasses = computed(() => [\n colorClasses.value,\n {\n [`col-${colsString.value}`]: colsString.value !== undefined && widthString.value === undefined,\n [`placeholder-${props.size}`]: props.size !== undefined,\n },\n])\n\nconst wrapperClasses = computed(() => ({\n [`placeholder-${props.animation}`]: props.animation !== undefined,\n}))\n\nconst computedStyle = computed<CSSProperties>(() => ({\n width: widthString.value === undefined ? undefined : `${widthString.value}%`,\n}))\n</script>\n","<template>\n <BPlaceholder\n class=\"btn disabled\"\n :class=\"computedClasses\"\n :animation=\"props.animation\"\n :width=\"props.width\"\n :cols=\"props.cols\"\n :tag=\"props.tag\"\n :style=\"{'cursor': 'wait', 'pointer-events': 'auto'}\"\n />\n</template>\n\n<script setup lang=\"ts\">\nimport BPlaceholder from './BPlaceholder.vue'\nimport type {BPlaceholderButtonProps} from '../../types/ComponentProps'\nimport {computed} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\n\nconst _props = withDefaults(defineProps<BPlaceholderButtonProps>(), {\n animation: undefined,\n cols: undefined,\n tag: 'div',\n variant: 'primary',\n width: undefined,\n})\nconst props = useDefaults(_props, 'BPlaceholderButton')\n\nconst computedClasses = computed(() => ({\n [`btn-${props.variant}`]: props.variant !== null,\n}))\n</script>\n","<template>\n <BPlaceholder\n class=\"btn disabled\"\n :class=\"computedClasses\"\n :animation=\"props.animation\"\n :width=\"props.width\"\n :cols=\"props.cols\"\n :tag=\"props.tag\"\n :style=\"{'cursor': 'wait', 'pointer-events': 'auto'}\"\n />\n</template>\n\n<script setup lang=\"ts\">\nimport BPlaceholder from './BPlaceholder.vue'\nimport type {BPlaceholderButtonProps} from '../../types/ComponentProps'\nimport {computed} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\n\nconst _props = withDefaults(defineProps<BPlaceholderButtonProps>(), {\n animation: undefined,\n cols: undefined,\n tag: 'div',\n variant: 'primary',\n width: undefined,\n})\nconst props = useDefaults(_props, 'BPlaceholderButton')\n\nconst computedClasses = computed(() => ({\n [`btn-${props.variant}`]: props.variant !== null,\n}))\n</script>\n","<template>\n <BCard :img-placement=\"props.imgPlacement\">\n <template v-if=\"!props.noImg\" #img>\n <slot name=\"img\">\n <BCardImg\n :blank=\"!props.imgSrc ? true : false\"\n :blank-color=\"props.imgBlankColor\"\n :height=\"!props.imgSrc ? props.imgHeight : undefined\"\n :src=\"props.imgSrc\"\n :img-placement=\"props.imgPlacement\"\n :style=\"{cursor: 'wait'}\"\n />\n </slot>\n </template>\n\n <template v-if=\"!props.noHeader\" #header>\n <slot name=\"header\">\n <BPlaceholder\n :width=\"props.headerWidth\"\n :variant=\"props.headerVariant\"\n :animation=\"props.headerAnimation\"\n :size=\"props.headerSize\"\n />\n </slot>\n </template>\n <slot>\n <BPlaceholder cols=\"7\" v-bind=\"defaultAttrs\" />\n <BPlaceholder cols=\"4\" v-bind=\"defaultAttrs\" />\n <BPlaceholder cols=\"4\" v-bind=\"defaultAttrs\" />\n <BPlaceholder cols=\"6\" v-bind=\"defaultAttrs\" />\n <BPlaceholder cols=\"8\" v-bind=\"defaultAttrs\" />\n </slot>\n <template v-if=\"!props.noFooter\" #footer>\n <slot name=\"footer\">\n <component\n :is=\"footerComponent\"\n :width=\"props.footerWidth\"\n :animation=\"props.footerAnimation\"\n :size=\"props.noButton ? props.footerSize : undefined\"\n :variant=\"props.footerVariant\"\n />\n </slot>\n </template>\n </BCard>\n</template>\n\n<script setup lang=\"ts\">\nimport BCard from '../BCard/BCard.vue'\nimport BCardImg from '../BCard/BCardImg.vue'\nimport BPlaceholder from './BPlaceholder.vue'\nimport BPlaceholderButton from './BPlaceholderButton.vue'\nimport type {BPlaceholderCardProps} from '../../types/ComponentProps'\nimport {computed} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BPlaceholderCardSlots} from '../../types/ComponentSlots'\n\nconst _props = withDefaults(defineProps<BPlaceholderCardProps>(), {\n animation: undefined,\n footerAnimation: undefined,\n footerSize: undefined,\n footerVariant: undefined,\n footerWidth: 100,\n headerAnimation: undefined,\n headerSize: undefined,\n headerVariant: undefined,\n headerWidth: 100,\n imgBlankColor: '#868e96',\n imgPlacement: 'top',\n imgHeight: 100,\n imgSrc: undefined,\n noButton: false,\n noFooter: false,\n noHeader: false,\n noImg: false,\n size: undefined,\n variant: undefined,\n})\nconst props = useDefaults(_props, 'BPlaceholderCard')\ndefineSlots<BPlaceholderCardSlots>()\n\nconst defaultAttrs = computed(() => ({\n animation: props.animation,\n size: props.size,\n variant: props.variant,\n}))\n\nconst footerComponent = computed(() => (!props.noButton ? BPlaceholderButton : BPlaceholder))\n</script>\n","<template>\n <BCard :img-placement=\"props.imgPlacement\">\n <template v-if=\"!props.noImg\" #img>\n <slot name=\"img\">\n <BCardImg\n :blank=\"!props.imgSrc ? true : false\"\n :blank-color=\"props.imgBlankColor\"\n :height=\"!props.imgSrc ? props.imgHeight : undefined\"\n :src=\"props.imgSrc\"\n :img-placement=\"props.imgPlacement\"\n :style=\"{cursor: 'wait'}\"\n />\n </slot>\n </template>\n\n <template v-if=\"!props.noHeader\" #header>\n <slot name=\"header\">\n <BPlaceholder\n :width=\"props.headerWidth\"\n :variant=\"props.headerVariant\"\n :animation=\"props.headerAnimation\"\n :size=\"props.headerSize\"\n />\n </slot>\n </template>\n <slot>\n <BPlaceholder cols=\"7\" v-bind=\"defaultAttrs\" />\n <BPlaceholder cols=\"4\" v-bind=\"defaultAttrs\" />\n <BPlaceholder cols=\"4\" v-bind=\"defaultAttrs\" />\n <BPlaceholder cols=\"6\" v-bind=\"defaultAttrs\" />\n <BPlaceholder cols=\"8\" v-bind=\"defaultAttrs\" />\n </slot>\n <template v-if=\"!props.noFooter\" #footer>\n <slot name=\"footer\">\n <component\n :is=\"footerComponent\"\n :width=\"props.footerWidth\"\n :animation=\"props.footerAnimation\"\n :size=\"props.noButton ? props.footerSize : undefined\"\n :variant=\"props.footerVariant\"\n />\n </slot>\n </template>\n </BCard>\n</template>\n\n<script setup lang=\"ts\">\nimport BCard from '../BCard/BCard.vue'\nimport BCardImg from '../BCard/BCardImg.vue'\nimport BPlaceholder from './BPlaceholder.vue'\nimport BPlaceholderButton from './BPlaceholderButton.vue'\nimport type {BPlaceholderCardProps} from '../../types/ComponentProps'\nimport {computed} from 'vue'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BPlaceholderCardSlots} from '../../types/ComponentSlots'\n\nconst _props = withDefaults(defineProps<BPlaceholderCardProps>(), {\n animation: undefined,\n footerAnimation: undefined,\n footerSize: undefined,\n footerVariant: undefined,\n footerWidth: 100,\n headerAnimation: undefined,\n headerSize: undefined,\n headerVariant: undefined,\n headerWidth: 100,\n imgBlankColor: '#868e96',\n imgPlacement: 'top',\n imgHeight: 100,\n imgSrc: undefined,\n noButton: false,\n noFooter: false,\n noHeader: false,\n noImg: false,\n size: undefined,\n variant: undefined,\n})\nconst props = useDefaults(_props, 'BPlaceholderCard')\ndefineSlots<BPlaceholderCardSlots>()\n\nconst defaultAttrs = computed(() => ({\n animation: props.animation,\n size: props.size,\n variant: props.variant,\n}))\n\nconst footerComponent = computed(() => (!props.noButton ? BPlaceholderButton : BPlaceholder))\n</script>\n","<template>\n <BTableSimple>\n <slot v-if=\"!props.noHeader\" name=\"thead\">\n <thead>\n <tr>\n <th v-for=\"(_, i) in computedHeaderColumnsLength\" :key=\"i\">\n <BPlaceholder\n :size=\"props.headerSize\"\n :variant=\"props.headerVariant\"\n :animation=\"props.headerAnimation\"\n :width=\"props.headerCellWidth\"\n />\n </th>\n </tr>\n </thead>\n </slot>\n <slot>\n <tbody>\n <tr v-for=\"(_, j) in rowsNumber\" :key=\"j\">\n <td v-for=\"(__, k) in columnsNumber\" :key=\"k\">\n <BPlaceholder\n :size=\"props.size\"\n :variant=\"props.variant\"\n :animation=\"props.animation\"\n :width=\"props.cellWidth\"\n />\n </td>\n </tr>\n </tbody>\n </slot>\n <slot v-if=\"props.showFooter\" name=\"tfoot\">\n <tfoot>\n <tr>\n <th v-for=\"(_, l) in computedFooterColumnsLength\" :key=\"l\">\n <BPlaceholder\n :size=\"props.footerSize\"\n :variant=\"props.footerVariant\"\n :animation=\"props.footerAnimation\"\n :width=\"props.footerCellWidth\"\n />\n </th>\n </tr>\n </tfoot>\n </slot>\n </BTableSimple>\n</template>\n\n<script setup lang=\"ts\">\nimport type {BPlaceholderTableProps} from '../../types/ComponentProps'\nimport BTableSimple from '../BTable/BTableSimple.vue'\nimport BPlaceholder from './BPlaceholder.vue'\nimport {useToNumber} from '@vueuse/core'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {computed} from 'vue'\nimport type {BPlaceholderTableSlots} from '../../types'\n\nconst _props = withDefaults(defineProps<BPlaceholderTableProps>(), {\n animation: undefined,\n cellWidth: 100,\n columns: 5,\n footerAnimation: undefined,\n footerCellWidth: 100,\n footerColumns: undefined,\n footerSize: undefined,\n footerVariant: undefined,\n headerAnimation: undefined,\n headerCellWidth: 100,\n headerColumns: undefined,\n headerSize: undefined,\n headerVariant: undefined,\n noHeader: false,\n rows: 3,\n showFooter: false,\n size: undefined,\n variant: undefined,\n})\nconst props = useDefaults(_props, 'BPlaceholderTable')\ndefineSlots<BPlaceholderTableSlots>()\n\nconst columnsToNumber = useToNumber(() => props.columns)\nconst rowsToNumber = useToNumber(() => props.rows)\nconst computedHeaderColumns = computed(() => props.headerColumns ?? Number.NaN)\nconst computedFooterColumns = computed(() => props.footerColumns ?? Number.NaN)\nconst headerColumnsNumber = useToNumber(computedHeaderColumns)\nconst footerColumnsNumber = useToNumber(computedFooterColumns)\n\nconst columnsNumber = computed(() => columnsToNumber.value || 5)\nconst rowsNumber = computed(() => rowsToNumber.value || 3)\n\nconst computedHeaderColumnsLength = computed(() =>\n props.headerColumns === undefined\n ? columnsNumber.value\n : Number.isNaN(headerColumnsNumber.value)\n ? columnsNumber.value\n : headerColumnsNumber.value\n)\nconst computedFooterColumnsLength = computed(() =>\n props.footerColumns === undefined\n ? columnsNumber.value\n : Number.isNaN(footerColumnsNumber.value)\n ? columnsNumber.value\n : footerColumnsNumber.value\n)\n</script>\n","<template>\n <BTableSimple>\n <slot v-if=\"!props.noHeader\" name=\"thead\">\n <thead>\n <tr>\n <th v-for=\"(_, i) in computedHeaderColumnsLength\" :key=\"i\">\n <BPlaceholder\n :size=\"props.headerSize\"\n :variant=\"props.headerVariant\"\n :animation=\"props.headerAnimation\"\n :width=\"props.headerCellWidth\"\n />\n </th>\n </tr>\n </thead>\n </slot>\n <slot>\n <tbody>\n <tr v-for=\"(_, j) in rowsNumber\" :key=\"j\">\n <td v-for=\"(__, k) in columnsNumber\" :key=\"k\">\n <BPlaceholder\n :size=\"props.size\"\n :variant=\"props.variant\"\n :animation=\"props.animation\"\n :width=\"props.cellWidth\"\n />\n </td>\n </tr>\n </tbody>\n </slot>\n <slot v-if=\"props.showFooter\" name=\"tfoot\">\n <tfoot>\n <tr>\n <th v-for=\"(_, l) in computedFooterColumnsLength\" :key=\"l\">\n <BPlaceholder\n :size=\"props.footerSize\"\n :variant=\"props.footerVariant\"\n :animation=\"props.footerAnimation\"\n :width=\"props.footerCellWidth\"\n />\n </th>\n </tr>\n </tfoot>\n </slot>\n </BTableSimple>\n</template>\n\n<script setup lang=\"ts\">\nimport type {BPlaceholderTableProps} from '../../types/ComponentProps'\nimport BTableSimple from '../BTable/BTableSimple.vue'\nimport BPlaceholder from './BPlaceholder.vue'\nimport {useToNumber} from '@vueuse/core'\nimport {useDefaults} from '../../composables/useDefaults'\nimport {computed} from 'vue'\nimport type {BPlaceholderTableSlots} from '../../types'\n\nconst _props = withDefaults(defineProps<BPlaceholderTableProps>(), {\n animation: undefined,\n cellWidth: 100,\n columns: 5,\n footerAnimation: undefined,\n footerCellWidth: 100,\n footerColumns: undefined,\n footerSize: undefined,\n footerVariant: undefined,\n headerAnimation: undefined,\n headerCellWidth: 100,\n headerColumns: undefined,\n headerSize: undefined,\n headerVariant: undefined,\n noHeader: false,\n rows: 3,\n showFooter: false,\n size: undefined,\n variant: undefined,\n})\nconst props = useDefaults(_props, 'BPlaceholderTable')\ndefineSlots<BPlaceholderTableSlots>()\n\nconst columnsToNumber = useToNumber(() => props.columns)\nconst rowsToNumber = useToNumber(() => props.rows)\nconst computedHeaderColumns = computed(() => props.headerColumns ?? Number.NaN)\nconst computedFooterColumns = computed(() => props.footerColumns ?? Number.NaN)\nconst headerColumnsNumber = useToNumber(computedHeaderColumns)\nconst footerColumnsNumber = useToNumber(computedFooterColumns)\n\nconst columnsNumber = computed(() => columnsToNumber.value || 5)\nconst rowsNumber = computed(() => rowsToNumber.value || 3)\n\nconst computedHeaderColumnsLength = computed(() =>\n props.headerColumns === undefined\n ? columnsNumber.value\n : Number.isNaN(headerColumnsNumber.value)\n ? columnsNumber.value\n : headerColumnsNumber.value\n)\nconst computedFooterColumnsLength = computed(() =>\n props.footerColumns === undefined\n ? columnsNumber.value\n : Number.isNaN(footerColumnsNumber.value)\n ? columnsNumber.value\n : footerColumnsNumber.value\n)\n</script>\n","<template>\n <slot v-if=\"props.loading\" name=\"loading\" />\n <slot v-else />\n</template>\n\n<script setup lang=\"ts\">\nimport type {BPlaceholderWrapperSlots} from '../../types'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BPlaceholderWrapperProps} from '../../types/ComponentProps'\n\nconst _props = withDefaults(defineProps<BPlaceholderWrapperProps>(), {\n loading: false,\n})\nconst props = useDefaults(_props, 'BPlaceholderWrapper')\ndefineSlots<BPlaceholderWrapperSlots>()\n</script>\n","<template>\n <slot v-if=\"props.loading\" name=\"loading\" />\n <slot v-else />\n</template>\n\n<script setup lang=\"ts\">\nimport type {BPlaceholderWrapperSlots} from '../../types'\nimport {useDefaults} from '../../composables/useDefaults'\nimport type {BPlaceholderWrapperProps} from '../../types/ComponentProps'\n\nconst _props = withDefaults(defineProps<BPlaceholderWrapperProps>(), {\n loading: false,\n})\nconst props = useDefaults(_props, 'BPlaceholderWrapper')\ndefineSlots<BPlaceholderWrapperSlots>()\n</script>\n"],"mappings":"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"}
|