39 lines
1.0 KiB
JavaScript
39 lines
1.0 KiB
JavaScript
|
|
const solverMetadata = {};
|
|
let solverMetadataCounter = 0;
|
|
function createSolverMetadata(data) {
|
|
const id = solverMetadataCounter;
|
|
solverMetadata[id] = data;
|
|
solverMetadataCounter++;
|
|
return id;
|
|
}
|
|
export function setSolverMetadata(domNode, data) {
|
|
if (domNode.dataset.solverMetadata) {
|
|
solverMetadata[Number(domNode.dataset.solverMetadata)] = data;
|
|
return;
|
|
}
|
|
domNode.dataset.solverMetadata = createSolverMetadata(data).toString(10);
|
|
}
|
|
export function getSolverMetadata(id) {
|
|
if (typeof id === "object") {
|
|
// assume DOM element
|
|
if (id.dataset && id.dataset.solverMetadata) {
|
|
return getSolverMetadata(id.dataset.solverMetadata);
|
|
}
|
|
return null;
|
|
}
|
|
if (typeof id === "string") {
|
|
return getSolverMetadata(Number(id));
|
|
}
|
|
return solverMetadata[id];
|
|
}
|
|
export function deleteSolverMetadata(id) {
|
|
if (typeof id === "object") {
|
|
// assume DOM object
|
|
if (id.dataset && id.dataset.solverMetadata) {
|
|
return deleteSolverMetadata(id.dataset.solverMetadata);
|
|
}
|
|
}
|
|
delete solverMetadata[id];
|
|
}
|