| 
									
										
										
										
											2021-07-28 16:48:59 +02:00
										 |  |  | import State from "../../State"; | 
					
						
							|  |  |  | import Combine from "../Base/Combine"; | 
					
						
							|  |  |  | import ScrollableFullScreen from "../Base/ScrollableFullScreen"; | 
					
						
							|  |  |  | import Translations from "../i18n/Translations"; | 
					
						
							|  |  |  | import {UIEventSource} from "../../Logic/UIEventSource"; | 
					
						
							|  |  |  | import BaseUIElement from "../BaseUIElement"; | 
					
						
							|  |  |  | import Toggle from "../Input/Toggle"; | 
					
						
							|  |  |  | import {DownloadPanel} from "./DownloadPanel"; | 
					
						
							|  |  |  | import {SubtleButton} from "../Base/SubtleButton"; | 
					
						
							|  |  |  | import Svg from "../../Svg"; | 
					
						
							|  |  |  | import ExportPDF from "../ExportPDF"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | export default class AllDownloads extends ScrollableFullScreen { | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     constructor(isShown: UIEventSource<boolean>) { | 
					
						
							| 
									
										
										
										
											2021-10-25 20:50:59 +02:00
										 |  |  |         super(AllDownloads.GenTitle, AllDownloads.GeneratePanel, "downloads", isShown); | 
					
						
							| 
									
										
										
										
											2021-07-28 16:48:59 +02:00
										 |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     private static GenTitle(): BaseUIElement { | 
					
						
							|  |  |  |         return Translations.t.general.download.title | 
					
						
							|  |  |  |             .Clone() | 
					
						
							|  |  |  |             .SetClass("text-2xl break-words font-bold p-2"); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     private static GeneratePanel(): BaseUIElement { | 
					
						
							| 
									
										
										
										
											2021-08-22 20:10:19 +02:00
										 |  |  |         const isExporting = new UIEventSource(false, "Pdf-is-exporting") | 
					
						
							| 
									
										
										
										
											2021-07-28 16:48:59 +02:00
										 |  |  |         const generatePdf = () => { | 
					
						
							| 
									
										
										
										
											2021-08-22 20:10:19 +02:00
										 |  |  |             isExporting.setData(true) | 
					
						
							| 
									
										
										
										
											2021-07-28 16:48:59 +02:00
										 |  |  |             new ExportPDF( | 
					
						
							|  |  |  |                 { | 
					
						
							|  |  |  |                     freeDivId: "belowmap", | 
					
						
							|  |  |  |                     background: State.state.backgroundLayer, | 
					
						
							|  |  |  |                     location: State.state.locationControl, | 
					
						
							| 
									
										
										
										
											2021-09-21 02:10:42 +02:00
										 |  |  |                     features: State.state.featurePipeline, | 
					
						
							| 
									
										
										
										
											2021-07-28 16:48:59 +02:00
										 |  |  |                     layout: State.state.layoutToUse, | 
					
						
							| 
									
										
										
										
											2021-08-22 20:10:19 +02:00
										 |  |  |                 }).isRunning.addCallbackAndRun(isRunning => isExporting.setData(isRunning)) | 
					
						
							| 
									
										
										
										
											2021-07-28 16:48:59 +02:00
										 |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-22 20:10:19 +02:00
										 |  |  |         const loading = Svg.loading_svg().SetClass("animate-rotate"); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-10-03 01:38:57 +02:00
										 |  |  |         const dloadTrans = Translations.t.general.download | 
					
						
							| 
									
										
										
										
											2021-08-22 20:10:19 +02:00
										 |  |  |         const icon = new Toggle(loading, Svg.floppy_ui(), isExporting); | 
					
						
							|  |  |  |         const text = new Toggle( | 
					
						
							| 
									
										
										
										
											2021-10-03 01:38:57 +02:00
										 |  |  |             dloadTrans.exporting.Clone(), | 
					
						
							| 
									
										
										
										
											2021-08-22 20:10:19 +02:00
										 |  |  |             new Combine([ | 
					
						
							| 
									
										
										
										
											2021-10-03 01:38:57 +02:00
										 |  |  |                 dloadTrans.downloadAsPdf.Clone().SetClass("font-bold"), | 
					
						
							|  |  |  |                 dloadTrans.downloadAsPdfHelper.Clone()] | 
					
						
							| 
									
										
										
										
											2021-08-22 20:10:19 +02:00
										 |  |  |             ).SetClass("flex flex-col") | 
					
						
							|  |  |  |                 .onClick(() => { | 
					
						
							|  |  |  |                     generatePdf() | 
					
						
							|  |  |  |                 }), | 
					
						
							|  |  |  |             isExporting); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-07-28 16:48:59 +02:00
										 |  |  |         const pdf = new Toggle( | 
					
						
							| 
									
										
										
										
											2021-08-22 20:10:19 +02:00
										 |  |  |             new SubtleButton( | 
					
						
							|  |  |  |                 icon, | 
					
						
							|  |  |  |                 text), | 
					
						
							| 
									
										
										
										
											2021-07-28 16:48:59 +02:00
										 |  |  |             undefined, | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             State.state.featureSwitchExportAsPdf | 
					
						
							|  |  |  |         ) | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-08-22 20:10:19 +02:00
										 |  |  |         const exportPanel = new Toggle( | 
					
						
							| 
									
										
										
										
											2021-07-28 16:48:59 +02:00
										 |  |  |             new DownloadPanel(), | 
					
						
							|  |  |  |             undefined, | 
					
						
							|  |  |  |             State.state.featureSwitchEnableExport | 
					
						
							|  |  |  |         ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         return new Combine([pdf, exportPanel]).SetClass("flex flex-col"); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | } |