UNPKG

dockview

Version:

Zero dependency layout manager supporting tabs, grids and splitviews with ReactJS support

78 lines 2.02 kB
"use strict"; 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