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 { Utils } from "../../Utils"
|
||||
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 {
|
||||
public readonly id: string
|
||||
|
@ -242,4 +245,21 @@ export default class FilterConfig {
|
|||
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([
|
||||
new Combine([new Title(this.id, 1), iconImg, this.description, "\n"]).SetClass(
|
||||
"flex flex-col"
|
||||
|
@ -615,6 +620,7 @@ export default class LayerConfig extends WithContextLoader {
|
|||
new Title("Supported attributes", 2),
|
||||
quickOverview,
|
||||
...this.tagRenderings.map((tr) => tr.GenerateDocumentation()),
|
||||
...filterDocs
|
||||
])
|
||||
.SetClass("flex-col")
|
||||
.SetClass("link-underline")
|
||||
|
|
Loading…
Reference in a new issue