| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  | import BaseUIElement from "./BaseUIElement" | 
					
						
							| 
									
										
										
										
											2020-06-24 00:35:19 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-10-30 14:35:00 +01:00
										 |  |  | /** | 
					
						
							|  |  |  |  * @deprecated | 
					
						
							|  |  |  |  */ | 
					
						
							| 
									
										
										
										
											2021-09-09 00:05:51 +02:00
										 |  |  | export abstract class UIElement extends BaseUIElement { | 
					
						
							| 
									
										
										
										
											2021-01-18 02:51:42 +01:00
										 |  |  |     /** | 
					
						
							| 
									
										
										
										
											2021-06-10 01:36:20 +02:00
										 |  |  |      * Should be overridden for specific HTML functionality | 
					
						
							| 
									
										
										
										
											2021-01-18 02:51:42 +01:00
										 |  |  |      */ | 
					
						
							| 
									
										
										
										
											2021-06-10 01:36:20 +02:00
										 |  |  |     protected InnerConstructElement(): HTMLElement { | 
					
						
							|  |  |  |         // Uses the old fashioned way to construct an element using 'InnerRender'
 | 
					
						
							| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  |         const innerRender = this.InnerRender() | 
					
						
							| 
									
										
										
										
											2021-06-10 01:36:20 +02:00
										 |  |  |         if (innerRender === undefined || innerRender === "") { | 
					
						
							| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  |             return undefined | 
					
						
							| 
									
										
										
										
											2021-06-10 01:36:20 +02:00
										 |  |  |         } | 
					
						
							|  |  |  |         const el = document.createElement("span") | 
					
						
							|  |  |  |         if (typeof innerRender === "string") { | 
					
						
							|  |  |  |             el.innerHTML = innerRender | 
					
						
							|  |  |  |         } else { | 
					
						
							| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  |             const subElement = innerRender.ConstructElement() | 
					
						
							| 
									
										
										
										
											2021-06-10 01:36:20 +02:00
										 |  |  |             if (subElement === undefined) { | 
					
						
							| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  |                 return undefined | 
					
						
							| 
									
										
										
										
											2021-01-18 02:51:42 +01:00
										 |  |  |             } | 
					
						
							| 
									
										
										
										
											2021-06-10 01:36:20 +02:00
										 |  |  |             el.appendChild(subElement) | 
					
						
							| 
									
										
										
										
											2020-10-01 01:23:45 +02:00
										 |  |  |         } | 
					
						
							| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  |         return el | 
					
						
							| 
									
										
										
										
											2020-10-01 01:23:45 +02:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2021-09-09 00:05:51 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  |     protected abstract InnerRender(): string | BaseUIElement | 
					
						
							| 
									
										
										
										
											2020-07-20 15:54:50 +02:00
										 |  |  | } |