From 1372027daca3c3b153f09a7c08ec4c42220326c3 Mon Sep 17 00:00:00 2001 From: Pieter Vander Vennet Date: Sun, 26 Jul 2020 02:01:34 +0200 Subject: [PATCH] Add icons, add validation, add phone and email types, add css fixes --- Customizations/AllKnownLayouts.ts | 1 - Customizations/LayerDefinition.ts | 15 +- Customizations/Layers/BikeParkings.ts | 5 +- Customizations/Layers/BikeShops.ts | 5 +- Customizations/Layers/BikeStations.ts | 7 +- Customizations/Layers/Birdhide.ts | 8 +- Customizations/Layers/Bookcases.ts | 13 +- Customizations/Layers/DrinkingWater.ts | 4 +- Customizations/Layers/GrbToFix.ts | 6 +- Customizations/Layers/InformationBoard.ts | 12 +- Customizations/Layers/Map.ts | 11 +- Customizations/Layers/NatureReserves.ts | 4 +- Customizations/Layers/Viewpoint.ts | 5 +- Customizations/Layout.ts | 5 +- Customizations/Layouts/Bookcases.ts | 27 +- Customizations/Layouts/Cyclofix.ts | 6 +- Customizations/Layouts/Groen.ts | 5 +- Customizations/Layouts/MetaMap.ts | 1 + Customizations/Layouts/Natuurpunt.ts | 1 + Customizations/Layouts/Statues.ts | 2 +- Customizations/Layouts/StreetWidth.ts | 8 +- Customizations/Questions/NameInline.ts | 13 +- Customizations/TagRendering.ts | 18 +- Helpers.ts | 15 + Logic/Basemap.ts | 3 +- Logic/FilteredLayer.ts | 46 +- Logic/GeoLocationHandler.ts | 9 +- Logic/LocalStorageSource.ts | 8 +- UI/Image/ImgurImage.ts | 2 +- UI/Image/SimpleImageElement.ts | 2 +- UI/Image/WikimediaImage.ts | 2 +- UI/Input/InputElementWrapper.ts | 4 - UI/SlideShow.ts | 2 +- UI/UIElement.ts | 8 +- UI/i18n/Translation.ts | 2 - UI/i18n/Translations.ts | 84 +- assets/add.svg | 289 ++ assets/bike/broken_pump_2.svg | 219 ++ assets/bike/logo.svg | 165 ++ assets/logo.svg | 297 ++ assets/logos/logo.svg | 3300 --------------------- assets/logos/logo192.png | Bin 40976 -> 0 bytes assets/logos/logo512.png | Bin 162707 -> 0 bytes clean.sh | 13 + createLayouts.ts | 203 +- deploy.sh | 4 +- index.css | 7 + index.html | 21 +- index.ts | 10 +- manifest.webmanifest => manifest.manifest | 8 +- package-lock.json | 710 ++++- package.json | 13 +- vendor/images/layers-2x.png | Bin 0 -> 1259 bytes vendor/images/layers.png | Bin 0 -> 696 bytes vendor/images/marker-icon.png | Bin 0 -> 1466 bytes vendor/leaflet.css | 640 ++++ 56 files changed, 2794 insertions(+), 3474 deletions(-) create mode 100644 assets/add.svg create mode 100644 assets/bike/broken_pump_2.svg create mode 100644 assets/bike/logo.svg create mode 100644 assets/logo.svg delete mode 100644 assets/logos/logo.svg delete mode 100644 assets/logos/logo192.png delete mode 100644 assets/logos/logo512.png rename manifest.webmanifest => manifest.manifest (75%) create mode 100644 vendor/images/layers-2x.png create mode 100644 vendor/images/layers.png create mode 100644 vendor/images/marker-icon.png create mode 100644 vendor/leaflet.css diff --git a/Customizations/AllKnownLayouts.ts b/Customizations/AllKnownLayouts.ts index ba69d30..12e8bc0 100644 --- a/Customizations/AllKnownLayouts.ts +++ b/Customizations/AllKnownLayouts.ts @@ -40,7 +40,6 @@ export class AllKnownLayouts { if (knownKeys.indexOf(key) >= 0) { continue; } - console.log(key) knownKeys.push(key); all.layers.push(layer); } diff --git a/Customizations/LayerDefinition.ts b/Customizations/LayerDefinition.ts index bdf480f..e1dbc86 100644 --- a/Customizations/LayerDefinition.ts +++ b/Customizations/LayerDefinition.ts @@ -70,7 +70,10 @@ export class LayerDefinition { */ style: (tags: any) => { color: string, - icon: any, + icon: { + iconUrl: string, + iconSize: number[], + }, }; /** @@ -119,16 +122,6 @@ export class LayerDefinition { this.wayHandling = options.wayHandling ?? LayerDefinition.WAYHANDLING_DEFAULT; } - asLayer(basemap: Basemap, allElements: ElementStorage, changes: Changes, userDetails: UIEventSource, - selectedElement: UIEventSource<{feature: any}>, - showOnPopup: (tags: UIEventSource, feature: any) => UIElement): - FilteredLayer { - return new FilteredLayer( - this, - basemap, allElements, changes, - selectedElement, - showOnPopup); - } } \ No newline at end of file diff --git a/Customizations/Layers/BikeParkings.ts b/Customizations/Layers/BikeParkings.ts index 67b0b89..765a954 100644 --- a/Customizations/Layers/BikeParkings.ts +++ b/Customizations/Layers/BikeParkings.ts @@ -1,7 +1,6 @@ import {LayerDefinition} from "../LayerDefinition"; import {And, Or, Tag} from "../../Logic/TagsFilter"; import {OperatorTag} from "../Questions/OperatorTag"; -import * as L from "leaflet"; import FixedText from "../Questions/FixedText"; import ParkingType from "../Questions/bike/ParkingType"; import {ImageCarouselWithUploadConstructor} from "../../UI/Image/ImageCarouselWithUpload"; @@ -47,11 +46,11 @@ export default class BikeParkings extends LayerDefinition { return function (properties: any) { return { color: "#00bb00", - icon: L.icon({ + icon: { iconUrl: self.icon, iconSize: [50, 50], iconAnchor: [25,50] - }) + } }; }; } diff --git a/Customizations/Layers/BikeShops.ts b/Customizations/Layers/BikeShops.ts index 6fa764b..e07b981 100644 --- a/Customizations/Layers/BikeShops.ts +++ b/Customizations/Layers/BikeShops.ts @@ -3,7 +3,6 @@ import Translations from "../../UI/i18n/Translations"; import {And, Tag} from "../../Logic/TagsFilter"; import FixedText from "../Questions/FixedText"; import { ImageCarouselWithUploadConstructor } from "../../UI/Image/ImageCarouselWithUpload"; -import * as L from "leaflet"; import ShopRetail from "../Questions/bike/ShopRetail"; import ShopPump from "../Questions/bike/ShopPump"; import ShopRental from "../Questions/bike/ShopRental"; @@ -71,11 +70,11 @@ export default class BikeShops extends LayerDefinition { return { color: "#00bb00", - icon: L.icon({ + icon: { iconUrl: icon, iconSize: [50, 50], iconAnchor: [25, 50] - }) + } } } } diff --git a/Customizations/Layers/BikeStations.ts b/Customizations/Layers/BikeStations.ts index ff2987b..cac60ae 100644 --- a/Customizations/Layers/BikeStations.ts +++ b/Customizations/Layers/BikeStations.ts @@ -1,6 +1,5 @@ import {LayerDefinition} from "../LayerDefinition"; import {And, Tag, TagsFilter, Or} from "../../Logic/TagsFilter"; -import * as L from "leaflet"; import BikeStationChain from "../Questions/bike/StationChain"; import BikeStationPumpTools from "../Questions/bike/StationPumpTools"; import BikeStationStand from "../Questions/bike/StationStand"; @@ -72,18 +71,18 @@ export default class BikeStations extends LayerDefinition { if (isOperational) { iconName = "pump.svg" } else { - iconName = "broken_pump.svg" + iconName = "broken_pump_2.svg" } } const iconUrl = `./assets/bike/${iconName}` return { color: "#00bb00", - icon: L.icon({ + icon: { iconUrl: iconUrl, iconSize: [50, 50], iconAnchor: [25, 50] - }) + } }; }; } diff --git a/Customizations/Layers/Birdhide.ts b/Customizations/Layers/Birdhide.ts index a917e79..ea9e642 100644 --- a/Customizations/Layers/Birdhide.ts +++ b/Customizations/Layers/Birdhide.ts @@ -3,7 +3,6 @@ import {And, Or, Tag} from "../../Logic/TagsFilter"; import {TagRenderingOptions} from "../TagRendering"; import FixedText from "../Questions/FixedText"; import {ImageCarouselWithUploadConstructor} from "../../UI/Image/ImageCarouselWithUpload"; -import L from "leaflet"; export class Birdhide extends LayerDefinition { @@ -13,8 +12,9 @@ export class Birdhide extends LayerDefinition { constructor() { super({ name: "vogelkijkplaats", + description: "Een plaats om vogels te kijken, zoals een vogelkijkhut of kijkwand", overpassFilter: Birdhide.birdhide, - elementsToShow: [new FixedText("hi")], + elementsToShow: [], icon: "assets/nature/birdhide.svg", minzoom: 12, wayHandling: LayerDefinition.WAYHANDLING_CENTER_AND_WAY, @@ -90,11 +90,11 @@ export class Birdhide extends LayerDefinition { return { color: "#0000bb", - icon: L.icon({ + icon: { iconUrl: icon, iconSize: [40,40], iconAnchor: [20,20] - }) + } } } diff --git a/Customizations/Layers/Bookcases.ts b/Customizations/Layers/Bookcases.ts index 1f67cbd..6092291 100644 --- a/Customizations/Layers/Bookcases.ts +++ b/Customizations/Layers/Bookcases.ts @@ -1,9 +1,9 @@ import {LayerDefinition} from "../LayerDefinition"; -import L from "leaflet"; import {And, Or, Tag} from "../../Logic/TagsFilter"; import {TagRenderingOptions} from "../TagRendering"; import {NameInline} from "../Questions/NameInline"; import {ImageCarouselWithUploadConstructor} from "../../UI/Image/ImageCarouselWithUpload"; +import Translations from "../../UI/i18n/Translations"; export class Bookcases extends LayerDefinition { @@ -16,7 +16,7 @@ export class Bookcases extends LayerDefinition { this.overpassFilter = new Tag("amenity", "public_bookcase"); this.minzoom = 11; - this.title = new NameInline("ruilboekenkastje"); + this.title = new NameInline(Translations.t.bookcases.bookcase); this.elementsToShow = [ new ImageCarouselWithUploadConstructor(), new TagRenderingOptions({ @@ -38,7 +38,7 @@ export class Bookcases extends LayerDefinition { question: "Hoeveel boeken passen in dit boekenruilkastje?", freeform: { renderTemplate: "Er passen {capacity} boeken in dit boekenruilkastje", - template: "Er passen $$$ boeken in dit boekenruilkastje", + template: "Er passen $nat$ boeken in dit boekenruilkastje", key: "capacity", placeholder: "aantal" }, @@ -159,10 +159,11 @@ export class Bookcases extends LayerDefinition { this.style = function (tags) { return { - icon: new L.icon({ + icon: { iconUrl: "assets/bookcase.svg", - iconSize: [40, 40] - }), + iconSize: [40, 40], + iconAnchor: [20,20] + }, color: "#0000ff" }; } diff --git a/Customizations/Layers/DrinkingWater.ts b/Customizations/Layers/DrinkingWater.ts index bfefdf8..579eed4 100644 --- a/Customizations/Layers/DrinkingWater.ts +++ b/Customizations/Layers/DrinkingWater.ts @@ -52,11 +52,11 @@ export class DrinkingWater extends LayerDefinition { return { color: "#00bb00", - icon: new L.icon({ + icon: { iconUrl: self.icon, iconSize: [50, 50], iconAnchor: [25,50] - }) + } }; }; } diff --git a/Customizations/Layers/GrbToFix.ts b/Customizations/Layers/GrbToFix.ts index 5c7fcf9..d92f8b3 100644 --- a/Customizations/Layers/GrbToFix.ts +++ b/Customizations/Layers/GrbToFix.ts @@ -1,5 +1,4 @@ import {LayerDefinition} from "../LayerDefinition"; -import L from "leaflet" import {And, Regex, Tag} from "../../Logic/TagsFilter"; import {TagRenderingOptions} from "../TagRendering"; @@ -18,11 +17,10 @@ export class GrbToFix extends LayerDefinition { this.style = function (tags) { return { - icon: new L.icon({ + icon: { iconUrl: "assets/star.svg", iconSize: [40, 40], - text: "hi" - }), + }, color: "#ff0000" }; diff --git a/Customizations/Layers/InformationBoard.ts b/Customizations/Layers/InformationBoard.ts index 240e9e1..7b696db 100644 --- a/Customizations/Layers/InformationBoard.ts +++ b/Customizations/Layers/InformationBoard.ts @@ -3,12 +3,12 @@ import FixedText from "../Questions/FixedText"; import {ImageCarouselWithUploadConstructor} from "../../UI/Image/ImageCarouselWithUpload"; import {TagRenderingOptions} from "../TagRendering"; import {And, Tag} from "../../Logic/TagsFilter"; -import L from "leaflet"; export class InformationBoard extends LayerDefinition { constructor() { super({ name: "Informatiebord", + description: "Een informatiebord of kaart", minzoom: 12, overpassFilter: new Tag("tourism", "information"), newElementTags: [new Tag("tourism", "information")], @@ -44,12 +44,10 @@ export class InformationBoard extends LayerDefinition { return { color: "#000000", - icon: L.icon( - { - iconUrl: icon, - iconSize: [50, 50] - } - ) + icon: { + iconUrl: icon, + iconSize: [50, 50] + } }; } diff --git a/Customizations/Layers/Map.ts b/Customizations/Layers/Map.ts index aeadf29..183db79 100644 --- a/Customizations/Layers/Map.ts +++ b/Customizations/Layers/Map.ts @@ -3,7 +3,6 @@ import FixedText from "../Questions/FixedText"; import {ImageCarouselWithUploadConstructor} from "../../UI/Image/ImageCarouselWithUpload"; import {TagRenderingOptions} from "../TagRendering"; import {And, Tag} from "../../Logic/TagsFilter"; -import L from "leaflet"; export class Map extends LayerDefinition { constructor() { @@ -36,12 +35,10 @@ export class Map extends LayerDefinition { return { color: "#000000", - icon: L.icon( - { - iconUrl: icon, - iconSize: [50, 50] - } - ) + icon: { + iconUrl: icon, + iconSize: [50, 50] + } }; } diff --git a/Customizations/Layers/NatureReserves.ts b/Customizations/Layers/NatureReserves.ts index 3481042..d3f13c6 100644 --- a/Customizations/Layers/NatureReserves.ts +++ b/Customizations/Layers/NatureReserves.ts @@ -72,7 +72,7 @@ export class NatureReserves extends LayerDefinition { freeform: { renderTemplate: "Bij problemen of vragen, de conservator kan bereikt worden via " + "{email}", - template: "$$$", + template: "$email$", key: "email" } }), @@ -83,7 +83,7 @@ export class NatureReserves extends LayerDefinition { freeform: { renderTemplate: "Bij problemen of vragen, de {conservator} kan bereikt worden via " + "{phone}", - template: "$$$", + template: "$phone$", key: "phone" } diff --git a/Customizations/Layers/Viewpoint.ts b/Customizations/Layers/Viewpoint.ts index 5012e79..442d94e 100644 --- a/Customizations/Layers/Viewpoint.ts +++ b/Customizations/Layers/Viewpoint.ts @@ -1,5 +1,4 @@ import {LayerDefinition} from "../LayerDefinition"; -import L from "leaflet" import {FixedUiElement} from "../../UI/Base/FixedUiElement"; import FixedText from "../Questions/FixedText"; import {Tag} from "../../Logic/TagsFilter"; @@ -17,10 +16,10 @@ export class Viewpoint extends LayerDefinition { wayHandling: LayerDefinition.WAYHANDLING_CENTER_ONLY, style: tags => { return { - color: undefined, icon: new L.icon({ + color: undefined, icon:{ iconUrl: "assets/viewpoint.svg", iconSize: [20, 20] - }) + } } }, maxAllowedOverlapPercentage: 0, diff --git a/Customizations/Layout.ts b/Customizations/Layout.ts index 077fbe5..5d11f29 100644 --- a/Customizations/Layout.ts +++ b/Customizations/Layout.ts @@ -14,8 +14,11 @@ import {UIEventSource} from "../UI/UIEventSource"; export class Layout { public name: string; - public icon: string = "./assets/add.svg"; + public icon: string = "./assets/logo.svg"; public title: UIElement; + public description: string | UIElement = Translations.t.general.about; + public socialImage: string = "" + public layers: LayerDefinition[]; public welcomeMessage: UIElement; public gettingStartedPlzLogin: UIElement; diff --git a/Customizations/Layouts/Bookcases.ts b/Customizations/Layouts/Bookcases.ts index d833d6e..0a4f1aa 100644 --- a/Customizations/Layouts/Bookcases.ts +++ b/Customizations/Layouts/Bookcases.ts @@ -1,29 +1,20 @@ import {Layout} from "../Layout"; import * as Layer from "../Layers/Bookcases"; +import Translations from "../../UI/i18n/Translations"; +import Combine from "../../UI/Base/Combine"; -export class Bookcases extends Layout{ +export class Bookcases extends Layout { constructor() { - super( "bookcases", - ["nl"], - "Open Bookcase Map", + super("bookcases", + ["nl", "en"], + Translations.t.bookcases.title, [new Layer.Bookcases()], 14, 51.2, 3.2, - - "

Open BoekenkastjesKaart

\n" + - "\n" + - "

" + - "Help mee met het creëeren van een volledige kaart met alle boekenruilkastjes!" + - "Een boekenruilkastje is een vaste plaats in publieke ruimte waar iedereen een boek in kan zetten of uit kan meenemen." + - "Meestal een klein kastje of doosje dat op straat staat, maar ook een oude telefooncellen of een schap in een station valt hieronder."+ - "

" - , - "

Begin met het aanmaken van een account\n" + - " of door je " + - " aan te melden.

", - "Klik op een boekenruilkastje om vragen te beantwoorden"); - this.locationContains= ["Bookcases.html", "Bookcase.html","bookcase"] + new Combine(["

",Translations.t.bookcases.title,"

", Translations.t.bookcases.description]) + ); + this.icon = "assets/bookcase.svg" } } \ No newline at end of file diff --git a/Customizations/Layouts/Cyclofix.ts b/Customizations/Layouts/Cyclofix.ts index 2cadb07..398e211 100644 --- a/Customizations/Layouts/Cyclofix.ts +++ b/Customizations/Layouts/Cyclofix.ts @@ -10,7 +10,7 @@ import Combine from "../../UI/Base/Combine"; export default class Cyclofix extends Layout { constructor() { super( - "pomp", + "cyclofix", ["en", "nl", "fr"], Translations.t.cyclofix.title, [new BikeServices(), new BikeShops(), new DrinkingWater(), new BikeParkings()], @@ -25,6 +25,8 @@ export default class Cyclofix extends Layout { "

" ]) ); - this.icon = "./assets/bike/pump.svg" + this.icon = "./assets/bike/logo.svg" + this.description = "Easily search and contribute bicycle data nearby"; + this.socialImage = "./assets/bike/cyclofix.jpeg" } } diff --git a/Customizations/Layouts/Groen.ts b/Customizations/Layouts/Groen.ts index 6faef2c..3ca7fe0 100644 --- a/Customizations/Layouts/Groen.ts +++ b/Customizations/Layouts/Groen.ts @@ -9,7 +9,7 @@ export class Groen extends Layout { constructor() { super("buurtnatuur", ["nl"], - "Buurtnatuur", + "Buurtnatuur.be", [new NatureReserves(), new Park(), new Bos(), new Viewpoint()], 10, 50.8435, @@ -52,6 +52,9 @@ export class Groen extends Layout { "" ); + this.icon = "assets/groen.svg" this.locationContains = ["buurtnatuur.be"] + this.socialImage = "assets/BuurtnatuurFront.jpg" + this.description = "Met deze tool kan je natuur in je buurt in kaart brengen en meer informatie geven over je favoriete plekje" } } \ No newline at end of file diff --git a/Customizations/Layouts/MetaMap.ts b/Customizations/Layouts/MetaMap.ts index c174bc6..6486e9b 100644 --- a/Customizations/Layouts/MetaMap.ts +++ b/Customizations/Layouts/MetaMap.ts @@ -15,5 +15,6 @@ export class MetaMap extends Layout{ "

Open Map Map

\n" + "This map is a map of physical maps, as known by OpenStreetMap."); + this.icon = "assets/osm-logo-buggy-attr.svg" } } \ No newline at end of file diff --git a/Customizations/Layouts/Natuurpunt.ts b/Customizations/Layouts/Natuurpunt.ts index a03d4b9..26566e4 100644 --- a/Customizations/Layouts/Natuurpunt.ts +++ b/Customizations/Layouts/Natuurpunt.ts @@ -18,5 +18,6 @@ export class Natuurpunt extends Layout{ "", "" ); + this.icon = "./assets/nature/birdhide.svg" } } \ No newline at end of file diff --git a/Customizations/Layouts/Statues.ts b/Customizations/Layouts/Statues.ts index d355fa4..90740bb 100644 --- a/Customizations/Layouts/Statues.ts +++ b/Customizations/Layouts/Statues.ts @@ -4,8 +4,8 @@ import {Artwork} from "../Layers/Artwork"; export class Statues extends Layout{ constructor() { super( "statues", - "Open Artwork Map", ["en"], + "Open Artwork Map", [new Artwork()], 10, 50.8435, diff --git a/Customizations/Layouts/StreetWidth.ts b/Customizations/Layouts/StreetWidth.ts index faaea76..7ad592c 100644 --- a/Customizations/Layouts/StreetWidth.ts +++ b/Customizations/Layouts/StreetWidth.ts @@ -84,9 +84,9 @@ export class StreetWidth extends Layout{ "
  • Het aantal woonerven uitbreiden
  • " + "
  • Grotere auto's meer belasten - ze nemen immers meer parkeerruimte in.
  • " + "
  • Laat toeristen verplicht parkeren onder het zand; een (fiets)taxi kan hen naar hun hotel brengen
  • " + - "
  • Voorzie in elke straat enkele parkeerplaatsen voor kortparkeren. Zo kunnen leveringen, iemand afzetten,... gebeuren zonder dat er een fietspad of een straat geblokkeerd wordt
  • "+ - "", - "", - ""); + "
  • Voorzie in elke straat enkele parkeerplaatsen voor kortparkeren. Zo kunnen leveringen, iemand afzetten,... gebeuren zonder dat er een fietspad of een straat geblokkeerd wordt
  • " + + ""); + this.icon = "assets/bug.svg"; + } } \ No newline at end of file diff --git a/Customizations/Questions/NameInline.ts b/Customizations/Questions/NameInline.ts index 5c9d4e6..2e28cf9 100644 --- a/Customizations/Questions/NameInline.ts +++ b/Customizations/Questions/NameInline.ts @@ -1,28 +1,25 @@ import {TagRenderingOptions} from "../TagRendering"; import {And, Tag} from "../../Logic/TagsFilter"; import {UIElement} from "../../UI/UIElement"; +import Translations from "../../UI/i18n/Translations"; export class NameInline extends TagRenderingOptions{ - static Upper(string){ - return string.charAt(0).toUpperCase() + string.slice(1); - } - - constructor(category: string ) { + constructor(category: string | UIElement ) { super({ question: "", freeform: { renderTemplate: "{name}", - template: "De naam van dit "+category+" is $$$", + template: Translations.t.general.nameInlineQuestion.Subs({category: category}), key: "name", extraTags: new Tag("noname", "") // Remove 'noname=yes' }, mappings: [ - {k: new Tag("noname","yes"), txt: NameInline.Upper(category)+" zonder naam"}, - {k: null, txt: NameInline.Upper(category)} + {k: new Tag("noname","yes"), txt: Translations.t.general.noNameCategory.Subs({category: category})}, + {k: null, txt: category} ] }); } diff --git a/Customizations/TagRendering.ts b/Customizations/TagRendering.ts index 73798d0..193e24e 100644 --- a/Customizations/TagRendering.ts +++ b/Customizations/TagRendering.ts @@ -15,7 +15,8 @@ import {FixedInputElement} from "../UI/Input/FixedInputElement"; import {RadioButton} from "../UI/Input/RadioButton"; import Translations from "../UI/i18n/Translations"; import Locale from "../UI/i18n/Locale"; - +import * as EmailValidator from 'email-validator'; +import { parsePhoneNumberFromString } from 'libphonenumber-js' export class TagRenderingOptions implements TagDependantUIElementConstructor { @@ -25,6 +26,12 @@ export class TagRenderingOptions implements TagDependantUIElementConstructor { "int": (str) => str.indexOf(".") < 0 && !isNaN(Number(str)), "nat": (str) => str.indexOf(".") < 0 && !isNaN(Number(str)) && Number(str) > 0, "float": (str) => !isNaN(Number(str)), + "email": (str) => EmailValidator.validate(str), + "phone": (str) => parsePhoneNumberFromString(str).isValid() + } + + public static formatting = { + "phone": (str) => parsePhoneNumberFromString(str).formatInternational() } /** @@ -345,7 +352,12 @@ class TagRendering extends UIElement implements TagDependantUIElement { const prepost = Translations.W(freeform.template).InnerRender().split("$"); const type = prepost[1]; - const isValid = TagRenderingOptions.inputValidation[type]; + let isValid = TagRenderingOptions.inputValidation[type]; + if(isValid === undefined){ + console.log("Invalid type for field type", type) + isValid = (str) => true; + } + let formatter = TagRenderingOptions.formatting[type] ?? ((str) => str); const pickString = (string: any) => { @@ -355,7 +367,7 @@ class TagRendering extends UIElement implements TagDependantUIElement { if (!isValid(string)) { return undefined; } - const tag = new Tag(freeform.key, string); + const tag = new Tag(freeform.key, formatter(string)); if (freeform.extraTags === undefined) { return tag; diff --git a/Helpers.ts b/Helpers.ts index 49043bd..22e7d38 100644 --- a/Helpers.ts +++ b/Helpers.ts @@ -70,6 +70,21 @@ export class Helpers { return confirmationMessage; //Webkit, Safari, Chrome }); + + document.addEventListener('visibilitychange',() => { + if(document.visibilityState === "visible"){ + return; + } + if (changes.pendingChangesES.data == 0) { + return; + } + + console.log("Upmoading: loss of focus") + changes.uploadAll(function () { + window.close() + }); + }) + } } \ No newline at end of file diff --git a/Logic/Basemap.ts b/Logic/Basemap.ts index f5c37e9..2c3edea 100644 --- a/Logic/Basemap.ts +++ b/Logic/Basemap.ts @@ -104,6 +104,5 @@ export class Basemap { self.LastClickLocation.setData({lat: e.latlng.lat, lon: e.latlng.lng}) }); } - - + } diff --git a/Logic/FilteredLayer.ts b/Logic/FilteredLayer.ts index 3053fd3..15fddf7 100644 --- a/Logic/FilteredLayer.ts +++ b/Logic/FilteredLayer.ts @@ -1,12 +1,13 @@ -import { Basemap } from "./Basemap"; -import { TagsFilter, TagUtils } from "./TagsFilter"; -import { UIEventSource } from "../UI/UIEventSource"; -import { ElementStorage } from "./ElementStorage"; -import { Changes } from "./Changes"; +import {Basemap} from "./Basemap"; +import {TagsFilter, TagUtils} from "./TagsFilter"; +import {UIEventSource} from "../UI/UIEventSource"; +import {ElementStorage} from "./ElementStorage"; +import {Changes} from "./Changes"; import L from "leaflet" -import { GeoOperations } from "./GeoOperations"; -import { UIElement } from "../UI/UIElement"; -import { LayerDefinition } from "../Customizations/LayerDefinition"; +import {GeoOperations} from "./GeoOperations"; +import {UIElement} from "../UI/UIElement"; +import {LayerDefinition} from "../Customizations/LayerDefinition"; +import {UserDetails} from "./OsmConnection"; /*** * A filtered layer is a layer which offers a 'set-data' function @@ -26,7 +27,7 @@ export class FilteredLayer { private readonly _map: Basemap; private readonly _maxAllowedOverlap: number; - private readonly _style: (properties) => { color: string, icon: any }; + private readonly _style: (properties) => { color: string, icon: { iconUrl: string } }; private readonly _storage: ElementStorage; @@ -59,7 +60,7 @@ export class FilteredLayer { this._style = layerDef.style; if (this._style === undefined) { this._style = function () { - return {icon: "", color: "#000000"}; + return {icon: {iconUrl: "./assets/bug.svg"}, color: "#000000"}; } } this.name = name; @@ -78,6 +79,20 @@ export class FilteredLayer { } }) } + + static fromDefinition( + definition, + basemap: Basemap, allElements: ElementStorage, changes: Changes, userDetails: UIEventSource, + selectedElement: UIEventSource<{feature: any}>, + showOnPopup: (tags: UIEventSource, feature: any) => UIElement): + FilteredLayer { + return new FilteredLayer( + definition, + basemap, allElements, changes, + selectedElement, + showOnPopup); + + } /** @@ -187,7 +202,7 @@ export class FilteredLayer { } else { marker = L.marker(latLng, { - icon: style.icon + icon: new L.icon(style.icon) }); } return marker; @@ -197,7 +212,7 @@ export class FilteredLayer { let eventSource = self._storage.addOrGetElement(feature); eventSource.addCallback(function () { if (layer.setIcon) { - layer.setIcon(self._style(feature.properties).icon) + layer.setIcon(L.icon(self._style(feature.properties).icon)) } else { console.log("UPdating", layer); @@ -212,7 +227,12 @@ export class FilteredLayer { console.log("Selected ", feature) self._selectedElement.setData({feature: feature}); const uiElement = self._showOnPopup(eventSource, feature); - const popup = L.popup() + + const iconInfo = self._style(feature.properties).icon; + + const popup = L.popup({ + autoPan: true, + }) .setContent(uiElement.Render()) .setLatLng(e.latlng) .openOn(self._map.map); diff --git a/Logic/GeoLocationHandler.ts b/Logic/GeoLocationHandler.ts index 8c4075c..e84c3c1 100644 --- a/Logic/GeoLocationHandler.ts +++ b/Logic/GeoLocationHandler.ts @@ -3,7 +3,6 @@ import {UIEventSource} from "../UI/UIEventSource"; import {UIElement} from "../UI/UIElement"; import L from "leaflet"; import {Helpers} from "../Helpers"; -import {UserDetails} from "./OsmConnection"; export class GeoLocationHandler extends UIElement { @@ -81,7 +80,7 @@ export class GeoLocationHandler extends UIElement { this.HideOnEmpty(true); } - protected InnerRender(): string { + InnerRender(): string { if (this.currentLocation.data) { return "locate me"; } @@ -114,6 +113,12 @@ export class GeoLocationHandler extends UIElement { if (!self._isActive.data) { self._isActive.setData(true); Helpers.DoEvery(60000, () => { + + if(document.visibilityState !== "visible"){ + console.log("Not starting gps: document not visible") + return; + } + self._map.map.findAccuratePosition({ maxWait: 10000, // defaults to 10000 desiredAccuracy: 50 // defaults to 20 diff --git a/Logic/LocalStorageSource.ts b/Logic/LocalStorageSource.ts index 3b1146c..f3ed37d 100644 --- a/Logic/LocalStorageSource.ts +++ b/Logic/LocalStorageSource.ts @@ -3,15 +3,19 @@ import {UIEventSource} from "../UI/UIEventSource"; export class LocalStorageSource { static Get(key: string, defaultValue: string = undefined): UIEventSource { - + + //* + // ignore when running from the console + return new UIEventSource(defaultValue); + /*/ const saved = localStorage.getItem(key); const source = new UIEventSource(saved ?? defaultValue); - // ignore when running from the console source.addCallback((data) => { localStorage.setItem(key, data); console.log("Wriging ", key, data) }); return source; + //*/ } } \ No newline at end of file diff --git a/UI/Image/ImgurImage.ts b/UI/Image/ImgurImage.ts index cf0e07d..c2d1041 100644 --- a/UI/Image/ImgurImage.ts +++ b/UI/Image/ImgurImage.ts @@ -32,7 +32,7 @@ export class ImgurImage extends UIElement { } - protected InnerRender(): string { + InnerRender(): string { const image = ""; if(this._imageMeta.data === null){ diff --git a/UI/Image/SimpleImageElement.ts b/UI/Image/SimpleImageElement.ts index 4c07045..1509ac1 100644 --- a/UI/Image/SimpleImageElement.ts +++ b/UI/Image/SimpleImageElement.ts @@ -8,7 +8,7 @@ export class SimpleImageElement extends UIElement { super(source); } - protected InnerRender(): string { + InnerRender(): string { return "img"; } diff --git a/UI/Image/WikimediaImage.ts b/UI/Image/WikimediaImage.ts index abdf132..ed71b3c 100644 --- a/UI/Image/WikimediaImage.ts +++ b/UI/Image/WikimediaImage.ts @@ -29,7 +29,7 @@ export class WikimediaImage extends UIElement { } - protected InnerRender(): string { + InnerRender(): string { let url = Wikimedia.ImageNameToUrl(this._imageLocation, 500, 400); url = url.replace(/'/g, '%27'); diff --git a/UI/Input/InputElementWrapper.ts b/UI/Input/InputElementWrapper.ts index 905a948..baf6b07 100644 --- a/UI/Input/InputElementWrapper.ts +++ b/UI/Input/InputElementWrapper.ts @@ -26,10 +26,6 @@ export class InputElementWrapper extends InputElement{ return this.input.GetValue(); } - ShowValue(t: T) { - return this.input.ShowValue(t); - } - InnerRender(): string { return this.pre.Render() + this.input.Render() + this.post.Render(); } diff --git a/UI/SlideShow.ts b/UI/SlideShow.ts index 8602d4c..254c03a 100644 --- a/UI/SlideShow.ts +++ b/UI/SlideShow.ts @@ -39,7 +39,7 @@ export class SlideShow extends UIElement { } - protected InnerRender(): string { + InnerRender(): string { if (this._embeddedElements.data.length == 0) { return this._noimages.Render(); } diff --git a/UI/UIElement.ts b/UI/UIElement.ts index 8bae413..f67e209 100644 --- a/UI/UIElement.ts +++ b/UI/UIElement.ts @@ -8,6 +8,9 @@ export abstract class UIElement { public readonly _source: UIEventSource; private _hideIfEmpty = false; + + // WOrkaround as document is not defined + public static runningFromConsole = false; protected constructor(source: UIEventSource) { this.id = "ui-element-" + UIElement.nextId; @@ -37,9 +40,10 @@ export abstract class UIElement { } Update(): void { - if(document === undefined){ - return ; // Running from console + if(UIElement.runningFromConsole){ + return; } + let element = document.getElementById(this.id); if (element === undefined || element === null) { // The element is not painted diff --git a/UI/i18n/Translation.ts b/UI/i18n/Translation.ts index d0f6375..58a1d8b 100644 --- a/UI/i18n/Translation.ts +++ b/UI/i18n/Translation.ts @@ -18,13 +18,11 @@ export default class Translation extends UIElement { const parts = template.split("{" + k + "}"); const el: string | UIElement = text[k]; let rtext: string = ""; - console.log(parts) if (typeof (el) === "string") { rtext = el; } else { Translation.forcedLanguage = lang; // This is a very dirty hack - it'll bite me one day rtext = el.InnerRender(); - console.log(rtext) } for (let i = 0; i < parts.length - 1; i++) { combined.push(parts[i]); diff --git a/UI/i18n/Translations.ts b/UI/i18n/Translations.ts index 9a5c871..a13e316 100644 --- a/UI/i18n/Translations.ts +++ b/UI/i18n/Translations.ts @@ -14,14 +14,14 @@ export default class Translations { static t = { cyclofix: { title: new T({ - en: 'Cyclofix bicycle infrastructure', - nl: 'Cyclofix fietsinfrastructuur', + en: 'Cyclofix - an open map for cyclists', + nl: 'Cyclofix - een open kaart voor fietsers', fr: 'TODO: FRENCH TRANSLATION' }), description: new T({ - en: "On this map we want to collect data about the whereabouts of bicycle pumps and public racks in Brussels." + + en: "On this map we want to collect data about the whereabouts of bicycle pumps and public racks in Brussels and everywhere else." + "As a result, cyclists will be able to quickly find the nearest infrastructure for their needs.", - nl: "Op deze kaart willen we gegevens verzamelen over de locatie van fietspompen en openbare stelplaatsen in Brussel." + + nl: "Op deze kaart willen we gegevens verzamelen over de locatie van fietspompen en openbare stelplaatsen in Brussel en overal ter wereld." + "Hierdoor kunnen fietsers snel de dichtstbijzijnde infrastructuur vinden die voldoet aan hun behoeften.", fr: "Sur cette carte, nous voulons collecter des données sur la localisation des pompes à vélo et des supports publics à Bruxelles." + "Les cyclistes pourront ainsi trouver rapidement l'infrastructure la plus proche de leurs besoins." @@ -293,9 +293,21 @@ export default class Translations { only: new T({en: 'This shop only sells second-hand bikes', nl: 'Deze winkel verkoopt enkel tweedehands fietsen', fr: 'TODO: fr'}), }, diy: { - question: new T({en: 'Are there tools here to repair your own bike?', nl: 'Biedt deze winkel gereedschap aan om je fiets zelf te herstellen?', fr: 'TODO: fr'}), - yes: new T({en: 'This shop offers tools for DIY repair', nl: 'Deze winkel biedt gereedschap aan om je fiets zelf te herstellen', fr: 'TODO: fr'}), - no: new T({en: 'This shop doesn\'t offer tools for DIY repair', nl: 'Deze winkel biedt geen gereedschap aan om je fiets zelf te herstellen', fr: 'TODO: fr'}), + question: new T({ + en: 'Are there tools here to repair your own bike?', + nl: 'Biedt deze winkel gereedschap aan om je fiets zelf te herstellen?', + fr: 'TODO: fr' + }), + yes: new T({ + en: 'This shop offers tools for DIY repair', + nl: 'Deze winkel biedt gereedschap aan om je fiets zelf te herstellen', + fr: 'TODO: fr' + }), + no: new T({ + en: 'This shop doesn\'t offer tools for DIY repair', + nl: 'Deze winkel biedt geen gereedschap aan om je fiets zelf te herstellen', + fr: 'TODO: fr' + }), } }, drinking_water: { @@ -305,6 +317,20 @@ export default class Translations { }) } }, + bookcases: { + title: new T({en: "Open Bookcase Map", nl: "Open Boekenkastjes kaart"}), + description: new T({ + en: "Search a bookcase near you and add information about them in the biggest shared map of the world.", + nl: "Help mee met het creëeren van een volledige kaart met alle boekenruilkastjes!" + + "Een boekenruilkastje is een vaste plaats in publieke ruimte waar iedereen een boek in kan zetten of uit kan meenemen." + + "Meestal een klein kastje of doosje dat op straat staat, maar ook een oude telefooncellen of een schap in een station valt hieronder." + } + ), + bookcase: new T({ + nl: "Boekenruilkastje" + }) + }, + image: { addPicture: new T({en: 'Add picture', nl: 'Voeg foto toe', fr: 'TODO: fr'}), uploadingPicture: new T({ @@ -424,8 +450,19 @@ export default class Translations { pickLanguage: new T({ en: "Choose a language", nl: "Kies je taal" + }), + about: new T({ + en: "Easily edit and add OpenStreetMap for a certain theme", + nl: "Easily edit and add OpenStreetMap for a certain theme" + + }), + nameInlineQuestion: new T({ + nl: "De naam van dit {category} is $$$" + }), + noNameCategory: new T({ + nl: "{category} zonder naam" }) - } + } } public static W(s: string | UIElement): UIElement { @@ -435,4 +472,35 @@ export default class Translations { return new FixedUiElement(s); } + public static CountTranslations() { + const queue: any = [Translations.t]; + const tr: Translation[] = []; + while (queue.length > 0) { + const item = queue.pop(); + if (item instanceof Translation || item.translations !== undefined) { + tr.push(item); + } else { + for (const t in item) { + const x = item[t]; + queue.push(x) + } + } + } + + const langaugeCounts = {}; + for (const translation of tr) { + for (const language in translation.translations) { + if (langaugeCounts[language] === undefined) { + langaugeCounts[language] = 1 + } else { + langaugeCounts[language]++; + } + } + } + for (const language in langaugeCounts) { + console.log("Total translations in ", language, langaugeCounts[language], "/", tr.length) + } + + } + } diff --git a/assets/add.svg b/assets/add.svg new file mode 100644 index 0000000..cc4b162 --- /dev/null +++ b/assets/add.svg @@ -0,0 +1,289 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/bike/broken_pump_2.svg b/assets/bike/broken_pump_2.svg new file mode 100644 index 0000000..72d4719 --- /dev/null +++ b/assets/bike/broken_pump_2.svg @@ -0,0 +1,219 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/bike/logo.svg b/assets/bike/logo.svg new file mode 100644 index 0000000..059b16e --- /dev/null +++ b/assets/bike/logo.svg @@ -0,0 +1,165 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/logo.svg b/assets/logo.svg new file mode 100644 index 0000000..bd2eb3c --- /dev/null +++ b/assets/logo.svg @@ -0,0 +1,297 @@ + + + + + + image/svg+xml + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/assets/logos/logo.svg b/assets/logos/logo.svg deleted file mode 100644 index 7e4cba1..0000000 --- a/assets/logos/logo.svg +++ /dev/null @@ -1,3300 +0,0 @@ - - - - - OpenStreetMap logo 2011 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - image/svg+xml - - OpenStreetMap logo 2011 - - - Ken Vermette - - - - April 2011 - - - OpenStreetMap.org - - - Replacement logo for OpenStreetMap Foundation - - - OSM openstreetmap logo - - - http://wiki.openstreetmap.org/wiki/File:Public-images-osm_logo.svg - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 010110010011010110010011  - 010110010011010110010011  - - - diff --git a/assets/logos/logo192.png b/assets/logos/logo192.png deleted file mode 100644 index 0b71451c3ada622c6d292dcd7e4058e4edf0e986..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 40976 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
    diff --git a/index.ts b/index.ts index 50ce36b..86763b9 100644 --- a/index.ts +++ b/index.ts @@ -56,6 +56,11 @@ if (location.hostname === "localhost" || location.hostname === "127.0.0.1") { let defaultLayout = "all" +const path = window.location.pathname.split("/").slice(-1)[0]; +if (path !== "index.html") { + defaultLayout = path.substr(0, path.length - 5); + console.log("Using", defaultLayout) +} // Run over all questsets. If a part of the URL matches a searched-for part in the layout, it'll take that as the default for (const k in AllKnownLayouts.allSets) { @@ -75,6 +80,9 @@ defaultLayout = QueryParameters.GetQueryParameter("layout").data ?? defaultLayou const layoutToUse: Layout = AllKnownLayouts.allSets[defaultLayout] ?? AllKnownLayouts["all"]; console.log("Using layout: ", layoutToUse.name); +if(layoutToUse === undefined){ + console.log("Incorrect layout") +} // ----------------- Setup a few event sources ------------- @@ -190,7 +198,7 @@ for (const layer of layoutToUse.layers) { minZoom = Math.max(minZoom, layer.minzoom); - const flayer = layer.asLayer(bm, allElements, changes, osmConnection.userDetails, selectedElement, generateInfo); + const flayer = FilteredLayer.fromDefinition(layer, bm, allElements, changes, osmConnection.userDetails, selectedElement, generateInfo); const addButton = { name: Translations.W(layer.name), diff --git a/manifest.webmanifest b/manifest.manifest similarity index 75% rename from manifest.webmanifest rename to manifest.manifest index de7a335..c773208 100644 --- a/manifest.webmanifest +++ b/manifest.manifest @@ -1,24 +1,24 @@ { "name": "MapComplete", "short_name": "MapComplete", - "start_url": ".", + "start_url": "index.html", "display": "standalone", "background_color": "#fff", "description": "Easily edit OpenStreetMap", "orientation": "portrait-primary, landscape-primary", "icons": [ { - "src": "assets/logos/logo192.png", + "src": "./assets/add.svg", "sizes": "192x192", "type": "image/png" }, { - "src": "assets/logos/logo512.png", + "src": "./assets/add.svg", "sizes": "512x512", "type": "image/png" }, { - "src": "assets/logos/logo.svg", + "src": "./assets/add.svg", "sizes": "513x513", "type": "image/svg" } diff --git a/package-lock.json b/package-lock.json index a42c7c6..da89ba4 100644 --- a/package-lock.json +++ b/package-lock.json @@ -779,6 +779,16 @@ "@babel/helper-plugin-utils": "^7.8.3" } }, + "@babel/polyfill": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/polyfill/-/polyfill-7.10.4.tgz", + "integrity": "sha512-8BYcnVqQ5kMD2HXoHInBH7H1b/uP3KdnwCYXOqFnXqguOyuu443WXusbIUbWEfY3Z0Txk0M1uG/8YuAMhNl6zg==", + "dev": true, + "requires": { + "core-js": "^2.6.5", + "regenerator-runtime": "^0.13.4" + } + }, "@babel/preset-env": { "version": "7.9.6", "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.9.6.tgz", @@ -992,6 +1002,12 @@ "physical-cpu-count": "^2.0.0" } }, + "@types/atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/@types/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-8GAYQ1jDRUQkSpHzJUqXwAkYFOxuWAOGLhIR4aPd/Y/yL12Q/9m7LsKpHKlfKdNE/362Hc9wPI1Yh6opDfxVJg==", + "dev": true + }, "@types/geojson": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/@types/geojson/-/geojson-1.0.6.tgz", @@ -1014,6 +1030,12 @@ "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.3.tgz", "integrity": "sha512-tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg==" }, + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", + "dev": true + }, "acorn": { "version": "7.2.0", "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.2.0.tgz", @@ -1109,6 +1131,22 @@ } } }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, + "are-we-there-yet": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", + "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", + "dev": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^2.0.6" + } + }, "argparse": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", @@ -1545,6 +1583,12 @@ "pkg-up": "^2.0.0" } }, + "btoa": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/btoa/-/btoa-1.2.1.tgz", + "integrity": "sha512-SB4/MIGlsiVkMcHmT+pSmIPoNDoHg+7cMzmt3Uxt628MTz2487DKSqK/fuhFBrkuqrYv5UCEnACpF4dTFNKc/g==", + "dev": true + }, "buffer": { "version": "4.9.2", "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", @@ -1638,6 +1682,120 @@ "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001066.tgz", "integrity": "sha512-Gfj/WAastBtfxLws0RCh2sDbTK/8rJuSeZMecrSkNGYxPcv7EzblmDGfWQCFEQcSqYE2BRgQiJh8HOD07N5hIw==" }, + "canvas": { + "version": "2.6.1", + "resolved": "https://registry.npmjs.org/canvas/-/canvas-2.6.1.tgz", + "integrity": "sha512-S98rKsPcuhfTcYbtF53UIJhcbgIAK533d1kJKMwsMwAIFgfd58MOyxRud3kktlzWiEkFliaJtvyZCBtud/XVEA==", + "dev": true, + "requires": { + "nan": "^2.14.0", + "node-pre-gyp": "^0.11.0", + "simple-get": "^3.0.3" + } + }, + "canvg": { + "version": "1.5.3", + "resolved": "https://registry.npmjs.org/canvg/-/canvg-1.5.3.tgz", + "integrity": "sha512-7Gn2IuQzvUQWPIuZuFHrzsTM0gkPz2RRT9OcbdmA03jeKk8kltrD8gqUzNX15ghY/4PV5bbe5lmD6yDLDY6Ybg==", + "dev": true, + "requires": { + "jsdom": "^8.1.0", + "rgbcolor": "^1.0.1", + "stackblur-canvas": "^1.4.1", + "xmldom": "^0.1.22" + }, + "dependencies": { + "abab": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/abab/-/abab-1.0.4.tgz", + "integrity": "sha1-X6rZwsB/YN12dw9xzwJbYqY8/U4=", + "dev": true + }, + "acorn": { + "version": "2.7.0", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-2.7.0.tgz", + "integrity": "sha1-q259nYhqrKiwhbwzEreaGYQz8Oc=", + "dev": true + }, + "acorn-globals": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-1.0.9.tgz", + "integrity": "sha1-VbtemGkVB7dFedBRNBMhfDgMVM8=", + "dev": true, + "requires": { + "acorn": "^2.1.0" + } + }, + "cssstyle": { + "version": "0.2.37", + "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-0.2.37.tgz", + "integrity": "sha1-VBCXI0yyUTyDzu06zdwn/yeYfVQ=", + "dev": true, + "requires": { + "cssom": "0.3.x" + } + }, + "jsdom": { + "version": "8.5.0", + "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-8.5.0.tgz", + "integrity": "sha1-1Nj12/J2hjW2KmKCO5R89wcevJg=", + "dev": true, + "requires": { + "abab": "^1.0.0", + "acorn": "^2.4.0", + "acorn-globals": "^1.0.4", + "array-equal": "^1.0.0", + "cssom": ">= 0.3.0 < 0.4.0", + "cssstyle": ">= 0.2.34 < 0.3.0", + "escodegen": "^1.6.1", + "iconv-lite": "^0.4.13", + "nwmatcher": ">= 1.3.7 < 2.0.0", + "parse5": "^1.5.1", + "request": "^2.55.0", + "sax": "^1.1.4", + "symbol-tree": ">= 3.1.0 < 4.0.0", + "tough-cookie": "^2.2.0", + "webidl-conversions": "^3.0.1", + "whatwg-url": "^2.0.1", + "xml-name-validator": ">= 2.0.1 < 3.0.0" + } + }, + "parse5": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-1.5.1.tgz", + "integrity": "sha1-m387DeMr543CQBsXVzzK8Pb1nZQ=", + "dev": true + }, + "tr46": { + "version": "0.0.3", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-0.0.3.tgz", + "integrity": "sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=", + "dev": true + }, + "webidl-conversions": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-3.0.1.tgz", + "integrity": "sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=", + "dev": true + }, + "whatwg-url": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-2.0.1.tgz", + "integrity": "sha1-U5ayBD8CDub3BNnEXqhRnnJN5lk=", + "dev": true, + "requires": { + "tr46": "~0.0.3", + "webidl-conversions": "^3.0.0" + } + }, + "xml-name-validator": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-2.0.1.tgz", + "integrity": "sha1-TYuPHszTQZqjYgYb7O9RXh5VljU=", + "dev": true + } + } + }, "cardinal": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-0.4.4.tgz", @@ -1681,6 +1839,12 @@ "upath": "^1.1.1" } }, + "chownr": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", + "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", + "dev": true + }, "cipher-base": { "version": "1.0.4", "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", @@ -1754,6 +1918,11 @@ "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=" }, + "closure": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/closure/-/closure-1.0.3.tgz", + "integrity": "sha1-5BD7MJWJaIGHfTeLjhSV93S2HEk=" + }, "coa": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", @@ -1764,6 +1933,12 @@ "q": "^1.1.2" } }, + "code-point-at": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", + "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", + "dev": true + }, "collection-visit": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", @@ -1848,6 +2023,12 @@ "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==" }, + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "dev": true + }, "constants-browserify": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", @@ -2276,6 +2457,21 @@ "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" }, + "decompress-response": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz", + "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==", + "dev": true, + "requires": { + "mimic-response": "^2.0.0" + } + }, + "deep-extend": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", + "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", + "dev": true + }, "deep-is": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", @@ -2346,6 +2542,12 @@ "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=" }, + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "dev": true + }, "depd": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", @@ -2365,6 +2567,17 @@ "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=" }, + "detect-libc": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz", + "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", + "dev": true + }, + "diff": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/diff/-/diff-1.4.0.tgz", + "integrity": "sha1-fyjS657nsVqX79ic5j3P2qPMur8=" + }, "diffie-hellman": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", @@ -2509,6 +2722,11 @@ } } }, + "email-validator": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/email-validator/-/email-validator-2.0.4.tgz", + "integrity": "sha512-gYCwo7kh5S3IDyZPLZf6hSS0MnZT8QmJFqYvbqlDZSbwdZlY6QZWxJ4i/6UhITOJ4XzyI647Bm2MXKCLqnJ4nQ==" + }, "emoji-regex": { "version": "7.0.3", "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", @@ -2895,6 +3113,15 @@ "integrity": "sha1-invTcYa23d84E/I4WLV+yq9eQdQ=", "dev": true }, + "fs-minipass": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", + "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", + "dev": true, + "requires": { + "minipass": "^2.6.0" + } + }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", @@ -2915,6 +3142,59 @@ "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==" }, + "gauge": { + "version": "2.7.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", + "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "dev": true, + "requires": { + "aproba": "^1.0.3", + "console-control-strings": "^1.0.0", + "has-unicode": "^2.0.0", + "object-assign": "^4.1.0", + "signal-exit": "^3.0.0", + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1", + "wide-align": "^1.1.0" + }, + "dependencies": { + "ansi-regex": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", + "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "dev": true, + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "dev": true, + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "dev": true, + "requires": { + "ansi-regex": "^2.0.0" + } + } + } + }, "gensync": { "version": "1.0.0-beta.1", "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.1.tgz", @@ -3096,6 +3376,12 @@ "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "dev": true + }, "has-value": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", @@ -3310,6 +3596,15 @@ "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz", "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==" }, + "ignore-walk": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz", + "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==", + "dev": true, + "requires": { + "minimatch": "^3.0.4" + } + }, "import-fresh": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", @@ -3347,6 +3642,12 @@ "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "dev": true + }, "invariant": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", @@ -3590,6 +3891,27 @@ "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=" }, + "jade": { + "version": "0.26.3", + "resolved": "https://registry.npmjs.org/jade/-/jade-0.26.3.tgz", + "integrity": "sha1-jxDXl32NefL2/4YqgbBRPMslaGw=", + "requires": { + "commander": "0.6.1", + "mkdirp": "0.3.0" + }, + "dependencies": { + "commander": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/commander/-/commander-0.6.1.tgz", + "integrity": "sha1-+mihT2qUXVTbvlDYzbMyDp47GgY=" + }, + "mkdirp": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.3.0.tgz", + "integrity": "sha1-G79asbqCevI1dRQ0kEJkVfSB/h4=" + } + } + }, "jquery": { "version": "3.5.1", "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.5.1.tgz", @@ -3772,6 +4094,24 @@ "type-check": "~0.3.2" } }, + "libphonenumber": { + "version": "0.0.10", + "resolved": "https://registry.npmjs.org/libphonenumber/-/libphonenumber-0.0.10.tgz", + "integrity": "sha1-54u/ZgGYnNCfpDUEdkaI1BeUFIw=", + "requires": { + "closure": "1.0.3", + "mocha": "^2.4.5" + } + }, + "libphonenumber-js": { + "version": "1.7.55", + "resolved": "https://registry.npmjs.org/libphonenumber-js/-/libphonenumber-js-1.7.55.tgz", + "integrity": "sha512-vYT83akP6uJq5QiMgzzVsWrGWJpQ4KgX2SmW0RBgLFD1UzICjVgp+7ajEep3oRcv2838kMTu1gj7KHPi0Y6Y6w==", + "requires": { + "minimist": "^1.2.5", + "xml2js": "^0.4.17" + } + }, "locate-path": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", @@ -3822,6 +4162,11 @@ "js-tokens": "^3.0.0 || ^4.0.0" } }, + "lru-cache": { + "version": "2.7.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz", + "integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=" + }, "magic-string": { "version": "0.22.5", "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.22.5.tgz", @@ -3937,6 +4282,12 @@ "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz", "integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==" }, + "mimic-response": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz", + "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA==", + "dev": true + }, "minimalistic-assert": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", @@ -3960,6 +4311,25 @@ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==" }, + "minipass": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", + "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "dev": true, + "requires": { + "safe-buffer": "^5.1.2", + "yallist": "^3.0.0" + } + }, + "minizlib": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", + "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", + "dev": true, + "requires": { + "minipass": "^2.9.0" + } + }, "mixin-deep": { "version": "1.3.2", "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", @@ -3987,6 +4357,89 @@ "minimist": "^1.2.5" } }, + "mocha": { + "version": "2.5.3", + "resolved": "https://registry.npmjs.org/mocha/-/mocha-2.5.3.tgz", + "integrity": "sha1-FhvlvetJZ3HrmzV0UFC2IrWu/Fg=", + "requires": { + "commander": "2.3.0", + "debug": "2.2.0", + "diff": "1.4.0", + "escape-string-regexp": "1.0.2", + "glob": "3.2.11", + "growl": "1.9.2", + "jade": "0.26.3", + "mkdirp": "0.5.1", + "supports-color": "1.2.0", + "to-iso-string": "0.0.2" + }, + "dependencies": { + "commander": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.3.0.tgz", + "integrity": "sha1-/UMOiJgy7DU7ms0d4hfBHLPu+HM=" + }, + "debug": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz", + "integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=", + "requires": { + "ms": "0.7.1" + } + }, + "escape-string-regexp": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.2.tgz", + "integrity": "sha1-Tbwv5nTnGUnK8/smlc5/LcHZqNE=" + }, + "glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/glob/-/glob-3.2.11.tgz", + "integrity": "sha1-Spc/Y1uRkPcV0QmH1cAP0oFevj0=", + "requires": { + "inherits": "2", + "minimatch": "0.3" + } + }, + "growl": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/growl/-/growl-1.9.2.tgz", + "integrity": "sha1-Dqd0NxXbjY3ixe3hd14bRayFwC8=" + }, + "minimatch": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-0.3.0.tgz", + "integrity": "sha1-J12O2qxPG7MyZHIInnlJyDlGmd0=", + "requires": { + "lru-cache": "2", + "sigmund": "~1.0.0" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "requires": { + "minimist": "0.0.8" + } + }, + "ms": { + "version": "0.7.1", + "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz", + "integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=" + }, + "supports-color": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-1.2.0.tgz", + "integrity": "sha1-/x7R5hFp0Gs88tWI4YixjYhH4X4=" + } + } + }, "monotone-convex-hull-2d": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/monotone-convex-hull-2d/-/monotone-convex-hull-2d-1.0.1.tgz", @@ -4003,8 +4456,7 @@ "nan": { "version": "2.14.1", "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz", - "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==", - "optional": true + "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==" }, "nanomatch": { "version": "1.2.13", @@ -4024,6 +4476,28 @@ "to-regex": "^3.0.1" } }, + "needle": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/needle/-/needle-2.5.0.tgz", + "integrity": "sha512-o/qITSDR0JCyCKEQ1/1bnUXMmznxabbwi/Y4WwJElf+evwJNFNwIDMCCt5IigFVxgeGBJESLohGtIS9gEzo1fA==", + "dev": true, + "requires": { + "debug": "^3.2.6", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" + }, + "dependencies": { + "debug": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz", + "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } + } + } + }, "nice-try": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", @@ -4076,11 +4550,39 @@ } } }, + "node-pre-gyp": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.11.0.tgz", + "integrity": "sha512-TwWAOZb0j7e9eGaf9esRx3ZcLaE5tQ2lvYy1pb5IAaG1a2e2Kv5Lms1Y4hpj+ciXJRofIxxlt5haeQ/2ANeE0Q==", + "dev": true, + "requires": { + "detect-libc": "^1.0.2", + "mkdirp": "^0.5.1", + "needle": "^2.2.1", + "nopt": "^4.0.1", + "npm-packlist": "^1.1.6", + "npmlog": "^4.0.2", + "rc": "^1.2.7", + "rimraf": "^2.6.1", + "semver": "^5.3.0", + "tar": "^4" + } + }, "node-releases": { "version": "1.1.56", "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.56.tgz", "integrity": "sha512-EVo605FhWLygH8a64TjgpjyHYOihkxECwX1bHHr8tETJKWEiWS2YJjPbvsX2jFjnjTNEgBCmk9mLjKG1Mf11cw==" }, + "nopt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-4.0.3.tgz", + "integrity": "sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==", + "dev": true, + "requires": { + "abbrev": "1", + "osenv": "^0.1.4" + } + }, "normalize-html-whitespace": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/normalize-html-whitespace/-/normalize-html-whitespace-1.0.0.tgz", @@ -4096,6 +4598,44 @@ "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==" }, + "npm-bundled": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz", + "integrity": "sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==", + "dev": true, + "requires": { + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npm-normalize-package-bin": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", + "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", + "dev": true + }, + "npm-packlist": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz", + "integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==", + "dev": true, + "requires": { + "ignore-walk": "^3.0.1", + "npm-bundled": "^1.0.1", + "npm-normalize-package-bin": "^1.0.1" + } + }, + "npmlog": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", + "dev": true, + "requires": { + "are-we-there-yet": "~1.1.2", + "console-control-strings": "~1.1.0", + "gauge": "~2.7.3", + "set-blocking": "~2.0.0" + } + }, "nth-check": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", @@ -4104,6 +4644,18 @@ "boolbase": "~1.0.0" } }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "dev": true + }, + "nwmatcher": { + "version": "1.4.4", + "resolved": "https://registry.npmjs.org/nwmatcher/-/nwmatcher-1.4.4.tgz", + "integrity": "sha512-3iuY4N5dhgMpCUrOVnuAdGrgxVqV2cJpM+XNccjR2DKOB1RUP0aA+wGXEiNziG/UKboFyGBIoKOaNlJxx8bciQ==", + "dev": true + }, "nwsapi": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.2.0.tgz", @@ -4284,6 +4836,28 @@ "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=" }, + "os-homedir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", + "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", + "dev": true + }, + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true + }, + "osenv": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", + "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", + "dev": true, + "requires": { + "os-homedir": "^1.0.0", + "os-tmpdir": "^1.0.0" + } + }, "osm-auth": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/osm-auth/-/osm-auth-1.0.2.tgz", @@ -5082,6 +5656,19 @@ "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" }, + "promise-svg2img": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/promise-svg2img/-/promise-svg2img-0.2.0.tgz", + "integrity": "sha512-XkbyV+5pU/2iO+BIB06WG8M8iXh7ZjlL5ylukChk9Y8A8LueaFJ5cGf6m+ARib78HOh86nk6Q14nTkMviJXl8Q==", + "dev": true, + "requires": { + "@types/atob": "^2.1.2", + "atob": "^2.0.0", + "btoa": "^1.1.2", + "canvas": "^2.6.0", + "canvg": "^1.5.3" + } + }, "protocol-buffers-schema": { "version": "3.4.0", "resolved": "https://registry.npmjs.org/protocol-buffers-schema/-/protocol-buffers-schema-3.4.0.tgz", @@ -5180,6 +5767,18 @@ "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==" }, + "rc": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", + "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", + "dev": true, + "requires": { + "deep-extend": "^0.6.0", + "ini": "~1.3.0", + "minimist": "^1.2.0", + "strip-json-comments": "~2.0.1" + } + }, "read-file": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/read-file/-/read-file-0.2.0.tgz", @@ -5414,6 +6013,12 @@ "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=" }, + "rgbcolor": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/rgbcolor/-/rgbcolor-1.0.1.tgz", + "integrity": "sha1-1lBezbMEplldom+ktDMHMGd1lF0=", + "dev": true + }, "rimraf": { "version": "2.7.1", "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", @@ -5635,11 +6240,33 @@ "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" }, + "sigmund": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", + "integrity": "sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=" + }, "signal-exit": { "version": "3.0.3", "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==" }, + "simple-concat": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz", + "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q==", + "dev": true + }, + "simple-get": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz", + "integrity": "sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==", + "dev": true, + "requires": { + "decompress-response": "^4.2.0", + "once": "^1.3.1", + "simple-concat": "^1.0.0" + } + }, "simple-swizzle": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", @@ -5857,6 +6484,12 @@ "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==" }, + "stackblur-canvas": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/stackblur-canvas/-/stackblur-canvas-1.4.1.tgz", + "integrity": "sha1-hJqm+UsnL/JvZHH6QTDtH35HlVs=", + "dev": true + }, "static-eval": { "version": "2.0.5", "resolved": "https://registry.npmjs.org/static-eval/-/static-eval-2.0.5.tgz", @@ -6039,6 +6672,12 @@ "ansi-regex": "^3.0.0" } }, + "strip-json-comments": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", + "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "dev": true + }, "stylehacks": { "version": "4.0.3", "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", @@ -6094,6 +6733,21 @@ "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.4.tgz", "integrity": "sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==" }, + "tar": { + "version": "4.4.13", + "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz", + "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==", + "dev": true, + "requires": { + "chownr": "^1.1.1", + "fs-minipass": "^1.2.5", + "minipass": "^2.8.6", + "minizlib": "^1.2.1", + "mkdirp": "^0.5.0", + "safe-buffer": "^5.1.2", + "yallist": "^3.0.3" + } + }, "terser": { "version": "3.17.0", "resolved": "https://registry.npmjs.org/terser/-/terser-3.17.0.tgz", @@ -6155,6 +6809,11 @@ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=" }, + "to-iso-string": { + "version": "0.0.2", + "resolved": "https://registry.npmjs.org/to-iso-string/-/to-iso-string-0.0.2.tgz", + "integrity": "sha1-TcGeZk38y+Jb2NtQiwDG2hWCVdE=" + }, "to-object-path": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", @@ -6737,9 +7396,9 @@ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=" }, "typescript": { - "version": "3.9.3", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.3.tgz", - "integrity": "sha512-D/wqnB2xzNFIcoBG9FG8cXRDjiqSTbG2wd8DMZeQyJlP1vfTkIxH4GKveWaEBYySKIg+USu+E+EDIR47SqnaMQ==", + "version": "3.9.7", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.7.tgz", + "integrity": "sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw==", "dev": true }, "uncss": { @@ -7042,6 +7701,27 @@ "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=" }, + "wide-align": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", + "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", + "dev": true, + "requires": { + "string-width": "^1.0.2 || 2" + }, + "dependencies": { + "string-width": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", + "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", + "dev": true, + "requires": { + "is-fullwidth-code-point": "^2.0.0", + "strip-ansi": "^4.0.0" + } + } + } + }, "word-wrap": { "version": "1.2.3", "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.3.tgz", @@ -7105,6 +7785,20 @@ "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==" }, + "xml2js": { + "version": "0.4.23", + "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", + "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", + "requires": { + "sax": ">=0.6.0", + "xmlbuilder": "~11.0.0" + } + }, + "xmlbuilder": { + "version": "11.0.1", + "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", + "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==" + }, "xmlchars": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/xmlchars/-/xmlchars-2.2.0.tgz", @@ -7125,6 +7819,12 @@ "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==" }, + "yallist": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", + "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "dev": true + }, "yargs": { "version": "14.2.3", "resolved": "https://registry.npmjs.org/yargs/-/yargs-14.2.3.tgz", diff --git a/package.json b/package.json index 52bfb33..474f320 100644 --- a/package.json +++ b/package.json @@ -4,8 +4,8 @@ "description": "A small website to edit OSM easily", "main": "index.js", "scripts": { - "start": "parcel index.html land.html test.html UI/** Logic/** assets/**/* vendor/* vendor/*/*", - "build": "rm -rf dist/ && parcel build --public-url ./ index.html land.html assets/* assets/*/* vendor/* vendor/*/*", + "start": "parcel *.html UI/** Logic/** assets/**/* vendor/* vendor/*/*", + "build": "rm -rf dist/ && parcel build --public-url ./ *.html assets/* assets/*/* vendor/* vendor/*/*", "test": "echo \"Error: no test specified\" && exit 1" }, "keywords": [ @@ -15,18 +15,23 @@ "author": "pietervdvn", "license": "MIT", "dependencies": { + "email-validator": "^2.0.4", "jquery": "latest", "leaflet": "^1.6.0", + "libphonenumber": "0.0.10", + "libphonenumber-js": "^1.7.55", "osm-auth": "^1.0.2", "osmtogeojson": "^3.0.0-beta.4", "parcel": "^1.12.4", "turf": "^3.0.14" }, "devDependencies": { - "fs": "0.0.1-security", + "@babel/polyfill": "^7.10.4", "@types/node": "^7.0.5", + "fs": "0.0.1-security", + "promise-svg2img": "^0.2.0", "read-file": "^0.2.0", - "typescript": "^3.9.3", + "typescript": "^3.9.7", "write-file": "^1.0.0" } } diff --git a/vendor/images/layers-2x.png b/vendor/images/layers-2x.png new file mode 100644 index 0000000000000000000000000000000000000000..200c333dca9652ac4cba004d609e5af4eee168c1 GIT binary patch literal 1259 zcmVFhCYNy;#0irRPomHqW|G1C*;4?@4#E?jH>?v@U%cy?3dQAc-DchXVErpOh~ z-jbon+tNbnl6hoEb;)TVk+%hTDDi_G%i3*RZ&15!$Fjr^f;Ke&A@|?=`2&+{zr+3a z{D*=t(`AXyS%X7N z%a#RZw6vD^t_rnM`L4E>m=U&R!A-&}nZIi$BOPvkhrCuUe@BN~-lRD)f44;J%TwgE zcze8u!PQ_NR7?o(NylLXVTfDO zxs5=@|GsYEsNo4M#nT%N!UE(?dnS)t2+{ELYAFp*3=iF=|EQnTp`#vlSXuGVraYo? z+RCzXo6h3qA8{KG?S4nE(lM+;Eb4nT3XV;7gcAxUi5m)`k5tv}cPy()8ZR3TLW3I- zAS^}cq-IJvL7a4RgR!yk@~RT%$lA7{L5ES*hyx)M4(yxI$Ub(4f)K|^v1>zvwQY!_ zIrWw8q9GS^!Dp~}+?mbnB6jDF8mVlbQ!jFKDY;w=7;XO{9bq7>LXGK24WA`;rL)_Z z)&j}pbV(;6gY;VMhbxgvn`X;6x}VUEE-7 z%)7j-%t8S=ZL3yc)HbXDAqJZvBTPoiW_A-+a8m3_Z?v{DN7Tnr#O_VUMT0UBt$;p` zDh6JbGHN8JJ*JN%y2%msb97@_S>9!%Egwk;?PEkU9ntz&3uR}%Fj5d$JHQbQb3}a{ zSzFT^#n=VInPpcAS}CNxj?_ zVscANk5Cfz(51EI1pz};AWWb|kgbYNb4wCEGUn3+eMUMV?1-{=I4TlmLJMot@rd07 zZuo2hk1ccu{YmGkcYdWAVdk{Z4Nm?^cTD&}jGm+Q1SYIXMwmG*oO*83&#>l%nbR`G zhh=lZ%xIb7kU3#;TBbfECrnC9P=-XpL|TG2BoZdj61*XiFbW8?1Z_wp%#;>${SUIy V$8qr;L*)Pf002ovPDHLkV1hYLS~36t literal 0 HcmV?d00001 diff --git a/vendor/images/layers.png b/vendor/images/layers.png new file mode 100644 index 0000000000000000000000000000000000000000..1a72e5784b2b456eac5d7670738db80697af3377 GIT binary patch literal 696 zcmV;p0!RIcP)*@&l2<6p=!C&s@#ZL+%BQvF&b?w6S%wp=I>1QHj7AP5C)IWy#b znXXB;g;j=$a-tW89K%FbDceHVq&unY*Wx3L#=EGWH=rjqnp|4c_Ulec!ql3#G-5ZF zVlbBA@XP=)C8U&+Lrc)S4O5%1$&{(;7R^K(CSnvSr$v;+B$8q&7Bf|h$#PARo1^%M zf1H^nG-EiXVXr07OH(*8R)xa|FD;lXUlg_-%)~ZGsL2cX0NXaAzN2q%jqLRR6ruVk8`Jb7n#{`T;o@`F= z#3YcynIR^s83UNF3D!f5m#Mg)NJ24&Qfrqb&_z=yF;=B)#9Iq7u-@^O!(mW{D;qvr zPc)gVb%aowtS8m@ElL4A9G>w#ffQ~q{i&_i)*6f^)Sz|C?C>zb4Uo?H<-&Hz@a?J; z$ml@zGygWofb9$ZBj6aLjpLhsT2AzjOu=-*u_gSCUP001cn1^@s6z>|W`000GnNklGNuHDcIX17Zdjl&3`L?0sTjIws<{((Dh&g-s0<@jYQyl?D*X^?%13;ml^gy> ziMrY_^1WI=(g@LMizu=zCoA>C`6|QEq1eV92k*7m>G65*&@&6)aC&e}G zI)pf-Za|N`DT&Cn1J|o`19mumxW~hiKiKyc-P`S@q)rdTo84@QI@;0yXrG%9uhI>A zG5QHb6s4=<6xy{1 z@NMxEkryp{LS44%z$3lP^cX!9+2-;CTt3wM4(k*#C{aiIiLuB>jJj;KPhPzIC00bL zU3a#;aJld94lCW=`4&aAy8M7PY=HQ>O%$YEP4c4UY#CRxfgbE~(|uiI=YS8q;O9y6 zmIkXzR`}p7ti|PrM3a}WMnR=3NVnWdAAR>b9X@)DKL6=YsvmH%?I24wdq?Gh54_;# z$?_LvgjEdspdQlft#4CQ z`2Zyvy?*)N1Ftw|{_hakhG9WjS?Az@I@+IZ8JbWewR!XUK4&6346+d#~gsE0SY(LX8&JfY>Aj)RxGy96nwhs2rv zzW6pTnMpFkDSkT*a*6Dx|u@ds6ISVn0@^RmIsKZ5Y;bazbc;tTSq(kg(=481ODrPyNB6n z-$+U}(w$m6U6H$w17Bw+wDaFIe~GvNMYvnw31MpY0eQKT9l>SU``8k7w4)z!GZKMI z#_cEKq7k~i%nlK@6c-K?+R;B#5$?T#YpKD`t_4bAs^#E+@5QW$@OX3*`;(#{U^d-vY)&xEE>n5lYl&T?Am svg, +.leaflet-pane > canvas, +.leaflet-zoom-box, +.leaflet-image-layer, +.leaflet-layer { + position: absolute; + left: 0; + top: 0; + } +.leaflet-container { + overflow: hidden; + } +.leaflet-tile, +.leaflet-marker-icon, +.leaflet-marker-shadow { + -webkit-user-select: none; + -moz-user-select: none; + user-select: none; + -webkit-user-drag: none; + } +/* Prevents IE11 from highlighting tiles in blue */ +.leaflet-tile::selection { + background: transparent; +} +/* Safari renders non-retina tile on retina better with this, but Chrome is worse */ +.leaflet-safari .leaflet-tile { + image-rendering: -webkit-optimize-contrast; + } +/* hack that prevents hw layers "stretching" when loading new tiles */ +.leaflet-safari .leaflet-tile-container { + width: 1600px; + height: 1600px; + -webkit-transform-origin: 0 0; + } +.leaflet-marker-icon, +.leaflet-marker-shadow { + display: block; + } +/* .leaflet-container svg: reset svg max-width decleration shipped in Joomla! (joomla.org) 3.x */ +/* .leaflet-container img: map is broken in FF if you have max-width: 100% on tiles */ +.leaflet-container .leaflet-overlay-pane svg, +.leaflet-container .leaflet-marker-pane img, +.leaflet-container .leaflet-shadow-pane img, +.leaflet-container .leaflet-tile-pane img, +.leaflet-container img.leaflet-image-layer, +.leaflet-container .leaflet-tile { + max-width: none !important; + max-height: none !important; + } + +.leaflet-container.leaflet-touch-zoom { + -ms-touch-action: pan-x pan-y; + touch-action: pan-x pan-y; + } +.leaflet-container.leaflet-touch-drag { + -ms-touch-action: pinch-zoom; + /* Fallback for FF which doesn't support pinch-zoom */ + touch-action: none; + touch-action: pinch-zoom; +} +.leaflet-container.leaflet-touch-drag.leaflet-touch-zoom { + -ms-touch-action: none; + touch-action: none; +} +.leaflet-container { + -webkit-tap-highlight-color: transparent; +} +.leaflet-container a { + -webkit-tap-highlight-color: rgba(51, 181, 229, 0.4); +} +.leaflet-tile { + filter: inherit; + visibility: hidden; + } +.leaflet-tile-loaded { + visibility: inherit; + } +.leaflet-zoom-box { + width: 0; + height: 0; + -moz-box-sizing: border-box; + box-sizing: border-box; + z-index: 800; + } +/* workaround for https://bugzilla.mozilla.org/show_bug.cgi?id=888319 */ +.leaflet-overlay-pane svg { + -moz-user-select: none; + } + +.leaflet-pane { z-index: 400; } + +.leaflet-tile-pane { z-index: 200; } +.leaflet-overlay-pane { z-index: 400; } +.leaflet-shadow-pane { z-index: 500; } +.leaflet-marker-pane { z-index: 600; } +.leaflet-tooltip-pane { z-index: 650; } +.leaflet-popup-pane { z-index: 700; } + +.leaflet-map-pane canvas { z-index: 100; } +.leaflet-map-pane svg { z-index: 200; } + +.leaflet-vml-shape { + width: 1px; + height: 1px; + } +.lvml { + behavior: url(#default#VML); + display: inline-block; + position: absolute; + } + + +/* control positioning */ + +.leaflet-control { + position: relative; + z-index: 800; + pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */ + pointer-events: auto; + } +.leaflet-top, +.leaflet-bottom { + position: absolute; + z-index: 1000; + pointer-events: none; + } +.leaflet-top { + top: 0; + } +.leaflet-right { + right: 0; + } +.leaflet-bottom { + bottom: 0; + } +.leaflet-left { + left: 0; + } +.leaflet-control { + float: left; + clear: both; + } +.leaflet-right .leaflet-control { + float: right; + } +.leaflet-top .leaflet-control { + margin-top: 10px; + } +.leaflet-bottom .leaflet-control { + margin-bottom: 10px; + } +.leaflet-left .leaflet-control { + margin-left: 10px; + } +.leaflet-right .leaflet-control { + margin-right: 10px; + } + + +/* zoom and fade animations */ + +.leaflet-fade-anim .leaflet-tile { + will-change: opacity; + } +.leaflet-fade-anim .leaflet-popup { + opacity: 0; + -webkit-transition: opacity 0.2s linear; + -moz-transition: opacity 0.2s linear; + transition: opacity 0.2s linear; + } +.leaflet-fade-anim .leaflet-map-pane .leaflet-popup { + opacity: 1; + } +.leaflet-zoom-animated { + -webkit-transform-origin: 0 0; + -ms-transform-origin: 0 0; + transform-origin: 0 0; + } +.leaflet-zoom-anim .leaflet-zoom-animated { + will-change: transform; + } +.leaflet-zoom-anim .leaflet-zoom-animated { + -webkit-transition: -webkit-transform 0.25s cubic-bezier(0,0,0.25,1); + -moz-transition: -moz-transform 0.25s cubic-bezier(0,0,0.25,1); + transition: transform 0.25s cubic-bezier(0,0,0.25,1); + } +.leaflet-zoom-anim .leaflet-tile, +.leaflet-pan-anim .leaflet-tile { + -webkit-transition: none; + -moz-transition: none; + transition: none; + } + +.leaflet-zoom-anim .leaflet-zoom-hide { + visibility: hidden; + } + + +/* cursors */ + +.leaflet-interactive { + cursor: pointer; + } +.leaflet-grab { + cursor: -webkit-grab; + cursor: -moz-grab; + cursor: grab; + } +.leaflet-crosshair, +.leaflet-crosshair .leaflet-interactive { + cursor: crosshair; + } +.leaflet-popup-pane, +.leaflet-control { + cursor: auto; + } +.leaflet-dragging .leaflet-grab, +.leaflet-dragging .leaflet-grab .leaflet-interactive, +.leaflet-dragging .leaflet-marker-draggable { + cursor: move; + cursor: -webkit-grabbing; + cursor: -moz-grabbing; + cursor: grabbing; + } + +/* marker & overlays interactivity */ +.leaflet-marker-icon, +.leaflet-marker-shadow, +.leaflet-image-layer, +.leaflet-pane > svg path, +.leaflet-tile-container { + pointer-events: none; + } + +.leaflet-marker-icon.leaflet-interactive, +.leaflet-image-layer.leaflet-interactive, +.leaflet-pane > svg path.leaflet-interactive, +svg.leaflet-image-layer.leaflet-interactive path { + pointer-events: visiblePainted; /* IE 9-10 doesn't have auto */ + pointer-events: auto; + } + +/* visual tweaks */ + +.leaflet-container { + background: #ddd; + outline: 0; + } +.leaflet-container a { + color: #0078A8; + } +.leaflet-container a.leaflet-active { + outline: 2px solid orange; + } +.leaflet-zoom-box { + border: 2px dotted #38f; + background: rgba(255,255,255,0.5); + } + + +/* general typography */ +.leaflet-container { + font: 12px/1.5 "Helvetica Neue", Arial, Helvetica, sans-serif; + } + + +/* general toolbar styles */ + +.leaflet-bar { + box-shadow: 0 1px 5px rgba(0,0,0,0.65); + border-radius: 4px; + } +.leaflet-bar a, +.leaflet-bar a:hover { + background-color: #fff; + border-bottom: 1px solid #ccc; + width: 26px; + height: 26px; + line-height: 26px; + display: block; + text-align: center; + text-decoration: none; + color: black; + } +.leaflet-bar a, +.leaflet-control-layers-toggle { + background-position: 50% 50%; + background-repeat: no-repeat; + display: block; + } +.leaflet-bar a:hover { + background-color: #f4f4f4; + } +.leaflet-bar a:first-child { + border-top-left-radius: 4px; + border-top-right-radius: 4px; + } +.leaflet-bar a:last-child { + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + border-bottom: none; + } +.leaflet-bar a.leaflet-disabled { + cursor: default; + background-color: #f4f4f4; + color: #bbb; + } + +.leaflet-touch .leaflet-bar a { + width: 30px; + height: 30px; + line-height: 30px; + } +.leaflet-touch .leaflet-bar a:first-child { + border-top-left-radius: 2px; + border-top-right-radius: 2px; + } +.leaflet-touch .leaflet-bar a:last-child { + border-bottom-left-radius: 2px; + border-bottom-right-radius: 2px; + } + +/* zoom control */ + +.leaflet-control-zoom-in, +.leaflet-control-zoom-out { + font: bold 18px 'Lucida Console', Monaco, monospace; + text-indent: 1px; + } + +.leaflet-touch .leaflet-control-zoom-in, .leaflet-touch .leaflet-control-zoom-out { + font-size: 22px; + } + + +/* layers control */ + +.leaflet-control-layers { + box-shadow: 0 1px 5px rgba(0,0,0,0.4); + background: #fff; + border-radius: 5px; + } +.leaflet-control-layers-toggle { + background-image: url(images/layers.png); + width: 36px; + height: 36px; + } +.leaflet-retina .leaflet-control-layers-toggle { + background-image: url(images/layers-2x.png); + background-size: 26px 26px; + } +.leaflet-touch .leaflet-control-layers-toggle { + width: 44px; + height: 44px; + } +.leaflet-control-layers .leaflet-control-layers-list, +.leaflet-control-layers-expanded .leaflet-control-layers-toggle { + display: none; + } +.leaflet-control-layers-expanded .leaflet-control-layers-list { + display: block; + position: relative; + } +.leaflet-control-layers-expanded { + padding: 6px 10px 6px 6px; + color: #333; + background: #fff; + } +.leaflet-control-layers-scrollbar { + overflow-y: scroll; + overflow-x: hidden; + padding-right: 5px; + } +.leaflet-control-layers-selector { + margin-top: 2px; + position: relative; + top: 1px; + } +.leaflet-control-layers label { + display: block; + } +.leaflet-control-layers-separator { + height: 0; + border-top: 1px solid #ddd; + margin: 5px -10px 5px -6px; + } + +/* Default icon URLs */ +.leaflet-default-icon-path { + background-image: url(images/marker-icon.png); + } + + +/* attribution and scale controls */ + +.leaflet-container .leaflet-control-attribution { + background: #fff; + background: rgba(255, 255, 255, 0.7); + margin: 0; + } +.leaflet-control-attribution, +.leaflet-control-scale-line { + padding: 0 5px; + color: #333; + } +.leaflet-control-attribution a { + text-decoration: none; + } +.leaflet-control-attribution a:hover { + text-decoration: underline; + } +.leaflet-container .leaflet-control-attribution, +.leaflet-container .leaflet-control-scale { + font-size: 11px; + } +.leaflet-left .leaflet-control-scale { + margin-left: 5px; + } +.leaflet-bottom .leaflet-control-scale { + margin-bottom: 5px; + } +.leaflet-control-scale-line { + border: 2px solid #777; + border-top: none; + line-height: 1.1; + padding: 2px 5px 1px; + font-size: 11px; + white-space: nowrap; + overflow: hidden; + -moz-box-sizing: border-box; + box-sizing: border-box; + + background: #fff; + background: rgba(255, 255, 255, 0.5); + } +.leaflet-control-scale-line:not(:first-child) { + border-top: 2px solid #777; + border-bottom: none; + margin-top: -2px; + } +.leaflet-control-scale-line:not(:first-child):not(:last-child) { + border-bottom: 2px solid #777; + } + +.leaflet-touch .leaflet-control-attribution, +.leaflet-touch .leaflet-control-layers, +.leaflet-touch .leaflet-bar { + box-shadow: none; + } +.leaflet-touch .leaflet-control-layers, +.leaflet-touch .leaflet-bar { + border: 2px solid rgba(0,0,0,0.2); + background-clip: padding-box; + } + + +/* popup */ + +.leaflet-popup { + position: absolute; + text-align: center; + margin-bottom: 20px; + } +.leaflet-popup-content-wrapper { + padding: 1px; + text-align: left; + border-radius: 12px; + } +.leaflet-popup-content { + margin: 13px 19px; + line-height: 1.4; + } +.leaflet-popup-content p { + margin: 18px 0; + } +.leaflet-popup-tip-container { + width: 40px; + height: 20px; + position: absolute; + left: 50%; + margin-left: -20px; + overflow: hidden; + pointer-events: none; + } +.leaflet-popup-tip { + width: 17px; + height: 17px; + padding: 1px; + + margin: -10px auto 0; + + -webkit-transform: rotate(45deg); + -moz-transform: rotate(45deg); + -ms-transform: rotate(45deg); + transform: rotate(45deg); + } +.leaflet-popup-content-wrapper, +.leaflet-popup-tip { + background: white; + color: #333; + box-shadow: 0 3px 14px rgba(0,0,0,0.4); + } +.leaflet-container a.leaflet-popup-close-button { + position: absolute; + top: 0; + right: 0; + padding: 4px 4px 0 0; + border: none; + text-align: center; + width: 18px; + height: 14px; + font: 16px/14px Tahoma, Verdana, sans-serif; + color: #c3c3c3; + text-decoration: none; + font-weight: bold; + background: transparent; + } +.leaflet-container a.leaflet-popup-close-button:hover { + color: #999; + } +.leaflet-popup-scrolled { + overflow: auto; + border-bottom: 1px solid #ddd; + border-top: 1px solid #ddd; + } + +.leaflet-oldie .leaflet-popup-content-wrapper { + zoom: 1; + } +.leaflet-oldie .leaflet-popup-tip { + width: 24px; + margin: 0 auto; + + -ms-filter: "progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678)"; + filter: progid:DXImageTransform.Microsoft.Matrix(M11=0.70710678, M12=0.70710678, M21=-0.70710678, M22=0.70710678); + } +.leaflet-oldie .leaflet-popup-tip-container { + margin-top: -1px; + } + +.leaflet-oldie .leaflet-control-zoom, +.leaflet-oldie .leaflet-control-layers, +.leaflet-oldie .leaflet-popup-content-wrapper, +.leaflet-oldie .leaflet-popup-tip { + border: 1px solid #999; + } + + +/* div icon */ + +.leaflet-div-icon { + background: #fff; + border: 1px solid #666; + } + + +/* Tooltip */ +/* Base styles for the element that has a tooltip */ +.leaflet-tooltip { + position: absolute; + padding: 6px; + background-color: #fff; + border: 1px solid #fff; + border-radius: 3px; + color: #222; + white-space: nowrap; + -webkit-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + pointer-events: none; + box-shadow: 0 1px 3px rgba(0,0,0,0.4); + } +.leaflet-tooltip.leaflet-clickable { + cursor: pointer; + pointer-events: auto; + } +.leaflet-tooltip-top:before, +.leaflet-tooltip-bottom:before, +.leaflet-tooltip-left:before, +.leaflet-tooltip-right:before { + position: absolute; + pointer-events: none; + border: 6px solid transparent; + background: transparent; + content: ""; + } + +/* Directions */ + +.leaflet-tooltip-bottom { + margin-top: 6px; +} +.leaflet-tooltip-top { + margin-top: -6px; +} +.leaflet-tooltip-bottom:before, +.leaflet-tooltip-top:before { + left: 50%; + margin-left: -6px; + } +.leaflet-tooltip-top:before { + bottom: 0; + margin-bottom: -12px; + border-top-color: #fff; + } +.leaflet-tooltip-bottom:before { + top: 0; + margin-top: -12px; + margin-left: -6px; + border-bottom-color: #fff; + } +.leaflet-tooltip-left { + margin-left: -6px; +} +.leaflet-tooltip-right { + margin-left: 6px; +} +.leaflet-tooltip-left:before, +.leaflet-tooltip-right:before { + top: 50%; + margin-top: -6px; + } +.leaflet-tooltip-left:before { + right: 0; + margin-right: -12px; + border-left-color: #fff; + } +.leaflet-tooltip-right:before { + left: 0; + margin-left: -12px; + border-right-color: #fff; + }

    }F|vu3cjdo4rjgw=UDoyX+435d>p3Qk>_;tCc3! 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 0) { + const item = queue.pop(); + for (const key in item) { + const v = item[key]; + if (v === undefined) { + continue; + } + if (v instanceof Translation || v?.translations !== undefined) { + translations.push(v); + } else if ( + ["string", "function", "boolean", "number"].indexOf(typeof (v)) < 0) { + queue.push(v) + } + } + } + + const missing = {} + const present = {} + for (const ln of layout.supportedLanguages) { + missing[ln] = 0; + present[ln] = 0; + for (const translation of translations) { + const txt = translation.translations[ln]; + const isMissing = txt === undefined || txt === "" || txt.toLowerCase().indexOf("todo") >= 0; + if (isMissing) { + console.log("Missing or suspicious translation for '", translation.txt, "'in", ln, ":", txt) + missing[ln]++ + } else { + present[ln]++; + } + } + } + + console.log("Translation completenes for", layout.name); + for (const ln of layout.supportedLanguages) { + const amiss = missing[ln]; + const ok = present[ln]; + const total = amiss + ok; + console.log(`${ln}: ${ok}/${total}`) + } + +} + + +const alreadyWritten = [] + +function createIcon(iconPath: string, size: number) { + + let name = iconPath.split(".").slice(0, -1).join("."); + if(name.startsWith("./")){ + name = name.substr(2) + } + const newname = `${name}${size}.png` + .replace(/\//g,"_") + .replace("assets_","assets/generated/"); + + if (alreadyWritten.indexOf(newname) >= 0) { + return newname; + } + alreadyWritten.push(newname); + try { + readFileSync(newname); + return newname; // File already exists - nothing to do + } catch (e) { + + } + + svg2img(iconPath, + // @ts-ignore + {width: size, height: size, preserveAspectRatio: true}) + .then((buffer) => { + console.log("Writing icon", newname) + writeFileSync(newname, buffer); + }).catch((error) => { + console.log("ERROR", error) + }); + return newname; +} + +function createManifest(layout: Layout, relativePath: string) { + const name = Utils.Upper(layout.name); + + const icons = []; + + if (layout.icon.endsWith(".svg")) { + // This is an svg. Lets create the needed pngs! + const sizes = [72, 96, 120, 128, 144, 152, 180, 192, 384, 512]; + for (const size of sizes) { + const name = createIcon(layout.icon, size); + icons.push({ + src: name, + sizes: size + "x" + size, + type: "image/png" + }) + } + icons.push({ + src: layout.icon, + sizes: "513x513", + type: "image/svg" + }) + } else { + + throw "Icon is not an svg for " + layout.name + } + const ogTitle = Translations.W(layout.title).InnerRender(); + const ogDescr = Translations.W(layout.description).InnerRender(); + + const manif = { + name: name, + short_name: ogTitle, + start_url: `${relativePath}/${layout.name.toLowerCase()}.html`, + display: "standalone", + background_color: "#fff", + description: ogDescr, + orientation: "portrait-primary, landscape-primary", + icons: icons + } + return manif; +} + +const template = readFileSync("index.html", "utf8"); + +function createLandingPage(layout: Layout) { + + Locale.language.setData(layout.supportedLanguages[0]); + + const ogTitle = Translations.W(layout.title).InnerRender(); + const ogDescr = Translations.W(layout.description).InnerRender(); + const ogImage = layout.socialImage; + + const og = ` + + + ` + + return template + .replace(`./manifest.manifest`, `./${enc(layout.name)}.webmanifest`) + .replace("", og) + .replace(``, + ``) +} + + +const blacklist = ["", "test", ".", "..", "manifest", "index", "land", "preferences", "account", "openstreetmap"] +const all = AllKnownLayouts.allSets; +for (const layoutName in all) { + if (blacklist.indexOf(layoutName.toLowerCase()) >= 0) { + console.log(`Skipping a layout with name${layoutName}, it is on the blacklist`); + continue; + } + const err = err => { + if (err !== null) { + console.log("Could not write manifest for ", layoutName, " because ", err) + } + }; + const layout = all[layoutName]; + validate(layout) + const manif = JSON.stringify(createManifest(layout, "/MapComplete")); + + const manifestLocation = encodeURIComponent(layout.name.toLowerCase()) + ".webmanifest"; + writeFile(manifestLocation, manif, err); + + const landing = createLandingPage(layout); + writeFile(enc(layout.name) + ".html", landing, err) +} + +Translations.CountTranslations(); \ No newline at end of file diff --git a/deploy.sh b/deploy.sh index ff4b3be..4799663 100755 --- a/deploy.sh +++ b/deploy.sh @@ -1,10 +1,10 @@ #! /bin/bash -npx ts-node createLayout.ts - +ts-node createLayouts.ts npm run build rm -rf /home/pietervdvn/git/pietervdvn.github.io/MapComplete/* cp -r dist/* /home/pietervdvn/git/pietervdvn.github.io/MapComplete/ +./clean.sh cd /home/pietervdvn/git/pietervdvn.github.io/MapComplete/ git add . git commit -m "New mapcomplete version" diff --git a/index.css b/index.css index b07c605..67af8a1 100644 --- a/index.css +++ b/index.css @@ -855,6 +855,13 @@ form { } .featureinfobox { + max-height: 80vh; + overflow-y: auto; +} + +.featureinfobox > div { + width: calc(100% - 2em); + padding-left: 1em; } .featureinfoboxtitle { diff --git a/index.html b/index.html index 319f83d..4e30fb9 100644 --- a/index.html +++ b/index.html @@ -1,5 +1,5 @@ - + @@ -7,23 +7,12 @@ MapComplete - - + + - - - + +