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.17 kB
JavaScript
;const e=require("vue"),o=require("./BCloseButton.vue_vue_type_script_setup_true_lang-BNiA4JXj.js"),t=require("./BButton.vue_vue_type_script_setup_true_lang-WdP1JVoH.js"),l=require("./useCountdownHover-DTpNib77.js"),a=require("./useDefaults-Bq2idhQU.js"),s=require("./dom-D5l3V401.js"),u=require("./useTransitions-DhhDSg14.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 c=r,d=a.useDefaults(c,"BAlert"),m=i,p=e.useSlots(),v=u.useFadeTransition((()=>d.fade)),f=e.useTemplateRef("_element"),_=e.useModel(r,"modelValue"),B=e.computed((()=>!s.isEmptySlot(p.close))),y=e.computed((()=>"boolean"==typeof _.value?0:_.value)),C=e.computed((()=>({[`alert-${d.variant}`]:null!==d.variant,"alert-dismissible":d.dismissible}))),k=e.computed((()=>[d.closeClass,{"btn-close-custom":B.value}])),{isActive:b,pause:g,resume:w,stop:q,isPaused:H,restart:P,value:V}=l.useCountdown(y,d.interval,{immediate:"number"==typeof _.value&&d.immediate});l.useCountdownHover(f,e.computed((()=>({noHoverPause:d.noHoverPause,noResumeOnHoverLeave:d.noResumeOnHoverLeave,modelValueIgnoresHover:"boolean"==typeof _.value}))),{pause:g,resume:w});const h=e.computed((()=>"boolean"==typeof _.value?_.value:b.value||d.showOnPause&&H.value)),j=e.computed((()=>({variant:B.value?d.closeVariant:void 0,class:k.value})));e.watchEffect((()=>{m("close-countdown",V.value)}));const x=()=>{m("close"),"boolean"==typeof _.value?_.value=!1:(_.value=0,q()),m("closed")};return n({pause:g,resume:w,stop:q,restart:P}),(l,a)=>(e.openBlock(),e.createBlock(e.Transition,e.mergeProps(e.unref(v),{"enter-to-class":"show"}),{default:e.withCtx((()=>[h.value?(e.openBlock(),e.createElementBlock("div",{key:0,ref:"_element",class:e.normalizeClass(["alert",C.value]),role:"alert","aria-live":"polite","aria-atomic":"true"},[e.renderSlot(l.$slots,"default",{},void 0,!0),e.unref(d).dismissible?(e.openBlock(),e.createElementBlock(e.Fragment,{key:0},[B.value||e.unref(d).closeContent?(e.openBlock(),e.createBlock(t._sfc_main,e.mergeProps({key:0},j.value,{onClick:x}),{default:e.withCtx((()=>[e.renderSlot(l.$slots,"close",{},(()=>[e.createTextVNode(e.toDisplayString(e.unref(d).closeContent),1)]),!0)])),_:3},16)):(e.openBlock(),e.createBlock(o._sfc_main,e.mergeProps({key:1,"aria-label":e.unref(d).closeLabel},j.value,{onClick:x}),null,16,["aria-label"]))],64)):e.createCommentVNode("",!0)],2)):e.createCommentVNode("",!0)])),_:3},16))}}),i=r._export_sfc(n,[["__scopeId","data-v-141c4f93"]]);exports.BAlert=i;
//# sourceMappingURL=BAlert-BdliYBUo.js.map