| 
									
										
										
										
											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-22 11:49:01 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | export class LayerSelection extends UIElement{ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     private readonly _checkboxes: UIElement[]; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     constructor(layers: FilteredLayer[]) { | 
					
						
							|  |  |  |       super(undefined); | 
					
						
							|  |  |  |       this._checkboxes = []; | 
					
						
							| 
									
										
										
										
											2020-07-23 14:46:25 +02:00
										 |  |  |        | 
					
						
							| 
									
										
										
										
											2020-07-22 11:49:01 +02:00
										 |  |  |       for (const layer of layers) { | 
					
						
							| 
									
										
										
										
											2020-07-23 16:28:19 +02:00
										 |  |  |           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>`;
 | 
					
						
							|  |  |  |           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; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |           this._checkboxes.push(new CheckBox( | 
					
						
							|  |  |  |               new Combine([checkbox, icon, name]), | 
					
						
							|  |  |  |               new Combine([ | 
					
						
							|  |  |  |                   `<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="#ffffff" stroke-width="4" stroke-linejoin="round"/> | 
					
						
							| 
									
										
										
										
											2020-07-22 13:33:26 +02:00
										 |  |  |             </svg>`,
 | 
					
						
							| 
									
										
										
										
											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>`; | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  |      | 
					
						
							|  |  |  | } |