mapcomplete/Customizations/JSON/FilterConfig.ts
2021-07-27 17:00:05 +02:00

27 lines
807 B
TypeScript

import { TagsFilter } from "../../Logic/Tags/TagsFilter";
import { Translation } from "../../UI/i18n/Translation";
import Translations from "../../UI/i18n/Translations";
import FilterConfigJson from "./FilterConfigJson";
import { FromJSON } from "./FromJSON";
export default class FilterConfig {
readonly options: {
question: Translation;
osmTags: TagsFilter;
}[];
constructor(json: FilterConfigJson, context: string) {
this.options = json.options.map((option, i) => {
const question = Translations.T(
option.question,
context + ".options-[" + i + "].question"
);
const osmTags = FromJSON.Tag(
option.osmTags ?? {and:[]},
`${context}.options-[${i}].osmTags`
);
return { question: question, osmTags: osmTags };
});
}
}