bootstrap-vue-next 0.45.5 → 0.45.6
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-Gz2SpRmq.mjs → BAccordion-D51b9HVD.mjs} +5 -5
- package/dist/{BAccordion-Gz2SpRmq.mjs.map → BAccordion-D51b9HVD.mjs.map} +1 -1
- package/dist/{BAccordion-DgXJMqdG.js → BAccordion-DYmuqZIG.js} +5 -5
- package/dist/{BAccordion-DgXJMqdG.js.map → BAccordion-DYmuqZIG.js.map} +1 -1
- package/dist/{BAlert-BFPBalmr.mjs → BAlert-Ce2uxrJi.mjs} +8 -8
- package/dist/{BAlert-BFPBalmr.mjs.map → BAlert-Ce2uxrJi.mjs.map} +1 -1
- package/dist/{BAlert-Dk3rgEOI.js → BAlert-croEtrQu.js} +8 -8
- package/dist/{BAlert-Dk3rgEOI.js.map → BAlert-croEtrQu.js.map} +1 -1
- package/dist/{BApp-CIu-zI8K.mjs → BApp-B-fUrnpK.mjs} +2 -2
- package/dist/{BApp-CIu-zI8K.mjs.map → BApp-B-fUrnpK.mjs.map} +1 -1
- package/dist/{BApp-cBKQc5Dd.js → BApp-DOvEe1jo.js} +2 -2
- package/dist/{BApp-cBKQc5Dd.js.map → BApp-DOvEe1jo.js.map} +1 -1
- package/dist/{BAspect-BULTO240.js → BAspect-CUIU48Ck.js} +2 -2
- package/dist/{BAspect-BULTO240.js.map → BAspect-CUIU48Ck.js.map} +1 -1
- package/dist/{BAspect-CwokVvvn.mjs → BAspect-wfiXM4KA.mjs} +2 -2
- package/dist/{BAspect-CwokVvvn.mjs.map → BAspect-wfiXM4KA.mjs.map} +1 -1
- package/dist/{BAutocomplete-DRzLhACU.mjs → BAutocomplete-CH-bQzME.mjs} +8 -8
- package/dist/{BAutocomplete-DRzLhACU.mjs.map → BAutocomplete-CH-bQzME.mjs.map} +1 -1
- package/dist/{BAutocomplete-D8Qkcqcy.js → BAutocomplete-DLDFAV5_.js} +8 -8
- package/dist/{BAutocomplete-D8Qkcqcy.js.map → BAutocomplete-DLDFAV5_.js.map} +1 -1
- package/dist/{BAvatar-CZn0MQHY.js → BAvatar-FGK0dK0x.js} +5 -5
- package/dist/{BAvatar-CZn0MQHY.js.map → BAvatar-FGK0dK0x.js.map} +1 -1
- package/dist/{BAvatar-DODGnQMY.mjs → BAvatar-iALHbqVk.mjs} +5 -5
- package/dist/{BAvatar-DODGnQMY.mjs.map → BAvatar-iALHbqVk.mjs.map} +1 -1
- package/dist/{BBadge-CZ219I7a.mjs → BBadge-Cx_CdauK.mjs} +3 -3
- package/dist/{BBadge-CZ219I7a.mjs.map → BBadge-Cx_CdauK.mjs.map} +1 -1
- package/dist/{BBadge-DTJcCo9u.js → BBadge-Db6SEnzy.js} +3 -3
- package/dist/{BBadge-DTJcCo9u.js.map → BBadge-Db6SEnzy.js.map} +1 -1
- package/dist/{BBreadcrumb-DFG2Qxl9.js → BBreadcrumb-B9ra7vg2.js} +3 -3
- package/dist/{BBreadcrumb-DFG2Qxl9.js.map → BBreadcrumb-B9ra7vg2.js.map} +1 -1
- package/dist/{BBreadcrumb-Dk4ia-9c.mjs → BBreadcrumb-BxADbg0O.mjs} +3 -3
- package/dist/{BBreadcrumb-Dk4ia-9c.mjs.map → BBreadcrumb-BxADbg0O.mjs.map} +1 -1
- package/dist/{BButton-C0Ylhonf.mjs → BButton-BSa7LfL5.mjs} +5 -5
- package/dist/{BButton-C0Ylhonf.mjs.map → BButton-BSa7LfL5.mjs.map} +1 -1
- package/dist/{BButton-BZ9eI3ZX.js → BButton-DRRlzkyK.js} +5 -5
- package/dist/{BButton-BZ9eI3ZX.js.map → BButton-DRRlzkyK.js.map} +1 -1
- package/dist/{BButton-D_sCrjpg.mjs → BButton-PY7AANXJ.mjs} +4 -4
- package/dist/{BButton-D_sCrjpg.mjs.map → BButton-PY7AANXJ.mjs.map} +1 -1
- package/dist/{BButton-Dr-RadYQ.js → BButton-aYtMnyHu.js} +4 -4
- package/dist/{BButton-Dr-RadYQ.js.map → BButton-aYtMnyHu.js.map} +1 -1
- package/dist/{BCard-cj8_dIcz.mjs → BCard-BWoruisp.mjs} +3 -3
- package/dist/{BCard-cj8_dIcz.mjs.map → BCard-BWoruisp.mjs.map} +1 -1
- package/dist/{BCard-BjQkY783.js → BCard-Bh8RLMo_.js} +3 -3
- package/dist/{BCard-BjQkY783.js.map → BCard-Bh8RLMo_.js.map} +1 -1
- package/dist/{BCard-TS8DtOwm.mjs → BCard-CHbKv2OR.mjs} +3 -3
- package/dist/{BCard-TS8DtOwm.mjs.map → BCard-CHbKv2OR.mjs.map} +1 -1
- package/dist/{BCard-BkvG5Zzw.js → BCard-DwNYhVmg.js} +3 -3
- package/dist/{BCard-BkvG5Zzw.js.map → BCard-DwNYhVmg.js.map} +1 -1
- package/dist/{BCarousel-D23rApAX.js → BCarousel-2JB21Pcu.js} +5 -5
- package/dist/{BCarousel-D23rApAX.js.map → BCarousel-2JB21Pcu.js.map} +1 -1
- package/dist/{BCarousel-VL1gVXpt.mjs → BCarousel-B6_bgQpl.mjs} +5 -5
- package/dist/{BCarousel-VL1gVXpt.mjs.map → BCarousel-B6_bgQpl.mjs.map} +1 -1
- package/dist/{BCloseButton-CCdRwLDo.mjs → BCloseButton-CKTKr4PS.mjs} +2 -2
- package/dist/{BCloseButton-CCdRwLDo.mjs.map → BCloseButton-CKTKr4PS.mjs.map} +1 -1
- package/dist/{BCloseButton-fw5ONnhr.js → BCloseButton-D42zHRLP.js} +2 -2
- package/dist/{BCloseButton-fw5ONnhr.js.map → BCloseButton-D42zHRLP.js.map} +1 -1
- package/dist/{BCol-VPaTVLsM.mjs → BCol-B3VeEk9z.mjs} +2 -2
- package/dist/{BCol-VPaTVLsM.mjs.map → BCol-B3VeEk9z.mjs.map} +1 -1
- package/dist/{BCol-CArTYHqb.js → BCol-Ck9VydHj.js} +2 -2
- package/dist/{BCol-CArTYHqb.js.map → BCol-Ck9VydHj.js.map} +1 -1
- package/dist/{BCollapse-CZlDVTpI.js → BCollapse-CDLYLSZo.js} +5 -5
- package/dist/{BCollapse-CZlDVTpI.js.map → BCollapse-CDLYLSZo.js.map} +1 -1
- package/dist/{BCollapse-CTvK48kB.mjs → BCollapse-kqhe4AmL.mjs} +5 -5
- package/dist/{BCollapse-CTvK48kB.mjs.map → BCollapse-kqhe4AmL.mjs.map} +1 -1
- package/dist/{BContainer-CeHyMYb_.mjs → BContainer-ATfhaxTc.mjs} +4 -4
- package/dist/{BContainer-CeHyMYb_.mjs.map → BContainer-ATfhaxTc.mjs.map} +1 -1
- package/dist/{BContainer-CNmEk2mi.js → BContainer-CcF6dgtI.js} +4 -4
- package/dist/{BContainer-CNmEk2mi.js.map → BContainer-CcF6dgtI.js.map} +1 -1
- package/dist/{BDateField-gRWIwMnA.mjs → BDateField-CccP3H1R.mjs} +3 -3
- package/dist/{BDateField-gRWIwMnA.mjs.map → BDateField-CccP3H1R.mjs.map} +1 -1
- package/dist/{BDateField-B4yL8Pju.js → BDateField-DzZw5FRX.js} +3 -3
- package/dist/{BDateField-B4yL8Pju.js.map → BDateField-DzZw5FRX.js.map} +1 -1
- package/dist/{BDatePicker-m2drV1fl.js → BDatePicker-BDkzkOcm.js} +3 -3
- package/dist/{BDatePicker-m2drV1fl.js.map → BDatePicker-BDkzkOcm.js.map} +1 -1
- package/dist/{BDatePicker-ZuMpgD91.mjs → BDatePicker-BnwnSkBg.mjs} +3 -3
- package/dist/{BDatePicker-ZuMpgD91.mjs.map → BDatePicker-BnwnSkBg.mjs.map} +1 -1
- package/dist/{BDropdown-D2ep4wKG.mjs → BDropdown-0E8x5kk6.mjs} +5 -5
- package/dist/{BDropdown-D2ep4wKG.mjs.map → BDropdown-0E8x5kk6.mjs.map} +1 -1
- package/dist/{BDropdown-B2vWJ-u0.mjs → BDropdown-B1DbvVzm.mjs} +7 -7
- package/dist/{BDropdown-B2vWJ-u0.mjs.map → BDropdown-B1DbvVzm.mjs.map} +1 -1
- package/dist/{BDropdown-BSCasYDc.js → BDropdown-BPFtkX3p.js} +7 -7
- package/dist/{BDropdown-BSCasYDc.js.map → BDropdown-BPFtkX3p.js.map} +1 -1
- package/dist/{BDropdown-CL-erjq8.js → BDropdown-DKCgBzYS.js} +5 -5
- package/dist/{BDropdown-CL-erjq8.js.map → BDropdown-DKCgBzYS.js.map} +1 -1
- package/dist/{BForm-B0bPQ4kx.js → BForm-6JlWdQMO.js} +9 -6
- package/dist/{BForm-B0bPQ4kx.js.map → BForm-6JlWdQMO.js.map} +1 -1
- package/dist/{BForm-CpNuvbIt.mjs → BForm-BVfW08s5.mjs} +2 -2
- package/dist/{BForm-CpNuvbIt.mjs.map → BForm-BVfW08s5.mjs.map} +1 -1
- package/dist/{BForm-CoQKIJzv.mjs → BForm-DJu2hDV_.mjs} +10 -7
- package/dist/{BForm-CoQKIJzv.mjs.map → BForm-DJu2hDV_.mjs.map} +1 -1
- package/dist/{BForm-K67Ciyza.js → BForm-cnRpggt9.js} +2 -2
- package/dist/{BForm-K67Ciyza.js.map → BForm-cnRpggt9.js.map} +1 -1
- package/dist/{BFormCheckbox-xN7AQw4O.mjs → BFormCheckbox-Baf_9BSc.mjs} +9 -6
- package/dist/BFormCheckbox-Baf_9BSc.mjs.map +1 -0
- package/dist/{BFormCheckbox-g7gtIrhy.js → BFormCheckbox-D5ySHMJ8.js} +9 -6
- package/dist/BFormCheckbox-D5ySHMJ8.js.map +1 -0
- package/dist/{BFormFile-DXdAyYmv.mjs → BFormFile-EXRrATZm.mjs} +3 -3
- package/dist/{BFormFile-DXdAyYmv.mjs.map → BFormFile-EXRrATZm.mjs.map} +1 -1
- package/dist/{BFormFile-DC-x9wQo.js → BFormFile-X-BQsYko.js} +3 -3
- package/dist/{BFormFile-DC-x9wQo.js.map → BFormFile-X-BQsYko.js.map} +1 -1
- package/dist/{BFormGroup-DZTiChgT.js → BFormGroup-Bk1t-D1N.js} +89 -104
- package/dist/BFormGroup-Bk1t-D1N.js.map +1 -0
- package/dist/{BFormGroup-ayltvQts.mjs → BFormGroup-vysRPb99.mjs} +90 -105
- package/dist/BFormGroup-vysRPb99.mjs.map +1 -0
- package/dist/{BFormInput-DNuvqbFQ.js → BFormInput-CBwwDjfC.js} +4 -4
- package/dist/{BFormInput-DNuvqbFQ.js.map → BFormInput-CBwwDjfC.js.map} +1 -1
- package/dist/{BFormInput-NKko58M2.mjs → BFormInput-sEfU3CuN.mjs} +4 -4
- package/dist/{BFormInput-NKko58M2.mjs.map → BFormInput-sEfU3CuN.mjs.map} +1 -1
- package/dist/{BFormOtp-B4al7MJf.mjs → BFormOtp-C8X3u1od.mjs} +4 -4
- package/dist/{BFormOtp-B4al7MJf.mjs.map → BFormOtp-C8X3u1od.mjs.map} +1 -1
- package/dist/{BFormOtp-UcLR9oFd.js → BFormOtp-CLrQJRPe.js} +4 -4
- package/dist/{BFormOtp-UcLR9oFd.js.map → BFormOtp-CLrQJRPe.js.map} +1 -1
- package/dist/{BFormRadio-DX-gM5Rc.js → BFormRadio-B2yu-o2v.js} +9 -6
- package/dist/BFormRadio-B2yu-o2v.js.map +1 -0
- package/dist/{BFormRadio-DHx68AdL.mjs → BFormRadio-COc_IbxC.mjs} +9 -6
- package/dist/BFormRadio-COc_IbxC.mjs.map +1 -0
- package/dist/{BFormRating-BR7RMvZG.mjs → BFormRating-CIgPVsH_.mjs} +4 -4
- package/dist/{BFormRating-BR7RMvZG.mjs.map → BFormRating-CIgPVsH_.mjs.map} +1 -1
- package/dist/{BFormRating-CF-x5qkB.js → BFormRating-CSdRxN5z.js} +4 -4
- package/dist/{BFormRating-CF-x5qkB.js.map → BFormRating-CSdRxN5z.js.map} +1 -1
- package/dist/{BFormSelect-CtcsnTlz.js → BFormSelect-CI92Dv27.js} +7 -6
- package/dist/BFormSelect-CI92Dv27.js.map +1 -0
- package/dist/{BFormSelect-eS-C3M0J.mjs → BFormSelect-P-InkOm-.mjs} +7 -6
- package/dist/BFormSelect-P-InkOm-.mjs.map +1 -0
- package/dist/{BFormSelectOption-B3BO50XB.mjs → BFormSelectOption-DFN4lPRh.mjs} +3 -3
- package/dist/{BFormSelectOption-B3BO50XB.mjs.map → BFormSelectOption-DFN4lPRh.mjs.map} +1 -1
- package/dist/{BFormSelectOption-CQ3j1Q5j.js → BFormSelectOption-DrwJucNf.js} +3 -3
- package/dist/{BFormSelectOption-CQ3j1Q5j.js.map → BFormSelectOption-DrwJucNf.js.map} +1 -1
- package/dist/{BFormSpinbutton-DPCXum9q.js → BFormSpinbutton-1gTz4nTo.js} +4 -4
- package/dist/{BFormSpinbutton-DPCXum9q.js.map → BFormSpinbutton-1gTz4nTo.js.map} +1 -1
- package/dist/{BFormSpinbutton-CPsVUIh9.mjs → BFormSpinbutton-6qkTBF_4.mjs} +4 -4
- package/dist/{BFormSpinbutton-CPsVUIh9.mjs.map → BFormSpinbutton-6qkTBF_4.mjs.map} +1 -1
- package/dist/{BFormTag-Bsy6Znok.js → BFormTag-CeV0MSRC.js} +4 -4
- package/dist/{BFormTag-Bsy6Znok.js.map → BFormTag-CeV0MSRC.js.map} +1 -1
- package/dist/{BFormTag-Cjg1R-Lj.mjs → BFormTag-CnzI39y9.mjs} +4 -4
- package/dist/{BFormTag-Cjg1R-Lj.mjs.map → BFormTag-CnzI39y9.mjs.map} +1 -1
- package/dist/{BFormTags-D2Dk598Q.mjs → BFormTags-BMltSaKL.mjs} +4 -4
- package/dist/{BFormTags-D2Dk598Q.mjs.map → BFormTags-BMltSaKL.mjs.map} +1 -1
- package/dist/{BFormTags-BIZyBseI.js → BFormTags-BhO60uiL.js} +4 -4
- package/dist/{BFormTags-BIZyBseI.js.map → BFormTags-BhO60uiL.js.map} +1 -1
- package/dist/{BFormTextarea-CYh47SxL.js → BFormTextarea-C3Cj0DWj.js} +3 -3
- package/dist/{BFormTextarea-CYh47SxL.js.map → BFormTextarea-C3Cj0DWj.js.map} +1 -1
- package/dist/{BFormTextarea-M21mholw.mjs → BFormTextarea-DN1gAfSo.mjs} +3 -3
- package/dist/{BFormTextarea-M21mholw.mjs.map → BFormTextarea-DN1gAfSo.mjs.map} +1 -1
- package/dist/{BFormValidFeedback-DWkakzVO.mjs → BFormValidFeedback-CBYxQLDz.mjs} +44 -4
- package/dist/BFormValidFeedback-CBYxQLDz.mjs.map +1 -0
- package/dist/{BFormValidFeedback-BhkEhSa0.js → BFormValidFeedback-Kwxh798d.js} +48 -2
- package/dist/BFormValidFeedback-Kwxh798d.js.map +1 -0
- package/dist/{BImg-DFiJSy66.js → BImg-JKJLgYYT.js} +2 -2
- package/dist/{BImg-DFiJSy66.js.map → BImg-JKJLgYYT.js.map} +1 -1
- package/dist/{BImg-UUMOpbK0.mjs → BImg-QBS2ECBc.mjs} +2 -2
- package/dist/{BImg-UUMOpbK0.mjs.map → BImg-QBS2ECBc.mjs.map} +1 -1
- package/dist/{BInputGroup-BAC-B_UM.js → BInputGroup-Bvlfv6VD.js} +3 -3
- package/dist/{BInputGroup-BAC-B_UM.js.map → BInputGroup-Bvlfv6VD.js.map} +1 -1
- package/dist/{BInputGroup-CiKwWBSu.js → BInputGroup-D4fW324B.js} +3 -3
- package/dist/{BInputGroup-CiKwWBSu.js.map → BInputGroup-D4fW324B.js.map} +1 -1
- package/dist/{BInputGroup-CfELrPhK.mjs → BInputGroup-DiTSexkT.mjs} +3 -3
- package/dist/{BInputGroup-CfELrPhK.mjs.map → BInputGroup-DiTSexkT.mjs.map} +1 -1
- package/dist/{BInputGroup-3AVRA3U7.mjs → BInputGroup-X2Z53RJx.mjs} +3 -3
- package/dist/{BInputGroup-3AVRA3U7.mjs.map → BInputGroup-X2Z53RJx.mjs.map} +1 -1
- package/dist/{BLink-CNFWSz0D.mjs → BLink-Dfgte6dQ.mjs} +3 -3
- package/dist/{BLink-CNFWSz0D.mjs.map → BLink-Dfgte6dQ.mjs.map} +1 -1
- package/dist/{BLink-uLjtY3bY.js → BLink-kLEjleB1.js} +3 -3
- package/dist/{BLink-uLjtY3bY.js.map → BLink-kLEjleB1.js.map} +1 -1
- package/dist/{BListGroup-CeXKZio1.js → BListGroup-C8JOzHTz.js} +4 -4
- package/dist/{BListGroup-CeXKZio1.js.map → BListGroup-C8JOzHTz.js.map} +1 -1
- package/dist/{BListGroup-CGxa7ZEu.mjs → BListGroup-DwTLpNiD.mjs} +4 -4
- package/dist/{BListGroup-CGxa7ZEu.mjs.map → BListGroup-DwTLpNiD.mjs.map} +1 -1
- package/dist/{BModal-BEmloby5.mjs → BModal-C-ZCau2E.mjs} +7 -7
- package/dist/{BModal-BEmloby5.mjs.map → BModal-C-ZCau2E.mjs.map} +1 -1
- package/dist/{BModal-6hh-azT8.js → BModal-VstTwEq9.js} +7 -7
- package/dist/{BModal-6hh-azT8.js.map → BModal-VstTwEq9.js.map} +1 -1
- package/dist/{BNav-u9QwSGj3.js → BNav-DCLambmM.js} +5 -5
- package/dist/{BNav-u9QwSGj3.js.map → BNav-DCLambmM.js.map} +1 -1
- package/dist/{BNav-EHHlEg1E.mjs → BNav-DfYvjfRK.mjs} +5 -5
- package/dist/{BNav-EHHlEg1E.mjs.map → BNav-DfYvjfRK.mjs.map} +1 -1
- package/dist/{BNavbar-s8yvmhyz.js → BNavbar-BLWaZJRP.js} +4 -4
- package/dist/{BNavbar-s8yvmhyz.js.map → BNavbar-BLWaZJRP.js.map} +1 -1
- package/dist/{BNavbar-kgHIo_Gr.mjs → BNavbar-xYaikQVY.mjs} +4 -4
- package/dist/{BNavbar-kgHIo_Gr.mjs.map → BNavbar-xYaikQVY.mjs.map} +1 -1
- package/dist/{BOffcanvas-CwH0DqSG.mjs → BOffcanvas-CQb9XNvS.mjs} +6 -6
- package/dist/{BOffcanvas-CwH0DqSG.mjs.map → BOffcanvas-CQb9XNvS.mjs.map} +1 -1
- package/dist/{BOffcanvas-DdiP19Xz.js → BOffcanvas-DTRiZzwN.js} +6 -6
- package/dist/{BOffcanvas-DdiP19Xz.js.map → BOffcanvas-DTRiZzwN.js.map} +1 -1
- package/dist/{BOverlay-DSUoseNJ.mjs → BOverlay-Bh2PIN_q.mjs} +3 -3
- package/dist/{BOverlay-DSUoseNJ.mjs.map → BOverlay-Bh2PIN_q.mjs.map} +1 -1
- package/dist/{BOverlay--gZBEMlX.js → BOverlay-Bh4ldxgt.js} +3 -3
- package/dist/{BOverlay--gZBEMlX.js.map → BOverlay-Bh4ldxgt.js.map} +1 -1
- package/dist/{BPagination-C7MKOk8h.mjs → BPagination-D75q-ZNg.mjs} +2 -2
- package/dist/{BPagination-C7MKOk8h.mjs.map → BPagination-D75q-ZNg.mjs.map} +1 -1
- package/dist/{BPagination-D6W1LdgK.js → BPagination-fbjFAtxu.js} +2 -2
- package/dist/{BPagination-D6W1LdgK.js.map → BPagination-fbjFAtxu.js.map} +1 -1
- package/dist/{BPlaceholder-Ckvq3tMu.js → BPlaceholder-B3rs_39w.js} +4 -4
- package/dist/{BPlaceholder-Ckvq3tMu.js.map → BPlaceholder-B3rs_39w.js.map} +1 -1
- package/dist/{BPlaceholder-D__hNPyQ.mjs → BPlaceholder-DPQ6mCLN.mjs} +4 -4
- package/dist/{BPlaceholder-D__hNPyQ.mjs.map → BPlaceholder-DPQ6mCLN.mjs.map} +1 -1
- package/dist/{BProgress-I1ucNlpA.mjs → BProgress-BZlrPYhA.mjs} +3 -3
- package/dist/{BProgress-I1ucNlpA.mjs.map → BProgress-BZlrPYhA.mjs.map} +1 -1
- package/dist/{BProgress-ySlPjpRn.js → BProgress-th0-eZWo.js} +3 -3
- package/dist/{BProgress-ySlPjpRn.js.map → BProgress-th0-eZWo.js.map} +1 -1
- package/dist/{BRow-CmKiMcMZ.js → BRow-7AOuFiSy.js} +2 -2
- package/dist/{BRow-CmKiMcMZ.js.map → BRow-7AOuFiSy.js.map} +1 -1
- package/dist/{BRow-U3L8AcKV.mjs → BRow-eGSUYGCW.mjs} +2 -2
- package/dist/{BRow-U3L8AcKV.mjs.map → BRow-eGSUYGCW.mjs.map} +1 -1
- package/dist/{BSpinner-CAo-XD04.mjs → BSpinner-CUfGqviV.mjs} +2 -2
- package/dist/{BSpinner-CAo-XD04.mjs.map → BSpinner-CUfGqviV.mjs.map} +1 -1
- package/dist/{BSpinner-C1bm8U4-.js → BSpinner-DbYIp-C7.js} +2 -2
- package/dist/{BSpinner-C1bm8U4-.js.map → BSpinner-DbYIp-C7.js.map} +1 -1
- package/dist/{BTable-Bt75vbNu.mjs → BTable-CzMtFdt5.mjs} +5 -5
- package/dist/{BTable-Bt75vbNu.mjs.map → BTable-CzMtFdt5.mjs.map} +1 -1
- package/dist/{BTable-CXxJl2ps.js → BTable-DOpSWDaC.js} +5 -5
- package/dist/{BTable-CXxJl2ps.js.map → BTable-DOpSWDaC.js.map} +1 -1
- package/dist/{BTableSimple-pyz_6D4s.js → BTableSimple-BkdGAAKb.js} +3 -3
- package/dist/{BTableSimple-pyz_6D4s.js.map → BTableSimple-BkdGAAKb.js.map} +1 -1
- package/dist/{BTableSimple-CThwYBVl.mjs → BTableSimple-C-jn9Nwh.mjs} +3 -3
- package/dist/{BTableSimple-CThwYBVl.mjs.map → BTableSimple-C-jn9Nwh.mjs.map} +1 -1
- package/dist/{BTabs-C8rUY0Lx.js → BTabs-CvecFg5N.js} +4 -4
- package/dist/{BTabs-C8rUY0Lx.js.map → BTabs-CvecFg5N.js.map} +1 -1
- package/dist/{BTabs-Krs_Lv-R.mjs → BTabs-D_vWlBjT.mjs} +4 -4
- package/dist/{BTabs-Krs_Lv-R.mjs.map → BTabs-D_vWlBjT.mjs.map} +1 -1
- package/dist/{BTimeField-DSf4cMpN.mjs → BTimeField-BSDaZogC.mjs} +3 -3
- package/dist/{BTimeField-DSf4cMpN.mjs.map → BTimeField-BSDaZogC.mjs.map} +1 -1
- package/dist/{BTimeField-W2LqGCjB.js → BTimeField-BT5HXecp.js} +3 -3
- package/dist/{BTimeField-W2LqGCjB.js.map → BTimeField-BT5HXecp.js.map} +1 -1
- package/dist/{BToast-DZuxMDbe.js → BToast-DR0pek4W.js} +8 -8
- package/dist/{BToast-DZuxMDbe.js.map → BToast-DR0pek4W.js.map} +1 -1
- package/dist/{BToast-Dcfnqbxt.mjs → BToast-Y8BayxES.mjs} +8 -8
- package/dist/{BToast-Dcfnqbxt.mjs.map → BToast-Y8BayxES.mjs.map} +1 -1
- package/dist/{BTooltip-BWij0hjE.mjs → BTooltip-CVP8HdkU.mjs} +3 -3
- package/dist/{BTooltip-BWij0hjE.mjs.map → BTooltip-CVP8HdkU.mjs.map} +1 -1
- package/dist/{BTooltip-BGTjsV1z.js → BTooltip-DPLYtaL1.js} +3 -3
- package/dist/{BTooltip-BGTjsV1z.js.map → BTooltip-DPLYtaL1.js.map} +1 -1
- package/dist/bootstrap-vue-next.mjs +59 -59
- package/dist/bootstrap-vue-next.umd.js +59 -59
- package/dist/composables/useProvideFormGroupData.d.mts +15 -0
- package/dist/composables/useProvideFormGroupData.d.ts +15 -0
- package/dist/{floatingUi-8xXp54zf.mjs → floatingUi-62aeQtAb.mjs} +4 -4
- package/dist/{floatingUi-8xXp54zf.mjs.map → floatingUi-62aeQtAb.mjs.map} +1 -1
- package/dist/{floatingUi-9SWu8BgZ.js → floatingUi-DQ5bHmy3.js} +4 -4
- package/dist/{floatingUi-9SWu8BgZ.js.map → floatingUi-DQ5bHmy3.js.map} +1 -1
- package/dist/{keys-durSVUrO.js → keys-BMye8nSf.js} +10 -1
- package/dist/{keys-durSVUrO.js.map → keys-BMye8nSf.js.map} +1 -1
- package/dist/{keys-CQKrwmvN.mjs → keys-DU7sQgl3.mjs} +10 -1
- package/dist/{keys-CQKrwmvN.mjs.map → keys-DU7sQgl3.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/BAspect/index.mjs +1 -1
- package/dist/src/components/BAspect/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 +59 -59
- package/dist/src/components/index.umd.js +59 -59
- package/dist/src/composables/orchestratorShared/index.mjs +1 -1
- package/dist/src/composables/orchestratorShared/index.umd.js +1 -1
- package/dist/src/composables/useBreadcrumb/index.mjs +1 -1
- package/dist/src/composables/useBreadcrumb/index.umd.js +1 -1
- package/dist/src/composables/useModal/index.mjs +2 -2
- package/dist/src/composables/useModal/index.umd.js +2 -2
- package/dist/src/composables/usePopover/index.mjs +3 -3
- package/dist/src/composables/usePopover/index.umd.js +3 -3
- package/dist/src/composables/useProvideDefaults/index.mjs +1 -1
- package/dist/src/composables/useProvideDefaults/index.umd.js +1 -1
- package/dist/src/composables/useRegistry/index.mjs +1 -1
- package/dist/src/composables/useRegistry/index.umd.js +1 -1
- package/dist/src/composables/useToast/index.mjs +2 -2
- package/dist/src/composables/useToast/index.umd.js +2 -2
- 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 +2 -2
- package/dist/src/directives/BToggle/index.umd.js +2 -2
- package/dist/src/directives/BTooltip/index.mjs +2 -2
- package/dist/src/directives/BTooltip/index.umd.js +2 -2
- package/dist/src/plugins/createBootstrap/index.mjs +1 -1
- package/dist/src/plugins/createBootstrap/index.umd.js +1 -1
- package/dist/src/plugins/orchestrator/index.mjs +1 -1
- package/dist/src/plugins/orchestrator/index.umd.js +1 -1
- package/dist/src/plugins/registry/index.mjs +1 -1
- package/dist/src/plugins/registry/index.umd.js +1 -1
- package/dist/src/plugins/rtl/index.mjs +1 -1
- package/dist/src/plugins/rtl/index.umd.js +1 -1
- package/dist/{useDefaults-DsLf4iRY.js → useDefaults-C0CYry78.js} +2 -2
- package/dist/{useDefaults-DsLf4iRY.js.map → useDefaults-C0CYry78.js.map} +1 -1
- package/dist/{useDefaults-BKgBaqOV.mjs → useDefaults-DseelK6y.mjs} +2 -2
- package/dist/{useDefaults-BKgBaqOV.mjs.map → useDefaults-DseelK6y.mjs.map} +1 -1
- package/dist/{useFormInput-CA4FYoV7.mjs → useFormInput-CXl8rpD0.mjs} +5 -4
- package/dist/useFormInput-CXl8rpD0.mjs.map +1 -0
- package/dist/{useFormInput-D31FCDxr.js → useFormInput-ip9hN2AU.js} +5 -4
- package/dist/useFormInput-ip9hN2AU.js.map +1 -0
- package/dist/{useId-DHrBgM7P.js → useId-BkAY2oh6.js} +2 -2
- package/dist/{useId-DHrBgM7P.js.map → useId-BkAY2oh6.js.map} +1 -1
- package/dist/{useId-BKZFSYm8.mjs → useId-D1sqXtwx.mjs} +2 -2
- package/dist/{useId-BKZFSYm8.mjs.map → useId-D1sqXtwx.mjs.map} +1 -1
- package/dist/{useRtl-DDPRnA7g.js → useRtl-BSgvbs5F.js} +2 -2
- package/dist/{useRtl-DDPRnA7g.js.map → useRtl-BSgvbs5F.js.map} +1 -1
- package/dist/{useRtl-VR3M2Txg.mjs → useRtl-CGoXBxNo.mjs} +2 -2
- package/dist/{useRtl-VR3M2Txg.mjs.map → useRtl-CGoXBxNo.mjs.map} +1 -1
- package/dist/{useShowHide-DKdljnpv.mjs → useShowHide-CBFt1_EW.mjs} +2 -2
- package/dist/{useShowHide-DKdljnpv.mjs.map → useShowHide-CBFt1_EW.mjs.map} +1 -1
- package/dist/{useShowHide-BhdrR1wG.js → useShowHide-CHm2uUep.js} +2 -2
- package/dist/{useShowHide-BhdrR1wG.js.map → useShowHide-CHm2uUep.js.map} +1 -1
- package/dist/utils/keys.d.mts +11 -1
- package/dist/utils/keys.d.ts +11 -1
- package/dist/{utils-BbYwYPyP.mjs → utils-CWvndqPg.mjs} +3 -3
- package/dist/{utils-BbYwYPyP.mjs.map → utils-CWvndqPg.mjs.map} +1 -1
- package/dist/{utils-ePxMJ7rd.js → utils-Dk9yAtbs.js} +3 -3
- package/dist/{utils-ePxMJ7rd.js.map → utils-Dk9yAtbs.js.map} +1 -1
- package/package.json +1 -1
- package/dist/BFormCheckbox-g7gtIrhy.js.map +0 -1
- package/dist/BFormCheckbox-xN7AQw4O.mjs.map +0 -1
- package/dist/BFormGroup-DZTiChgT.js.map +0 -1
- package/dist/BFormGroup-ayltvQts.mjs.map +0 -1
- package/dist/BFormRadio-DHx68AdL.mjs.map +0 -1
- package/dist/BFormRadio-DX-gM5Rc.js.map +0 -1
- package/dist/BFormSelect-CtcsnTlz.js.map +0 -1
- package/dist/BFormSelect-eS-C3M0J.mjs.map +0 -1
- package/dist/BFormValidFeedback-BhkEhSa0.js.map +0 -1
- package/dist/BFormValidFeedback-DWkakzVO.mjs.map +0 -1
- package/dist/useFormInput-CA4FYoV7.mjs.map +0 -1
- package/dist/useFormInput-D31FCDxr.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDefaults-
|
|
1
|
+
{"version":3,"file":"useDefaults-C0CYry78.js","names":[],"sources":["../src/composables/useDefaults.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n// Utilities\nimport {\n getCurrentInstance as _getCurrentInstance,\n type ComponentInternalInstance,\n computed,\n inject,\n type InjectionKey,\n provide,\n ref,\n shallowRef,\n type VNode,\n watchEffect,\n} from 'vue'\nimport {defaultsKey} from '../utils/keys'\nimport type {BvnComponentProps} from '../types/BootstrapVueOptions'\n\n// Code here was taken from\n// https://github.com/vuetifyjs/vuetify/blob/8ed87310890e2b6c8ad2a626a02c17f9467cbb60/packages/vuetify/src/composables/defaults.ts#L138\n// Thanks to the Vuetify team. Vue does not make this easy\n\nfunction injectSelf<T>(key: InjectionKey<T> | string, vm?: ComponentInternalInstance): T | undefined\nfunction injectSelf(key: InjectionKey<any> | string, vm = getCurrentInstance('injectSelf')) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const {provides} = vm\n\n if (provides && (key as string | symbol) in provides) {\n // TS doesn't allow symbol as index type\n return provides[key as string]\n }\n return undefined\n}\n\nfunction getCurrentInstance(name: string, message?: string) {\n const vm = _getCurrentInstance()\n\n if (!vm) {\n throw new Error(`[Bvn] ${name} ${message || 'must be called from inside a setup function'}`)\n }\n\n return vm\n}\n\nconst toKebabCase = (str = '') =>\n str\n .replace(/[^a-z]/gi, '-')\n .replace(/\\B([A-Z])/g, '-$1')\n .toLowerCase()\nconst isObject = (obj: unknown): obj is Record<string, any> =>\n obj !== null && typeof obj === 'object' && !Array.isArray(obj)\n\nfunction mergeDeep(\n source: Record<string, any> = {},\n target: Record<string, any> = {},\n arrayFn?: (a: unknown[], b: unknown[]) => unknown[]\n) {\n const out: Record<string, any> = {}\n\n for (const key in source) {\n out[key] = source[key]\n }\n\n for (const key in target) {\n const sourceProperty = source[key]\n const targetProperty = target[key]\n\n // Only continue deep merging if\n // both properties are objects\n if (isObject(sourceProperty) && isObject(targetProperty)) {\n out[key] = mergeDeep(sourceProperty, targetProperty, arrayFn)\n\n continue\n }\n\n if (Array.isArray(sourceProperty) && Array.isArray(targetProperty) && arrayFn) {\n out[key] = arrayFn(sourceProperty, targetProperty)\n\n continue\n }\n\n out[key] = targetProperty\n }\n\n return out\n}\n\nconst propIsDefined = (vnode: VNode, prop: string) =>\n typeof vnode.props?.[prop] !== 'undefined' ||\n typeof vnode.props?.[toKebabCase(prop)] !== 'undefined'\n\nfunction internalUseDefaults(props: Record<string, any> = {}, name?: string) {\n const defaults = inject(defaultsKey, ref({}))\n const vm = getCurrentInstance('useDefaults')\n\n name = name ?? vm.type.name ?? vm.type.__name\n if (!name) {\n // Should never happen\n throw new Error('[Bvn] Could not determine component name')\n }\n\n const componentDefaults = computed(() => (defaults.value as any)?.[props._as ?? name])\n const _props = new Proxy(props, {\n get(target, prop) {\n const propValue = Reflect.get(target, prop)\n if (prop === 'class' || prop === 'style') {\n return [componentDefaults.value?.[prop], propValue].filter((v) => v != null)\n } else if (typeof prop === 'string' && !propIsDefined(vm.vnode, prop)) {\n return (\n componentDefaults.value?.[prop] ?? (defaults.value as any)?.global?.[prop] ?? propValue\n )\n }\n return propValue\n },\n })\n\n const _subcomponentDefaults = shallowRef()\n watchEffect(() => {\n if (componentDefaults.value) {\n const subComponents = Object.entries(componentDefaults.value).filter(\n ([key]) => key[0] !== undefined && key.startsWith(key[0].toUpperCase())\n )\n _subcomponentDefaults.value = subComponents.length\n ? Object.fromEntries(subComponents)\n : undefined\n } else {\n _subcomponentDefaults.value = undefined\n }\n })\n\n function provideSubDefaults() {\n const injected = injectSelf(defaultsKey, vm)\n provide(\n defaultsKey,\n computed(() =>\n _subcomponentDefaults.value\n ? mergeDeep(injected?.value ?? {}, _subcomponentDefaults.value)\n : injected?.value\n ) as any\n )\n }\n\n return {props: _props, provideSubDefaults}\n}\n\nexport function useDefaults<T extends Record<string, any>>(\n props: T,\n name: keyof BvnComponentProps\n): T {\n const {props: _props, provideSubDefaults} = internalUseDefaults(props, name)\n provideSubDefaults()\n return _props as T\n}\n"],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { l as defaultsKey } from "./keys-
|
|
1
|
+
import { l as defaultsKey } from "./keys-DU7sQgl3.mjs";
|
|
2
2
|
import { computed, getCurrentInstance, inject, provide, ref, shallowRef, watchEffect } from "vue";
|
|
3
3
|
//#region src/composables/useDefaults.ts
|
|
4
4
|
function injectSelf(key, vm = getCurrentInstance$1("injectSelf")) {
|
|
@@ -67,4 +67,4 @@ function useDefaults(props, name) {
|
|
|
67
67
|
//#endregion
|
|
68
68
|
export { useDefaults as t };
|
|
69
69
|
|
|
70
|
-
//# sourceMappingURL=useDefaults-
|
|
70
|
+
//# sourceMappingURL=useDefaults-DseelK6y.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useDefaults-
|
|
1
|
+
{"version":3,"file":"useDefaults-DseelK6y.mjs","names":[],"sources":["../src/composables/useDefaults.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n// Utilities\nimport {\n getCurrentInstance as _getCurrentInstance,\n type ComponentInternalInstance,\n computed,\n inject,\n type InjectionKey,\n provide,\n ref,\n shallowRef,\n type VNode,\n watchEffect,\n} from 'vue'\nimport {defaultsKey} from '../utils/keys'\nimport type {BvnComponentProps} from '../types/BootstrapVueOptions'\n\n// Code here was taken from\n// https://github.com/vuetifyjs/vuetify/blob/8ed87310890e2b6c8ad2a626a02c17f9467cbb60/packages/vuetify/src/composables/defaults.ts#L138\n// Thanks to the Vuetify team. Vue does not make this easy\n\nfunction injectSelf<T>(key: InjectionKey<T> | string, vm?: ComponentInternalInstance): T | undefined\nfunction injectSelf(key: InjectionKey<any> | string, vm = getCurrentInstance('injectSelf')) {\n // eslint-disable-next-line @typescript-eslint/ban-ts-comment\n // @ts-ignore\n const {provides} = vm\n\n if (provides && (key as string | symbol) in provides) {\n // TS doesn't allow symbol as index type\n return provides[key as string]\n }\n return undefined\n}\n\nfunction getCurrentInstance(name: string, message?: string) {\n const vm = _getCurrentInstance()\n\n if (!vm) {\n throw new Error(`[Bvn] ${name} ${message || 'must be called from inside a setup function'}`)\n }\n\n return vm\n}\n\nconst toKebabCase = (str = '') =>\n str\n .replace(/[^a-z]/gi, '-')\n .replace(/\\B([A-Z])/g, '-$1')\n .toLowerCase()\nconst isObject = (obj: unknown): obj is Record<string, any> =>\n obj !== null && typeof obj === 'object' && !Array.isArray(obj)\n\nfunction mergeDeep(\n source: Record<string, any> = {},\n target: Record<string, any> = {},\n arrayFn?: (a: unknown[], b: unknown[]) => unknown[]\n) {\n const out: Record<string, any> = {}\n\n for (const key in source) {\n out[key] = source[key]\n }\n\n for (const key in target) {\n const sourceProperty = source[key]\n const targetProperty = target[key]\n\n // Only continue deep merging if\n // both properties are objects\n if (isObject(sourceProperty) && isObject(targetProperty)) {\n out[key] = mergeDeep(sourceProperty, targetProperty, arrayFn)\n\n continue\n }\n\n if (Array.isArray(sourceProperty) && Array.isArray(targetProperty) && arrayFn) {\n out[key] = arrayFn(sourceProperty, targetProperty)\n\n continue\n }\n\n out[key] = targetProperty\n }\n\n return out\n}\n\nconst propIsDefined = (vnode: VNode, prop: string) =>\n typeof vnode.props?.[prop] !== 'undefined' ||\n typeof vnode.props?.[toKebabCase(prop)] !== 'undefined'\n\nfunction internalUseDefaults(props: Record<string, any> = {}, name?: string) {\n const defaults = inject(defaultsKey, ref({}))\n const vm = getCurrentInstance('useDefaults')\n\n name = name ?? vm.type.name ?? vm.type.__name\n if (!name) {\n // Should never happen\n throw new Error('[Bvn] Could not determine component name')\n }\n\n const componentDefaults = computed(() => (defaults.value as any)?.[props._as ?? name])\n const _props = new Proxy(props, {\n get(target, prop) {\n const propValue = Reflect.get(target, prop)\n if (prop === 'class' || prop === 'style') {\n return [componentDefaults.value?.[prop], propValue].filter((v) => v != null)\n } else if (typeof prop === 'string' && !propIsDefined(vm.vnode, prop)) {\n return (\n componentDefaults.value?.[prop] ?? (defaults.value as any)?.global?.[prop] ?? propValue\n )\n }\n return propValue\n },\n })\n\n const _subcomponentDefaults = shallowRef()\n watchEffect(() => {\n if (componentDefaults.value) {\n const subComponents = Object.entries(componentDefaults.value).filter(\n ([key]) => key[0] !== undefined && key.startsWith(key[0].toUpperCase())\n )\n _subcomponentDefaults.value = subComponents.length\n ? Object.fromEntries(subComponents)\n : undefined\n } else {\n _subcomponentDefaults.value = undefined\n }\n })\n\n function provideSubDefaults() {\n const injected = injectSelf(defaultsKey, vm)\n provide(\n defaultsKey,\n computed(() =>\n _subcomponentDefaults.value\n ? mergeDeep(injected?.value ?? {}, _subcomponentDefaults.value)\n : injected?.value\n ) as any\n )\n }\n\n return {props: _props, provideSubDefaults}\n}\n\nexport function useDefaults<T extends Record<string, any>>(\n props: T,\n name: keyof BvnComponentProps\n): T {\n const {props: _props, provideSubDefaults} = internalUseDefaults(props, name)\n provideSubDefaults()\n return _props as T\n}\n"],"mappings":";;;AAsBA,SAAS,WAAW,KAAiC,KAAK,qBAAmB,aAAa,EAAE;CAG1F,MAAM,EAAC,aAAY;AAEnB,KAAI,YAAa,OAA2B,SAE1C,QAAO,SAAS;;AAKpB,SAAS,qBAAmB,MAAc,SAAkB;CAC1D,MAAM,KAAK,oBAAqB;AAEhC,KAAI,CAAC,GACH,OAAM,IAAI,MAAM,SAAS,KAAK,GAAG,WAAW,gDAAgD;AAG9F,QAAO;;AAGT,IAAM,eAAe,MAAM,OACzB,IACG,QAAQ,YAAY,IAAI,CACxB,QAAQ,cAAc,MAAM,CAC5B,aAAa;AAClB,IAAM,YAAY,QAChB,QAAQ,QAAQ,OAAO,QAAQ,YAAY,CAAC,MAAM,QAAQ,IAAI;AAEhE,SAAS,UACP,SAA8B,EAAE,EAChC,SAA8B,EAAE,EAChC,SACA;CACA,MAAM,MAA2B,EAAE;AAEnC,MAAK,MAAM,OAAO,OAChB,KAAI,OAAO,OAAO;AAGpB,MAAK,MAAM,OAAO,QAAQ;EACxB,MAAM,iBAAiB,OAAO;EAC9B,MAAM,iBAAiB,OAAO;AAI9B,MAAI,SAAS,eAAe,IAAI,SAAS,eAAe,EAAE;AACxD,OAAI,OAAO,UAAU,gBAAgB,gBAAgB,QAAQ;AAE7D;;AAGF,MAAI,MAAM,QAAQ,eAAe,IAAI,MAAM,QAAQ,eAAe,IAAI,SAAS;AAC7E,OAAI,OAAO,QAAQ,gBAAgB,eAAe;AAElD;;AAGF,MAAI,OAAO;;AAGb,QAAO;;AAGT,IAAM,iBAAiB,OAAc,SACnC,OAAO,MAAM,QAAQ,UAAU,eAC/B,OAAO,MAAM,QAAQ,YAAY,KAAK,MAAM;AAE9C,SAAS,oBAAoB,QAA6B,EAAE,EAAE,MAAe;CAC3E,MAAM,WAAW,OAAO,aAAa,IAAI,EAAE,CAAC,CAAC;CAC7C,MAAM,KAAK,qBAAmB,cAAc;AAE5C,QAAO,QAAQ,GAAG,KAAK,QAAQ,GAAG,KAAK;AACvC,KAAI,CAAC,KAEH,OAAM,IAAI,MAAM,2CAA2C;CAG7D,MAAM,oBAAoB,eAAgB,SAAS,QAAgB,MAAM,OAAO,MAAM;CACtF,MAAM,SAAS,IAAI,MAAM,OAAO,EAC9B,IAAI,QAAQ,MAAM;EAChB,MAAM,YAAY,QAAQ,IAAI,QAAQ,KAAK;AAC3C,MAAI,SAAS,WAAW,SAAS,QAC/B,QAAO,CAAC,kBAAkB,QAAQ,OAAO,UAAU,CAAC,QAAQ,MAAM,KAAK,KAAK;WACnE,OAAO,SAAS,YAAY,CAAC,cAAc,GAAG,OAAO,KAAK,CACnE,QACE,kBAAkB,QAAQ,SAAU,SAAS,OAAe,SAAS,SAAS;AAGlF,SAAO;IAEV,CAAC;CAEF,MAAM,wBAAwB,YAAY;AAC1C,mBAAkB;AAChB,MAAI,kBAAkB,OAAO;GAC3B,MAAM,gBAAgB,OAAO,QAAQ,kBAAkB,MAAM,CAAC,QAC3D,CAAC,SAAS,IAAI,OAAO,KAAA,KAAa,IAAI,WAAW,IAAI,GAAG,aAAa,CAAC,CACxE;AACD,yBAAsB,QAAQ,cAAc,SACxC,OAAO,YAAY,cAAc,GACjC,KAAA;QAEJ,uBAAsB,QAAQ,KAAA;GAEhC;CAEF,SAAS,qBAAqB;EAC5B,MAAM,WAAW,WAAW,aAAa,GAAG;AAC5C,UACE,aACA,eACE,sBAAsB,QAClB,UAAU,UAAU,SAAS,EAAE,EAAE,sBAAsB,MAAM,GAC7D,UAAU,MACf,CACF;;AAGH,QAAO;EAAC,OAAO;EAAQ;EAAmB;;AAG5C,SAAgB,YACd,OACA,MACG;CACH,MAAM,EAAC,OAAO,QAAQ,uBAAsB,oBAAoB,OAAO,KAAK;AAC5E,qBAAoB;AACpB,QAAO"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { d as formGroupKey } from "./keys-
|
|
1
|
+
import { d as formGroupKey } from "./keys-DU7sQgl3.mjs";
|
|
2
2
|
import { R as useToNumber, m as useFocus } from "./dist-Dk9C_HFS.mjs";
|
|
3
|
-
import { t as useId$1 } from "./useId-
|
|
3
|
+
import { t as useId$1 } from "./useId-D1sqXtwx.mjs";
|
|
4
4
|
import { t as useAriaInvalid } from "./useAriaInvalid-apOwgexm.mjs";
|
|
5
5
|
import { t as useDebounceFn } from "./debounce-DHxNfjan.mjs";
|
|
6
6
|
import { t as useStateClass } from "./useStateClass-DxlL_m2E.mjs";
|
|
@@ -21,7 +21,8 @@ var useFormInput = (props, input, modelValue, modelModifiers) => {
|
|
|
21
21
|
const computedId = useId$1(() => props.id, "input");
|
|
22
22
|
const debounceNumber = useToNumber(() => props.debounce ?? 0, { nanToZero: true });
|
|
23
23
|
const debounceMaxWaitNumber = useToNumber(() => props.debounceMaxWait ?? NaN);
|
|
24
|
-
const formGroupData = inject(formGroupKey, null)?.(
|
|
24
|
+
const formGroupData = inject(formGroupKey, null)?.();
|
|
25
|
+
formGroupData?.track(computedId);
|
|
25
26
|
const computedState = computed(() => props.state !== void 0 ? props.state : formGroupData?.state.value ?? null);
|
|
26
27
|
const isDisabled = computed(() => props.disabled || (formGroupData?.disabled.value ?? false));
|
|
27
28
|
const computedAriaInvalid = useAriaInvalid(() => props.ariaInvalid, computedState);
|
|
@@ -101,4 +102,4 @@ var useFormInput = (props, input, modelValue, modelModifiers) => {
|
|
|
101
102
|
//#endregion
|
|
102
103
|
export { normalizeInput as n, useFormInput as t };
|
|
103
104
|
|
|
104
|
-
//# sourceMappingURL=useFormInput-
|
|
105
|
+
//# sourceMappingURL=useFormInput-CXl8rpD0.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFormInput-CXl8rpD0.mjs","names":[],"sources":["../src/utils/normalizeInput.ts","../src/composables/useFormInput.ts"],"sourcesContent":["import type {Numberish} from '../types/CommonTypes'\n\nexport const normalizeInput = (\n v: Numberish | null,\n modelModifiers: Record<'number' | 'lazy' | 'trim', true | undefined>\n) => {\n if (v === null) return\n let update = v\n if (modelModifiers.number && typeof update === 'string' && update !== '') {\n const parsed = Number.parseFloat(update)\n update = Number.isNaN(parsed) ? update : parsed\n }\n return update\n}\n","import type {Numberish} from '../types/CommonTypes'\nimport {computed, inject, nextTick, onActivated, onMounted, type Ref, type ShallowRef} from 'vue'\nimport {useAriaInvalid} from './useAriaInvalid'\nimport {useId} from './useId'\nimport {useFocus, useToNumber} from '@vueuse/core'\nimport type {CommonInputProps} from '../types/FormCommonInputProps'\nimport {formGroupKey} from '../utils/keys'\nimport {useDebounceFn} from '../utils/debounce'\nimport {useStateClass} from './useStateClass'\n\nexport const useFormInput = (\n props: Readonly<CommonInputProps>,\n input:\n | Readonly<ShallowRef<HTMLInputElement | null>>\n | Readonly<ShallowRef<HTMLTextAreaElement | null>>,\n modelValue: Ref<Numberish | null>,\n modelModifiers: Record<'number' | 'lazy' | 'trim', true | undefined>\n) => {\n const computedId = useId(() => props.id, 'input')\n const debounceNumber = useToNumber(() => props.debounce ?? 0, {nanToZero: true})\n const debounceMaxWaitNumber = useToNumber(() => props.debounceMaxWait ?? Number.NaN)\n\n // This automatically adds the appropriate \"for\" attribute to a BFormGroup label\n const formGroupData = inject(formGroupKey, null)?.()\n formGroupData?.track(computedId)\n const computedState = computed(() =>\n props.state !== undefined ? props.state : (formGroupData?.state.value ?? null)\n )\n const isDisabled = computed(() => props.disabled || (formGroupData?.disabled.value ?? false))\n const computedAriaInvalid = useAriaInvalid(() => props.ariaInvalid, computedState)\n const stateClass = useStateClass(computedState)\n\n const internalUpdateModelValue = useDebounceFn(\n (value: Numberish) => {\n modelValue.value = value\n },\n () => (modelModifiers.lazy === true ? 0 : debounceNumber.value),\n {maxWait: () => (modelModifiers.lazy === true ? Number.NaN : debounceMaxWaitNumber.value)}\n )\n\n const updateModelValue = (value: Numberish, force = false, immediate = false) => {\n if (modelModifiers.lazy === true && force === false) return\n if (immediate) {\n modelValue.value = value\n } else {\n internalUpdateModelValue(value)\n }\n }\n\n const {focused} = useFocus(input, {\n initialValue: props.autofocus,\n })\n\n const _formatValue = (value: string, evt: Readonly<Event>, force = false) => {\n if (props.formatter !== undefined && (!props.lazyFormatter || force)) {\n return props.formatter(value, evt)\n }\n return value\n }\n onMounted(() => {\n if (input.value) {\n input.value.value = modelValue.value?.toString() ?? ''\n }\n })\n\n onActivated(() => {\n nextTick(() => {\n if (props.autofocus) {\n focused.value = true\n }\n })\n })\n\n const syncDisplayedValue = (nextValue: string) => {\n if (input.value && input.value.value !== nextValue) {\n input.value.value = nextValue\n }\n }\n\n const onInput = (evt: Readonly<Event>) => {\n const {value} = evt.target as HTMLInputElement\n const formattedValue = _formatValue(value, evt)\n if (evt.defaultPrevented) {\n evt.preventDefault()\n return\n }\n\n const nextModel = formattedValue\n\n updateModelValue(nextModel)\n // If the formatter changed the value, directly update the input's visual value\n // to keep the displayed text in sync with the model. Without this, if the\n // formatted value equals the previous model value, Vue's reactivity won't\n // re-render the input and the raw (unformatted) text remains visible.\n if (formattedValue !== value) {\n syncDisplayedValue(formattedValue)\n }\n }\n\n const onChange = (evt: Readonly<Event>) => {\n const {value} = evt.target as HTMLInputElement\n const formattedValue = _formatValue(value, evt)\n if (evt.defaultPrevented) {\n evt.preventDefault()\n return\n }\n\n const nextModel = formattedValue\n if (modelValue.value !== nextModel) {\n updateModelValue(formattedValue, true)\n }\n }\n\n const onBlur = (evt: Readonly<FocusEvent>) => {\n if (\n !modelModifiers.lazy &&\n !props.lazyFormatter &&\n !modelModifiers.trim &&\n debounceNumber.value <= 0\n )\n return\n\n const {value} = evt.target as HTMLInputElement\n const formattedValue = _formatValue(value, evt, true)\n\n const nextModel = modelModifiers.trim ? formattedValue.trim() : formattedValue\n\n // Cancel before modelValue.value comparison and update\n internalUpdateModelValue.cancel()\n if (modelValue.value !== nextModel) {\n updateModelValue(nextModel, true, true)\n }\n\n // If the formatter or trim changed the displayed text, directly sync the DOM.\n // This handles the case where lazyFormatter defers formatting to blur and the\n // formatted value equals the current model (so Vue's reactivity won't re-render).\n if (nextModel !== value) {\n syncDisplayedValue(nextModel)\n }\n }\n\n const focus = () => {\n if (!isDisabled.value) {\n focused.value = true\n }\n }\n\n const blur = () => {\n if (!isDisabled.value) {\n focused.value = false\n }\n }\n\n return {\n input,\n computedId,\n computedAriaInvalid,\n onInput,\n onChange,\n onBlur,\n focus,\n blur,\n stateClass,\n isDisabled,\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
require("./chunk-CoQrYLCe.js");
|
|
2
|
-
const require_keys = require("./keys-
|
|
2
|
+
const require_keys = require("./keys-BMye8nSf.js");
|
|
3
3
|
const require_dist = require("./dist-DiXKLh_W.js");
|
|
4
|
-
const require_useId = require("./useId-
|
|
4
|
+
const require_useId = require("./useId-BkAY2oh6.js");
|
|
5
5
|
const require_useAriaInvalid = require("./useAriaInvalid-CHHPHNLU.js");
|
|
6
6
|
const require_debounce = require("./debounce-D6kifS6w.js");
|
|
7
7
|
const require_useStateClass = require("./useStateClass-CXK3nCg9.js");
|
|
@@ -22,7 +22,8 @@ var useFormInput = (props, input, modelValue, modelModifiers) => {
|
|
|
22
22
|
const computedId = require_useId.useId(() => props.id, "input");
|
|
23
23
|
const debounceNumber = require_dist.useToNumber(() => props.debounce ?? 0, { nanToZero: true });
|
|
24
24
|
const debounceMaxWaitNumber = require_dist.useToNumber(() => props.debounceMaxWait ?? NaN);
|
|
25
|
-
const formGroupData = (0, vue.inject)(require_keys.formGroupKey, null)?.(
|
|
25
|
+
const formGroupData = (0, vue.inject)(require_keys.formGroupKey, null)?.();
|
|
26
|
+
formGroupData?.track(computedId);
|
|
26
27
|
const computedState = (0, vue.computed)(() => props.state !== void 0 ? props.state : formGroupData?.state.value ?? null);
|
|
27
28
|
const isDisabled = (0, vue.computed)(() => props.disabled || (formGroupData?.disabled.value ?? false));
|
|
28
29
|
const computedAriaInvalid = require_useAriaInvalid.useAriaInvalid(() => props.ariaInvalid, computedState);
|
|
@@ -113,4 +114,4 @@ Object.defineProperty(exports, "useFormInput", {
|
|
|
113
114
|
}
|
|
114
115
|
});
|
|
115
116
|
|
|
116
|
-
//# sourceMappingURL=useFormInput-
|
|
117
|
+
//# sourceMappingURL=useFormInput-ip9hN2AU.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useFormInput-ip9hN2AU.js","names":[],"sources":["../src/utils/normalizeInput.ts","../src/composables/useFormInput.ts"],"sourcesContent":["import type {Numberish} from '../types/CommonTypes'\n\nexport const normalizeInput = (\n v: Numberish | null,\n modelModifiers: Record<'number' | 'lazy' | 'trim', true | undefined>\n) => {\n if (v === null) return\n let update = v\n if (modelModifiers.number && typeof update === 'string' && update !== '') {\n const parsed = Number.parseFloat(update)\n update = Number.isNaN(parsed) ? update : parsed\n }\n return update\n}\n","import type {Numberish} from '../types/CommonTypes'\nimport {computed, inject, nextTick, onActivated, onMounted, type Ref, type ShallowRef} from 'vue'\nimport {useAriaInvalid} from './useAriaInvalid'\nimport {useId} from './useId'\nimport {useFocus, useToNumber} from '@vueuse/core'\nimport type {CommonInputProps} from '../types/FormCommonInputProps'\nimport {formGroupKey} from '../utils/keys'\nimport {useDebounceFn} from '../utils/debounce'\nimport {useStateClass} from './useStateClass'\n\nexport const useFormInput = (\n props: Readonly<CommonInputProps>,\n input:\n | Readonly<ShallowRef<HTMLInputElement | null>>\n | Readonly<ShallowRef<HTMLTextAreaElement | null>>,\n modelValue: Ref<Numberish | null>,\n modelModifiers: Record<'number' | 'lazy' | 'trim', true | undefined>\n) => {\n const computedId = useId(() => props.id, 'input')\n const debounceNumber = useToNumber(() => props.debounce ?? 0, {nanToZero: true})\n const debounceMaxWaitNumber = useToNumber(() => props.debounceMaxWait ?? Number.NaN)\n\n // This automatically adds the appropriate \"for\" attribute to a BFormGroup label\n const formGroupData = inject(formGroupKey, null)?.()\n formGroupData?.track(computedId)\n const computedState = computed(() =>\n props.state !== undefined ? props.state : (formGroupData?.state.value ?? null)\n )\n const isDisabled = computed(() => props.disabled || (formGroupData?.disabled.value ?? false))\n const computedAriaInvalid = useAriaInvalid(() => props.ariaInvalid, computedState)\n const stateClass = useStateClass(computedState)\n\n const internalUpdateModelValue = useDebounceFn(\n (value: Numberish) => {\n modelValue.value = value\n },\n () => (modelModifiers.lazy === true ? 0 : debounceNumber.value),\n {maxWait: () => (modelModifiers.lazy === true ? Number.NaN : debounceMaxWaitNumber.value)}\n )\n\n const updateModelValue = (value: Numberish, force = false, immediate = false) => {\n if (modelModifiers.lazy === true && force === false) return\n if (immediate) {\n modelValue.value = value\n } else {\n internalUpdateModelValue(value)\n }\n }\n\n const {focused} = useFocus(input, {\n initialValue: props.autofocus,\n })\n\n const _formatValue = (value: string, evt: Readonly<Event>, force = false) => {\n if (props.formatter !== undefined && (!props.lazyFormatter || force)) {\n return props.formatter(value, evt)\n }\n return value\n }\n onMounted(() => {\n if (input.value) {\n input.value.value = modelValue.value?.toString() ?? ''\n }\n })\n\n onActivated(() => {\n nextTick(() => {\n if (props.autofocus) {\n focused.value = true\n }\n })\n })\n\n const syncDisplayedValue = (nextValue: string) => {\n if (input.value && input.value.value !== nextValue) {\n input.value.value = nextValue\n }\n }\n\n const onInput = (evt: Readonly<Event>) => {\n const {value} = evt.target as HTMLInputElement\n const formattedValue = _formatValue(value, evt)\n if (evt.defaultPrevented) {\n evt.preventDefault()\n return\n }\n\n const nextModel = formattedValue\n\n updateModelValue(nextModel)\n // If the formatter changed the value, directly update the input's visual value\n // to keep the displayed text in sync with the model. Without this, if the\n // formatted value equals the previous model value, Vue's reactivity won't\n // re-render the input and the raw (unformatted) text remains visible.\n if (formattedValue !== value) {\n syncDisplayedValue(formattedValue)\n }\n }\n\n const onChange = (evt: Readonly<Event>) => {\n const {value} = evt.target as HTMLInputElement\n const formattedValue = _formatValue(value, evt)\n if (evt.defaultPrevented) {\n evt.preventDefault()\n return\n }\n\n const nextModel = formattedValue\n if (modelValue.value !== nextModel) {\n updateModelValue(formattedValue, true)\n }\n }\n\n const onBlur = (evt: Readonly<FocusEvent>) => {\n if (\n !modelModifiers.lazy &&\n !props.lazyFormatter &&\n !modelModifiers.trim &&\n debounceNumber.value <= 0\n )\n return\n\n const {value} = evt.target as HTMLInputElement\n const formattedValue = _formatValue(value, evt, true)\n\n const nextModel = modelModifiers.trim ? formattedValue.trim() : formattedValue\n\n // Cancel before modelValue.value comparison and update\n internalUpdateModelValue.cancel()\n if (modelValue.value !== nextModel) {\n updateModelValue(nextModel, true, true)\n }\n\n // If the formatter or trim changed the displayed text, directly sync the DOM.\n // This handles the case where lazyFormatter defers formatting to blur and the\n // formatted value equals the current model (so Vue's reactivity won't re-render).\n if (nextModel !== value) {\n syncDisplayedValue(nextModel)\n }\n }\n\n const focus = () => {\n if (!isDisabled.value) {\n focused.value = true\n }\n }\n\n const blur = () => {\n if (!isDisabled.value) {\n focused.value = false\n }\n }\n\n return {\n input,\n computedId,\n computedAriaInvalid,\n onInput,\n onChange,\n onBlur,\n focus,\n blur,\n stateClass,\n isDisabled,\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
require("./chunk-CoQrYLCe.js");
|
|
2
|
-
const require_keys = require("./keys-
|
|
2
|
+
const require_keys = require("./keys-BMye8nSf.js");
|
|
3
3
|
let vue = require("vue");
|
|
4
4
|
//#region src/composables/useId.ts
|
|
5
5
|
var useId = (id, suffix) => {
|
|
@@ -14,4 +14,4 @@ Object.defineProperty(exports, "useId", {
|
|
|
14
14
|
}
|
|
15
15
|
});
|
|
16
16
|
|
|
17
|
-
//# sourceMappingURL=useId-
|
|
17
|
+
//# sourceMappingURL=useId-BkAY2oh6.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useId-
|
|
1
|
+
{"version":3,"file":"useId-BkAY2oh6.js","names":[],"sources":["../src/composables/useId.ts"],"sourcesContent":["import {withBvnPrefix} from '../utils/keys'\nimport {computed, type ComputedRef, type MaybeRefOrGetter, toValue, useId as vueUseId} from 'vue'\n\nexport const useId = (\n id?: MaybeRefOrGetter<string | undefined>,\n suffix?: string\n): ComputedRef<string> => {\n const genId = vueUseId()\n return computed(() => toValue(id) || withBvnPrefix(genId || '', suffix))\n}\n"],"mappings":";;;;AAGA,IAAa,SACX,IACA,WACwB;CACxB,MAAM,SAAA,GAAA,IAAA,QAAkB;AACxB,SAAA,GAAA,IAAA,iBAAA,GAAA,IAAA,SAA8B,GAAG,IAAI,aAAA,cAAc,SAAS,IAAI,OAAO,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { w as withBvnPrefix } from "./keys-
|
|
1
|
+
import { w as withBvnPrefix } from "./keys-DU7sQgl3.mjs";
|
|
2
2
|
import { computed, toValue, useId } from "vue";
|
|
3
3
|
//#region src/composables/useId.ts
|
|
4
4
|
var useId$1 = (id, suffix) => {
|
|
@@ -8,4 +8,4 @@ var useId$1 = (id, suffix) => {
|
|
|
8
8
|
//#endregion
|
|
9
9
|
export { useId$1 as t };
|
|
10
10
|
|
|
11
|
-
//# sourceMappingURL=useId-
|
|
11
|
+
//# sourceMappingURL=useId-D1sqXtwx.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useId-
|
|
1
|
+
{"version":3,"file":"useId-D1sqXtwx.mjs","names":[],"sources":["../src/composables/useId.ts"],"sourcesContent":["import {withBvnPrefix} from '../utils/keys'\nimport {computed, type ComputedRef, type MaybeRefOrGetter, toValue, useId as vueUseId} from 'vue'\n\nexport const useId = (\n id?: MaybeRefOrGetter<string | undefined>,\n suffix?: string\n): ComputedRef<string> => {\n const genId = vueUseId()\n return computed(() => toValue(id) || withBvnPrefix(genId || '', suffix))\n}\n"],"mappings":";;;AAGA,IAAa,WACX,IACA,WACwB;CACxB,MAAM,QAAQ,OAAU;AACxB,QAAO,eAAe,QAAQ,GAAG,IAAI,cAAc,SAAS,IAAI,OAAO,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
require("./chunk-CoQrYLCe.js");
|
|
2
|
-
const require_keys = require("./keys-
|
|
2
|
+
const require_keys = require("./keys-BMye8nSf.js");
|
|
3
3
|
const require_dom = require("./dom-Bs6DzM72.js");
|
|
4
4
|
let vue = require("vue");
|
|
5
5
|
//#region src/composables/useRtl.ts
|
|
@@ -23,4 +23,4 @@ Object.defineProperty(exports, "useRtl", {
|
|
|
23
23
|
}
|
|
24
24
|
});
|
|
25
25
|
|
|
26
|
-
//# sourceMappingURL=useRtl-
|
|
26
|
+
//# sourceMappingURL=useRtl-BSgvbs5F.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useRtl-
|
|
1
|
+
{"version":3,"file":"useRtl-BSgvbs5F.js","names":[],"sources":["../src/composables/useRtl.ts"],"sourcesContent":["import {inject, onMounted, watch} from 'vue'\nimport {rtlRegistryKey} from '../utils/keys'\nimport {getSafeDocument} from '../utils/dom'\n\nexport const useRtl = () => {\n const rtlPlugin = inject(rtlRegistryKey, null)\n\n onMounted(() => {\n // I can't think of a reason why one might want to destroy these if unmounted...\n watch(\n () => rtlPlugin?.locale.value,\n (newValue) => {\n getSafeDocument()?.documentElement.setAttribute('lang', newValue ?? '')\n },\n {immediate: true}\n )\n\n watch(\n () => rtlPlugin?.isRtl.value,\n (newValue) => {\n getSafeDocument()?.documentElement.setAttribute('dir', (newValue ?? false) ? 'rtl' : 'ltr')\n },\n {immediate: true}\n )\n })\n\n return {...rtlPlugin}\n}\n"],"mappings":";;;;;AAIA,IAAa,eAAe;CAC1B,MAAM,aAAA,GAAA,IAAA,QAAmB,aAAA,gBAAgB,KAAK;AAE9C,EAAA,GAAA,IAAA,iBAAgB;AAEd,GAAA,GAAA,IAAA,aACQ,WAAW,OAAO,QACvB,aAAa;AACZ,eAAA,iBAAiB,EAAE,gBAAgB,aAAa,QAAQ,YAAY,GAAG;KAEzE,EAAC,WAAW,MAAK,CAClB;AAED,GAAA,GAAA,IAAA,aACQ,WAAW,MAAM,QACtB,aAAa;AACZ,eAAA,iBAAiB,EAAE,gBAAgB,aAAa,OAAQ,YAAY,QAAS,QAAQ,MAAM;KAE7F,EAAC,WAAW,MAAK,CAClB;GACD;AAEF,QAAO,EAAC,GAAG,WAAU"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { b as rtlRegistryKey } from "./keys-
|
|
1
|
+
import { b as rtlRegistryKey } from "./keys-DU7sQgl3.mjs";
|
|
2
2
|
import { i as getSafeDocument } from "./dom-AhkaSoh8.mjs";
|
|
3
3
|
import { inject, onMounted, watch } from "vue";
|
|
4
4
|
//#region src/composables/useRtl.ts
|
|
@@ -17,4 +17,4 @@ var useRtl = () => {
|
|
|
17
17
|
//#endregion
|
|
18
18
|
export { useRtl as t };
|
|
19
19
|
|
|
20
|
-
//# sourceMappingURL=useRtl-
|
|
20
|
+
//# sourceMappingURL=useRtl-CGoXBxNo.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useRtl-
|
|
1
|
+
{"version":3,"file":"useRtl-CGoXBxNo.mjs","names":[],"sources":["../src/composables/useRtl.ts"],"sourcesContent":["import {inject, onMounted, watch} from 'vue'\nimport {rtlRegistryKey} from '../utils/keys'\nimport {getSafeDocument} from '../utils/dom'\n\nexport const useRtl = () => {\n const rtlPlugin = inject(rtlRegistryKey, null)\n\n onMounted(() => {\n // I can't think of a reason why one might want to destroy these if unmounted...\n watch(\n () => rtlPlugin?.locale.value,\n (newValue) => {\n getSafeDocument()?.documentElement.setAttribute('lang', newValue ?? '')\n },\n {immediate: true}\n )\n\n watch(\n () => rtlPlugin?.isRtl.value,\n (newValue) => {\n getSafeDocument()?.documentElement.setAttribute('dir', (newValue ?? false) ? 'rtl' : 'ltr')\n },\n {immediate: true}\n )\n })\n\n return {...rtlPlugin}\n}\n"],"mappings":";;;;AAIA,IAAa,eAAe;CAC1B,MAAM,YAAY,OAAO,gBAAgB,KAAK;AAE9C,iBAAgB;AAEd,cACQ,WAAW,OAAO,QACvB,aAAa;AACZ,oBAAiB,EAAE,gBAAgB,aAAa,QAAQ,YAAY,GAAG;KAEzE,EAAC,WAAW,MAAK,CAClB;AAED,cACQ,WAAW,MAAM,QACtB,aAAa;AACZ,oBAAiB,EAAE,gBAAgB,aAAa,OAAQ,YAAY,QAAS,QAAQ,MAAM;KAE7F,EAAC,WAAW,MAAK,CAClB;GACD;AAEF,QAAO,EAAC,GAAG,WAAU"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { x as showHideRegistryKey } from "./keys-
|
|
1
|
+
import { x as showHideRegistryKey } from "./keys-DU7sQgl3.mjs";
|
|
2
2
|
import { L as useThrottleFn, f as useEventListener } from "./dist-Dk9C_HFS.mjs";
|
|
3
3
|
import { r as BvTriggerableEvent } from "./classes-B0E5Y78Y.mjs";
|
|
4
4
|
import { t as noop } from "./functions-BcMenQqL.mjs";
|
|
@@ -427,4 +427,4 @@ var useShowHide = (modelValue, props, emit, element, computedId, options = {
|
|
|
427
427
|
//#endregion
|
|
428
428
|
export { useShowHide as t };
|
|
429
429
|
|
|
430
|
-
//# sourceMappingURL=useShowHide-
|
|
430
|
+
//# sourceMappingURL=useShowHide-CBFt1_EW.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useShowHide-DKdljnpv.mjs","names":[],"sources":["../src/composables/useShowHide.ts"],"sourcesContent":["import {\n type ComponentInternalInstance,\n computed,\n type EmitFn,\n getCurrentInstance,\n inject,\n nextTick,\n onBeforeUnmount,\n onMounted,\n onUnmounted,\n readonly,\n ref,\n type Ref,\n type TransitionProps,\n watch,\n} from 'vue'\nimport {showHideRegistryKey} from '../utils/keys'\nimport {BvTriggerableEvent} from '../utils'\nimport {useEventListener, useThrottleFn} from '@vueuse/core'\nimport {noop} from '../utils/functions'\n\nexport const fadeBaseTransitionProps = {\n name: 'fade',\n enterActiveClass: '',\n enterFromClass: 'showing',\n enterToClass: '',\n leaveActiveClass: '',\n leaveFromClass: '',\n leaveToClass: 'showing',\n css: true,\n} as const satisfies TransitionProps\n\nexport const useShowHide = (\n modelValue: Ref<boolean | number>,\n props: {\n visible?: boolean\n show?: boolean\n noAnimation?: boolean\n noFade?: boolean\n noCloseOnBackdrop?: boolean\n noCloseOnEsc?: boolean\n transitionProps?: TransitionProps\n lazy?: boolean\n initialAnimation?: boolean\n delay?:\n | number\n | {\n show: number\n hide: number\n }\n } & Record<string, unknown>,\n emit: EmitFn,\n element: Ref<HTMLElement | null>,\n computedId: Ref<string>,\n options: {\n transitionProps?: TransitionProps\n showFn?: () => void\n hideFn?: () => void\n } = {\n transitionProps: {},\n showFn: () => {},\n hideFn: () => {},\n }\n) => {\n let noAction = false\n const initialShow = (!!modelValue.value && !props.initialAnimation) || props.visible || false\n const showRef = ref<boolean>(initialShow)\n const renderRef = ref<boolean>(initialShow)\n const renderBackdropRef = ref<boolean>(initialShow)\n\n let isCountdown = typeof modelValue.value !== 'boolean'\n\n watch(modelValue, () => {\n isCountdown = typeof modelValue.value !== 'boolean'\n if (noAction) {\n noAction = false\n return\n }\n if (modelValue.value) {\n show()\n } else {\n hide('modelValue', true)\n }\n })\n\n const localNoAnimation = ref(initialShow)\n const localTemporaryHide = ref(false)\n const computedNoAnimation = computed(\n () => props.noAnimation || props.noFade || localNoAnimation.value || false\n )\n let isMounted = false\n onMounted(() => {\n isMounted = true\n if (!props.show && initialShow) {\n // show without delay or animation\n const event = buildTriggerableEvent('show', {cancelable: true})\n emit('show', event)\n\n if (event.defaultPrevented) {\n emit('show-prevented', buildTriggerableEvent('show-prevented'))\n return\n }\n localNoAnimation.value = true\n if (!modelValue.value) {\n noAction = true\n modelValue.value = true\n }\n renderRef.value = true\n renderBackdropRef.value = true\n isVisible.value = true\n backdropVisible.value = true\n backdropReady.value = true\n showRef.value = true\n options.showFn?.()\n } else if (props.show || (!!modelValue.value && props.initialAnimation)) {\n show()\n }\n })\n\n watch(\n () => props.visible,\n (newval) => {\n localNoAnimation.value = true\n\n nextTick(() => {\n if (newval) isVisible.value = true\n if (newval) {\n show()\n } else {\n hide('visible-prop', true)\n }\n })\n }\n )\n watch(\n () => props.show,\n (newval) => {\n if (newval) {\n show()\n } else {\n hide('show-prop', true)\n }\n }\n )\n // todo: remove\n useEventListener(\n element,\n 'bv-toggle',\n () => {\n modelValue.value = !modelValue.value\n },\n {passive: true}\n )\n\n const buildTriggerableEvent = (\n type: string,\n opts: Readonly<Partial<BvTriggerableEvent>> = {}\n ): BvTriggerableEvent =>\n new BvTriggerableEvent(type, {\n cancelable: false,\n target: element?.value || null,\n relatedTarget: null,\n trigger: null,\n ...opts,\n componentId: computedId?.value,\n })\n\n let showTimeout: ReturnType<typeof setTimeout> | undefined\n let hideTimeout: ReturnType<typeof setTimeout> | undefined\n let _Resolve: ((value: boolean | string) => void) | undefined\n let _Promise: Promise<boolean | string> | undefined\n let _resolveOnHide: boolean | undefined\n const show = (resolveOnHide: boolean = false): Promise<boolean | string> => {\n if (showRef.value && !hideTimeout && !_Promise) return Promise.resolve(true)\n _resolveOnHide = resolveOnHide\n if (showRef.value && !hideTimeout && _Promise) return _Promise\n\n _Promise = new Promise<boolean | string>((resolve) => {\n _Resolve = resolve\n })\n\n const event = buildTriggerableEvent('show', {cancelable: true})\n emit('show', event)\n\n if (event.defaultPrevented) {\n emit('show-prevented', buildTriggerableEvent('show-prevented'))\n if (isVisible.value) {\n isVisible.value = false\n }\n if (modelValue.value && !isCountdown) {\n noAction = true\n nextTick(() => {\n modelValue.value = false\n })\n }\n _Resolve?.('show-prevented')\n return _Promise\n }\n if (hideTimeout) {\n clearTimeout(hideTimeout)\n hideTimeout = undefined\n }\n renderRef.value = true\n renderBackdropRef.value = true\n requestAnimationFrame(() => {\n if (localNoAnimation.value || props.delay === undefined) {\n if (!isMounted) return\n showTimeout = undefined\n showRef.value = true\n options.showFn?.()\n if (!modelValue.value) {\n noAction = true\n nextTick(() => {\n modelValue.value = true\n })\n }\n return\n }\n showTimeout = setTimeout(\n () => {\n if (!isMounted) return\n showTimeout = undefined\n showRef.value = true\n options.showFn?.()\n if (!modelValue.value) {\n noAction = true\n nextTick(() => {\n modelValue.value = true\n })\n }\n },\n typeof props.delay === 'number' ? props.delay : props.delay?.show || 0\n )\n })\n return _Promise\n }\n\n let leaveTrigger: string | undefined\n const hide = (trigger?: string, noTriggerEmit?: boolean): Promise<string> => {\n if (!showRef.value && !showTimeout && !renderRef.value) return Promise.resolve('')\n if (!_Promise)\n _Promise = new Promise<string>((resolve) => {\n ;(_Resolve as (value: string | PromiseLike<string>) => void) = resolve\n })\n if (typeof trigger !== 'string') trigger = undefined\n leaveTrigger = trigger\n const event = buildTriggerableEvent('hide', {cancelable: true, trigger})\n const event2 = buildTriggerableEvent(trigger || 'ignore', {cancelable: true, trigger})\n if (\n (trigger === 'backdrop' && props.noCloseOnBackdrop) ||\n (trigger === 'esc' && props.noCloseOnEsc)\n ) {\n emit('hide-prevented', buildTriggerableEvent('hide-prevented', {trigger}))\n _Resolve?.('hide-prevented')\n return _Promise as Promise<string>\n }\n if (showTimeout) {\n clearTimeout(showTimeout)\n showTimeout = undefined\n }\n if (trigger && !noTriggerEmit) {\n emit(trigger, event2)\n }\n emit('hide', event)\n\n if (event.defaultPrevented || event2.defaultPrevented) {\n emit('hide-prevented', buildTriggerableEvent('hide-prevented', {trigger}))\n if (!modelValue.value) {\n nextTick(() => {\n noAction = true\n modelValue.value = true\n })\n }\n _Resolve?.('hide-prevented')\n return _Promise as Promise<string>\n }\n trapActive.value = false\n if (showTimeout) {\n clearTimeout(showTimeout)\n showTimeout = undefined\n if (!localTemporaryHide.value) renderRef.value = false\n renderBackdropRef.value = false\n }\n hideTimeout = setTimeout(\n () => {\n if (!isMounted) return\n hideTimeout = undefined\n isLeaving.value = true\n showRef.value = false\n options.hideFn?.()\n if (modelValue.value) {\n noAction = true\n modelValue.value = isCountdown ? 0 : false\n }\n },\n localNoAnimation.value\n ? 0\n : typeof props.delay === 'number'\n ? props.delay\n : props.delay?.hide || 0\n )\n return _Promise as Promise<string>\n }\n const throttleHide = useThrottleFn((a) => hide(a), 500)\n const throttleShow = useThrottleFn(() => show(), 500)\n\n const toggle = (resolveOnHide: boolean = false): Promise<boolean | string> => {\n const e = buildTriggerableEvent('toggle', {cancelable: true})\n emit('toggle', e)\n if (e.defaultPrevented) {\n emit('toggle-prevented', buildTriggerableEvent('toggle-prevented'))\n return Promise.resolve('toggle-prevented')\n }\n if (showRef.value) {\n return hide('toggle-function', true)\n }\n return show(resolveOnHide)\n }\n const triggerToggle = () => {\n const e = buildTriggerableEvent('toggle', {cancelable: true})\n emit('toggle', e)\n if (e.defaultPrevented) {\n emit('toggle-prevented', buildTriggerableEvent('toggle-prevented'))\n return\n }\n if (showRef.value) {\n hide('toggle-trigger', true)\n } else {\n show()\n }\n }\n const triggerRegistry: {trigger: string; el: Element}[] = []\n const registerTrigger = (trigger: string, el: Element) => {\n triggerRegistry.push({trigger, el})\n el.addEventListener(trigger, triggerToggle)\n checkVisibility(el)\n }\n const unregisterTrigger = (trigger: string, el: Element, clean = true) => {\n const idx = triggerRegistry.findIndex((t) => t?.trigger === trigger && t.el === el)\n if (idx > -1) {\n triggerRegistry.splice(idx, 1)\n el.removeEventListener(trigger, triggerToggle)\n if (clean) {\n el.removeAttribute('aria-expanded')\n el.classList.remove('collapsed')\n el.classList.remove('not-collapsed')\n }\n }\n }\n\n const appRegistry = inject(showHideRegistryKey, null)?.register({\n id: computedId.value,\n toggle,\n show,\n hide,\n value: readonly(showRef),\n registerTrigger,\n unregisterTrigger,\n component: getCurrentInstance() as ComponentInternalInstance,\n })\n const checkVisibility = (el: Element) => {\n el.setAttribute('aria-expanded', modelValue.value ? 'true' : 'false')\n el.classList.toggle('collapsed', !modelValue.value)\n el.classList.toggle('not-collapsed', !!modelValue.value)\n }\n\n watch(modelValue, () => {\n triggerRegistry.forEach((t) => {\n checkVisibility(t.el)\n })\n })\n\n watch(computedId, (newId, oldId) => {\n appRegistry?.updateId(newId, oldId)\n })\n\n onBeforeUnmount(() => {\n appRegistry?.unregister()\n triggerRegistry.forEach((t) => {\n t.el.removeEventListener(t.trigger, triggerToggle)\n })\n })\n onUnmounted(() => {\n isMounted = false\n clearTimeout(showTimeout)\n clearTimeout(hideTimeout)\n showTimeout = undefined\n hideTimeout = undefined\n })\n\n const lazyLoadCompleted = ref(false)\n const markLazyLoadCompleted = () => {\n if (props.lazy === true) lazyLoadCompleted.value = true\n }\n\n const isLeaving = ref(false)\n const isActive = ref(initialShow)\n const isVisible = ref(initialShow)\n\n const onBeforeEnter: TransitionProps['onBeforeEnter'] = [\n ...[\n options.transitionProps?.onBeforeEnter ?? noop,\n props.transitionProps?.onBeforeEnter ?? noop,\n ].flat(),\n () => {\n isActive.value = true\n },\n ]\n\n const onEnter: TransitionProps['onEnter'] = [\n () => {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n // sometimes one just isn't enough (offcanvas on the first load after refresh)\n isVisible.value = true\n })\n })\n },\n ...[options.transitionProps?.onEnter ?? noop, props.transitionProps?.onEnter ?? noop].flat(),\n ]\n const onAfterEnter: TransitionProps['onAfterEnter'] = [\n markLazyLoadCompleted,\n ...[\n options.transitionProps?.onAfterEnter ?? noop,\n props.transitionProps?.onAfterEnter ?? noop,\n ].flat(),\n () => {\n if (localNoAnimation.value) {\n requestAnimationFrame(() => {\n localNoAnimation.value = false\n })\n }\n if (localTemporaryHide.value) {\n localTemporaryHide.value = false\n }\n requestAnimationFrame(() => {\n trapActive.value = true\n nextTick(() => {\n emit('shown', buildTriggerableEvent('shown', {cancelable: false}))\n })\n })\n if (!_resolveOnHide) {\n _Resolve?.(true)\n _Promise = undefined\n _Resolve = undefined\n }\n },\n ]\n\n const onBeforeLeave: TransitionProps['onBeforeLeave'] = [\n () => {\n if (!isLeaving.value) isLeaving.value = true\n },\n ...[\n options.transitionProps?.onBeforeLeave ?? noop,\n props.transitionProps?.onBeforeLeave ?? noop,\n ].flat(),\n () => {\n trapActive.value = false\n },\n ]\n\n const onLeave: TransitionProps['onLeave'] = [\n () => {\n isVisible.value = false\n },\n ...[options.transitionProps?.onLeave ?? noop, props.transitionProps?.onLeave ?? noop].flat(),\n ]\n\n const onAfterLeave: TransitionProps['onAfterLeave'] = [\n () => {\n emit('hidden', buildTriggerableEvent('hidden', {trigger: leaveTrigger, cancelable: false}))\n },\n ...[\n options.transitionProps?.onAfterLeave ?? noop,\n props.transitionProps?.onAfterLeave ?? noop,\n ].flat(),\n () => {\n isLeaving.value = false\n isActive.value = false\n if (localNoAnimation.value) {\n requestAnimationFrame(() => {\n localNoAnimation.value = false\n })\n }\n requestAnimationFrame(() => {\n if (!localTemporaryHide.value) renderRef.value = false\n })\n _Resolve?.(leaveTrigger || '')\n _Promise = undefined\n _Resolve = undefined\n leaveTrigger = undefined\n },\n ]\n\n const contentShowing = computed(\n () =>\n localTemporaryHide.value === true ||\n isActive.value === true ||\n props.lazy === false ||\n (props.lazy === true && lazyLoadCompleted.value === true && props.unmountLazy === false)\n )\n const trapActive = ref(false)\n const backdropVisible = ref(false)\n const backdropReady = ref(false)\n\n const transitionFunctions = {\n ...options.transitionProps,\n onBeforeEnter,\n onEnter,\n onAfterEnter,\n onBeforeLeave,\n onLeave,\n onAfterLeave,\n } satisfies TransitionProps\n return {\n showRef: readonly(showRef),\n renderRef: readonly(renderRef),\n renderBackdropRef: readonly(renderBackdropRef),\n isVisible: readonly(isVisible),\n isActive: readonly(isActive),\n trapActive: readonly(trapActive),\n show,\n hide,\n toggle,\n throttleHide,\n throttleShow,\n buildTriggerableEvent,\n computedNoAnimation,\n localNoAnimation: readonly(localNoAnimation),\n setLocalNoAnimation: (value: boolean) => {\n localNoAnimation.value = value\n },\n localTemporaryHide: readonly(localTemporaryHide),\n setLocalTemporaryHide: (value: boolean) => {\n localTemporaryHide.value = value\n },\n isLeaving: readonly(isLeaving),\n transitionProps: {\n ...fadeBaseTransitionProps,\n ...props.transitionProps,\n ...transitionFunctions,\n } satisfies TransitionProps,\n\n lazyLoadCompleted: readonly(lazyLoadCompleted),\n markLazyLoadCompleted,\n contentShowing,\n backdropReady: readonly(backdropReady),\n backdropVisible: readonly(backdropVisible),\n backdropTransitionProps: {\n ...fadeBaseTransitionProps,\n onBeforeEnter: () => {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n backdropVisible.value = true\n })\n })\n backdropReady.value = false\n },\n onAfterEnter: () => {\n backdropReady.value = true\n },\n onBeforeLeave: () => {\n backdropVisible.value = false\n },\n onAfterLeave: () => {\n backdropReady.value = false\n requestAnimationFrame(() => {\n renderBackdropRef.value = false\n })\n },\n } satisfies TransitionProps,\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useShowHide-CBFt1_EW.mjs","names":[],"sources":["../src/composables/useShowHide.ts"],"sourcesContent":["import {\n type ComponentInternalInstance,\n computed,\n type EmitFn,\n getCurrentInstance,\n inject,\n nextTick,\n onBeforeUnmount,\n onMounted,\n onUnmounted,\n readonly,\n ref,\n type Ref,\n type TransitionProps,\n watch,\n} from 'vue'\nimport {showHideRegistryKey} from '../utils/keys'\nimport {BvTriggerableEvent} from '../utils'\nimport {useEventListener, useThrottleFn} from '@vueuse/core'\nimport {noop} from '../utils/functions'\n\nexport const fadeBaseTransitionProps = {\n name: 'fade',\n enterActiveClass: '',\n enterFromClass: 'showing',\n enterToClass: '',\n leaveActiveClass: '',\n leaveFromClass: '',\n leaveToClass: 'showing',\n css: true,\n} as const satisfies TransitionProps\n\nexport const useShowHide = (\n modelValue: Ref<boolean | number>,\n props: {\n visible?: boolean\n show?: boolean\n noAnimation?: boolean\n noFade?: boolean\n noCloseOnBackdrop?: boolean\n noCloseOnEsc?: boolean\n transitionProps?: TransitionProps\n lazy?: boolean\n initialAnimation?: boolean\n delay?:\n | number\n | {\n show: number\n hide: number\n }\n } & Record<string, unknown>,\n emit: EmitFn,\n element: Ref<HTMLElement | null>,\n computedId: Ref<string>,\n options: {\n transitionProps?: TransitionProps\n showFn?: () => void\n hideFn?: () => void\n } = {\n transitionProps: {},\n showFn: () => {},\n hideFn: () => {},\n }\n) => {\n let noAction = false\n const initialShow = (!!modelValue.value && !props.initialAnimation) || props.visible || false\n const showRef = ref<boolean>(initialShow)\n const renderRef = ref<boolean>(initialShow)\n const renderBackdropRef = ref<boolean>(initialShow)\n\n let isCountdown = typeof modelValue.value !== 'boolean'\n\n watch(modelValue, () => {\n isCountdown = typeof modelValue.value !== 'boolean'\n if (noAction) {\n noAction = false\n return\n }\n if (modelValue.value) {\n show()\n } else {\n hide('modelValue', true)\n }\n })\n\n const localNoAnimation = ref(initialShow)\n const localTemporaryHide = ref(false)\n const computedNoAnimation = computed(\n () => props.noAnimation || props.noFade || localNoAnimation.value || false\n )\n let isMounted = false\n onMounted(() => {\n isMounted = true\n if (!props.show && initialShow) {\n // show without delay or animation\n const event = buildTriggerableEvent('show', {cancelable: true})\n emit('show', event)\n\n if (event.defaultPrevented) {\n emit('show-prevented', buildTriggerableEvent('show-prevented'))\n return\n }\n localNoAnimation.value = true\n if (!modelValue.value) {\n noAction = true\n modelValue.value = true\n }\n renderRef.value = true\n renderBackdropRef.value = true\n isVisible.value = true\n backdropVisible.value = true\n backdropReady.value = true\n showRef.value = true\n options.showFn?.()\n } else if (props.show || (!!modelValue.value && props.initialAnimation)) {\n show()\n }\n })\n\n watch(\n () => props.visible,\n (newval) => {\n localNoAnimation.value = true\n\n nextTick(() => {\n if (newval) isVisible.value = true\n if (newval) {\n show()\n } else {\n hide('visible-prop', true)\n }\n })\n }\n )\n watch(\n () => props.show,\n (newval) => {\n if (newval) {\n show()\n } else {\n hide('show-prop', true)\n }\n }\n )\n // todo: remove\n useEventListener(\n element,\n 'bv-toggle',\n () => {\n modelValue.value = !modelValue.value\n },\n {passive: true}\n )\n\n const buildTriggerableEvent = (\n type: string,\n opts: Readonly<Partial<BvTriggerableEvent>> = {}\n ): BvTriggerableEvent =>\n new BvTriggerableEvent(type, {\n cancelable: false,\n target: element?.value || null,\n relatedTarget: null,\n trigger: null,\n ...opts,\n componentId: computedId?.value,\n })\n\n let showTimeout: ReturnType<typeof setTimeout> | undefined\n let hideTimeout: ReturnType<typeof setTimeout> | undefined\n let _Resolve: ((value: boolean | string) => void) | undefined\n let _Promise: Promise<boolean | string> | undefined\n let _resolveOnHide: boolean | undefined\n const show = (resolveOnHide: boolean = false): Promise<boolean | string> => {\n if (showRef.value && !hideTimeout && !_Promise) return Promise.resolve(true)\n _resolveOnHide = resolveOnHide\n if (showRef.value && !hideTimeout && _Promise) return _Promise\n\n _Promise = new Promise<boolean | string>((resolve) => {\n _Resolve = resolve\n })\n\n const event = buildTriggerableEvent('show', {cancelable: true})\n emit('show', event)\n\n if (event.defaultPrevented) {\n emit('show-prevented', buildTriggerableEvent('show-prevented'))\n if (isVisible.value) {\n isVisible.value = false\n }\n if (modelValue.value && !isCountdown) {\n noAction = true\n nextTick(() => {\n modelValue.value = false\n })\n }\n _Resolve?.('show-prevented')\n return _Promise\n }\n if (hideTimeout) {\n clearTimeout(hideTimeout)\n hideTimeout = undefined\n }\n renderRef.value = true\n renderBackdropRef.value = true\n requestAnimationFrame(() => {\n if (localNoAnimation.value || props.delay === undefined) {\n if (!isMounted) return\n showTimeout = undefined\n showRef.value = true\n options.showFn?.()\n if (!modelValue.value) {\n noAction = true\n nextTick(() => {\n modelValue.value = true\n })\n }\n return\n }\n showTimeout = setTimeout(\n () => {\n if (!isMounted) return\n showTimeout = undefined\n showRef.value = true\n options.showFn?.()\n if (!modelValue.value) {\n noAction = true\n nextTick(() => {\n modelValue.value = true\n })\n }\n },\n typeof props.delay === 'number' ? props.delay : props.delay?.show || 0\n )\n })\n return _Promise\n }\n\n let leaveTrigger: string | undefined\n const hide = (trigger?: string, noTriggerEmit?: boolean): Promise<string> => {\n if (!showRef.value && !showTimeout && !renderRef.value) return Promise.resolve('')\n if (!_Promise)\n _Promise = new Promise<string>((resolve) => {\n ;(_Resolve as (value: string | PromiseLike<string>) => void) = resolve\n })\n if (typeof trigger !== 'string') trigger = undefined\n leaveTrigger = trigger\n const event = buildTriggerableEvent('hide', {cancelable: true, trigger})\n const event2 = buildTriggerableEvent(trigger || 'ignore', {cancelable: true, trigger})\n if (\n (trigger === 'backdrop' && props.noCloseOnBackdrop) ||\n (trigger === 'esc' && props.noCloseOnEsc)\n ) {\n emit('hide-prevented', buildTriggerableEvent('hide-prevented', {trigger}))\n _Resolve?.('hide-prevented')\n return _Promise as Promise<string>\n }\n if (showTimeout) {\n clearTimeout(showTimeout)\n showTimeout = undefined\n }\n if (trigger && !noTriggerEmit) {\n emit(trigger, event2)\n }\n emit('hide', event)\n\n if (event.defaultPrevented || event2.defaultPrevented) {\n emit('hide-prevented', buildTriggerableEvent('hide-prevented', {trigger}))\n if (!modelValue.value) {\n nextTick(() => {\n noAction = true\n modelValue.value = true\n })\n }\n _Resolve?.('hide-prevented')\n return _Promise as Promise<string>\n }\n trapActive.value = false\n if (showTimeout) {\n clearTimeout(showTimeout)\n showTimeout = undefined\n if (!localTemporaryHide.value) renderRef.value = false\n renderBackdropRef.value = false\n }\n hideTimeout = setTimeout(\n () => {\n if (!isMounted) return\n hideTimeout = undefined\n isLeaving.value = true\n showRef.value = false\n options.hideFn?.()\n if (modelValue.value) {\n noAction = true\n modelValue.value = isCountdown ? 0 : false\n }\n },\n localNoAnimation.value\n ? 0\n : typeof props.delay === 'number'\n ? props.delay\n : props.delay?.hide || 0\n )\n return _Promise as Promise<string>\n }\n const throttleHide = useThrottleFn((a) => hide(a), 500)\n const throttleShow = useThrottleFn(() => show(), 500)\n\n const toggle = (resolveOnHide: boolean = false): Promise<boolean | string> => {\n const e = buildTriggerableEvent('toggle', {cancelable: true})\n emit('toggle', e)\n if (e.defaultPrevented) {\n emit('toggle-prevented', buildTriggerableEvent('toggle-prevented'))\n return Promise.resolve('toggle-prevented')\n }\n if (showRef.value) {\n return hide('toggle-function', true)\n }\n return show(resolveOnHide)\n }\n const triggerToggle = () => {\n const e = buildTriggerableEvent('toggle', {cancelable: true})\n emit('toggle', e)\n if (e.defaultPrevented) {\n emit('toggle-prevented', buildTriggerableEvent('toggle-prevented'))\n return\n }\n if (showRef.value) {\n hide('toggle-trigger', true)\n } else {\n show()\n }\n }\n const triggerRegistry: {trigger: string; el: Element}[] = []\n const registerTrigger = (trigger: string, el: Element) => {\n triggerRegistry.push({trigger, el})\n el.addEventListener(trigger, triggerToggle)\n checkVisibility(el)\n }\n const unregisterTrigger = (trigger: string, el: Element, clean = true) => {\n const idx = triggerRegistry.findIndex((t) => t?.trigger === trigger && t.el === el)\n if (idx > -1) {\n triggerRegistry.splice(idx, 1)\n el.removeEventListener(trigger, triggerToggle)\n if (clean) {\n el.removeAttribute('aria-expanded')\n el.classList.remove('collapsed')\n el.classList.remove('not-collapsed')\n }\n }\n }\n\n const appRegistry = inject(showHideRegistryKey, null)?.register({\n id: computedId.value,\n toggle,\n show,\n hide,\n value: readonly(showRef),\n registerTrigger,\n unregisterTrigger,\n component: getCurrentInstance() as ComponentInternalInstance,\n })\n const checkVisibility = (el: Element) => {\n el.setAttribute('aria-expanded', modelValue.value ? 'true' : 'false')\n el.classList.toggle('collapsed', !modelValue.value)\n el.classList.toggle('not-collapsed', !!modelValue.value)\n }\n\n watch(modelValue, () => {\n triggerRegistry.forEach((t) => {\n checkVisibility(t.el)\n })\n })\n\n watch(computedId, (newId, oldId) => {\n appRegistry?.updateId(newId, oldId)\n })\n\n onBeforeUnmount(() => {\n appRegistry?.unregister()\n triggerRegistry.forEach((t) => {\n t.el.removeEventListener(t.trigger, triggerToggle)\n })\n })\n onUnmounted(() => {\n isMounted = false\n clearTimeout(showTimeout)\n clearTimeout(hideTimeout)\n showTimeout = undefined\n hideTimeout = undefined\n })\n\n const lazyLoadCompleted = ref(false)\n const markLazyLoadCompleted = () => {\n if (props.lazy === true) lazyLoadCompleted.value = true\n }\n\n const isLeaving = ref(false)\n const isActive = ref(initialShow)\n const isVisible = ref(initialShow)\n\n const onBeforeEnter: TransitionProps['onBeforeEnter'] = [\n ...[\n options.transitionProps?.onBeforeEnter ?? noop,\n props.transitionProps?.onBeforeEnter ?? noop,\n ].flat(),\n () => {\n isActive.value = true\n },\n ]\n\n const onEnter: TransitionProps['onEnter'] = [\n () => {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n // sometimes one just isn't enough (offcanvas on the first load after refresh)\n isVisible.value = true\n })\n })\n },\n ...[options.transitionProps?.onEnter ?? noop, props.transitionProps?.onEnter ?? noop].flat(),\n ]\n const onAfterEnter: TransitionProps['onAfterEnter'] = [\n markLazyLoadCompleted,\n ...[\n options.transitionProps?.onAfterEnter ?? noop,\n props.transitionProps?.onAfterEnter ?? noop,\n ].flat(),\n () => {\n if (localNoAnimation.value) {\n requestAnimationFrame(() => {\n localNoAnimation.value = false\n })\n }\n if (localTemporaryHide.value) {\n localTemporaryHide.value = false\n }\n requestAnimationFrame(() => {\n trapActive.value = true\n nextTick(() => {\n emit('shown', buildTriggerableEvent('shown', {cancelable: false}))\n })\n })\n if (!_resolveOnHide) {\n _Resolve?.(true)\n _Promise = undefined\n _Resolve = undefined\n }\n },\n ]\n\n const onBeforeLeave: TransitionProps['onBeforeLeave'] = [\n () => {\n if (!isLeaving.value) isLeaving.value = true\n },\n ...[\n options.transitionProps?.onBeforeLeave ?? noop,\n props.transitionProps?.onBeforeLeave ?? noop,\n ].flat(),\n () => {\n trapActive.value = false\n },\n ]\n\n const onLeave: TransitionProps['onLeave'] = [\n () => {\n isVisible.value = false\n },\n ...[options.transitionProps?.onLeave ?? noop, props.transitionProps?.onLeave ?? noop].flat(),\n ]\n\n const onAfterLeave: TransitionProps['onAfterLeave'] = [\n () => {\n emit('hidden', buildTriggerableEvent('hidden', {trigger: leaveTrigger, cancelable: false}))\n },\n ...[\n options.transitionProps?.onAfterLeave ?? noop,\n props.transitionProps?.onAfterLeave ?? noop,\n ].flat(),\n () => {\n isLeaving.value = false\n isActive.value = false\n if (localNoAnimation.value) {\n requestAnimationFrame(() => {\n localNoAnimation.value = false\n })\n }\n requestAnimationFrame(() => {\n if (!localTemporaryHide.value) renderRef.value = false\n })\n _Resolve?.(leaveTrigger || '')\n _Promise = undefined\n _Resolve = undefined\n leaveTrigger = undefined\n },\n ]\n\n const contentShowing = computed(\n () =>\n localTemporaryHide.value === true ||\n isActive.value === true ||\n props.lazy === false ||\n (props.lazy === true && lazyLoadCompleted.value === true && props.unmountLazy === false)\n )\n const trapActive = ref(false)\n const backdropVisible = ref(false)\n const backdropReady = ref(false)\n\n const transitionFunctions = {\n ...options.transitionProps,\n onBeforeEnter,\n onEnter,\n onAfterEnter,\n onBeforeLeave,\n onLeave,\n onAfterLeave,\n } satisfies TransitionProps\n return {\n showRef: readonly(showRef),\n renderRef: readonly(renderRef),\n renderBackdropRef: readonly(renderBackdropRef),\n isVisible: readonly(isVisible),\n isActive: readonly(isActive),\n trapActive: readonly(trapActive),\n show,\n hide,\n toggle,\n throttleHide,\n throttleShow,\n buildTriggerableEvent,\n computedNoAnimation,\n localNoAnimation: readonly(localNoAnimation),\n setLocalNoAnimation: (value: boolean) => {\n localNoAnimation.value = value\n },\n localTemporaryHide: readonly(localTemporaryHide),\n setLocalTemporaryHide: (value: boolean) => {\n localTemporaryHide.value = value\n },\n isLeaving: readonly(isLeaving),\n transitionProps: {\n ...fadeBaseTransitionProps,\n ...props.transitionProps,\n ...transitionFunctions,\n } satisfies TransitionProps,\n\n lazyLoadCompleted: readonly(lazyLoadCompleted),\n markLazyLoadCompleted,\n contentShowing,\n backdropReady: readonly(backdropReady),\n backdropVisible: readonly(backdropVisible),\n backdropTransitionProps: {\n ...fadeBaseTransitionProps,\n onBeforeEnter: () => {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n backdropVisible.value = true\n })\n })\n backdropReady.value = false\n },\n onAfterEnter: () => {\n backdropReady.value = true\n },\n onBeforeLeave: () => {\n backdropVisible.value = false\n },\n onAfterLeave: () => {\n backdropReady.value = false\n requestAnimationFrame(() => {\n renderBackdropRef.value = false\n })\n },\n } satisfies TransitionProps,\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
require("./chunk-CoQrYLCe.js");
|
|
2
|
-
const require_keys = require("./keys-
|
|
2
|
+
const require_keys = require("./keys-BMye8nSf.js");
|
|
3
3
|
const require_dist = require("./dist-DiXKLh_W.js");
|
|
4
4
|
const require_classes = require("./classes-D5wrmmVs.js");
|
|
5
5
|
const require_functions = require("./functions-Bx1HDqMv.js");
|
|
@@ -433,4 +433,4 @@ Object.defineProperty(exports, "useShowHide", {
|
|
|
433
433
|
}
|
|
434
434
|
});
|
|
435
435
|
|
|
436
|
-
//# sourceMappingURL=useShowHide-
|
|
436
|
+
//# sourceMappingURL=useShowHide-CHm2uUep.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useShowHide-BhdrR1wG.js","names":[],"sources":["../src/composables/useShowHide.ts"],"sourcesContent":["import {\n type ComponentInternalInstance,\n computed,\n type EmitFn,\n getCurrentInstance,\n inject,\n nextTick,\n onBeforeUnmount,\n onMounted,\n onUnmounted,\n readonly,\n ref,\n type Ref,\n type TransitionProps,\n watch,\n} from 'vue'\nimport {showHideRegistryKey} from '../utils/keys'\nimport {BvTriggerableEvent} from '../utils'\nimport {useEventListener, useThrottleFn} from '@vueuse/core'\nimport {noop} from '../utils/functions'\n\nexport const fadeBaseTransitionProps = {\n name: 'fade',\n enterActiveClass: '',\n enterFromClass: 'showing',\n enterToClass: '',\n leaveActiveClass: '',\n leaveFromClass: '',\n leaveToClass: 'showing',\n css: true,\n} as const satisfies TransitionProps\n\nexport const useShowHide = (\n modelValue: Ref<boolean | number>,\n props: {\n visible?: boolean\n show?: boolean\n noAnimation?: boolean\n noFade?: boolean\n noCloseOnBackdrop?: boolean\n noCloseOnEsc?: boolean\n transitionProps?: TransitionProps\n lazy?: boolean\n initialAnimation?: boolean\n delay?:\n | number\n | {\n show: number\n hide: number\n }\n } & Record<string, unknown>,\n emit: EmitFn,\n element: Ref<HTMLElement | null>,\n computedId: Ref<string>,\n options: {\n transitionProps?: TransitionProps\n showFn?: () => void\n hideFn?: () => void\n } = {\n transitionProps: {},\n showFn: () => {},\n hideFn: () => {},\n }\n) => {\n let noAction = false\n const initialShow = (!!modelValue.value && !props.initialAnimation) || props.visible || false\n const showRef = ref<boolean>(initialShow)\n const renderRef = ref<boolean>(initialShow)\n const renderBackdropRef = ref<boolean>(initialShow)\n\n let isCountdown = typeof modelValue.value !== 'boolean'\n\n watch(modelValue, () => {\n isCountdown = typeof modelValue.value !== 'boolean'\n if (noAction) {\n noAction = false\n return\n }\n if (modelValue.value) {\n show()\n } else {\n hide('modelValue', true)\n }\n })\n\n const localNoAnimation = ref(initialShow)\n const localTemporaryHide = ref(false)\n const computedNoAnimation = computed(\n () => props.noAnimation || props.noFade || localNoAnimation.value || false\n )\n let isMounted = false\n onMounted(() => {\n isMounted = true\n if (!props.show && initialShow) {\n // show without delay or animation\n const event = buildTriggerableEvent('show', {cancelable: true})\n emit('show', event)\n\n if (event.defaultPrevented) {\n emit('show-prevented', buildTriggerableEvent('show-prevented'))\n return\n }\n localNoAnimation.value = true\n if (!modelValue.value) {\n noAction = true\n modelValue.value = true\n }\n renderRef.value = true\n renderBackdropRef.value = true\n isVisible.value = true\n backdropVisible.value = true\n backdropReady.value = true\n showRef.value = true\n options.showFn?.()\n } else if (props.show || (!!modelValue.value && props.initialAnimation)) {\n show()\n }\n })\n\n watch(\n () => props.visible,\n (newval) => {\n localNoAnimation.value = true\n\n nextTick(() => {\n if (newval) isVisible.value = true\n if (newval) {\n show()\n } else {\n hide('visible-prop', true)\n }\n })\n }\n )\n watch(\n () => props.show,\n (newval) => {\n if (newval) {\n show()\n } else {\n hide('show-prop', true)\n }\n }\n )\n // todo: remove\n useEventListener(\n element,\n 'bv-toggle',\n () => {\n modelValue.value = !modelValue.value\n },\n {passive: true}\n )\n\n const buildTriggerableEvent = (\n type: string,\n opts: Readonly<Partial<BvTriggerableEvent>> = {}\n ): BvTriggerableEvent =>\n new BvTriggerableEvent(type, {\n cancelable: false,\n target: element?.value || null,\n relatedTarget: null,\n trigger: null,\n ...opts,\n componentId: computedId?.value,\n })\n\n let showTimeout: ReturnType<typeof setTimeout> | undefined\n let hideTimeout: ReturnType<typeof setTimeout> | undefined\n let _Resolve: ((value: boolean | string) => void) | undefined\n let _Promise: Promise<boolean | string> | undefined\n let _resolveOnHide: boolean | undefined\n const show = (resolveOnHide: boolean = false): Promise<boolean | string> => {\n if (showRef.value && !hideTimeout && !_Promise) return Promise.resolve(true)\n _resolveOnHide = resolveOnHide\n if (showRef.value && !hideTimeout && _Promise) return _Promise\n\n _Promise = new Promise<boolean | string>((resolve) => {\n _Resolve = resolve\n })\n\n const event = buildTriggerableEvent('show', {cancelable: true})\n emit('show', event)\n\n if (event.defaultPrevented) {\n emit('show-prevented', buildTriggerableEvent('show-prevented'))\n if (isVisible.value) {\n isVisible.value = false\n }\n if (modelValue.value && !isCountdown) {\n noAction = true\n nextTick(() => {\n modelValue.value = false\n })\n }\n _Resolve?.('show-prevented')\n return _Promise\n }\n if (hideTimeout) {\n clearTimeout(hideTimeout)\n hideTimeout = undefined\n }\n renderRef.value = true\n renderBackdropRef.value = true\n requestAnimationFrame(() => {\n if (localNoAnimation.value || props.delay === undefined) {\n if (!isMounted) return\n showTimeout = undefined\n showRef.value = true\n options.showFn?.()\n if (!modelValue.value) {\n noAction = true\n nextTick(() => {\n modelValue.value = true\n })\n }\n return\n }\n showTimeout = setTimeout(\n () => {\n if (!isMounted) return\n showTimeout = undefined\n showRef.value = true\n options.showFn?.()\n if (!modelValue.value) {\n noAction = true\n nextTick(() => {\n modelValue.value = true\n })\n }\n },\n typeof props.delay === 'number' ? props.delay : props.delay?.show || 0\n )\n })\n return _Promise\n }\n\n let leaveTrigger: string | undefined\n const hide = (trigger?: string, noTriggerEmit?: boolean): Promise<string> => {\n if (!showRef.value && !showTimeout && !renderRef.value) return Promise.resolve('')\n if (!_Promise)\n _Promise = new Promise<string>((resolve) => {\n ;(_Resolve as (value: string | PromiseLike<string>) => void) = resolve\n })\n if (typeof trigger !== 'string') trigger = undefined\n leaveTrigger = trigger\n const event = buildTriggerableEvent('hide', {cancelable: true, trigger})\n const event2 = buildTriggerableEvent(trigger || 'ignore', {cancelable: true, trigger})\n if (\n (trigger === 'backdrop' && props.noCloseOnBackdrop) ||\n (trigger === 'esc' && props.noCloseOnEsc)\n ) {\n emit('hide-prevented', buildTriggerableEvent('hide-prevented', {trigger}))\n _Resolve?.('hide-prevented')\n return _Promise as Promise<string>\n }\n if (showTimeout) {\n clearTimeout(showTimeout)\n showTimeout = undefined\n }\n if (trigger && !noTriggerEmit) {\n emit(trigger, event2)\n }\n emit('hide', event)\n\n if (event.defaultPrevented || event2.defaultPrevented) {\n emit('hide-prevented', buildTriggerableEvent('hide-prevented', {trigger}))\n if (!modelValue.value) {\n nextTick(() => {\n noAction = true\n modelValue.value = true\n })\n }\n _Resolve?.('hide-prevented')\n return _Promise as Promise<string>\n }\n trapActive.value = false\n if (showTimeout) {\n clearTimeout(showTimeout)\n showTimeout = undefined\n if (!localTemporaryHide.value) renderRef.value = false\n renderBackdropRef.value = false\n }\n hideTimeout = setTimeout(\n () => {\n if (!isMounted) return\n hideTimeout = undefined\n isLeaving.value = true\n showRef.value = false\n options.hideFn?.()\n if (modelValue.value) {\n noAction = true\n modelValue.value = isCountdown ? 0 : false\n }\n },\n localNoAnimation.value\n ? 0\n : typeof props.delay === 'number'\n ? props.delay\n : props.delay?.hide || 0\n )\n return _Promise as Promise<string>\n }\n const throttleHide = useThrottleFn((a) => hide(a), 500)\n const throttleShow = useThrottleFn(() => show(), 500)\n\n const toggle = (resolveOnHide: boolean = false): Promise<boolean | string> => {\n const e = buildTriggerableEvent('toggle', {cancelable: true})\n emit('toggle', e)\n if (e.defaultPrevented) {\n emit('toggle-prevented', buildTriggerableEvent('toggle-prevented'))\n return Promise.resolve('toggle-prevented')\n }\n if (showRef.value) {\n return hide('toggle-function', true)\n }\n return show(resolveOnHide)\n }\n const triggerToggle = () => {\n const e = buildTriggerableEvent('toggle', {cancelable: true})\n emit('toggle', e)\n if (e.defaultPrevented) {\n emit('toggle-prevented', buildTriggerableEvent('toggle-prevented'))\n return\n }\n if (showRef.value) {\n hide('toggle-trigger', true)\n } else {\n show()\n }\n }\n const triggerRegistry: {trigger: string; el: Element}[] = []\n const registerTrigger = (trigger: string, el: Element) => {\n triggerRegistry.push({trigger, el})\n el.addEventListener(trigger, triggerToggle)\n checkVisibility(el)\n }\n const unregisterTrigger = (trigger: string, el: Element, clean = true) => {\n const idx = triggerRegistry.findIndex((t) => t?.trigger === trigger && t.el === el)\n if (idx > -1) {\n triggerRegistry.splice(idx, 1)\n el.removeEventListener(trigger, triggerToggle)\n if (clean) {\n el.removeAttribute('aria-expanded')\n el.classList.remove('collapsed')\n el.classList.remove('not-collapsed')\n }\n }\n }\n\n const appRegistry = inject(showHideRegistryKey, null)?.register({\n id: computedId.value,\n toggle,\n show,\n hide,\n value: readonly(showRef),\n registerTrigger,\n unregisterTrigger,\n component: getCurrentInstance() as ComponentInternalInstance,\n })\n const checkVisibility = (el: Element) => {\n el.setAttribute('aria-expanded', modelValue.value ? 'true' : 'false')\n el.classList.toggle('collapsed', !modelValue.value)\n el.classList.toggle('not-collapsed', !!modelValue.value)\n }\n\n watch(modelValue, () => {\n triggerRegistry.forEach((t) => {\n checkVisibility(t.el)\n })\n })\n\n watch(computedId, (newId, oldId) => {\n appRegistry?.updateId(newId, oldId)\n })\n\n onBeforeUnmount(() => {\n appRegistry?.unregister()\n triggerRegistry.forEach((t) => {\n t.el.removeEventListener(t.trigger, triggerToggle)\n })\n })\n onUnmounted(() => {\n isMounted = false\n clearTimeout(showTimeout)\n clearTimeout(hideTimeout)\n showTimeout = undefined\n hideTimeout = undefined\n })\n\n const lazyLoadCompleted = ref(false)\n const markLazyLoadCompleted = () => {\n if (props.lazy === true) lazyLoadCompleted.value = true\n }\n\n const isLeaving = ref(false)\n const isActive = ref(initialShow)\n const isVisible = ref(initialShow)\n\n const onBeforeEnter: TransitionProps['onBeforeEnter'] = [\n ...[\n options.transitionProps?.onBeforeEnter ?? noop,\n props.transitionProps?.onBeforeEnter ?? noop,\n ].flat(),\n () => {\n isActive.value = true\n },\n ]\n\n const onEnter: TransitionProps['onEnter'] = [\n () => {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n // sometimes one just isn't enough (offcanvas on the first load after refresh)\n isVisible.value = true\n })\n })\n },\n ...[options.transitionProps?.onEnter ?? noop, props.transitionProps?.onEnter ?? noop].flat(),\n ]\n const onAfterEnter: TransitionProps['onAfterEnter'] = [\n markLazyLoadCompleted,\n ...[\n options.transitionProps?.onAfterEnter ?? noop,\n props.transitionProps?.onAfterEnter ?? noop,\n ].flat(),\n () => {\n if (localNoAnimation.value) {\n requestAnimationFrame(() => {\n localNoAnimation.value = false\n })\n }\n if (localTemporaryHide.value) {\n localTemporaryHide.value = false\n }\n requestAnimationFrame(() => {\n trapActive.value = true\n nextTick(() => {\n emit('shown', buildTriggerableEvent('shown', {cancelable: false}))\n })\n })\n if (!_resolveOnHide) {\n _Resolve?.(true)\n _Promise = undefined\n _Resolve = undefined\n }\n },\n ]\n\n const onBeforeLeave: TransitionProps['onBeforeLeave'] = [\n () => {\n if (!isLeaving.value) isLeaving.value = true\n },\n ...[\n options.transitionProps?.onBeforeLeave ?? noop,\n props.transitionProps?.onBeforeLeave ?? noop,\n ].flat(),\n () => {\n trapActive.value = false\n },\n ]\n\n const onLeave: TransitionProps['onLeave'] = [\n () => {\n isVisible.value = false\n },\n ...[options.transitionProps?.onLeave ?? noop, props.transitionProps?.onLeave ?? noop].flat(),\n ]\n\n const onAfterLeave: TransitionProps['onAfterLeave'] = [\n () => {\n emit('hidden', buildTriggerableEvent('hidden', {trigger: leaveTrigger, cancelable: false}))\n },\n ...[\n options.transitionProps?.onAfterLeave ?? noop,\n props.transitionProps?.onAfterLeave ?? noop,\n ].flat(),\n () => {\n isLeaving.value = false\n isActive.value = false\n if (localNoAnimation.value) {\n requestAnimationFrame(() => {\n localNoAnimation.value = false\n })\n }\n requestAnimationFrame(() => {\n if (!localTemporaryHide.value) renderRef.value = false\n })\n _Resolve?.(leaveTrigger || '')\n _Promise = undefined\n _Resolve = undefined\n leaveTrigger = undefined\n },\n ]\n\n const contentShowing = computed(\n () =>\n localTemporaryHide.value === true ||\n isActive.value === true ||\n props.lazy === false ||\n (props.lazy === true && lazyLoadCompleted.value === true && props.unmountLazy === false)\n )\n const trapActive = ref(false)\n const backdropVisible = ref(false)\n const backdropReady = ref(false)\n\n const transitionFunctions = {\n ...options.transitionProps,\n onBeforeEnter,\n onEnter,\n onAfterEnter,\n onBeforeLeave,\n onLeave,\n onAfterLeave,\n } satisfies TransitionProps\n return {\n showRef: readonly(showRef),\n renderRef: readonly(renderRef),\n renderBackdropRef: readonly(renderBackdropRef),\n isVisible: readonly(isVisible),\n isActive: readonly(isActive),\n trapActive: readonly(trapActive),\n show,\n hide,\n toggle,\n throttleHide,\n throttleShow,\n buildTriggerableEvent,\n computedNoAnimation,\n localNoAnimation: readonly(localNoAnimation),\n setLocalNoAnimation: (value: boolean) => {\n localNoAnimation.value = value\n },\n localTemporaryHide: readonly(localTemporaryHide),\n setLocalTemporaryHide: (value: boolean) => {\n localTemporaryHide.value = value\n },\n isLeaving: readonly(isLeaving),\n transitionProps: {\n ...fadeBaseTransitionProps,\n ...props.transitionProps,\n ...transitionFunctions,\n } satisfies TransitionProps,\n\n lazyLoadCompleted: readonly(lazyLoadCompleted),\n markLazyLoadCompleted,\n contentShowing,\n backdropReady: readonly(backdropReady),\n backdropVisible: readonly(backdropVisible),\n backdropTransitionProps: {\n ...fadeBaseTransitionProps,\n onBeforeEnter: () => {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n backdropVisible.value = true\n })\n })\n backdropReady.value = false\n },\n onAfterEnter: () => {\n backdropReady.value = true\n },\n onBeforeLeave: () => {\n backdropVisible.value = false\n },\n onAfterLeave: () => {\n backdropReady.value = false\n requestAnimationFrame(() => {\n renderBackdropRef.value = false\n })\n },\n } satisfies TransitionProps,\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"useShowHide-CHm2uUep.js","names":[],"sources":["../src/composables/useShowHide.ts"],"sourcesContent":["import {\n type ComponentInternalInstance,\n computed,\n type EmitFn,\n getCurrentInstance,\n inject,\n nextTick,\n onBeforeUnmount,\n onMounted,\n onUnmounted,\n readonly,\n ref,\n type Ref,\n type TransitionProps,\n watch,\n} from 'vue'\nimport {showHideRegistryKey} from '../utils/keys'\nimport {BvTriggerableEvent} from '../utils'\nimport {useEventListener, useThrottleFn} from '@vueuse/core'\nimport {noop} from '../utils/functions'\n\nexport const fadeBaseTransitionProps = {\n name: 'fade',\n enterActiveClass: '',\n enterFromClass: 'showing',\n enterToClass: '',\n leaveActiveClass: '',\n leaveFromClass: '',\n leaveToClass: 'showing',\n css: true,\n} as const satisfies TransitionProps\n\nexport const useShowHide = (\n modelValue: Ref<boolean | number>,\n props: {\n visible?: boolean\n show?: boolean\n noAnimation?: boolean\n noFade?: boolean\n noCloseOnBackdrop?: boolean\n noCloseOnEsc?: boolean\n transitionProps?: TransitionProps\n lazy?: boolean\n initialAnimation?: boolean\n delay?:\n | number\n | {\n show: number\n hide: number\n }\n } & Record<string, unknown>,\n emit: EmitFn,\n element: Ref<HTMLElement | null>,\n computedId: Ref<string>,\n options: {\n transitionProps?: TransitionProps\n showFn?: () => void\n hideFn?: () => void\n } = {\n transitionProps: {},\n showFn: () => {},\n hideFn: () => {},\n }\n) => {\n let noAction = false\n const initialShow = (!!modelValue.value && !props.initialAnimation) || props.visible || false\n const showRef = ref<boolean>(initialShow)\n const renderRef = ref<boolean>(initialShow)\n const renderBackdropRef = ref<boolean>(initialShow)\n\n let isCountdown = typeof modelValue.value !== 'boolean'\n\n watch(modelValue, () => {\n isCountdown = typeof modelValue.value !== 'boolean'\n if (noAction) {\n noAction = false\n return\n }\n if (modelValue.value) {\n show()\n } else {\n hide('modelValue', true)\n }\n })\n\n const localNoAnimation = ref(initialShow)\n const localTemporaryHide = ref(false)\n const computedNoAnimation = computed(\n () => props.noAnimation || props.noFade || localNoAnimation.value || false\n )\n let isMounted = false\n onMounted(() => {\n isMounted = true\n if (!props.show && initialShow) {\n // show without delay or animation\n const event = buildTriggerableEvent('show', {cancelable: true})\n emit('show', event)\n\n if (event.defaultPrevented) {\n emit('show-prevented', buildTriggerableEvent('show-prevented'))\n return\n }\n localNoAnimation.value = true\n if (!modelValue.value) {\n noAction = true\n modelValue.value = true\n }\n renderRef.value = true\n renderBackdropRef.value = true\n isVisible.value = true\n backdropVisible.value = true\n backdropReady.value = true\n showRef.value = true\n options.showFn?.()\n } else if (props.show || (!!modelValue.value && props.initialAnimation)) {\n show()\n }\n })\n\n watch(\n () => props.visible,\n (newval) => {\n localNoAnimation.value = true\n\n nextTick(() => {\n if (newval) isVisible.value = true\n if (newval) {\n show()\n } else {\n hide('visible-prop', true)\n }\n })\n }\n )\n watch(\n () => props.show,\n (newval) => {\n if (newval) {\n show()\n } else {\n hide('show-prop', true)\n }\n }\n )\n // todo: remove\n useEventListener(\n element,\n 'bv-toggle',\n () => {\n modelValue.value = !modelValue.value\n },\n {passive: true}\n )\n\n const buildTriggerableEvent = (\n type: string,\n opts: Readonly<Partial<BvTriggerableEvent>> = {}\n ): BvTriggerableEvent =>\n new BvTriggerableEvent(type, {\n cancelable: false,\n target: element?.value || null,\n relatedTarget: null,\n trigger: null,\n ...opts,\n componentId: computedId?.value,\n })\n\n let showTimeout: ReturnType<typeof setTimeout> | undefined\n let hideTimeout: ReturnType<typeof setTimeout> | undefined\n let _Resolve: ((value: boolean | string) => void) | undefined\n let _Promise: Promise<boolean | string> | undefined\n let _resolveOnHide: boolean | undefined\n const show = (resolveOnHide: boolean = false): Promise<boolean | string> => {\n if (showRef.value && !hideTimeout && !_Promise) return Promise.resolve(true)\n _resolveOnHide = resolveOnHide\n if (showRef.value && !hideTimeout && _Promise) return _Promise\n\n _Promise = new Promise<boolean | string>((resolve) => {\n _Resolve = resolve\n })\n\n const event = buildTriggerableEvent('show', {cancelable: true})\n emit('show', event)\n\n if (event.defaultPrevented) {\n emit('show-prevented', buildTriggerableEvent('show-prevented'))\n if (isVisible.value) {\n isVisible.value = false\n }\n if (modelValue.value && !isCountdown) {\n noAction = true\n nextTick(() => {\n modelValue.value = false\n })\n }\n _Resolve?.('show-prevented')\n return _Promise\n }\n if (hideTimeout) {\n clearTimeout(hideTimeout)\n hideTimeout = undefined\n }\n renderRef.value = true\n renderBackdropRef.value = true\n requestAnimationFrame(() => {\n if (localNoAnimation.value || props.delay === undefined) {\n if (!isMounted) return\n showTimeout = undefined\n showRef.value = true\n options.showFn?.()\n if (!modelValue.value) {\n noAction = true\n nextTick(() => {\n modelValue.value = true\n })\n }\n return\n }\n showTimeout = setTimeout(\n () => {\n if (!isMounted) return\n showTimeout = undefined\n showRef.value = true\n options.showFn?.()\n if (!modelValue.value) {\n noAction = true\n nextTick(() => {\n modelValue.value = true\n })\n }\n },\n typeof props.delay === 'number' ? props.delay : props.delay?.show || 0\n )\n })\n return _Promise\n }\n\n let leaveTrigger: string | undefined\n const hide = (trigger?: string, noTriggerEmit?: boolean): Promise<string> => {\n if (!showRef.value && !showTimeout && !renderRef.value) return Promise.resolve('')\n if (!_Promise)\n _Promise = new Promise<string>((resolve) => {\n ;(_Resolve as (value: string | PromiseLike<string>) => void) = resolve\n })\n if (typeof trigger !== 'string') trigger = undefined\n leaveTrigger = trigger\n const event = buildTriggerableEvent('hide', {cancelable: true, trigger})\n const event2 = buildTriggerableEvent(trigger || 'ignore', {cancelable: true, trigger})\n if (\n (trigger === 'backdrop' && props.noCloseOnBackdrop) ||\n (trigger === 'esc' && props.noCloseOnEsc)\n ) {\n emit('hide-prevented', buildTriggerableEvent('hide-prevented', {trigger}))\n _Resolve?.('hide-prevented')\n return _Promise as Promise<string>\n }\n if (showTimeout) {\n clearTimeout(showTimeout)\n showTimeout = undefined\n }\n if (trigger && !noTriggerEmit) {\n emit(trigger, event2)\n }\n emit('hide', event)\n\n if (event.defaultPrevented || event2.defaultPrevented) {\n emit('hide-prevented', buildTriggerableEvent('hide-prevented', {trigger}))\n if (!modelValue.value) {\n nextTick(() => {\n noAction = true\n modelValue.value = true\n })\n }\n _Resolve?.('hide-prevented')\n return _Promise as Promise<string>\n }\n trapActive.value = false\n if (showTimeout) {\n clearTimeout(showTimeout)\n showTimeout = undefined\n if (!localTemporaryHide.value) renderRef.value = false\n renderBackdropRef.value = false\n }\n hideTimeout = setTimeout(\n () => {\n if (!isMounted) return\n hideTimeout = undefined\n isLeaving.value = true\n showRef.value = false\n options.hideFn?.()\n if (modelValue.value) {\n noAction = true\n modelValue.value = isCountdown ? 0 : false\n }\n },\n localNoAnimation.value\n ? 0\n : typeof props.delay === 'number'\n ? props.delay\n : props.delay?.hide || 0\n )\n return _Promise as Promise<string>\n }\n const throttleHide = useThrottleFn((a) => hide(a), 500)\n const throttleShow = useThrottleFn(() => show(), 500)\n\n const toggle = (resolveOnHide: boolean = false): Promise<boolean | string> => {\n const e = buildTriggerableEvent('toggle', {cancelable: true})\n emit('toggle', e)\n if (e.defaultPrevented) {\n emit('toggle-prevented', buildTriggerableEvent('toggle-prevented'))\n return Promise.resolve('toggle-prevented')\n }\n if (showRef.value) {\n return hide('toggle-function', true)\n }\n return show(resolveOnHide)\n }\n const triggerToggle = () => {\n const e = buildTriggerableEvent('toggle', {cancelable: true})\n emit('toggle', e)\n if (e.defaultPrevented) {\n emit('toggle-prevented', buildTriggerableEvent('toggle-prevented'))\n return\n }\n if (showRef.value) {\n hide('toggle-trigger', true)\n } else {\n show()\n }\n }\n const triggerRegistry: {trigger: string; el: Element}[] = []\n const registerTrigger = (trigger: string, el: Element) => {\n triggerRegistry.push({trigger, el})\n el.addEventListener(trigger, triggerToggle)\n checkVisibility(el)\n }\n const unregisterTrigger = (trigger: string, el: Element, clean = true) => {\n const idx = triggerRegistry.findIndex((t) => t?.trigger === trigger && t.el === el)\n if (idx > -1) {\n triggerRegistry.splice(idx, 1)\n el.removeEventListener(trigger, triggerToggle)\n if (clean) {\n el.removeAttribute('aria-expanded')\n el.classList.remove('collapsed')\n el.classList.remove('not-collapsed')\n }\n }\n }\n\n const appRegistry = inject(showHideRegistryKey, null)?.register({\n id: computedId.value,\n toggle,\n show,\n hide,\n value: readonly(showRef),\n registerTrigger,\n unregisterTrigger,\n component: getCurrentInstance() as ComponentInternalInstance,\n })\n const checkVisibility = (el: Element) => {\n el.setAttribute('aria-expanded', modelValue.value ? 'true' : 'false')\n el.classList.toggle('collapsed', !modelValue.value)\n el.classList.toggle('not-collapsed', !!modelValue.value)\n }\n\n watch(modelValue, () => {\n triggerRegistry.forEach((t) => {\n checkVisibility(t.el)\n })\n })\n\n watch(computedId, (newId, oldId) => {\n appRegistry?.updateId(newId, oldId)\n })\n\n onBeforeUnmount(() => {\n appRegistry?.unregister()\n triggerRegistry.forEach((t) => {\n t.el.removeEventListener(t.trigger, triggerToggle)\n })\n })\n onUnmounted(() => {\n isMounted = false\n clearTimeout(showTimeout)\n clearTimeout(hideTimeout)\n showTimeout = undefined\n hideTimeout = undefined\n })\n\n const lazyLoadCompleted = ref(false)\n const markLazyLoadCompleted = () => {\n if (props.lazy === true) lazyLoadCompleted.value = true\n }\n\n const isLeaving = ref(false)\n const isActive = ref(initialShow)\n const isVisible = ref(initialShow)\n\n const onBeforeEnter: TransitionProps['onBeforeEnter'] = [\n ...[\n options.transitionProps?.onBeforeEnter ?? noop,\n props.transitionProps?.onBeforeEnter ?? noop,\n ].flat(),\n () => {\n isActive.value = true\n },\n ]\n\n const onEnter: TransitionProps['onEnter'] = [\n () => {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n // sometimes one just isn't enough (offcanvas on the first load after refresh)\n isVisible.value = true\n })\n })\n },\n ...[options.transitionProps?.onEnter ?? noop, props.transitionProps?.onEnter ?? noop].flat(),\n ]\n const onAfterEnter: TransitionProps['onAfterEnter'] = [\n markLazyLoadCompleted,\n ...[\n options.transitionProps?.onAfterEnter ?? noop,\n props.transitionProps?.onAfterEnter ?? noop,\n ].flat(),\n () => {\n if (localNoAnimation.value) {\n requestAnimationFrame(() => {\n localNoAnimation.value = false\n })\n }\n if (localTemporaryHide.value) {\n localTemporaryHide.value = false\n }\n requestAnimationFrame(() => {\n trapActive.value = true\n nextTick(() => {\n emit('shown', buildTriggerableEvent('shown', {cancelable: false}))\n })\n })\n if (!_resolveOnHide) {\n _Resolve?.(true)\n _Promise = undefined\n _Resolve = undefined\n }\n },\n ]\n\n const onBeforeLeave: TransitionProps['onBeforeLeave'] = [\n () => {\n if (!isLeaving.value) isLeaving.value = true\n },\n ...[\n options.transitionProps?.onBeforeLeave ?? noop,\n props.transitionProps?.onBeforeLeave ?? noop,\n ].flat(),\n () => {\n trapActive.value = false\n },\n ]\n\n const onLeave: TransitionProps['onLeave'] = [\n () => {\n isVisible.value = false\n },\n ...[options.transitionProps?.onLeave ?? noop, props.transitionProps?.onLeave ?? noop].flat(),\n ]\n\n const onAfterLeave: TransitionProps['onAfterLeave'] = [\n () => {\n emit('hidden', buildTriggerableEvent('hidden', {trigger: leaveTrigger, cancelable: false}))\n },\n ...[\n options.transitionProps?.onAfterLeave ?? noop,\n props.transitionProps?.onAfterLeave ?? noop,\n ].flat(),\n () => {\n isLeaving.value = false\n isActive.value = false\n if (localNoAnimation.value) {\n requestAnimationFrame(() => {\n localNoAnimation.value = false\n })\n }\n requestAnimationFrame(() => {\n if (!localTemporaryHide.value) renderRef.value = false\n })\n _Resolve?.(leaveTrigger || '')\n _Promise = undefined\n _Resolve = undefined\n leaveTrigger = undefined\n },\n ]\n\n const contentShowing = computed(\n () =>\n localTemporaryHide.value === true ||\n isActive.value === true ||\n props.lazy === false ||\n (props.lazy === true && lazyLoadCompleted.value === true && props.unmountLazy === false)\n )\n const trapActive = ref(false)\n const backdropVisible = ref(false)\n const backdropReady = ref(false)\n\n const transitionFunctions = {\n ...options.transitionProps,\n onBeforeEnter,\n onEnter,\n onAfterEnter,\n onBeforeLeave,\n onLeave,\n onAfterLeave,\n } satisfies TransitionProps\n return {\n showRef: readonly(showRef),\n renderRef: readonly(renderRef),\n renderBackdropRef: readonly(renderBackdropRef),\n isVisible: readonly(isVisible),\n isActive: readonly(isActive),\n trapActive: readonly(trapActive),\n show,\n hide,\n toggle,\n throttleHide,\n throttleShow,\n buildTriggerableEvent,\n computedNoAnimation,\n localNoAnimation: readonly(localNoAnimation),\n setLocalNoAnimation: (value: boolean) => {\n localNoAnimation.value = value\n },\n localTemporaryHide: readonly(localTemporaryHide),\n setLocalTemporaryHide: (value: boolean) => {\n localTemporaryHide.value = value\n },\n isLeaving: readonly(isLeaving),\n transitionProps: {\n ...fadeBaseTransitionProps,\n ...props.transitionProps,\n ...transitionFunctions,\n } satisfies TransitionProps,\n\n lazyLoadCompleted: readonly(lazyLoadCompleted),\n markLazyLoadCompleted,\n contentShowing,\n backdropReady: readonly(backdropReady),\n backdropVisible: readonly(backdropVisible),\n backdropTransitionProps: {\n ...fadeBaseTransitionProps,\n onBeforeEnter: () => {\n requestAnimationFrame(() => {\n requestAnimationFrame(() => {\n backdropVisible.value = true\n })\n })\n backdropReady.value = false\n },\n onAfterEnter: () => {\n backdropReady.value = true\n },\n onBeforeLeave: () => {\n backdropVisible.value = false\n },\n onAfterLeave: () => {\n backdropReady.value = false\n requestAnimationFrame(() => {\n renderBackdropRef.value = false\n })\n },\n } satisfies TransitionProps,\n }\n}\n"],"mappings":"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"}
|
package/dist/utils/keys.d.mts
CHANGED
|
@@ -176,9 +176,19 @@ export declare const orchestratorRegistryKey: InjectionKey<{
|
|
|
176
176
|
_isToastAppend: Ref<boolean>;
|
|
177
177
|
_isOrchestratorInstalled: Ref<boolean>;
|
|
178
178
|
}>;
|
|
179
|
-
|
|
179
|
+
/**
|
|
180
|
+
* Provided by an ancestor BFormGroup (or boundary like BFormFloatingLabel). Called once at
|
|
181
|
+
* descendant setup to obtain state/disabled and a `track` callback. Call `track(idRef)` to
|
|
182
|
+
* claim the group's `<label for="...">` target — used by form controls without their own
|
|
183
|
+
* label (BFormInput, BFormTextarea, BFormSelect, or a plain BFormCheckbox/BFormRadio with
|
|
184
|
+
* no slot). Skip `track` entirely when the consumer only needs state/disabled and must not
|
|
185
|
+
* claim label-for (BFormCheckbox/BFormRadio that render their own label, BFormFloatingLabel
|
|
186
|
+
* acting as a boundary, ARIA-role custom widgets).
|
|
187
|
+
*/
|
|
188
|
+
export declare const formGroupKey: InjectionKey<() => {
|
|
180
189
|
state: Readonly<Ref<ValidationState | undefined>>;
|
|
181
190
|
disabled: Readonly<Ref<boolean>>;
|
|
191
|
+
track: (idRef: Readonly<Ref<string | null>>) => void;
|
|
182
192
|
}>;
|
|
183
193
|
export declare const formSelectKey: InjectionKey<{
|
|
184
194
|
modelValue: Readonly<Ref<unknown>>;
|
package/dist/utils/keys.d.ts
CHANGED
|
@@ -176,9 +176,19 @@ export declare const orchestratorRegistryKey: InjectionKey<{
|
|
|
176
176
|
_isToastAppend: Ref<boolean>;
|
|
177
177
|
_isOrchestratorInstalled: Ref<boolean>;
|
|
178
178
|
}>;
|
|
179
|
-
|
|
179
|
+
/**
|
|
180
|
+
* Provided by an ancestor BFormGroup (or boundary like BFormFloatingLabel). Called once at
|
|
181
|
+
* descendant setup to obtain state/disabled and a `track` callback. Call `track(idRef)` to
|
|
182
|
+
* claim the group's `<label for="...">` target — used by form controls without their own
|
|
183
|
+
* label (BFormInput, BFormTextarea, BFormSelect, or a plain BFormCheckbox/BFormRadio with
|
|
184
|
+
* no slot). Skip `track` entirely when the consumer only needs state/disabled and must not
|
|
185
|
+
* claim label-for (BFormCheckbox/BFormRadio that render their own label, BFormFloatingLabel
|
|
186
|
+
* acting as a boundary, ARIA-role custom widgets).
|
|
187
|
+
*/
|
|
188
|
+
export declare const formGroupKey: InjectionKey<() => {
|
|
180
189
|
state: Readonly<Ref<ValidationState | undefined>>;
|
|
181
190
|
disabled: Readonly<Ref<boolean>>;
|
|
191
|
+
track: (idRef: Readonly<Ref<string | null>>) => void;
|
|
182
192
|
}>;
|
|
183
193
|
export declare const formSelectKey: InjectionKey<{
|
|
184
194
|
modelValue: Readonly<Ref<unknown>>;
|