UNPKG

ivue-material-plus

Version:

A high quality UI components Library with Vue.js

64 lines (61 loc) 1.97 kB
import { h, Transition } from 'vue'; import { addClass, removeClass } from './assist.mjs'; const handle = { onBeforeEnter(el) { addClass(el, "collapse-transition"); if (!el.dataset) el.dataset = {}; el.dataset.oldPaddingTop = el.style.paddingTop; el.dataset.oldPaddingBottom = el.style.paddingBottom; el.style.height = "0"; el.style.paddingTop = 0; el.style.paddingBottom = 0; }, onEnter(el) { el.dataset.oldOverflow = el.style.overflow; if (el.scrollHeight !== 0) { el.style.height = `${el.scrollHeight}px`; el.style.paddingTop = el.dataset.oldPaddingTop; el.style.paddingBottom = el.dataset.paddingBottom; } else { el.style.height = ""; el.style.paddingTop = el.dataset.oldPaddingTop; el.style.paddingBottom = el.dataset.oldPaddingBottom; } el.style.overflow = "hidden"; }, onAfterEnter(el) { removeClass(el, "collapse-transition"); el.style.height = ""; el.style.overflow = el.dataset.oldOverflow; }, onBeforeLeave(el) { if (!el.dataset) el.dataset = {}; el.dataset.oldPaddingTop = el.style.paddingTop; el.dataset.oldPaddingBottom = el.style.paddingBottom; el.dataset.oldOverflow = el.style.overflow; el.style.height = `${el.scrollHeight}px`; el.style.overflow = "hidden"; }, onLeave(el) { if (el.scrollHeight !== 0) { addClass(el, "collapse-transition"); el.style.height = 0; el.style.paddingTop = 0; el.style.paddingBottom = 0; } }, onAfterLeave(el) { removeClass(el, "collapse-transition"); el.style.height = ""; el.style.overflow = el.dataset.oldOverflow; el.style.paddingTop = el.dataset.oldPaddingTop; el.style.paddingBottom = el.dataset.oldPaddingBottom; } }; const collapseTransition = (props, context) => { return h(Transition, handle, context.slots); }; export { collapseTransition as default }; //# sourceMappingURL=collapse-transition.mjs.map