"use strict"; var common_vendor = require("../../../../common/vendor.js"); var uni_modules_uviewPlus_libs_function_index = require("../../libs/function/index.js"); const getClassNames = (name) => ({ enter: `u-${name}-enter u-${name}-enter-active`, "enter-to": `u-${name}-enter-to u-${name}-enter-active`, leave: `u-${name}-leave u-${name}-leave-active`, "leave-to": `u-${name}-leave-to u-${name}-leave-active` }); var transition = { methods: { clickHandler() { this.$emit("click"); }, async vueEnter() { const classNames = getClassNames(this.mode); this.status = "enter"; this.$emit("beforeEnter"); this.inited = true; this.display = true; this.classes = classNames.enter; await common_vendor.nextTick(); { await uni_modules_uviewPlus_libs_function_index.sleep(20); this.$emit("enter"); this.transitionEnded = false; this.$emit("afterEnter"); this.classes = classNames["enter-to"]; } }, async vueLeave() { if (!this.display) return; const classNames = getClassNames(this.mode); this.status = "leave"; this.$emit("beforeLeave"); this.classes = classNames.leave; await common_vendor.nextTick(); { this.transitionEnded = false; this.$emit("leave"); setTimeout(this.onTransitionEnd, this.duration); this.classes = classNames["leave-to"]; } }, onTransitionEnd() { if (this.transitionEnded) return; this.transitionEnded = true; this.$emit(this.status === "leave" ? "afterLeave" : "afterEnter"); if (!this.show && this.display) { this.display = false; this.inited = false; } } } }; exports.transition = transition;