element-plus
Version:
A Component Library for Vue 3
1 lines • 3.7 kB
Source Map (JSON)
{"version":3,"file":"menu-collapse-transition.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\n<script lang=\"ts\" setup>\nimport { useNamespace } from '@element-plus/hooks'\nimport { addClass, hasClass, removeClass } from '@element-plus/utils'\n\nimport type { BaseTransitionProps, TransitionProps } from 'vue'\n\ndefineOptions({\n name: 'ElMenuCollapseTransition',\n})\n\nconst ns = useNamespace('menu')\nconst listeners = {\n onBeforeEnter: (el) => (el.style.opacity = '0.2'),\n onEnter(el, done) {\n addClass(el, `${ns.namespace.value}-opacity-transition`)\n el.style.opacity = '1'\n done()\n },\n\n onAfterEnter(el) {\n removeClass(el, `${ns.namespace.value}-opacity-transition`)\n el.style.opacity = ''\n },\n\n onBeforeLeave(el) {\n if (!el.dataset) (el as any).dataset = {}\n\n if (hasClass(el, ns.m('collapse'))) {\n removeClass(el, ns.m('collapse'))\n el.dataset.oldOverflow = el.style.overflow\n el.dataset.scrollWidth = el.clientWidth.toString()\n addClass(el, ns.m('collapse'))\n } else {\n addClass(el, ns.m('collapse'))\n el.dataset.oldOverflow = el.style.overflow\n el.dataset.scrollWidth = el.clientWidth.toString()\n removeClass(el, ns.m('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</script>\n"],"names":["_openBlock","_createBlock","_Transition","_mergeProps","_withCtx","_renderSlot"],"mappings":";;;;;;;;;;;AAgBM,IAAA,MAAA,EAAA,GAAK,aAAa,MAAM,CAAA,CAAA;AAC9B,IAAA,MAAM,SAAY,GAAA;AAAA,MAChB,aAAe,EAAA,CAAC,EAAQ,KAAA,EAAA,CAAG,MAAM,OAAU,GAAA,KAAA;AAAA,MAC3C,OAAA,CAAQ,IAAI,IAAM,EAAA;AAChB,QAAA,QAAA,CAAS,EAAI,EAAA,CAAA,EAAG,EAAG,CAAA,SAAA,CAAU,KAA0B,CAAA,mBAAA,CAAA,CAAA,CAAA;AACvD,QAAA,EAAA,CAAG,MAAM,OAAU,GAAA,GAAA,CAAA;AACd,QAAA,IAAA,EAAA,CAAA;AAAA,OACP;AAAA,MAEA,aAAa,EAAI,EAAA;AACf,QAAA,WAAA,CAAY,EAAI,EAAA,CAAA,EAAG,EAAG,CAAA,SAAA,CAAU,KAA0B,CAAA,mBAAA,CAAA,CAAA,CAAA;AAC1D,QAAA,EAAA,CAAG,MAAM,OAAU,GAAA,EAAA,CAAA;AAAA,OACrB;AAAA,MAEA,cAAc,EAAI,EAAA;AAChB,QAAA,IAAI,CAAC,EAAG,CAAA,OAAA;AAAU,UAAA,EAAA,CAAW,UAAU,EAAC,CAAA;AAExC,QAAA,IAAI,SAAS,EAAI,EAAA,EAAA,CAAG,CAAE,CAAA,UAAU,CAAC,CAAG,EAAA;AAClC,UAAA,WAAA,CAAY,EAAI,EAAA,EAAA,CAAG,CAAE,CAAA,UAAU,CAAC,CAAA,CAAA;AAC7B,UAAA,EAAA,CAAA,OAAA,CAAQ,WAAc,GAAA,EAAA,CAAG,KAAM,CAAA,QAAA,CAAA;AAClC,UAAA,EAAA,CAAG,OAAQ,CAAA,WAAA,GAAc,EAAG,CAAA,WAAA,CAAY,QAAS,EAAA,CAAA;AACjD,UAAA,QAAA,CAAS,EAAI,EAAA,EAAA,CAAG,CAAE,CAAA,UAAU,CAAC,CAAA,CAAA;AAAA,SACxB,MAAA;AACL,UAAA,QAAA,CAAS,EAAI,EAAA,EAAA,CAAG,CAAE,CAAA,UAAU,CAAC,CAAA,CAAA;AAC1B,UAAA,EAAA,CAAA,OAAA,CAAQ,WAAc,GAAA,EAAA,CAAG,KAAM,CAAA,QAAA,CAAA;AAClC,UAAA,EAAA,CAAG,OAAQ,CAAA,WAAA,GAAc,EAAG,CAAA,WAAA,CAAY,QAAS,EAAA,CAAA;AACjD,UAAA,WAAA,CAAY,EAAI,EAAA,EAAA,CAAG,CAAE,CAAA,UAAU,CAAC,CAAA,CAAA;AAAA,SAClC;AAEA,QAAG,EAAA,CAAA,KAAA,CAAM,KAAQ,GAAA,CAAA,EAAG,EAAG,CAAA,WAAA,CAAA,EAAA,CAAA,CAAA;AACvB,QAAA,EAAA,CAAG,MAAM,QAAW,GAAA,QAAA,CAAA;AAAA,OACtB;AAAA,MAEA,QAAQ,EAAiB,EAAA;AACvB,QAAA,QAAA,CAAS,IAAI,gCAAgC,CAAA,CAAA;AAC7C,QAAA,EAAA,CAAG,KAAM,CAAA,KAAA,GAAQ,CAAG,EAAA,EAAA,CAAG,OAAQ,CAAA,WAAA,CAAA,EAAA,CAAA,CAAA;AAAA,OACjC;AAAA,KACF,CAAA;;AApDE,MAAA,OAAAA,WAAA,EAAAC,WAAA;AAAA,QAEaC,UAAA;AAAA,QAFbC,UAEa,CAAA,EAFD,IAAK,EAAA,QAAA,IAAiB,SAAS,CAAA;AAAA,QAAA;AAAA,UAAA,OAAA,EAAAC,QACzC,MAAQ;AAAA,YAARC,UAAA,CAAQ,IAAA,CAAA,MAAA,EAAA,SAAA,CAAA;AAAA,WAAA,CAAA;AAAA;;;;;;;;;;;"}