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