import Combine from "../Base/Combine"; import Attribution from "./Attribution"; import Img from "../Base/Img"; import ImageProvider from "../../Logic/ImageProviders/ImageProvider"; import BaseUIElement from "../BaseUIElement"; import {Mapillary} from "../../Logic/ImageProviders/Mapillary"; import {UIEventSource} from "../../Logic/UIEventSource"; export class AttributedImage extends Combine { constructor(imageInfo: { url: string, provider?: ImageProvider, date?: Date } ) { let img: BaseUIElement; img = new Img(imageInfo.url, false, { fallbackImage: imageInfo.provider === Mapillary.singleton ? "./assets/svg/blocked.svg" : undefined }); let attr: BaseUIElement = undefined if(imageInfo.provider !== undefined){ attr = new Attribution(UIEventSource.FromPromise( imageInfo.provider?.DownloadAttribution(imageInfo.url)), imageInfo.provider?.SourceIcon(), imageInfo.date ) } super([img, attr]); this.SetClass('block relative h-full'); } }