{"version":3,"file":"menu-collapse-transition.vue.mjs","sources":["../../../../../packages/components/menu/src/menu-collapse-transition.vue"],"sourcesContent":["<template>\n  <transition mode=\"out-in\" v-bind=\"listeners\">\n    <slot />\n  </transition>\n</template>\n<script lang=\"ts\">\nimport { defineComponent } from 'vue'\nimport { addClass, removeClass, hasClass } from '@element-ultra/utils'\n\nimport type { TransitionProps, BaseTransitionProps } from 'vue'\n\nexport default defineComponent({\n  name: 'ElMenuCollapseTransition',\n  setup() {\n    const listeners = {\n      onBeforeEnter: (el) => (el.style.opacity = '0.2'),\n      onEnter(el, done) {\n        addClass(el, 'el-opacity-transition')\n        el.style.opacity = '1'\n        done()\n      },\n\n      onAfterEnter(el) {\n        removeClass(el, 'el-opacity-transition')\n        el.style.opacity = ''\n      },\n\n      onBeforeLeave(el) {\n        if (!el.dataset) {\n          ;(el as any).dataset = {}\n        }\n\n        if (hasClass(el, 'el-menu--collapse')) {\n          removeClass(el, 'el-menu--collapse')\n          el.dataset.oldOverflow = el.style.overflow\n          el.dataset.scrollWidth = el.clientWidth.toString()\n          addClass(el, 'el-menu--collapse')\n        } else {\n          addClass(el, 'el-menu--collapse')\n          el.dataset.oldOverflow = el.style.overflow\n          el.dataset.scrollWidth = el.clientWidth.toString()\n          removeClass(el, 'el-menu--collapse')\n        }\n\n        el.style.width = `${el.scrollWidth}px`\n        el.style.overflow = 'hidden'\n      },\n\n      onLeave(el: HTMLElement) {\n        addClass(el, 'horizontal-collapse-transition')\n        el.style.width = `${el.dataset.scrollWidth}px`\n      },\n    } as BaseTransitionProps<HTMLElement> as TransitionProps\n\n    return {\n      listeners,\n    }\n  },\n})\n</script>\n"],"names":["_openBlock","_createBlock","_Transition","_mergeProps","_withCtx"],"mappings":";;;;AAEY,SAAA,YAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,QAAA,EAAA;SAARA,WAAQ,EAAAC,WAAA;AAAA,IAAAC,UAAA;AAAA,IAAAC,WAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,KAAA,SAAA,CAAA;AAAA,IAAA;AAAA,MAAA,OAAA,EAAAC,QAAA,MAAA;AAAA;;;;;;;;;;;;;"}