Refactoring: use theme instead of layout in a lot of places

This commit is contained in:
Pieter Vander Vennet 2024-10-17 04:06:03 +02:00
parent 9427083939
commit bdc9ba52a6
104 changed files with 445 additions and 449 deletions

View file

@ -4,8 +4,8 @@ import LayerConfig from "../LayerConfig"
import { Utils } from "../../../Utils"
import Constants from "../../Constants"
import { Translation } from "../../../UI/i18n/Translation"
import { LayoutConfigJson } from "../Json/LayoutConfigJson"
import LayoutConfig from "../LayoutConfig"
import { ThemeConfigJson } from "../Json/ThemeConfigJson"
import ThemeConfig from "../ThemeConfig"
import { TagRenderingConfigJson } from "../Json/TagRenderingConfigJson"
import { TagUtils } from "../../../Logic/Tags/TagUtils"
import { And } from "../../../Logic/Tags/And"
@ -23,7 +23,7 @@ import { PrevalidateLayer } from "./PrevalidateLayer"
import { AvailableRasterLayers } from "../../RasterLayers"
import { eliCategory } from "../../RasterLayerProperties"
export class ValidateLanguageCompleteness extends DesugaringStep<LayoutConfig> {
export class ValidateLanguageCompleteness extends DesugaringStep<ThemeConfig> {
private readonly _languages: string[]
constructor(...languages: string[]) {
@ -35,7 +35,7 @@ export class ValidateLanguageCompleteness extends DesugaringStep<LayoutConfig> {
this._languages = languages ?? ["en"]
}
convert(obj: LayoutConfig, context: ConversionContext): LayoutConfig {
convert(obj: ThemeConfig, context: ConversionContext): ThemeConfig {
const origLayers = obj.layers
obj.layers = [...obj.layers].filter((l) => l["id"] !== "favourite")
const translations = Translation.ExtractAllTranslationsFrom(obj)
@ -128,7 +128,7 @@ export class DoesImageExist extends DesugaringStep<string> {
}
}
class OverrideShadowingCheck extends DesugaringStep<LayoutConfigJson> {
class OverrideShadowingCheck extends DesugaringStep<ThemeConfigJson> {
constructor() {
super(
"Checks that an 'overrideAll' does not override a single override",
@ -137,7 +137,7 @@ class OverrideShadowingCheck extends DesugaringStep<LayoutConfigJson> {
)
}
convert(json: LayoutConfigJson, context: ConversionContext): LayoutConfigJson {
convert(json: ThemeConfigJson, context: ConversionContext): ThemeConfigJson {
const overrideAll = json.overrideAll
if (overrideAll === undefined) {
return json
@ -170,12 +170,12 @@ class OverrideShadowingCheck extends DesugaringStep<LayoutConfigJson> {
}
}
class MiscThemeChecks extends DesugaringStep<LayoutConfigJson> {
class MiscThemeChecks extends DesugaringStep<ThemeConfigJson> {
constructor() {
super("Miscelleanous checks on the theme", [], "MiscThemesChecks")
}
convert(json: LayoutConfigJson, context: ConversionContext): LayoutConfigJson {
convert(json: ThemeConfigJson, context: ConversionContext): ThemeConfigJson {
if (json.id !== "personal" && (json.layers === undefined || json.layers.length === 0)) {
context.err("The theme " + json.id + " has no 'layers' defined")
}
@ -240,7 +240,7 @@ class MiscThemeChecks extends DesugaringStep<LayoutConfigJson> {
}
}
export class PrevalidateTheme extends Fuse<LayoutConfigJson> {
export class PrevalidateTheme extends Fuse<ThemeConfigJson> {
constructor() {
super(
"Various consistency checks on the raw JSON",
@ -905,7 +905,7 @@ export class ValidateFilter extends DesugaringStep<FilterConfigJson> {
export class DetectDuplicateFilters extends DesugaringStep<{
layers: LayerConfigJson[]
themes: LayoutConfigJson[]
themes: ThemeConfigJson[]
}> {
constructor() {
super(
@ -916,15 +916,15 @@ export class DetectDuplicateFilters extends DesugaringStep<{
}
convert(
json: { layers: LayerConfigJson[]; themes: LayoutConfigJson[] },
json: { layers: LayerConfigJson[]; themes: ThemeConfigJson[] },
context: ConversionContext,
): { layers: LayerConfigJson[]; themes: LayoutConfigJson[] } {
): { layers: LayerConfigJson[]; themes: ThemeConfigJson[] } {
const { layers, themes } = json
const perOsmTag = new Map<
string,
{
layer: LayerConfigJson
layout: LayoutConfigJson | undefined
theme: ThemeConfigJson | undefined
filter: FilterConfigJson
}[]
>()
@ -955,10 +955,10 @@ export class DetectDuplicateFilters extends DesugaringStep<{
return
}
let msg = "Possible duplicate filter: " + key
for (const { filter, layer, layout } of value) {
for (const { filter, layer, theme } of value) {
let id = ""
if (layout !== undefined) {
id = layout.id + ":"
if (theme !== undefined) {
id = theme.id + ":"
}
msg += `\n - ${id}${layer.id}.${filter.id}`
}
@ -977,11 +977,11 @@ export class DetectDuplicateFilters extends DesugaringStep<{
string,
{
layer: LayerConfigJson
layout: LayoutConfigJson | undefined
theme: ThemeConfigJson | undefined
filter: FilterConfigJson
}[]
>,
layout?: LayoutConfigJson | undefined,
theme?: ThemeConfigJson | undefined,
): void {
if (layer.filter === undefined || layer.filter === null) {
return
@ -1009,14 +1009,14 @@ export class DetectDuplicateFilters extends DesugaringStep<{
perOsmTag.get(key).push({
layer,
filter,
layout,
theme,
})
}
}
}
}
export class DetectDuplicatePresets extends DesugaringStep<LayoutConfig> {
export class DetectDuplicatePresets extends DesugaringStep<ThemeConfig> {
constructor() {
super(
"Detects mappings which have identical (english) names or identical mappings.",
@ -1025,7 +1025,7 @@ export class DetectDuplicatePresets extends DesugaringStep<LayoutConfig> {
)
}
convert(json: LayoutConfig, context: ConversionContext): LayoutConfig {
convert(json: ThemeConfig, context: ConversionContext): ThemeConfig {
const presets: PresetConfig[] = [].concat(...json.layers.map((l) => l.presets))
const enNames = presets.map((p) => p.title.textFor("en"))
@ -1074,7 +1074,7 @@ export class DetectDuplicatePresets extends DesugaringStep<LayoutConfig> {
}
export class ValidateThemeEnsemble extends Conversion<
LayoutConfig[],
ThemeConfig[],
Map<
string,
{
@ -1093,7 +1093,7 @@ export class ValidateThemeEnsemble extends Conversion<
}
convert(
json: LayoutConfig[],
json: ThemeConfig[],
context: ConversionContext,
): Map<
string,