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.01 kB
"use strict";const e=require("vue"),l=require("./keys-W3DrYQSP.js"),n=require("./classes-BPvGsmbC.js"),a=require("./index-DiURjA3G.js"),o=require("./index-BjjsoN-a.js"),r={name:"fade",enterActiveClass:"",enterFromClass:"showing",enterToClass:"",leaveActiveClass:"",leaveFromClass:"",leaveToClass:"showing",css:!0};exports.useShowHide=(t,i,v,u,s,d={transitionProps:{},showFn:()=>{},hideFn:()=>{}})=>{var c;let g=!1;const p=!!t.value&&!i.initialAnimation||i.visible||!1,m=e.ref(p),f=e.ref(p),h=e.ref(p);let w="boolean"!=typeof t.value;e.watch(t,(()=>{w="boolean"!=typeof t.value,g?g=!1:t.value?x():C("modelValue",!0)}));const b=e.ref(p),A=e.ref(!1),P=e.computed((()=>i.noAnimation||i.noFade||b.value||!1));let L=!1;e.onMounted((()=>{var e;if(L=!0,!i.show&&p){const l=T("show",{cancelable:!0});if(v("show",l),l.defaultPrevented)return void v("show-prevented",T("show-prevented"));b.value=!0,t.value||(g=!0,t.value=!0),f.value=!0,h.value=!0,M.value=!0,D.value=!0,G.value=!0,m.value=!0,null==(e=d.showFn)||e.call(d)}else(i.show||t.value&&i.initialAnimation)&&x()})),e.watch((()=>i.visible),(l=>{b.value=!0,e.nextTick((()=>{l&&(M.value=!0),l?x():C("visible-prop",!0)}))})),e.watch((()=>i.show),(e=>{e?x():C("show-prop",!0)})),a.useEventListener(u,"bv-toggle",(()=>{t.value=!t.value}));const T=(e,l={})=>new n.BvTriggerableEvent(e,{cancelable:!1,target:(null==u?void 0:u.value)||null,relatedTarget:null,trigger:null,...l,componentId:null==s?void 0:s.value});let y,F,E,q,k;const x=(l=!1)=>{if(m.value&&!F&&!q)return Promise.resolve(!0);if(k=l,m.value&&!F&&q)return q;q=new Promise((e=>{E=e}));const n=T("show",{cancelable:!0});return v("show",n),n.defaultPrevented?(v("show-prevented",T("show-prevented")),M.value&&(M.value=!1),t.value&&!w&&(g=!0,e.nextTick((()=>{t.value=!1}))),null==E||E("show-prevented"),q):(F&&(clearTimeout(F),F=void 0),f.value=!0,h.value=!0,requestAnimationFrame((()=>{var l,n;if(b.value||void 0===i.delay){if(!L)return;return y=void 0,m.value=!0,null==(l=d.showFn)||l.call(d),void(t.value||(g=!0,e.nextTick((()=>{t.value=!0}))))}y=setTimeout((()=>{var l;L&&(y=void 0,m.value=!0,null==(l=d.showFn)||l.call(d),t.value||(g=!0,e.nextTick((()=>{t.value=!0}))))}),"number"==typeof i.delay?i.delay:(null==(n=i.delay)?void 0:n.show)||0)})),q)};let B;const C=(l,n)=>{var a;if(!m.value&&!y)return Promise.resolve("");q||(q=new Promise((e=>{E=e}))),"string"!=typeof l&&(l=void 0),B=l;const o=T("hide",{cancelable:!0,trigger:l}),r=T(l||"ignore",{cancelable:!0,trigger:l});return"backdrop"===l&&i.noCloseOnBackdrop||"esc"===l&&i.noCloseOnEsc?(v("hide-prevented",T("hide-prevented",{trigger:l})),null==E||E("hide-prevented"),q):(y&&(clearTimeout(y),y=void 0),l&&!n&&v(l,r),v("hide",o),o.defaultPrevented||r.defaultPrevented?(v("hide-prevented",T("hide-prevented",{trigger:l})),t.value||e.nextTick((()=>{g=!0,t.value=!0})),null==E||E("hide-prevented"),q):($.value=!1,y&&(clearTimeout(y),y=void 0,A.value||(f.value=!1),h.value=!1),F=setTimeout((()=>{var e;L&&(F=void 0,U.value=!0,m.value=!1,null==(e=d.hideFn)||e.call(d),t.value&&(g=!0,t.value=!!w&&0))}),b.value?0:"number"==typeof i.delay?i.delay:(null==(a=i.delay)?void 0:a.hide)||0),q))},j=o.useThrottleFn((e=>C(e)),500),z=o.useThrottleFn((()=>x()),500),S=(e=!1)=>{const l=T("toggle",{cancelable:!0});return v("toggle",l),l.defaultPrevented?(v("toggle-prevented",T("toggle-prevented")),Promise.resolve("toggle-prevented")):m.value?C("toggle-function",!0):x(e)},H=()=>{const e=T("toggle",{cancelable:!0});v("toggle",e),e.defaultPrevented?v("toggle-prevented",T("toggle-prevented")):m.value?C("toggle-trigger",!0):x()},I=[],R=null==(c=e.inject(l.globalShowHideStorageInjectionKey,void 0))?void 0:c.register({id:s.value,toggle:S,show:x,hide:C,value:e.readonly(m),registerTrigger:(e,l)=>{I.push({trigger:e,el:l}),l.addEventListener(e,H),V(l)},unregisterTrigger:(e,l,n=!0)=>{const a=I.findIndex((n=>(null==n?void 0:n.trigger)===e&&n.el===l));a>-1&&(I.splice(a,1),l.removeEventListener(e,H),n&&(l.removeAttribute("aria-expanded"),l.classList.remove("collapsed"),l.classList.remove("not-collapsed")))},component:e.getCurrentInstance()}),V=e=>{e.setAttribute("aria-expanded",t.value?"true":"false"),e.classList.toggle("collapsed",!t.value),e.classList.toggle("not-collapsed",!!t.value)};e.watch(t,(()=>{I.forEach((e=>{V(e.el)}))})),e.onBeforeUnmount((()=>{null==R||R.unregister(),I.forEach((e=>{e.el.removeEventListener(e.trigger,H)}))})),e.onUnmounted((()=>{L=!1,clearTimeout(y),clearTimeout(F),y=void 0,F=void 0}));const N=e.ref(!1),O=()=>{!0===i.lazy&&(N.value=!0)},U=e.ref(!1),K=e.ref(p),M=e.ref(p),Z=e.computed((()=>!0===A.value||!0===K.value||!1===i.lazy||!0===i.lazy&&!0===N.value&&!1===i.unmountLazy)),$=e.ref(!1),D=e.ref(!1),G=e.ref(!1),J={...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),K.value=!0},onEnter:e=>{var l,n,a,o;requestAnimationFrame((()=>{requestAnimationFrame((()=>{M.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:l=>{var n,a,o,r;O(),null==(a=null==(n=d.transitionProps)?void 0:n.onAfterEnter)||a.call(n,l),null==(r=null==(o=i.transitionProps)?void 0:o.onAfterEnter)||r.call(o,l),b.value&&requestAnimationFrame((()=>{b.value=!1})),A.value&&(A.value=!1),requestAnimationFrame((()=>{$.value=!0,e.nextTick((()=>{v("shown",T("shown",{cancelable:!1}))}))})),k||(null==E||E(!0),q=void 0,E=void 0)},onBeforeLeave:e=>{var l,n,a,o;U.value||(U.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),$.value=!1},onLeave:e=>{var l,n,a,o;M.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;v("hidden",T("hidden",{trigger:B,cancelable:!1})),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),U.value=!1,K.value=!1,b.value&&requestAnimationFrame((()=>{b.value=!1})),requestAnimationFrame((()=>{A.value||(f.value=!1)})),null==E||E(B||""),q=void 0,E=void 0,B=void 0}};return{showRef:m,renderRef:f,renderBackdropRef:h,isVisible:M,isActive:K,trapActive:$,show:x,hide:C,toggle:S,throttleHide:j,throttleShow:z,buildTriggerableEvent:T,computedNoAnimation:P,localNoAnimation:b,localTemporaryHide:A,isLeaving:U,transitionProps:{...r,...i.transitionProps,...J},lazyLoadCompleted:N,markLazyLoadCompleted:O,contentShowing:Z,backdropReady:G,backdropVisible:D,backdropTransitionProps:{...r,onBeforeEnter:()=>{requestAnimationFrame((()=>{requestAnimationFrame((()=>{D.value=!0}))})),G.value=!1},onAfterEnter:()=>{G.value=!0},onBeforeLeave:()=>{D.value=!1},onAfterLeave:()=>{G.value=!1,requestAnimationFrame((()=>{h.value=!1}))}}}}; //# sourceMappingURL=useShowHide-DS_Hoj66.js.map