ten-design-vue
Version:
ten-vue
125 lines (99 loc) • 3.75 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _vue = _interopRequireDefault(require("vue"));
var _notification = _interopRequireDefault(require("./notification"));
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
var wrapperinstances = {};
var types = ['success', 'warning', 'info', 'error'];
function getWrapPosition(position) {
var offset = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 14;
var style;
offset = isNaN(offset) ? offset : "".concat(offset, "px");
switch (position) {
case 'top-right':
style = {
top: offset,
right: '16px'
};
break;
case 'top-left':
style = {
top: offset,
left: '16px'
};
break;
case 'bottom-right':
style = {
bottom: offset,
right: '16px'
};
break;
case 'bottom-left':
style = {
bottom: offset,
left: '16px'
};
break;
default:
style = {
top: '14px',
right: '16px'
};
}
return style;
} // 获取 notice 外围容器实例
function getNoticesWrapperIns(_ref) {
var _ref$position = _ref.position,
position = _ref$position === void 0 ? 'top-right' : _ref$position,
_ref$offset = _ref.offset,
offset = _ref$offset === void 0 ? 14 : _ref$offset;
var id = "notification_wrap_".concat(position);
if (wrapperinstances[id]) {
return wrapperinstances[id];
}
var style = getWrapPosition(position, offset);
var attrs = {
style: style,
class: 'ten-notification_wrap'
};
var Profile = _vue.default.extend({
render: function render() {
var h = arguments[0];
return h("div", attrs);
}
});
var container = new Profile().$mount().$el;
wrapperinstances[id] = container;
document.body.appendChild(container);
return container;
}
function notification(options) {
options.position = options.position || 'top-right';
var NoticeConstructor = _vue.default.extend(_notification.default);
var wrapper = getNoticesWrapperIns(options);
var instance = new NoticeConstructor({
propsData: options
});
instance.visible = true;
instance.$mount();
if (options.position.indexOf('bottom') > -1) {
wrapper.insertBefore(instance.$el, wrapper.firstChild);
} else {
wrapper.appendChild(instance.$el);
}
}
types.forEach(function (type) {
notification[type] = function (args) {
return notification(_objectSpread(_objectSpread({}, args), {}, {
type: type
}));
};
});
var _default = notification;
exports.default = _default;