123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- "use strict";
- Object.defineProperty(exports, "t", {
- value: true
- });
- exports.default = exports.OrderedMapIterator = void 0;
- var _Base = _interopRequireDefault(require("./Base"));
- var _TreeIterator = _interopRequireDefault(require("./Base/TreeIterator"));
- function _interopRequireDefault(e) {
- return e && e.t ? e : {
- default: e
- };
- }
- class OrderedMapIterator extends _TreeIterator.default {
- get pointer() {
- if (this.I === this.S) {
- throw new RangeError("OrderedMap iterator access denied");
- }
- return new Proxy([], {
- get: (e, r) => {
- if (r === "0") return this.I.T; else if (r === "1") return this.I.L;
- },
- set: (e, r, t) => {
- if (r !== "1") {
- throw new TypeError("props must be 1");
- }
- this.I.L = t;
- return true;
- }
- });
- }
- copy() {
- return new OrderedMapIterator(this.I, this.S, this.iteratorType);
- }
- }
- exports.OrderedMapIterator = OrderedMapIterator;
- class OrderedMap extends _Base.default {
- constructor(e = [], r, t) {
- super(r, t);
- this.K = function*(e) {
- if (e === undefined) return;
- yield* this.K(e.U);
- yield [ e.T, e.L ];
- yield* this.K(e.J);
- };
- e.forEach((([e, r]) => this.setElement(e, r)));
- }
- begin() {
- return new OrderedMapIterator(this.S.U || this.S, this.S);
- }
- end() {
- return new OrderedMapIterator(this.S, this.S);
- }
- rBegin() {
- return new OrderedMapIterator(this.S.J || this.S, this.S, 1);
- }
- rEnd() {
- return new OrderedMapIterator(this.S, this.S, 1);
- }
- front() {
- if (!this.o) return undefined;
- const e = this.S.U;
- return [ e.T, e.L ];
- }
- back() {
- if (!this.o) return undefined;
- const e = this.S.J;
- return [ e.T, e.L ];
- }
- forEach(e) {
- let r = 0;
- for (const t of this) e(t, r++);
- }
- lowerBound(e) {
- const r = this.W(this.X, e);
- return new OrderedMapIterator(r, this.S);
- }
- upperBound(e) {
- const r = this.Y(this.X, e);
- return new OrderedMapIterator(r, this.S);
- }
- reverseLowerBound(e) {
- const r = this.Z(this.X, e);
- return new OrderedMapIterator(r, this.S);
- }
- reverseUpperBound(e) {
- const r = this.$(this.X, e);
- return new OrderedMapIterator(r, this.S);
- }
- setElement(e, r, t) {
- this.ee(e, r, t);
- }
- find(e) {
- const r = this.re(this.X, e);
- if (r !== undefined) {
- return new OrderedMapIterator(r, this.S);
- }
- return this.end();
- }
- getElementByKey(e) {
- const r = this.re(this.X, e);
- return r ? r.L : undefined;
- }
- getElementByPos(e) {
- if (e < 0 || e > this.o - 1) {
- throw new RangeError;
- }
- let r;
- let t = 0;
- for (const s of this) {
- if (t === e) {
- r = s;
- break;
- }
- t += 1;
- }
- return r;
- }
- union(e) {
- e.forEach((([e, r]) => this.setElement(e, r)));
- }
- [Symbol.iterator]() {
- return this.K(this.X);
- }
- }
- var _default = OrderedMap;
- exports.default = _default;
|