啊鑫
2025-07-17 eaa506e57403d1b8502f16ca5dd6e82c347724d0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
import _extends from "@babel/runtime/helpers/esm/extends";
import Overlay from '../../overlay';
import { context } from './context';
import { mount } from '../../utils/functional';
import { removeNode } from '../../utils/dom/node';
var defaultConfig = {
  className: '',
  customStyle: {}
};
 
function mountOverlay(vm) {
  return mount(Overlay, {
    on: {
      // close popup when overlay clicked & closeOnClickOverlay is true
      click: function click() {
        vm.$emit('click-overlay');
 
        if (vm.closeOnClickOverlay) {
          if (vm.onClickOverlay) {
            vm.onClickOverlay();
          } else {
            vm.close();
          }
        }
      }
    }
  });
}
 
export function updateOverlay(vm) {
  var item = context.find(vm);
 
  if (item) {
    var el = vm.$el;
    var config = item.config,
        overlay = item.overlay;
 
    if (el && el.parentNode) {
      el.parentNode.insertBefore(overlay.$el, el);
    }
 
    _extends(overlay, defaultConfig, config, {
      show: true
    });
  }
}
export function openOverlay(vm, config) {
  var item = context.find(vm);
 
  if (item) {
    item.config = config;
  } else {
    var overlay = mountOverlay(vm);
    context.stack.push({
      vm: vm,
      config: config,
      overlay: overlay
    });
  }
 
  updateOverlay(vm);
}
export function closeOverlay(vm) {
  var item = context.find(vm);
 
  if (item) {
    item.overlay.show = false;
  }
}
export function removeOverlay(vm) {
  var item = context.find(vm);
 
  if (item) {
    removeNode(item.overlay.$el);
    context.remove(vm);
  }
}