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
|
||||
this.params = {
|
||||
getFeatureById(id) {
|
||||
return <any> state.allElements.ContainingFeatures.get(id)
|
||||
return <any>state.allElements.ContainingFeatures.get(id)
|
||||
},
|
||||
getFeaturesWithin(layerId, bbox) {
|
||||
// We keep track of the BBOX that this source needs
|
||||
|
|
|
@ -1,17 +1,17 @@
|
|||
import {OsmNode, OsmObject, OsmRelation, OsmWay} from "./OsmObject"
|
||||
import {UIEventSource} from "../UIEventSource"
|
||||
import { OsmNode, OsmObject, OsmRelation, OsmWay } from "./OsmObject"
|
||||
import { UIEventSource } from "../UIEventSource"
|
||||
import Constants from "../../Models/Constants"
|
||||
import OsmChangeAction from "./Actions/OsmChangeAction"
|
||||
import {ChangeDescription, ChangeDescriptionTools} from "./Actions/ChangeDescription"
|
||||
import {Utils} from "../../Utils"
|
||||
import {LocalStorageSource} from "../Web/LocalStorageSource"
|
||||
import { ChangeDescription, ChangeDescriptionTools } from "./Actions/ChangeDescription"
|
||||
import { Utils } from "../../Utils"
|
||||
import { LocalStorageSource } from "../Web/LocalStorageSource"
|
||||
import SimpleMetaTagger from "../SimpleMetaTagger"
|
||||
import FeatureSource from "../FeatureSource/FeatureSource"
|
||||
import {ElementStorage} from "../ElementStorage"
|
||||
import {GeoLocationPointProperties} from "../Actors/GeoLocationHandler"
|
||||
import {GeoOperations} from "../GeoOperations"
|
||||
import {ChangesetHandler, ChangesetTag} from "./ChangesetHandler"
|
||||
import {OsmConnection} from "./OsmConnection"
|
||||
import { ElementStorage } from "../ElementStorage"
|
||||
import { GeoLocationPointProperties } from "../Actors/GeoLocationHandler"
|
||||
import { GeoOperations } from "../GeoOperations"
|
||||
import { ChangesetHandler, ChangesetTag } from "./ChangesetHandler"
|
||||
import { OsmConnection } from "./OsmConnection"
|
||||
|
||||
/**
|
||||
* Handles all changes made to OSM.
|
||||
|
|
|
@ -22,8 +22,8 @@ import { TiledStaticFeatureSource } from "../FeatureSource/Sources/StaticFeature
|
|||
import { Translation, TypedTranslation } from "../../UI/i18n/Translation"
|
||||
import { Tag } from "../Tags/Tag"
|
||||
import { OsmConnection } from "../Osm/OsmConnection"
|
||||
import {Feature, GeoJSON, LineString} from "geojson";
|
||||
import {OsmTags} from "../../Models/OsmFeature";
|
||||
import { Feature, GeoJSON, LineString } from "geojson"
|
||||
import { OsmTags } from "../../Models/OsmFeature"
|
||||
|
||||
export interface GlobalFilter {
|
||||
filter: FilterState
|
||||
|
@ -322,7 +322,7 @@ export default class MapState extends UserRelatedState {
|
|||
return []
|
||||
}
|
||||
|
||||
const feature : Feature<LineString, OsmTags> = {
|
||||
const feature: Feature<LineString, OsmTags> = {
|
||||
type: "Feature",
|
||||
properties: {
|
||||
id: "location_track",
|
||||
|
|
|
@ -4,7 +4,7 @@ import { TagsFilter } from "./TagsFilter"
|
|||
export class Tag extends TagsFilter {
|
||||
public key: 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) {
|
||||
super()
|
||||
this.key = key
|
||||
|
|
|
@ -27,7 +27,7 @@ import Loading from "../Base/Loading"
|
|||
import Hash from "../../Logic/Web/Hash"
|
||||
import { GlobalFilter } from "../../Logic/State/MapState"
|
||||
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:
|
||||
|
@ -111,7 +111,9 @@ export default class SimpleAddUI extends Toggle {
|
|||
await state.changes.applyAction(newElementAction)
|
||||
selectedPreset.setData(undefined)
|
||||
isShown.setData(false)
|
||||
const selectedFeature = state.allElements.ContainingFeatures.get(newElementAction.newElementId)
|
||||
const selectedFeature = state.allElements.ContainingFeatures.get(
|
||||
newElementAction.newElementId
|
||||
)
|
||||
state.selectedElement.setData(selectedFeature)
|
||||
Hash.hash.setData(newElementAction.newElementId)
|
||||
}
|
||||
|
|
|
@ -1,24 +1,24 @@
|
|||
import {UIEventSource} from "../../Logic/UIEventSource"
|
||||
import {OsmConnection} from "../../Logic/Osm/OsmConnection"
|
||||
import { UIEventSource } from "../../Logic/UIEventSource"
|
||||
import { OsmConnection } from "../../Logic/Osm/OsmConnection"
|
||||
import FeaturePipeline from "../../Logic/FeatureSource/FeaturePipeline"
|
||||
import BaseUIElement from "../BaseUIElement"
|
||||
import LocationInput from "../Input/LocationInput"
|
||||
import AvailableBaseLayers from "../../Logic/Actors/AvailableBaseLayers"
|
||||
import {BBox} from "../../Logic/BBox"
|
||||
import {TagUtils} from "../../Logic/Tags/TagUtils"
|
||||
import {SubtleButton} from "../Base/SubtleButton"
|
||||
import { BBox } from "../../Logic/BBox"
|
||||
import { TagUtils } from "../../Logic/Tags/TagUtils"
|
||||
import { SubtleButton } from "../Base/SubtleButton"
|
||||
import Combine from "../Base/Combine"
|
||||
import Translations from "../i18n/Translations"
|
||||
import Svg from "../../Svg"
|
||||
import Toggle from "../Input/Toggle"
|
||||
import SimpleAddUI, {PresetInfo} from "../BigComponents/SimpleAddUI"
|
||||
import SimpleAddUI, { PresetInfo } from "../BigComponents/SimpleAddUI"
|
||||
import BaseLayer from "../../Models/BaseLayer"
|
||||
import Img from "../Base/Img"
|
||||
import Title from "../Base/Title"
|
||||
import {GlobalFilter} from "../../Logic/State/MapState"
|
||||
import {VariableUiElement} from "../Base/VariableUIElement"
|
||||
import {Tag} from "../../Logic/Tags/Tag"
|
||||
import {WayId} from "../../Models/OsmFeature"
|
||||
import { GlobalFilter } from "../../Logic/State/MapState"
|
||||
import { VariableUiElement } from "../Base/VariableUIElement"
|
||||
import { Tag } from "../../Logic/Tags/Tag"
|
||||
import { WayId } from "../../Models/OsmFeature"
|
||||
|
||||
export default class ConfirmLocationOfPoint extends Combine {
|
||||
constructor(
|
||||
|
@ -46,7 +46,7 @@ export default class ConfirmLocationOfPoint extends Combine {
|
|||
// Create location input
|
||||
|
||||
// We uncouple the event source
|
||||
const zloc = {...loc, zoom: 19}
|
||||
const zloc = { ...loc, zoom: 19 }
|
||||
const locationSrc = new UIEventSource(zloc)
|
||||
|
||||
let backgroundLayer = new UIEventSource(
|
||||
|
@ -105,7 +105,7 @@ export default class ConfirmLocationOfPoint extends Combine {
|
|||
state.featurePipeline
|
||||
.GetFeaturesWithin(layerId, bbox)
|
||||
?.forEach((feats) =>
|
||||
allFeatures.push(...feats.map((f) => ({feature: f})))
|
||||
allFeatures.push(...feats.map((f) => ({ feature: f })))
|
||||
)
|
||||
})
|
||||
console.log("Snapping to", allFeatures)
|
||||
|
@ -116,9 +116,7 @@ export default class ConfirmLocationOfPoint extends Combine {
|
|||
|
||||
let confirmButton: BaseUIElement = new SubtleButton(
|
||||
preset.icon(),
|
||||
new Combine([
|
||||
confirmText,
|
||||
]).SetClass("flex flex-col")
|
||||
new Combine([confirmText]).SetClass("flex flex-col")
|
||||
)
|
||||
.SetClass("font-bold break-words")
|
||||
.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) {
|
||||
confirmButton = new Combine([preciseInput, warn, confirmButton])
|
||||
} else {
|
||||
|
@ -149,7 +149,7 @@ export default class ConfirmLocationOfPoint extends Combine {
|
|||
Svg.layers_ui(),
|
||||
new Combine([
|
||||
Translations.t.general.add.layerNotEnabled
|
||||
.Subs({layer: preset.layerToAddTo.layerDef.name})
|
||||
.Subs({ layer: preset.layerToAddTo.layerDef.name })
|
||||
.SetClass("alert"),
|
||||
Translations.t.general.add.openLayerControl,
|
||||
])
|
||||
|
@ -185,7 +185,7 @@ export default class ConfirmLocationOfPoint extends Combine {
|
|||
const filterConfirmPanel = new VariableUiElement(
|
||||
state.globalFilters.map((gfs) => {
|
||||
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([
|
||||
gf.onNewPoint?.safetyCheck,
|
||||
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 QuestionBox from "./QuestionBox"
|
||||
import Combine from "../Base/Combine"
|
||||
|
@ -7,19 +7,19 @@ import ScrollableFullScreen from "../Base/ScrollableFullScreen"
|
|||
import Constants from "../../Models/Constants"
|
||||
import SharedTagRenderings from "../../Customizations/SharedTagRenderings"
|
||||
import BaseUIElement from "../BaseUIElement"
|
||||
import {VariableUiElement} from "../Base/VariableUIElement"
|
||||
import { VariableUiElement } from "../Base/VariableUIElement"
|
||||
import DeleteWizard from "./DeleteWizard"
|
||||
import SplitRoadWizard from "./SplitRoadWizard"
|
||||
import TagRenderingConfig from "../../Models/ThemeConfig/TagRenderingConfig"
|
||||
import LayerConfig from "../../Models/ThemeConfig/LayerConfig"
|
||||
import {Utils} from "../../Utils"
|
||||
import { Utils } from "../../Utils"
|
||||
import MoveWizard from "./MoveWizard"
|
||||
import Toggle from "../Input/Toggle"
|
||||
import Lazy from "../Base/Lazy"
|
||||
import FeaturePipelineState from "../../Logic/State/FeaturePipelineState"
|
||||
import {Tag} from "../../Logic/Tags/Tag";
|
||||
import Svg from "../../Svg";
|
||||
import Translations from "../i18n/Translations";
|
||||
import { Tag } from "../../Logic/Tags/Tag"
|
||||
import Svg from "../../Svg"
|
||||
import Translations from "../i18n/Translations"
|
||||
|
||||
export default class FeatureInfoBox extends ScrollableFullScreen {
|
||||
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[] = [
|
||||
new VariableUiElement(
|
||||
tags.map(data => data[Tag.newlyCreated.key]).map(isCreated => {
|
||||
if (isCreated !== Tag.newlyCreated.value) {
|
||||
return undefined
|
||||
}
|
||||
const els = []
|
||||
const thanks =
|
||||
new Combine([
|
||||
Svg.party_svg().SetClass("w-12 h-12 shrink-0 p-1 m-1 bg-white rounded-full block"),
|
||||
t.newlyCreated
|
||||
tags
|
||||
.map((data) => data[Tag.newlyCreated.key])
|
||||
.map((isCreated) => {
|
||||
if (isCreated !== Tag.newlyCreated.value) {
|
||||
return undefined
|
||||
}
|
||||
const els = []
|
||||
const thanks = new Combine([
|
||||
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")
|
||||
els.push(thanks)
|
||||
if (withQuestion > 0) {
|
||||
els.push(t.feelFreeToSkip)
|
||||
}
|
||||
els.push(thanks)
|
||||
if (withQuestion > 0) {
|
||||
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++) {
|
||||
const groupName = allGroupNames[i]
|
||||
|
@ -275,15 +280,15 @@ export default class FeatureInfoBox extends ScrollableFullScreen {
|
|||
editElements.push(
|
||||
Toggle.If(state.featureSwitchIsDebugging, () => {
|
||||
const config_all_tags: TagRenderingConfig = new TagRenderingConfig(
|
||||
{render: "{all_tags()}"},
|
||||
{ render: "{all_tags()}" },
|
||||
""
|
||||
)
|
||||
const config_download: TagRenderingConfig = new TagRenderingConfig(
|
||||
{render: "{export_as_geojson()}"},
|
||||
{ render: "{export_as_geojson()}" },
|
||||
""
|
||||
)
|
||||
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
|
||||
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
|
||||
pointOnRoad.properties["_split_point"] = "yes"
|
||||
|
|
Loading…
Reference in a new issue