UNPKG

zpt

Version:

Zenon Page Templates - JS (ZPT-JS)

55 lines (40 loc) 1.37 kB
/* OrExpression class */ import { context } from '../../context.js'; import { evaluateHelper } from '../evaluateHelper.js'; import { expressionsUtils } from '../expressionsUtils.js'; import { boolHelper } from './boolHelper.js'; export const OrExpression = function( stringToApply, expressionListToApply ) { var string = stringToApply; var expressionList = expressionListToApply; var evaluate = function( scope ){ for ( var i = 0; i < expressionList.length; i++ ) { var expression = expressionList[ i ]; if ( evaluateHelper.evaluateBoolean( scope, expression ) ){ return true; } } return false; }; var dependsOn = function( depsDataItem, scope ){ return expressionsUtils.buildDependsOnList( depsDataItem, scope, expressionList ); }; var toString = function(){ return string; }; return { evaluate: evaluate, dependsOn: dependsOn, toString: toString }; }; OrExpression.removePrefix = true; OrExpression.getPrefix = function() { return context.getConf().orExpression; }; OrExpression.getId = OrExpression.getPrefix; OrExpression.build = function( string ) { var expressionList = boolHelper.build( string, 'Or' ); return new OrExpression( string, expressionList ); };