",
"",
"",
- ``
+ ``,
+ "",
],
invalid: [
...rule.interactiveRoles.flatMap((role) =>
diff --git a/src/utils/getAttributeValue.ts b/src/utils/getAttributeValue.ts
index 0378ff36..e64e0d49 100644
--- a/src/utils/getAttributeValue.ts
+++ b/src/utils/getAttributeValue.ts
@@ -15,6 +15,22 @@ function getAttributeValue(node: AST.VAttribute | AST.VDirective) {
return node.value.expression.value;
}
+ if (node.value.expression.type === 'LogicalExpression') {
+ const operator = node.value.expression.operator;
+ let leftSideOfOperation;
+ let rightSideOfOperation;
+
+ if (node.value.expression.left.type === 'Literal') {
+ leftSideOfOperation = node.value.expression.left.value;
+ }
+
+ if (node.value.expression.right.type === 'Literal') {
+ rightSideOfOperation = node.value.expression.right.value;
+ }
+
+ return eval(`${leftSideOfOperation} ${operator} ${rightSideOfOperation}`);
+ }
+
// TODO we're effectively using this as just a placeholder to let rules know
// that a value has been passed in for this attribute. We should replace
// this with a stronger API to either explicitly handle all of the different