mand-mobile
Version:
A Vue.js 2.0 Mobile UI Toolkit
209 lines (184 loc) • 6.41 kB
JavaScript
(function (global, factory) {
if (typeof define === "function" && define.amd) {
define(['exports', 'vue', './toast'], factory);
} else if (typeof exports !== "undefined") {
factory(exports, require('vue'), require('./toast'));
} else {
var mod = {
exports: {}
};
factory(mod.exports, global.vue, global.toast);
global.index = mod.exports;
}
})(this, function (exports, _vue, _toast) {
'use strict';
Object.defineProperty(exports, "__esModule", {
value: true
});
var _vue2 = _interopRequireDefault(_vue);
var _toast2 = _interopRequireDefault(_toast);
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : {
default: obj
};
}
/**
* Toast factory
*
* @param {Object} props
* @return {Toast}
*/
var Toast = function Toast(_ref) {
var _ref$content = _ref.content,
content = _ref$content === undefined ? '' : _ref$content,
_ref$icon = _ref.icon,
icon = _ref$icon === undefined ? '' : _ref$icon,
_ref$iconSvg = _ref.iconSvg,
iconSvg = _ref$iconSvg === undefined ? false : _ref$iconSvg,
_ref$duration = _ref.duration,
duration = _ref$duration === undefined ? 3000 : _ref$duration,
_ref$position = _ref.position,
position = _ref$position === undefined ? 'center' : _ref$position,
_ref$hasMask = _ref.hasMask,
hasMask = _ref$hasMask === undefined ? false : _ref$hasMask,
_ref$parentNode = _ref.parentNode,
parentNode = _ref$parentNode === undefined ? document.body : _ref$parentNode,
_ref$square = _ref.square,
square = _ref$square === undefined ? false : _ref$square;
var vm = Toast._instance;
if (!vm) {
var ToastConstructor = _vue2.default.extend(_toast2.default);
vm = Toast._instance = new ToastConstructor({
propsData: {
content: content,
icon: icon,
iconSvg: iconSvg,
duration: duration,
position: position,
hasMask: hasMask,
square: square
}
}).$mount();
}
if (!vm.$el.parentNode) {
parentNode.appendChild(vm.$el);
}
vm.content = content;
vm.icon = icon;
vm.iconSvg = iconSvg;
vm.duration = duration;
vm.position = position;
vm.hasMask = hasMask;
vm.square = square;
// vm.visible = true
// vm.fire()
vm.show();
return vm;
};
// There is only one toast singleton
Toast._instance = null;
/**
* Hide toast
*/
Toast.hide = function () {
var ToastConstructor = _vue2.default.extend(_toast2.default);
if (Toast._instance instanceof ToastConstructor && Toast._instance.visible) {
Toast._instance.hide();
}
};
/**
* Show info toast
* @param {string} content
* @param {number=} [duration=3000]
* @param {boolean=} [hasMask=false]
* @param {node=} [parentNode=document.body]
* @returns {Toast}
*/
Toast.info = function () {
var content = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
var duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 3000;
var hasMask = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
var parentNode = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : document.body;
var square = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
return Toast({
icon: '',
content: content,
duration: duration,
hasMask: hasMask,
parentNode: parentNode,
square: square
});
};
/**
* Show succeed toast
* @param {string} content
* @param {number=} [duration=3000]
* @param {boolean=} [hasMask=false]
* @param {node=} [parentNode=document.body]
* @returns {Toast}
*/
Toast.succeed = function () {
var content = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
var duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 3000;
var hasMask = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
var parentNode = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : document.body;
var square = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
return Toast({
icon: 'success',
content: content,
duration: duration,
hasMask: hasMask,
parentNode: parentNode,
square: square
});
};
/**
* Show failed toast
* @param {string} content
* @param {number=} [duration=3000]
* @param {boolean=} [hasMask=true]
* @param {node=} [parentNode=document.body]
* @returns {Toast}
*/
Toast.failed = function () {
var content = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
var duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 3000;
var hasMask = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
var parentNode = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : document.body;
var square = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
return Toast({
icon: 'fail',
content: content,
duration: duration,
hasMask: hasMask,
parentNode: parentNode,
square: square
});
};
/**
* Show loading toast
* @param {string} content
* @param {number=} [duration=0]
* @param {boolean=} [hasMask=false]
* @param {node=} [parentNode=document.body]
* @returns {Toast}
*/
Toast.loading = function () {
var content = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
var duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;
var hasMask = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
var parentNode = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : document.body;
var square = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : false;
return Toast({
icon: 'spinner',
iconSvg: true,
content: content,
duration: duration,
hasMask: hasMask,
parentNode: parentNode,
square: square
});
};
Toast.component = _toast2.default;
exports.default = Toast;
});