{"version":3,"file":"collapse-transition.mjs","sources":["../../../../src/utils/collapse-transition.ts"],"sourcesContent":["import { h, Transition } from 'vue';\r\nimport { addClass, removeClass } from './assist';\r\n\r\nconst handle = {\r\n  onBeforeEnter(el) {\r\n    addClass(el, 'collapse-transition');\r\n\r\n    if (!el.dataset) el.dataset = {};\r\n\r\n    el.dataset.oldPaddingTop = el.style.paddingTop;\r\n    el.dataset.oldPaddingBottom = el.style.paddingBottom;\r\n\r\n    // 初始化\r\n    el.style.height = '0';\r\n    el.style.paddingTop = 0;\r\n    el.style.paddingBottom = 0;\r\n  },\r\n  onEnter(el) {\r\n    el.dataset.oldOverflow = el.style.overflow;\r\n\r\n    // 设置高度\r\n    if (el.scrollHeight !== 0) {\r\n      el.style.height = `${el.scrollHeight}px`;\r\n      el.style.paddingTop = el.dataset.oldPaddingTop;\r\n      el.style.paddingBottom = el.dataset.paddingBottom;\r\n    } else {\r\n      el.style.height = '';\r\n      el.style.paddingTop = el.dataset.oldPaddingTop;\r\n      el.style.paddingBottom = el.dataset.oldPaddingBottom;\r\n    }\r\n\r\n    el.style.overflow = 'hidden';\r\n  },\r\n  onAfterEnter(el) {\r\n    //对于safari：删除类然后重置高度是必要的\r\n    removeClass(el, 'collapse-transition');\r\n    el.style.height = '';\r\n    el.style.overflow = el.dataset.oldOverflow;\r\n  },\r\n  onBeforeLeave(el) {\r\n    if (!el.dataset) el.dataset = {};\r\n\r\n    el.dataset.oldPaddingTop = el.style.paddingTop;\r\n    el.dataset.oldPaddingBottom = el.style.paddingBottom;\r\n    el.dataset.oldOverflow = el.style.overflow;\r\n\r\n    // 设置高度\r\n    el.style.height = `${el.scrollHeight}px`;\r\n    el.style.overflow = 'hidden';\r\n  },\r\n  onLeave(el) {\r\n    if (el.scrollHeight !== 0) {\r\n      // for safari: add class after set height, or it will jump to zero height suddenly, weired\r\n      addClass(el, 'collapse-transition');\r\n\r\n      el.style.height = 0;\r\n      el.style.paddingTop = 0;\r\n      el.style.paddingBottom = 0;\r\n    }\r\n  },\r\n  onAfterLeave(el) {\r\n    removeClass(el, 'collapse-transition');\r\n\r\n    el.style.height = '';\r\n    el.style.overflow = el.dataset.oldOverflow;\r\n    el.style.paddingTop = el.dataset.oldPaddingTop;\r\n    el.style.paddingBottom = el.dataset.oldPaddingBottom;\r\n  },\r\n};\r\n\r\nconst collapseTransition = (props, context) => {\r\n  return h(Transition, handle, context.slots);\r\n};\r\n\r\nexport default collapseTransition;\r\n"],"names":[],"mappings":"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"}