From 362716bb7f669eb7e85e658e52bec7c6a82676a2 Mon Sep 17 00:00:00 2001 From: Volker Schukai <volker.schukai@schukai.com> Date: Sat, 2 Mar 2024 17:14:59 +0100 Subject: [PATCH] feat: #162 --- source/data/transformer.mjs | 34 +++++++++++++++++++++++++++++++++- 1 file changed, 33 insertions(+), 1 deletion(-) diff --git a/source/data/transformer.mjs b/source/data/transformer.mjs index 434c425f7..9580e33a1 100644 --- a/source/data/transformer.mjs +++ b/source/data/transformer.mjs @@ -775,7 +775,39 @@ function transform(value) { defaultValue = convertSpecialStrings(defaultValue, value); return translations.getText(key, defaultValue); - + + case "set-toggle": + case "set-set": + case "set-remove": + let modifier = args.shift(); + let delimiter = args.shift(); + if (delimiter === undefined) { + delimiter = " "; + } + + const set = new Set(value.split(delimiter)); + const toggle = new Set(modifier.split(delimiter)); + if (this.command === "set-toggle") { + for (const t of toggle) { + if (set.has(t)) { + set.delete(t); + } else { + set.add(t); + } + } + } else if (this.command === "set-set") { + for (const t of toggle) { + set.add(t); + } + } else if (this.command === "set-remove") { + for (const t of toggle) { + set.delete(t); + } + } + return Array.from(set).join(delimiter); + + + default: throw new Error(`unknown command ${this.command}`); } -- GitLab