#362 - additional operators

This commit is contained in:
Elio Struyf
2022-11-12 18:11:24 +01:00
parent 32182c3df0
commit 7a46729a46
4 changed files with 77 additions and 17 deletions
+69
View File
@@ -0,0 +1,69 @@
import { Field, WhenOperator } from "../models";
import { IMetadata } from "../panelWebView/components/Metadata";
export const fieldWhenClause = (field: Field, parent: IMetadata): boolean => {
const when = field.when;
if (!when) {
return true;
}
const whenValue = parent[when.fieldRef];
switch (when.operator) {
case WhenOperator.equals:
if (whenValue !== when.value) {
return false;
}
break;
case WhenOperator.notEquals:
if (whenValue === when.value) {
return false;
}
break;
case WhenOperator.contains:
if ((typeof whenValue === "string" || whenValue instanceof Array) && !whenValue.includes(when.value)) {
return false;
}
break;
case WhenOperator.notContains:
if ((typeof whenValue === "string" || whenValue instanceof Array) && whenValue.includes(when.value)) {
return false;
}
break;
case WhenOperator.startsWith:
if (typeof whenValue === "string" && !whenValue.startsWith(when.value)) {
return false;
}
break;
case WhenOperator.endsWith:
if (typeof whenValue === "string" && !whenValue.endsWith(when.value)) {
return false;
}
break;
case WhenOperator.greaterThan:
if (typeof whenValue === "number" && whenValue <= when.value) {
return false;
}
break;
case WhenOperator.greaterThanOrEqual:
if (typeof whenValue === "number" && whenValue < when.value) {
return false;
}
break;
case WhenOperator.lessThan:
if (typeof whenValue === "number" && whenValue >= when.value) {
return false;
}
break;
case WhenOperator.lessThanOrEqual:
if (typeof whenValue === "number" && whenValue > when.value) {
return false;
}
break;
default:
break;
}
return true;
}
+1
View File
@@ -1,5 +1,6 @@
export * from './copyFileAsync';
export * from './existsAsync';
export * from './fieldWhenClause';
export * from './mkdirAsync';
export * from './readFileAsync';
export * from './readdirAsync';