| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293 |
- "use strict";
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
- exports.__esModule = true;
- exports.updateOverlay = updateOverlay;
- exports.openOverlay = openOverlay;
- exports.closeOverlay = closeOverlay;
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
- var _overlay = _interopRequireDefault(require("../../overlay"));
- var _context = require("./context");
- var _functional = require("../../utils/functional");
- var defaultConfig = {
- className: '',
- customStyle: {}
- };
- var overlay; // close popup when click overlay && closeOnClickOverlay is true
- function onClickOverlay() {
- if (_context.context.top) {
- var vm = _context.context.top.vm;
- vm.$emit('click-overlay');
- if (vm.closeOnClickOverlay) {
- if (vm.onClickOverlay) {
- vm.onClickOverlay();
- } else {
- vm.close();
- }
- }
- }
- }
- function updateOverlay() {
- if (!overlay) {
- overlay = (0, _functional.mount)(_overlay["default"], {
- on: {
- click: onClickOverlay
- }
- });
- }
- if (_context.context.top) {
- var _context$top = _context.context.top,
- vm = _context$top.vm,
- config = _context$top.config;
- var el = vm.$el;
- var target = el && el.parentNode ? el.parentNode : document.body;
- if (target) {
- target.appendChild(overlay.$el);
- }
- (0, _extends2["default"])(overlay, defaultConfig, config, {
- visible: true
- });
- } else {
- overlay.visible = false;
- }
- }
- function openOverlay(vm, config) {
- if (!_context.context.stack.some(function (item) {
- return item.vm === vm;
- })) {
- _context.context.stack.push({
- vm: vm,
- config: config
- });
- updateOverlay();
- }
- }
- function closeOverlay(vm) {
- var stack = _context.context.stack;
- if (stack.length) {
- if (_context.context.top.vm === vm) {
- stack.pop();
- updateOverlay();
- } else {
- _context.context.stack = stack.filter(function (item) {
- return item.vm !== vm;
- });
- }
- }
- }
|