sort-array-for-drag-and-drop

Simple array sort logics to use when implements drag and drop

Downloads in past

Stats

StarsIssuesVersionUpdatedCreatedSize
sort-array-for-drag-and-drop
1.1.16 years ago6 years agoMinified + gzip package size for sort-array-for-drag-and-drop in KB

Readme

sort-array-for-drag-and-drop
npm version Build Status
Simple array sort logics to use when implements drag and drop

Installation

npm install sort-array-for-drag-and-drop

Usage

moveElement

const {moveElement} = require('sort-array-for-drag-and-drop');

const array = [
  'A',
  'B',
  'C',
];

console.log(moveElement(array, 0, 2));  // -> ['B', 'A', 'C'] (Insert `array[0]` before `array[2]`)
console.log(moveElement(array, 0, 1));  // -> ['A', 'B', 'C'] (Insert `array[0]` before `array[1]`, not moved)
console.log(moveElement(array, 0, 0));  // -> ['A', 'B', 'C'] (Not moved)
console.log(moveElement(array, 0, 3));  // -> ['B', 'C', 'A'] (In the case of an index that is exceeded, it inserts to the end)
console.log(moveElement(array, 2, 0));  // -> ['C', 'A', 'B'] (Insert `array[2]` before `array[0]`)
console.log(moveElement(array, 2, 1));  // -> ['A', 'C', 'B'] (Insert `array[2]` before `array[1]`)

moveElementByValue

const {moveElementByValue} = require('sort-array-for-drag-and-drop');

// The values must be unique
const array = [
  'A',
  'B',
  'C',
];

console.log(moveElementByValue(array, 'A', 'C'));  // -> ['B', 'A', 'C'] (Insert 'A' before 'C')
console.log(moveElementByValue(array, 'A', 'C', true));  // -> ['B', 'C', 'A'] (Insert 'A' after 'C')
console.log(moveElementByValue(array, 'D', 'C'));  // -> Error! ('D' is not included)

moveElementBy

const {moveElementBy} = require('sort-array-for-drag-and-drop');

// The values must be unique
const a = {value: 'a'};
const b = {value: 'b'};
const c = {value: 'c'};
const array = [a, b, c];

// return to compare with values
function getValue(elem) {
  return elem.value;
}

console.log(moveElementBy(array, getValue, 'A', 'C'));  // -> [B, A, C] (Insert A before C)
console.log(moveElementBy(array, getValue, 'A', 'C', true));  // -> [B, C, A] (Insert A after C)
console.log(moveElementBy(array, getValue, 'D', 'C'));  // -> Error! (D is not included)