IOTConnect-Web/node_modules/js-sdsl/dist/cjs/container/TreeContainer/OrderedMap.js

128 lines
3.1 KiB
JavaScript
Raw Normal View History

2024-05-09 01:49:52 +00:00
"use strict";
Object.defineProperty(exports, "t", {
value: true
});
exports.default = void 0;
var _Base = _interopRequireDefault(require("./Base"));
var _TreeIterator = _interopRequireDefault(require("./Base/TreeIterator"));
var _throwError = require("../../utils/throwError");
function _interopRequireDefault(r) {
return r && r.t ? r : {
default: r
};
}
class OrderedMapIterator extends _TreeIterator.default {
constructor(r, t, e, s) {
super(r, t, s);
this.container = e;
}
get pointer() {
if (this.o === this.h) {
(0, _throwError.throwIteratorAccessError)();
}
const r = this;
return new Proxy([], {
get(t, e) {
if (e === "0") return r.o.u; else if (e === "1") return r.o.l;
},
set(t, e, s) {
if (e !== "1") {
throw new TypeError("props must be 1");
}
r.o.l = s;
return true;
}
});
}
copy() {
return new OrderedMapIterator(this.o, this.h, this.container, this.iteratorType);
}
}
class OrderedMap extends _Base.default {
constructor(r = [], t, e) {
super(t, e);
const s = this;
r.forEach((function(r) {
s.setElement(r[0], r[1]);
}));
}
* K(r) {
if (r === undefined) return;
yield* this.K(r.U);
yield [ r.u, r.l ];
yield* this.K(r.W);
}
begin() {
return new OrderedMapIterator(this.h.U || this.h, this.h, this);
}
end() {
return new OrderedMapIterator(this.h, this.h, this);
}
rBegin() {
return new OrderedMapIterator(this.h.W || this.h, this.h, this, 1);
}
rEnd() {
return new OrderedMapIterator(this.h, this.h, this, 1);
}
front() {
if (this.i === 0) return;
const r = this.h.U;
return [ r.u, r.l ];
}
back() {
if (this.i === 0) return;
const r = this.h.W;
return [ r.u, r.l ];
}
lowerBound(r) {
const t = this.X(this.Y, r);
return new OrderedMapIterator(t, this.h, this);
}
upperBound(r) {
const t = this.Z(this.Y, r);
return new OrderedMapIterator(t, this.h, this);
}
reverseLowerBound(r) {
const t = this.$(this.Y, r);
return new OrderedMapIterator(t, this.h, this);
}
reverseUpperBound(r) {
const t = this.rr(this.Y, r);
return new OrderedMapIterator(t, this.h, this);
}
setElement(r, t, e) {
return this.M(r, t, e);
}
find(r) {
const t = this.I(this.Y, r);
return new OrderedMapIterator(t, this.h, this);
}
getElementByKey(r) {
const t = this.I(this.Y, r);
return t.l;
}
union(r) {
const t = this;
r.forEach((function(r) {
t.setElement(r[0], r[1]);
}));
return this.i;
}
[Symbol.iterator]() {
return this.K(this.Y);
}
}
var _default = OrderedMap;
exports.default = _default;
//# sourceMappingURL=OrderedMap.js.map