source: trip-planner-front/node_modules/bootstrap/js/src/dom/data.js@ 6a3a178

Last change on this file since 6a3a178 was 6a3a178, checked in by Ema <ema_spirova@…>, 3 years ago

initial commit

  • Property mode set to 100644
File size: 1.5 KB
Line 
1/**
2 * --------------------------------------------------------------------------
3 * Bootstrap (v5.1.3): dom/data.js
4 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
5 * --------------------------------------------------------------------------
6 */
7
8/**
9 * ------------------------------------------------------------------------
10 * Constants
11 * ------------------------------------------------------------------------
12 */
13
14const elementMap = new Map()
15
16export default {
17 set(element, key, instance) {
18 if (!elementMap.has(element)) {
19 elementMap.set(element, new Map())
20 }
21
22 const instanceMap = elementMap.get(element)
23
24 // make it clear we only want one instance per element
25 // can be removed later when multiple key/instances are fine to be used
26 if (!instanceMap.has(key) && instanceMap.size !== 0) {
27 // eslint-disable-next-line no-console
28 console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`)
29 return
30 }
31
32 instanceMap.set(key, instance)
33 },
34
35 get(element, key) {
36 if (elementMap.has(element)) {
37 return elementMap.get(element).get(key) || null
38 }
39
40 return null
41 },
42
43 remove(element, key) {
44 if (!elementMap.has(element)) {
45 return
46 }
47
48 const instanceMap = elementMap.get(element)
49
50 instanceMap.delete(key)
51
52 // free up element references if there are no instances left for an element
53 if (instanceMap.size === 0) {
54 elementMap.delete(element)
55 }
56 }
57}
Note: See TracBrowser for help on using the repository browser.