var __extends = this && this.t || function() { var extendStatics = function(r, t) { extendStatics = Object.setPrototypeOf || { __proto__: [] } instanceof Array && function(r, t) { r.__proto__ = t; } || function(r, t) { for (var e in t) if (Object.prototype.hasOwnProperty.call(t, e)) r[e] = t[e]; }; return extendStatics(r, t); }; return function(r, t) { if (typeof t !== "function" && t !== null) throw new TypeError("Class extends value " + String(t) + " is not a constructor or null"); extendStatics(r, t); function __() { this.constructor = r; } r.prototype = t === null ? Object.create(t) : (__.prototype = t.prototype, new __); }; }(); import { ContainerIterator } from "../../ContainerBase"; import { throwIteratorAccessError } from "../../../utils/throwError"; var TreeIterator = function(r) { __extends(TreeIterator, r); function TreeIterator(t, e, i) { var n = r.call(this, i) || this; n.o = t; n.h = e; if (n.iteratorType === 0) { n.pre = function() { if (this.o === this.h.K) { throwIteratorAccessError(); } this.o = this.o.L(); return this; }; n.next = function() { if (this.o === this.h) { throwIteratorAccessError(); } this.o = this.o.m(); return this; }; } else { n.pre = function() { if (this.o === this.h.N) { throwIteratorAccessError(); } this.o = this.o.m(); return this; }; n.next = function() { if (this.o === this.h) { throwIteratorAccessError(); } this.o = this.o.L(); return this; }; } return n; } Object.defineProperty(TreeIterator.prototype, "index", { get: function() { var r = this.o; var t = this.h.rr; if (r === this.h) { if (t) { return t.tr - 1; } return 0; } var e = 0; if (r.K) { e += r.K.tr; } while (r !== t) { var i = r.rr; if (r === i.N) { e += 1; if (i.K) { e += i.K.tr; } } r = i; } return e; }, enumerable: false, configurable: true }); return TreeIterator; }(ContainerIterator); export default TreeIterator; //# sourceMappingURL=TreeIterator.js.map