You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

0 lines
7.8 KiB

1 month ago
  1. {"ast":null,"code":"import { defineComponent, openBlock, createBlock, Transition, mergeProps, unref, toHandlers, withCtx, renderSlot } from 'vue';\nimport _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';\nimport { useNamespace } from '../../../hooks/use-namespace/index.mjs';\nconst __default__ = defineComponent({\n name: \"ElCollapseTransition\"\n});\nconst _sfc_main = /* @__PURE__ */defineComponent({\n ...__default__,\n setup(__props) {\n const ns = useNamespace(\"collapse-transition\");\n const reset = el => {\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 const on = {\n beforeEnter(el) {\n if (!el.dataset) el.dataset = {};\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 el.style.maxHeight = 0;\n el.style.paddingTop = 0;\n el.style.paddingBottom = 0;\n },\n enter(el) {\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 el.style.paddingTop = el.dataset.oldPaddingTop;\n el.style.paddingBottom = el.dataset.oldPaddingBottom;\n el.style.overflow = \"hidden\";\n });\n },\n afterEnter(el) {\n el.style.maxHeight = \"\";\n el.style.overflow = el.dataset.oldOverflow;\n },\n enterCancelled(el) {\n reset(el);\n },\n beforeLeave(el) {\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 el.style.maxHeight = `${el.scrollHeight}px`;\n el.style.overflow = \"hidden\";\n },\n leave(el) {\n if (el.scrollHeight !== 0) {\n el.style.maxHeight = 0;\n el.style.paddingTop = 0;\n el.style.paddingBottom = 0;\n }\n },\n afterLeave(el) {\n reset(el);\n },\n leaveCancelled(el) {\n reset(el);\n }\n };\n return (_ctx, _cache) => {\n return openBlock(), createBlock(Transition, mergeProps({\n name: unref(ns).b()\n }, toHandlers(on)), {\n default: withCtx(() => [renderSlot(_ctx.$slots, \"default\")]),\n _: 3\n }, 16, [\"name\"]);\n };\n }\n});\nvar CollapseTransition = /* @__PURE__ */_export_sfc(_sfc_main, [[\"__file\", \"collapse-transition.vue\"]]);\nexport { CollapseTransition as default };","map":{"version":3,"names":["name","ns","useNamespace","reset","el","style","maxHeight","overflow","dataset","oldOverflow","paddingTop","oldPaddingTop","paddingBottom","oldPaddingBottom","on","beforeEnter","height","elExistsHeight","enter","requestAnimationFrame","scrollHeight","afterEnter","enterCancelled","beforeLeave","leave","afterLeave","leaveCancelled"],"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<script lang=\"ts\" setup>\nimport { useNamespace } from '@element-plus/hooks'\nimport type { RendererElement } from '@vue/runtime-core'\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: Ren