import { DropDown } from "../Input/DropDown" import Translations from "../i18n/Translations" import { UIEventSource } from "../../Logic/UIEventSource" import { OsmConnection } from "../../Logic/Osm/OsmConnection" import { Translation } from "../i18n/Translation" export default class LicensePicker extends DropDown { private static readonly cc0 = "CC0" private static readonly ccbysa = "CC-BY-SA 4.0" private static readonly ccby = "CC-BY 4.0" constructor(state: { osmConnection: OsmConnection }) { super( Translations.t.image.willBePublished.Clone(), [ { value: LicensePicker.cc0, shown: Translations.t.image.cco.Clone() }, { value: LicensePicker.ccbysa, shown: Translations.t.image.ccbs.Clone() }, { value: LicensePicker.ccby, shown: Translations.t.image.ccb.Clone() }, ], state?.osmConnection?.GetPreference("pictures-license") ?? new UIEventSource("CC0"), { select_class: "w-min bg-indigo-100 p-1 rounded hover:bg-indigo-200", } ) this.SetClass("flex flex-col sm:flex-row").SetStyle("float:left") } public static LicenseExplanations(): Map { let dict = new Map() dict.set(LicensePicker.cc0, Translations.t.image.ccoExplanation) dict.set(LicensePicker.ccby, Translations.t.image.ccbExplanation) dict.set(LicensePicker.ccbysa, Translations.t.image.ccbsExplanation) return dict } }