forked from MapComplete/MapComplete
		
	
		
			
				
	
	
		
			44 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Svelte
		
	
	
	
	
	
			
		
		
	
	
			44 lines
		
	
	
	
		
			1.4 KiB
		
	
	
	
		
			Svelte
		
	
	
	
	
	
<script lang="ts">
 | 
						|
 | 
						|
    import EditLayerState from "./EditLayerState";
 | 
						|
    import layerSchemaRaw from "../../assets/layerconfigmeta.json"
 | 
						|
    import Region from "./Region.svelte";
 | 
						|
    import TabbedGroup from "../Base/TabbedGroup.svelte";
 | 
						|
    import {UIEventSource} from "../../Logic/UIEventSource";
 | 
						|
    import type {ConfigMeta} from "./configMeta";
 | 
						|
    import {Utils} from "../../Utils";
 | 
						|
 | 
						|
 | 
						|
 | 
						|
    const layerSchema: ConfigMeta[] = layerSchemaRaw
 | 
						|
    let state = new EditLayerState(layerSchema)
 | 
						|
    const regions = Utils.Dedup(layerSchema.map(meta => meta.hints.group))
 | 
						|
        .filter(region => region === "basic")
 | 
						|
 | 
						|
    const perRegion: Record<string, ConfigMeta[]> = {}
 | 
						|
    for (const region of regions) {
 | 
						|
        perRegion[region] = layerSchema.filter(meta => meta.hints.group === region)
 | 
						|
    }
 | 
						|
    console.log({perRegion})
 | 
						|
</script>
 | 
						|
 | 
						|
<h3>Edit layer</h3>
 | 
						|
 | 
						|
<TabbedGroup tab={new UIEventSource(0)}>
 | 
						|
    <div slot="title0">General properties</div>
 | 
						|
    <div class="flex flex-col" slot="content0">
 | 
						|
        {#each regions as region}
 | 
						|
            <Region {state} configs={perRegion[region]} title={region}/>
 | 
						|
        {/each}
 | 
						|
    </div>
 | 
						|
 | 
						|
    <div slot="title1">Information panel (questions and answers)</div>
 | 
						|
    <div slot="content1">
 | 
						|
        Information panel (todo)
 | 
						|
    </div>
 | 
						|
 | 
						|
    <div slot="title2">Rendering on the map</div>
 | 
						|
    <div slot="content2">
 | 
						|
        TODO: rendering on the map
 | 
						|
    </div>
 | 
						|
</TabbedGroup>
 |