diff --git a/code/html/src/core.mjs b/code/html/src/core.mjs
index fde4546e..056a293f 100644
--- a/code/html/src/core.mjs
+++ b/code/html/src/core.mjs
@@ -226,3 +226,13 @@ export function assert(value, message = "") {
export function count(values, callback) {
return values.filter(callback).length;
}
+
+/**
+ * @param {string} value
+ * @returns {string}
+ */
+export function capitalize(value) {
+ return value === ""
+ ? value
+ : `${value.charAt(0).toUpperCase()}${value.slice(1)}`;
+}
diff --git a/code/html/src/schedule.mjs b/code/html/src/schedule.mjs
index 7258b642..643e689d 100644
--- a/code/html/src/schedule.mjs
+++ b/code/html/src/schedule.mjs
@@ -1,6 +1,7 @@
import { addFromTemplate, addFromTemplateWithSchema } from './template.mjs';
import { addEnumerables, groupSettingsOnAddElem, variableListeners } from './settings.mjs';
import { reportValidityForInputOrSelect } from './validate.mjs';
+import { capitalize } from './core.mjs';
/** @param {function(HTMLElement): void} callback */
function withSchedules(callback) {
@@ -54,7 +55,10 @@ function listeners() {
onValidate(value);
},
"schTypes": (_, value) => {
- addEnumerables("schType", value);
+ const tuples =
+ /** @type {import('./settings.mjs').EnumerableTuple[]} */(value);
+ addEnumerables("schType",
+ tuples.map((x) => [x[0], capitalize(x[1])]));
},
};
}
diff --git a/code/html/src/settings.mjs b/code/html/src/settings.mjs
index 63fe1120..a24cb7a1 100644
--- a/code/html/src/settings.mjs
+++ b/code/html/src/settings.mjs
@@ -1,6 +1,7 @@
import { notifyError } from './errors.mjs';
import {
count,
+ capitalize,
pageReloadIn,
showPanelByName,
} from './core.mjs';
@@ -797,9 +798,7 @@ function prepareSpanValue(span, value) {
value = value.toString();
if (value) {
- const capitalized =
- `${value.at(0).toUpperCase()}${value.slice(1)}`;
- value = span.dataset[`value${capitalized}`] ?? value;
+ value = span.dataset[`value${capitalize(value)}`] ?? value;
}
const out = [