{"version":3,"file":"collapse-transition.vue2.mjs","sources":["../../../../../../packages/components/collapse-transition/src/collapse-transition.vue"],"sourcesContent":["<template>\n  <transition :name=\"ns.b()\" v-on=\"on\">\n    <slot />\n  </transition>\n</template>\n\n<script lang=\"ts\" setup>\nimport { useNamespace } from '@element-plus/hooks'\n\nimport type { RendererElement } from 'vue'\n\ndefineOptions({\n  name: 'ElCollapseTransition',\n})\n\nconst ns = useNamespace('collapse-transition')\n\nconst reset = (el: RendererElement) => {\n  el.style.maxHeight = ''\n  el.style.overflow = el.dataset.oldOverflow\n  el.style.paddingTop = el.dataset.oldPaddingTop\n  el.style.paddingBottom = el.dataset.oldPaddingBottom\n}\n\nconst on = {\n  beforeEnter(el: RendererElement) {\n    if (!el.dataset) el.dataset = {}\n\n    el.dataset.oldPaddingTop = el.style.paddingTop\n    el.dataset.oldPaddingBottom = el.style.paddingBottom\n    if (el.style.height) el.dataset.elExistsHeight = el.style.height\n\n    el.style.maxHeight = 0\n    el.style.paddingTop = 0\n    el.style.paddingBottom = 0\n  },\n\n  enter(el: RendererElement) {\n    requestAnimationFrame(() => {\n      el.dataset.oldOverflow = el.style.overflow\n      if (el.dataset.elExistsHeight) {\n        el.style.maxHeight = el.dataset.elExistsHeight\n      } else if (el.scrollHeight !== 0) {\n        el.style.maxHeight = `${el.scrollHeight}px`\n      } else {\n        el.style.maxHeight = 0\n      }\n\n      el.style.paddingTop = el.dataset.oldPaddingTop\n      el.style.paddingBottom = el.dataset.oldPaddingBottom\n      el.style.overflow = 'hidden'\n    })\n  },\n\n  afterEnter(el: RendererElement) {\n    el.style.maxHeight = ''\n    el.style.overflow = el.dataset.oldOverflow\n  },\n\n  enterCancelled(el: RendererElement) {\n    reset(el)\n  },\n\n  beforeLeave(el: RendererElement) {\n    if (!el.dataset) el.dataset = {}\n    el.dataset.oldPaddingTop = el.style.paddingTop\n    el.dataset.oldPaddingBottom = el.style.paddingBottom\n    el.dataset.oldOverflow = el.style.overflow\n\n    el.style.maxHeight = `${el.scrollHeight}px`\n    el.style.overflow = 'hidden'\n  },\n\n  leave(el: RendererElement) {\n    if (el.scrollHeight !== 0) {\n      el.style.maxHeight = 0\n      el.style.paddingTop = 0\n      el.style.paddingBottom = 0\n    }\n  },\n\n  afterLeave(el: RendererElement) {\n    reset(el)\n  },\n\n  leaveCancelled(el: RendererElement) {\n    reset(el)\n  },\n}\n</script>\n"],"names":["_openBlock","_createBlock","_Transition","_mergeProps","_unref","_toHandlers","_renderSlot"],"mappings":"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"}