mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-07-11 00:14:50 +03:00
Cleanup: Inputosaurus and Knockout Change: Knockout domData now uses WeakMap Replaced: Knockout domManipulation with a documentFragment
26 lines
826 B
JavaScript
26 lines
826 B
JavaScript
|
|
ko.utils.domData = new (function () {
|
|
let uniqueId = 0,
|
|
dataStoreKeyExpandoPropertyName = "__ko__" + (Date.now()),
|
|
dataStore = new WeakMap();
|
|
|
|
return {
|
|
get: (node, key) => (dataStore.get(node) || {})[key],
|
|
set: (node, key, value) => {
|
|
if (dataStore.has(node)) {
|
|
dataStore.get(node)[key] = value;
|
|
} else {
|
|
let dataForNode = {};
|
|
dataForNode[key] = value;
|
|
dataStore.set(node, dataForNode);
|
|
}
|
|
return value;
|
|
},
|
|
getOrSet: function(node, key, value) {
|
|
return this.get(node, key) || this.set(node, key, value);
|
|
},
|
|
clear: node => dataStore.delete(node),
|
|
|
|
nextKey: () => (uniqueId++) + dataStoreKeyExpandoPropertyName
|
|
};
|
|
})();
|