vimo-dt
Version:
A Vue2.x UI Project For Mobile & HyBrid
73 lines (64 loc) • 1.93 kB
JavaScript
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _focusOutActiveElement = require('./focus-out-active-element');
var _focusOutActiveElement2 = _interopRequireDefault(_focusOutActiveElement);
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
var NOOP = function NOOP() {};
exports.default = {
data: function data() {
return {
enabled: true,
disableDuring: 200,
isActive: false,
dismissCallback: NOOP,
presentCallback: NOOP };
},
methods: {
beforeEnter: function beforeEnter() {
this.$emit('animate:beforeEnter');
this.$app && this.$app.setEnabled(false, this.disableDuring);
this.enabled = false;
(0, _focusOutActiveElement2.default)();
},
afterEnter: function afterEnter() {
this.$emit('animate:afterEnter');
this.presentCallback();
this.enabled = true;
},
beforeLeave: function beforeLeave() {
this.$emit('animate:beforeLeave');
this.$app && this.$app.setEnabled(false, this.disableDuring);
this.enabled = false;
(0, _focusOutActiveElement2.default)();
},
afterLeave: function afterLeave() {
this.$emit('animate:afterLeave');
this.dismissCallback();
this.enabled = true;
},
present: function present() {
var _this = this;
this.isActive = true;
this.$emit('animate:present');
return new Promise(function (resolve) {
_this.presentCallback = resolve;
});
},
dismiss: function dismiss(data) {
var _this2 = this;
if (this.isActive) {
this.isActive = false;
this.$emit('animate:dismiss', data);
return new Promise(function (resolve) {
_this2.dismissCallback = resolve;
});
} else {
return new Promise(function (resolve) {
resolve();
});
}
}
}
};