| 
									
										
										
										
											2021-07-28 16:48:59 +02:00
										 |  |  | import Combine from "../Base/Combine" | 
					
						
							|  |  |  | import Translations from "../i18n/Translations" | 
					
						
							| 
									
										
										
										
											2023-05-08 01:55:21 +02:00
										 |  |  | import {UIEventSource} from "../../Logic/UIEventSource" | 
					
						
							| 
									
										
										
										
											2021-07-28 16:48:59 +02:00
										 |  |  | import Toggle from "../Input/Toggle" | 
					
						
							| 
									
										
										
										
											2023-05-08 01:55:21 +02:00
										 |  |  | import {SubtleButton} from "../Base/SubtleButton" | 
					
						
							| 
									
										
										
										
											2021-07-28 16:48:59 +02:00
										 |  |  | import Svg from "../../Svg" | 
					
						
							|  |  |  | import ExportPDF from "../ExportPDF" | 
					
						
							| 
									
										
										
										
											2022-02-16 01:34:28 +01:00
										 |  |  | import FilteredLayer from "../../Models/FilteredLayer" | 
					
						
							|  |  |  | import LayoutConfig from "../../Models/ThemeConfig/LayoutConfig" | 
					
						
							| 
									
										
										
										
											2023-05-08 01:55:21 +02:00
										 |  |  | import {BBox} from "../../Logic/BBox" | 
					
						
							| 
									
										
										
										
											2022-02-16 01:34:28 +01:00
										 |  |  | import Loc from "../../Models/Loc" | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-04-21 16:02:36 +02:00
										 |  |  | export default class AllDownloads extends SubtleButton { | 
					
						
							| 
									
										
										
										
											2022-02-16 01:34:28 +01:00
										 |  |  |     constructor( | 
					
						
							|  |  |  |         isShown: UIEventSource<boolean>, | 
					
						
							|  |  |  |         state: { | 
					
						
							|  |  |  |             filteredLayers: UIEventSource<FilteredLayer[]> | 
					
						
							|  |  |  |             layoutToUse: LayoutConfig | 
					
						
							|  |  |  |             currentBounds: UIEventSource<BBox> | 
					
						
							|  |  |  |             locationControl: UIEventSource<Loc> | 
					
						
							|  |  |  |             featureSwitchExportAsPdf: UIEventSource<boolean> | 
					
						
							|  |  |  |             featureSwitchEnableExport: UIEventSource<boolean> | 
					
						
							|  |  |  |         } | 
					
						
							|  |  |  |     ) { | 
					
						
							| 
									
										
										
										
											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", | 
					
						
							| 
									
										
										
										
											2022-02-16 01:34:28 +01:00
										 |  |  |                 location: state.locationControl, | 
					
						
							|  |  |  |                 layout: 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 | 
					
						
							| 
									
										
										
										
											2023-05-08 01:55:21 +02:00
										 |  |  |         const icon = new Toggle(loading, Svg.floppy_svg(), isExporting) | 
					
						
							| 
									
										
										
										
											2021-08-22 20:10:19 +02:00
										 |  |  |         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(), | 
					
						
							| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  |             ]) | 
					
						
							| 
									
										
										
										
											2021-08-22 20:10:19 +02:00
										 |  |  |                 .SetClass("flex flex-col") | 
					
						
							|  |  |  |                 .onClick(() => { | 
					
						
							|  |  |  |                     generatePdf() | 
					
						
							|  |  |  |                 }), | 
					
						
							|  |  |  |             isExporting | 
					
						
							| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  |         ) | 
					
						
							| 
									
										
										
										
											2021-08-22 20:10:19 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2023-04-21 16:02:36 +02:00
										 |  |  |         super(icon, text) | 
					
						
							| 
									
										
										
										
											2023-04-20 17:42:07 +02:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2021-07-28 16:48:59 +02:00
										 |  |  | } |