| 
									
										
										
										
											2021-01-29 03:23:53 +01:00
										 |  |  | import Combine from "../Base/Combine"; | 
					
						
							|  |  |  | import Translations from "../i18n/Translations"; | 
					
						
							| 
									
										
										
										
											2021-06-12 02:58:32 +02:00
										 |  |  | import BaseUIElement from "../BaseUIElement"; | 
					
						
							| 
									
										
										
										
											2021-06-18 01:25:13 +02:00
										 |  |  | import {VariableUiElement} from "../Base/VariableUIElement"; | 
					
						
							|  |  |  | import {UIEventSource} from "../../Logic/UIEventSource"; | 
					
						
							|  |  |  | import {LicenseInfo} from "../../Logic/Web/Wikimedia"; | 
					
						
							| 
									
										
										
										
											2021-01-29 03:23:53 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-06-18 01:25:13 +02:00
										 |  |  | export default class Attribution extends VariableUiElement { | 
					
						
							| 
									
										
										
										
											2021-01-29 03:23:53 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-06-18 01:25:13 +02:00
										 |  |  |     constructor(license: UIEventSource<LicenseInfo>, icon: BaseUIElement) { | 
					
						
							|  |  |  |         if (license === undefined) { | 
					
						
							|  |  |  |             throw "No license source given in the attribution element" | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |         super( | 
					
						
							|  |  |  |             license.map((license : LicenseInfo) => { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                 if (license?.artist === undefined) { | 
					
						
							|  |  |  |                     return undefined; | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |                  | 
					
						
							|  |  |  |                 return new Combine([ | 
					
						
							|  |  |  |                     icon?.SetClass("block left").SetStyle("height: 2em; width: 2em; padding-right: 0.5em;"), | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |                     new Combine([ | 
					
						
							|  |  |  |                         Translations.W(license.artist).SetClass("block font-bold"), | 
					
						
							|  |  |  |                         Translations.W((license.license ?? "") === "" ? "CC0" : (license.license ?? "")) | 
					
						
							|  |  |  |                     ]).SetClass("flex flex-col") | 
					
						
							|  |  |  |                 ]).SetClass("flex flex-row bg-black text-white text-sm absolute bottom-0 left-0 p-0.5 pl-5 pr-3 rounded-lg") | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             })); | 
					
						
							| 
									
										
										
										
											2021-01-29 03:23:53 +01:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | } |