mirror of
https://github.com/bellingcat/ukraine-timemap.git
synced 2026-06-12 21:38:35 +03:00
Allows for multiple specified categories that are customizable panelsin left hand side toolbar
This commit is contained in:
@@ -222,9 +222,7 @@ export function getEventCategories(event, activeCategories) {
|
||||
* Takes a filter's path and concatenates it like so: Parent 1/Parent 2/Child
|
||||
*/
|
||||
export function createFilterPathString(filter) {
|
||||
return filter.mode === ASSOCIATION_MODES.FILTER
|
||||
? filter.filter_paths.join("/")
|
||||
: "";
|
||||
return filter.filter_paths.join("/");
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -511,6 +509,11 @@ export function setD3Locale(d3) {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Gets the set of associated styles for a given shape type from the entire set of shapes
|
||||
* @param list shapes - The aggregated set of shapes
|
||||
* @param list activeShapes - The set of active shapes in the app
|
||||
*/
|
||||
export function mapStyleByShape(shapes, activeShapes) {
|
||||
const styledShapes = shapes.map((s) => {
|
||||
const { colour, shape, id } = s;
|
||||
@@ -530,3 +533,40 @@ export function mapStyleByShape(shapes, activeShapes) {
|
||||
});
|
||||
return styledShapes;
|
||||
}
|
||||
|
||||
export function mapCategoriesToPaths(categories) {
|
||||
const categoryMap = categories.reduce((acc, cat) => {
|
||||
const type = cat.filter_paths[0];
|
||||
if (!(type in acc)) {
|
||||
acc[type] = [];
|
||||
}
|
||||
acc[type].push(cat);
|
||||
return acc;
|
||||
}, {});
|
||||
return categoryMap;
|
||||
}
|
||||
|
||||
export function getCategoryIdxs(panelCategories, startingIdx) {
|
||||
let idxCounter = startingIdx;
|
||||
// If there are specified categories from the config, filter out the default value; else, leave the default value
|
||||
const catTypes =
|
||||
panelCategories.length > 1 && panelCategories.includes("default")
|
||||
? panelCategories.filter((val) => val !== "default")
|
||||
: panelCategories;
|
||||
return catTypes.reduce((set, val) => {
|
||||
set[val] = idxCounter;
|
||||
idxCounter += 1;
|
||||
return set;
|
||||
}, {});
|
||||
}
|
||||
|
||||
export function getFilterIdx(
|
||||
narrativesExist,
|
||||
categoriesExist,
|
||||
numCategoryPanels
|
||||
) {
|
||||
if (narrativesExist && !categoriesExist) return 1;
|
||||
else if (!narrativesExist && categoriesExist) return numCategoryPanels;
|
||||
else if (narrativesExist && categoriesExist) return numCategoryPanels + 1;
|
||||
else return;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user