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) 5.5 kB
"use strict";const e=require("vue"),l=require("./keys-W3DrYQSP.js"),n=require("./classes-CXBJXuVd.js"),a=require("./index-DiURjA3G.js"),o=require("./index-BjjsoN-a.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(f),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?T():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,H.value=!0,I.value=!0,N.value=!0,h.value=!0,null==(e=d.showFn)||e.call(d)}else(i.show||r.value&&i.initialAnimation)&&T()})),e.watch((()=>i.visible),(l=>{A.value=!0,e.nextTick((()=>{l&&(H.value=!0),l?T():L()}))})),e.watch((()=>i.show),(e=>{e?T():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,q;const T=()=>{if(h.value&&!q)return;const l=P("show",{cancelable:!0});if(u("show",l),l.defaultPrevented)return u("show-prevented",P("show-prevented")),H.value&&(H.value=!1),void(r.value&&!w&&(m=!0,e.nextTick((()=>{r.value=!1}))));q&&(clearTimeout(q),q=void 0),p.value=!0,g.value=!0,requestAnimationFrame((()=>{var l;y=setTimeout((()=>{var l;y=void 0,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&&!y)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(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})));y&&(clearTimeout(y),y=void 0,b.value||(p.value=!1),g.value=!1),q=setTimeout((()=>{var e;q=void 0,z.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)}},E=o.useThrottleFn((e=>L(e)),500),k=o.useThrottleFn((()=>T()),500),B=()=>{const e=P("toggle",{cancelable:!0});u("toggle",e),e.defaultPrevented?u("toggle-prevented",P("toggle-prevented")):h.value?L():T()},C=null==(c=e.inject(l.globalShowHideStorageInjectionKey,void 0))?void 0:c({id:s.value,toggle:B,show:T,hide:L,value:e.readonly(h)});e.onBeforeUnmount((()=>{null==C||C.unregister()}));const x=e.ref(!1),j=()=>{!0===i.lazy&&(x.value=!0)},z=e.ref(!1),S=e.ref(f),H=e.ref(f),R=e.computed((()=>!0===b.value||!0===S.value||!1===i.lazy||!0===i.lazy&&!0===x.value&&!1===i.unmountLazy)),V=e.ref(!1);e.watch(H,(e=>{requestAnimationFrame((()=>{requestAnimationFrame((()=>{requestAnimationFrame((()=>{requestAnimationFrame((()=>{setTimeout((()=>{V.value=e}),32)}))}))}))}))}));const I=e.ref(!1),N=e.ref(!1),O={...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),S.value=!0},onEnter:e=>{var l,n,a,o;requestAnimationFrame((()=>{requestAnimationFrame((()=>{H.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")),j(),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;z.value||(z.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;H.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),z.value=!1,S.value=!1,A.value&&requestAnimationFrame((()=>{A.value=!1})),requestAnimationFrame((()=>{b.value||(p.value=!1)}))}};return{showRef:h,renderRef:p,renderBackdropRef:g,isVisible:H,isActive:S,trapActive:V,show:T,hide:L,toggle:B,throttleHide:E,throttleShow:k,buildTriggerableEvent:P,computedNoAnimation:F,localNoAnimation:A,localTemporaryHide:b,isLeaving:z,transitionProps:{...t,...i.transitionProps,...O},lazyLoadCompleted:x,markLazyLoadCompleted:j,contentShowing:R,backdropReady:N,backdropVisible:I,backdropTransitionProps:{...t,onBeforeEnter:()=>{requestAnimationFrame((()=>{requestAnimationFrame((()=>{I.value=!0}))})),N.value=!1},onAfterEnter:()=>{N.value=!0},onBeforeLeave:()=>{I.value=!1},onAfterLeave:()=>{N.value=!1,requestAnimationFrame((()=>{g.value=!1}))}}}}; //# sourceMappingURL=useShowHide-BgqT9gR2.js.map