forked from MapComplete/MapComplete
chore: automated housekeeping...
This commit is contained in:
parent
f77570589d
commit
9b8a9337fd
111 changed files with 2911 additions and 1280 deletions
|
@ -54,7 +54,7 @@ export abstract class EditJsonState<T> {
|
|||
* The EditLayerUI shows a 'schemaBasedInput' for this path to pop advanced questions out
|
||||
*/
|
||||
public readonly highlightedItem: UIEventSource<HighlightedTagRendering> = new UIEventSource(
|
||||
undefined,
|
||||
undefined
|
||||
)
|
||||
private sendingUpdates = false
|
||||
private readonly _stores = new Map<string, UIEventSource<any>>()
|
||||
|
@ -66,7 +66,7 @@ export abstract class EditJsonState<T> {
|
|||
osmConnection: OsmConnection,
|
||||
options?: {
|
||||
expertMode?: UIEventSource<boolean>
|
||||
},
|
||||
}
|
||||
) {
|
||||
this.osmConnection = osmConnection
|
||||
this.schema = schema
|
||||
|
@ -93,14 +93,20 @@ export abstract class EditJsonState<T> {
|
|||
await this.server.update(id, config, this.category)
|
||||
})
|
||||
this.messages = this.createMessagesStore()
|
||||
|
||||
|
||||
}
|
||||
|
||||
public startSavingUpdates(enabled = true) {
|
||||
this.sendingUpdates = enabled
|
||||
this.register(["credits"], this.osmConnection.userDetails.mapD(u => u.name), false)
|
||||
this.register(["credits:uid"], this.osmConnection.userDetails.mapD(u => u.uid), false)
|
||||
this.register(
|
||||
["credits"],
|
||||
this.osmConnection.userDetails.mapD((u) => u.name),
|
||||
false
|
||||
)
|
||||
this.register(
|
||||
["credits:uid"],
|
||||
this.osmConnection.userDetails.mapD((u) => u.uid),
|
||||
false
|
||||
)
|
||||
if (enabled) {
|
||||
this.configuration.ping()
|
||||
}
|
||||
|
@ -141,7 +147,7 @@ export abstract class EditJsonState<T> {
|
|||
public register(
|
||||
path: ReadonlyArray<string | number>,
|
||||
value: Store<any>,
|
||||
noInitialSync: boolean = true,
|
||||
noInitialSync: boolean = true
|
||||
): () => void {
|
||||
const unsync = value.addCallback((v) => {
|
||||
this.setValueAt(path, v)
|
||||
|
@ -155,7 +161,7 @@ export abstract class EditJsonState<T> {
|
|||
public getSchemaStartingWith(path: string[]) {
|
||||
return this.schema.filter(
|
||||
(sch) =>
|
||||
!path.some((part, i) => !(sch.path.length > path.length && sch.path[i] === part)),
|
||||
!path.some((part, i) => !(sch.path.length > path.length && sch.path[i] === part))
|
||||
)
|
||||
}
|
||||
|
||||
|
@ -173,11 +179,11 @@ export abstract class EditJsonState<T> {
|
|||
}
|
||||
|
||||
public getSchema(path: (string | number)[]): ConfigMeta[] {
|
||||
path = path.filter(p => typeof p === "string")
|
||||
path = path.filter((p) => typeof p === "string")
|
||||
const schemas = this.schema.filter(
|
||||
(sch) =>
|
||||
sch !== undefined &&
|
||||
!path.some((part, i) => !(sch.path.length == path.length && sch.path[i] === part)),
|
||||
!path.some((part, i) => !(sch.path.length == path.length && sch.path[i] === part))
|
||||
)
|
||||
if (schemas.length == 0) {
|
||||
console.warn("No schemas found for path", path.join("."))
|
||||
|
@ -267,12 +273,12 @@ class ContextRewritingStep<T> extends Conversion<LayerConfigJson, T> {
|
|||
constructor(
|
||||
state: DesugaringContext,
|
||||
step: Conversion<LayerConfigJson, T>,
|
||||
getTagRenderings: (t: T) => TagRenderingConfigJson[],
|
||||
getTagRenderings: (t: T) => TagRenderingConfigJson[]
|
||||
) {
|
||||
super(
|
||||
"When validating a layer, the tagRenderings are first expanded. Some builtin tagRendering-calls (e.g. `contact`) will introduce _multiple_ tagRenderings, causing the count to be off. This class rewrites the error messages to fix this",
|
||||
[],
|
||||
"ContextRewritingStep",
|
||||
"ContextRewritingStep"
|
||||
)
|
||||
this._state = state
|
||||
this._step = step
|
||||
|
@ -282,7 +288,7 @@ class ContextRewritingStep<T> extends Conversion<LayerConfigJson, T> {
|
|||
convert(json: LayerConfigJson, context: ConversionContext): T {
|
||||
const converted = this._step.convert(json, context)
|
||||
const originalIds = json.tagRenderings?.map(
|
||||
(tr) => (<QuestionableTagRenderingConfigJson>tr)["id"],
|
||||
(tr) => (<QuestionableTagRenderingConfigJson>tr)["id"]
|
||||
)
|
||||
if (!originalIds) {
|
||||
return converted
|
||||
|
@ -344,7 +350,7 @@ export default class EditLayerState extends EditJsonState<LayerConfigJson> {
|
|||
schema: ConfigMeta[],
|
||||
server: StudioServer,
|
||||
osmConnection: OsmConnection,
|
||||
options: { expertMode: UIEventSource<boolean> },
|
||||
options: { expertMode: UIEventSource<boolean> }
|
||||
) {
|
||||
super(schema, server, "layers", osmConnection, options)
|
||||
this.layout = {
|
||||
|
@ -401,7 +407,7 @@ export default class EditLayerState extends EditJsonState<LayerConfigJson> {
|
|||
return new ContextRewritingStep(
|
||||
state,
|
||||
new Pipe(new PrepareLayer(state), new ValidateLayer("dynamic", false, undefined, true)),
|
||||
(t) => <TagRenderingConfigJson[]>t.raw.tagRenderings,
|
||||
(t) => <TagRenderingConfigJson[]>t.raw.tagRenderings
|
||||
)
|
||||
}
|
||||
|
||||
|
@ -435,7 +441,7 @@ export default class EditLayerState extends EditJsonState<LayerConfigJson> {
|
|||
}
|
||||
|
||||
protected async validate(
|
||||
configuration: Partial<LayerConfigJson>,
|
||||
configuration: Partial<LayerConfigJson>
|
||||
): Promise<ConversionMessage[]> {
|
||||
const layers = AllSharedLayers.getSharedLayersConfigs()
|
||||
|
||||
|
@ -465,18 +471,20 @@ export class EditThemeState extends EditJsonState<LayoutConfigJson> {
|
|||
schema: ConfigMeta[],
|
||||
server: StudioServer,
|
||||
osmConnection: OsmConnection,
|
||||
options: { expertMode: UIEventSource<boolean> },
|
||||
options: { expertMode: UIEventSource<boolean> }
|
||||
) {
|
||||
super(schema, server, "themes", osmConnection, options)
|
||||
this.setupFixers()
|
||||
}
|
||||
|
||||
protected buildValidation(state: DesugaringContext): Conversion<LayoutConfigJson, any> {
|
||||
return new Pipe(new PrevalidateTheme(),
|
||||
return new Pipe(
|
||||
new PrevalidateTheme(),
|
||||
new Pipe(
|
||||
new PrepareTheme(state),
|
||||
new ValidateTheme(undefined, "", false, new Set(state.tagRenderings.keys())),
|
||||
), true,
|
||||
new ValidateTheme(undefined, "", false, new Set(state.tagRenderings.keys()))
|
||||
),
|
||||
true
|
||||
)
|
||||
}
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue