UNPKG

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.75 kB
"use strict";const e=require("vue"),o=require("./index-DiURjA3G.js"),a=require("./useSafeScrollLock-Xjl1NHrG.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-DS_Hoj66.js"),u=require("./getElement-BPs-1fVW.js"),c=require("./_plugin-vue_export-helper-CC_fc8JW.js"),p=["id","aria-labelledby"],f=["id"],v="offcanvas-fallback-focus",m=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},focus:{type:[String,Boolean,Object,null],default:void 0},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},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(c,{expose:m,emit:k}){const h=c,b=l.useDefaults(h,"BOffcanvas"),B=k,y=e.useSlots(),C=e.useModel(c,"modelValue"),g=t.useId((()=>b.id),"offcanvas"),_=e.useTemplateRef("_element"),w=e.useTemplateRef("_fallbackFocusElement"),S=e.useTemplateRef("_close"),P=()=>b.focus&&"boolean"!=typeof b.focus?"close"===b.focus?S:u.getElement(b.focus,_.value??void 0):_,{showRef:E,renderRef:V,renderBackdropRef:T,hide:F,show:q,toggle:x,computedNoAnimation:A,contentShowing:N,transitionProps:j,backdropReady:z,backdropTransitionProps:R,backdropVisible:$,isVisible:O,buildTriggerableEvent:D,localNoAnimation:H,isLeaving:L,trapActive:M}=d.useShowHide(C,b,B,_,g,{transitionProps:{onAfterEnter:()=>{e.nextTick((()=>{if(!1!==b.focus&&!K.value&&b.noTrap){const e=o.unrefElement(P());null==e||e.focus()}}))},enterToClass:"showing",leaveToClass:"hiding",enterActiveClass:"",leaveActiveClass:"",enterFromClass:"",leaveFromClass:""}}),I=o.useBreakpoints(o.breakpointsBootstrapV5).smallerOrEqual((()=>b.responsive??"xs")),K=e.ref(void 0!==b.responsive&&!I.value);e.onMounted((()=>{void 0!==b.responsive&&B("breakpoint",D("breakpoint"),K.value)})),a.useSafeScrollLock(E,(()=>b.bodyScrolling||K.value)),o.onKeyStroke("Escape",(()=>{F("esc")}),{target:_});const{needsFallback:X}=a.useActivatedFocusTrap({element:_,isActive:M,noTrap:()=>b.noTrap||K.value,fallbackFocus:{classSelector:v,ref:w},focus:()=>!1!==b.focus&&!K.value&&(o.unrefElement(P())??void 0)}),Z=e.computed((()=>(void 0===b.responsive||!K.value)&&!1===b.noBackdrop&&(!0===E.value||L.value&&b.backdropFirst&&!A.value))),G=e.computed((()=>!i.isEmptySlot(y["header-close"]))),J=e.computed((()=>[{"text-reset":!G.value},b.headerCloseClass])),Q=e.computed((()=>({variant:G.value?b.headerCloseVariant:void 0,class:J.value}))),U=e.computed((()=>!i.isEmptySlot(y.footer))),W=e.computed((()=>[void 0===b.responsive?"offcanvas":`offcanvas-${b.responsive}`,`offcanvas-${b.placement}`,{show:O.value,[`shadow-${b.shadow}`]:!!b.shadow,"no-transition":A.value}])),Y=e.computed((()=>({width:b.width}))),ee=e.computed((()=>({visible:O.value,placement:b.placement,hide:F,show:q,toggle:x,id:g.value,active:M.value})));return e.watch(I,(e=>{if(void 0!==b.responsive)if(!0===e){const e=!1;H.value=!0,requestAnimationFrame((()=>{K.value=e})),B("breakpoint",D("breakpoint"),e),B("hide",D("hide"))}else{const e=!0;H.value=!0,requestAnimationFrame((()=>{K.value=e})),B("breakpoint",D("breakpoint"),e),B("show",D("show"))}})),m({hide:F,show:q,toggle:x,isOpenByBreakpoint:K}),(o,a)=>(e.openBlock(),e.createBlock(n._sfc_main,{to:e.unref(b).teleportTo,disabled:e.unref(b).teleportDisabled||K.value},{default:e.withCtx((()=>[e.unref(V)||e.unref(N)||K.value?(e.openBlock(),e.createBlock(e.Transition,e.mergeProps({key:0},e.unref(j),{appear:C.value||e.unref(b).visible}),{default:e.withCtx((()=>[e.withDirectives(e.createElementVNode("div",e.mergeProps({id:e.unref(g),ref:"_element","aria-modal":"true",role:"dialog",class:W.value,style:Y.value,tabindex:"-1","aria-labelledby":`${e.unref(g)}-offcanvas-label`,"data-bs-backdrop":"false"},o.$attrs),[e.unref(N)||K.value?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[e.unref(b).noHeader?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock("div",{key:0,class:e.normalizeClass(["offcanvas-header",e.unref(b).headerClass])},[e.renderSlot(o.$slots,"header",e.normalizeProps(e.guardReactiveProps(ee.value)),(()=>[e.createElementVNode("h5",{id:`${e.unref(g)}-offcanvas-label`,class:"offcanvas-title"},[e.renderSlot(o.$slots,"title",e.normalizeProps(e.guardReactiveProps(ee.value)),(()=>[e.createTextVNode(e.toDisplayString(e.unref(b).title),1)]),!0)],8,f),e.unref(b).noHeaderClose?e.createCommentVNode("",!0):(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[G.value?(e.openBlock(),e.createBlock(r._sfc_main,e.mergeProps({key:0,ref:"_close"},Q.value,{onClick:a[0]||(a[0]=o=>e.unref(F)("close"))}),{default:e.withCtx((()=>[e.renderSlot(o.$slots,"header-close",e.normalizeProps(e.guardReactiveProps(ee.value)),void 0,!0)])),_:3},16)):(e.openBlock(),e.createBlock(s._sfc_main,e.mergeProps({key:1,ref:"_close","aria-label":e.unref(b).headerCloseLabel},Q.value,{onClick:a[1]||(a[1]=o=>e.unref(F)("close"))}),null,16,["aria-label"]))],64))]),!0)],2)),e.createElementVNode("div",e.mergeProps({class:["offcanvas-body",e.unref(b).bodyClass]},e.unref(b).bodyAttrs),[e.renderSlot(o.$slots,"default",e.normalizeProps(e.guardReactiveProps(ee.value)),void 0,!0)],16),U.value?(e.openBlock(),e.createElementBlock("div",{key:1,class:e.normalizeClass(e.unref(b).footerClass)},[e.renderSlot(o.$slots,"footer",e.normalizeProps(e.guardReactiveProps(ee.value)),void 0,!0)],2)):e.createCommentVNode("",!0)],64)):e.createCommentVNode("",!0),e.unref(X)?(e.openBlock(),e.createElementBlock("div",{key:1,ref:"_fallbackFocusElement",class:e.normalizeClass(v),tabindex:"0",style:{width:"0",height:"0",overflow:"hidden"}},null,512)):e.createCommentVNode("",!0)],16,p),[[e.vShow,e.unref(E)&&(e.unref(z)&&e.unref(b).backdropFirst||!e.unref(b).backdropFirst)||K.value]])])),_:3},16,["appear"])):e.createCommentVNode("",!0),e.unref(b).noBackdrop?e.createCommentVNode("",!0):e.renderSlot(o.$slots,"backdrop",e.normalizeProps(e.mergeProps({key:1},ee.value)),(()=>[e.unref(T)?(e.openBlock(),e.createBlock(e.Transition,e.normalizeProps(e.mergeProps({key:0},e.unref(R))),{default:e.withCtx((()=>[e.withDirectives(e.createElementVNode("div",{class:e.normalizeClass(["offcanvas-backdrop",{fade:!e.unref(A),show:e.unref($)||e.unref(A)}]),onClick:a[2]||(a[2]=o=>e.unref(F)("backdrop"))},null,2),[[e.vShow,Z.value]])])),_:1},16)):e.createCommentVNode("",!0)]),!0)])),_:3},8,["to","disabled"]))}}),k=c._export_sfc(m,[["__scopeId","data-v-d3f94528"]]);exports.BOffcanvas=k; //# sourceMappingURL=BOffcanvas-DJJlcmO-.js.map