# fluent-cart/trunk/assets/chunks/TransitionAccordion.js

FluentCart A New Era of eCommerce – Faster, Lighter, and Simpler, version trunk. 2 lines.

- Page: https://pluginprobe.com/plugins/fluent-cart/trunk/code/assets/chunks/TransitionAccordion.js
- Raw: https://pluginprobe.com/plugins/fluent-cart/trunk/raw/assets/chunks/TransitionAccordion.js
- Modified: 2026-09-29T12:49:18+00:00

Line numbers below start at 1. Link to a line or a range by appending a fragment to the
page URL, for example `https://pluginprobe.com/plugins/fluent-cart/trunk/code/assets/chunks/TransitionAccordion.js#L10-L20`.

```javascript
import{k as m,v as r,x as u,j as v,l as w,z as g,T as _}from"./vue.esm-bundler.js?ver=1.7.0";import{_ as z}from"./_plugin-vue_export-helper.js?ver=1.7.0";const $={key:0},x={__name:"TransitionAccordion",props:{visible:{type:Boolean,default:!1},duration:{type:Number,default:300},horizontal:{type:Boolean,default:!1}},setup(n){const o=n,e=o.duration,c=t=>{o.horizontal?t.style.width="0":t.style.height="0",t.style.opacity="0",t.style.overflow="hidden"},h=(t,i)=>{if(o.horizontal){const s=t.scrollWidth+"px";t.style.transition=`width ${e}ms ease, opacity ${e}ms ease`,requestAnimationFrame(()=>{t.style.width=s,t.style.opacity="1"})}else{const s=t.scrollHeight+"px";t.style.transition=`height ${e}ms ease, opacity ${e}ms ease`,requestAnimationFrame(()=>{t.style.height=s,t.style.opacity="1"})}setTimeout(()=>i(),e)},l=t=>{o.horizontal?t.style.width="auto":t.style.height="auto",t.style.overflow=""},d=t=>{o.horizontal?t.style.width=t.scrollWidth+"px":t.style.height=t.scrollHeight+"px",t.style.opacity="1",t.style.overflow="hidden"},y=(t,i)=>{t.offsetHeight,o.horizontal?(t.style.transition=`width ${e}ms ease, opacity ${e}ms ease`,t.style.width="0"):(t.style.transition=`height ${e}ms ease, opacity ${e}ms ease`,t.style.height="0"),t.style.opacity="0";const s=o.horizontal?"width":"height",a=p=>{p.propertyName===s&&(t.removeEventListener("transitionend",a),i())};t.addEventListener("transitionend",a)},f=t=>{};return(t,i)=>(r(),m(_,{onBeforeEnter:c,onEnter:h,onAfterEnter:l,onBeforeLeave:d,onLeave:y,onAfterLeave:f,mode:"in-out"},{default:u(()=>[n.visible?(r(),v("div",$,[g(t.$slots,"default",{},void 0,!0)])):w("",!0)]),_:3}))}},L=z(x,[["__scopeId","data-v-10073793"]]);export{L as T};

```
