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) • 5.41 kB
JavaScript
;const e=require("vue"),l=require("./keys-C2BcfuxJ.js"),n=require("./classes-CXBJXuVd.js"),a=require("./index-CSe17yC0.js"),o=require("./index-BqHkgtNq.js"),t={name:"fade",enterActiveClass:"",enterFromClass:"showing",enterToClass:"",leaveActiveClass:"",leaveFromClass:"",leaveToClass:"showing",css:!0};exports.useShowHide=(r,i,u,v,s,d={transitionProps:{},showFn:()=>{},hideFn:()=>{}})=>{var c;let m=!1;const f=!!r.value&&!i.initialAnimation||i.visible||!1,h=e.ref(!1),p=e.ref(f),g=e.ref(f);let w="boolean"!=typeof r.value;e.watch(r,(()=>{w="boolean"!=typeof r.value,m?m=!1:r.value?q():L()}));const A=e.ref(f),b=e.ref(!1),F=e.computed((()=>i.noAnimation||i.noFade||A.value||!1));e.onMounted((()=>{var e;if(!i.show&&f){const l=P("show",{cancelable:!0});if(u("show",l),l.defaultPrevented)return void u("show-prevented",P("show-prevented"));A.value=!0,r.value||(m=!0,r.value=!0),p.value=!0,g.value=!0,S.value=!0,V.value=!0,I.value=!0,h.value=!0,null==(e=d.showFn)||e.call(d)}else(i.show||r.value&&i.initialAnimation)&&q()})),e.watch((()=>i.visible),(l=>{A.value=!0,e.nextTick((()=>{l&&(S.value=!0),l?q():L()}))})),e.watch((()=>i.show),(e=>{e?q():L()})),a.useEventListener(v,"bv-toggle",(()=>{r.value=!r.value}));const P=(e,l={})=>new n.BvTriggerableEvent(e,{cancelable:!1,target:(null==v?void 0:v.value)||null,relatedTarget:null,trigger:null,...l,componentId:null==s?void 0:s.value});let y;const q=()=>{if(h.value)return;const l=P("show",{cancelable:!0});if(u("show",l),l.defaultPrevented)return u("show-prevented",P("show-prevented")),S.value&&(S.value=!1),void(r.value&&!w&&(m=!0,e.nextTick((()=>{r.value=!1}))));p.value=!0,g.value=!0,requestAnimationFrame((()=>{var l;y=setTimeout((()=>{var l;h.value=!0,null==(l=d.showFn)||l.call(d),r.value||(m=!0,e.nextTick((()=>{r.value=!0})))}),A.value?0:"number"==typeof i.delay?i.delay:(null==(l=i.delay)?void 0:l.show)||0)}))},L=l=>{var n;if(!h.value)return;const a=P("hide",{cancelable:!0,trigger:l}),o=P(l||"ignore",{cancelable:!0,trigger:l});if("backdrop"===l&&i.noCloseOnBackdrop||"esc"===l&&i.noCloseOnEsc)u("hide-prevented",P("hide-prevented"));else{if(y&&(clearTimeout(y),y=void 0),l&&u(l,o),u("hide",a),a.defaultPrevented||o.defaultPrevented)return u("hide-prevented",P("hide-prevented")),void(r.value||e.nextTick((()=>{m=!0,r.value=!0})));setTimeout((()=>{var e;j.value=!0,h.value=!1,null==(e=d.hideFn)||e.call(d),r.value&&(m=!0,r.value=!!w&&0)}),A.value?0:"number"==typeof i.delay?i.delay:(null==(n=i.delay)?void 0:n.hide)||0)}},T=o.useThrottleFn((e=>L(e)),500),E=o.useThrottleFn((()=>q()),500),k=()=>{const e=P("toggle",{cancelable:!0});u("toggle",e),e.defaultPrevented?u("toggle-prevented",P("toggle-prevented")):h.value?L():q()},B=null==(c=e.inject(l.globalShowHideStorageInjectionKey,void 0))?void 0:c({id:s.value,toggle:k,show:q,hide:L,value:e.readonly(h)});e.onBeforeUnmount((()=>{null==B||B.unregister()}));const C=e.ref(!1),x=()=>{!0===i.lazy&&(C.value=!0)},j=e.ref(!1),z=e.ref(!1),S=e.ref(!1),H=e.computed((()=>!0===b.value||!0===z.value||!1===i.lazy||!0===i.lazy&&!0===C.value&&!1===i.unmountLazy)),R=e.ref(!1);e.watch(S,(e=>{requestAnimationFrame((()=>{requestAnimationFrame((()=>{requestAnimationFrame((()=>{requestAnimationFrame((()=>{setTimeout((()=>{R.value=e}),32)}))}))}))}))}));const V=e.ref(!1),I=e.ref(!1),N={...d.transitionProps,onBeforeEnter:e=>{var l,n,a,o;null==(n=null==(l=d.transitionProps)?void 0:l.onBeforeEnter)||n.call(l,e),null==(o=null==(a=i.transitionProps)?void 0:a.onBeforeEnter)||o.call(a,e),z.value=!0},onEnter:e=>{var l,n,a,o;requestAnimationFrame((()=>{requestAnimationFrame((()=>{S.value=!0}))})),null==(n=null==(l=d.transitionProps)?void 0:l.onEnter)||n.call(l,e),null==(o=null==(a=i.transitionProps)?void 0:a.onEnter)||o.call(a,e)},onAfterEnter:e=>{var l,n,a,o;u("shown",P("shown")),x(),null==(n=null==(l=d.transitionProps)?void 0:l.onAfterEnter)||n.call(l,e),null==(o=null==(a=i.transitionProps)?void 0:a.onAfterEnter)||o.call(a,e),A.value&&requestAnimationFrame((()=>{A.value=!1})),b.value&&(b.value=!1)},onBeforeLeave:e=>{var l,n,a,o;j.value||(j.value=!0),null==(n=null==(l=d.transitionProps)?void 0:l.onBeforeLeave)||n.call(l,e),null==(o=null==(a=i.transitionProps)?void 0:a.onBeforeLeave)||o.call(a,e)},onLeave:e=>{var l,n,a,o;S.value=!1,null==(n=null==(l=d.transitionProps)?void 0:l.onLeave)||n.call(l,e),null==(o=null==(a=i.transitionProps)?void 0:a.onLeave)||o.call(a,e)},onAfterLeave:e=>{var l,n,a,o;u("hidden",P("hidden")),null==(n=null==(l=d.transitionProps)?void 0:l.onAfterLeave)||n.call(l,e),null==(o=null==(a=i.transitionProps)?void 0:a.onAfterLeave)||o.call(a,e),j.value=!1,z.value=!1,A.value&&requestAnimationFrame((()=>{A.value=!1})),requestAnimationFrame((()=>{b.value||(p.value=!1)}))}};return{showRef:h,renderRef:p,renderBackdropRef:g,isVisible:S,isActive:z,trapActive:R,show:q,hide:L,toggle:k,throttleHide:T,throttleShow:E,buildTriggerableEvent:P,computedNoAnimation:F,localNoAnimation:A,localTemporaryHide:b,isLeaving:j,transitionProps:{...t,...i.transitionProps,...N},lazyLoadCompleted:C,markLazyLoadCompleted:x,contentShowing:H,backdropReady:I,backdropVisible:V,backdropTransitionProps:{...t,onBeforeEnter:()=>{requestAnimationFrame((()=>{requestAnimationFrame((()=>{V.value=!0}))})),I.value=!1},onAfterEnter:()=>{I.value=!0},onBeforeLeave:()=>{V.value=!1},onAfterLeave:()=>{I.value=!1,requestAnimationFrame((()=>{g.value=!1}))}}}};
//# sourceMappingURL=useShowHide-DsVWrWmv.js.map