var SetTreeVisibilityVisitor = function(visible) {
this.visible = visible;
}; SetTreeVisibilityVisitor.prototype.run = function(root) {
this.visit(root);
}; SetTreeVisibilityVisitor.prototype.visitArray = function(nodes) {
if (!nodes) { return nodes; } var cnt = nodes.length, i; for (i = 0; i < cnt; i++) { this.visit(nodes[i]); } return nodes;
}; SetTreeVisibilityVisitor.prototype.visit = function(node) {
if (!node) { return node; } if (node.constructor === Array) { return this.visitArray(node); } if (!node.blocksVisibility || node.blocksVisibility()) { return node; } if (this.visible) { node.ensureVisibility(); } else { node.ensureInvisibility(); } node.accept(this); return node;
}; module.exports = SetTreeVisibilityVisitor;