| 
									
										
										
										
											2023-05-30 02:52:22 +02:00
										 |  |  | <script lang="ts"> | 
					
						
							| 
									
										
										
										
											2023-06-14 20:39:36 +02:00
										 |  |  |   import ImportFlow from "./ImportFlow.svelte" | 
					
						
							| 
									
										
										
										
											2023-06-15 16:12:46 +02:00
										 |  |  |   import { PointImportFlowState } from "./PointImportFlowState" | 
					
						
							| 
									
										
										
										
											2023-06-14 20:39:36 +02:00
										 |  |  |   import NewPointLocationInput from "../../BigComponents/NewPointLocationInput.svelte" | 
					
						
							|  |  |  |   import LayerConfig from "../../../Models/ThemeConfig/LayerConfig" | 
					
						
							| 
									
										
										
										
											2023-06-15 16:12:46 +02:00
										 |  |  |   import { UIEventSource } from "../../../Logic/UIEventSource" | 
					
						
							|  |  |  |   import OpenBackgroundSelectorButton from "../../BigComponents/OpenBackgroundSelectorButton.svelte" | 
					
						
							| 
									
										
										
										
											2023-06-14 20:39:36 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |   export let importFlow: PointImportFlowState | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   const state = importFlow.state | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   const args = importFlow.args | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   // The following variables are used for the map | 
					
						
							|  |  |  |   const targetLayer: LayerConfig = state.layout.layers.find((l) => l.id === args.targetLayer) | 
					
						
							|  |  |  |   const snapToLayers: string[] | undefined = | 
					
						
							|  |  |  |     args.snap_onto_layers?.split(",")?.map((l) => l.trim()) ?? [] | 
					
						
							|  |  |  |   const maxSnapDistance: number = Number(args.max_snap_distance ?? 25) ?? 25 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   const snappedTo: UIEventSource<string | undefined> = new UIEventSource<string | undefined>( | 
					
						
							|  |  |  |     undefined | 
					
						
							|  |  |  |   ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   const startCoordinate = { | 
					
						
							|  |  |  |     lon: importFlow.startCoordinate[0], | 
					
						
							|  |  |  |     lat: importFlow.startCoordinate[1], | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  |   const value: UIEventSource<{ lon: number; lat: number }> = new UIEventSource<{ | 
					
						
							|  |  |  |     lon: number | 
					
						
							|  |  |  |     lat: number | 
					
						
							|  |  |  |   }>(startCoordinate) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   async function onConfirm(): Promise<void> { | 
					
						
							|  |  |  |     const importedId = await importFlow.onConfirm(value.data, snappedTo.data) | 
					
						
							|  |  |  |     state.selectedLayer.setData(targetLayer) | 
					
						
							|  |  |  |     state.selectedElement.setData(state.indexedFeatures.featuresById.data.get(importedId)) | 
					
						
							|  |  |  |   } | 
					
						
							| 
									
										
										
										
											2023-05-30 02:52:22 +02:00
										 |  |  | </script> | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-06-14 20:39:36 +02:00
										 |  |  | <ImportFlow {importFlow} on:confirm={onConfirm}> | 
					
						
							|  |  |  |   <div class="relative" slot="map"> | 
					
						
							|  |  |  |     <div class="h-32"> | 
					
						
							|  |  |  |       <NewPointLocationInput | 
					
						
							|  |  |  |         coordinate={startCoordinate} | 
					
						
							|  |  |  |         {maxSnapDistance} | 
					
						
							|  |  |  |         {snapToLayers} | 
					
						
							|  |  |  |         {snappedTo} | 
					
						
							|  |  |  |         {state} | 
					
						
							|  |  |  |         {targetLayer} | 
					
						
							|  |  |  |         {value} | 
					
						
							|  |  |  |       /> | 
					
						
							| 
									
										
										
										
											2023-05-30 02:52:22 +02:00
										 |  |  |     </div> | 
					
						
							| 
									
										
										
										
											2023-06-14 23:58:57 +02:00
										 |  |  |     <div class="absolute bottom-0"> | 
					
						
							| 
									
										
										
										
											2023-06-15 16:12:46 +02:00
										 |  |  |       <OpenBackgroundSelectorButton {state} /> | 
					
						
							| 
									
										
										
										
											2023-06-14 23:58:57 +02:00
										 |  |  |     </div> | 
					
						
							| 
									
										
										
										
											2023-06-14 20:39:36 +02:00
										 |  |  |   </div> | 
					
						
							| 
									
										
										
										
											2023-05-30 02:52:22 +02:00
										 |  |  | </ImportFlow> |