huzhan_wechat_app/vant/mixins/transition.js
2020-06-09 16:17:23 +08:00

91 lines
3.0 KiB
JavaScript

Object.defineProperty(exports, "__esModule", {
value: !0
}), exports.transition = void 0;
var e = require("../common/utils"), t = function(e) {
return {
enter: "van-" + e + "-enter van-" + e + "-enter-active enter-class enter-active-class",
"enter-to": "van-" + e + "-enter-to van-" + e + "-enter-active enter-to-class enter-active-class",
leave: "van-" + e + "-leave van-" + e + "-leave-active leave-class leave-active-class",
"leave-to": "van-" + e + "-leave-to van-" + e + "-leave-active leave-to-class leave-active-class"
};
}, s = function() {
return new Promise(function(e) {
return setTimeout(e, 1e3 / 30);
});
};
exports.transition = function(n) {
return Behavior({
properties: {
customStyle: String,
show: {
type: Boolean,
value: n,
observer: "observeShow"
},
duration: {
type: [ Number, Object ],
value: 300,
observer: "observeDuration"
},
name: {
type: String,
value: "fade",
observer: "updateClasses"
}
},
data: {
type: "",
inited: !1,
display: !1,
classNames: t("fade")
},
attached: function() {
this.data.show && this.show();
},
methods: {
observeShow: function(e) {
e ? this.show() : this.leave();
},
updateClasses: function(e) {
this.set({
classNames: t(e)
});
},
show: function() {
var t = this, n = this.data, a = n.classNames, i = n.duration, r = (0, e.isObj)(i) ? i.leave : i;
Promise.resolve().then(s).then(function() {
return t.set({
inited: !0,
display: !0,
classes: a.enter,
currentDuration: r
});
}).then(s).then(function() {
return t.set({
classes: a["enter-to"]
});
});
},
leave: function() {
var t = this, n = this.data, a = n.classNames, i = n.duration, r = (0, e.isObj)(i) ? i.leave : i;
0 != +r ? Promise.resolve().then(s).then(function() {
return t.set({
classes: a.leave,
currentDuration: r
});
}).then(s).then(function() {
return t.set({
classes: a["leave-to"]
});
}) : this.onTransitionEnd();
},
onTransitionEnd: function() {
this.data.show || (this.set({
display: !1
}), this.$emit("transitionEnd"));
}
}
});
};