react-bkoi-gl
Version:
React components for Barikoi GL JS
42 lines • 1.09 kB
JavaScript
const refProps = ["type", "source", "source-layer", "minzoom", "maxzoom", "filter", "layout"];
export function normalizeStyle(style) {
if (!style) {
return null;
}
if (typeof style === "string") {
return style;
}
if ("toJS" in style) {
style = style.toJS();
}
if (!style.layers) {
return style;
}
const layerIndex = {};
for (const layer of style.layers) {
layerIndex[layer.id] = layer;
}
const layers = style.layers.map(layer => {
let normalizedLayer = null;
if ("interactive" in layer) {
normalizedLayer = Object.assign({}, layer);
delete normalizedLayer.interactive;
}
const layerRef = layerIndex[layer.ref];
if (layerRef) {
normalizedLayer = normalizedLayer || Object.assign({}, layer);
delete normalizedLayer.ref;
for (const propName of refProps) {
if (propName in layerRef) {
normalizedLayer[propName] = layerRef[propName];
}
}
}
return normalizedLayer || layer;
});
return {
...style,
layers
};
}
//# sourceMappingURL=style-utils.js.map