@cute-dw/core
Version:
This TypeScript library is the main part of a more powerfull package designed for the fast WEB software development. The cornerstone of the library is the **DataStore** class, which might be useful when you need a full control of the data, but do not need
145 lines • 12.6 kB
JavaScript
var _a;
import { AbstractList } from "./AbstractList";
import { LinkedList } from "./LinkedList";
/**
* The Vector class implements a growable array of objects. Like an array, it contains components that can be accessed using an integer index.
*/
export class Vector extends AbstractList {
/*
//++ Iterator implemetation
protected get iteratorFirstItem$(): LinkedListNode<T> | null { return this._list.getHead() };
protected iteratorValue$(node: LinkedListNode<T>): T | null { return node.value; }
protected iteratorIterate$(node: LinkedListNode<T>): LinkedListNode<T> | null {
if (node && node != this._list.getTail()) {
return node.next;
}
return null;
}
//--
*/
*[Symbol.iterator]() {
yield* this._list[Symbol.iterator]();
}
constructor(capacity = 0) {
super();
this._list = new LinkedList();
this[_a] = "Vector";
if (capacity > 0) {
this.loadArray(Array(capacity).fill(null));
}
}
/**
* Returns the number of components in this vector
*/
get size() { return this._list.size; }
clone() {
const aVector = new Vector(this.size);
aVector.appendAll(this);
return aVector;
}
getNode(index) {
return this._list.getNode(index);
}
/**
* @override
*/
append(value) {
return this._list.append(value);
}
/**
* @override
*/
appendAll(collection) {
return this._list.appendAll(collection);
}
/**
* @override
*/
clear() { this._list.clear(); }
/**
* @override
*/
contains(value) {
return this._list.contains(value);
}
/**
* @override
*/
get(index) {
return this._list.get(index);
}
/**
* @override
*/
indexOf(value, fromIndex) {
return this._list.indexOf(value, fromIndex);
}
/**
* @override
*/
insert(index, value) {
return this._list.insert(index, value);
}
/**
* @override
*/
lastIndexOf(value, fromIndex) {
return this._list.lastIndexOf(value, fromIndex);
}
/**
* @override
*/
remove(value) {
return this._list.remove(value);
}
/**
* @override
*/
removeAll(collection) {
return this._list.removeAll(collection);
}
/**
* @override
*/
removeAt(index) {
return this._list.removeAt(index);
}
/**
* @override
*/
removeRange(fromIndex, toIndex) {
return this._list.removeRange(fromIndex, toIndex);
}
/**
* @override
*/
retainAll(collection) {
return this._list.retainAll(collection);
}
/**
* @override
*/
set(index, value) {
return this._list.set(index, value);
}
/**
* @override
*/
subList(fromIndex, toIndex) {
return this._list.subList(fromIndex, toIndex);
}
/**
* @override
*/
loadArray(values) {
this._list.loadArray(values);
}
/**
* @override
*/
toArray() {
return this._list.toArray();
}
}
_a = Symbol.toStringTag;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiVmVjdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY3V0ZS1jb3JlL3NyYy9saWIvY29sbGVjdGlvbnMvVmVjdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFDQSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUMsT0FBTyxFQUFFLFVBQVUsRUFBa0IsTUFBTSxjQUFjLENBQUM7QUFHMUQ7O0dBRUc7QUFDSCxNQUFNLE9BQU8sTUFBVSxTQUFRLFlBQWU7SUFHNUM7Ozs7Ozs7Ozs7O01BV0U7SUFFRixDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztRQUNoQixLQUFLLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDO0lBQ3ZDLENBQUM7SUFFRCxZQUFZLFdBQW1CLENBQUM7UUFDOUIsS0FBSyxFQUFFLENBQUM7UUFwQkEsVUFBSyxHQUFrQixJQUFJLFVBQVUsRUFBRSxDQUFDO1FBOElsRCxRQUFvQixHQUFHLFFBQVEsQ0FBQztRQXpIOUIsSUFBSSxRQUFRLEdBQUcsQ0FBQyxFQUFFO1lBQ2hCLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1NBQzVDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0gsSUFBSSxJQUFJLEtBQWEsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFFOUMsS0FBSztRQUNILE1BQU0sT0FBTyxHQUFHLElBQUksTUFBTSxDQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QyxPQUFPLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3hCLE9BQU8sT0FBTyxDQUFDO0lBQ2pCLENBQUM7SUFFRCxPQUFPLENBQUMsS0FBYTtRQUNuQixPQUFP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Q0FBQztDQUlGO0tBRkUsTUFBTSxDQUFDLFdBQVciLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDbG9uZWFibGUgfSBmcm9tIFwiLi4vdXRpbC9pbnRlcmZhY2UvQ2xvbmVhYmxlXCI7XHJcbmltcG9ydCB7IEFic3RyYWN0TGlzdCB9IGZyb20gXCIuL0Fic3RyYWN0TGlzdFwiO1xyXG5pbXBvcnQgeyBDb2xsZWN0aW9uLCBFbGVtZW50IH0gZnJvbSBcIi4vQ29sbGVjdGlvblwiO1xyXG5pbXBvcnQgeyBMaW5rZWRMaXN0LCBMaW5rZWRMaXN0Tm9kZSB9IGZyb20gXCIuL0xpbmtlZExpc3RcIjtcclxuaW1wb3J0IHsgTGlzdCB9IGZyb20gXCIuL0xpc3RcIjtcclxuXHJcbi8qKlxyXG4gKiBUaGUgVmVjdG9yIGNsYXNzIGltcGxlbWVudHMgYSBncm93YWJsZSBhcnJheSBvZiBvYmplY3RzLiBMaWtlIGFuIGFycmF5LCBpdCBjb250YWlucyBjb21wb25lbnRzIHRoYXQgY2FuIGJlIGFjY2Vzc2VkIHVzaW5nIGFuIGludGVnZXIgaW5kZXguXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgVmVjdG9yPFQ+IGV4dGVuZHMgQWJzdHJhY3RMaXN0PFQ+IGltcGxlbWVudHMgQ2xvbmVhYmxlIHtcclxuICBwcm90ZWN0ZWQgX2xpc3Q6IExpbmtlZExpc3Q8VD4gPSBuZXcgTGlua2VkTGlzdCgpO1xyXG5cclxuICAvKlxyXG4gIC8vKysgSXRlcmF0b3IgaW1wbGVtZXRhdGlvblxyXG4gIHByb3RlY3RlZCBnZXQgaXRlcmF0b3JGaXJzdEl0ZW0kKCk6IExpbmtlZExpc3ROb2RlPFQ+IHwgbnVsbCB7IHJldHVybiB0aGlzLl9saXN0LmdldEhlYWQoKSB9O1xyXG4gIHByb3RlY3RlZCBpdGVyYXRvclZhbHVlJChub2RlOiBMaW5rZWRMaXN0Tm9kZTxUPik6IFQgfCBudWxsIHsgcmV0dXJuIG5vZGUudmFsdWU7IH1cclxuICBwcm90ZWN0ZWQgaXRlcmF0b3JJdGVyYXRlJChub2RlOiBMaW5rZWRMaXN0Tm9kZTxUPik6IExpbmtlZExpc3ROb2RlPFQ+IHwgbnVsbCB7XHJcbiAgICBpZiAobm9kZSAmJiBub2RlICE9IHRoaXMuX2xpc3QuZ2V0VGFpbCgpKSB7XHJcbiAgICAgIHJldHVybiBub2RlLm5leHQ7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcbiAgLy8tLVxyXG4gICovXHJcblxyXG4gICpbU3ltYm9sLml0ZXJhdG9yXSgpOiBJdGVyYWJsZUl0ZXJhdG9yPEVsZW1lbnQ8VD4+IHtcclxuICAgIHlpZWxkKiB0aGlzLl9saXN0W1N5bWJvbC5pdGVyYXRvcl0oKTtcclxuICB9XHJcblxyXG4gIGNvbnN0cnVjdG9yKGNhcGFjaXR5OiBudW1iZXIgPSAwKSB7XHJcbiAgICBzdXBlcigpO1xyXG4gICAgaWYgKGNhcGFjaXR5ID4gMCkge1xyXG4gICAgICB0aGlzLmxvYWRBcnJheShBcnJheShjYXBhY2l0eSkuZmlsbChudWxsKSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZXR1cm5zIHRoZSBudW1iZXIgb2YgY29tcG9uZW50cyBpbiB0aGlzIHZlY3RvclxyXG4gICAqL1xyXG4gIGdldCBzaXplKCk6IG51bWJlciB7IHJldHVybiB0aGlzLl9saXN0LnNpemU7IH1cclxuXHJcbiAgY2xvbmUoKTogVmVjdG9yPFQ+IHtcclxuICAgIGNvbnN0IGFWZWN0b3IgPSBuZXcgVmVjdG9yPFQ+KHRoaXMuc2l6ZSk7XHJcbiAgICBhVmVjdG9yLmFwcGVuZEFsbCh0aGlzKTtcclxuICAgIHJldHVybiBhVmVjdG9yO1xyXG4gIH1cclxuXHJcbiAgZ2V0Tm9kZShpbmRleDogbnVtYmVyKTogUmVhZG9ubHk8TGlua2VkTGlzdE5vZGU8VD4gfCBudWxsPiB7XHJcbiAgICByZXR1cm4gdGhpcy5fbGlzdC5nZXROb2RlKGluZGV4KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQG92ZXJyaWRlXHJcbiAgICovXHJcbiAgYXBwZW5kKHZhbHVlOiBFbGVtZW50PFQ+KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fbGlzdC5hcHBlbmQodmFsdWUpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiAgQG92ZXJyaWRlXHJcbiAgICovXHJcbiAgYXBwZW5kQWxsPEUgZXh0ZW5kcyBUPihjb2xsZWN0aW9uOiBDb2xsZWN0aW9uPEU+KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fbGlzdC5hcHBlbmRBbGwoY29sbGVjdGlvbik7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEBvdmVycmlkZVxyXG4gICAqL1xyXG4gIGNsZWFyKCk6IHZvaWQgeyB0aGlzLl9saXN0LmNsZWFyKCk7IH1cclxuICAvKipcclxuICAgKiBAb3ZlcnJpZGVcclxuICAgKi9cclxuICBjb250YWlucyh2YWx1ZTogRWxlbWVudDxUPik6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2xpc3QuY29udGFpbnModmFsdWUpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBAb3ZlcnJpZGVcclxuICAgKi9cclxuICBnZXQoaW5kZXg6IG51bWJlcik6IEVsZW1lbnQ8VD4gfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuX2xpc3QuZ2V0KGluZGV4KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQG92ZXJyaWRlXHJcbiAgICovXHJcbiAgaW5kZXhPZih2YWx1ZTogRWxlbWVudDxUPiwgZnJvbUluZGV4PzogbnVtYmVyIHwgdW5kZWZpbmVkKTogbnVtYmVyIHtcclxuICAgIHJldHVybiB0aGlzLl9saXN0LmluZGV4T2YodmFsdWUsIGZyb21JbmRleCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEBvdmVycmlkZVxyXG4gICAqL1xyXG4gIGluc2VydChpbmRleDogbnVtYmVyLCB2YWx1ZTogRWxlbWVudDxUPik6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2xpc3QuaW5zZXJ0KGluZGV4LCB2YWx1ZSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEBvdmVycmlkZVxyXG4gICAqL1xyXG4gIGxhc3RJbmRleE9mKHZhbHVlOiBFbGVtZW50PFQ+LCBmcm9tSW5kZXg/OiBudW1iZXIgfCB1bmRlZmluZWQpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX2xpc3QubGFzdEluZGV4T2YodmFsdWUsIGZyb21JbmRleCk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEBvdmVycmlkZVxyXG4gICAqL1xyXG4gIHJlbW92ZSh2YWx1ZTogRWxlbWVudDxUPik6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2xpc3QucmVtb3ZlKHZhbHVlKTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQG92ZXJyaWRlXHJcbiAgICovXHJcbiAgcmVtb3ZlQWxsPEUgZXh0ZW5kcyBUPihjb2xsZWN0aW9uOiBDb2xsZWN0aW9uPEU+KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fbGlzdC5yZW1vdmVBbGwoY29sbGVjdGlvbik7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEBvdmVycmlkZVxyXG4gICAqL1xyXG4gIHJlbW92ZUF0KGluZGV4OiBudW1iZXIpOiBFbGVtZW50PFQ+IHwgdW5kZWZpbmVkIHtcclxuICAgIHJldHVybiB0aGlzLl9saXN0LnJlbW92ZUF0KGluZGV4KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQG92ZXJyaWRlXHJcbiAgICovXHJcbiAgcmVtb3ZlUmFuZ2UoZnJvbUluZGV4OiBudW1iZXIsIHRvSW5kZXg6IG51bWJlcik6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2xpc3QucmVtb3ZlUmFuZ2UoZnJvbUluZGV4LCB0b0luZGV4KTtcclxuICB9XHJcbiAgLyoqXHJcbiAgICogQG92ZXJyaWRlXHJcbiAgICovXHJcbiAgcmV0YWluQWxsPEUgZXh0ZW5kcyBUPihjb2xsZWN0aW9uOiBDb2xsZWN0aW9uPEU+KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fbGlzdC5yZXRhaW5BbGwoY29sbGVjdGlvbik7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEBvdmVycmlkZVxyXG4gICAqL1xyXG4gIHNldChpbmRleDogbnVtYmVyLCB2YWx1ZTogRWxlbWVudDxUPik6IEVsZW1lbnQ8VD4gfCB1bmRlZmluZWQge1xyXG4gICAgcmV0dXJuIHRoaXMuX2xpc3Quc2V0KGluZGV4LCB2YWx1ZSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIEBvdmVycmlkZVxyXG4gICAqL1xyXG4gIHN1Ykxpc3QoZnJvbUluZGV4OiBudW1iZXIsIHRvSW5kZXg6IG51bWJlcik6IExpc3Q8VD4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2xpc3Quc3ViTGlzdChmcm9tSW5kZXgsIHRvSW5kZXgpO1xyXG4gIH1cclxuICAvKipcclxuICAgKiBAb3ZlcnJpZGVcclxuICAgKi9cclxuICBsb2FkQXJyYXk8RSBleHRlbmRzIFQ+KHZhbHVlczogQXJyYXk8RWxlbWVudDxUPj4pOiB2b2lkIHtcclxuICAgIHRoaXMuX2xpc3QubG9hZEFycmF5KHZhbHVlcyk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAb3ZlcnJpZGVcclxuICAgKi9cclxuICB0b0FycmF5KCk6IEFycmF5PEVsZW1lbnQ8VD4+IHtcclxuICAgIHJldHVybiB0aGlzLl9saXN0LnRvQXJyYXkoKTtcclxuICB9XHJcblxyXG4gIFtTeW1ib2wudG9TdHJpbmdUYWddID0gXCJWZWN0b3JcIjtcclxuXHJcbn1cclxuIl19