UNPKG

element-nice-ui

Version:

A Component Library for Vue.js.

36 lines (35 loc) 1.16 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = _default; /** * Bind after-leave event for vue instance. Make sure after-leave is called in any browsers. * * @param {Vue} instance Vue instance. * @param {Function} callback callback of after-leave event * @param {Number} speed the speed of transition, default value is 300ms * @param {Boolean} once weather bind after-leave once. default value is false. */ function _default(instance, callback) { let speed = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 300; let once = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : false; if (!instance || !callback) throw new Error('instance & callback is required'); let called = false; const afterLeaveCallback = function afterLeaveCallback() { if (called) return; called = true; if (callback) { callback.apply(null, arguments); } }; if (once) { instance.$once('after-leave', afterLeaveCallback); } else { instance.$on('after-leave', afterLeaveCallback); } setTimeout(() => { afterLeaveCallback(); }, speed + 100); } ;