forked from MapComplete/MapComplete
28 lines
795 B
TypeScript
28 lines
795 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,
|
||
|
`${context}.options-[${i}].osmTags`
|
||
|
);
|
||
|
|
||
|
return { question: question, osmTags: osmTags };
|
||
|
});
|
||
|
}
|
||
|
}
|