| 
									
										
										
										
											2020-07-22 11:49:01 +02:00
										 |  |  | import { UIElement } from "./UIElement"; | 
					
						
							|  |  |  | import { FilteredLayer } from "../Logic/FilteredLayer"; | 
					
						
							| 
									
										
										
										
											2020-07-24 01:12:57 +02:00
										 |  |  | import { CheckBox } from "./Input/CheckBox"; | 
					
						
							| 
									
										
										
										
											2020-07-22 11:56:40 +02:00
										 |  |  | import Combine from "./Base/Combine"; | 
					
						
							| 
									
										
										
										
											2020-07-24 14:46:25 +02:00
										 |  |  | import {Utils} from "../Utils"; | 
					
						
							| 
									
										
										
										
											2020-07-29 15:05:19 +02:00
										 |  |  | import {Img} from "./Img"; | 
					
						
							| 
									
										
										
										
											2020-07-31 16:17:16 +02:00
										 |  |  | import {State} from "../State"; | 
					
						
							| 
									
										
										
										
											2020-07-22 11:49:01 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-31 16:17:16 +02:00
										 |  |  | export class LayerSelection extends UIElement { | 
					
						
							| 
									
										
										
										
											2020-07-22 11:49:01 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     private readonly _checkboxes: UIElement[]; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-31 16:17:16 +02:00
										 |  |  |     constructor() { | 
					
						
							|  |  |  |         super(undefined); | 
					
						
							|  |  |  |         this._checkboxes = []; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         for (const layer of State.state.filteredLayers.data) { | 
					
						
							|  |  |  |             const checkbox = `<svg width="26" height="18" viewBox="0 0 26 18" fill="none" xmlns="http://www.w3.org/2000/svg">
 | 
					
						
							| 
									
										
										
										
											2020-07-22 14:57:35 +02:00
										 |  |  |             <path d="M3 7.28571L10.8261 15L23 3" stroke="#003B8B" stroke-width="4" stroke-linejoin="round"/> | 
					
						
							| 
									
										
										
										
											2020-07-23 16:28:19 +02:00
										 |  |  |             </svg>`;
 | 
					
						
							| 
									
										
										
										
											2020-07-31 16:17:16 +02:00
										 |  |  |             let icon = "<img >"; | 
					
						
							|  |  |  |             if (layer.layerDef.icon && layer.layerDef.icon !== "") { | 
					
						
							|  |  |  |                 icon = `<img width="20" height="20" src="${layer.layerDef.icon}" alt="">` | 
					
						
							|  |  |  |             } | 
					
						
							|  |  |  |             const name = layer.layerDef.name; | 
					
						
							| 
									
										
										
										
											2020-07-23 16:28:19 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-07-31 16:17:16 +02:00
										 |  |  |             this._checkboxes.push(new CheckBox( | 
					
						
							| 
									
										
										
										
											2020-07-23 16:28:19 +02:00
										 |  |  |               new Combine([checkbox, icon, name]), | 
					
						
							|  |  |  |               new Combine([ | 
					
						
							| 
									
										
										
										
											2020-07-29 19:02:36 +02:00
										 |  |  |                   Img.no_checkmark, | 
					
						
							| 
									
										
										
										
											2020-07-23 16:28:19 +02:00
										 |  |  |                   icon, | 
					
						
							|  |  |  |                   layer.layerDef.name]), | 
					
						
							|  |  |  |               layer.isDisplayed)); | 
					
						
							| 
									
										
										
										
											2020-07-22 11:49:01 +02:00
										 |  |  |       } | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   InnerRender(): string { | 
					
						
							|  |  |  |     let html = ``; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     for (const checkBox of this._checkboxes) { | 
					
						
							|  |  |  |       const checkBoxHTML = checkBox.Render(); | 
					
						
							|  |  |  |       const checkBoxListItem = `<li>${checkBoxHTML}</li>`; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |       html = html + checkBoxListItem; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     return `<ul>${html}</ul>`; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |      | 
					
						
							|  |  |  | } |