Merge develop
This commit is contained in:
commit
e5a3c1cab6
22 changed files with 4016 additions and 3740 deletions
|
@ -29,8 +29,12 @@ export default class SaveTileToLocalStorageActor {
|
|||
|
||||
public static MarkVisited(layerId: string, tileId: number, freshness: Date){
|
||||
const key = `${SaveTileToLocalStorageActor.storageKey}-${layerId}-${tileId}`
|
||||
localStorage.setItem(key + "-time", JSON.stringify(freshness.getTime()))
|
||||
localStorage.setItem(key + "-format", SaveTileToLocalStorageActor.formatVersion)
|
||||
try{
|
||||
localStorage.setItem(key + "-time", JSON.stringify(freshness.getTime()))
|
||||
localStorage.setItem(key + "-format", SaveTileToLocalStorageActor.formatVersion)
|
||||
}catch(e){
|
||||
console.error("Could not mark tile ", key, "as visited")
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -206,7 +206,9 @@ export default class FeaturePipeline {
|
|||
maxZoomLevel: state.layoutToUse.clustering.maxZoom,
|
||||
registerTile: (tile) => {
|
||||
// We save the tile data for the given layer to local storage
|
||||
new SaveTileToLocalStorageActor(tile, tile.tileIndex)
|
||||
if(source.layer.layerDef.source.geojsonSource === undefined || source.layer.layerDef.source.isOsmCacheLayer == true){
|
||||
new SaveTileToLocalStorageActor(tile, tile.tileIndex)
|
||||
}
|
||||
perLayerHierarchy.get(source.layer.layerDef.id).registerTile(new RememberingSource(tile))
|
||||
tile.features.addCallbackAndRunD(_ => self.newDataLoadedSignal.setData(tile))
|
||||
|
||||
|
@ -239,7 +241,11 @@ export default class FeaturePipeline {
|
|||
|
||||
|
||||
this.runningQuery = updater.runningQuery.map(
|
||||
overpass => overpass || osmFeatureSource.isRunning.data, [osmFeatureSource.isRunning]
|
||||
overpass => {
|
||||
console.log("FeaturePipeline: runningQuery state changed. Overpass", overpass ? "is querying," : "is idle,",
|
||||
"osmFeatureSource is", osmFeatureSource.isRunning ? "is running ("+ +")" : "is idle")
|
||||
return overpass || osmFeatureSource.isRunning.data;
|
||||
}, [osmFeatureSource.isRunning]
|
||||
)
|
||||
|
||||
|
||||
|
|
|
@ -58,21 +58,25 @@ export default class OsmFeatureSource {
|
|||
|
||||
for (const neededTile of neededTiles) {
|
||||
if (self.downloadedTiles.has(neededTile)) {
|
||||
return;
|
||||
continue;
|
||||
}
|
||||
console.log("Tile download", Tiles.tile_from_index(neededTile).join("/"), "started")
|
||||
self.downloadedTiles.add(neededTile)
|
||||
Promise.resolve(self.LoadTile(...Tiles.tile_from_index(neededTile)).then(_ => {
|
||||
}))
|
||||
self.LoadTile(...Tiles.tile_from_index(neededTile)).then(_ => {
|
||||
console.log("Tile ", Tiles.tile_from_index(neededTile).join("/"), "loaded")
|
||||
})
|
||||
}
|
||||
} catch (e) {
|
||||
console.error(e)
|
||||
}finally {
|
||||
console.log("Done")
|
||||
self.isRunning.setData(false)
|
||||
}
|
||||
self.isRunning.setData(false)
|
||||
})
|
||||
|
||||
|
||||
|
||||
|
||||
const neededLayers = options.state.layoutToUse.layers
|
||||
.filter( layer => !layer.doNotDownload )
|
||||
.filter(layer => !layer.doNotDownload)
|
||||
.filter(layer => layer.source.geojsonSource === undefined || layer.source.isOsmCacheLayer)
|
||||
this.allowedTags = new Or(neededLayers.map(l => l.source.osmTags))
|
||||
}
|
||||
|
@ -96,22 +100,22 @@ export default class OsmFeatureSource {
|
|||
{
|
||||
flatProperties: true
|
||||
});
|
||||
|
||||
|
||||
// The geojson contains _all_ features at the given location
|
||||
// We only keep what is needed
|
||||
|
||||
|
||||
geojson.features = geojson.features.filter(feature => this.allowedTags.matchesProperties(feature.properties))
|
||||
|
||||
|
||||
console.log("Tile geojson:", z, x, y, "is", geojson)
|
||||
const index = Tiles.tile_index(z, x, y);
|
||||
const index = Tiles.tile_index(z, x, y);
|
||||
new PerLayerFeatureSourceSplitter(this.filteredLayers,
|
||||
this.handleTile,
|
||||
new StaticFeatureSource(geojson.features, false),
|
||||
{
|
||||
tileIndex:index
|
||||
tileIndex: index
|
||||
}
|
||||
);
|
||||
if(this.options.markTileVisited){
|
||||
if (this.options.markTileVisited) {
|
||||
this.options.markTileVisited(index)
|
||||
}
|
||||
} catch (e) {
|
||||
|
|
|
@ -2,8 +2,9 @@ import {Utils} from "../Utils";
|
|||
|
||||
export default class Constants {
|
||||
|
||||
public static vNumber = "0.11.0-alpha-0";
|
||||
public static vNumber = "0.11.0-alpha-1";
|
||||
|
||||
|
||||
public static ImgurApiKey = '7070e7167f0a25a'
|
||||
public static readonly mapillary_client_token_v3 = 'TXhLaWthQ1d4RUg0czVxaTVoRjFJZzowNDczNjUzNmIyNTQyYzI2'
|
||||
public static readonly mapillary_client_token_v4 = "MLY|4441509239301885|b40ad2d3ea105435bd40c7e76993ae85"
|
||||
|
|
|
@ -86,7 +86,16 @@ export default class LayoutConfig {
|
|||
this.startLat = json.startLat;
|
||||
this.startLon = json.startLon;
|
||||
if(json.widenFactor < 1){
|
||||
throw "Widenfactor too small"
|
||||
if(official){
|
||||
throw "Widenfactor too small"
|
||||
}else{
|
||||
// Unofficial themes get away with this
|
||||
console.warn("Detected a very small widenfactor, bumping this above 1.")
|
||||
json.widenFactor = json.widenFactor + 1
|
||||
}
|
||||
}
|
||||
if(json.widenFactor > 20){
|
||||
throw "Widenfactor is very big, use a value between 1 and 5 (current value is "+json.widenFactor+") at "+context
|
||||
}
|
||||
this.widenFactor = json.widenFactor ?? 1.5;
|
||||
this.roamingRenderings = (json.roamingRenderings ?? []).map((tr, i) => {
|
||||
|
|
|
@ -9,11 +9,17 @@ import Constants from "../../Models/Constants";
|
|||
import Toggle from "../Input/Toggle";
|
||||
import CreateNewNodeAction from "../../Logic/Osm/Actions/CreateNewNodeAction";
|
||||
import {Tag} from "../../Logic/Tags/Tag";
|
||||
import Loading from "../Base/Loading";
|
||||
|
||||
export default class ImportButton extends Toggle {
|
||||
constructor(imageUrl: string | BaseUIElement, message: string | BaseUIElement,
|
||||
originalTags: UIEventSource<any>,
|
||||
newTags: UIEventSource<Tag[]>, lat: number, lon: number) {
|
||||
newTags: UIEventSource<Tag[]>,
|
||||
lat: number, lon: number,
|
||||
minZoom: number,
|
||||
state: {
|
||||
locationControl: UIEventSource<{ zoom: number }>
|
||||
}) {
|
||||
const t = Translations.t.general.add;
|
||||
const isImported = originalTags.map(tags => tags._imported === "yes")
|
||||
const appliedTags = new Toggle(
|
||||
|
@ -30,6 +36,7 @@ export default class ImportButton extends Toggle {
|
|||
)
|
||||
const button = new SubtleButton(imageUrl, message)
|
||||
|
||||
minZoom = Math.max(16, minZoom ?? 19)
|
||||
|
||||
button.onClick(async () => {
|
||||
if (isImported.data) {
|
||||
|
@ -52,11 +59,13 @@ export default class ImportButton extends Toggle {
|
|||
|
||||
})
|
||||
|
||||
const withLoadingCheck = new Toggle(
|
||||
t.stillLoading,
|
||||
const withLoadingCheck = new Toggle(new Toggle(
|
||||
new Loading(t.stillLoading.Clone()),
|
||||
new Combine([button, appliedTags]).SetClass("flex flex-col"),
|
||||
State.state.featurePipeline.runningQuery
|
||||
)
|
||||
),t.zoomInFurther.Clone(),
|
||||
state.locationControl.map(l => l.zoom >= minZoom)
|
||||
)
|
||||
const importButton = new Toggle(t.hasBeenImported, withLoadingCheck, isImported)
|
||||
|
||||
const pleaseLoginButton =
|
||||
|
|
|
@ -412,7 +412,10 @@ export default class SpecialVisualizations {
|
|||
name: "icon",
|
||||
doc: "A nice icon to show in the button",
|
||||
defaultValue: "./assets/svg/addSmall.svg"
|
||||
}],
|
||||
},
|
||||
{name:"minzoom",
|
||||
doc: "How far the contributor must zoom in before being able to import the point",
|
||||
defaultValue: "18"}],
|
||||
docs: `This button will copy the data from an external dataset into OpenStreetMap. It is only functional in official themes but can be tested in unofficial themes.
|
||||
|
||||
If you want to import a dataset, make sure that:
|
||||
|
@ -455,13 +458,13 @@ There are also some technicalities in your theme to keep in mind:
|
|||
return newTags
|
||||
})
|
||||
const id = tagSource.data.id;
|
||||
const feature = State.state.allElements.ContainingFeatures.get(id)
|
||||
const feature = state.allElements.ContainingFeatures.get(id)
|
||||
if (feature.geometry.type !== "Point") {
|
||||
return new FixedUiElement("Error: can only import point objects").SetClass("alert")
|
||||
}
|
||||
const [lon, lat] = feature.geometry.coordinates;
|
||||
return new ImportButton(
|
||||
args[2], args[1], tagSource, rewrittenTags, lat, lon
|
||||
args[2], args[1], tagSource, rewrittenTags, lat, lon, Number(args[3]), state
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
|
@ -9,9 +9,9 @@
|
|||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="43.827324mm"
|
||||
height="43.827263mm"
|
||||
viewBox="0 0 43.827324 43.827263"
|
||||
width="46.74284mm"
|
||||
height="36.190933mm"
|
||||
viewBox="0 0 46.74284 36.190933"
|
||||
version="1.1"
|
||||
id="svg8"
|
||||
inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)"
|
||||
|
@ -25,9 +25,9 @@
|
|||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="1.4"
|
||||
inkscape:cx="-24.395661"
|
||||
inkscape:cy="131.29597"
|
||||
inkscape:zoom="2.8"
|
||||
inkscape:cx="70.652971"
|
||||
inkscape:cy="63.253829"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
|
@ -44,7 +44,7 @@
|
|||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
<dc:title></dc:title>
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
|
@ -52,68 +52,61 @@
|
|||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-138.53724,-189.09678)">
|
||||
transform="translate(-56.579508,-203.85482)"
|
||||
style="display:inline">
|
||||
<path
|
||||
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.20000005;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.12588477;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.92222218"
|
||||
id="path876"
|
||||
sodipodi:type="arc"
|
||||
sodipodi:cx="160.45087"
|
||||
sodipodi:cy="211.01041"
|
||||
sodipodi:rx="21.313631"
|
||||
sodipodi:ry="21.313631"
|
||||
sodipodi:cx="-79.950958"
|
||||
sodipodi:cy="221.95029"
|
||||
sodipodi:rx="22.808449"
|
||||
sodipodi:ry="17.532524"
|
||||
sodipodi:start="0"
|
||||
sodipodi:end="6.2828013"
|
||||
sodipodi:open="true"
|
||||
d="m 181.7645,211.01041 a 21.313631,21.313631 0 0 1 -21.31159,21.31363 21.313631,21.313631 0 0 1 -21.31567,-21.30954 21.313631,21.313631 0 0 1 21.30749,-21.31772 21.313631,21.313631 0 0 1 21.31977,21.30544" />
|
||||
d="m -57.142509,221.95029 a 22.808449,17.532524 0 0 1 -22.80626,17.53252 22.808449,17.532524 0 0 1 -22.810641,-17.52916 22.808449,17.532524 0 0 1 22.801883,-17.53589 22.808449,17.532524 0 0 1 22.815016,17.52579"
|
||||
transform="scale(-1,1)" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 145.52083,212.42783 8.22098,0.0945 2.92932,2.36235 h 7.55952"
|
||||
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.92222218"
|
||||
d="m 95.928119,223.11628 -8.797552,0.0777 -3.134766,1.94325 h -8.089702"
|
||||
id="path919"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 167.06547,204.67931 9.07143,0.0945"
|
||||
style="fill:none;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.92222218"
|
||||
d="m 72.605191,217.14329 -8.371301,0.0109"
|
||||
id="path921"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:1.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1"
|
||||
d="m 156.76562,198.63169 h 7.9375"
|
||||
id="path923"
|
||||
inkscape:connector-curvature="0" />
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<rect
|
||||
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
id="rect925"
|
||||
width="3.3072915"
|
||||
height="8.9769344"
|
||||
x="147.31622"
|
||||
y="203.45088" />
|
||||
<rect
|
||||
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
id="rect927"
|
||||
width="3.4955583"
|
||||
height="8.7872486"
|
||||
x="150.24625"
|
||||
y="212.52232" />
|
||||
<rect
|
||||
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
id="rect927-6"
|
||||
width="3.5510819"
|
||||
height="7.8033376"
|
||||
x="158.76985"
|
||||
y="215.09351" />
|
||||
<rect
|
||||
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.58553958;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.92222218"
|
||||
id="rect927-7"
|
||||
width="3.4955585"
|
||||
height="11.50834"
|
||||
x="169.85341"
|
||||
y="204.93515" />
|
||||
width="1.9557446"
|
||||
height="11.019188"
|
||||
x="-69.33577"
|
||||
y="216.90891"
|
||||
transform="scale(-1,1)" />
|
||||
<rect
|
||||
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.80000001;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1"
|
||||
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.60303307;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.92222218"
|
||||
id="rect927-7-5"
|
||||
width="3.4955587"
|
||||
height="11.508341"
|
||||
x="158.98587"
|
||||
y="198.69853" />
|
||||
width="2.3979976"
|
||||
height="9.5319748"
|
||||
x="-81.749748"
|
||||
y="211.3553"
|
||||
transform="scale(-1,1)" />
|
||||
<path
|
||||
style="display:inline;fill:none;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.92222218"
|
||||
d="m 84.691994,210.50136 -8.3713,0.0109"
|
||||
id="path921-6"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<rect
|
||||
style="display:inline;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.51650959;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.92222218"
|
||||
id="rect927-7-53"
|
||||
width="2.0247746"
|
||||
height="8.281888"
|
||||
x="-91.173843"
|
||||
y="223.57133"
|
||||
transform="scale(-1,1)" />
|
||||
</g>
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 4.7 KiB After Width: | Height: | Size: 4.4 KiB |
128
assets/layers/charging_station/bosch-5pin.svg
Normal file
128
assets/layers/charging_station/bosch-5pin.svg
Normal file
|
@ -0,0 +1,128 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<!-- Created with Inkscape (http://www.inkscape.org/) -->
|
||||
|
||||
<svg
|
||||
xmlns:dc="http://purl.org/dc/elements/1.1/"
|
||||
xmlns:cc="http://creativecommons.org/ns#"
|
||||
xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
|
||||
xmlns:svg="http://www.w3.org/2000/svg"
|
||||
xmlns="http://www.w3.org/2000/svg"
|
||||
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
|
||||
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
|
||||
width="46.74284mm"
|
||||
height="36.190933mm"
|
||||
viewBox="0 0 46.74284 36.190933"
|
||||
version="1.1"
|
||||
id="svg8"
|
||||
inkscape:version="0.92.5 (2060ec1f9f, 2020-04-08)"
|
||||
sodipodi:docname="bosch-5pin.svg">
|
||||
<defs
|
||||
id="defs2" />
|
||||
<sodipodi:namedview
|
||||
id="base"
|
||||
pagecolor="#ffffff"
|
||||
bordercolor="#666666"
|
||||
borderopacity="1.0"
|
||||
inkscape:pageopacity="0.0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:zoom="2.8"
|
||||
inkscape:cx="2.2601139"
|
||||
inkscape:cy="63.253829"
|
||||
inkscape:document-units="mm"
|
||||
inkscape:current-layer="layer1"
|
||||
showgrid="false"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1039"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:window-maximized="1" />
|
||||
<metadata
|
||||
id="metadata5">
|
||||
<rdf:RDF>
|
||||
<cc:Work
|
||||
rdf:about="">
|
||||
<dc:format>image/svg+xml</dc:format>
|
||||
<dc:type
|
||||
rdf:resource="http://purl.org/dc/dcmitype/StillImage" />
|
||||
<dc:title />
|
||||
</cc:Work>
|
||||
</rdf:RDF>
|
||||
</metadata>
|
||||
<g
|
||||
inkscape:label="Layer 1"
|
||||
inkscape:groupmode="layer"
|
||||
id="layer1"
|
||||
transform="translate(-56.579508,-203.85482)"
|
||||
style="display:inline">
|
||||
<path
|
||||
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:1.12588477;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.92222218"
|
||||
id="path876"
|
||||
sodipodi:type="arc"
|
||||
sodipodi:cx="-79.950958"
|
||||
sodipodi:cy="221.95029"
|
||||
sodipodi:rx="22.808449"
|
||||
sodipodi:ry="17.532524"
|
||||
sodipodi:start="0"
|
||||
sodipodi:end="6.2828013"
|
||||
sodipodi:open="true"
|
||||
d="m -57.142509,221.95029 a 22.808449,17.532524 0 0 1 -22.80626,17.53252 22.808449,17.532524 0 0 1 -22.810641,-17.52916 22.808449,17.532524 0 0 1 22.801883,-17.53589 22.808449,17.532524 0 0 1 22.815016,17.52579"
|
||||
transform="scale(-1,1)" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:2;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.92222218"
|
||||
d="m 95.928119,223.11628 -8.797552,0.0777 -3.134766,1.94325 h -8.089702"
|
||||
id="path919"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
style="fill:none;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.92222218"
|
||||
d="m 72.605191,217.14329 -8.371301,0.0109"
|
||||
id="path921"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<rect
|
||||
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.58553958;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.92222218"
|
||||
id="rect927-7"
|
||||
width="1.9557446"
|
||||
height="11.019188"
|
||||
x="-69.33577"
|
||||
y="216.90891"
|
||||
transform="scale(-1,1)" />
|
||||
<rect
|
||||
style="fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.60303307;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.92222218"
|
||||
id="rect927-7-5"
|
||||
width="2.3979976"
|
||||
height="9.5319748"
|
||||
x="-81.749748"
|
||||
y="211.3553"
|
||||
transform="scale(-1,1)" />
|
||||
<path
|
||||
style="display:inline;fill:none;stroke:#000000;stroke-width:2.5;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:0.92222218"
|
||||
d="m 84.691994,210.50136 -8.3713,0.0109"
|
||||
id="path921-6"
|
||||
inkscape:connector-curvature="0"
|
||||
sodipodi:nodetypes="cc" />
|
||||
<rect
|
||||
style="display:inline;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.51650959;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.92222218"
|
||||
id="rect927-7-53"
|
||||
width="2.0247746"
|
||||
height="8.281888"
|
||||
x="-91.173843"
|
||||
y="223.57133"
|
||||
transform="scale(-1,1)" />
|
||||
<rect
|
||||
style="display:inline;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.51650959;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.92222218"
|
||||
id="rect927-7-53-5"
|
||||
width="2.0247746"
|
||||
height="8.281888"
|
||||
x="-81.017601"
|
||||
y="225.57587"
|
||||
transform="scale(-1,1)" />
|
||||
<rect
|
||||
style="display:inline;fill:none;fill-opacity:1;stroke:#000000;stroke-width:0.51650959;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:0.92222218"
|
||||
id="rect927-7-53-5-6"
|
||||
width="2.0247746"
|
||||
height="8.281888"
|
||||
x="-94.935867"
|
||||
y="215.15581"
|
||||
transform="scale(-1,1)" />
|
||||
</g>
|
||||
</svg>
|
After Width: | Height: | Size: 5.2 KiB |
File diff suppressed because it is too large
Load diff
|
@ -107,6 +107,14 @@
|
|||
],
|
||||
"sources": []
|
||||
},
|
||||
{
|
||||
"path": "bosch-5pin.svg",
|
||||
"license": "CC0",
|
||||
"authors": [
|
||||
"Pieter Vander Vennet"
|
||||
],
|
||||
"sources": []
|
||||
},
|
||||
{
|
||||
"path": "under_construction.svg",
|
||||
"license": "Public domain",
|
||||
|
|
|
@ -13,4 +13,5 @@ socket:tesla_supercharger_ccs,Type2_CCS.svg,<b>Tesla Supercharger CCS</b> (a bra
|
|||
socket:tesla_destination,Tesla-hpwc-model-s.svg,<b>Tesla Supercharger (destination)</b>,us,,480,125;350,120 kW;150 kW;250 kW,<b>Tesla Supercharger (destination)</b>,car;motorcar;hgv;bus,bicycle;scooter
|
||||
socket:tesla_destination,Type2_tethered.svg,<b>Tesla supercharger (destination</b> (A Type 2 with cable branded as tesla),,us,230;400,16;32,11 kW;22 kW,<b>Tesla supercharger (destination</b> (Een Type 2 met kabel en Tesla-logo),car;motorcar;hgv;bus,bicycle;scooter
|
||||
socket:USB-A,usb_port.svg,<b>USB</b> to charge phones and small electronics,,,5,1;2,5W;10W,<b>USB</b> om GSMs en kleine electronica op te laden,*,
|
||||
socket:bosch_3pin,bosch-3pin.svg,<b>Bosch Active Connect</b> with cable,,,,,,<b>Bosch Active Connect</b> aan een kabel,bicycle,car;motorcar;hgv;bus
|
||||
socket:bosch_3pin,bosch-3pin.svg,<b>Bosch Active Connect with 3 pins</b> and cable,,,,,,<b>Bosch Active Connect met 3 pinnen</b> aan een kabel,bicycle,car;motorcar;hgv;bus
|
||||
socket:bosch_5pin,bosch-5pin.svg,<b>Bosch Active Connect with 5 pins</b> and cable,,,,,,<b>Bosch Active Connect met 5 pinnen</b> aan een kabel,bicycle,car;motorcar;hgv;bus
|
||||
|
|
|
|
@ -37,24 +37,29 @@
|
|||
inkscape:pageopacity="0"
|
||||
inkscape:pageshadow="2"
|
||||
inkscape:window-width="1920"
|
||||
inkscape:window-height="1043"
|
||||
inkscape:window-height="1003"
|
||||
id="namedview14"
|
||||
showgrid="false"
|
||||
inkscape:zoom="7.375"
|
||||
inkscape:cx="-1.3561062"
|
||||
inkscape:cy="19.621117"
|
||||
inkscape:window-x="0"
|
||||
inkscape:window-y="0"
|
||||
inkscape:cy="41.316032"
|
||||
inkscape:window-x="862"
|
||||
inkscape:window-y="1080"
|
||||
inkscape:window-maximized="1"
|
||||
inkscape:current-layer="svg12" />
|
||||
<path
|
||||
d="m 42.372766,41.559418 h 3.247468 c 0.421762,0 0.76133,0.339541 0.76133,0.761329 v 3.241506 c 0,0.421761 -0.339541,0.761329 -0.76133,0.761329 h -3.247468 c -0.421762,0 -0.76133,-0.339541 -0.76133,-0.761329 v -3.241506 c 0,-0.421761 0.339541,-0.761329 0.76133,-0.761329 z"
|
||||
style="fill:#495aad;stroke-width:0.0542103;paint-order:normal"
|
||||
d="m 27.122405,19.186537 h 33.74819 c 4.383014,0 7.911859,3.528561 7.911859,7.911848 v 33.68623 c 0,4.383006 -3.528563,7.911848 -7.911859,7.911848 h -33.74819 c -4.383014,0 -7.911859,-3.528561 -7.911859,-7.911848 v -33.68623 c 0,-4.383006 3.528563,-7.911848 7.911859,-7.911848 z"
|
||||
style="fill:#495aad;stroke-width:0.56336182;paint-order:normal"
|
||||
id="path6"
|
||||
inkscape:connector-curvature="0" />
|
||||
<path
|
||||
d="m 42.085614,42.793949 v 2.289464 c 0.381581,0 0.763173,0.381581 0.763173,0.763173 h 2.289463 c 0,-0.381581 0.381581,-0.763173 0.763173,-0.763173 v -2.289464 c -0.381581,0 -0.763173,-0.381581 -0.763173,-0.763172 h -2.289463 c 0,0.38158 -0.381581,0.763172 -0.763173,0.763172 z"
|
||||
d="m 24.138277,32.015973 v 23.792462 c 3.965449,0 7.931011,3.965449 7.931011,7.931014 h 23.792453 c 0,-3.965449 3.965449,-7.931014 7.931014,-7.931014 V 32.015973 c -3.965449,0 -7.931014,-3.965449 -7.931014,-7.931002 H 32.069288 c 0,3.965439 -3.965449,7.931002 -7.931011,7.931002 z"
|
||||
id="path8"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:none;stroke:#ffffff;stroke-width:0.27187553" />
|
||||
style="fill:none;stroke:#ffffff;stroke-width:2.8253727" />
|
||||
<path
|
||||
id="path3711"
|
||||
d="m 44.16217,30.966164 c -7.526249,0 -13.627102,6.101307 -13.627102,13.627103 0,7.525795 6.101307,13.627102 13.627102,13.627102 7.525796,0 13.627103,-6.101307 13.627103,-13.627102 0,-7.525796 -6.101307,-13.627103 -13.627103,-13.627103 z m -3.168302,21.803364 -0.0091,-0.0091 -0.0077,0.0091 -6.353865,-6.541009 3.192832,-3.254153 3.16921,3.263237 9.53897,-9.820144 3.176933,3.269596 z"
|
||||
inkscape:connector-curvature="0"
|
||||
style="fill:#fdd835;stroke-width:0.45423675" />
|
||||
</svg>
|
||||
|
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 2.8 KiB |
|
@ -39,14 +39,14 @@
|
|||
{
|
||||
"id": "to_import",
|
||||
"source": {
|
||||
"#geoJson": "http://127.0.0.1:8080/islington_small_piece.geojson",
|
||||
"geoJson": "https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/assets/themes/uk_addresses/islington_small_piece.geojson",
|
||||
"##geoJson": "https://raw.githubusercontent.com/russss/osm-uk-addresses/main/output/islington.geojson",
|
||||
"#geoJson": "https://raw.githubusercontent.com/pietervdvn/MapComplete/develop/assets/themes/uk_addresses/islington_small_piece.geojson",
|
||||
"geoJson": "https://osm-uk-addresses.russss.dev/addresses/{z}/{x}/{y}.json",
|
||||
"osmTags": "inspireid~*",
|
||||
"geoJsonZoomLevel": 16,
|
||||
"isOsmCache": false
|
||||
},
|
||||
"name": "Addresses to check",
|
||||
"minzoom": 12,
|
||||
"minzoom": 14,
|
||||
"wayHandling": 1,
|
||||
"icon": {
|
||||
"render": "./assets/themes/uk_addresses/housenumber_unknown.svg",
|
||||
|
@ -122,7 +122,7 @@
|
|||
}
|
||||
},
|
||||
"calculatedTags": [
|
||||
"_closest_3_street_names=feat.closestn('named_streets',3, 'name').map(f => ({name: f.feat.properties.name, distance: Math.round(1000*f.distance), id: f.id}))",
|
||||
"_closest_3_street_names=feat.properties['addr:street'] === undefined ? feat.closestn('named_streets',3, 'name').map(f => ({name: f.feat.properties.name, distance: Math.round(1000*f.distance), id: f.id})) : []",
|
||||
"_closest_street:0:name=JSON.parse(feat.properties._closest_3_street_names)[0]?.name",
|
||||
"_closest_street:1:name=JSON.parse(feat.properties._closest_3_street_names)[1]?.name",
|
||||
"_closest_street:2:name=JSON.parse(feat.properties._closest_3_street_names)[2]?.name",
|
||||
|
|
|
@ -11,8 +11,6 @@
|
|||
<link href="./css/openinghourstable.css" rel="stylesheet"/>
|
||||
<link href="./css/tagrendering.css" rel="stylesheet"/>
|
||||
<link href="css/ReviewElement.css" rel="stylesheet"/>
|
||||
<link href="vendor/MarkerCluster.css" rel="stylesheet"/>
|
||||
<link href="vendor/MarkerCluster.Default.css" rel="stylesheet"/>
|
||||
<link href="./css/index-tailwind-output.css" rel="stylesheet" />
|
||||
<link href="./css/wikipedia.css" rel="stylesheet" />
|
||||
<meta content="website" property="og:type">
|
||||
|
|
|
@ -13,8 +13,7 @@
|
|||
"uploadDone": "<span class='thanks'>Your picture has been added. Thanks for helping out!</span>",
|
||||
"dontDelete": "Cancel",
|
||||
"doDelete": "Remove image",
|
||||
"isDeleted": "Deleted",
|
||||
"hasBeenImported": "This feature has been imported"
|
||||
"isDeleted": "Deleted"
|
||||
},
|
||||
"centerMessage": {
|
||||
"loadingData": "Loading data…",
|
||||
|
@ -103,7 +102,8 @@
|
|||
"confirmButton": "Add a {category} here.<br/><div class='alert'>Your addition is visible for everyone</div>",
|
||||
"openLayerControl": "Open the layer control box",
|
||||
"layerNotEnabled": "The layer {layer} is not enabled. Enable this layer to add a point",
|
||||
"hasBeenImported": "This point has already been imported"
|
||||
"hasBeenImported": "This point has already been imported",
|
||||
"zoomInMore": "Zoom in more to import this feature"
|
||||
},
|
||||
"pickLanguage": "Choose a language: ",
|
||||
"about": "Easily edit and add OpenStreetMap for a certain theme",
|
||||
|
@ -220,12 +220,12 @@
|
|||
},
|
||||
"wikipedia": {
|
||||
"wikipediaboxTitle": "Wikipedia",
|
||||
"failed":"Loading the wikipedia entry failed",
|
||||
"failed": "Loading the wikipedia entry failed",
|
||||
"loading": "Loading Wikipedia...",
|
||||
"noWikipediaPage": "This wikidata item has no corresponding wikipedia page yet.",
|
||||
"searchWikidata": "Search on wikidata",
|
||||
"doSearch": "Search above to see results",
|
||||
"noResults": "Nothing found for <i>{search}</i>",
|
||||
"doSearch": "Search above to see results",
|
||||
"createNewWikidata": "Create a new wikidata item"
|
||||
}
|
||||
},
|
||||
|
|
|
@ -924,7 +924,10 @@
|
|||
"question": "Has a <div style='display: inline-block'><b><b>USB</b> to charge phones and small electronics</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/usb_port.svg'/></div> connector"
|
||||
},
|
||||
"15": {
|
||||
"question": "Has a <div style='display: inline-block'><b><b>Bosch Active Connect</b> with cable</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/bosch-3pin.svg'/></div> connector"
|
||||
"question": "Has a <div style='display: inline-block'><b><b>Bosch Active Connect with 3 pins</b> and cable</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/bosch-3pin.svg'/></div> connector"
|
||||
},
|
||||
"16": {
|
||||
"question": "Has a <div style='display: inline-block'><b><b>Bosch Active Connect with 5 pins</b> and cable</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/bosch-5pin.svg'/></div> connector"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1056,10 +1059,16 @@
|
|||
"then": "<div class='flex'><img class='w-12 mx-4' src='./assets/layers/charging_station/usb_port.svg'/> <span><b>USB</b> to charge phones and small electronics</span></div>"
|
||||
},
|
||||
"28": {
|
||||
"then": "<div class='flex'><img class='w-12 mx-4' src='./assets/layers/charging_station/bosch-3pin.svg'/> <span><b>Bosch Active Connect</b> with cable</span></div>"
|
||||
"then": "<div class='flex'><img class='w-12 mx-4' src='./assets/layers/charging_station/bosch-3pin.svg'/> <span><b>Bosch Active Connect with 3 pins</b> and cable</span></div>"
|
||||
},
|
||||
"29": {
|
||||
"then": "<div class='flex'><img class='w-12 mx-4' src='./assets/layers/charging_station/bosch-3pin.svg'/> <span><b>Bosch Active Connect</b> with cable</span></div>"
|
||||
"then": "<div class='flex'><img class='w-12 mx-4' src='./assets/layers/charging_station/bosch-3pin.svg'/> <span><b>Bosch Active Connect with 3 pins</b> and cable</span></div>"
|
||||
},
|
||||
"30": {
|
||||
"then": "<div class='flex'><img class='w-12 mx-4' src='./assets/layers/charging_station/bosch-5pin.svg'/> <span><b>Bosch Active Connect with 5 pins</b> and cable</span></div>"
|
||||
},
|
||||
"31": {
|
||||
"then": "<div class='flex'><img class='w-12 mx-4' src='./assets/layers/charging_station/bosch-5pin.svg'/> <span><b>Bosch Active Connect with 5 pins</b> and cable</span></div>"
|
||||
}
|
||||
},
|
||||
"question": "Which charging stations are available here?"
|
||||
|
@ -1219,8 +1228,8 @@
|
|||
"render": "<div style='display: inline-block'><b><b>USB</b> to charge phones and small electronics</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/usb_port.svg'/></div> outputs at most {socket:USB-A:current}A"
|
||||
},
|
||||
"current-14": {
|
||||
"question": "What current do the plugs with <div style='display: inline-block'><b><b>Bosch Active Connect</b> with cable</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/bosch-3pin.svg'/></div> offer?",
|
||||
"render": "<div style='display: inline-block'><b><b>Bosch Active Connect</b> with cable</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/bosch-3pin.svg'/></div> outputs at most {socket:bosch_3pin:current}A"
|
||||
"question": "What current do the plugs with <div style='display: inline-block'><b><b>Bosch Active Connect with 3 pins</b> and cable</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/bosch-3pin.svg'/></div> offer?",
|
||||
"render": "<div style='display: inline-block'><b><b>Bosch Active Connect with 3 pins</b> and cable</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/bosch-3pin.svg'/></div> outputs at most {socket:bosch_3pin:current}A"
|
||||
},
|
||||
"current-2": {
|
||||
"mappings": {
|
||||
|
@ -1372,8 +1381,8 @@
|
|||
"render": "There are <b class='text-xl'>{socket:USB-A}</b> plugs of type <div style='display: inline-block'><b><b>USB</b> to charge phones and small electronics</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/usb_port.svg'/></div> available here"
|
||||
},
|
||||
"plugs-14": {
|
||||
"question": "How much plugs of type <div style='display: inline-block'><b><b>Bosch Active Connect</b> with cable</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/bosch-3pin.svg'/></div> are available here?",
|
||||
"render": "There are <b class='text-xl'>{socket:bosch_3pin}</b> plugs of type <div style='display: inline-block'><b><b>Bosch Active Connect</b> with cable</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/bosch-3pin.svg'/></div> available here"
|
||||
"question": "How much plugs of type <div style='display: inline-block'><b><b>Bosch Active Connect with 3 pins</b> and cable</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/bosch-3pin.svg'/></div> are available here?",
|
||||
"render": "There are <b class='text-xl'>{socket:bosch_3pin}</b> plugs of type <div style='display: inline-block'><b><b>Bosch Active Connect with 3 pins</b> and cable</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/bosch-3pin.svg'/></div> available here"
|
||||
},
|
||||
"plugs-2": {
|
||||
"question": "How much plugs of type <div style='display: inline-block'><b><b>Chademo</b></b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Chademo_type4.svg'/></div> are available here?",
|
||||
|
@ -1477,8 +1486,8 @@
|
|||
"render": "<div style='display: inline-block'><b><b>USB</b> to charge phones and small electronics</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/usb_port.svg'/></div> outputs at most {socket:USB-A:output}"
|
||||
},
|
||||
"power-output-14": {
|
||||
"question": "What power output does a single plug of type <div style='display: inline-block'><b><b>Bosch Active Connect</b> with cable</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/bosch-3pin.svg'/></div> offer?",
|
||||
"render": "<div style='display: inline-block'><b><b>Bosch Active Connect</b> with cable</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/bosch-3pin.svg'/></div> outputs at most {socket:bosch_3pin:output}"
|
||||
"question": "What power output does a single plug of type <div style='display: inline-block'><b><b>Bosch Active Connect with 3 pins</b> and cable</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/bosch-3pin.svg'/></div> offer?",
|
||||
"render": "<div style='display: inline-block'><b><b>Bosch Active Connect with 3 pins</b> and cable</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/bosch-3pin.svg'/></div> outputs at most {socket:bosch_3pin:output}"
|
||||
},
|
||||
"power-output-2": {
|
||||
"mappings": {
|
||||
|
@ -1650,8 +1659,8 @@
|
|||
"render": "<div style='display: inline-block'><b><b>USB</b> to charge phones and small electronics</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/usb_port.svg'/></div> outputs {socket:USB-A:voltage} volt"
|
||||
},
|
||||
"voltage-14": {
|
||||
"question": "What voltage do the plugs with <div style='display: inline-block'><b><b>Bosch Active Connect</b> with cable</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/bosch-3pin.svg'/></div> offer?",
|
||||
"render": "<div style='display: inline-block'><b><b>Bosch Active Connect</b> with cable</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/bosch-3pin.svg'/></div> outputs {socket:bosch_3pin:voltage} volt"
|
||||
"question": "What voltage do the plugs with <div style='display: inline-block'><b><b>Bosch Active Connect with 3 pins</b> and cable</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/bosch-3pin.svg'/></div> offer?",
|
||||
"render": "<div style='display: inline-block'><b><b>Bosch Active Connect with 3 pins</b> and cable</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/bosch-3pin.svg'/></div> outputs {socket:bosch_3pin:voltage} volt"
|
||||
},
|
||||
"voltage-2": {
|
||||
"mappings": {
|
||||
|
@ -1746,6 +1755,22 @@
|
|||
"website": {
|
||||
"question": "What is the website of the operator?",
|
||||
"render": "More info on <a href='{website}'>{website}</a>"
|
||||
},
|
||||
"voltage-15": {
|
||||
"question": "What voltage do the plugs with <div style='display: inline-block'><b><b>Bosch Active Connect with 5 pins</b> and cable</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/bosch-5pin.svg'/></div> offer?",
|
||||
"render": "<div style='display: inline-block'><b><b>Bosch Active Connect with 5 pins</b> and cable</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/bosch-5pin.svg'/></div> outputs {socket:bosch_5pin:voltage} volt"
|
||||
},
|
||||
"power-output-15": {
|
||||
"question": "What power output does a single plug of type <div style='display: inline-block'><b><b>Bosch Active Connect with 5 pins</b> and cable</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/bosch-5pin.svg'/></div> offer?",
|
||||
"render": "<div style='display: inline-block'><b><b>Bosch Active Connect with 5 pins</b> and cable</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/bosch-5pin.svg'/></div> outputs at most {socket:bosch_5pin:output}"
|
||||
},
|
||||
"plugs-15": {
|
||||
"question": "How much plugs of type <div style='display: inline-block'><b><b>Bosch Active Connect with 5 pins</b> and cable</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/bosch-5pin.svg'/></div> are available here?",
|
||||
"render": "There are <b class='text-xl'>{socket:bosch_5pin}</b> plugs of type <div style='display: inline-block'><b><b>Bosch Active Connect with 5 pins</b> and cable</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/bosch-5pin.svg'/></div> available here"
|
||||
},
|
||||
"current-15": {
|
||||
"question": "What current do the plugs with <div style='display: inline-block'><b><b>Bosch Active Connect with 5 pins</b> and cable</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/bosch-5pin.svg'/></div> offer?",
|
||||
"render": "<div style='display: inline-block'><b><b>Bosch Active Connect with 5 pins</b> and cable</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/bosch-5pin.svg'/></div> outputs at most {socket:bosch_5pin:current}A"
|
||||
}
|
||||
},
|
||||
"title": {
|
||||
|
@ -2475,26 +2500,6 @@
|
|||
"render": "Drinking water"
|
||||
}
|
||||
},
|
||||
"etymology": {
|
||||
"description": "All objects which have an etymology known",
|
||||
"name": "Has etymolgy",
|
||||
"tagRenderings": {
|
||||
"simple etymology": {
|
||||
"question": "What is this object named after?<br/><span class='subtle'>This might be written on the street name sign</span>",
|
||||
"render": "Named after {name:etymology}"
|
||||
},
|
||||
"street-name-sign-image": {
|
||||
"render": "{image_carousel(image:streetsign)}<br/>{image_upload(image:streetsign, Add image of a street name sign)}"
|
||||
},
|
||||
"wikipedia-etymology": {
|
||||
"question": "What is the Wikidata-item that this object is named after?",
|
||||
"render": "<h3>Wikipedia article of the name giver</h3>{wikipedia(name:etymology:wikidata):max-height:20rem}"
|
||||
},
|
||||
"zoeken op inventaris onroerend erfgoed": {
|
||||
"render": "<a href='https://inventaris.onroerenderfgoed.be/erfgoedobjecten?tekst={name}' target='_blank'>Search on inventaris onroerend erfgoed</a>"
|
||||
}
|
||||
}
|
||||
},
|
||||
"food": {
|
||||
"filter": {
|
||||
"0": {
|
||||
|
@ -3710,5 +3715,25 @@
|
|||
},
|
||||
"watermill": {
|
||||
"name": "Watermill"
|
||||
},
|
||||
"etymology": {
|
||||
"description": "All objects which have an etymology known",
|
||||
"name": "Has etymolgy",
|
||||
"tagRenderings": {
|
||||
"simple etymology": {
|
||||
"question": "What is this object named after?<br/><span class='subtle'>This might be written on the street name sign</span>",
|
||||
"render": "Named after {name:etymology}"
|
||||
},
|
||||
"street-name-sign-image": {
|
||||
"render": "{image_carousel(image:streetsign)}<br/>{image_upload(image:streetsign, Add image of a street name sign)}"
|
||||
},
|
||||
"wikipedia-etymology": {
|
||||
"question": "What is the Wikidata-item that this object is named after?",
|
||||
"render": "<h3>Wikipedia article of the name giver</h3>{wikipedia(name:etymology:wikidata):max-height:20rem}"
|
||||
},
|
||||
"zoeken op inventaris onroerend erfgoed": {
|
||||
"render": "<a href='https://inventaris.onroerenderfgoed.be/erfgoedobjecten?tekst={name}' target='_blank'>Search on inventaris onroerend erfgoed</a>"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
|
@ -1026,7 +1026,10 @@
|
|||
"question": "Heeft een <div style='display: inline-block'><b><b>USB</b> om GSMs en kleine electronica op te laden</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/usb_port.svg'/></div>"
|
||||
},
|
||||
"15": {
|
||||
"question": "Heeft een <div style='display: inline-block'><b><b>Bosch Active Connect</b> aan een kabel</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/bosch-3pin.svg'/></div>"
|
||||
"question": "Heeft een <div style='display: inline-block'><b><b>Bosch Active Connect met 3 pinnen</b> aan een kabel</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/bosch-3pin.svg'/></div>"
|
||||
},
|
||||
"16": {
|
||||
"question": "Heeft een <div style='display: inline-block'><b><b>Bosch Active Connect met 5 pinnen</b> aan een kabel</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/bosch-5pin.svg'/></div>"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -1119,10 +1122,16 @@
|
|||
"then": "<div class='flex'><img class='w-12 mx-4' src='./assets/layers/charging_station/usb_port.svg'/> <span><b>USB</b> om GSMs en kleine electronica op te laden</span></div>"
|
||||
},
|
||||
"28": {
|
||||
"then": "<div class='flex'><img class='w-12 mx-4' src='./assets/layers/charging_station/bosch-3pin.svg'/> <span><b>Bosch Active Connect</b> aan een kabel</span></div>"
|
||||
"then": "<div class='flex'><img class='w-12 mx-4' src='./assets/layers/charging_station/bosch-3pin.svg'/> <span><b>Bosch Active Connect met 3 pinnen</b> aan een kabel</span></div>"
|
||||
},
|
||||
"29": {
|
||||
"then": "<div class='flex'><img class='w-12 mx-4' src='./assets/layers/charging_station/bosch-3pin.svg'/> <span><b>Bosch Active Connect</b> aan een kabel</span></div>"
|
||||
"then": "<div class='flex'><img class='w-12 mx-4' src='./assets/layers/charging_station/bosch-3pin.svg'/> <span><b>Bosch Active Connect met 3 pinnen</b> aan een kabel</span></div>"
|
||||
},
|
||||
"30": {
|
||||
"then": "<div class='flex'><img class='w-12 mx-4' src='./assets/layers/charging_station/bosch-5pin.svg'/> <span><b>Bosch Active Connect met 5 pinnen</b> aan een kabel</span></div>"
|
||||
},
|
||||
"31": {
|
||||
"then": "<div class='flex'><img class='w-12 mx-4' src='./assets/layers/charging_station/bosch-5pin.svg'/> <span><b>Bosch Active Connect met 5 pinnen</b> aan een kabel</span></div>"
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -1217,8 +1226,8 @@
|
|||
"render": "<div style='display: inline-block'><b><b>USB</b> om GSMs en kleine electronica op te laden</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/usb_port.svg'/></div> levert een stroom van maximaal {socket:USB-A:current}A"
|
||||
},
|
||||
"current-14": {
|
||||
"question": "Welke stroom levert de stekker van type <div style='display: inline-block'><b><b>Bosch Active Connect</b> aan een kabel</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/bosch-3pin.svg'/></div>?",
|
||||
"render": "<div style='display: inline-block'><b><b>Bosch Active Connect</b> aan een kabel</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/bosch-3pin.svg'/></div> levert een stroom van maximaal {socket:bosch_3pin:current}A"
|
||||
"question": "Welke stroom levert de stekker van type <div style='display: inline-block'><b><b>Bosch Active Connect met 3 pinnen</b> aan een kabel</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/bosch-3pin.svg'/></div>?",
|
||||
"render": "<div style='display: inline-block'><b><b>Bosch Active Connect met 3 pinnen</b> aan een kabel</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/bosch-3pin.svg'/></div> levert een stroom van maximaal {socket:bosch_3pin:current}A"
|
||||
},
|
||||
"current-2": {
|
||||
"mappings": {
|
||||
|
@ -1362,8 +1371,8 @@
|
|||
"render": "Hier zijn <b class='text-xl'>{socket:USB-A}</b> stekkers van het type <div style='display: inline-block'><b><b>USB</b> om GSMs en kleine electronica op te laden</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/usb_port.svg'/></div>"
|
||||
},
|
||||
"plugs-14": {
|
||||
"question": "Hoeveel stekkers van type <div style='display: inline-block'><b><b>Bosch Active Connect</b> aan een kabel</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/bosch-3pin.svg'/></div> heeft dit oplaadpunt?",
|
||||
"render": "Hier zijn <b class='text-xl'>{socket:bosch_3pin}</b> stekkers van het type <div style='display: inline-block'><b><b>Bosch Active Connect</b> aan een kabel</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/bosch-3pin.svg'/></div>"
|
||||
"question": "Hoeveel stekkers van type <div style='display: inline-block'><b><b>Bosch Active Connect met 3 pinnen</b> aan een kabel</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/bosch-3pin.svg'/></div> heeft dit oplaadpunt?",
|
||||
"render": "Hier zijn <b class='text-xl'>{socket:bosch_3pin}</b> stekkers van het type <div style='display: inline-block'><b><b>Bosch Active Connect met 3 pinnen</b> aan een kabel</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/bosch-3pin.svg'/></div>"
|
||||
},
|
||||
"plugs-2": {
|
||||
"question": "Hoeveel stekkers van type <div style='display: inline-block'><b><b>Chademo</b></b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Chademo_type4.svg'/></div> heeft dit oplaadpunt?",
|
||||
|
@ -1467,8 +1476,8 @@
|
|||
"render": "<div style='display: inline-block'><b><b>USB</b> om GSMs en kleine electronica op te laden</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/usb_port.svg'/></div> levert een vermogen van maximaal {socket:USB-A:output}"
|
||||
},
|
||||
"power-output-14": {
|
||||
"question": "Welk vermogen levert een enkele stekker van type <div style='display: inline-block'><b><b>Bosch Active Connect</b> aan een kabel</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/bosch-3pin.svg'/></div>?",
|
||||
"render": "<div style='display: inline-block'><b><b>Bosch Active Connect</b> aan een kabel</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/bosch-3pin.svg'/></div> levert een vermogen van maximaal {socket:bosch_3pin:output}"
|
||||
"question": "Welk vermogen levert een enkele stekker van type <div style='display: inline-block'><b><b>Bosch Active Connect met 3 pinnen</b> aan een kabel</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/bosch-3pin.svg'/></div>?",
|
||||
"render": "<div style='display: inline-block'><b><b>Bosch Active Connect met 3 pinnen</b> aan een kabel</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/bosch-3pin.svg'/></div> levert een vermogen van maximaal {socket:bosch_3pin:output}"
|
||||
},
|
||||
"power-output-2": {
|
||||
"mappings": {
|
||||
|
@ -1636,8 +1645,8 @@
|
|||
"render": "<div style='display: inline-block'><b><b>USB</b> om GSMs en kleine electronica op te laden</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/usb_port.svg'/></div> heeft een spanning van {socket:USB-A:voltage} volt"
|
||||
},
|
||||
"voltage-14": {
|
||||
"question": "Welke spanning levert de stekker van type <div style='display: inline-block'><b><b>Bosch Active Connect</b> aan een kabel</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/bosch-3pin.svg'/></div>",
|
||||
"render": "<div style='display: inline-block'><b><b>Bosch Active Connect</b> aan een kabel</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/bosch-3pin.svg'/></div> heeft een spanning van {socket:bosch_3pin:voltage} volt"
|
||||
"question": "Welke spanning levert de stekker van type <div style='display: inline-block'><b><b>Bosch Active Connect met 3 pinnen</b> aan een kabel</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/bosch-3pin.svg'/></div>",
|
||||
"render": "<div style='display: inline-block'><b><b>Bosch Active Connect met 3 pinnen</b> aan een kabel</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/bosch-3pin.svg'/></div> heeft een spanning van {socket:bosch_3pin:voltage} volt"
|
||||
},
|
||||
"voltage-2": {
|
||||
"mappings": {
|
||||
|
@ -1728,6 +1737,22 @@
|
|||
},
|
||||
"question": "Welke spanning levert de stekker van type <div style='display: inline-block'><b><b>Type 2 met kabel</b> (J1772)</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Type2_tethered.svg'/></div>",
|
||||
"render": "<div style='display: inline-block'><b><b>Type 2 met kabel</b> (J1772)</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/Type2_tethered.svg'/></div> heeft een spanning van {socket:type2_cable:voltage} volt"
|
||||
},
|
||||
"voltage-15": {
|
||||
"question": "Welke spanning levert de stekker van type <div style='display: inline-block'><b><b>Bosch Active Connect met 5 pinnen</b> aan een kabel</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/bosch-5pin.svg'/></div>",
|
||||
"render": "<div style='display: inline-block'><b><b>Bosch Active Connect met 5 pinnen</b> aan een kabel</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/bosch-5pin.svg'/></div> heeft een spanning van {socket:bosch_5pin:voltage} volt"
|
||||
},
|
||||
"power-output-15": {
|
||||
"question": "Welk vermogen levert een enkele stekker van type <div style='display: inline-block'><b><b>Bosch Active Connect met 5 pinnen</b> aan een kabel</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/bosch-5pin.svg'/></div>?",
|
||||
"render": "<div style='display: inline-block'><b><b>Bosch Active Connect met 5 pinnen</b> aan een kabel</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/bosch-5pin.svg'/></div> levert een vermogen van maximaal {socket:bosch_5pin:output}"
|
||||
},
|
||||
"plugs-15": {
|
||||
"question": "Hoeveel stekkers van type <div style='display: inline-block'><b><b>Bosch Active Connect met 5 pinnen</b> aan een kabel</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/bosch-5pin.svg'/></div> heeft dit oplaadpunt?",
|
||||
"render": "Hier zijn <b class='text-xl'>{socket:bosch_5pin}</b> stekkers van het type <div style='display: inline-block'><b><b>Bosch Active Connect met 5 pinnen</b> aan een kabel</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/bosch-5pin.svg'/></div>"
|
||||
},
|
||||
"current-15": {
|
||||
"question": "Welke stroom levert de stekker van type <div style='display: inline-block'><b><b>Bosch Active Connect met 5 pinnen</b> aan een kabel</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/bosch-5pin.svg'/></div>?",
|
||||
"render": "<div style='display: inline-block'><b><b>Bosch Active Connect met 5 pinnen</b> aan een kabel</b> <img style='width:1rem; display: inline-block' src='./assets/layers/charging_station/bosch-5pin.svg'/></div> levert een stroom van maximaal {socket:bosch_5pin:current}A"
|
||||
}
|
||||
},
|
||||
"units": {
|
||||
|
@ -2421,26 +2446,6 @@
|
|||
"render": "Drinkbaar water"
|
||||
}
|
||||
},
|
||||
"etymology": {
|
||||
"description": "Alle lagen met een gelinkt etymology",
|
||||
"name": "Heeft etymology info",
|
||||
"tagRenderings": {
|
||||
"simple etymology": {
|
||||
"question": "Naar wat is dit object vernoemd?<br/><span class='subtle'>Dit staat mogelijks vermeld op het straatnaambordje</subtle>",
|
||||
"render": "Vernoemd naar {name:etymology}"
|
||||
},
|
||||
"street-name-sign-image": {
|
||||
"render": "{image_carousel(image:streetsign)}<br/>{image_upload(image:streetsign, Voeg afbeelding van straatnaambordje toe)}"
|
||||
},
|
||||
"wikipedia-etymology": {
|
||||
"question": "Wat is het Wikidata-item van hetgeen dit object is naar vernoemd?",
|
||||
"render": "<h3>Wikipedia artikel van de naamgever</h3>{wikipedia(name:etymology:wikidata):max-height:20rem}"
|
||||
},
|
||||
"zoeken op inventaris onroerend erfgoed": {
|
||||
"render": "<a href='https://inventaris.onroerenderfgoed.be/erfgoedobjecten?tekst={name}' target='_blank'>Zoeken op inventaris onroerend erfgoed</a>"
|
||||
}
|
||||
}
|
||||
},
|
||||
"food": {
|
||||
"filter": {
|
||||
"0": {
|
||||
|
@ -4072,5 +4077,25 @@
|
|||
},
|
||||
"render": "Watermolens"
|
||||
}
|
||||
},
|
||||
"etymology": {
|
||||
"description": "Alle lagen met een gelinkt etymology",
|
||||
"name": "Heeft etymology info",
|
||||
"tagRenderings": {
|
||||
"simple etymology": {
|
||||
"question": "Naar wat is dit object vernoemd?<br/><span class='subtle'>Dit staat mogelijks vermeld op het straatnaambordje</subtle>",
|
||||
"render": "Vernoemd naar {name:etymology}"
|
||||
},
|
||||
"street-name-sign-image": {
|
||||
"render": "{image_carousel(image:streetsign)}<br/>{image_upload(image:streetsign, Voeg afbeelding van straatnaambordje toe)}"
|
||||
},
|
||||
"wikipedia-etymology": {
|
||||
"question": "Wat is het Wikidata-item van hetgeen dit object is naar vernoemd?",
|
||||
"render": "<h3>Wikipedia artikel van de naamgever</h3>{wikipedia(name:etymology:wikidata):max-height:20rem}"
|
||||
},
|
||||
"zoeken op inventaris onroerend erfgoed": {
|
||||
"render": "<a href='https://inventaris.onroerenderfgoed.be/erfgoedobjecten?tekst={name}' target='_blank'>Zoeken op inventaris onroerend erfgoed</a>"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
1
langs/layers/pt.json
Normal file
1
langs/layers/pt.json
Normal file
|
@ -0,0 +1 @@
|
|||
{}
|
|
@ -13,8 +13,6 @@
|
|||
<link href="./css/index-tailwind-output.css" rel="stylesheet"/>
|
||||
<link href="./css/wikipedia.css" rel="stylesheet"/>
|
||||
<link href="css/ReviewElement.css" rel="stylesheet"/>
|
||||
<link href="vendor/MarkerCluster.css" rel="stylesheet"/>
|
||||
<link href="vendor/MarkerCluster.Default.css" rel="stylesheet"/>
|
||||
<meta content="website" property="og:type">
|
||||
<meta content="width=device-width, initial-scale=1.0, user-scalable=no" name="viewport">
|
||||
|
||||
|
|
68
vendor/MarkerCluster.Default.css
vendored
68
vendor/MarkerCluster.Default.css
vendored
|
@ -1,68 +0,0 @@
|
|||
.marker-cluster-small {
|
||||
background-color: rgba(181, 226, 140, 0.6);
|
||||
}
|
||||
|
||||
.marker-cluster-small div {
|
||||
background-color: rgba(110, 204, 57, 0.6);
|
||||
}
|
||||
|
||||
.marker-cluster-medium {
|
||||
background-color: rgba(241, 211, 87, 0.6);
|
||||
}
|
||||
|
||||
.marker-cluster-medium div {
|
||||
background-color: rgba(240, 194, 12, 0.6);
|
||||
}
|
||||
|
||||
.marker-cluster-large {
|
||||
background-color: rgba(253, 156, 115, 0.6);
|
||||
}
|
||||
|
||||
.marker-cluster-large div {
|
||||
background-color: rgba(241, 128, 23, 0.6);
|
||||
}
|
||||
|
||||
/* IE 6-8 fallback colors */
|
||||
.leaflet-oldie .marker-cluster-small {
|
||||
background-color: rgb(181, 226, 140);
|
||||
}
|
||||
|
||||
.leaflet-oldie .marker-cluster-small div {
|
||||
background-color: rgb(110, 204, 57);
|
||||
}
|
||||
|
||||
.leaflet-oldie .marker-cluster-medium {
|
||||
background-color: rgb(241, 211, 87);
|
||||
}
|
||||
|
||||
.leaflet-oldie .marker-cluster-medium div {
|
||||
background-color: rgb(240, 194, 12);
|
||||
}
|
||||
|
||||
.leaflet-oldie .marker-cluster-large {
|
||||
background-color: rgb(253, 156, 115);
|
||||
}
|
||||
|
||||
.leaflet-oldie .marker-cluster-large div {
|
||||
background-color: rgb(241, 128, 23);
|
||||
}
|
||||
|
||||
.marker-cluster {
|
||||
background-clip: padding-box;
|
||||
border-radius: 20px;
|
||||
}
|
||||
|
||||
.marker-cluster div {
|
||||
width: 30px;
|
||||
height: 30px;
|
||||
margin-left: 5px;
|
||||
margin-top: 5px;
|
||||
|
||||
text-align: center;
|
||||
border-radius: 15px;
|
||||
font: 12px "Helvetica Neue", Arial, Helvetica, sans-serif;
|
||||
}
|
||||
|
||||
.marker-cluster span {
|
||||
line-height: 30px;
|
||||
}
|
14
vendor/MarkerCluster.css
vendored
14
vendor/MarkerCluster.css
vendored
|
@ -1,14 +0,0 @@
|
|||
.leaflet-cluster-anim .leaflet-marker-icon, .leaflet-cluster-anim .leaflet-marker-shadow {
|
||||
-webkit-transition: -webkit-transform 0.3s ease-out, opacity 0.3s ease-in;
|
||||
-moz-transition: -moz-transform 0.3s ease-out, opacity 0.3s ease-in;
|
||||
-o-transition: -o-transform 0.3s ease-out, opacity 0.3s ease-in;
|
||||
transition: transform 0.3s ease-out, opacity 0.3s ease-in;
|
||||
}
|
||||
|
||||
.leaflet-cluster-spider-leg {
|
||||
/* stroke-dashoffset (duration and function) should match with leaflet-marker-icon transform in order to track it exactly */
|
||||
-webkit-transition: -webkit-stroke-dashoffset 0.3s ease-out, -webkit-stroke-opacity 0.3s ease-in;
|
||||
-moz-transition: -moz-stroke-dashoffset 0.3s ease-out, -moz-stroke-opacity 0.3s ease-in;
|
||||
-o-transition: -o-stroke-dashoffset 0.3s ease-out, -o-stroke-opacity 0.3s ease-in;
|
||||
transition: stroke-dashoffset 0.3s ease-out, stroke-opacity 0.3s ease-in;
|
||||
}
|
Loading…
Reference in a new issue