mirror of
https://github.com/searxng/searxng.git
synced 2025-12-22 19:50:00 +00:00
* [upd] web-client (simple): Bump the minor group Bumps the minor group in /client/simple with 4 updates: [ol](https://github.com/openlayers/openlayers), [@biomejs/biome](https://github.com/biomejs/biome/tree/HEAD/packages/@biomejs/biome), [@types/node](https://github.com/DefinitelyTyped/DefinitelyTyped/tree/HEAD/types/node) and [sharp](https://github.com/lovell/sharp). Updates `ol` from 10.6.1 to 10.7.0 - [Release notes](https://github.com/openlayers/openlayers/releases) - [Commits](https://github.com/openlayers/openlayers/compare/v10.6.1...v10.7.0) Updates `@biomejs/biome` from 2.3.2 to 2.3.4 - [Release notes](https://github.com/biomejs/biome/releases) - [Changelog](https://github.com/biomejs/biome/blob/main/packages/@biomejs/biome/CHANGELOG.md) - [Commits](https://github.com/biomejs/biome/commits/@biomejs/biome@2.3.4/packages/@biomejs/biome) Updates `@types/node` from 24.9.2 to 24.10.0 - [Release notes](https://github.com/DefinitelyTyped/DefinitelyTyped/releases) - [Commits](https://github.com/DefinitelyTyped/DefinitelyTyped/commits/HEAD/types/node) Updates `sharp` from 0.34.4 to 0.34.5 - [Release notes](https://github.com/lovell/sharp/releases) - [Commits](https://github.com/lovell/sharp/compare/v0.34.4...v0.34.5) --- updated-dependencies: - dependency-name: ol dependency-version: 10.7.0 dependency-type: direct:production update-type: version-update:semver-minor dependency-group: minor - dependency-name: "@biomejs/biome" dependency-version: 2.3.4 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: minor - dependency-name: "@types/node" dependency-version: 24.10.0 dependency-type: direct:development update-type: version-update:semver-minor dependency-group: minor - dependency-name: sharp dependency-version: 0.34.5 dependency-type: direct:development update-type: version-update:semver-patch dependency-group: minor ... Signed-off-by: dependabot[bot] <support@github.com> * [upd] web-client (simple): rebuild static --------- Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> Co-authored-by: Ivan Gabaldon <igabaldon@inetol.net>
87 lines
2.0 KiB
TypeScript
87 lines
2.0 KiB
TypeScript
// SPDX-License-Identifier: AGPL-3.0-or-later
|
|
|
|
import { listen } from "../core/toolkit.ts";
|
|
|
|
listen("click", ".searxng_init_map", async function (this: HTMLElement, event: Event) {
|
|
event.preventDefault();
|
|
this.classList.remove("searxng_init_map");
|
|
|
|
const {
|
|
View,
|
|
OlMap,
|
|
TileLayer,
|
|
VectorLayer,
|
|
OSM,
|
|
VectorSource,
|
|
Style,
|
|
Stroke,
|
|
Fill,
|
|
Circle,
|
|
fromLonLat,
|
|
GeoJSON,
|
|
Feature,
|
|
Point
|
|
} = await import("../pkg/ol.ts");
|
|
void import("ol/ol.css");
|
|
|
|
const { leafletTarget: target, mapLon, mapLat, mapGeojson } = this.dataset;
|
|
|
|
const lon = Number.parseFloat(mapLon || "0");
|
|
const lat = Number.parseFloat(mapLat || "0");
|
|
const view = new View({ maxZoom: 16, enableRotation: false });
|
|
const map = new OlMap({
|
|
target: target,
|
|
layers: [new TileLayer({ source: new OSM({ maxZoom: 16 }) })],
|
|
view: view
|
|
});
|
|
|
|
try {
|
|
const markerSource = new VectorSource({
|
|
features: [
|
|
new Feature({
|
|
geometry: new Point(fromLonLat([lon, lat]))
|
|
})
|
|
]
|
|
});
|
|
|
|
const markerLayer = new VectorLayer({
|
|
source: markerSource,
|
|
style: new Style({
|
|
image: new Circle({
|
|
radius: 6,
|
|
fill: new Fill({ color: "#3050ff" })
|
|
})
|
|
})
|
|
});
|
|
|
|
map.addLayer(markerLayer);
|
|
} catch (error) {
|
|
console.error("Failed to create marker layer:", error);
|
|
}
|
|
|
|
if (mapGeojson) {
|
|
try {
|
|
const geoSource = new VectorSource({
|
|
features: new GeoJSON().readFeatures(JSON.parse(mapGeojson), {
|
|
dataProjection: "EPSG:4326",
|
|
featureProjection: "EPSG:3857"
|
|
})
|
|
});
|
|
|
|
const geoLayer = new VectorLayer({
|
|
source: geoSource,
|
|
style: new Style({
|
|
stroke: new Stroke({ color: "#3050ff", width: 2 }),
|
|
fill: new Fill({ color: "#3050ff33" })
|
|
})
|
|
});
|
|
|
|
map.addLayer(geoLayer);
|
|
|
|
view.fit(geoSource.getExtent(), { padding: [20, 20, 20, 20] });
|
|
} catch (error) {
|
|
console.error("Failed to create GeoJSON layer:", error);
|
|
}
|
|
}
|
|
});
|