forked from MapComplete/MapComplete
		
	
		
			
				
	
	
		
			83 lines
		
	
	
	
		
			3.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
			
		
		
	
	
			83 lines
		
	
	
	
		
			3.1 KiB
		
	
	
	
		
			TypeScript
		
	
	
	
	
	
| import { UIEventSource } from "../../Logic/UIEventSource"
 | |
| import BaseUIElement from "../BaseUIElement"
 | |
| 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 { PresetInfo } from "../BigComponents/SimpleAddUI"
 | |
| import { VariableUiElement } from "../Base/VariableUIElement"
 | |
| import { Tag } from "../../Logic/Tags/Tag"
 | |
| import { WayId } from "../../Models/OsmFeature"
 | |
| import { Translation } from "../i18n/Translation"
 | |
| import { SpecialVisualizationState } from "../SpecialVisualization"
 | |
| 
 | |
| /**
 | |
|  * @deprecated
 | |
|  */
 | |
| export default class ConfirmLocationOfPoint extends Combine {
 | |
|     constructor(
 | |
|         state: SpecialVisualizationState,
 | |
|         filterViewIsOpened: UIEventSource<boolean>,
 | |
|         preset: PresetInfo,
 | |
|         confirmText: BaseUIElement,
 | |
|         loc: { lon: number; lat: number },
 | |
|         confirm: (
 | |
|             tags: any[],
 | |
|             location: { lat: number; lon: number },
 | |
|             snapOntoWayId: WayId | undefined
 | |
|         ) => void,
 | |
|         cancel: () => void,
 | |
|         closePopup: () => void,
 | |
|         options?: {
 | |
|             cancelIcon: BaseUIElement
 | |
|             cancelText?: string | Translation
 | |
|         }
 | |
|     ) {
 | |
|         let confirmButton: BaseUIElement = new SubtleButton(
 | |
|             preset.icon(),
 | |
|             new Combine([confirmText]).SetClass("flex flex-col")
 | |
|         )
 | |
|             .SetClass("font-bold break-words")
 | |
|             .onClick(() => {
 | |
|                 const globalFilterTagsToAdd: Tag[][] = state.globalFilters.data
 | |
|                     .filter((gf) => gf.onNewPoint !== undefined)
 | |
|                     .map((gf) => gf.onNewPoint.tags)
 | |
|                 const globalTags: Tag[] = [].concat(...globalFilterTagsToAdd)
 | |
|                 console.log("Global tags to add are: ", globalTags)
 | |
|             })
 | |
| 
 | |
|         confirmButton = new Combine([confirmButton])
 | |
| 
 | |
|         let openLayerOrConfirm = confirmButton
 | |
| 
 | |
|         // We assume the number of global filters won't change during the run of the program
 | |
|         for (let i = 0; i < state.globalFilters.data.length; i++) {
 | |
|             const hasBeenCheckedOf = new UIEventSource(false)
 | |
| 
 | |
|             const filterConfirmPanel = new VariableUiElement(
 | |
|                 state.globalFilters.map((gfs) => {
 | |
|                     const gf = gfs[i]
 | |
|                     const confirm = gf.onNewPoint?.confirmAddNew?.Subs({ preset: preset.title })
 | |
|                     return new Combine([
 | |
|                         gf.onNewPoint?.safetyCheck,
 | |
|                         new SubtleButton(Svg.confirm_svg(), confirm).onClick(() =>
 | |
|                             hasBeenCheckedOf.setData(true)
 | |
|                         ),
 | |
|                     ])
 | |
|                 })
 | |
|             )
 | |
| 
 | |
|             openLayerOrConfirm = new Toggle(
 | |
|                 openLayerOrConfirm,
 | |
|                 filterConfirmPanel,
 | |
|                 state.globalFilters.map(
 | |
|                     (f) => hasBeenCheckedOf.data || f[i]?.onNewPoint === undefined,
 | |
|                     [hasBeenCheckedOf]
 | |
|                 )
 | |
|             )
 | |
|         }
 | |
| 
 | |
|         super([openLayerOrConfirm])
 | |
|     }
 | |
| }
 |