Newer
Older
import { getTreeFromFlatData } from 'react-sortable-tree';
import { makeObjectList } from './SparqlObjectMapper';
export const mapPlaces = (sparqlBindings) => {
//console.log(sparqlBindings);
return {
id: b.id.value,
label: b.label.value,
lat: has(b, 'lat',) ? b.lat.value : 'Undefined',
long: has(b, 'long',) ? b.long.value : 'Undefined',
source: has(b, 'source',) ? b.source.value : 'Undefined',
manuscript: has(b, 'manuscript',) ? b.manuscript.value.split(',') : 'Undefined',
manuscriptCount: has(b, 'manuscriptCount',) ? b.manuscriptCount.value : 'Undefined',
export const mapCount = (sparqlBindings) => {
return {
count: sparqlBindings[0].count.value
};
};
export const mapFacet = sparqlBindings => {
const results = makeObjectList(sparqlBindings);
if (results[results.length - 1].instanceCount == 0) {
results.pop();
}
return {
distinctValueCount: results.length,
values: results
};
};
export const mapHierarchicalFacet = sparqlBindings => {
const results = makeObjectList(sparqlBindings);
let treeData = getTreeFromFlatData({
flatData: results,
getParentKey: node => node.parent, // resolve node's parent's key
rootKey: 0, // The value of the parent key when there is no parent (i.e., at root level)
});
treeData = recursiveSort(treeData);
treeData.forEach(node => sumUp(node));
return {
distinctValueCount: results.length,
values: treeData
};
const comparator = (a, b) => a.prefLabel.localeCompare(b.prefLabel);
node.totalInstanceCount = parseInt(node.instanceCount);
for (let child of node.children) {
node.totalInstanceCount += sumUp(child);
}
}
return node.totalInstanceCount;
const recursiveSort = nodes => {
nodes.sort(comparator);
nodes.forEach(node => {