123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263 |
- import { defineComponent, openBlock, createBlock, Transition, mergeProps, withCtx, renderSlot } from 'vue';
- import '../../../hooks/index.mjs';
- import '../../../utils/index.mjs';
- import _export_sfc from '../../../_virtual/plugin-vue_export-helper.mjs';
- import { useNamespace } from '../../../hooks/use-namespace/index.mjs';
- import { addClass, removeClass, hasClass } from '../../../utils/dom/style.mjs';
- const _sfc_main = defineComponent({
- name: "ElMenuCollapseTransition",
- setup() {
- const ns = useNamespace("menu");
- const listeners = {
- onBeforeEnter: (el) => el.style.opacity = "0.2",
- onEnter(el, done) {
- addClass(el, `${ns.namespace.value}-opacity-transition`);
- el.style.opacity = "1";
- done();
- },
- onAfterEnter(el) {
- removeClass(el, `${ns.namespace.value}-opacity-transition`);
- el.style.opacity = "";
- },
- onBeforeLeave(el) {
- if (!el.dataset) {
- ;
- el.dataset = {};
- }
- if (hasClass(el, ns.m("collapse"))) {
- removeClass(el, ns.m("collapse"));
- el.dataset.oldOverflow = el.style.overflow;
- el.dataset.scrollWidth = el.clientWidth.toString();
- addClass(el, ns.m("collapse"));
- } else {
- addClass(el, ns.m("collapse"));
- el.dataset.oldOverflow = el.style.overflow;
- el.dataset.scrollWidth = el.clientWidth.toString();
- removeClass(el, ns.m("collapse"));
- }
- el.style.width = `${el.scrollWidth}px`;
- el.style.overflow = "hidden";
- },
- onLeave(el) {
- addClass(el, "horizontal-collapse-transition");
- el.style.width = `${el.dataset.scrollWidth}px`;
- }
- };
- return {
- listeners
- };
- }
- });
- function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
- return openBlock(), createBlock(Transition, mergeProps({ mode: "out-in" }, _ctx.listeners), {
- default: withCtx(() => [
- renderSlot(_ctx.$slots, "default")
- ]),
- _: 3
- }, 16);
- }
- var ElMenuCollapseTransition = /* @__PURE__ */ _export_sfc(_sfc_main, [["render", _sfc_render], ["__file", "/home/runner/work/element-plus/element-plus/packages/components/menu/src/menu-collapse-transition.vue"]]);
- export { ElMenuCollapseTransition as default };
- //# sourceMappingURL=menu-collapse-transition.mjs.map
|