UNPKG

ten-design-vue

Version:

ten-vue

125 lines (99 loc) 3.75 kB
"use strict"; 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;