UNPKG

ngx-pluto

Version:
82 lines 8.35 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** * @license * Copyright Google LLC All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ /** * Moves an item one index in an array to another. * @template T * @param {?} array Array in which to move the item. * @param {?} fromIndex Starting index of the item. * @param {?} toIndex Index to which the item should be moved. * @return {?} */ export function moveItemInArray(array, fromIndex, toIndex) { /** @type {?} */ const from = clamp(fromIndex, array.length - 1); /** @type {?} */ const to = clamp(toIndex, array.length - 1); if (from === to) { return; } /** @type {?} */ const target = array[from]; /** @type {?} */ const delta = to < from ? -1 : 1; for (let i = from; i !== to; i += delta) { array[i] = array[i + delta]; } array[to] = target; } /** * Moves an item from one array to another. * @template T * @param {?} currentArray Array from which to transfer the item. * @param {?} targetArray Array into which to put the item. * @param {?} currentIndex Index of the item in its current array. * @param {?} targetIndex Index at which to insert the item. * @return {?} */ export function transferArrayItem(currentArray, targetArray, currentIndex, targetIndex) { /** @type {?} */ const from = clamp(currentIndex, currentArray.length - 1); /** @type {?} */ const to = clamp(targetIndex, targetArray.length); if (currentArray.length) { targetArray.splice(to, 0, currentArray.splice(from, 1)[0]); } } /** * Copies an item from one array to another, leaving it in its * original position in current array. * @template T * @param {?} currentArray Array from which to copy the item. * @param {?} targetArray Array into which is copy the item. * @param {?} currentIndex Index of the item in its current array. * @param {?} targetIndex Index at which to insert the item. * * @return {?} */ export function copyArrayItem(currentArray, targetArray, currentIndex, targetIndex) { /** @type {?} */ const to = clamp(targetIndex, targetArray.length); if (currentArray.length) { targetArray.splice(to, 0, currentArray[currentIndex]); } } /** * Clamps a number between zero and a maximum. * @param {?} value * @param {?} max * @return {?} */ function clamp(value, max) { return Math.max(0, Math.min(max, value)); } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJhZy11dGlscy5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25neC1wbHV0by8iLCJzb3VyY2VzIjpbImxpYi9kcmFnLWRyb3AvZHJhZy11dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBY0EsTUFBTSxVQUFVLGVBQWUsQ0FBVSxLQUFVLEVBQUUsU0FBaUIsRUFBRSxPQUFlOztVQUMvRSxJQUFJLEdBQUcsS0FBSyxDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQzs7VUFDekMsRUFBRSxHQUFHLEtBQUssQ0FBQyxPQUFPLEVBQUUsS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFFM0MsSUFBSSxJQUFJLEtBQUssRUFBRSxFQUFFO1FBQ2YsT0FBTztLQUNSOztVQUVLLE1BQU0sR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDOztVQUNwQixLQUFLLEdBQUcsRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFFaEMsS0FBSyxJQUFJLENBQUMsR0FBRyxJQUFJLEVBQUUsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxFQUFFO1FBQ3ZDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDO0tBQzdCO0lBRUQsS0FBSyxDQUFDLEVBQUUsQ0FBQyxHQUFHLE1BQU0sQ0FBQztBQUNyQixDQUFDOzs7Ozs7Ozs7O0FBVUQsTUFBTSxVQUFVLGlCQUFpQixDQUFVLFlBQWlCLEVBQ2pCLFdBQWdCLEVBQ2hCLFlBQW9CLEVBQ3BCLFdBQW1COztVQUN0RCxJQUFJLEdBQUcsS0FBSyxDQUFDLFlBQVksRUFBRSxZQUFZLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQzs7VUFDbkQsRUFBRSxHQUFHLEtBQUssQ0FBQyxXQUFXLEVBQUUsV0FBVyxDQUFDLE1BQU0sQ0FBQztJQUVqRCxJQUFJLFlBQVksQ0FBQyxNQUFNLEVBQUU7UUFDdkIsV0FBVyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxFQUFFLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDNUQ7QUFDSCxDQUFDOzs7Ozs7Ozs7Ozs7QUFXRCxNQUFNLFVBQVUsYUFBYSxDQUFVLFlBQWlCLEVBQ2pCLFdBQWdCLEVBQ2hCLFlBQW9CLEVBQ3BCLFdBQW1COztVQUNsRCxFQUFFLEdBQUcsS0FBSyxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsTUFBTSxDQUFDO0lBRWpELElBQUksWUFBWSxDQUFDLE1BQU0sRUFBRTtRQUN2QixXQUFXLENBQUMsTUFBTSxDQUFDLEVBQUUsRUFBRSxDQUFDLEVBQUUsWUFBWSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7S0FDdkQ7QUFDSCxDQUFDOzs7Ozs7O0FBR0QsU0FBUyxLQUFLLENBQUMsS0FBYSxFQUFFLEdBQVc7SUFDdkMsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0FBQzNDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQGxpY2Vuc2VcclxuICogQ29weXJpZ2h0IEdvb2dsZSBMTEMgQWxsIFJpZ2h0cyBSZXNlcnZlZC5cclxuICpcclxuICogVXNlIG9mIHRoaXMgc291cmNlIGNvZGUgaXMgZ292ZXJuZWQgYnkgYW4gTUlULXN0eWxlIGxpY2Vuc2UgdGhhdCBjYW4gYmVcclxuICogZm91bmQgaW4gdGhlIExJQ0VOU0UgZmlsZSBhdCBodHRwczovL2FuZ3VsYXIuaW8vbGljZW5zZVxyXG4gKi9cclxuXHJcbi8qKlxyXG4gKiBNb3ZlcyBhbiBpdGVtIG9uZSBpbmRleCBpbiBhbiBhcnJheSB0byBhbm90aGVyLlxyXG4gKiBAcGFyYW0gYXJyYXkgQXJyYXkgaW4gd2hpY2ggdG8gbW92ZSB0aGUgaXRlbS5cclxuICogQHBhcmFtIGZyb21JbmRleCBTdGFydGluZyBpbmRleCBvZiB0aGUgaXRlbS5cclxuICogQHBhcmFtIHRvSW5kZXggSW5kZXggdG8gd2hpY2ggdGhlIGl0ZW0gc2hvdWxkIGJlIG1vdmVkLlxyXG4gKi9cclxuZXhwb3J0IGZ1bmN0aW9uIG1vdmVJdGVtSW5BcnJheTxUID0gYW55PihhcnJheTogVFtdLCBmcm9tSW5kZXg6IG51bWJlciwgdG9JbmRleDogbnVtYmVyKTogdm9pZCB7XHJcbiAgY29uc3QgZnJvbSA9IGNsYW1wKGZyb21JbmRleCwgYXJyYXkubGVuZ3RoIC0gMSk7XHJcbiAgY29uc3QgdG8gPSBjbGFtcCh0b0luZGV4LCBhcnJheS5sZW5ndGggLSAxKTtcclxuXHJcbiAgaWYgKGZyb20gPT09IHRvKSB7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG5cclxuICBjb25zdCB0YXJnZXQgPSBhcnJheVtmcm9tXTtcclxuICBjb25zdCBkZWx0YSA9IHRvIDwgZnJvbSA/IC0xIDogMTtcclxuXHJcbiAgZm9yIChsZXQgaSA9IGZyb207IGkgIT09IHRvOyBpICs9IGRlbHRhKSB7XHJcbiAgICBhcnJheVtpXSA9IGFycmF5W2kgKyBkZWx0YV07XHJcbiAgfVxyXG5cclxuICBhcnJheVt0b10gPSB0YXJnZXQ7XHJcbn1cclxuXHJcblxyXG4vKipcclxuICogTW92ZXMgYW4gaXRlbSBmcm9tIG9uZSBhcnJheSB0byBhbm90aGVyLlxyXG4gKiBAcGFyYW0gY3VycmVudEFycmF5IEFycmF5IGZyb20gd2hpY2ggdG8gdHJhbnNmZXIgdGhlIGl0ZW0uXHJcbiAqIEBwYXJhbSB0YXJnZXRBcnJheSBBcnJheSBpbnRvIHdoaWNoIHRvIHB1dCB0aGUgaXRlbS5cclxuICogQHBhcmFtIGN1cnJlbnRJbmRleCBJbmRleCBvZiB0aGUgaXRlbSBpbiBpdHMgY3VycmVudCBhcnJheS5cclxuICogQHBhcmFtIHRhcmdldEluZGV4IEluZGV4IGF0IHdoaWNoIHRvIGluc2VydCB0aGUgaXRlbS5cclxuICovXHJcbmV4cG9ydCBmdW5jdGlvbiB0cmFuc2ZlckFycmF5SXRlbTxUID0gYW55PihjdXJyZW50QXJyYXk6IFRbXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldEFycmF5OiBUW10sXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjdXJyZW50SW5kZXg6IG51bWJlcixcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldEluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICBjb25zdCBmcm9tID0gY2xhbXAoY3VycmVudEluZGV4LCBjdXJyZW50QXJyYXkubGVuZ3RoIC0gMSk7XHJcbiAgY29uc3QgdG8gPSBjbGFtcCh0YXJnZXRJbmRleCwgdGFyZ2V0QXJyYXkubGVuZ3RoKTtcclxuXHJcbiAgaWYgKGN1cnJlbnRBcnJheS5sZW5ndGgpIHtcclxuICAgIHRhcmdldEFycmF5LnNwbGljZSh0bywgMCwgY3VycmVudEFycmF5LnNwbGljZShmcm9tLCAxKVswXSk7XHJcbiAgfVxyXG59XHJcblxyXG4vKipcclxuICogQ29waWVzIGFuIGl0ZW0gZnJvbSBvbmUgYXJyYXkgdG8gYW5vdGhlciwgbGVhdmluZyBpdCBpbiBpdHNcclxuICogb3JpZ2luYWwgcG9zaXRpb24gaW4gY3VycmVudCBhcnJheS5cclxuICogQHBhcmFtIGN1cnJlbnRBcnJheSBBcnJheSBmcm9tIHdoaWNoIHRvIGNvcHkgdGhlIGl0ZW0uXHJcbiAqIEBwYXJhbSB0YXJnZXRBcnJheSBBcnJheSBpbnRvIHdoaWNoIGlzIGNvcHkgdGhlIGl0ZW0uXHJcbiAqIEBwYXJhbSBjdXJyZW50SW5kZXggSW5kZXggb2YgdGhlIGl0ZW0gaW4gaXRzIGN1cnJlbnQgYXJyYXkuXHJcbiAqIEBwYXJhbSB0YXJnZXRJbmRleCBJbmRleCBhdCB3aGljaCB0byBpbnNlcnQgdGhlIGl0ZW0uXHJcbiAqXHJcbiAqL1xyXG5leHBvcnQgZnVuY3Rpb24gY29weUFycmF5SXRlbTxUID0gYW55PihjdXJyZW50QXJyYXk6IFRbXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFyZ2V0QXJyYXk6IFRbXSxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY3VycmVudEluZGV4OiBudW1iZXIsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRhcmdldEluZGV4OiBudW1iZXIpOiB2b2lkIHtcclxuICBjb25zdCB0byA9IGNsYW1wKHRhcmdldEluZGV4LCB0YXJnZXRBcnJheS5sZW5ndGgpO1xyXG5cclxuICBpZiAoY3VycmVudEFycmF5Lmxlbmd0aCkge1xyXG4gICAgdGFyZ2V0QXJyYXkuc3BsaWNlKHRvLCAwLCBjdXJyZW50QXJyYXlbY3VycmVudEluZGV4XSk7XHJcbiAgfVxyXG59XHJcblxyXG4vKiogQ2xhbXBzIGEgbnVtYmVyIGJldHdlZW4gemVybyBhbmQgYSBtYXhpbXVtLiAqL1xyXG5mdW5jdGlvbiBjbGFtcCh2YWx1ZTogbnVtYmVyLCBtYXg6IG51bWJlcik6IG51bWJlciB7XHJcbiAgcmV0dXJuIE1hdGgubWF4KDAsIE1hdGgubWluKG1heCwgdmFsdWUpKTtcclxufVxyXG4iXX0=