forked from MapComplete/MapComplete
		
	Add generation of documentation on filters
This commit is contained in:
		
							parent
							
								
									e080f79f34
								
							
						
					
					
						commit
						aae19f8110
					
				
					 2 changed files with 26 additions and 0 deletions
				
			
		|  | @ -10,6 +10,9 @@ import { FilterState } from "../FilteredLayer" | ||||||
| import { QueryParameters } from "../../Logic/Web/QueryParameters" | import { QueryParameters } from "../../Logic/Web/QueryParameters" | ||||||
| import { Utils } from "../../Utils" | import { Utils } from "../../Utils" | ||||||
| import { RegexTag } from "../../Logic/Tags/RegexTag" | import { RegexTag } from "../../Logic/Tags/RegexTag" | ||||||
|  | import BaseUIElement from "../../UI/BaseUIElement"; | ||||||
|  | import Table from "../../UI/Base/Table"; | ||||||
|  | import Combine from "../../UI/Base/Combine"; | ||||||
| 
 | 
 | ||||||
| export default class FilterConfig { | export default class FilterConfig { | ||||||
|     public readonly id: string |     public readonly id: string | ||||||
|  | @ -242,4 +245,21 @@ export default class FilterConfig { | ||||||
|             reset |             reset | ||||||
|         ) |         ) | ||||||
|     } |     } | ||||||
|  | 
 | ||||||
|  |     public GenerateDocs(): BaseUIElement { | ||||||
|  |         const hasField = this.options.some(opt => opt.fields?.length > 0) | ||||||
|  |         return new Table( | ||||||
|  |             Utils.NoNull(["id","question","osmTags",hasField ? "fields" : undefined]), | ||||||
|  |             this.options.map((opt, i) => { | ||||||
|  |                 const isDefault = this.options.length > 1 && ((this.defaultSelection ?? 0) == i) | ||||||
|  |                 return Utils.NoNull([ | ||||||
|  |                     this.id + "." + i, | ||||||
|  |                     isDefault ? new Combine([opt.question.SetClass("font-bold"), "(default)"]) : opt.question , | ||||||
|  |                     opt.osmTags?.asHumanString(false, false, {}) ?? "", | ||||||
|  |                    opt.fields?.length > 0 ?  new Combine(opt.fields.map(f => f.name+" ("+f.type+")")) : undefined | ||||||
|  | 
 | ||||||
|  |                 ]); | ||||||
|  |             }) | ||||||
|  |         ); | ||||||
|  |     } | ||||||
| } | } | ||||||
|  |  | ||||||
|  | @ -601,6 +601,11 @@ export default class LayerConfig extends WithContextLoader { | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|  |         const filterDocs: (string | BaseUIElement)[]  = [] | ||||||
|  |         if(this.filters.length > 0){ | ||||||
|  |             filterDocs.push(new Title("Filters", 4)) | ||||||
|  |             filterDocs.push(...this.filters.map(filter => filter.GenerateDocs())) | ||||||
|  |         } | ||||||
|         return new Combine([ |         return new Combine([ | ||||||
|             new Combine([new Title(this.id, 1), iconImg, this.description, "\n"]).SetClass( |             new Combine([new Title(this.id, 1), iconImg, this.description, "\n"]).SetClass( | ||||||
|                 "flex flex-col" |                 "flex flex-col" | ||||||
|  | @ -615,6 +620,7 @@ export default class LayerConfig extends WithContextLoader { | ||||||
|             new Title("Supported attributes", 2), |             new Title("Supported attributes", 2), | ||||||
|             quickOverview, |             quickOverview, | ||||||
|             ...this.tagRenderings.map((tr) => tr.GenerateDocumentation()), |             ...this.tagRenderings.map((tr) => tr.GenerateDocumentation()), | ||||||
|  |             ...filterDocs | ||||||
|         ]) |         ]) | ||||||
|             .SetClass("flex-col") |             .SetClass("flex-col") | ||||||
|             .SetClass("link-underline") |             .SetClass("link-underline") | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue