68 lines
1.5 KiB
JavaScript
68 lines
1.5 KiB
JavaScript
/**
|
|
* --------------------------------------------------------------------------
|
|
* Bootstrap (v5.0.0-beta2): dom/data.js
|
|
* Licensed under MIT (https://github.com/twbs/bootstrap/blob/master/LICENSE)
|
|
* --------------------------------------------------------------------------
|
|
*/
|
|
|
|
/**
|
|
* ------------------------------------------------------------------------
|
|
* Constants
|
|
* ------------------------------------------------------------------------
|
|
*/
|
|
|
|
const mapData = (() => {
|
|
const storeData = {};
|
|
let id = 1;
|
|
return {
|
|
set(element, key, data) {
|
|
if (typeof element[key] === 'undefined') {
|
|
element[key] = {
|
|
key,
|
|
id,
|
|
};
|
|
id++;
|
|
}
|
|
|
|
storeData[element[key].id] = data;
|
|
},
|
|
get(element, key) {
|
|
if (!element || typeof element[key] === 'undefined') {
|
|
return null;
|
|
}
|
|
|
|
const keyProperties = element[key];
|
|
if (keyProperties.key === key) {
|
|
return storeData[keyProperties.id];
|
|
}
|
|
|
|
return null;
|
|
},
|
|
delete(element, key) {
|
|
if (typeof element[key] === 'undefined') {
|
|
return;
|
|
}
|
|
|
|
const keyProperties = element[key];
|
|
if (keyProperties.key === key) {
|
|
delete storeData[keyProperties.id];
|
|
delete element[key];
|
|
}
|
|
},
|
|
};
|
|
})();
|
|
|
|
const Data = {
|
|
setData(instance, key, data) {
|
|
mapData.set(instance, key, data);
|
|
},
|
|
getData(instance, key) {
|
|
return mapData.get(instance, key);
|
|
},
|
|
removeData(instance, key) {
|
|
mapData.delete(instance, key);
|
|
},
|
|
};
|
|
|
|
export default Data;
|