27 lines
522 B
JavaScript
27 lines
522 B
JavaScript
export default class OptionMap extends Map {
|
|
first;
|
|
constructor(options) {
|
|
const items = [];
|
|
let firstItem;
|
|
let previous;
|
|
let index = 0;
|
|
for (const option of options) {
|
|
const item = {
|
|
...option,
|
|
previous,
|
|
next: undefined,
|
|
index,
|
|
};
|
|
if (previous) {
|
|
previous.next = item;
|
|
}
|
|
firstItem ||= item;
|
|
items.push([option.value, item]);
|
|
index++;
|
|
previous = item;
|
|
}
|
|
super(items);
|
|
this.first = firstItem;
|
|
}
|
|
}
|