forked from MapComplete/MapComplete
extra layout changes
This commit is contained in:
parent
5d4e98dcf9
commit
93e1c60720
10 changed files with 991 additions and 15888 deletions
1046
InitUiElements.ts
1046
InitUiElements.ts
File diff suppressed because it is too large
Load diff
37
Logic/Actors/ExportPDF.ts
Normal file
37
Logic/Actors/ExportPDF.ts
Normal file
|
@ -0,0 +1,37 @@
|
|||
/**
|
||||
* Creates screenshoter to take png screenshot
|
||||
* Creates jspdf and downloads it
|
||||
* - landscape pdf
|
||||
*
|
||||
* To add new layout:
|
||||
* - add new possible layout name in constructor
|
||||
* - add new layout in "PDFLayout"
|
||||
* -> in there are more instructions
|
||||
*/
|
||||
|
||||
import jsPDF from "jspdf";
|
||||
import { SimpleMapScreenshoter } from "leaflet-simple-map-screenshoter";
|
||||
import State from "../../State";
|
||||
import Minimap from "../../UI/Base/Minimap";
|
||||
import { PDFLayout } from "./PDFLayout";
|
||||
|
||||
export default class ExportPDF {
|
||||
constructor(
|
||||
name: string,
|
||||
layout: "natuurpunt"
|
||||
){
|
||||
const screenshotter = new SimpleMapScreenshoter();
|
||||
//let temporaryMap = new Minimap();
|
||||
//temporaryMap.SetStyle('visibility: hidden');
|
||||
//temporaryMap.AttachTo("tempScreenshotDiv");
|
||||
//minimap op index.html -> hidden daar alles op doen en dan weg
|
||||
//minimap - leaflet map ophalen - boundaries ophalen - State.state.featurePipeline
|
||||
screenshotter.addTo(State.state.leafletMap.data);
|
||||
let doc = new jsPDF('l');
|
||||
screenshotter.takeScreen('image').then(image => {
|
||||
let file = new PDFLayout();
|
||||
file.AddLayout(layout, doc, image);
|
||||
doc.save(name);
|
||||
})
|
||||
}
|
||||
}
|
|
@ -1,271 +1,266 @@
|
|||
import * as L from "leaflet";
|
||||
import {UIEventSource} from "../UIEventSource";
|
||||
import { UIEventSource } from "../UIEventSource";
|
||||
import Svg from "../../Svg";
|
||||
import Img from "../../UI/Base/Img";
|
||||
import {LocalStorageSource} from "../Web/LocalStorageSource";
|
||||
import { LocalStorageSource } from "../Web/LocalStorageSource";
|
||||
import LayoutConfig from "../../Customizations/JSON/LayoutConfig";
|
||||
import {VariableUiElement} from "../../UI/Base/VariableUIElement";
|
||||
import {CenterFlexedElement} from "../../UI/Base/CenterFlexedElement";
|
||||
import { VariableUiElement } from "../../UI/Base/VariableUIElement";
|
||||
import { CenterFlexedElement } from "../../UI/Base/CenterFlexedElement";
|
||||
|
||||
export default class GeoLocationHandler extends VariableUiElement {
|
||||
/**
|
||||
* Wether or not the geolocation is active, aka the user requested the current location
|
||||
* @private
|
||||
*/
|
||||
private readonly _isActive: UIEventSource<boolean>;
|
||||
/**
|
||||
* Wether or not the geolocation is active, aka the user requested the current location
|
||||
* @private
|
||||
*/
|
||||
private readonly _isActive: UIEventSource<boolean>;
|
||||
|
||||
/**
|
||||
* Wether or not the geolocation is locked, aka the user requested the current location and wants the crosshair to follow the user
|
||||
* @private
|
||||
*/
|
||||
private readonly _isLocked: UIEventSource<boolean>;
|
||||
|
||||
/**
|
||||
* Wether or not the geolocation is locked, aka the user requested the current location and wants the crosshair to follow the user
|
||||
* @private
|
||||
*/
|
||||
private readonly _isLocked: UIEventSource<boolean>;
|
||||
/**
|
||||
* The callback over the permission API
|
||||
* @private
|
||||
*/
|
||||
private readonly _permission: UIEventSource<string>;
|
||||
|
||||
/**
|
||||
* The callback over the permission API
|
||||
* @private
|
||||
*/
|
||||
private readonly _permission: UIEventSource<string>;
|
||||
/***
|
||||
* The marker on the map, in order to update it
|
||||
* @private
|
||||
*/
|
||||
private _marker: L.Marker;
|
||||
/**
|
||||
* Literally: _currentGPSLocation.data != undefined
|
||||
* @private
|
||||
*/
|
||||
private readonly _hasLocation: UIEventSource<boolean>;
|
||||
private readonly _currentGPSLocation: UIEventSource<{
|
||||
latlng: any;
|
||||
accuracy: number;
|
||||
}>;
|
||||
/**
|
||||
* Kept in order to update the marker
|
||||
* @private
|
||||
*/
|
||||
private readonly _leafletMap: UIEventSource<L.Map>;
|
||||
|
||||
/***
|
||||
* The marker on the map, in order to update it
|
||||
* @private
|
||||
*/
|
||||
private _marker: L.Marker;
|
||||
/**
|
||||
* Literally: _currentGPSLocation.data != undefined
|
||||
* @private
|
||||
*/
|
||||
private readonly _hasLocation: UIEventSource<boolean>;
|
||||
private readonly _currentGPSLocation: UIEventSource<{
|
||||
latlng: any;
|
||||
accuracy: number;
|
||||
}>;
|
||||
/**
|
||||
* Kept in order to update the marker
|
||||
* @private
|
||||
*/
|
||||
private readonly _leafletMap: UIEventSource<L.Map>;
|
||||
/**
|
||||
* The date when the user requested the geolocation. If we have a location, it'll autozoom to it the first 30 secs
|
||||
* @private
|
||||
*/
|
||||
private _lastUserRequest: Date;
|
||||
|
||||
/**
|
||||
* A small flag on localstorage. If the user previously granted the geolocation, it will be set.
|
||||
* On firefox, the permissions api is broken (probably fingerprint resistiance) and "granted + don't ask again" doesn't stick between sessions.
|
||||
*
|
||||
* Instead, we set this flag. If this flag is set upon loading the page, we start geolocating immediately.
|
||||
* If the user denies the geolocation this time, we unset this flag
|
||||
* @private
|
||||
*/
|
||||
private readonly _previousLocationGrant: UIEventSource<string>;
|
||||
private readonly _layoutToUse: UIEventSource<LayoutConfig>;
|
||||
|
||||
/**
|
||||
* The date when the user requested the geolocation. If we have a location, it'll autozoom to it the first 30 secs
|
||||
* @private
|
||||
*/
|
||||
private _lastUserRequest: Date;
|
||||
constructor(
|
||||
currentGPSLocation: UIEventSource<{ latlng: any; accuracy: number }>,
|
||||
leafletMap: UIEventSource<L.Map>,
|
||||
layoutToUse: UIEventSource<LayoutConfig>
|
||||
) {
|
||||
const hasLocation = currentGPSLocation.map(
|
||||
(location) => location !== undefined
|
||||
);
|
||||
const previousLocationGrant = LocalStorageSource.Get(
|
||||
"geolocation-permissions"
|
||||
);
|
||||
const isActive = new UIEventSource<boolean>(false);
|
||||
const isLocked = new UIEventSource<boolean>(false);
|
||||
super(
|
||||
hasLocation.map(
|
||||
(hasLocationData) => {
|
||||
let icon: string;
|
||||
|
||||
if (isLocked.data) {
|
||||
icon = Svg.location;
|
||||
} else if (hasLocationData) {
|
||||
icon = Svg.crosshair_blue;
|
||||
} else if (isActive.data) {
|
||||
icon = Svg.crosshair_blue_center;
|
||||
} else {
|
||||
icon = Svg.crosshair;
|
||||
}
|
||||
|
||||
/**
|
||||
* A small flag on localstorage. If the user previously granted the geolocation, it will be set.
|
||||
* On firefox, the permissions api is broken (probably fingerprint resistiance) and "granted + don't ask again" doesn't stick between sessions.
|
||||
*
|
||||
* Instead, we set this flag. If this flag is set upon loading the page, we start geolocating immediately.
|
||||
* If the user denies the geolocation this time, we unset this flag
|
||||
* @private
|
||||
*/
|
||||
private readonly _previousLocationGrant: UIEventSource<string>;
|
||||
private readonly _layoutToUse: UIEventSource<LayoutConfig>;
|
||||
return new CenterFlexedElement(
|
||||
Img.AsImageElement(icon, "", "width:1.25rem;height:1.25rem")
|
||||
);
|
||||
},
|
||||
[isActive, isLocked]
|
||||
)
|
||||
);
|
||||
this._isActive = isActive;
|
||||
this._isLocked = isLocked;
|
||||
this._permission = new UIEventSource<string>("");
|
||||
this._previousLocationGrant = previousLocationGrant;
|
||||
this._currentGPSLocation = currentGPSLocation;
|
||||
this._leafletMap = leafletMap;
|
||||
this._layoutToUse = layoutToUse;
|
||||
this._hasLocation = hasLocation;
|
||||
const self = this;
|
||||
|
||||
constructor(
|
||||
currentGPSLocation: UIEventSource<{ latlng: any; accuracy: number }>,
|
||||
leafletMap: UIEventSource<L.Map>,
|
||||
layoutToUse: UIEventSource<LayoutConfig>
|
||||
) {
|
||||
const hasLocation = currentGPSLocation.map(
|
||||
(location) => location !== undefined
|
||||
const currentPointer = this._isActive.map(
|
||||
(isActive) => {
|
||||
if (isActive && !self._hasLocation.data) {
|
||||
return "cursor-wait";
|
||||
}
|
||||
return "cursor-pointer";
|
||||
},
|
||||
[this._hasLocation]
|
||||
);
|
||||
currentPointer.addCallbackAndRun((pointerClass) => {
|
||||
self.SetClass(pointerClass);
|
||||
});
|
||||
|
||||
this.onClick(() => {
|
||||
if (self._hasLocation.data) {
|
||||
self._isLocked.setData(!self._isLocked.data);
|
||||
}
|
||||
self.init(true);
|
||||
});
|
||||
this.init(false);
|
||||
|
||||
this._currentGPSLocation.addCallback((location) => {
|
||||
self._previousLocationGrant.setData("granted");
|
||||
|
||||
const timeSinceRequest =
|
||||
(new Date().getTime() - (self._lastUserRequest?.getTime() ?? 0)) / 1000;
|
||||
if (timeSinceRequest < 30) {
|
||||
self.MoveToCurrentLoction(16);
|
||||
} else if (self._isLocked.data) {
|
||||
self.MoveToCurrentLoction();
|
||||
}
|
||||
|
||||
let color = "#1111cc";
|
||||
try {
|
||||
color = getComputedStyle(document.body).getPropertyValue(
|
||||
"--catch-detail-color"
|
||||
);
|
||||
const previousLocationGrant = LocalStorageSource.Get(
|
||||
"geolocation-permissions"
|
||||
);
|
||||
const isActive = new UIEventSource<boolean>(false);
|
||||
const isLocked = new UIEventSource<boolean>(false);
|
||||
super(
|
||||
hasLocation.map(
|
||||
(hasLocationData) => {
|
||||
let icon: string;
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
}
|
||||
const icon = L.icon({
|
||||
iconUrl: Img.AsData(Svg.crosshair.replace(/#000000/g, color)),
|
||||
iconSize: [40, 40], // size of the icon
|
||||
iconAnchor: [20, 20], // point of the icon which will correspond to marker's location
|
||||
});
|
||||
|
||||
if (isLocked.data) {
|
||||
icon = Svg.crosshair_locked;
|
||||
} else if (hasLocationData) {
|
||||
icon = Svg.crosshair_blue;
|
||||
} else if (isActive.data) {
|
||||
icon = Svg.crosshair_blue_center;
|
||||
} else {
|
||||
icon = Svg.crosshair;
|
||||
}
|
||||
const map = self._leafletMap.data;
|
||||
|
||||
return new CenterFlexedElement(
|
||||
Img.AsImageElement(icon, "", "width:1.25rem;height:1.25rem")
|
||||
);
|
||||
const newMarker = L.marker(location.latlng, { icon: icon });
|
||||
newMarker.addTo(map);
|
||||
|
||||
},
|
||||
[isActive, isLocked]
|
||||
)
|
||||
);
|
||||
this._isActive = isActive;
|
||||
this._isLocked = isLocked;
|
||||
this._permission = new UIEventSource<string>("");
|
||||
this._previousLocationGrant = previousLocationGrant;
|
||||
this._currentGPSLocation = currentGPSLocation;
|
||||
this._leafletMap = leafletMap;
|
||||
this._layoutToUse = layoutToUse;
|
||||
this._hasLocation = hasLocation;
|
||||
const self = this;
|
||||
if (self._marker !== undefined) {
|
||||
map.removeLayer(self._marker);
|
||||
}
|
||||
self._marker = newMarker;
|
||||
});
|
||||
}
|
||||
|
||||
const currentPointer = this._isActive.map(
|
||||
(isActive) => {
|
||||
if (isActive && !self._hasLocation.data) {
|
||||
return "cursor-wait";
|
||||
}
|
||||
return "cursor-pointer";
|
||||
},
|
||||
[this._hasLocation]
|
||||
);
|
||||
currentPointer.addCallbackAndRun((pointerClass) => {
|
||||
self.SetClass(pointerClass);
|
||||
});
|
||||
|
||||
this.onClick(() => {
|
||||
if (self._hasLocation.data) {
|
||||
self._isLocked.setData(!self._isLocked.data);
|
||||
}
|
||||
self.init(true);
|
||||
});
|
||||
this.init(false);
|
||||
|
||||
|
||||
this._currentGPSLocation.addCallback((location) => {
|
||||
self._previousLocationGrant.setData("granted");
|
||||
|
||||
const timeSinceRequest =
|
||||
(new Date().getTime() - (self._lastUserRequest?.getTime() ?? 0)) / 1000;
|
||||
if (timeSinceRequest < 30) {
|
||||
self.MoveToCurrentLoction(16);
|
||||
} else if (self._isLocked.data) {
|
||||
self.MoveToCurrentLoction();
|
||||
}
|
||||
|
||||
let color = "#1111cc";
|
||||
try {
|
||||
color = getComputedStyle(document.body).getPropertyValue(
|
||||
"--catch-detail-color"
|
||||
);
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
}
|
||||
const icon = L.icon({
|
||||
iconUrl: Img.AsData(Svg.crosshair.replace(/#000000/g, color)),
|
||||
iconSize: [40, 40], // size of the icon
|
||||
iconAnchor: [20, 20], // point of the icon which will correspond to marker's location
|
||||
});
|
||||
|
||||
const map = self._leafletMap.data;
|
||||
|
||||
const newMarker = L.marker(location.latlng, {icon: icon});
|
||||
newMarker.addTo(map);
|
||||
|
||||
if (self._marker !== undefined) {
|
||||
map.removeLayer(self._marker);
|
||||
}
|
||||
self._marker = newMarker;
|
||||
});
|
||||
private init(askPermission: boolean) {
|
||||
const self = this;
|
||||
if (self._isActive.data) {
|
||||
self.MoveToCurrentLoction(16);
|
||||
return;
|
||||
}
|
||||
|
||||
private init(askPermission: boolean) {
|
||||
const self = this;
|
||||
if (self._isActive.data) {
|
||||
self.MoveToCurrentLoction(16);
|
||||
return;
|
||||
}
|
||||
try {
|
||||
navigator?.permissions
|
||||
?.query({name: "geolocation"})
|
||||
?.then(function (status) {
|
||||
console.log("Geolocation is already", status);
|
||||
if (status.state === "granted") {
|
||||
self.StartGeolocating(false);
|
||||
}
|
||||
self._permission.setData(status.state);
|
||||
status.onchange = function () {
|
||||
self._permission.setData(status.state);
|
||||
};
|
||||
});
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
}
|
||||
if (askPermission) {
|
||||
self.StartGeolocating(true);
|
||||
} else if (this._previousLocationGrant.data === "granted") {
|
||||
this._previousLocationGrant.setData("");
|
||||
try {
|
||||
navigator?.permissions
|
||||
?.query({ name: "geolocation" })
|
||||
?.then(function (status) {
|
||||
console.log("Geolocation is already", status);
|
||||
if (status.state === "granted") {
|
||||
self.StartGeolocating(false);
|
||||
}
|
||||
}
|
||||
self._permission.setData(status.state);
|
||||
status.onchange = function () {
|
||||
self._permission.setData(status.state);
|
||||
};
|
||||
});
|
||||
} catch (e) {
|
||||
console.error(e);
|
||||
}
|
||||
if (askPermission) {
|
||||
self.StartGeolocating(true);
|
||||
} else if (this._previousLocationGrant.data === "granted") {
|
||||
this._previousLocationGrant.setData("");
|
||||
self.StartGeolocating(false);
|
||||
}
|
||||
}
|
||||
|
||||
private MoveToCurrentLoction(targetZoom = 16) {
|
||||
const location = this._currentGPSLocation.data;
|
||||
this._lastUserRequest = undefined;
|
||||
|
||||
if (
|
||||
this._currentGPSLocation.data.latlng[0] === 0 &&
|
||||
this._currentGPSLocation.data.latlng[1] === 0
|
||||
) {
|
||||
console.debug("Not moving to GPS-location: it is null island");
|
||||
return;
|
||||
}
|
||||
|
||||
private MoveToCurrentLoction(targetZoom = 16) {
|
||||
const location = this._currentGPSLocation.data;
|
||||
this._lastUserRequest = undefined;
|
||||
// We check that the GPS location is not out of bounds
|
||||
const b = this._layoutToUse.data.lockLocation;
|
||||
let inRange = true;
|
||||
if (b) {
|
||||
if (b !== true) {
|
||||
// B is an array with our locklocation
|
||||
inRange =
|
||||
b[0][0] <= location.latlng[0] &&
|
||||
location.latlng[0] <= b[1][0] &&
|
||||
b[0][1] <= location.latlng[1] &&
|
||||
location.latlng[1] <= b[1][1];
|
||||
}
|
||||
}
|
||||
if (!inRange) {
|
||||
console.log(
|
||||
"Not zooming to GPS location: out of bounds",
|
||||
b,
|
||||
location.latlng
|
||||
);
|
||||
} else {
|
||||
this._leafletMap.data.setView(location.latlng, targetZoom);
|
||||
}
|
||||
}
|
||||
|
||||
if (
|
||||
this._currentGPSLocation.data.latlng[0] === 0 &&
|
||||
this._currentGPSLocation.data.latlng[1] === 0
|
||||
) {
|
||||
console.debug("Not moving to GPS-location: it is null island");
|
||||
return;
|
||||
}
|
||||
private StartGeolocating(zoomToGPS = true) {
|
||||
const self = this;
|
||||
console.log("Starting geolocation");
|
||||
|
||||
// We check that the GPS location is not out of bounds
|
||||
const b = this._layoutToUse.data.lockLocation;
|
||||
let inRange = true;
|
||||
if (b) {
|
||||
if (b !== true) {
|
||||
// B is an array with our locklocation
|
||||
inRange =
|
||||
b[0][0] <= location.latlng[0] &&
|
||||
location.latlng[0] <= b[1][0] &&
|
||||
b[0][1] <= location.latlng[1] &&
|
||||
location.latlng[1] <= b[1][1];
|
||||
}
|
||||
}
|
||||
if (!inRange) {
|
||||
console.log(
|
||||
"Not zooming to GPS location: out of bounds",
|
||||
b,
|
||||
location.latlng
|
||||
);
|
||||
} else {
|
||||
this._leafletMap.data.setView(location.latlng, targetZoom);
|
||||
}
|
||||
this._lastUserRequest = zoomToGPS ? new Date() : new Date(0);
|
||||
if (self._permission.data === "denied") {
|
||||
self._previousLocationGrant.setData("");
|
||||
return "";
|
||||
}
|
||||
if (this._currentGPSLocation.data !== undefined) {
|
||||
this.MoveToCurrentLoction(16);
|
||||
}
|
||||
|
||||
private StartGeolocating(zoomToGPS = true) {
|
||||
const self = this;
|
||||
console.log("Starting geolocation");
|
||||
console.log("Searching location using GPS");
|
||||
|
||||
this._lastUserRequest = zoomToGPS ? new Date() : new Date(0);
|
||||
if (self._permission.data === "denied") {
|
||||
self._previousLocationGrant.setData("");
|
||||
return "";
|
||||
}
|
||||
if (this._currentGPSLocation.data !== undefined) {
|
||||
this.MoveToCurrentLoction(16);
|
||||
}
|
||||
|
||||
console.log("Searching location using GPS");
|
||||
|
||||
if (self._isActive.data) {
|
||||
return;
|
||||
}
|
||||
self._isActive.setData(true);
|
||||
navigator.geolocation.watchPosition(
|
||||
function (position) {
|
||||
self._currentGPSLocation.setData({
|
||||
latlng: [position.coords.latitude, position.coords.longitude],
|
||||
accuracy: position.coords.accuracy,
|
||||
});
|
||||
},
|
||||
function () {
|
||||
console.warn("Could not get location with navigator.geolocation");
|
||||
}
|
||||
);
|
||||
if (self._isActive.data) {
|
||||
return;
|
||||
}
|
||||
self._isActive.setData(true);
|
||||
navigator.geolocation.watchPosition(
|
||||
function (position) {
|
||||
self._currentGPSLocation.setData({
|
||||
latlng: [position.coords.latitude, position.coords.longitude],
|
||||
accuracy: position.coords.accuracy,
|
||||
});
|
||||
},
|
||||
function () {
|
||||
console.warn("Could not get location with navigator.geolocation");
|
||||
}
|
||||
);
|
||||
}
|
||||
}
|
||||
|
|
20
Logic/Actors/PDFLayout.ts
Normal file
20
Logic/Actors/PDFLayout.ts
Normal file
|
@ -0,0 +1,20 @@
|
|||
/**
|
||||
* Adds a theme to the pdf
|
||||
*/
|
||||
|
||||
import jsPDF from "jspdf";
|
||||
|
||||
export class PDFLayout {
|
||||
public AddLayout(layout: string, doc: jsPDF, image: Blob){
|
||||
if(layout === "natuurpunt") this.AddNatuurpuntLayout(doc, image);
|
||||
}
|
||||
public AddNatuurpuntLayout(doc: jsPDF, image: Blob){
|
||||
// Add Natuurpunt layout
|
||||
const screenRatio = screen.width/screen.height;
|
||||
let img = document.createElement('img');
|
||||
img.src = './assets/themes/natuurpunt/natuurpunt.png';
|
||||
doc.addImage(img, 'PNG', 15, 5, 20, 20);
|
||||
doc.addImage(image, 'PNG', 15, 30, 150*screenRatio, 150);
|
||||
return doc;
|
||||
}
|
||||
}
|
12
Svg.ts
12
Svg.ts
|
@ -24,6 +24,11 @@ export default class Svg {
|
|||
public static ampersand_svg() { return new Img(Svg.ampersand, true);}
|
||||
public static ampersand_ui() { return new FixedUiElement(Svg.ampersand_img);}
|
||||
|
||||
public static arrow_download = "<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"22.849\" viewBox=\"0 0 20 22.849\"> <path id=\"Path_arrow-collapse-down\" data-name=\"Path / arrow-collapse-down\" d=\"M19.92,12.08l-5.264,5.264L12,20,4.08,12.08,5.5,10.67l5.5,5.5V2h2V16.17l5.5-5.51,1.42,1.42M12,22.849H2v2H22v-2Z\" transform=\"translate(-2 -2)\" fill=\"#fff\"/> </svg> "
|
||||
public static arrow_download_img = Img.AsImageElement(Svg.arrow_download)
|
||||
public static arrow_download_svg() { return new Img(Svg.arrow_download, true);}
|
||||
public static arrow_download_ui() { return new FixedUiElement(Svg.arrow_download_img);}
|
||||
|
||||
public static arrow_left_smooth = " <!-- 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=\"100\" height=\"100\" viewBox=\"0 0 26.458333 26.458334\" version=\"1.1\" id=\"svg8\" sodipodi:docname=\"arrow-left-smooth.svg\" inkscape:version=\"0.92.4 (5da689c313, 2019-01-14)\"> <defs id=\"defs2\" /> <sodipodi:namedview id=\"base\" pagecolor=\"#ffffff\" bordercolor=\"#666666\" borderopacity=\"1.0\" inkscape:pageopacity=\"0.0\" inkscape:pageshadow=\"2\" inkscape:zoom=\"4\" inkscape:cx=\"19.262262\" inkscape:cy=\"36.323203\" inkscape:document-units=\"px\" inkscape:current-layer=\"layer1\" showgrid=\"false\" units=\"px\" showguides=\"true\" inkscape:guide-bbox=\"true\" inkscape:window-width=\"1920\" inkscape:window-height=\"1001\" inkscape:window-x=\"0\" inkscape:window-y=\"0\" inkscape:window-maximized=\"1\"> <sodipodi:guide position=\"13.229167,23.859748\" orientation=\"1,0\" id=\"guide815\" inkscape:locked=\"false\" /> <sodipodi:guide position=\"14.944824,13.229167\" orientation=\"0,1\" id=\"guide817\" inkscape:locked=\"false\" /> </sodipodi:namedview> <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></dc:title> </cc:Work> </rdf:RDF> </metadata> <g inkscape:label=\"Layer 1\" inkscape:groupmode=\"layer\" id=\"layer1\" transform=\"translate(0,-270.54165)\"> <path style=\"fill: none !important;stroke:#ffffff;stroke-width:3.59588718;stroke-linecap:round;stroke-linejoin:round;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1\" d=\"m 20.139011,294.16029 c 0,0 -13.7995299,-7.53922 -13.8484369,-10.36091 -0.04891,-2.82169 13.8484369,-10.38607 13.8484369,-10.38607\" id=\"path821\" inkscape:connector-curvature=\"0\" /> </g> </svg> "
|
||||
public static arrow_left_smooth_img = Img.AsImageElement(Svg.arrow_left_smooth)
|
||||
public static arrow_left_smooth_svg() { return new Img(Svg.arrow_left_smooth, true);}
|
||||
|
@ -89,6 +94,11 @@ export default class Svg {
|
|||
public static compass_svg() { return new Img(Svg.compass, true);}
|
||||
public static compass_ui() { return new FixedUiElement(Svg.compass_img);}
|
||||
|
||||
public static copyright = "<svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\"> <path d=\"M8.08 8.86C8.13 8.53 8.24 8.24 8.38 7.99C8.52 7.74 8.72 7.53 8.97 7.37C9.21 7.22 9.51 7.15 9.88 7.14C10.11 7.15 10.32 7.19 10.51 7.27C10.71 7.36 10.89 7.48 11.03 7.63C11.17 7.78 11.28 7.96 11.37 8.16C11.46 8.36 11.5 8.58 11.51 8.8H13.3C13.28 8.33 13.19 7.9 13.02 7.51C12.85 7.12 12.62 6.78 12.32 6.5C12.02 6.22 11.66 6 11.24 5.84C10.82 5.68 10.36 5.61 9.85 5.61C9.2 5.61 8.63 5.72 8.15 5.95C7.67 6.18 7.27 6.48 6.95 6.87C6.63 7.26 6.39 7.71 6.24 8.23C6.09 8.75 6 9.29 6 9.87V10.14C6 10.72 6.08 11.26 6.23 11.78C6.38 12.3 6.62 12.75 6.94 13.13C7.26 13.51 7.66 13.82 8.14 14.04C8.62 14.26 9.19 14.38 9.84 14.38C10.31 14.38 10.75 14.3 11.16 14.15C11.57 14 11.93 13.79 12.24 13.52C12.55 13.25 12.8 12.94 12.98 12.58C13.16 12.22 13.27 11.84 13.28 11.43H11.49C11.48 11.64 11.43 11.83 11.34 12.01C11.25 12.19 11.13 12.34 10.98 12.47C10.83 12.6 10.66 12.7 10.46 12.77C10.27 12.84 10.07 12.86 9.86 12.87C9.5 12.86 9.2 12.79 8.97 12.64C8.72 12.48 8.52 12.27 8.38 12.02C8.24 11.77 8.13 11.47 8.08 11.14C8.03 10.81 8 10.47 8 10.14V9.87C8 9.52 8.03 9.19 8.08 8.86V8.86ZM10 0C4.48 0 0 4.48 0 10C0 15.52 4.48 20 10 20C15.52 20 20 15.52 20 10C20 4.48 15.52 0 10 0ZM10 18C5.59 18 2 14.41 2 10C2 5.59 5.59 2 10 2C14.41 2 18 5.59 18 10C18 14.41 14.41 18 10 18Z\" fill=\"white\"/> </svg>"
|
||||
public static copyright_img = Img.AsImageElement(Svg.copyright)
|
||||
public static copyright_svg() { return new Img(Svg.copyright, true);}
|
||||
public static copyright_ui() { return new FixedUiElement(Svg.copyright_img);}
|
||||
|
||||
public static cross_bottom_right = " <!-- 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=\"100\" height=\"100\" viewBox=\"0 0 26.458333 26.458334\" version=\"1.1\" id=\"svg8\" sodipodi:docname=\"cross_bottom_right.svg\" inkscape:version=\"0.92.4 (5da689c313, 2019-01-14)\"> <defs id=\"defs2\" /> <sodipodi:namedview id=\"base\" pagecolor=\"#ffffff\" bordercolor=\"#666666\" borderopacity=\"1.0\" inkscape:pageopacity=\"0.0\" inkscape:pageshadow=\"2\" inkscape:zoom=\"2.8284271\" inkscape:cx=\"-71.204807\" inkscape:cy=\"118.94409\" inkscape:document-units=\"px\" inkscape:current-layer=\"layer1\" showgrid=\"false\" units=\"px\" showguides=\"true\" inkscape:guide-bbox=\"true\" inkscape:window-width=\"1920\" inkscape:window-height=\"995\" inkscape:window-x=\"0\" inkscape:window-y=\"0\" inkscape:window-maximized=\"1\"> <sodipodi:guide position=\"13.229167,23.859748\" orientation=\"1,0\" id=\"guide815\" inkscape:locked=\"false\" /> <sodipodi:guide position=\"14.944824,13.229167\" orientation=\"0,1\" id=\"guide817\" inkscape:locked=\"false\" /> </sodipodi:namedview> <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(0,-270.54165)\"> <g id=\"g836\" transform=\"matrix(0.82247743,0,0,0.82247743,9.1847058,57.199661)\"> <path inkscape:connector-curvature=\"0\" id=\"path815\" d=\"M 18.972892,289.3838 7.7469352,278.15784 v 0\" style=\"fill: none !important;stroke:#000000;stroke-width:3.4395833;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1\" /> <path inkscape:connector-curvature=\"0\" id=\"path815-3\" d=\"M 18.98982,278.10371 7.7638604,289.32967 v 0\" style=\"fill: none !important;stroke:#000000;stroke-width:3.4395833;stroke-linecap:round;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-opacity:1\" /> </g> </g> </svg> "
|
||||
public static cross_bottom_right_img = Img.AsImageElement(Svg.cross_bottom_right)
|
||||
public static cross_bottom_right_svg() { return new Img(Svg.cross_bottom_right, true);}
|
||||
|
@ -389,4 +399,4 @@ export default class Svg {
|
|||
public static wikipedia_svg() { return new Img(Svg.wikipedia, true);}
|
||||
public static wikipedia_ui() { return new FixedUiElement(Svg.wikipedia_img);}
|
||||
|
||||
public static All = {"SocialImageForeground.svg": Svg.SocialImageForeground,"add.svg": Svg.add,"addSmall.svg": Svg.addSmall,"ampersand.svg": Svg.ampersand,"arrow-left-smooth.svg": Svg.arrow_left_smooth,"arrow-left-thin.svg": Svg.arrow_left_thin,"arrow-right-smooth.svg": Svg.arrow_right_smooth,"back.svg": Svg.back,"bug.svg": Svg.bug,"camera-plus.svg": Svg.camera_plus,"checkbox-empty.svg": Svg.checkbox_empty,"checkbox-filled.svg": Svg.checkbox_filled,"checkmark.svg": Svg.checkmark,"circle.svg": Svg.circle,"clock.svg": Svg.clock,"close.svg": Svg.close,"compass.svg": Svg.compass,"cross_bottom_right.svg": Svg.cross_bottom_right,"crosshair-blue-center.svg": Svg.crosshair_blue_center,"crosshair-blue.svg": Svg.crosshair_blue,"crosshair-empty.svg": Svg.crosshair_empty,"crosshair-locked.svg": Svg.crosshair_locked,"crosshair.svg": Svg.crosshair,"delete_icon.svg": Svg.delete_icon,"direction.svg": Svg.direction,"direction_gradient.svg": Svg.direction_gradient,"direction_masked.svg": Svg.direction_masked,"direction_outline.svg": Svg.direction_outline,"direction_stroke.svg": Svg.direction_stroke,"down.svg": Svg.down,"download.svg": Svg.download,"envelope.svg": Svg.envelope,"filter.svg": Svg.filter,"floppy.svg": Svg.floppy,"gear.svg": Svg.gear,"help.svg": Svg.help,"home.svg": Svg.home,"home_white_bg.svg": Svg.home_white_bg,"josm_logo.svg": Svg.josm_logo,"layers.svg": Svg.layers,"layersAdd.svg": Svg.layersAdd,"length-crosshair.svg": Svg.length_crosshair,"location.svg": Svg.location,"logo.svg": Svg.logo,"logout.svg": Svg.logout,"mapcomplete_logo.svg": Svg.mapcomplete_logo,"mapillary.svg": Svg.mapillary,"mapillary_black.svg": Svg.mapillary_black,"min-zoom.svg": Svg.min_zoom,"min.svg": Svg.min,"no_checkmark.svg": Svg.no_checkmark,"or.svg": Svg.or,"osm-copyright.svg": Svg.osm_copyright,"osm-logo-us.svg": Svg.osm_logo_us,"osm-logo.svg": Svg.osm_logo,"pencil.svg": Svg.pencil,"phone.svg": Svg.phone,"pin.svg": Svg.pin,"plus-zoom.svg": Svg.plus_zoom,"plus.svg": Svg.plus,"pop-out.svg": Svg.pop_out,"reload.svg": Svg.reload,"ring.svg": Svg.ring,"search.svg": Svg.search,"send_email.svg": Svg.send_email,"share.svg": Svg.share,"square.svg": Svg.square,"star.svg": Svg.star,"star_half.svg": Svg.star_half,"star_outline.svg": Svg.star_outline,"star_outline_half.svg": Svg.star_outline_half,"statistics.svg": Svg.statistics,"translate.svg": Svg.translate,"up.svg": Svg.up,"wikidata.svg": Svg.wikidata,"wikimedia-commons-white.svg": Svg.wikimedia_commons_white,"wikipedia.svg": Svg.wikipedia};}
|
||||
public static All = {"SocialImageForeground.svg": Svg.SocialImageForeground,"add.svg": Svg.add,"addSmall.svg": Svg.addSmall,"ampersand.svg": Svg.ampersand,"arrow-download.svg": Svg.arrow_download,"arrow-left-smooth.svg": Svg.arrow_left_smooth,"arrow-left-thin.svg": Svg.arrow_left_thin,"arrow-right-smooth.svg": Svg.arrow_right_smooth,"back.svg": Svg.back,"bug.svg": Svg.bug,"camera-plus.svg": Svg.camera_plus,"checkbox-empty.svg": Svg.checkbox_empty,"checkbox-filled.svg": Svg.checkbox_filled,"checkmark.svg": Svg.checkmark,"circle.svg": Svg.circle,"clock.svg": Svg.clock,"close.svg": Svg.close,"compass.svg": Svg.compass,"copyright.svg": Svg.copyright,"cross_bottom_right.svg": Svg.cross_bottom_right,"crosshair-blue-center.svg": Svg.crosshair_blue_center,"crosshair-blue.svg": Svg.crosshair_blue,"crosshair-empty.svg": Svg.crosshair_empty,"crosshair-locked.svg": Svg.crosshair_locked,"crosshair.svg": Svg.crosshair,"delete_icon.svg": Svg.delete_icon,"direction.svg": Svg.direction,"direction_gradient.svg": Svg.direction_gradient,"direction_masked.svg": Svg.direction_masked,"direction_outline.svg": Svg.direction_outline,"direction_stroke.svg": Svg.direction_stroke,"down.svg": Svg.down,"download.svg": Svg.download,"envelope.svg": Svg.envelope,"filter.svg": Svg.filter,"floppy.svg": Svg.floppy,"gear.svg": Svg.gear,"help.svg": Svg.help,"home.svg": Svg.home,"home_white_bg.svg": Svg.home_white_bg,"josm_logo.svg": Svg.josm_logo,"layers.svg": Svg.layers,"layersAdd.svg": Svg.layersAdd,"length-crosshair.svg": Svg.length_crosshair,"location.svg": Svg.location,"logo.svg": Svg.logo,"logout.svg": Svg.logout,"mapcomplete_logo.svg": Svg.mapcomplete_logo,"mapillary.svg": Svg.mapillary,"mapillary_black.svg": Svg.mapillary_black,"min-zoom.svg": Svg.min_zoom,"min.svg": Svg.min,"no_checkmark.svg": Svg.no_checkmark,"or.svg": Svg.or,"osm-copyright.svg": Svg.osm_copyright,"osm-logo-us.svg": Svg.osm_logo_us,"osm-logo.svg": Svg.osm_logo,"pencil.svg": Svg.pencil,"phone.svg": Svg.phone,"pin.svg": Svg.pin,"plus-zoom.svg": Svg.plus_zoom,"plus.svg": Svg.plus,"pop-out.svg": Svg.pop_out,"reload.svg": Svg.reload,"ring.svg": Svg.ring,"search.svg": Svg.search,"send_email.svg": Svg.send_email,"share.svg": Svg.share,"square.svg": Svg.square,"star.svg": Svg.star,"star_half.svg": Svg.star_half,"star_outline.svg": Svg.star_outline,"star_outline_half.svg": Svg.star_outline_half,"statistics.svg": Svg.statistics,"translate.svg": Svg.translate,"up.svg": Svg.up,"wikidata.svg": Svg.wikidata,"wikimedia-commons-white.svg": Svg.wikimedia_commons_white,"wikipedia.svg": Svg.wikipedia};}
|
||||
|
|
3
assets/svg/arrow-download.svg
Normal file
3
assets/svg/arrow-download.svg
Normal file
|
@ -0,0 +1,3 @@
|
|||
<svg xmlns="http://www.w3.org/2000/svg" width="20" height="22.849" viewBox="0 0 20 22.849">
|
||||
<path id="Path_arrow-collapse-down" data-name="Path / arrow-collapse-down" d="M19.92,12.08l-5.264,5.264L12,20,4.08,12.08,5.5,10.67l5.5,5.5V2h2V16.17l5.5-5.51,1.42,1.42M12,22.849H2v2H22v-2Z" transform="translate(-2 -2)" fill="#fff"/>
|
||||
</svg>
|
After Width: | Height: | Size: 334 B |
3
assets/svg/copyright.svg
Normal file
3
assets/svg/copyright.svg
Normal file
|
@ -0,0 +1,3 @@
|
|||
<svg width="20" height="20" viewBox="0 0 20 20" fill="none" xmlns="http://www.w3.org/2000/svg">
|
||||
<path d="M8.08 8.86C8.13 8.53 8.24 8.24 8.38 7.99C8.52 7.74 8.72 7.53 8.97 7.37C9.21 7.22 9.51 7.15 9.88 7.14C10.11 7.15 10.32 7.19 10.51 7.27C10.71 7.36 10.89 7.48 11.03 7.63C11.17 7.78 11.28 7.96 11.37 8.16C11.46 8.36 11.5 8.58 11.51 8.8H13.3C13.28 8.33 13.19 7.9 13.02 7.51C12.85 7.12 12.62 6.78 12.32 6.5C12.02 6.22 11.66 6 11.24 5.84C10.82 5.68 10.36 5.61 9.85 5.61C9.2 5.61 8.63 5.72 8.15 5.95C7.67 6.18 7.27 6.48 6.95 6.87C6.63 7.26 6.39 7.71 6.24 8.23C6.09 8.75 6 9.29 6 9.87V10.14C6 10.72 6.08 11.26 6.23 11.78C6.38 12.3 6.62 12.75 6.94 13.13C7.26 13.51 7.66 13.82 8.14 14.04C8.62 14.26 9.19 14.38 9.84 14.38C10.31 14.38 10.75 14.3 11.16 14.15C11.57 14 11.93 13.79 12.24 13.52C12.55 13.25 12.8 12.94 12.98 12.58C13.16 12.22 13.27 11.84 13.28 11.43H11.49C11.48 11.64 11.43 11.83 11.34 12.01C11.25 12.19 11.13 12.34 10.98 12.47C10.83 12.6 10.66 12.7 10.46 12.77C10.27 12.84 10.07 12.86 9.86 12.87C9.5 12.86 9.2 12.79 8.97 12.64C8.72 12.48 8.52 12.27 8.38 12.02C8.24 11.77 8.13 11.47 8.08 11.14C8.03 10.81 8 10.47 8 10.14V9.87C8 9.52 8.03 9.19 8.08 8.86V8.86ZM10 0C4.48 0 0 4.48 0 10C0 15.52 4.48 20 10 20C15.52 20 20 15.52 20 10C20 4.48 15.52 0 10 0ZM10 18C5.59 18 2 14.41 2 10C2 5.59 5.59 2 10 2C14.41 2 18 5.59 18 10C18 14.41 14.41 18 10 18Z" fill="white"/>
|
||||
</svg>
|
After Width: | Height: | Size: 1.3 KiB |
|
@ -1,6 +1,3 @@
|
|||
<?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#"
|
||||
|
|
Before Width: | Height: | Size: 3.7 KiB After Width: | Height: | Size: 3.6 KiB |
|
@ -1,62 +1,58 @@
|
|||
[
|
||||
{
|
||||
"authors": [
|
||||
"Pieter Vander Vennet"
|
||||
],
|
||||
"authors": ["Pieter Vander Vennet"],
|
||||
"path": "direction_masked.svg",
|
||||
"license": "CC0",
|
||||
"sources": []
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"Pieter Vander Vennet"
|
||||
],
|
||||
"authors": ["Pieter Vander Vennet"],
|
||||
"path": "direction_outline.svg",
|
||||
"license": "CC0",
|
||||
"sources": []
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"Pieter Vander Vennet"
|
||||
],
|
||||
"authors": ["Pieter Vander Vennet"],
|
||||
"path": "direction_stroke.svg",
|
||||
"license": "CC0",
|
||||
"sources": []
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"Pieter Vander Vennet"
|
||||
],
|
||||
"authors": ["Pieter Vander Vennet"],
|
||||
"path": "SocialImageForeground.svg",
|
||||
"license": "CC-BY-SA",
|
||||
"sources": [
|
||||
"https://mapcomplete.osm.be"
|
||||
]
|
||||
"sources": ["https://mapcomplete.osm.be"]
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"Pieter Vander Vennet"
|
||||
],
|
||||
"authors": ["Pieter Vander Vennet"],
|
||||
"path": "add.svg",
|
||||
"license": "CC0",
|
||||
"sources": []
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"Pieter Vander Vennet"
|
||||
],
|
||||
"authors": ["Pieter Vander Vennet"],
|
||||
"path": "addSmall.svg",
|
||||
"license": "CC0",
|
||||
"sources": []
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"Hannah"
|
||||
],
|
||||
"authors": ["Hannah Declerck"],
|
||||
"path": "download.svg",
|
||||
"license": "CC0",
|
||||
"sources": []
|
||||
},
|
||||
{
|
||||
"authors": ["Hannah Declerck"],
|
||||
"path": "copyright.svg",
|
||||
"license": "CC0",
|
||||
"sources": []
|
||||
},
|
||||
{
|
||||
"authors": ["Hannah Declerck"],
|
||||
"path": "arrow-download.svg",
|
||||
"license": "CC0",
|
||||
"sources": []
|
||||
},
|
||||
{
|
||||
"authors": [],
|
||||
"path": "ampersand.svg",
|
||||
|
@ -64,33 +60,25 @@
|
|||
"sources": []
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"Pieter Vander Vennet"
|
||||
],
|
||||
"authors": ["Pieter Vander Vennet"],
|
||||
"path": "arrow-left-smooth.svg",
|
||||
"license": "CC0",
|
||||
"sources": []
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"Pieter Vander Vennet"
|
||||
],
|
||||
"authors": ["Pieter Vander Vennet"],
|
||||
"path": "arrow-right-smooth.svg",
|
||||
"license": "CC0",
|
||||
"sources": []
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"Pieter Vander Vennet"
|
||||
],
|
||||
"authors": ["Pieter Vander Vennet"],
|
||||
"path": "back.svg",
|
||||
"license": "CC0",
|
||||
"sources": []
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"Github"
|
||||
],
|
||||
"authors": ["Github"],
|
||||
"path": "bug.svg",
|
||||
"license": "MIT",
|
||||
"sources": [
|
||||
|
@ -101,35 +89,26 @@
|
|||
{
|
||||
"path": "camera-plus.svg",
|
||||
"license": "CC-BY-SA 3.0",
|
||||
"authors": [
|
||||
"Dave Gandy",
|
||||
"Pieter Vander Vennet"
|
||||
],
|
||||
"authors": ["Dave Gandy", "Pieter Vander Vennet"],
|
||||
"sources": [
|
||||
"https://fontawesome.com/",
|
||||
"https://commons.wikimedia.org/wiki/File:Camera_font_awesome.svg"
|
||||
]
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"Pieter Vander Vennet"
|
||||
],
|
||||
"authors": ["Pieter Vander Vennet"],
|
||||
"path": "checkmark.svg",
|
||||
"license": "CC0",
|
||||
"sources": []
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"Pieter Vander Vennet"
|
||||
],
|
||||
"authors": ["Pieter Vander Vennet"],
|
||||
"path": "circle.svg",
|
||||
"license": "CC0",
|
||||
"sources": []
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"Pieter Vander Vennet"
|
||||
],
|
||||
"authors": ["Pieter Vander Vennet"],
|
||||
"path": "clock.svg",
|
||||
"license": "CC0",
|
||||
"sources": []
|
||||
|
@ -171,9 +150,7 @@
|
|||
"sources": []
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"Dave Gandy"
|
||||
],
|
||||
"authors": ["Dave Gandy"],
|
||||
"path": "delete_icon.svg",
|
||||
"license": "CC-BY-SA",
|
||||
"sources": [
|
||||
|
@ -205,9 +182,7 @@
|
|||
"sources": []
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"The Tango Desktop Project"
|
||||
],
|
||||
"authors": ["The Tango Desktop Project"],
|
||||
"path": "floppy.svg",
|
||||
"license": "CC0",
|
||||
"sources": [
|
||||
|
@ -228,29 +203,19 @@
|
|||
"sources": []
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"Timothy Miller"
|
||||
],
|
||||
"authors": ["Timothy Miller"],
|
||||
"path": "home.svg",
|
||||
"license": "CC-BY-SA 3.0",
|
||||
"sources": [
|
||||
"https://commons.wikimedia.org/wiki/File:Home-icon.svg"
|
||||
]
|
||||
"sources": ["https://commons.wikimedia.org/wiki/File:Home-icon.svg"]
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"Timothy Miller"
|
||||
],
|
||||
"authors": ["Timothy Miller"],
|
||||
"path": "home_white_bg.svg",
|
||||
"license": "CC-BY-SA 3.0",
|
||||
"sources": [
|
||||
"https://commons.wikimedia.org/wiki/File:Home-icon.svg"
|
||||
]
|
||||
"sources": ["https://commons.wikimedia.org/wiki/File:Home-icon.svg"]
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"JOSM Team"
|
||||
],
|
||||
"authors": ["JOSM Team"],
|
||||
"path": "josm_logo.svg",
|
||||
"license": "CC0",
|
||||
"sources": [
|
||||
|
@ -273,9 +238,7 @@
|
|||
{
|
||||
"path": "Ornament-Horiz-0.svg",
|
||||
"license": "CC-BY",
|
||||
"authors": [
|
||||
"Nightwolfdezines"
|
||||
],
|
||||
"authors": ["Nightwolfdezines"],
|
||||
"sources": [
|
||||
"https://www.vecteezy.com/vector-art/226361-ornaments-and-flourishes"
|
||||
]
|
||||
|
@ -283,9 +246,7 @@
|
|||
{
|
||||
"path": "Ornament-Horiz-1.svg",
|
||||
"license": "CC-BY",
|
||||
"authors": [
|
||||
"Nightwolfdezines"
|
||||
],
|
||||
"authors": ["Nightwolfdezines"],
|
||||
"sources": [
|
||||
"https://www.vecteezy.com/vector-art/226361-ornaments-and-flourishes"
|
||||
]
|
||||
|
@ -293,9 +254,7 @@
|
|||
{
|
||||
"path": "Ornament-Horiz-2.svg",
|
||||
"license": "CC-BY",
|
||||
"authors": [
|
||||
"Nightwolfdezines"
|
||||
],
|
||||
"authors": ["Nightwolfdezines"],
|
||||
"sources": [
|
||||
"https://www.vecteezy.com/vector-art/226361-ornaments-and-flourishes"
|
||||
]
|
||||
|
@ -303,9 +262,7 @@
|
|||
{
|
||||
"path": "Ornament-Horiz-3.svg",
|
||||
"license": "CC-BY",
|
||||
"authors": [
|
||||
"Nightwolfdezines"
|
||||
],
|
||||
"authors": ["Nightwolfdezines"],
|
||||
"sources": [
|
||||
"https://www.vecteezy.com/vector-art/226361-ornaments-and-flourishes"
|
||||
]
|
||||
|
@ -313,9 +270,7 @@
|
|||
{
|
||||
"path": "Ornament-Horiz-4.svg",
|
||||
"license": "CC-BY",
|
||||
"authors": [
|
||||
"Nightwolfdezines"
|
||||
],
|
||||
"authors": ["Nightwolfdezines"],
|
||||
"sources": [
|
||||
"https://www.vecteezy.com/vector-art/226361-ornaments-and-flourishes"
|
||||
]
|
||||
|
@ -323,9 +278,7 @@
|
|||
{
|
||||
"path": "Ornament-Horiz-5.svg",
|
||||
"license": "CC-BY",
|
||||
"authors": [
|
||||
"Nightwolfdezines"
|
||||
],
|
||||
"authors": ["Nightwolfdezines"],
|
||||
"sources": [
|
||||
"https://www.vecteezy.com/vector-art/226361-ornaments-and-flourishes"
|
||||
]
|
||||
|
@ -333,9 +286,7 @@
|
|||
{
|
||||
"path": "Ornament-Horiz-6.svg",
|
||||
"license": "CC-BY",
|
||||
"authors": [
|
||||
"Nightwolfdezines"
|
||||
],
|
||||
"authors": ["Nightwolfdezines"],
|
||||
"sources": [
|
||||
"https://www.vecteezy.com/vector-art/226361-ornaments-and-flourishes"
|
||||
]
|
||||
|
@ -377,25 +328,16 @@
|
|||
"sources": []
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"Pieter Vander Vennet",
|
||||
" OSM"
|
||||
],
|
||||
"authors": ["Pieter Vander Vennet", " OSM"],
|
||||
"path": "mapcomplete_logo.svg",
|
||||
"license": "Logo; CC-BY-SA",
|
||||
"sources": [
|
||||
"https://mapcomplete.osm.be"
|
||||
]
|
||||
"sources": ["https://mapcomplete.osm.be"]
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"Mapillary"
|
||||
],
|
||||
"authors": ["Mapillary"],
|
||||
"path": "mapillary.svg",
|
||||
"license": "Logo; All rights reserved",
|
||||
"sources": [
|
||||
"https://mapillary.com/"
|
||||
]
|
||||
"sources": ["https://mapillary.com/"]
|
||||
},
|
||||
{
|
||||
"authors": [],
|
||||
|
@ -419,32 +361,22 @@
|
|||
"authors": [],
|
||||
"path": "osm-copyright.svg",
|
||||
"license": "logo; all rights reserved",
|
||||
"sources": [
|
||||
"https://www.OpenStreetMap.org"
|
||||
]
|
||||
"sources": ["https://www.OpenStreetMap.org"]
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"OpenStreetMap U.S. Chapter"
|
||||
],
|
||||
"authors": ["OpenStreetMap U.S. Chapter"],
|
||||
"path": "osm-logo-us.svg",
|
||||
"license": "Logo",
|
||||
"sources": [
|
||||
"https://www.openstreetmap.us/"
|
||||
]
|
||||
"sources": ["https://www.openstreetmap.us/"]
|
||||
},
|
||||
{
|
||||
"authors": [],
|
||||
"path": "osm-logo.svg",
|
||||
"license": "logo; all rights reserved",
|
||||
"sources": [
|
||||
"https://www.OpenStreetMap.org"
|
||||
]
|
||||
"sources": ["https://www.OpenStreetMap.org"]
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"GitHub Octicons"
|
||||
],
|
||||
"authors": ["GitHub Octicons"],
|
||||
"path": "pencil.svg",
|
||||
"license": "MIT",
|
||||
"sources": [
|
||||
|
@ -453,14 +385,10 @@
|
|||
]
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"@ tyskrat"
|
||||
],
|
||||
"authors": ["@ tyskrat"],
|
||||
"path": "phone.svg",
|
||||
"license": "CC-BY 3.0",
|
||||
"sources": [
|
||||
"https://www.onlinewebfonts.com/icon/1059"
|
||||
]
|
||||
"sources": ["https://www.onlinewebfonts.com/icon/1059"]
|
||||
},
|
||||
{
|
||||
"authors": [],
|
||||
|
@ -475,14 +403,10 @@
|
|||
"sources": []
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"@fatih"
|
||||
],
|
||||
"authors": ["@fatih"],
|
||||
"path": "pop-out.svg",
|
||||
"license": "CC-BY 3.0",
|
||||
"sources": [
|
||||
"https://www.onlinewebfonts.com/icon/2151"
|
||||
]
|
||||
"sources": ["https://www.onlinewebfonts.com/icon/2151"]
|
||||
},
|
||||
{
|
||||
"authors": [],
|
||||
|
@ -497,9 +421,7 @@
|
|||
"sources": []
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"OOjs UI Team and other contributors"
|
||||
],
|
||||
"authors": ["OOjs UI Team and other contributors"],
|
||||
"path": "search.svg",
|
||||
"license": "MIT",
|
||||
"sources": [
|
||||
|
@ -526,19 +448,13 @@
|
|||
"sources": []
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"@felpgrc"
|
||||
],
|
||||
"authors": ["@felpgrc"],
|
||||
"path": "statistics.svg",
|
||||
"license": "CC-BY 3.0",
|
||||
"sources": [
|
||||
"https://www.onlinewebfonts.com/icon/197818"
|
||||
]
|
||||
"sources": ["https://www.onlinewebfonts.com/icon/197818"]
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"MGalloway (WMF)"
|
||||
],
|
||||
"authors": ["MGalloway (WMF)"],
|
||||
"path": "translate.svg",
|
||||
"license": "CC-BY-SA 3.0",
|
||||
"sources": [
|
||||
|
@ -552,147 +468,103 @@
|
|||
"sources": []
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"Wikidata"
|
||||
],
|
||||
"authors": ["Wikidata"],
|
||||
"path": "wikidata.svg",
|
||||
"license": "Logo; All rights reserved",
|
||||
"sources": [
|
||||
"https://www.wikidata.org"
|
||||
]
|
||||
"sources": ["https://www.wikidata.org"]
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"Wikimedia"
|
||||
],
|
||||
"authors": ["Wikimedia"],
|
||||
"path": "wikimedia-commons-white.svg",
|
||||
"license": "Logo; All rights reserved",
|
||||
"sources": [
|
||||
"https://commons.wikimedia.org"
|
||||
]
|
||||
"sources": ["https://commons.wikimedia.org"]
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"Wikipedia"
|
||||
],
|
||||
"authors": ["Wikipedia"],
|
||||
"path": "wikipedia.svg",
|
||||
"license": "Logo; All rights reserved",
|
||||
"sources": [
|
||||
"https://www.wikipedia.org/"
|
||||
]
|
||||
"sources": ["https://www.wikipedia.org/"]
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"Mapillary"
|
||||
],
|
||||
"authors": ["Mapillary"],
|
||||
"path": "mapillary_black.svg",
|
||||
"license": "Logo; All rights reserved",
|
||||
"sources": [
|
||||
"https://www.mapillary.com/"
|
||||
]
|
||||
"sources": ["https://www.mapillary.com/"]
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"Hannah Declerck"
|
||||
],
|
||||
"authors": ["Hannah Declerck"],
|
||||
"path": "location.svg",
|
||||
"license": "CC0",
|
||||
"sources": []
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"Hannah Declerck"
|
||||
],
|
||||
"authors": ["Hannah Declerck"],
|
||||
"path": "min-zoom.svg",
|
||||
"license": "CC0",
|
||||
"sources": []
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"Hannah Declerck"
|
||||
],
|
||||
"authors": ["Hannah Declerck"],
|
||||
"path": "plus-zoom.svg",
|
||||
"license": "CC0",
|
||||
"sources": []
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"Hannah Declerck"
|
||||
],
|
||||
"authors": ["Hannah Declerck"],
|
||||
"path": "filter.svg",
|
||||
"license": "CC0",
|
||||
"sources": []
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"Hannah Declerck"
|
||||
],
|
||||
"authors": ["Hannah Declerck"],
|
||||
"path": "checkbox-empty.svg",
|
||||
"license": "CC0",
|
||||
"sources": []
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"Hannah Declerck"
|
||||
],
|
||||
"authors": ["Hannah Declerck"],
|
||||
"path": "checkbox-filled.svg",
|
||||
"license": "CC0",
|
||||
"sources": []
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"Hannah Declerck"
|
||||
],
|
||||
"authors": ["Hannah Declerck"],
|
||||
"path": "arrow-left-thin.svg",
|
||||
"license": "CC0",
|
||||
"sources": []
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"Pieter Vander Vennet"
|
||||
],
|
||||
"authors": ["Pieter Vander Vennet"],
|
||||
"path": "direction_masked.svg",
|
||||
"license": "CC0",
|
||||
"sources": []
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"Pieter Vander Vennet"
|
||||
],
|
||||
"authors": ["Pieter Vander Vennet"],
|
||||
"path": "direction_outline.svg",
|
||||
"license": "CC0",
|
||||
"sources": []
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"Pieter Vander Vennet"
|
||||
],
|
||||
"authors": ["Pieter Vander Vennet"],
|
||||
"path": "direction_stroke.svg",
|
||||
"license": "CC0",
|
||||
"sources": []
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"Pieter Vander Vennet"
|
||||
],
|
||||
"authors": ["Pieter Vander Vennet"],
|
||||
"path": "SocialImageForeground.svg",
|
||||
"license": "CC-BY-SA",
|
||||
"sources": [
|
||||
"https://mapcomplete.osm.be"
|
||||
]
|
||||
"sources": ["https://mapcomplete.osm.be"]
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"Pieter Vander Vennet"
|
||||
],
|
||||
"authors": ["Pieter Vander Vennet"],
|
||||
"path": "add.svg",
|
||||
"license": "CC0",
|
||||
"sources": []
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"Pieter Vander Vennet"
|
||||
],
|
||||
"authors": ["Pieter Vander Vennet"],
|
||||
"path": "addSmall.svg",
|
||||
"license": "CC0",
|
||||
"sources": []
|
||||
|
@ -704,33 +576,25 @@
|
|||
"sources": []
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"Pieter Vander Vennet"
|
||||
],
|
||||
"authors": ["Pieter Vander Vennet"],
|
||||
"path": "arrow-left-smooth.svg",
|
||||
"license": "CC0",
|
||||
"sources": []
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"Pieter Vander Vennet"
|
||||
],
|
||||
"authors": ["Pieter Vander Vennet"],
|
||||
"path": "arrow-right-smooth.svg",
|
||||
"license": "CC0",
|
||||
"sources": []
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"Pieter Vander Vennet"
|
||||
],
|
||||
"authors": ["Pieter Vander Vennet"],
|
||||
"path": "back.svg",
|
||||
"license": "CC0",
|
||||
"sources": []
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"Github"
|
||||
],
|
||||
"authors": ["Github"],
|
||||
"path": "bug.svg",
|
||||
"license": "MIT",
|
||||
"sources": [
|
||||
|
@ -741,35 +605,26 @@
|
|||
{
|
||||
"path": "camera-plus.svg",
|
||||
"license": "CC-BY-SA 3.0",
|
||||
"authors": [
|
||||
"Dave Gandy",
|
||||
"Pieter Vander Vennet"
|
||||
],
|
||||
"authors": ["Dave Gandy", "Pieter Vander Vennet"],
|
||||
"sources": [
|
||||
"https://fontawesome.com/",
|
||||
"https://commons.wikimedia.org/wiki/File:Camera_font_awesome.svg"
|
||||
]
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"Pieter Vander Vennet"
|
||||
],
|
||||
"authors": ["Pieter Vander Vennet"],
|
||||
"path": "checkmark.svg",
|
||||
"license": "CC0",
|
||||
"sources": []
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"Pieter Vander Vennet"
|
||||
],
|
||||
"authors": ["Pieter Vander Vennet"],
|
||||
"path": "circle.svg",
|
||||
"license": "CC0",
|
||||
"sources": []
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"Pieter Vander Vennet"
|
||||
],
|
||||
"authors": ["Pieter Vander Vennet"],
|
||||
"path": "clock.svg",
|
||||
"license": "CC0",
|
||||
"sources": []
|
||||
|
@ -823,9 +678,7 @@
|
|||
"sources": []
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"Dave Gandy"
|
||||
],
|
||||
"authors": ["Dave Gandy"],
|
||||
"path": "delete_icon.svg",
|
||||
"license": "CC-BY-SA",
|
||||
"sources": [
|
||||
|
@ -857,9 +710,7 @@
|
|||
"sources": []
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"The Tango Desktop Project"
|
||||
],
|
||||
"authors": ["The Tango Desktop Project"],
|
||||
"path": "floppy.svg",
|
||||
"license": "CC0",
|
||||
"sources": [
|
||||
|
@ -880,29 +731,19 @@
|
|||
"sources": []
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"Timothy Miller"
|
||||
],
|
||||
"authors": ["Timothy Miller"],
|
||||
"path": "home.svg",
|
||||
"license": "CC-BY-SA 3.0",
|
||||
"sources": [
|
||||
"https://commons.wikimedia.org/wiki/File:Home-icon.svg"
|
||||
]
|
||||
"sources": ["https://commons.wikimedia.org/wiki/File:Home-icon.svg"]
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"Timothy Miller"
|
||||
],
|
||||
"authors": ["Timothy Miller"],
|
||||
"path": "home_white_bg.svg",
|
||||
"license": "CC-BY-SA 3.0",
|
||||
"sources": [
|
||||
"https://commons.wikimedia.org/wiki/File:Home-icon.svg"
|
||||
]
|
||||
"sources": ["https://commons.wikimedia.org/wiki/File:Home-icon.svg"]
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"JOSM Team"
|
||||
],
|
||||
"authors": ["JOSM Team"],
|
||||
"path": "josm_logo.svg",
|
||||
"license": "CC0",
|
||||
"sources": [
|
||||
|
@ -925,9 +766,7 @@
|
|||
{
|
||||
"path": "Ornament-Horiz-0.svg",
|
||||
"license": "CC-BY",
|
||||
"authors": [
|
||||
"Nightwolfdezines"
|
||||
],
|
||||
"authors": ["Nightwolfdezines"],
|
||||
"sources": [
|
||||
"https://www.vecteezy.com/vector-art/226361-ornaments-and-flourishes"
|
||||
]
|
||||
|
@ -935,9 +774,7 @@
|
|||
{
|
||||
"path": "Ornament-Horiz-1.svg",
|
||||
"license": "CC-BY",
|
||||
"authors": [
|
||||
"Nightwolfdezines"
|
||||
],
|
||||
"authors": ["Nightwolfdezines"],
|
||||
"sources": [
|
||||
"https://www.vecteezy.com/vector-art/226361-ornaments-and-flourishes"
|
||||
]
|
||||
|
@ -945,9 +782,7 @@
|
|||
{
|
||||
"path": "Ornament-Horiz-2.svg",
|
||||
"license": "CC-BY",
|
||||
"authors": [
|
||||
"Nightwolfdezines"
|
||||
],
|
||||
"authors": ["Nightwolfdezines"],
|
||||
"sources": [
|
||||
"https://www.vecteezy.com/vector-art/226361-ornaments-and-flourishes"
|
||||
]
|
||||
|
@ -955,9 +790,7 @@
|
|||
{
|
||||
"path": "Ornament-Horiz-3.svg",
|
||||
"license": "CC-BY",
|
||||
"authors": [
|
||||
"Nightwolfdezines"
|
||||
],
|
||||
"authors": ["Nightwolfdezines"],
|
||||
"sources": [
|
||||
"https://www.vecteezy.com/vector-art/226361-ornaments-and-flourishes"
|
||||
]
|
||||
|
@ -965,9 +798,7 @@
|
|||
{
|
||||
"path": "Ornament-Horiz-4.svg",
|
||||
"license": "CC-BY",
|
||||
"authors": [
|
||||
"Nightwolfdezines"
|
||||
],
|
||||
"authors": ["Nightwolfdezines"],
|
||||
"sources": [
|
||||
"https://www.vecteezy.com/vector-art/226361-ornaments-and-flourishes"
|
||||
]
|
||||
|
@ -975,9 +806,7 @@
|
|||
{
|
||||
"path": "Ornament-Horiz-5.svg",
|
||||
"license": "CC-BY",
|
||||
"authors": [
|
||||
"Nightwolfdezines"
|
||||
],
|
||||
"authors": ["Nightwolfdezines"],
|
||||
"sources": [
|
||||
"https://www.vecteezy.com/vector-art/226361-ornaments-and-flourishes"
|
||||
]
|
||||
|
@ -985,9 +814,7 @@
|
|||
{
|
||||
"path": "Ornament-Horiz-6.svg",
|
||||
"license": "CC-BY",
|
||||
"authors": [
|
||||
"Nightwolfdezines"
|
||||
],
|
||||
"authors": ["Nightwolfdezines"],
|
||||
"sources": [
|
||||
"https://www.vecteezy.com/vector-art/226361-ornaments-and-flourishes"
|
||||
]
|
||||
|
@ -1029,25 +856,16 @@
|
|||
"sources": []
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"Pieter Vander Vennet",
|
||||
" OSM"
|
||||
],
|
||||
"authors": ["Pieter Vander Vennet", " OSM"],
|
||||
"path": "mapcomplete_logo.svg",
|
||||
"license": "Logo; CC-BY-SA",
|
||||
"sources": [
|
||||
"https://mapcomplete.osm.be"
|
||||
]
|
||||
"sources": ["https://mapcomplete.osm.be"]
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"Mapillary"
|
||||
],
|
||||
"authors": ["Mapillary"],
|
||||
"path": "mapillary.svg",
|
||||
"license": "Logo; All rights reserved",
|
||||
"sources": [
|
||||
"https://mapillary.com/"
|
||||
]
|
||||
"sources": ["https://mapillary.com/"]
|
||||
},
|
||||
{
|
||||
"authors": [],
|
||||
|
@ -1071,32 +889,22 @@
|
|||
"authors": [],
|
||||
"path": "osm-copyright.svg",
|
||||
"license": "logo; all rights reserved",
|
||||
"sources": [
|
||||
"https://www.OpenStreetMap.org"
|
||||
]
|
||||
"sources": ["https://www.OpenStreetMap.org"]
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"OpenStreetMap U.S. Chapter"
|
||||
],
|
||||
"authors": ["OpenStreetMap U.S. Chapter"],
|
||||
"path": "osm-logo-us.svg",
|
||||
"license": "Logo",
|
||||
"sources": [
|
||||
"https://www.openstreetmap.us/"
|
||||
]
|
||||
"sources": ["https://www.openstreetmap.us/"]
|
||||
},
|
||||
{
|
||||
"authors": [],
|
||||
"path": "osm-logo.svg",
|
||||
"license": "logo; all rights reserved",
|
||||
"sources": [
|
||||
"https://www.OpenStreetMap.org"
|
||||
]
|
||||
"sources": ["https://www.OpenStreetMap.org"]
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"GitHub Octicons"
|
||||
],
|
||||
"authors": ["GitHub Octicons"],
|
||||
"path": "pencil.svg",
|
||||
"license": "MIT",
|
||||
"sources": [
|
||||
|
@ -1105,14 +913,10 @@
|
|||
]
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"@ tyskrat"
|
||||
],
|
||||
"authors": ["@ tyskrat"],
|
||||
"path": "phone.svg",
|
||||
"license": "CC-BY 3.0",
|
||||
"sources": [
|
||||
"https://www.onlinewebfonts.com/icon/1059"
|
||||
]
|
||||
"sources": ["https://www.onlinewebfonts.com/icon/1059"]
|
||||
},
|
||||
{
|
||||
"authors": [],
|
||||
|
@ -1127,14 +931,10 @@
|
|||
"sources": []
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"@fatih"
|
||||
],
|
||||
"authors": ["@fatih"],
|
||||
"path": "pop-out.svg",
|
||||
"license": "CC-BY 3.0",
|
||||
"sources": [
|
||||
"https://www.onlinewebfonts.com/icon/2151"
|
||||
]
|
||||
"sources": ["https://www.onlinewebfonts.com/icon/2151"]
|
||||
},
|
||||
{
|
||||
"authors": [],
|
||||
|
@ -1149,9 +949,7 @@
|
|||
"sources": []
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"OOjs UI Team and other contributors"
|
||||
],
|
||||
"authors": ["OOjs UI Team and other contributors"],
|
||||
"path": "search.svg",
|
||||
"license": "MIT",
|
||||
"sources": [
|
||||
|
@ -1178,19 +976,13 @@
|
|||
"sources": []
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"@felpgrc"
|
||||
],
|
||||
"authors": ["@felpgrc"],
|
||||
"path": "statistics.svg",
|
||||
"license": "CC-BY 3.0",
|
||||
"sources": [
|
||||
"https://www.onlinewebfonts.com/icon/197818"
|
||||
]
|
||||
"sources": ["https://www.onlinewebfonts.com/icon/197818"]
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"MGalloway (WMF)"
|
||||
],
|
||||
"authors": ["MGalloway (WMF)"],
|
||||
"path": "translate.svg",
|
||||
"license": "CC-BY-SA 3.0",
|
||||
"sources": [
|
||||
|
@ -1204,53 +996,33 @@
|
|||
"sources": []
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"Wikidata"
|
||||
],
|
||||
"authors": ["Wikidata"],
|
||||
"path": "wikidata.svg",
|
||||
"license": "Logo; All rights reserved",
|
||||
"sources": [
|
||||
"https://www.wikidata.org"
|
||||
]
|
||||
"sources": ["https://www.wikidata.org"]
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"Wikimedia"
|
||||
],
|
||||
"authors": ["Wikimedia"],
|
||||
"path": "wikimedia-commons-white.svg",
|
||||
"license": "Logo; All rights reserved",
|
||||
"sources": [
|
||||
"https://commons.wikimedia.org"
|
||||
]
|
||||
"sources": ["https://commons.wikimedia.org"]
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"Wikipedia"
|
||||
],
|
||||
"authors": ["Wikipedia"],
|
||||
"path": "wikipedia.svg",
|
||||
"license": "Logo; All rights reserved",
|
||||
"sources": [
|
||||
"https://www.wikipedia.org/"
|
||||
]
|
||||
"sources": ["https://www.wikipedia.org/"]
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"Mapillary"
|
||||
],
|
||||
"authors": ["Mapillary"],
|
||||
"path": "mapillary_black.svg",
|
||||
"license": "Logo; All rights reserved",
|
||||
"sources": [
|
||||
"https://www.mapillary.com/"
|
||||
]
|
||||
"sources": ["https://www.mapillary.com/"]
|
||||
},
|
||||
{
|
||||
"authors": [
|
||||
"The Tango! Desktop Project"
|
||||
],
|
||||
"authors": ["The Tango! Desktop Project"],
|
||||
"path": "floppy.svg",
|
||||
"license": "CC0",
|
||||
"sources": [
|
||||
"https://commons.wikimedia.org/wiki/File:Media-floppy.svg"
|
||||
]
|
||||
"sources": ["https://commons.wikimedia.org/wiki/File:Media-floppy.svg"]
|
||||
}
|
||||
]
|
||||
]
|
||||
|
|
14790
package-lock.json
generated
14790
package-lock.json
generated
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue