first
This commit is contained in:
189
node_modules/vant/es/toast/index.js
generated
vendored
Normal file
189
node_modules/vant/es/toast/index.js
generated
vendored
Normal file
@ -0,0 +1,189 @@
|
||||
import _extends from "@babel/runtime/helpers/esm/extends";
|
||||
import Vue from 'vue';
|
||||
import VueToast from './Toast';
|
||||
import { isObject, isServer } from '../utils';
|
||||
import { removeNode } from '../utils/dom/node';
|
||||
var defaultOptions = {
|
||||
icon: '',
|
||||
type: 'text',
|
||||
// @deprecated
|
||||
mask: false,
|
||||
value: true,
|
||||
message: '',
|
||||
className: '',
|
||||
overlay: false,
|
||||
onClose: null,
|
||||
onOpened: null,
|
||||
duration: 2000,
|
||||
iconPrefix: undefined,
|
||||
position: 'middle',
|
||||
transition: 'van-fade',
|
||||
forbidClick: false,
|
||||
loadingType: undefined,
|
||||
getContainer: 'body',
|
||||
overlayStyle: null,
|
||||
closeOnClick: false,
|
||||
closeOnClickOverlay: false
|
||||
}; // default options of specific type
|
||||
|
||||
var defaultOptionsMap = {};
|
||||
var queue = [];
|
||||
var multiple = false;
|
||||
|
||||
var currentOptions = _extends({}, defaultOptions);
|
||||
|
||||
function parseOptions(message) {
|
||||
if (isObject(message)) {
|
||||
return message;
|
||||
}
|
||||
|
||||
return {
|
||||
message: message
|
||||
};
|
||||
}
|
||||
|
||||
function isInDocument(element) {
|
||||
return document.body.contains(element);
|
||||
}
|
||||
|
||||
function createInstance() {
|
||||
/* istanbul ignore if */
|
||||
if (isServer) {
|
||||
return {};
|
||||
}
|
||||
|
||||
queue = queue.filter(function (item) {
|
||||
return !item.$el.parentNode || isInDocument(item.$el);
|
||||
});
|
||||
|
||||
if (!queue.length || multiple) {
|
||||
var toast = new (Vue.extend(VueToast))({
|
||||
el: document.createElement('div')
|
||||
});
|
||||
toast.$on('input', function (value) {
|
||||
toast.value = value;
|
||||
});
|
||||
queue.push(toast);
|
||||
}
|
||||
|
||||
return queue[queue.length - 1];
|
||||
} // transform toast options to popup props
|
||||
|
||||
|
||||
function transformOptions(options) {
|
||||
return _extends({}, options, {
|
||||
overlay: options.mask || options.overlay,
|
||||
mask: undefined,
|
||||
duration: undefined
|
||||
});
|
||||
}
|
||||
|
||||
function Toast(options) {
|
||||
if (options === void 0) {
|
||||
options = {};
|
||||
}
|
||||
|
||||
var toast = createInstance(); // should add z-index if previous toast has not disappeared
|
||||
|
||||
if (toast.value) {
|
||||
toast.updateZIndex();
|
||||
}
|
||||
|
||||
options = parseOptions(options);
|
||||
options = _extends({}, currentOptions, defaultOptionsMap[options.type || currentOptions.type], options);
|
||||
|
||||
if (process.env.NODE_ENV === 'development' && options.mask) {
|
||||
console.warn('[Vant] Toast: "mask" option is deprecated, use "overlay" option instead.');
|
||||
}
|
||||
|
||||
options.clear = function () {
|
||||
toast.value = false;
|
||||
|
||||
if (options.onClose) {
|
||||
options.onClose();
|
||||
options.onClose = null;
|
||||
}
|
||||
|
||||
if (multiple && !isServer) {
|
||||
toast.$on('closed', function () {
|
||||
clearTimeout(toast.timer);
|
||||
queue = queue.filter(function (item) {
|
||||
return item !== toast;
|
||||
});
|
||||
removeNode(toast.$el);
|
||||
toast.$destroy();
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
_extends(toast, transformOptions(options));
|
||||
|
||||
clearTimeout(toast.timer);
|
||||
|
||||
if (options.duration > 0) {
|
||||
toast.timer = setTimeout(function () {
|
||||
toast.clear();
|
||||
}, options.duration);
|
||||
}
|
||||
|
||||
return toast;
|
||||
}
|
||||
|
||||
var createMethod = function createMethod(type) {
|
||||
return function (options) {
|
||||
return Toast(_extends({
|
||||
type: type
|
||||
}, parseOptions(options)));
|
||||
};
|
||||
};
|
||||
|
||||
['loading', 'success', 'fail'].forEach(function (method) {
|
||||
Toast[method] = createMethod(method);
|
||||
});
|
||||
|
||||
Toast.clear = function (all) {
|
||||
if (queue.length) {
|
||||
if (all) {
|
||||
queue.forEach(function (toast) {
|
||||
toast.clear();
|
||||
});
|
||||
queue = [];
|
||||
} else if (!multiple) {
|
||||
queue[0].clear();
|
||||
} else {
|
||||
queue.shift().clear();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
Toast.setDefaultOptions = function (type, options) {
|
||||
if (typeof type === 'string') {
|
||||
defaultOptionsMap[type] = options;
|
||||
} else {
|
||||
_extends(currentOptions, type);
|
||||
}
|
||||
};
|
||||
|
||||
Toast.resetDefaultOptions = function (type) {
|
||||
if (typeof type === 'string') {
|
||||
defaultOptionsMap[type] = null;
|
||||
} else {
|
||||
currentOptions = _extends({}, defaultOptions);
|
||||
defaultOptionsMap = {};
|
||||
}
|
||||
};
|
||||
|
||||
Toast.allowMultiple = function (value) {
|
||||
if (value === void 0) {
|
||||
value = true;
|
||||
}
|
||||
|
||||
multiple = value;
|
||||
};
|
||||
|
||||
Toast.install = function () {
|
||||
Vue.use(VueToast);
|
||||
};
|
||||
|
||||
Vue.prototype.$toast = Toast;
|
||||
export default Toast;
|
Reference in New Issue
Block a user