element-to-vue-instance-registry.js
795 Bytes
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
import { isVue3 } from '../vue';
var registry = null;
if (isVue3) {
registry = new WeakMap();
}
export var registerElementToInstance = function registerElementToInstance(element, instance) {
if (!isVue3) {
return;
}
registry.set(element, instance);
};
export var removeElementToInstance = function removeElementToInstance(element) {
if (!isVue3) {
return;
}
registry.delete(element);
};
export var getInstanceFromElement = function getInstanceFromElement(element) {
if (!isVue3) {
return element.__vue__;
}
var currentElement = element;
while (currentElement) {
if (registry.has(currentElement)) {
/* istanbul ignore next */
return registry.get(currentElement);
}
currentElement = currentElement.parentNode;
}
return null;
};