"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.default = void 0; var Walker = /*#__PURE__*/function () { function Walker(order) { this.order = order; this.stack = []; } var _proto = Walker.prototype; _proto.visit = function visit(node, callback) { if (!node) { return; } this.stack.push(node); if (this.order === 'post') { this.children(node, callback); callback(node, this); } else { callback(node, this); this.children(node, callback); } this.stack.pop(); }; _proto.children = function children(node, callback) { switch (node.type) { case 'Block': case 'Template': return visitors.Program(this, node, callback); case 'ElementNode': return visitors.ElementNode(this, node, callback); case 'BlockStatement': return visitors.BlockStatement(this, node, callback); default: return; } }; return Walker; }(); exports.default = Walker; var visitors = { Program: function Program(walker, node, callback) { for (var i = 0; i < node.body.length; i++) { walker.visit(node.body[i], callback); } }, Template: function Template(walker, node, callback) { for (var i = 0; i < node.body.length; i++) { walker.visit(node.body[i], callback); } }, Block: function Block(walker, node, callback) { for (var i = 0; i < node.body.length; i++) { walker.visit(node.body[i], callback); } }, ElementNode: function ElementNode(walker, node, callback) { for (var i = 0; i < node.children.length; i++) { walker.visit(node.children[i], callback); } }, BlockStatement: function BlockStatement(walker, node, callback) { walker.visit(node.program, callback); walker.visit(node.inverse || null, callback); } }; //# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3N5bnRheC9saWIvdHJhdmVyc2FsL3dhbGtlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7O0lBTWMsTTtBQUVaLFdBQUEsTUFBQSxDQUFBLEtBQUEsRUFBa0M7QUFBZixTQUFBLEtBQUEsR0FBQSxLQUFBO0FBRFosU0FBQSxLQUFBLEdBQUEsRUFBQTtBQUMrQjs7OztTQUV0QyxLLEdBQUEsU0FBQSxLQUFBLENBQUEsSUFBQSxFQUFBLFFBQUEsRUFBc0U7QUFDcEUsUUFBSSxDQUFKLElBQUEsRUFBVztBQUNUO0FBQ0Q7O0FBRUQsU0FBQSxLQUFBLENBQUEsSUFBQSxDQUFBLElBQUE7O0FBRUEsUUFBSSxLQUFBLEtBQUEsS0FBSixNQUFBLEVBQTJCO0FBQ3pCLFdBQUEsUUFBQSxDQUFBLElBQUEsRUFBQSxRQUFBO0FBQ0EsTUFBQSxRQUFRLENBQUEsSUFBQSxFQUFSLElBQVEsQ0FBUjtBQUZGLEtBQUEsTUFHTztBQUNMLE1BQUEsUUFBUSxDQUFBLElBQUEsRUFBUixJQUFRLENBQVI7QUFDQSxXQUFBLFFBQUEsQ0FBQSxJQUFBLEVBQUEsUUFBQTtBQUNEOztBQUVELFNBQUEsS0FBQSxDQUFBLEdBQUE7OztTQUdGLFEsR0FBQSxTQUFBLFFBQUEsQ0FBQSxJQUFBLEVBQUEsUUFBQSxFQUV3QztBQUV0QyxZQUFRLElBQUksQ0FBWixJQUFBO0FBQ0UsV0FBQSxPQUFBO0FBQ0EsV0FBQSxVQUFBO0FBQ0UsZUFBTyxRQUFRLENBQVIsT0FBQSxDQUFBLElBQUEsRUFBQSxJQUFBLEVBQVAsUUFBTyxDQUFQOztBQUNGLFdBQUEsYUFBQTtBQUNFLGVBQU8sUUFBUSxDQUFSLFdBQUEsQ0FBQSxJQUFBLEVBQUEsSUFBQSxFQUFQLFFBQU8sQ0FBUDs7QUFDRixXQUFBLGdCQUFBO0FBQ0UsZUFBTyxRQUFRLENBQVIsY0FBQSxDQUFBLElBQUEsRUFBQSxJQUFBLEVBQVAsUUFBTyxDQUFQOztBQUNGO0FBQ0U7QUFUSjs7Ozs7OztBQWNKLElBQU0sUUFBUSxHQUFHO0FBQ2YsRUFBQSxPQURlLEVBQUEsU0FBQSxPQUFBLENBQUEsTUFBQSxFQUFBLElBQUEsRUFBQSxRQUFBLEVBQ2dFO0FBQzdFLFNBQUssSUFBSSxDQUFDLEdBQVYsQ0FBQSxFQUFnQixDQUFDLEdBQUcsSUFBSSxDQUFKLElBQUEsQ0FBcEIsTUFBQSxFQUFzQyxDQUF0QyxFQUFBLEVBQTJDO0FBQ3pDLE1BQUEsTUFBTSxDQUFOLEtBQUEsQ0FBYSxJQUFJLENBQUosSUFBQSxDQUFiLENBQWEsQ0FBYixFQUFBLFFBQUE7QUFDRDtBQUpZLEdBQUE7QUFPZixFQUFBLFFBUGUsRUFBQSxTQUFBLFFBQUEsQ0FBQSxNQUFBLEVBQUEsSUFBQSxFQUFBLFFBQUEsRUFPa0U7QUFDL0UsU0FBSyxJQUFJLENBQUMsR0FBVixDQUFBLEVBQWdCLENBQUMsR0FBRyxJQUFJLENBQUosSUFBQSxDQUFwQixNQUFBLEVBQXNDLENBQXRDLEVBQUEsRUFBMkM7QUFDekMsTUFBQSxNQUFNLENBQU4sS0FBQSxDQUFhLElBQUksQ0FBSixJQUFBLENBQWIsQ0FBYSxDQUFiLEVBQUEsUUFBQTtBQUNEO0FBVlksR0FBQTtBQWFmLEVBQUEsS0FiZSxFQUFBLFNBQUEsS0FBQSxDQUFBLE1BQUEsRUFBQSxJQUFBLEVBQUEsUUFBQSxFQWE0RDtBQUN6RSxTQUFLLElBQUksQ0FBQyxHQUFWLENBQUEsRUFBZ0IsQ0FBQyxHQUFHLElBQUksQ0FBSixJQUFBLENBQXBCLE1BQUEsRUFBc0MsQ0FBdEMsRUFBQSxFQUEyQztBQUN6QyxNQUFBLE1BQU0sQ0FBTixLQUFBLENBQWEsSUFBSSxDQUFKLElBQUEsQ0FBYixDQUFhLENBQWIsRUFBQSxRQUFBO0FBQ0Q7QUFoQlksR0FBQTtBQW1CZixFQUFBLFdBbkJlLEVBQUEsU0FBQSxXQUFBLENBQUEsTUFBQSxFQUFBLElBQUEsRUFBQSxRQUFBLEVBbUJ3RTtBQUNyRixTQUFLLElBQUksQ0FBQyxHQUFWLENBQUEsRUFBZ0IsQ0FBQyxHQUFHLElBQUksQ0FBSixRQUFBLENBQXBCLE1BQUEsRUFBMEMsQ0FBMUMsRUFBQSxFQUErQztBQUM3QyxNQUFBLE1BQU0sQ0FBTixLQUFBLENBQWEsSUFBSSxDQUFKLFFBQUEsQ0FBYixDQUFhLENBQWIsRUFBQSxRQUFBO0FBQ0Q7QUF0QlksR0FBQTtBQXlCZixFQUFBLGNBekJlLEVBQUEsU0FBQSxjQUFBLENBQUEsTUFBQSxFQUFBLElBQUEsRUFBQSxRQUFBLEVBeUIrRTtBQUM1RixJQUFBLE1BQU0sQ0FBTixLQUFBLENBQWEsSUFBSSxDQUFqQixPQUFBLEVBQUEsUUFBQTtBQUNBLElBQUEsTUFBTSxDQUFOLEtBQUEsQ0FBYSxJQUFJLENBQUosT0FBQSxJQUFiLElBQUEsRUFBQSxRQUFBO0FBQ0Q7QUE1QmMsQ0FBakIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPcHRpb24gfSBmcm9tICdAZ2xpbW1lci9pbnRlcmZhY2VzJztcblxuaW1wb3J0ICogYXMgQVNUdjEgZnJvbSAnLi4vdjEvYXBpJztcblxuZXhwb3J0IHR5cGUgTm9kZUNhbGxiYWNrPE4gZXh0ZW5kcyBBU1R2MS5Ob2RlPiA9IChub2RlOiBOLCB3YWxrZXI6IFdhbGtlcikgPT4gdm9pZDtcblxuZXhwb3J0IGRlZmF1bHQgY2xhc3MgV2Fsa2VyIHtcbiAgcHVibGljIHN0YWNrOiB1bmtub3duW10gPSBbXTtcbiAgY29uc3RydWN0b3IocHVibGljIG9yZGVyPzogdW5rbm93bikge31cblxuICB2aXNpdDxOIGV4dGVuZHMgQVNUdjEuTm9kZT4obm9kZTogT3B0aW9uPE4+LCBjYWxsYmFjazogTm9kZUNhbGxiYWNrPE4+KTogdm9pZCB7XG4gICAgaWYgKCFub2RlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5zdGFjay5wdXNoKG5vZGUpO1xuXG4gICAgaWYgKHRoaXMub3JkZXIgPT09ICdwb3N0Jykge1xuICAgICAgdGhpcy5jaGlsZHJlbihub2RlLCBjYWxsYmFjayk7XG4gICAgICBjYWxsYmFjayhub2RlLCB0aGlzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgY2FsbGJhY2sobm9kZSwgdGhpcyk7XG4gICAgICB0aGlzLmNoaWxkcmVuKG5vZGUsIGNhbGxiYWNrKTtcbiAgICB9XG5cbiAgICB0aGlzLnN0YWNrLnBvcCgpO1xuICB9XG5cbiAgY2hpbGRyZW48TiBleHRlbmRzIEFTVHYxLk5vZGU+KFxuICAgIG5vZGU6IE4gJiBBU1R2MS5Ob2RlLFxuICAgIGNhbGxiYWNrOiBOb2RlQ2FsbGJhY2s8TiAmIEFTVHYxLk5vZGU+XG4gICk6IHZvaWQge1xuICAgIHN3aXRjaCAobm9kZS50eXBlKSB7XG4gICAgICBjYXNlICdCbG9jayc6XG4gICAgICBjYXNlICdUZW1wbGF0ZSc6XG4gICAgICAgIHJldHVybiB2aXNpdG9ycy5Qcm9ncmFtKHRoaXMsIChub2RlIGFzIHVua25vd24pIGFzIEFTVHYxLlByb2dyYW0sIGNhbGxiYWNrKTtcbiAgICAgIGNhc2UgJ0VsZW1lbnROb2RlJzpcbiAgICAgICAgcmV0dXJuIHZpc2l0b3JzLkVsZW1lbnROb2RlKHRoaXMsIG5vZGUsIGNhbGxiYWNrKTtcbiAgICAgIGNhc2UgJ0Jsb2NrU3RhdGVtZW50JzpcbiAgICAgICAgcmV0dXJuIHZpc2l0b3JzLkJsb2NrU3RhdGVtZW50KHRoaXMsIG5vZGUsIGNhbGxiYWNrKTtcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIHJldHVybjtcbiAgICB9XG4gIH1cbn1cblxuY29uc3QgdmlzaXRvcnMgPSB7XG4gIFByb2dyYW0od2Fsa2VyOiBXYWxrZXIsIG5vZGU6IEFTVHYxLlByb2dyYW0sIGNhbGxiYWNrOiBOb2RlQ2FsbGJhY2s8QVNUdjEuTm9kZT4pIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5vZGUuYm9keS5sZW5ndGg7IGkrKykge1xuICAgICAgd2Fsa2VyLnZpc2l0KG5vZGUuYm9keVtpXSwgY2FsbGJhY2spO1xuICAgIH1cbiAgfSxcblxuICBUZW1wbGF0ZSh3YWxrZXI6IFdhbGtlciwgbm9kZTogQVNUdjEuVGVtcGxhdGUsIGNhbGxiYWNrOiBOb2RlQ2FsbGJhY2s8QVNUdjEuTm9kZT4pIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5vZGUuYm9keS5sZW5ndGg7IGkrKykge1xuICAgICAgd2Fsa2VyLnZpc2l0KG5vZGUuYm9keVtpXSwgY2FsbGJhY2spO1xuICAgIH1cbiAgfSxcblxuICBCbG9jayh3YWxrZXI6IFdhbGtlciwgbm9kZTogQVNUdjEuQmxvY2ssIGNhbGxiYWNrOiBOb2RlQ2FsbGJhY2s8QVNUdjEuTm9kZT4pIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5vZGUuYm9keS5sZW5ndGg7IGkrKykge1xuICAgICAgd2Fsa2VyLnZpc2l0KG5vZGUuYm9keVtpXSwgY2FsbGJhY2spO1xuICAgIH1cbiAgfSxcblxuICBFbGVtZW50Tm9kZSh3YWxrZXI6IFdhbGtlciwgbm9kZTogQVNUdjEuRWxlbWVudE5vZGUsIGNhbGxiYWNrOiBOb2RlQ2FsbGJhY2s8QVNUdjEuTm9kZT4pIHtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IG5vZGUuY2hpbGRyZW4ubGVuZ3RoOyBpKyspIHtcbiAgICAgIHdhbGtlci52aXNpdChub2RlLmNoaWxkcmVuW2ldLCBjYWxsYmFjayk7XG4gICAgfVxuICB9LFxuXG4gIEJsb2NrU3RhdGVtZW50KHdhbGtlcjogV2Fsa2VyLCBub2RlOiBBU1R2MS5CbG9ja1N0YXRlbWVudCwgY2FsbGJhY2s6IE5vZGVDYWxsYmFjazxBU1R2MS5CbG9jaz4pIHtcbiAgICB3YWxrZXIudmlzaXQobm9kZS5wcm9ncmFtLCBjYWxsYmFjayk7XG4gICAgd2Fsa2VyLnZpc2l0KG5vZGUuaW52ZXJzZSB8fCBudWxsLCBjYWxsYmFjayk7XG4gIH0sXG59IGFzIGNvbnN0O1xuIl0sInNvdXJjZVJvb3QiOiIifQ==