bootstrap-vue-next
Version:
BootstrapVueNext is an early and lovely component library for Vue 3 & Nuxt 3 based on Bootstrap 5 and Typescript.
3 lines (2 loc) • 7.27 kB
JavaScript
;const e=require("vue"),o=require("./index-CSe17yC0.js"),a=require("./useSafeScrollLock-KuIWyOZc.js"),l=require("./useDefaults-Bq2idhQU.js"),t=require("./useId-BOa4n5pr.js"),r=require("./BButton.vue_vue_type_script_setup_true_lang-WdP1JVoH.js"),s=require("./BCloseButton.vue_vue_type_script_setup_true_lang-BNiA4JXj.js"),n=require("./ConditionalTeleport.vue_vue_type_script_lang-6a2bI705.js"),d=require("./dom-D5l3V401.js"),i=require("./useShowHide-DsVWrWmv.js"),u=require("./_plugin-vue_export-helper-CC_fc8JW.js"),c=["id","aria-labelledby"],p=["id"],f="offcanvas-fallback-focus",v=e.defineComponent({inheritAttrs:!1,__name:"BOffcanvas",props:e.mergeModels({noBackdrop:{type:Boolean,default:!1},backdropFirst:{type:Boolean,default:!1},bodyAttrs:{default:void 0},bodyClass:{default:void 0},bodyScrolling:{type:Boolean,default:!1},footerClass:{default:void 0},headerClass:{default:void 0},headerCloseClass:{default:void 0},headerCloseLabel:{default:"Close"},headerCloseVariant:{default:"secondary"},id:{default:void 0},noCloseOnBackdrop:{type:Boolean,default:!1},noCloseOnEsc:{type:Boolean,default:!1},noFocus:{type:Boolean,default:!1},noHeader:{type:Boolean,default:!1},noTrap:{type:Boolean,default:!1},noHeaderClose:{type:Boolean,default:!1},placement:{default:"start"},shadow:{type:[String,Boolean],default:!1},title:{default:void 0},responsive:{},width:{default:void 0},teleportDisabled:{type:Boolean,default:!1},teleportTo:{default:"body"},initialAnimation:{type:Boolean,default:!1},noAnimation:{type:Boolean,default:!1},noFade:{type:Boolean},lazy:{type:Boolean,default:!1},unmountLazy:{type:Boolean,default:!1},show:{type:Boolean,default:!1},transProps:{},visible:{type:Boolean,default:!1}},{modelValue:{type:Boolean,default:!1},modelModifiers:{}}),emits:e.mergeModels(["close","esc","backdrop","breakpoint","hide","hide-prevented","hidden","show","show-prevented","shown","toggle","toggle-prevented"],["update:modelValue"]),setup(u,{expose:v,emit:m}){const k=u,h=l.useDefaults(k,"BOffcanvas"),b=m,B=e.useSlots(),y=e.useModel(u,"modelValue"),C=t.useId((()=>h.id),"offcanvas"),g=o.useBreakpoints(o.breakpointsBootstrapV5).smallerOrEqual((()=>h.responsive??"xs")),_=e.ref(void 0!==h.responsive&&!g.value),w=e.useTemplateRef("_element"),S=e.useTemplateRef("_fallbackFocusElement"),{showRef:V,renderRef:P,renderBackdropRef:F,hide:E,show:T,toggle:x,computedNoAnimation:A,contentShowing:N,transitionProps:q,backdropReady:z,backdropTransitionProps:$,backdropVisible:j,isVisible:R,buildTriggerableEvent:D,localNoAnimation:H,isLeaving:L,trapActive:O}=i.useShowHide(y,h,b,w,C,{transitionProps:{onAfterEnter:()=>{e.nextTick((()=>{!1!==h.noFocus||_.value||(M.value=!0)}))},enterToClass:"showing",leaveToClass:"hiding",enterActiveClass:"",leaveActiveClass:"",enterFromClass:"",leaveFromClass:""}});a.useSafeScrollLock(V,(()=>h.bodyScrolling||_.value)),o.onKeyStroke("Escape",(()=>{E("esc")}),{target:w});const{focused:M}=o.useFocus(w,{initialValue:y.value&&!1===h.noFocus&&!_.value}),{needsFallback:I}=a.useActivatedFocusTrap({element:w,isActive:O,noTrap:()=>h.noTrap||_.value,fallbackFocus:{classSelector:f,ref:S}}),K=e.computed((()=>(void 0===h.responsive||!_.value)&&!1===h.noBackdrop&&(!0===V.value||L.value&&h.backdropFirst&&!A.value))),X=e.computed((()=>!d.isEmptySlot(B["header-close"]))),G=e.computed((()=>[{"text-reset":!X.value},h.headerCloseClass])),J=e.computed((()=>({variant:X.value?h.headerCloseVariant:void 0,class:G.value}))),Q=e.computed((()=>!d.isEmptySlot(B.footer))),U=e.computed((()=>[void 0===h.responsive?"offcanvas":`offcanvas-${h.responsive}`,`offcanvas-${h.placement}`,{show:R.value,[`shadow-${h.shadow}`]:!!h.shadow,"no-transition":A.value}])),W=e.computed((()=>({width:h.width}))),Y=e.computed((()=>({visible:V.value,placement:h.placement,hide:E})));return e.watch(g,(e=>{void 0!==h.responsive&&(!0===e?(H.value=!0,requestAnimationFrame((()=>{_.value=!1})),b("breakpoint",D("breakpoint")),b("hide",D("hide"))):(H.value=!0,requestAnimationFrame((()=>{_.value=!0})),b("breakpoint",D("breakpoint")),b("show",D("show"))))})),v({hide:E,show:T,toggle:x}),(o,a)=>(e.openBlock(),e.createBlock(n._sfc_main,{to:e.unref(h).teleportTo,disabled:e.unref(h).teleportDisabled||_.value},{default:e.withCtx((()=>[e.unref(P)||e.unref(N)||_.value?(e.openBlock(),e.createBlock(e.Transition,e.mergeProps({key:0},e.unref(q),{appear:y.value||e.unref(h).visible}),{default:e.withCtx((()=>[e.withDirectives(e.createElementVNode("div",e.mergeProps({id:e.unref(C),ref:"_element","aria-modal":"true",role:"dialog",class:U.value,style:W.value,tabindex:"-1","aria-labelledby":`${e.unref(C)}-offcanvas-label`,"data-bs-backdrop":"false"},o.$attrs),[e.unref(N)||_.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.unref(h).noHeader?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["offcanvas-header",e.unref(h).headerClass])},[e.renderSlot(o.$slots,"header",e.normalizeProps(e.guardReactiveProps(Y.value)),(()=>[e.createElementVNode("h5",{id:`${e.unref(C)}-offcanvas-label`,class:"offcanvas-title"},[e.renderSlot(o.$slots,"title",e.normalizeProps(e.guardReactiveProps(Y.value)),(()=>[e.createTextVNode(e.toDisplayString(e.unref(h).title),1)]),!0)],8,p),e.unref(h).noHeaderClose?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[X.value?(e.openBlock(),e.createBlock(r._sfc_main,e.mergeProps({key:0},J.value,{onClick:a[0]||(a[0]=o=>e.unref(E)("close"))}),{default:e.withCtx((()=>[e.renderSlot(o.$slots,"header-close",{},void 0,!0)])),_:3},16)):(e.openBlock(),e.createBlock(s._sfc_main,e.mergeProps({key:1,"aria-label":e.unref(h).headerCloseLabel},J.value,{onClick:a[1]||(a[1]=o=>e.unref(E)("close"))}),null,16,["aria-label"]))],64))]),!0)],2)),e.createElementVNode("div",e.mergeProps({class:["offcanvas-body",e.unref(h).bodyClass]},e.unref(h).bodyAttrs),[e.renderSlot(o.$slots,"default",e.normalizeProps(e.guardReactiveProps(Y.value)),void 0,!0)],16),Q.value?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(h).footerClass)},[e.renderSlot(o.$slots,"footer",e.normalizeProps(e.guardReactiveProps(Y.value)),void 0,!0)],2)):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0),e.unref(I)?(e.openBlock(),e.createElementBlock("div",{key:1,ref:"_fallbackFocusElement",class:e.normalizeClass(f),tabindex:"0",style:{width:"0",height:"0",overflow:"hidden"}},null,512)):e.createCommentVNode("",!0)],16,c),[[e.vShow,e.unref(V)&&(e.unref(z)&&e.unref(h).backdropFirst||!e.unref(h).backdropFirst)||_.value]])])),_:3},16,["appear"])):e.createCommentVNode("",!0),e.unref(h).noBackdrop?e.createCommentVNode("",!0):e.renderSlot(o.$slots,"backdrop",e.normalizeProps(e.mergeProps({key:1},Y.value)),(()=>[e.unref(F)?(e.openBlock(),e.createBlock(e.Transition,e.normalizeProps(e.mergeProps({key:0},e.unref($))),{default:e.withCtx((()=>[e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(["offcanvas-backdrop",{fade:!e.unref(A),show:e.unref(j)||e.unref(A)}]),onClick:a[2]||(a[2]=o=>e.unref(E)("backdrop"))},null,2),[[e.vShow,K.value]])])),_:1},16)):e.createCommentVNode("",!0)]),!0)])),_:3},8,["to","disabled"]))}}),m=u._export_sfc(v,[["__scopeId","data-v-fdff9e9e"]]);exports.BOffcanvas=m;
//# sourceMappingURL=BOffcanvas-mOhcCaYa.js.map