UNPKG

zpt

Version:

Zenon Page Templates - JS (ZPT-JS)

57 lines (42 loc) 1.43 kB
/* AndExpression class */ "use strict"; var context = require( '../../context.js' ); var evaluateHelper = require( '../evaluateHelper.js' ); var expressionsUtils = require( '../expressionsUtils.js' ); var AndExpression = 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 false; } } return true; }; var dependsOn = function( depsDataItem, scope ){ return expressionsUtils.buildDependsOnList( depsDataItem, scope, expressionList ); }; var toString = function(){ return string; }; return { evaluate: evaluate, dependsOn: dependsOn, toString: toString }; }; AndExpression.removePrefix = true; AndExpression.getPrefix = function() { return context.getConf().andExpression; }; AndExpression.getId = AndExpression.getPrefix; AndExpression.build = function( string ) { var boolHelper = require( './boolHelper.js' ); var expressionList = boolHelper.build( string, 'And' ); return new AndExpression( string, expressionList ); }; module.exports = AndExpression;