Support vCard 4 TZ alternate value types

This commit is contained in:
2026-03-28 20:28:22 -05:00
parent 7e933dd30f
commit 90e746abdd

View File

@@ -1342,6 +1342,19 @@ macro genPropParsers(
if valueType.isSome and valueType.get != $vtLanguageTag: if valueType.isSome and valueType.get != $vtLanguageTag:
p.error("parameter 'VALUE' must have the value '" & $vtLanguageTag & "'") p.error("parameter 'VALUE' must have the value '" & $vtLanguageTag & "'")
contents.add(ac(typeName(value: p.readTextValue))) contents.add(ac(typeName(value: p.readTextValue)))
elif pn == pnTz:
parseCase[1] = genAst(contents, typeName, p):
let valueType = params.getSingleValue("VALUE")
if valueType.isSome and
valueType.get notin [$vtText, $vtUri, $vtUtcOffset]:
p.error("parameter 'VALUE' must be one of 'text', 'uri', or 'utc-offset'")
contents.add(ac(typeName(
value:
if valueType.isSome and valueType.get in [$vtUri, $vtUtcOffset]:
p.readValue
else:
p.readTextValue)))
else: else:
parseCase[1] = genAst(contents, typeName, pt): parseCase[1] = genAst(contents, typeName, pt):
p.validateType(params, pt) p.validateType(params, pt)