// Helper for checking if the element should get rendered or not prototype(Carbon.Condition:Properties) < prototype(Neos.Fusion:Component) { node = ${node} // Comma seperated string properties = null // can be OR, AND, &&, || operator = 'AND' operator.@process.trimAndLowerCase = ${String.trim(String.toLowerCase(value))} context = Neos.Fusion:DataStructure { backend = true live = false } needAllProperties = ${this.operator == 'and' || this.operator == '&&' ? true : false} renderer = Neos.Fusion:Case { correctContext { condition = ${(props.context.live && props.node.context.live) || (props.context.backend && props.node.context.inBackend)} renderer = true } hasProperties { condition = ${Type.isString(props.properties)} renderer = Neos.Fusion:Value { array = Neos.Fusion:Map { items = ${String.split(String.replace(props.properties, ' ', ''), ',')} itemRenderer = ${q(props.node).property(item)} itemRenderer.@process { trimIfString = ${Type.isString(value) ? String.trim(String.replace(String.stripTags(value), ' ', '')) : value} returnBool = ${value ? true : false} } } value = ${props.needAllProperties ? Array.indexOf(this.array, false) == -1 : Array.indexOf(this.array, true) != -1} } } default { condition = true renderer = false } } }