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.4 kB
JavaScript
;const e=require("vue"),o=require("./index-DiURjA3G.js"),a=require("./useSafeScrollLock-DiXc2nxd.js"),l=require("./useDefaults-q0yyNSBk.js"),t=require("./useId-CVpYZavN.js"),r=require("./BButton.vue_vue_type_script_setup_true_lang-B7BDuhWq.js"),s=require("./BCloseButton.vue_vue_type_script_setup_true_lang-DZGcyqBT.js"),n=require("./ConditionalTeleport.vue_vue_type_script_lang-DOGq8bM-.js"),i=require("./dom-Dzr6gmPm.js"),d=require("./useShowHide-BgqT9gR2.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=e.useTemplateRef("_element"),_=e.useTemplateRef("_fallbackFocusElement"),{showRef:w,renderRef:S,renderBackdropRef:V,hide:P,show:F,toggle:E,computedNoAnimation:T,contentShowing:x,transitionProps:A,backdropReady:N,backdropTransitionProps:q,backdropVisible:z,isVisible:$,buildTriggerableEvent:j,localNoAnimation:R,isLeaving:D,trapActive:O}=d.useShowHide(y,h,b,g,C,{transitionProps:{onAfterEnter:()=>{e.nextTick((()=>{!1!==h.noFocus||L.value||(M.value=!0)}))},enterToClass:"showing",leaveToClass:"hiding",enterActiveClass:"",leaveActiveClass:"",enterFromClass:"",leaveFromClass:""}}),H=o.useBreakpoints(o.breakpointsBootstrapV5).smallerOrEqual((()=>h.responsive??"xs")),L=e.ref(void 0!==h.responsive&&!H.value);e.onMounted((()=>{void 0!==h.responsive&&b("breakpoint",j("breakpoint"),L.value)})),a.useSafeScrollLock(w,(()=>h.bodyScrolling||L.value)),o.onKeyStroke("Escape",(()=>{P("esc")}),{target:g});const{focused:M}=o.useFocus(g,{initialValue:y.value&&!1===h.noFocus&&!L.value}),{needsFallback:I}=a.useActivatedFocusTrap({element:g,isActive:O,noTrap:()=>h.noTrap||L.value,fallbackFocus:{classSelector:f,ref:_}}),K=e.computed((()=>(void 0===h.responsive||!L.value)&&!1===h.noBackdrop&&(!0===w.value||D.value&&h.backdropFirst&&!T.value))),X=e.computed((()=>!i.isEmptySlot(B["header-close"]))),Z=e.computed((()=>[{"text-reset":!X.value},h.headerCloseClass])),G=e.computed((()=>({variant:X.value?h.headerCloseVariant:void 0,class:Z.value}))),J=e.computed((()=>!i.isEmptySlot(B.footer))),Q=e.computed((()=>[void 0===h.responsive?"offcanvas":`offcanvas-${h.responsive}`,`offcanvas-${h.placement}`,{show:$.value,[`shadow-${h.shadow}`]:!!h.shadow,"no-transition":T.value}])),U=e.computed((()=>({width:h.width}))),W=e.computed((()=>({visible:w.value,placement:h.placement,hide:P})));return e.watch(H,(e=>{if(void 0!==h.responsive)if(!0===e){const e=!1;R.value=!0,requestAnimationFrame((()=>{L.value=e})),b("breakpoint",j("breakpoint"),e),b("hide",j("hide"))}else{const e=!0;R.value=!0,requestAnimationFrame((()=>{L.value=e})),b("breakpoint",j("breakpoint"),e),b("show",j("show"))}})),v({hide:P,show:F,toggle:E,isOpenByBreakpoint:L}),(o,a)=>(e.openBlock(),e.createBlock(n._sfc_main,{to:e.unref(h).teleportTo,disabled:e.unref(h).teleportDisabled||L.value},{default:e.withCtx((()=>[e.unref(S)||e.unref(x)||L.value?(e.openBlock(),e.createBlock(e.Transition,e.mergeProps({key:0},e.unref(A),{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:Q.value,style:U.value,tabindex:"-1","aria-labelledby":`${e.unref(C)}-offcanvas-label`,"data-bs-backdrop":"false"},o.$attrs),[e.unref(x)||L.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(W.value)),(()=>[e.createElementVNode("h5",{id:`${e.unref(C)}-offcanvas-label`,class:"offcanvas-title"},[e.renderSlot(o.$slots,"title",e.normalizeProps(e.guardReactiveProps(W.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},G.value,{onClick:a[0]||(a[0]=o=>e.unref(P)("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},G.value,{onClick:a[1]||(a[1]=o=>e.unref(P)("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(W.value)),void 0,!0)],16),J.value?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(h).footerClass)},[e.renderSlot(o.$slots,"footer",e.normalizeProps(e.guardReactiveProps(W.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(w)&&(e.unref(N)&&e.unref(h).backdropFirst||!e.unref(h).backdropFirst)||L.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},W.value)),(()=>[e.unref(V)?(e.openBlock(),e.createBlock(e.Transition,e.normalizeProps(e.mergeProps({key:0},e.unref(q))),{default:e.withCtx((()=>[e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(["offcanvas-backdrop",{fade:!e.unref(T),show:e.unref(z)||e.unref(T)}]),onClick:a[2]||(a[2]=o=>e.unref(P)("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-77d852fe"]]);exports.BOffcanvas=m;
//# sourceMappingURL=BOffcanvas-DAJdNkyO.js.map