dockview
Version:
Zero dependency layout manager supporting tabs, grids and splitviews with ReactJS support
78 lines • 2.02 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.firstIndex = exports.range = exports.pushToEnd = exports.pushToStart = exports.sequenceEquals = exports.last = exports.tail = void 0;
function tail(arr) {
if (arr.length === 0) {
throw new Error('Invalid tail call');
}
return [arr.slice(0, arr.length - 1), arr[arr.length - 1]];
}
exports.tail = tail;
function last(arr) {
return arr.length > 0 ? arr[arr.length - 1] : undefined;
}
exports.last = last;
function sequenceEquals(arr1, arr2) {
if (arr1.length !== arr2.length) {
return false;
}
for (var i = 0; i < arr1.length; i++) {
if (arr1[i] !== arr2[i]) {
return false;
}
}
return true;
}
exports.sequenceEquals = sequenceEquals;
/**
* Pushes an element to the start of the array, if found.
*/
function pushToStart(arr, value) {
var index = arr.indexOf(value);
if (index > -1) {
arr.splice(index, 1);
arr.unshift(value);
}
}
exports.pushToStart = pushToStart;
/**
* Pushes an element to the end of the array, if found.
*/
function pushToEnd(arr, value) {
var index = arr.indexOf(value);
if (index > -1) {
arr.splice(index, 1);
arr.push(value);
}
}
exports.pushToEnd = pushToEnd;
var range = function (from, to) {
var result = [];
if (typeof to !== 'number') {
to = from;
from = 0;
}
if (from <= to) {
for (var i = from; i < to; i++) {
result.push(i);
}
}
else {
for (var i = from; i > to; i--) {
result.push(i);
}
}
return result;
};
exports.range = range;
function firstIndex(array, fn) {
for (var i = 0; i < array.length; i++) {
var element = array[i];
if (fn(element)) {
return i;
}
}
return -1;
}
exports.firstIndex = firstIndex;
//# sourceMappingURL=array.js.map