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; }(); export { Walker as default }; 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,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL0BnbGltbWVyL3N5bnRheC9saWIvdHJhdmVyc2FsL3dhbGtlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiSUFNYyxNO0FBRVosa0JBQUEsS0FBQSxFQUFrQztBQUFmLFNBQUEsS0FBQSxHQUFBLEtBQUE7QUFEWixTQUFBLEtBQUEsR0FBQSxFQUFBO0FBQytCOzs7O1NBRXRDLEssR0FBQSxlQUFLLElBQUwsRUFBSyxRQUFMLEVBQXNFO0FBQ3BFLFFBQUksQ0FBSixJQUFBLEVBQVc7QUFDVDtBQUNEOztBQUVELFNBQUEsS0FBQSxDQUFBLElBQUEsQ0FBQSxJQUFBOztBQUVBLFFBQUksS0FBQSxLQUFBLEtBQUosTUFBQSxFQUEyQjtBQUN6QixXQUFBLFFBQUEsQ0FBQSxJQUFBLEVBQUEsUUFBQTtBQUNBLE1BQUEsUUFBUSxDQUFBLElBQUEsRUFBUixJQUFRLENBQVI7QUFGRixLQUFBLE1BR087QUFDTCxNQUFBLFFBQVEsQ0FBQSxJQUFBLEVBQVIsSUFBUSxDQUFSO0FBQ0EsV0FBQSxRQUFBLENBQUEsSUFBQSxFQUFBLFFBQUE7QUFDRDs7QUFFRCxTQUFBLEtBQUEsQ0FBQSxHQUFBO0FBQ0QsRzs7U0FFRCxRLEdBQUEsa0JBQVEsSUFBUixFQUFRLFFBQVIsRUFFd0M7QUFFdEMsWUFBUSxJQUFJLENBQVosSUFBQTtBQUNFLFdBQUEsT0FBQTtBQUNBLFdBQUEsVUFBQTtBQUNFLGVBQU8sUUFBUSxDQUFSLE9BQUEsQ0FBQSxJQUFBLEVBQUEsSUFBQSxFQUFQLFFBQU8sQ0FBUDs7QUFDRixXQUFBLGFBQUE7QUFDRSxlQUFPLFFBQVEsQ0FBUixXQUFBLENBQUEsSUFBQSxFQUFBLElBQUEsRUFBUCxRQUFPLENBQVA7O0FBQ0YsV0FBQSxnQkFBQTtBQUNFLGVBQU8sUUFBUSxDQUFSLGNBQUEsQ0FBQSxJQUFBLEVBQUEsSUFBQSxFQUFQLFFBQU8sQ0FBUDs7QUFDRjtBQUNFO0FBVEo7QUFXRCxHOzs7OztTQXJDVyxNO0FBd0NkLElBQU0sUUFBUSxHQUFHO0FBQ2YsRUFBQSxPQURlLG1CQUNSLE1BRFEsRUFDUixJQURRLEVBQ1IsUUFEUSxFQUNnRTtBQUM3RSxTQUFLLElBQUksQ0FBQyxHQUFWLENBQUEsRUFBZ0IsQ0FBQyxHQUFHLElBQUksQ0FBSixJQUFBLENBQXBCLE1BQUEsRUFBc0MsQ0FBdEMsRUFBQSxFQUEyQztBQUN6QyxNQUFBLE1BQU0sQ0FBTixLQUFBLENBQWEsSUFBSSxDQUFKLElBQUEsQ0FBYixDQUFhLENBQWIsRUFBQSxRQUFBO0FBQ0Q7QUFKWSxHQUFBO0FBT2YsRUFBQSxRQVBlLG9CQU9QLE1BUE8sRUFPUCxJQVBPLEVBT1AsUUFQTyxFQU9rRTtBQUMvRSxTQUFLLElBQUksQ0FBQyxHQUFWLENBQUEsRUFBZ0IsQ0FBQyxHQUFHLElBQUksQ0FBSixJQUFBLENBQXBCLE1BQUEsRUFBc0MsQ0FBdEMsRUFBQSxFQUEyQztBQUN6QyxNQUFBLE1BQU0sQ0FBTixLQUFBLENBQWEsSUFBSSxDQUFKLElBQUEsQ0FBYixDQUFhLENBQWIsRUFBQSxRQUFBO0FBQ0Q7QUFWWSxHQUFBO0FBYWYsRUFBQSxLQWJlLGlCQWFWLE1BYlUsRUFhVixJQWJVLEVBYVYsUUFiVSxFQWE0RDtBQUN6RSxTQUFLLElBQUksQ0FBQyxHQUFWLENBQUEsRUFBZ0IsQ0FBQyxHQUFHLElBQUksQ0FBSixJQUFBLENBQXBCLE1BQUEsRUFBc0MsQ0FBdEMsRUFBQSxFQUEyQztBQUN6QyxNQUFBLE1BQU0sQ0FBTixLQUFBLENBQWEsSUFBSSxDQUFKLElBQUEsQ0FBYixDQUFhLENBQWIsRUFBQSxRQUFBO0FBQ0Q7QUFoQlksR0FBQTtBQW1CZixFQUFBLFdBbkJlLHVCQW1CSixNQW5CSSxFQW1CSixJQW5CSSxFQW1CSixRQW5CSSxFQW1Cd0U7QUFDckYsU0FBSyxJQUFJLENBQUMsR0FBVixDQUFBLEVBQWdCLENBQUMsR0FBRyxJQUFJLENBQUosUUFBQSxDQUFwQixNQUFBLEVBQTBDLENBQTFDLEVBQUEsRUFBK0M7QUFDN0MsTUFBQSxNQUFNLENBQU4sS0FBQSxDQUFhLElBQUksQ0FBSixRQUFBLENBQWIsQ0FBYSxDQUFiLEVBQUEsUUFBQTtBQUNEO0FBdEJZLEdBQUE7QUF5QmYsRUFBQSxjQXpCZSwwQkF5QkQsTUF6QkMsRUF5QkQsSUF6QkMsRUF5QkQsUUF6QkMsRUF5QitFO0FBQzVGLElBQUEsTUFBTSxDQUFOLEtBQUEsQ0FBYSxJQUFJLENBQWpCLE9BQUEsRUFBQSxRQUFBO0FBQ0EsSUFBQSxNQUFNLENBQU4sS0FBQSxDQUFhLElBQUksQ0FBSixPQUFBLElBQWIsSUFBQSxFQUFBLFFBQUE7QUFDRDtBQTVCYyxDQUFqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9wdGlvbiB9IGZyb20gJ0BnbGltbWVyL2ludGVyZmFjZXMnO1xuXG5pbXBvcnQgKiBhcyBBU1R2MSBmcm9tICcuLi92MS9hcGknO1xuXG5leHBvcnQgdHlwZSBOb2RlQ2FsbGJhY2s8TiBleHRlbmRzIEFTVHYxLk5vZGU+ID0gKG5vZGU6IE4sIHdhbGtlcjogV2Fsa2VyKSA9PiB2b2lkO1xuXG5leHBvcnQgZGVmYXVsdCBjbGFzcyBXYWxrZXIge1xuICBwdWJsaWMgc3RhY2s6IHVua25vd25bXSA9IFtdO1xuICBjb25zdHJ1Y3RvcihwdWJsaWMgb3JkZXI/OiB1bmtub3duKSB7fVxuXG4gIHZpc2l0PE4gZXh0ZW5kcyBBU1R2MS5Ob2RlPihub2RlOiBPcHRpb248Tj4sIGNhbGxiYWNrOiBOb2RlQ2FsbGJhY2s8Tj4pOiB2b2lkIHtcbiAgICBpZiAoIW5vZGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLnN0YWNrLnB1c2gobm9kZSk7XG5cbiAgICBpZiAodGhpcy5vcmRlciA9PT0gJ3Bvc3QnKSB7XG4gICAgICB0aGlzLmNoaWxkcmVuKG5vZGUsIGNhbGxiYWNrKTtcbiAgICAgIGNhbGxiYWNrKG5vZGUsIHRoaXMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBjYWxsYmFjayhub2RlLCB0aGlzKTtcbiAgICAgIHRoaXMuY2hpbGRyZW4obm9kZSwgY2FsbGJhY2spO1xuICAgIH1cblxuICAgIHRoaXMuc3RhY2sucG9wKCk7XG4gIH1cblxuICBjaGlsZHJlbjxOIGV4dGVuZHMgQVNUdjEuTm9kZT4oXG4gICAgbm9kZTogTiAmIEFTVHYxLk5vZGUsXG4gICAgY2FsbGJhY2s6IE5vZGVDYWxsYmFjazxOICYgQVNUdjEuTm9kZT5cbiAgKTogdm9pZCB7XG4gICAgc3dpdGNoIChub2RlLnR5cGUpIHtcbiAgICAgIGNhc2UgJ0Jsb2NrJzpcbiAgICAgIGNhc2UgJ1RlbXBsYXRlJzpcbiAgICAgICAgcmV0dXJuIHZpc2l0b3JzLlByb2dyYW0odGhpcywgKG5vZGUgYXMgdW5rbm93bikgYXMgQVNUdjEuUHJvZ3JhbSwgY2FsbGJhY2spO1xuICAgICAgY2FzZSAnRWxlbWVudE5vZGUnOlxuICAgICAgICByZXR1cm4gdmlzaXRvcnMuRWxlbWVudE5vZGUodGhpcywgbm9kZSwgY2FsbGJhY2spO1xuICAgICAgY2FzZSAnQmxvY2tTdGF0ZW1lbnQnOlxuICAgICAgICByZXR1cm4gdmlzaXRvcnMuQmxvY2tTdGF0ZW1lbnQodGhpcywgbm9kZSwgY2FsbGJhY2spO1xuICAgICAgZGVmYXVsdDpcbiAgICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxufVxuXG5jb25zdCB2aXNpdG9ycyA9IHtcbiAgUHJvZ3JhbSh3YWxrZXI6IFdhbGtlciwgbm9kZTogQVNUdjEuUHJvZ3JhbSwgY2FsbGJhY2s6IE5vZGVDYWxsYmFjazxBU1R2MS5Ob2RlPikge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbm9kZS5ib2R5Lmxlbmd0aDsgaSsrKSB7XG4gICAgICB3YWxrZXIudmlzaXQobm9kZS5ib2R5W2ldLCBjYWxsYmFjayk7XG4gICAgfVxuICB9LFxuXG4gIFRlbXBsYXRlKHdhbGtlcjogV2Fsa2VyLCBub2RlOiBBU1R2MS5UZW1wbGF0ZSwgY2FsbGJhY2s6IE5vZGVDYWxsYmFjazxBU1R2MS5Ob2RlPikge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbm9kZS5ib2R5Lmxlbmd0aDsgaSsrKSB7XG4gICAgICB3YWxrZXIudmlzaXQobm9kZS5ib2R5W2ldLCBjYWxsYmFjayk7XG4gICAgfVxuICB9LFxuXG4gIEJsb2NrKHdhbGtlcjogV2Fsa2VyLCBub2RlOiBBU1R2MS5CbG9jaywgY2FsbGJhY2s6IE5vZGVDYWxsYmFjazxBU1R2MS5Ob2RlPikge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbm9kZS5ib2R5Lmxlbmd0aDsgaSsrKSB7XG4gICAgICB3YWxrZXIudmlzaXQobm9kZS5ib2R5W2ldLCBjYWxsYmFjayk7XG4gICAgfVxuICB9LFxuXG4gIEVsZW1lbnROb2RlKHdhbGtlcjogV2Fsa2VyLCBub2RlOiBBU1R2MS5FbGVtZW50Tm9kZSwgY2FsbGJhY2s6IE5vZGVDYWxsYmFjazxBU1R2MS5Ob2RlPikge1xuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbm9kZS5jaGlsZHJlbi5sZW5ndGg7IGkrKykge1xuICAgICAgd2Fsa2VyLnZpc2l0KG5vZGUuY2hpbGRyZW5baV0sIGNhbGxiYWNrKTtcbiAgICB9XG4gIH0sXG5cbiAgQmxvY2tTdGF0ZW1lbnQod2Fsa2VyOiBXYWxrZXIsIG5vZGU6IEFTVHYxLkJsb2NrU3RhdGVtZW50LCBjYWxsYmFjazogTm9kZUNhbGxiYWNrPEFTVHYxLkJsb2NrPikge1xuICAgIHdhbGtlci52aXNpdChub2RlLnByb2dyYW0sIGNhbGxiYWNrKTtcbiAgICB3YWxrZXIudmlzaXQobm9kZS5pbnZlcnNlIHx8IG51bGwsIGNhbGxiYWNrKTtcbiAgfSxcbn0gYXMgY29uc3Q7XG4iXSwic291cmNlUm9vdCI6IiJ9