PluginProbe
Block Animations, Motion & Scroll Effects – Ghost Kit / 3.4.3
Block Animations, Motion & Scroll Effects – Ghost Kit v3.4.3
3.7.2 3.7.1 3.7.0 3.6.1 trunk 1.6.3 2.25.0 3.3.0 3.3.1 3.3.2 3.3.3 3.4.0 3.4.1 3.4.2 3.4.3 3.4.4 3.4.5 3.4.6 3.5.0 3.5.1 3.6.0
ghostkit / assets / js / utils / instance.js

instance.js in Block Animations, Motion & Scroll Effects – Ghost Kit 3.4.3, at assets/js/utils/instance.js

54 lines 1.0 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 /**
2 * Helper class to get and set instances from elements.
3 * These instances contains many helpful data such as block APIs and extensions data.
4 *
5 * Example:
6 * GHOSTKIT.instance.get(element, 'effects');
7 */
8 const elementsMap = new Map();
9
10 export default {
11 getAll() {
12 return elementsMap;
13 },
14
15 get(element, key) {
16 if (elementsMap.has(element)) {
17 if (key) {
18 return elementsMap.get(element).get(key) || null;
19 }
20
21 return elementsMap.get(element) || null;
22 }
23
24 return null;
25 },
26
27 set(element, key, val) {
28 if (!elementsMap.has(element)) {
29 elementsMap.set(element, new Map());
30 }
31
32 const instanceMap = elementsMap.get(element);
33
34 instanceMap.set(key, val);
35 },
36
37 remove(element, key) {
38 if (!elementsMap.has(element)) {
39 return;
40 }
41
42 const instanceMap = elementsMap.get(element);
43
44 if (key) {
45 instanceMap.delete(key);
46 }
47
48 // Free up element references if there are no instances left for an element or key is missing.
49 if (!key || instanceMap.size === 0) {
50 elementsMap.delete(element);
51 }
52 },
53 };
54