mirror of
https://github.com/Febbweiss/febbweiss.github.io.git
synced 2026-03-05 06:35:50 +00:00
Fix: add dependencies
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
|
||||
ko.utils.domData = new (function () {
|
||||
var uniqueId = 0;
|
||||
var dataStoreKeyExpandoPropertyName = "__ko__" + (new Date).getTime();
|
||||
var dataStore = {};
|
||||
|
||||
function getAll(node, createIfNotFound) {
|
||||
var dataStoreKey = node[dataStoreKeyExpandoPropertyName];
|
||||
var hasExistingDataStore = dataStoreKey && (dataStoreKey !== "null") && dataStore[dataStoreKey];
|
||||
if (!hasExistingDataStore) {
|
||||
if (!createIfNotFound)
|
||||
return undefined;
|
||||
dataStoreKey = node[dataStoreKeyExpandoPropertyName] = "ko" + uniqueId++;
|
||||
dataStore[dataStoreKey] = {};
|
||||
}
|
||||
return dataStore[dataStoreKey];
|
||||
}
|
||||
|
||||
return {
|
||||
get: function (node, key) {
|
||||
var allDataForNode = getAll(node, false);
|
||||
return allDataForNode === undefined ? undefined : allDataForNode[key];
|
||||
},
|
||||
set: function (node, key, value) {
|
||||
if (value === undefined) {
|
||||
// Make sure we don't actually create a new domData key if we are actually deleting a value
|
||||
if (getAll(node, false) === undefined)
|
||||
return;
|
||||
}
|
||||
var allDataForNode = getAll(node, true);
|
||||
allDataForNode[key] = value;
|
||||
},
|
||||
clear: function (node) {
|
||||
var dataStoreKey = node[dataStoreKeyExpandoPropertyName];
|
||||
if (dataStoreKey) {
|
||||
delete dataStore[dataStoreKey];
|
||||
node[dataStoreKeyExpandoPropertyName] = null;
|
||||
return true; // Exposing "did clean" flag purely so specs can infer whether things have been cleaned up as intended
|
||||
}
|
||||
return false;
|
||||
},
|
||||
|
||||
nextKey: function () {
|
||||
return (uniqueId++) + dataStoreKeyExpandoPropertyName;
|
||||
}
|
||||
};
|
||||
})();
|
||||
|
||||
ko.exportSymbol('utils.domData', ko.utils.domData);
|
||||
ko.exportSymbol('utils.domData.clear', ko.utils.domData.clear); // Exporting only so specs can clear up after themselves fully
|
||||
Reference in New Issue
Block a user