@trailstash/ultra
Version:
A web based tool for making MapLibre GL maps with data from sources such as Overpass, GeoJSON, GPX, KML, TCX, etc
52 lines (44 loc) • 1.2 kB
JavaScript
import { h } from "../lib/dom.js";
import { getModeFromQueryParams } from "../lib/queryParams.js";
import { UltraMap } from "./ultra-map.js";
import { UltraIDE } from "./ultra-ide.js";
import pick from "lodash.pick";
import { defaultMode, modes } from "ultra-config";
const style = new CSSStyleSheet();
style.replaceSync(`
:host {
height: 100%;
width: 100%;
display: flex;
}
`);
export class UltraLoader extends HTMLElement {
constructor() {
super();
}
async connectedCallback() {
const shadow = this.attachShadow({ mode: "open" });
shadow.adoptedStyleSheets.push(style);
let mode = getModeFromQueryParams() || defaultMode;
const config = modes[mode];
if (config.title) {
document.title = config.title;
}
if (config.icon) {
document.head.querySelector("link[rel=icon]").href = config.icon;
}
if (mode === "map") {
shadow.appendChild(
h(
"ultra-map",
pick(config.settings, [
...UltraMap.INIT_SETTINGS,
...UltraMap.CONFIG_SETTINGS,
]),
),
);
} else {
shadow.appendChild(h("ultra-ide", pick(config, UltraIDE.props)));
}
}
}