forked from MapComplete/MapComplete
		
	
		
			
	
	
		
			27 lines
		
	
	
	
		
			905 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
		
		
			
		
	
	
			27 lines
		
	
	
	
		
			905 B
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
|  | import {Translation} from "../../UI/i18n/Translation"; | ||
|  | import {TagsFilter} from "../../Logic/Tags/TagsFilter"; | ||
|  | import FilterConfigJson from "./Json/FilterConfigJson"; | ||
|  | import Translations from "../../UI/i18n/Translations"; | ||
|  | import {TagUtils} from "../../Logic/Tags/TagUtils"; | ||
|  | 
 | ||
|  | 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 = TagUtils.Tag( | ||
|  |                 option.osmTags ?? {and: []}, | ||
|  |                 `${context}.options-[${i}].osmTags` | ||
|  |             ); | ||
|  | 
 | ||
|  |             return {question: question, osmTags: osmTags}; | ||
|  |         }); | ||
|  |     } | ||
|  | } |