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) 3.13 kB
"use strict";const e=require("vue"),o=require("./BTransition.vue_vue_type_style_index_0_lang-dOw0_NRO.js"),l=require("./BCloseButton.vue_vue_type_script_setup_true_lang-DN7lP-29.js"),t=require("./BButton.vue_vue_type_script_setup_true_lang-B9sDqO19.js"),a=require("./useCountdownHover-pVk1zcyl.js"),s=require("./useDefaults-DA3S59IE.js"),u=require("./dom-C-F8jHop.js"),r=require("./_plugin-vue_export-helper-CC_fc8JW.js"),n=e.defineComponent({__name:"BAlert",props:e.mergeModels({closeClass:{default:void 0},closeContent:{default:void 0},closeLabel:{default:"Close"},closeVariant:{default:"secondary"},dismissible:{type:Boolean,default:!1},fade:{type:Boolean,default:!1},immediate:{type:Boolean,default:!0},interval:{default:"requestAnimationFrame"},noHoverPause:{type:Boolean,default:!1},noResumeOnHoverLeave:{type:Boolean,default:!1},showOnPause:{type:Boolean,default:!0},variant:{default:"info"}},{modelValue:{type:[Boolean,Number],default:!1},modelModifiers:{}}),emits:e.mergeModels(["close","close-countdown","closed"],["update:modelValue"]),setup(r,{expose:n,emit:i}){const d=r,c=s.useDefaults(d,"BAlert"),m=i,p=e.useSlots(),v=e.ref(null),f=e.useModel(r,"modelValue"),_=e.computed((()=>!u.isEmptySlot(p.close))),B=e.computed((()=>"boolean"==typeof f.value?0:f.value)),y=e.computed((()=>({[`alert-${c.variant}`]:null!==c.variant,"alert-dismissible":c.dismissible}))),C=e.computed((()=>[c.closeClass,{"btn-close-custom":_.value}])),{isActive:k,pause:b,resume:g,stop:w,isPaused:q,restart:x,value:H}=a.useCountdown(B,c.interval,{immediate:"number"==typeof f.value&&c.immediate});a.useCountdownHover(v,e.computed((()=>({noHoverPause:c.noHoverPause,noResumeOnHoverLeave:c.noResumeOnHoverLeave}))),{pause:b,resume:g});const P=e.computed((()=>"boolean"==typeof f.value?f.value:k.value||c.showOnPause&&q.value)),V=e.computed((()=>({variant:_.value?c.closeVariant:void 0,class:C.value})));e.watchEffect((()=>{m("close-countdown",H.value)}));const h=()=>{m("close"),"boolean"==typeof f.value?f.value=!1:(f.value=0,w()),m("closed")};return n({pause:b,resume:g,stop:w,restart:x}),(a,s)=>(e.openBlock(),e.createBlock(o._sfc_main,{"no-fade":!e.unref(c).fade,"trans-props":{enterToClass:"show"}},{default:e.withCtx((()=>[P.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref_key:"element",ref:v,class:e.normalizeClass(["alert",y.value]),role:"alert","aria-live":"polite","aria-atomic":"true"},[e.renderSlot(a.$slots,"default",{},void 0,!0),e.unref(c).dismissible?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[_.value||e.unref(c).closeContent?(e.openBlock(),e.createBlock(t._sfc_main,e.mergeProps({key:0},V.value,{onClick:h}),{default:e.withCtx((()=>[e.renderSlot(a.$slots,"close",{},(()=>[e.createTextVNode(e.toDisplayString(e.unref(c).closeContent),1)]),!0)])),_:3},16)):(e.openBlock(),e.createBlock(l._sfc_main,e.mergeProps({key:1,"aria-label":e.unref(c).closeLabel},V.value,{onClick:h}),null,16,["aria-label"]))],64)):e.createCommentVNode("",!0)],2)):e.createCommentVNode("",!0)])),_:3},8,["no-fade"]))}}),i=r._export_sfc(n,[["__scopeId","data-v-d1c92ab3"]]);exports.BAlert=i; //# sourceMappingURL=BAlert-D1ziCQEj.js.map