diff --git a/src/public/app/widgets/type_widgets/options/code_notes/code_auto_read_only_size.js b/src/public/app/widgets/type_widgets/options/code_notes/code_auto_read_only_size.ts similarity index 83% rename from src/public/app/widgets/type_widgets/options/code_notes/code_auto_read_only_size.js rename to src/public/app/widgets/type_widgets/options/code_notes/code_auto_read_only_size.ts index 6772419d5..dc414b396 100644 --- a/src/public/app/widgets/type_widgets/options/code_notes/code_auto_read_only_size.js +++ b/src/public/app/widgets/type_widgets/options/code_notes/code_auto_read_only_size.ts @@ -1,3 +1,4 @@ +import type { OptionMap } from "../../../../../../services/options_interface.js"; import { t } from "../../../../services/i18n.js"; import OptionsWidget from "../options_widget.js"; @@ -14,13 +15,16 @@ const TPL = ` `; export default class CodeAutoReadOnlySizeOptions extends OptionsWidget { + + private $autoReadonlySizeCode!: JQuery; + doRender() { this.$widget = $(TPL); this.$autoReadonlySizeCode = this.$widget.find(".auto-readonly-size-code"); this.$autoReadonlySizeCode.on("change", () => this.updateOption("autoReadonlySizeCode", this.$autoReadonlySizeCode.val())); } - async optionsLoaded(options) { + async optionsLoaded(options: OptionMap) { this.$autoReadonlySizeCode.val(options.autoReadonlySizeCode); } } diff --git a/src/public/app/widgets/type_widgets/options/code_notes/code_mime_types.js b/src/public/app/widgets/type_widgets/options/code_notes/code_mime_types.ts similarity index 56% rename from src/public/app/widgets/type_widgets/options/code_notes/code_mime_types.js rename to src/public/app/widgets/type_widgets/options/code_notes/code_mime_types.ts index 17dcf17f1..af55aba65 100644 --- a/src/public/app/widgets/type_widgets/options/code_notes/code_mime_types.js +++ b/src/public/app/widgets/type_widgets/options/code_notes/code_mime_types.ts @@ -1,11 +1,12 @@ import { t } from "../../../../services/i18n.js"; import OptionsWidget from "../options_widget.js"; import mimeTypesService from "../../../../services/mime_types.js"; +import type { OptionMap } from "../../../../../../services/options_interface.js"; const TPL = `

${t("code_mime_types.title")}

- +
@@ -19,9 +20,17 @@ const TPL = ` let idCtr = 1; // global, since this can be shown in multiple dialogs -function groupMimeTypesAlphabetically(ungroupedMimeTypes) { - const result = {}; - ungroupedMimeTypes = ungroupedMimeTypes.toSorted((a, b) => a.title > b.title); +interface MimeType { + title: string; + mime: string; + enabled: boolean; +} + +type GroupedMimes = Record; + +function groupMimeTypesAlphabetically(ungroupedMimeTypes: MimeType[]) { + const result: GroupedMimes = {}; + ungroupedMimeTypes = ungroupedMimeTypes.toSorted((a, b) => a.title.localeCompare(b.title)); for (const mimeType of ungroupedMimeTypes) { const initial = mimeType.title.charAt(0).toUpperCase(); @@ -33,22 +42,16 @@ function groupMimeTypesAlphabetically(ungroupedMimeTypes) { return result; } -function buildSelectionForMimeType(mimeType) { - const id = "code-mime-type-" + idCtr++; - return $("
  • ") - .append($('').attr("id", id).attr("data-mime-type", mimeType.mime).prop("checked", mimeType.enabled)) - .on("change", () => this.save()) - .append("   ") - .append($("