forked from MapComplete/MapComplete
		
	Formatting
This commit is contained in:
		
							parent
							
								
									99ba26e3a2
								
							
						
					
					
						commit
						b251fd7b69
					
				
					 8 changed files with 69 additions and 62 deletions
				
			
		|  | @ -27,7 +27,7 @@ class MetatagUpdater { | ||||||
|         const self = this |         const self = this | ||||||
|         this.params = { |         this.params = { | ||||||
|             getFeatureById(id) { |             getFeatureById(id) { | ||||||
|                 return <any> state.allElements.ContainingFeatures.get(id) |                 return <any>state.allElements.ContainingFeatures.get(id) | ||||||
|             }, |             }, | ||||||
|             getFeaturesWithin(layerId, bbox) { |             getFeaturesWithin(layerId, bbox) { | ||||||
|                 // We keep track of the BBOX that this source needs
 |                 // We keep track of the BBOX that this source needs
 | ||||||
|  |  | ||||||
|  | @ -1,17 +1,17 @@ | ||||||
| import {OsmNode, OsmObject, OsmRelation, OsmWay} from "./OsmObject" | import { OsmNode, OsmObject, OsmRelation, OsmWay } from "./OsmObject" | ||||||
| import {UIEventSource} from "../UIEventSource" | import { UIEventSource } from "../UIEventSource" | ||||||
| import Constants from "../../Models/Constants" | import Constants from "../../Models/Constants" | ||||||
| import OsmChangeAction from "./Actions/OsmChangeAction" | import OsmChangeAction from "./Actions/OsmChangeAction" | ||||||
| import {ChangeDescription, ChangeDescriptionTools} from "./Actions/ChangeDescription" | import { ChangeDescription, ChangeDescriptionTools } from "./Actions/ChangeDescription" | ||||||
| import {Utils} from "../../Utils" | import { Utils } from "../../Utils" | ||||||
| import {LocalStorageSource} from "../Web/LocalStorageSource" | import { LocalStorageSource } from "../Web/LocalStorageSource" | ||||||
| import SimpleMetaTagger from "../SimpleMetaTagger" | import SimpleMetaTagger from "../SimpleMetaTagger" | ||||||
| import FeatureSource from "../FeatureSource/FeatureSource" | import FeatureSource from "../FeatureSource/FeatureSource" | ||||||
| import {ElementStorage} from "../ElementStorage" | import { ElementStorage } from "../ElementStorage" | ||||||
| import {GeoLocationPointProperties} from "../Actors/GeoLocationHandler" | import { GeoLocationPointProperties } from "../Actors/GeoLocationHandler" | ||||||
| import {GeoOperations} from "../GeoOperations" | import { GeoOperations } from "../GeoOperations" | ||||||
| import {ChangesetHandler, ChangesetTag} from "./ChangesetHandler" | import { ChangesetHandler, ChangesetTag } from "./ChangesetHandler" | ||||||
| import {OsmConnection} from "./OsmConnection" | import { OsmConnection } from "./OsmConnection" | ||||||
| 
 | 
 | ||||||
| /** | /** | ||||||
|  * Handles all changes made to OSM. |  * Handles all changes made to OSM. | ||||||
|  |  | ||||||
|  | @ -22,8 +22,8 @@ import { TiledStaticFeatureSource } from "../FeatureSource/Sources/StaticFeature | ||||||
| import { Translation, TypedTranslation } from "../../UI/i18n/Translation" | import { Translation, TypedTranslation } from "../../UI/i18n/Translation" | ||||||
| import { Tag } from "../Tags/Tag" | import { Tag } from "../Tags/Tag" | ||||||
| import { OsmConnection } from "../Osm/OsmConnection" | import { OsmConnection } from "../Osm/OsmConnection" | ||||||
| import {Feature, GeoJSON, LineString} from "geojson"; | import { Feature, GeoJSON, LineString } from "geojson" | ||||||
| import {OsmTags} from "../../Models/OsmFeature"; | import { OsmTags } from "../../Models/OsmFeature" | ||||||
| 
 | 
 | ||||||
| export interface GlobalFilter { | export interface GlobalFilter { | ||||||
|     filter: FilterState |     filter: FilterState | ||||||
|  | @ -322,7 +322,7 @@ export default class MapState extends UserRelatedState { | ||||||
|                 return [] |                 return [] | ||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
|             const feature : Feature<LineString, OsmTags> = { |             const feature: Feature<LineString, OsmTags> = { | ||||||
|                 type: "Feature", |                 type: "Feature", | ||||||
|                 properties: { |                 properties: { | ||||||
|                     id: "location_track", |                     id: "location_track", | ||||||
|  |  | ||||||
|  | @ -4,7 +4,7 @@ import { TagsFilter } from "./TagsFilter" | ||||||
| export class Tag extends TagsFilter { | export class Tag extends TagsFilter { | ||||||
|     public key: string |     public key: string | ||||||
|     public value: string |     public value: string | ||||||
|     public static newlyCreated  = new Tag("_newly_created","yes") ; |     public static newlyCreated = new Tag("_newly_created", "yes") | ||||||
|     constructor(key: string, value: string) { |     constructor(key: string, value: string) { | ||||||
|         super() |         super() | ||||||
|         this.key = key |         this.key = key | ||||||
|  |  | ||||||
|  | @ -27,7 +27,7 @@ import Loading from "../Base/Loading" | ||||||
| import Hash from "../../Logic/Web/Hash" | import Hash from "../../Logic/Web/Hash" | ||||||
| import { GlobalFilter } from "../../Logic/State/MapState" | import { GlobalFilter } from "../../Logic/State/MapState" | ||||||
| import { WayId } from "../../Models/OsmFeature" | import { WayId } from "../../Models/OsmFeature" | ||||||
| import {Tag} from "../../Logic/Tags/Tag"; | import { Tag } from "../../Logic/Tags/Tag" | ||||||
| 
 | 
 | ||||||
| /* | /* | ||||||
|  * The SimpleAddUI is a single panel, which can have multiple states: |  * The SimpleAddUI is a single panel, which can have multiple states: | ||||||
|  | @ -111,7 +111,9 @@ export default class SimpleAddUI extends Toggle { | ||||||
|             await state.changes.applyAction(newElementAction) |             await state.changes.applyAction(newElementAction) | ||||||
|             selectedPreset.setData(undefined) |             selectedPreset.setData(undefined) | ||||||
|             isShown.setData(false) |             isShown.setData(false) | ||||||
|             const selectedFeature = state.allElements.ContainingFeatures.get(newElementAction.newElementId) |             const selectedFeature = state.allElements.ContainingFeatures.get( | ||||||
|  |                 newElementAction.newElementId | ||||||
|  |             ) | ||||||
|             state.selectedElement.setData(selectedFeature) |             state.selectedElement.setData(selectedFeature) | ||||||
|             Hash.hash.setData(newElementAction.newElementId) |             Hash.hash.setData(newElementAction.newElementId) | ||||||
|         } |         } | ||||||
|  |  | ||||||
|  | @ -1,24 +1,24 @@ | ||||||
| import {UIEventSource} from "../../Logic/UIEventSource" | import { UIEventSource } from "../../Logic/UIEventSource" | ||||||
| import {OsmConnection} from "../../Logic/Osm/OsmConnection" | import { OsmConnection } from "../../Logic/Osm/OsmConnection" | ||||||
| import FeaturePipeline from "../../Logic/FeatureSource/FeaturePipeline" | import FeaturePipeline from "../../Logic/FeatureSource/FeaturePipeline" | ||||||
| import BaseUIElement from "../BaseUIElement" | import BaseUIElement from "../BaseUIElement" | ||||||
| import LocationInput from "../Input/LocationInput" | import LocationInput from "../Input/LocationInput" | ||||||
| import AvailableBaseLayers from "../../Logic/Actors/AvailableBaseLayers" | import AvailableBaseLayers from "../../Logic/Actors/AvailableBaseLayers" | ||||||
| import {BBox} from "../../Logic/BBox" | import { BBox } from "../../Logic/BBox" | ||||||
| import {TagUtils} from "../../Logic/Tags/TagUtils" | import { TagUtils } from "../../Logic/Tags/TagUtils" | ||||||
| import {SubtleButton} from "../Base/SubtleButton" | import { SubtleButton } from "../Base/SubtleButton" | ||||||
| import Combine from "../Base/Combine" | import Combine from "../Base/Combine" | ||||||
| import Translations from "../i18n/Translations" | import Translations from "../i18n/Translations" | ||||||
| import Svg from "../../Svg" | import Svg from "../../Svg" | ||||||
| import Toggle from "../Input/Toggle" | import Toggle from "../Input/Toggle" | ||||||
| import SimpleAddUI, {PresetInfo} from "../BigComponents/SimpleAddUI" | import SimpleAddUI, { PresetInfo } from "../BigComponents/SimpleAddUI" | ||||||
| import BaseLayer from "../../Models/BaseLayer" | import BaseLayer from "../../Models/BaseLayer" | ||||||
| import Img from "../Base/Img" | import Img from "../Base/Img" | ||||||
| import Title from "../Base/Title" | import Title from "../Base/Title" | ||||||
| import {GlobalFilter} from "../../Logic/State/MapState" | import { GlobalFilter } from "../../Logic/State/MapState" | ||||||
| import {VariableUiElement} from "../Base/VariableUIElement" | import { VariableUiElement } from "../Base/VariableUIElement" | ||||||
| import {Tag} from "../../Logic/Tags/Tag" | import { Tag } from "../../Logic/Tags/Tag" | ||||||
| import {WayId} from "../../Models/OsmFeature" | import { WayId } from "../../Models/OsmFeature" | ||||||
| 
 | 
 | ||||||
| export default class ConfirmLocationOfPoint extends Combine { | export default class ConfirmLocationOfPoint extends Combine { | ||||||
|     constructor( |     constructor( | ||||||
|  | @ -46,7 +46,7 @@ export default class ConfirmLocationOfPoint extends Combine { | ||||||
|             // Create location input
 |             // Create location input
 | ||||||
| 
 | 
 | ||||||
|             // We uncouple the event source
 |             // We uncouple the event source
 | ||||||
|             const zloc = {...loc, zoom: 19} |             const zloc = { ...loc, zoom: 19 } | ||||||
|             const locationSrc = new UIEventSource(zloc) |             const locationSrc = new UIEventSource(zloc) | ||||||
| 
 | 
 | ||||||
|             let backgroundLayer = new UIEventSource( |             let backgroundLayer = new UIEventSource( | ||||||
|  | @ -105,7 +105,7 @@ export default class ConfirmLocationOfPoint extends Combine { | ||||||
|                         state.featurePipeline |                         state.featurePipeline | ||||||
|                             .GetFeaturesWithin(layerId, bbox) |                             .GetFeaturesWithin(layerId, bbox) | ||||||
|                             ?.forEach((feats) => |                             ?.forEach((feats) => | ||||||
|                                 allFeatures.push(...feats.map((f) => ({feature: f}))) |                                 allFeatures.push(...feats.map((f) => ({ feature: f }))) | ||||||
|                             ) |                             ) | ||||||
|                     }) |                     }) | ||||||
|                     console.log("Snapping to", allFeatures) |                     console.log("Snapping to", allFeatures) | ||||||
|  | @ -116,9 +116,7 @@ export default class ConfirmLocationOfPoint extends Combine { | ||||||
| 
 | 
 | ||||||
|         let confirmButton: BaseUIElement = new SubtleButton( |         let confirmButton: BaseUIElement = new SubtleButton( | ||||||
|             preset.icon(), |             preset.icon(), | ||||||
|             new Combine([ |             new Combine([confirmText]).SetClass("flex flex-col") | ||||||
|                 confirmText, |  | ||||||
|             ]).SetClass("flex flex-col") |  | ||||||
|         ) |         ) | ||||||
|             .SetClass("font-bold break-words") |             .SetClass("font-bold break-words") | ||||||
|             .onClick(() => { |             .onClick(() => { | ||||||
|  | @ -138,7 +136,9 @@ export default class ConfirmLocationOfPoint extends Combine { | ||||||
|                 ) |                 ) | ||||||
|             }) |             }) | ||||||
| 
 | 
 | ||||||
|         const warn = Translations.t.general.add.warnVisibleForEveryone.Clone().SetClass("alert w-full block"); |         const warn = Translations.t.general.add.warnVisibleForEveryone | ||||||
|  |             .Clone() | ||||||
|  |             .SetClass("alert w-full block") | ||||||
|         if (preciseInput !== undefined) { |         if (preciseInput !== undefined) { | ||||||
|             confirmButton = new Combine([preciseInput, warn, confirmButton]) |             confirmButton = new Combine([preciseInput, warn, confirmButton]) | ||||||
|         } else { |         } else { | ||||||
|  | @ -149,7 +149,7 @@ export default class ConfirmLocationOfPoint extends Combine { | ||||||
|             Svg.layers_ui(), |             Svg.layers_ui(), | ||||||
|             new Combine([ |             new Combine([ | ||||||
|                 Translations.t.general.add.layerNotEnabled |                 Translations.t.general.add.layerNotEnabled | ||||||
|                     .Subs({layer: preset.layerToAddTo.layerDef.name}) |                     .Subs({ layer: preset.layerToAddTo.layerDef.name }) | ||||||
|                     .SetClass("alert"), |                     .SetClass("alert"), | ||||||
|                 Translations.t.general.add.openLayerControl, |                 Translations.t.general.add.openLayerControl, | ||||||
|             ]) |             ]) | ||||||
|  | @ -185,7 +185,7 @@ export default class ConfirmLocationOfPoint extends Combine { | ||||||
|             const filterConfirmPanel = new VariableUiElement( |             const filterConfirmPanel = new VariableUiElement( | ||||||
|                 state.globalFilters.map((gfs) => { |                 state.globalFilters.map((gfs) => { | ||||||
|                     const gf = gfs[i] |                     const gf = gfs[i] | ||||||
|                     const confirm = gf.onNewPoint?.confirmAddNew?.Subs({preset: preset.title}) |                     const confirm = gf.onNewPoint?.confirmAddNew?.Subs({ preset: preset.title }) | ||||||
|                     return new Combine([ |                     return new Combine([ | ||||||
|                         gf.onNewPoint?.safetyCheck, |                         gf.onNewPoint?.safetyCheck, | ||||||
|                         new SubtleButton(Svg.confirm_svg(), confirm).onClick(() => |                         new SubtleButton(Svg.confirm_svg(), confirm).onClick(() => | ||||||
|  |  | ||||||
|  | @ -1,4 +1,4 @@ | ||||||
| import {UIEventSource} from "../../Logic/UIEventSource" | import { UIEventSource } from "../../Logic/UIEventSource" | ||||||
| import EditableTagRendering from "./EditableTagRendering" | import EditableTagRendering from "./EditableTagRendering" | ||||||
| import QuestionBox from "./QuestionBox" | import QuestionBox from "./QuestionBox" | ||||||
| import Combine from "../Base/Combine" | import Combine from "../Base/Combine" | ||||||
|  | @ -7,19 +7,19 @@ import ScrollableFullScreen from "../Base/ScrollableFullScreen" | ||||||
| import Constants from "../../Models/Constants" | import Constants from "../../Models/Constants" | ||||||
| import SharedTagRenderings from "../../Customizations/SharedTagRenderings" | import SharedTagRenderings from "../../Customizations/SharedTagRenderings" | ||||||
| import BaseUIElement from "../BaseUIElement" | import BaseUIElement from "../BaseUIElement" | ||||||
| import {VariableUiElement} from "../Base/VariableUIElement" | import { VariableUiElement } from "../Base/VariableUIElement" | ||||||
| import DeleteWizard from "./DeleteWizard" | import DeleteWizard from "./DeleteWizard" | ||||||
| import SplitRoadWizard from "./SplitRoadWizard" | import SplitRoadWizard from "./SplitRoadWizard" | ||||||
| import TagRenderingConfig from "../../Models/ThemeConfig/TagRenderingConfig" | import TagRenderingConfig from "../../Models/ThemeConfig/TagRenderingConfig" | ||||||
| import LayerConfig from "../../Models/ThemeConfig/LayerConfig" | import LayerConfig from "../../Models/ThemeConfig/LayerConfig" | ||||||
| import {Utils} from "../../Utils" | import { Utils } from "../../Utils" | ||||||
| import MoveWizard from "./MoveWizard" | import MoveWizard from "./MoveWizard" | ||||||
| import Toggle from "../Input/Toggle" | import Toggle from "../Input/Toggle" | ||||||
| import Lazy from "../Base/Lazy" | import Lazy from "../Base/Lazy" | ||||||
| import FeaturePipelineState from "../../Logic/State/FeaturePipelineState" | import FeaturePipelineState from "../../Logic/State/FeaturePipelineState" | ||||||
| import {Tag} from "../../Logic/Tags/Tag"; | import { Tag } from "../../Logic/Tags/Tag" | ||||||
| import Svg from "../../Svg"; | import Svg from "../../Svg" | ||||||
| import Translations from "../i18n/Translations"; | import Translations from "../i18n/Translations" | ||||||
| 
 | 
 | ||||||
| export default class FeatureInfoBox extends ScrollableFullScreen { | export default class FeatureInfoBox extends ScrollableFullScreen { | ||||||
|     public constructor( |     public constructor( | ||||||
|  | @ -101,28 +101,33 @@ export default class FeatureInfoBox extends ScrollableFullScreen { | ||||||
|             } |             } | ||||||
|         } |         } | ||||||
| 
 | 
 | ||||||
|         const withQuestion = layerConfig.tagRenderings.filter(tr => tr.question !== undefined).length |         const withQuestion = layerConfig.tagRenderings.filter( | ||||||
|  |             (tr) => tr.question !== undefined | ||||||
|  |         ).length | ||||||
| 
 | 
 | ||||||
|         const allRenderings: BaseUIElement[] = [ |         const allRenderings: BaseUIElement[] = [ | ||||||
|             new VariableUiElement( |             new VariableUiElement( | ||||||
|                 tags.map(data => data[Tag.newlyCreated.key]).map(isCreated => { |                 tags | ||||||
|                     if (isCreated !== Tag.newlyCreated.value) { |                     .map((data) => data[Tag.newlyCreated.key]) | ||||||
|                         return undefined |                     .map((isCreated) => { | ||||||
|                     } |                         if (isCreated !== Tag.newlyCreated.value) { | ||||||
|                     const els = [] |                             return undefined | ||||||
|                     const thanks = |                         } | ||||||
|                         new Combine([ |                         const els = [] | ||||||
|                             Svg.party_svg().SetClass("w-12 h-12 shrink-0 p-1 m-1 bg-white rounded-full block"), |                         const thanks = new Combine([ | ||||||
|                             t.newlyCreated |                             Svg.party_svg().SetClass( | ||||||
|  |                                 "w-12 h-12 shrink-0 p-1 m-1 bg-white rounded-full block" | ||||||
|  |                             ), | ||||||
|  |                             t.newlyCreated, | ||||||
|                         ]).SetClass("flex w-full thanks content-center") |                         ]).SetClass("flex w-full thanks content-center") | ||||||
|                     els.push(thanks) |                         els.push(thanks) | ||||||
|                     if (withQuestion > 0) { |                         if (withQuestion > 0) { | ||||||
|                         els.push(t.feelFreeToSkip) |                             els.push(t.feelFreeToSkip) | ||||||
|                     } |                         } | ||||||
| 
 | 
 | ||||||
|                     return new Combine(els).SetClass("pb-4 mb-4 border-b block border-black") |                         return new Combine(els).SetClass("pb-4 mb-4 border-b block border-black") | ||||||
|                 }) |                     }) | ||||||
|             ) |             ), | ||||||
|         ] |         ] | ||||||
|         for (let i = 0; i < allGroupNames.length; i++) { |         for (let i = 0; i < allGroupNames.length; i++) { | ||||||
|             const groupName = allGroupNames[i] |             const groupName = allGroupNames[i] | ||||||
|  | @ -275,15 +280,15 @@ export default class FeatureInfoBox extends ScrollableFullScreen { | ||||||
|         editElements.push( |         editElements.push( | ||||||
|             Toggle.If(state.featureSwitchIsDebugging, () => { |             Toggle.If(state.featureSwitchIsDebugging, () => { | ||||||
|                 const config_all_tags: TagRenderingConfig = new TagRenderingConfig( |                 const config_all_tags: TagRenderingConfig = new TagRenderingConfig( | ||||||
|                     {render: "{all_tags()}"}, |                     { render: "{all_tags()}" }, | ||||||
|                     "" |                     "" | ||||||
|                 ) |                 ) | ||||||
|                 const config_download: TagRenderingConfig = new TagRenderingConfig( |                 const config_download: TagRenderingConfig = new TagRenderingConfig( | ||||||
|                     {render: "{export_as_geojson()}"}, |                     { render: "{export_as_geojson()}" }, | ||||||
|                     "" |                     "" | ||||||
|                 ) |                 ) | ||||||
|                 const config_id: TagRenderingConfig = new TagRenderingConfig( |                 const config_id: TagRenderingConfig = new TagRenderingConfig( | ||||||
|                     {render: "{open_in_iD()}"}, |                     { render: "{open_in_iD()}" }, | ||||||
|                     "" |                     "" | ||||||
|                 ) |                 ) | ||||||
| 
 | 
 | ||||||
|  |  | ||||||
|  | @ -121,7 +121,7 @@ export default class SplitRoadWizard extends Toggle { | ||||||
|             } |             } | ||||||
| 
 | 
 | ||||||
|             // Get nearest point on the road
 |             // Get nearest point on the road
 | ||||||
|             const pointOnRoad = GeoOperations.nearestPoint(<any> roadElement, coordinates) // pointOnRoad is a geojson
 |             const pointOnRoad = GeoOperations.nearestPoint(<any>roadElement, coordinates) // pointOnRoad is a geojson
 | ||||||
| 
 | 
 | ||||||
|             // Update point properties to let it match the layer
 |             // Update point properties to let it match the layer
 | ||||||
|             pointOnRoad.properties["_split_point"] = "yes" |             pointOnRoad.properties["_split_point"] = "yes" | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue