You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
67 lines
2.1 KiB
67 lines
2.1 KiB
/*! |
|
* Bootstrap data.js v5.2.2 (https://getbootstrap.com/) |
|
* Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors) |
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) |
|
*/ |
|
(function (global, factory) { |
|
typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() : |
|
typeof define === 'function' && define.amd ? define(factory) : |
|
(global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Data = factory()); |
|
})(this, (function () { 'use strict'; |
|
|
|
/** |
|
* -------------------------------------------------------------------------- |
|
* Bootstrap (v5.2.2): dom/data.js |
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE) |
|
* -------------------------------------------------------------------------- |
|
*/ |
|
|
|
/** |
|
* Constants |
|
*/ |
|
const elementMap = new Map(); |
|
const data = { |
|
set(element, key, instance) { |
|
if (!elementMap.has(element)) { |
|
elementMap.set(element, new Map()); |
|
} |
|
|
|
const instanceMap = elementMap.get(element); // make it clear we only want one instance per element |
|
// can be removed later when multiple key/instances are fine to be used |
|
|
|
if (!instanceMap.has(key) && instanceMap.size !== 0) { |
|
// eslint-disable-next-line no-console |
|
console.error(`Bootstrap doesn't allow more than one instance per element. Bound instance: ${Array.from(instanceMap.keys())[0]}.`); |
|
return; |
|
} |
|
|
|
instanceMap.set(key, instance); |
|
}, |
|
|
|
get(element, key) { |
|
if (elementMap.has(element)) { |
|
return elementMap.get(element).get(key) || null; |
|
} |
|
|
|
return null; |
|
}, |
|
|
|
remove(element, key) { |
|
if (!elementMap.has(element)) { |
|
return; |
|
} |
|
|
|
const instanceMap = elementMap.get(element); |
|
instanceMap.delete(key); // free up element references if there are no instances left for an element |
|
|
|
if (instanceMap.size === 0) { |
|
elementMap.delete(element); |
|
} |
|
} |
|
|
|
}; |
|
|
|
return data; |
|
|
|
})); |
|
//# sourceMappingURL=data.js.map
|
|
|