mirror of
https://github.com/gpxstudio/gpx.studio.git
synced 2025-10-16 04:18:19 +00:00
layer selection
This commit is contained in:
27
website/src/lib/components/layer-control/utils.ts
Normal file
27
website/src/lib/components/layer-control/utils.ts
Normal file
@@ -0,0 +1,27 @@
|
||||
import type { LayerTreeType } from "$lib/assets/layers";
|
||||
|
||||
export function anySelectedLayer(node: LayerTreeType) {
|
||||
return Object.keys(node).find((id) => {
|
||||
if (typeof node[id] == "boolean") {
|
||||
if (node[id]) {
|
||||
return true;
|
||||
}
|
||||
} else {
|
||||
if (anySelectedLayer(node[id])) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}) !== undefined;
|
||||
}
|
||||
|
||||
export function getLayers(node: LayerTreeType, layers: { [key: string]: boolean } = {}): { [key: string]: boolean } {
|
||||
Object.keys(node).find((id) => {
|
||||
if (typeof node[id] == "boolean") {
|
||||
layers[id] = node[id];
|
||||
} else {
|
||||
getLayers(node[id], layers);
|
||||
}
|
||||
});
|
||||
return layers;
|
||||
}
|
Reference in New Issue
Block a user