2020-07-05 18:59:47 +02:00
|
|
|
import {LayerDefinition} from "./LayerDefinition";
|
2020-07-21 02:55:28 +02:00
|
|
|
import {UIElement} from "../UI/UIElement";
|
2020-07-21 01:37:48 +02:00
|
|
|
import Translations from "../UI/i18n/Translations";
|
2020-08-25 00:10:48 +02:00
|
|
|
import Combine from "../UI/Base/Combine";
|
2020-10-02 19:00:24 +02:00
|
|
|
import State from "../State";
|
2020-10-10 14:09:12 +02:00
|
|
|
import Translation from "../UI/i18n/Translation";
|
2020-07-05 18:59:47 +02:00
|
|
|
|
|
|
|
/**
|
|
|
|
* A layout is a collection of settings of the global view (thus: welcome text, title, selection of layers).
|
|
|
|
*/
|
|
|
|
export class Layout {
|
2020-07-21 02:55:28 +02:00
|
|
|
|
2020-08-30 01:13:18 +02:00
|
|
|
public id: string;
|
2020-07-26 02:01:34 +02:00
|
|
|
public icon: string = "./assets/logo.svg";
|
2020-07-20 12:39:43 +02:00
|
|
|
public title: UIElement;
|
2020-08-22 02:12:46 +02:00
|
|
|
public maintainer: string;
|
2020-08-26 15:36:04 +02:00
|
|
|
public version: string;
|
2020-07-29 15:48:21 +02:00
|
|
|
public description: string | UIElement;
|
2020-08-27 00:08:00 +02:00
|
|
|
public changesetMessage: string;
|
2020-08-22 02:12:46 +02:00
|
|
|
public socialImage: string = "";
|
2020-10-23 02:15:58 +02:00
|
|
|
/**
|
|
|
|
* Custom CSS link
|
|
|
|
*/
|
|
|
|
public customCss: string = undefined;
|
2020-07-26 02:01:34 +02:00
|
|
|
|
2020-08-31 02:59:47 +02:00
|
|
|
public layers: (LayerDefinition | string)[];
|
2020-07-20 12:39:43 +02:00
|
|
|
public welcomeMessage: UIElement;
|
2020-07-21 01:37:48 +02:00
|
|
|
public gettingStartedPlzLogin: UIElement;
|
|
|
|
public welcomeBackMessage: UIElement;
|
|
|
|
public welcomeTail: UIElement;
|
2020-07-05 18:59:47 +02:00
|
|
|
|
2020-07-21 00:07:04 +02:00
|
|
|
public supportedLanguages: string[];
|
2020-08-30 01:13:18 +02:00
|
|
|
|
|
|
|
public startzoom: number;
|
2020-07-05 18:59:47 +02:00
|
|
|
public startLon: number;
|
|
|
|
public startLat: number;
|
|
|
|
|
2020-07-29 16:05:02 +02:00
|
|
|
public enableAdd: boolean = true;
|
|
|
|
public enableUserBadge: boolean = true;
|
|
|
|
public enableSearch: boolean = true;
|
|
|
|
public enableLayers: boolean = true;
|
2020-09-27 23:37:47 +02:00
|
|
|
public enableBackgroundLayers: boolean = true;
|
2020-08-07 00:45:33 +02:00
|
|
|
public enableMoreQuests: boolean = true;
|
|
|
|
public enableShareScreen: boolean = true;
|
2020-08-30 01:13:18 +02:00
|
|
|
public enableGeolocation: boolean = true;
|
2020-08-07 00:45:33 +02:00
|
|
|
public hideFromOverview: boolean = false;
|
2020-07-15 11:23:35 +02:00
|
|
|
|
2020-07-30 16:34:06 +02:00
|
|
|
/**
|
|
|
|
* The BBOX of the currently visible map are widened by this factor, in order to make some panning possible.
|
|
|
|
* This number influences this
|
|
|
|
*/
|
2020-08-07 00:45:33 +02:00
|
|
|
public widenFactor: number = 0.07;
|
2020-08-08 02:16:42 +02:00
|
|
|
public defaultBackground: string = "osm";
|
2020-07-30 16:34:06 +02:00
|
|
|
|
2020-07-05 18:59:47 +02:00
|
|
|
constructor(
|
2020-08-30 01:13:18 +02:00
|
|
|
id: string,
|
2020-07-21 00:07:04 +02:00
|
|
|
supportedLanguages: string[],
|
2020-10-10 14:09:12 +02:00
|
|
|
title: Translation | string,
|
2020-08-31 02:59:47 +02:00
|
|
|
layers: (LayerDefinition | string)[],
|
2020-07-05 18:59:47 +02:00
|
|
|
startzoom: number,
|
|
|
|
startLat: number,
|
|
|
|
startLon: number,
|
2020-10-11 18:22:04 +02:00
|
|
|
welcomeMessage: UIElement | string,
|
2020-08-25 00:10:48 +02:00
|
|
|
gettingStartedPlzLogin: UIElement | string = new Combine([
|
|
|
|
Translations.t.general.getStartedLogin
|
|
|
|
.SetClass("soft")
|
|
|
|
.onClick(() => {State.state.osmConnection.AttemptLogin()}),
|
|
|
|
Translations.t.general.getStartedNewAccount
|
|
|
|
]),
|
2020-07-21 02:55:28 +02:00
|
|
|
welcomeBackMessage: UIElement | string = Translations.t.general.welcomeBack,
|
2020-09-27 23:37:47 +02:00
|
|
|
welcomeTail: UIElement | string = "",
|
2020-07-05 18:59:47 +02:00
|
|
|
) {
|
2020-07-21 00:07:04 +02:00
|
|
|
this.supportedLanguages = supportedLanguages;
|
2020-10-10 14:09:12 +02:00
|
|
|
this.title = Translations.WT(title)
|
2020-07-05 18:59:47 +02:00
|
|
|
this.startLon = startLon;
|
|
|
|
this.startLat = startLat;
|
|
|
|
this.startzoom = startzoom;
|
2020-08-30 01:13:18 +02:00
|
|
|
this.id = id;
|
2020-07-05 18:59:47 +02:00
|
|
|
this.layers = layers;
|
2020-07-21 02:55:28 +02:00
|
|
|
this.welcomeMessage = Translations.W(welcomeMessage)
|
2020-07-21 01:37:48 +02:00
|
|
|
this.gettingStartedPlzLogin = Translations.W(gettingStartedPlzLogin);
|
|
|
|
this.welcomeBackMessage = Translations.W(welcomeBackMessage);
|
|
|
|
this.welcomeTail = Translations.W(welcomeTail);
|
2020-07-05 18:59:47 +02:00
|
|
|
}
|
|
|
|
}
|
|
|
|
|