70 lines
2.2 KiB
JavaScript
70 lines
2.2 KiB
JavaScript
|
/*!
|
||
|
* Bootstrap data.js v5.0.0-beta3 (https://getbootstrap.com/)
|
||
|
* Copyright 2011-2021 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.0.0-beta3): dom/data.js
|
||
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
|
||
|
* --------------------------------------------------------------------------
|
||
|
*/
|
||
|
|
||
|
/**
|
||
|
* ------------------------------------------------------------------------
|
||
|
* Constants
|
||
|
* ------------------------------------------------------------------------
|
||
|
*/
|
||
|
const elementMap = new Map();
|
||
|
var 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
|