| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  | import { VariableUiElement } from "../Base/VariableUIElement" | 
					
						
							|  |  |  | import { Translation } from "../i18n/Translation" | 
					
						
							|  |  |  | import Svg from "../../Svg" | 
					
						
							|  |  |  | import Combine from "../Base/Combine" | 
					
						
							|  |  |  | import { Store, UIEventSource } from "../../Logic/UIEventSource" | 
					
						
							|  |  |  | import { Utils } from "../../Utils" | 
					
						
							|  |  |  | import Translations from "../i18n/Translations" | 
					
						
							|  |  |  | import BaseUIElement from "../BaseUIElement" | 
					
						
							|  |  |  | import LayerConfig from "../../Models/ThemeConfig/LayerConfig" | 
					
						
							|  |  |  | import LayoutConfig from "../../Models/ThemeConfig/LayoutConfig" | 
					
						
							|  |  |  | import Loc from "../../Models/Loc" | 
					
						
							|  |  |  | import BaseLayer from "../../Models/BaseLayer" | 
					
						
							|  |  |  | import FilteredLayer from "../../Models/FilteredLayer" | 
					
						
							|  |  |  | import { InputElement } from "../Input/InputElement" | 
					
						
							|  |  |  | import { CheckBox } from "../Input/Checkboxes" | 
					
						
							|  |  |  | import { SubtleButton } from "../Base/SubtleButton" | 
					
						
							|  |  |  | import LZString from "lz-string" | 
					
						
							| 
									
										
										
										
											2020-07-29 15:05:19 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-06-13 15:04:55 +02:00
										 |  |  | export default class ShareScreen extends Combine { | 
					
						
							| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  |     constructor(state: { | 
					
						
							|  |  |  |         layoutToUse: LayoutConfig | 
					
						
							|  |  |  |         locationControl: UIEventSource<Loc> | 
					
						
							|  |  |  |         backgroundLayer: UIEventSource<BaseLayer> | 
					
						
							|  |  |  |         filteredLayers: UIEventSource<FilteredLayer[]> | 
					
						
							|  |  |  |     }) { | 
					
						
							|  |  |  |         const layout = state?.layoutToUse | 
					
						
							|  |  |  |         const tr = Translations.t.general.sharescreen | 
					
						
							| 
									
										
										
										
											2020-07-29 15:05:19 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-03-31 03:30:20 +02:00
										 |  |  |         const optionCheckboxes: InputElement<boolean>[] = [] | 
					
						
							| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  |         const optionParts: Store<string>[] = [] | 
					
						
							| 
									
										
										
										
											2021-09-09 00:05:51 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-03-31 03:30:20 +02:00
										 |  |  |         const includeLocation = new CheckBox(tr.fsIncludeCurrentLocation, true) | 
					
						
							| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  |         optionCheckboxes.push(includeLocation) | 
					
						
							| 
									
										
										
										
											2022-07-10 12:33:37 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  |         const currentLocation = state.locationControl | 
					
						
							| 
									
										
										
										
											2020-07-29 15:05:19 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  |         optionParts.push( | 
					
						
							|  |  |  |             includeLocation.GetValue().map( | 
					
						
							|  |  |  |                 (includeL) => { | 
					
						
							|  |  |  |                     if (currentLocation === undefined) { | 
					
						
							|  |  |  |                         return null | 
					
						
							|  |  |  |                     } | 
					
						
							|  |  |  |                     if (includeL) { | 
					
						
							|  |  |  |                         return [ | 
					
						
							|  |  |  |                             ["z", currentLocation.data?.zoom], | 
					
						
							|  |  |  |                             ["lat", currentLocation.data?.lat], | 
					
						
							|  |  |  |                             ["lon", currentLocation.data?.lon], | 
					
						
							|  |  |  |                         ] | 
					
						
							|  |  |  |                             .filter((p) => p[1] !== undefined) | 
					
						
							|  |  |  |                             .map((p) => p[0] + "=" + p[1]) | 
					
						
							|  |  |  |                             .join("&") | 
					
						
							|  |  |  |                     } else { | 
					
						
							|  |  |  |                         return null | 
					
						
							|  |  |  |                     } | 
					
						
							|  |  |  |                 }, | 
					
						
							|  |  |  |                 [currentLocation] | 
					
						
							|  |  |  |             ) | 
					
						
							|  |  |  |         ) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         function fLayerToParam(flayer: { | 
					
						
							|  |  |  |             isDisplayed: UIEventSource<boolean> | 
					
						
							|  |  |  |             layerDef: LayerConfig | 
					
						
							|  |  |  |         }) { | 
					
						
							| 
									
										
										
										
											2020-08-31 13:25:13 +02:00
										 |  |  |             if (flayer.isDisplayed.data) { | 
					
						
							| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  |                 return null // Being displayed is the default
 | 
					
						
							| 
									
										
										
										
											2020-08-08 02:16:42 +02:00
										 |  |  |             } | 
					
						
							| 
									
										
										
										
											2020-08-31 13:25:13 +02:00
										 |  |  |             return "layer-" + flayer.layerDef.id + "=" + flayer.isDisplayed.data | 
					
						
							|  |  |  |         } | 
					
						
							| 
									
										
										
										
											2020-08-08 02:16:42 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  |         const currentLayer: UIEventSource<{ id: string; name: string; layer: any }> = | 
					
						
							|  |  |  |             state.backgroundLayer | 
					
						
							|  |  |  |         const currentBackground = new VariableUiElement( | 
					
						
							|  |  |  |             currentLayer.map((layer) => { | 
					
						
							|  |  |  |                 return tr.fsIncludeCurrentBackgroundMap.Subs({ name: layer?.name ?? "" }) | 
					
						
							|  |  |  |             }) | 
					
						
							|  |  |  |         ) | 
					
						
							| 
									
										
										
										
											2022-03-31 03:30:20 +02:00
										 |  |  |         const includeCurrentBackground = new CheckBox(currentBackground, true) | 
					
						
							| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  |         optionCheckboxes.push(includeCurrentBackground) | 
					
						
							|  |  |  |         optionParts.push( | 
					
						
							|  |  |  |             includeCurrentBackground.GetValue().map( | 
					
						
							|  |  |  |                 (includeBG) => { | 
					
						
							|  |  |  |                     if (includeBG) { | 
					
						
							| 
									
										
										
										
											2022-12-24 03:44:21 +01:00
										 |  |  |                         return "background=" + currentLayer.data?.id | 
					
						
							| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  |                     } else { | 
					
						
							|  |  |  |                         return null | 
					
						
							|  |  |  |                     } | 
					
						
							|  |  |  |                 }, | 
					
						
							|  |  |  |                 [currentLayer] | 
					
						
							|  |  |  |             ) | 
					
						
							|  |  |  |         ) | 
					
						
							| 
									
										
										
										
											2020-08-08 02:16:42 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-03-31 03:30:20 +02:00
										 |  |  |         const includeLayerChoices = new CheckBox(tr.fsIncludeCurrentLayers, true) | 
					
						
							| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  |         optionCheckboxes.push(includeLayerChoices) | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         optionParts.push( | 
					
						
							|  |  |  |             includeLayerChoices.GetValue().map( | 
					
						
							|  |  |  |                 (includeLayerSelection) => { | 
					
						
							|  |  |  |                     if (includeLayerSelection) { | 
					
						
							|  |  |  |                         return Utils.NoNull(state.filteredLayers.data.map(fLayerToParam)).join("&") | 
					
						
							|  |  |  |                     } else { | 
					
						
							|  |  |  |                         return null | 
					
						
							|  |  |  |                     } | 
					
						
							|  |  |  |                 }, | 
					
						
							|  |  |  |                 state.filteredLayers.data.map((flayer) => flayer.isDisplayed) | 
					
						
							|  |  |  |             ) | 
					
						
							|  |  |  |         ) | 
					
						
							| 
									
										
										
										
											2020-08-08 02:16:42 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2020-08-27 01:03:58 +02:00
										 |  |  |         const switches = [ | 
					
						
							| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  |             { urlName: "fs-userbadge", human: tr.fsUserbadge }, | 
					
						
							|  |  |  |             { urlName: "fs-search", human: tr.fsSearch }, | 
					
						
							|  |  |  |             { urlName: "fs-welcome-message", human: tr.fsWelcomeMessage }, | 
					
						
							|  |  |  |             { urlName: "fs-layers", human: tr.fsLayers }, | 
					
						
							|  |  |  |             { urlName: "fs-add-new", human: tr.fsAddNew }, | 
					
						
							|  |  |  |             { urlName: "fs-geolocation", human: tr.fsGeolocation }, | 
					
						
							| 
									
										
										
										
											2020-07-29 15:05:19 +02:00
										 |  |  |         ] | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         for (const swtch of switches) { | 
					
						
							| 
									
										
										
										
											2023-01-06 03:53:03 +01:00
										 |  |  |             const checkbox = new CheckBox(Translations.W(swtch.human)) | 
					
						
							| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  |             optionCheckboxes.push(checkbox) | 
					
						
							|  |  |  |             optionParts.push( | 
					
						
							|  |  |  |                 checkbox.GetValue().map((isEn) => { | 
					
						
							|  |  |  |                     if (isEn) { | 
					
						
							|  |  |  |                         return null | 
					
						
							|  |  |  |                     } else { | 
					
						
							|  |  |  |                         return `${swtch.urlName}=false` | 
					
						
							| 
									
										
										
										
											2020-08-22 13:02:31 +02:00
										 |  |  |                     } | 
					
						
							| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  |                 }) | 
					
						
							|  |  |  |             ) | 
					
						
							| 
									
										
										
										
											2020-07-29 15:05:19 +02:00
										 |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-07-10 12:33:37 +02:00
										 |  |  |         if (layout.definitionRaw !== undefined) { | 
					
						
							|  |  |  |             optionParts.push(new UIEventSource("userlayout=" + (layout.definedAtUrl ?? layout.id))) | 
					
						
							| 
									
										
										
										
											2022-04-18 02:39:30 +02:00
										 |  |  |         } | 
					
						
							| 
									
										
										
										
											2020-07-29 15:05:19 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-06-13 15:04:55 +02:00
										 |  |  |         const options = new Combine(optionCheckboxes).SetClass("flex flex-col") | 
					
						
							| 
									
										
										
										
											2020-08-31 13:25:13 +02:00
										 |  |  |         const url = (currentLocation ?? new UIEventSource(undefined)).map(() => { | 
					
						
							| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  |             const host = window.location.host | 
					
						
							|  |  |  |             let path = window.location.pathname | 
					
						
							|  |  |  |             path = path.substr(0, path.lastIndexOf("/")) | 
					
						
							| 
									
										
										
										
											2022-04-18 02:39:30 +02:00
										 |  |  |             let id = layout.id.toLowerCase() | 
					
						
							| 
									
										
										
										
											2022-07-10 12:33:37 +02:00
										 |  |  |             if (layout.definitionRaw !== undefined) { | 
					
						
							|  |  |  |                 id = "theme.html" | 
					
						
							| 
									
										
										
										
											2022-04-18 02:39:30 +02:00
										 |  |  |             } | 
					
						
							|  |  |  |             let literalText = `https://${host}${path}/${id}` | 
					
						
							| 
									
										
										
										
											2020-07-29 15:05:19 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-04-18 02:39:30 +02:00
										 |  |  |             let hash = "" | 
					
						
							| 
									
										
										
										
											2022-07-10 12:33:37 +02:00
										 |  |  |             if (layout.definedAtUrl === undefined && layout.definitionRaw !== undefined) { | 
					
						
							|  |  |  |                 hash = "#" + LZString.compressToBase64(Utils.MinifyJSON(layout.definitionRaw)) | 
					
						
							| 
									
										
										
										
											2022-04-18 02:39:30 +02:00
										 |  |  |             } | 
					
						
							| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  |             const parts = Utils.NoEmpty( | 
					
						
							|  |  |  |                 Utils.NoNull(optionParts.map((eventSource) => eventSource.data)) | 
					
						
							|  |  |  |             ) | 
					
						
							| 
									
										
										
										
											2020-07-29 15:05:19 +02:00
										 |  |  |             if (parts.length === 0) { | 
					
						
							| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  |                 return literalText + hash | 
					
						
							| 
									
										
										
										
											2020-07-29 15:05:19 +02:00
										 |  |  |             } | 
					
						
							| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  |             return literalText + "?" + parts.join("&") + hash | 
					
						
							|  |  |  |         }, optionParts) | 
					
						
							| 
									
										
										
										
											2020-08-31 13:25:13 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-06-13 15:04:55 +02:00
										 |  |  |         const iframeCode = new VariableUiElement( | 
					
						
							| 
									
										
										
										
											2020-07-29 15:05:19 +02:00
										 |  |  |             url.map((url) => { | 
					
						
							|  |  |  |                 return `<span class='literal-code iframe-code-block'>
 | 
					
						
							| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  |                          <iframe src="${url}" allow="geolocation" width="100%" height="100%" style="min-width: 250px; min-height: 250px" title="${ | 
					
						
							|  |  |  |                     layout.title?.txt ?? "MapComplete" | 
					
						
							| 
									
										
										
										
											2022-12-24 03:44:21 +01:00
										 |  |  |                 } with MapComplete"></iframe> | 
					
						
							| 
									
										
										
										
											2020-07-29 15:05:19 +02:00
										 |  |  |                     </span>`
 | 
					
						
							|  |  |  |             }) | 
					
						
							| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  |         ) | 
					
						
							| 
									
										
										
										
											2020-07-29 15:05:19 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  |         const linkStatus = new UIEventSource<string | Translation>("") | 
					
						
							| 
									
										
										
										
											2021-06-13 15:04:55 +02:00
										 |  |  |         const link = new VariableUiElement( | 
					
						
							| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  |             url.map( | 
					
						
							|  |  |  |                 (url) => | 
					
						
							|  |  |  |                     `<input type="text" value=" ${url}" id="code-link--copyable" style="width:90%">` | 
					
						
							|  |  |  |             ) | 
					
						
							| 
									
										
										
										
											2020-08-26 20:11:43 +02:00
										 |  |  |         ).onClick(async () => { | 
					
						
							| 
									
										
										
										
											2020-07-29 15:05:19 +02:00
										 |  |  |             const shareData = { | 
					
						
							| 
									
										
										
										
											2022-06-28 03:21:18 +02:00
										 |  |  |                 title: Translations.W(layout.title)?.ConstructElement().textContent ?? "", | 
					
						
							|  |  |  |                 text: Translations.W(layout.description)?.ConstructElement().textContent ?? "", | 
					
						
							| 
									
										
										
										
											2021-06-10 14:05:26 +02:00
										 |  |  |                 url: url.data, | 
					
						
							| 
									
										
										
										
											2020-07-29 15:05:19 +02:00
										 |  |  |             } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             function rejected() { | 
					
						
							| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  |                 const copyText = document.getElementById("code-link--copyable") | 
					
						
							| 
									
										
										
										
											2020-07-29 15:05:19 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |                 // @ts-ignore
 | 
					
						
							| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  |                 copyText.select() | 
					
						
							| 
									
										
										
										
											2020-07-29 15:05:19 +02:00
										 |  |  |                 // @ts-ignore
 | 
					
						
							| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  |                 copyText.setSelectionRange(0, 99999) /*For mobile devices*/ | 
					
						
							| 
									
										
										
										
											2020-07-29 15:05:19 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  |                 document.execCommand("copy") | 
					
						
							|  |  |  |                 const copied = tr.copiedToClipboard.Clone() | 
					
						
							| 
									
										
										
										
											2020-08-27 01:03:58 +02:00
										 |  |  |                 copied.SetClass("thanks") | 
					
						
							| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  |                 linkStatus.setData(copied) | 
					
						
							| 
									
										
										
										
											2020-07-29 15:05:19 +02:00
										 |  |  |             } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             try { | 
					
						
							| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  |                 navigator | 
					
						
							|  |  |  |                     .share(shareData) | 
					
						
							| 
									
										
										
										
											2020-07-29 15:05:19 +02:00
										 |  |  |                     .then(() => { | 
					
						
							| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  |                         const thx = tr.thanksForSharing.Clone() | 
					
						
							|  |  |  |                         thx.SetClass("thanks") | 
					
						
							|  |  |  |                         linkStatus.setData(thx) | 
					
						
							| 
									
										
										
										
											2020-07-29 15:05:19 +02:00
										 |  |  |                     }, rejected) | 
					
						
							|  |  |  |                     .catch(rejected) | 
					
						
							|  |  |  |             } catch (err) { | 
					
						
							| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  |                 rejected() | 
					
						
							| 
									
										
										
										
											2020-07-29 15:05:19 +02:00
										 |  |  |             } | 
					
						
							| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  |         }) | 
					
						
							| 
									
										
										
										
											2020-07-29 15:05:19 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  |         let downloadThemeConfig: BaseUIElement = undefined | 
					
						
							| 
									
										
										
										
											2022-07-10 12:33:37 +02:00
										 |  |  |         if (layout.definitionRaw !== undefined) { | 
					
						
							| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  |             const downloadThemeConfigAsJson = new SubtleButton( | 
					
						
							|  |  |  |                 Svg.download_svg(), | 
					
						
							|  |  |  |                 new Combine([tr.downloadCustomTheme, tr.downloadCustomThemeHelp.SetClass("subtle")]) | 
					
						
							|  |  |  |                     .onClick(() => { | 
					
						
							|  |  |  |                         Utils.offerContentsAsDownloadableFile( | 
					
						
							|  |  |  |                             layout.definitionRaw, | 
					
						
							|  |  |  |                             layout.id + ".mapcomplete-theme-definition.json", | 
					
						
							|  |  |  |                             { | 
					
						
							|  |  |  |                                 mimetype: "application/json", | 
					
						
							|  |  |  |                             } | 
					
						
							|  |  |  |                         ) | 
					
						
							|  |  |  |                     }) | 
					
						
							|  |  |  |                     .SetClass("flex flex-col") | 
					
						
							|  |  |  |             ) | 
					
						
							| 
									
										
										
										
											2022-07-10 12:33:37 +02:00
										 |  |  |             let editThemeConfig: BaseUIElement = undefined | 
					
						
							|  |  |  |             if (layout.definedAtUrl === undefined) { | 
					
						
							|  |  |  |                 const patchedDefinition = JSON.parse(layout.definitionRaw) | 
					
						
							|  |  |  |                 patchedDefinition["language"] = Object.keys(patchedDefinition.title) | 
					
						
							| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  |                 editThemeConfig = new SubtleButton( | 
					
						
							|  |  |  |                     Svg.pencil_svg(), | 
					
						
							|  |  |  |                     "Edit this theme on the custom theme generator", | 
					
						
							| 
									
										
										
										
											2022-07-10 12:33:37 +02:00
										 |  |  |                     { | 
					
						
							| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  |                         url: `https://pietervdvn.github.io/mc/legacy/070/customGenerator.html#${btoa( | 
					
						
							|  |  |  |                             JSON.stringify(patchedDefinition) | 
					
						
							|  |  |  |                         )}`,
 | 
					
						
							| 
									
										
										
										
											2022-07-10 12:33:37 +02:00
										 |  |  |                     } | 
					
						
							|  |  |  |                 ) | 
					
						
							|  |  |  |             } | 
					
						
							| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  |             downloadThemeConfig = new Combine([ | 
					
						
							|  |  |  |                 downloadThemeConfigAsJson, | 
					
						
							|  |  |  |                 editThemeConfig, | 
					
						
							|  |  |  |             ]).SetClass("flex flex-col") | 
					
						
							| 
									
										
										
										
											2022-04-18 02:39:30 +02:00
										 |  |  |         } | 
					
						
							| 
									
										
										
										
											2020-07-29 15:05:19 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2021-09-09 00:05:51 +02:00
										 |  |  |         super([ | 
					
						
							| 
									
										
										
										
											2022-04-18 02:39:30 +02:00
										 |  |  |             tr.intro, | 
					
						
							| 
									
										
										
										
											2021-06-13 15:04:55 +02:00
										 |  |  |             link, | 
					
						
							| 
									
										
										
										
											2021-09-09 00:05:51 +02:00
										 |  |  |             new VariableUiElement(linkStatus), | 
					
						
							| 
									
										
										
										
											2022-04-18 02:39:30 +02:00
										 |  |  |             downloadThemeConfig, | 
					
						
							|  |  |  |             tr.addToHomeScreen, | 
					
						
							|  |  |  |             tr.embedIntro, | 
					
						
							| 
									
										
										
										
											2021-06-13 15:04:55 +02:00
										 |  |  |             options, | 
					
						
							|  |  |  |             iframeCode, | 
					
						
							|  |  |  |         ]) | 
					
						
							|  |  |  |         this.SetClass("flex flex-col link-underline") | 
					
						
							| 
									
										
										
										
											2020-07-29 15:05:19 +02:00
										 |  |  |     } | 
					
						
							| 
									
										
										
										
											2022-09-08 21:40:48 +02:00
										 |  |  | } |