56
return null;
57
}
59
>
public current(): T | null {
60
return this._navigator.current();
61
}
63
>
public first(): T | null {
64
return this._navigator.first();
65
}
67
>
public last(): T | null {
68
return this._navigator.last();
69
}
71
>
public isFirst(): boolean {
72
return this._currentPosition() === 0;
73
}
75
>
public isLast(): boolean {
76
return this._currentPosition() >= this._elements.length - 1;
77
}
79
>
public isNowhere(): boolean {
80
return this._navigator.current() === null;
81
}
83
>
public has(t: T): boolean {
84
return this._history.has(t);
85
}
87
>
public clear(): void {
88
this._history.clear();
89
this._onChange();
90
}
92
>
private _onChange() {
93
this._reduceToLimit();
94
const elements = this._elements;
95
this._navigator = new ArrayNavigator(elements, 0, elements.length, elements.length);
96
}
98
>
private _reduceToLimit() {
99
const data = this._elements;
100
if (data.length > this._limit) {