range-stepper
TypeScript icon, indicating that this package has built-in type declarations

1.6.0 • Public • Published

range-stepper NPM version

Build a range with current value and a step and use convenient api to manipulate with a pointer

This package can be useful for cycling through tabs, index based apps and games, slides, etc. Instead of defining and checking indexes you can instantiate this class and use convenience api.

Installation

$ npm install range-stepper

or

$ yarn add range-stepper

Usage

import RangeStepper from "range-stepper";

const stepper = new RangeStepper({ max: 16 });
stepper.next();
console.log(stepper.value); // 1

stepper.next();
console.log(stepper.value); // 2

stepper.next();
console.log(stepper.value); // 3

stepper.previous();
console.log(stepper.value); // 2

Features

const stepper = new RangeStepper({ max: 16 });
stepper.next();
console.log(stepper.value); // 1

console.log(stepper.isCurrent(1)); // true
console.log(stepper.isCurrent(5)); // false

console.log(stepper.setValue(6));
console.log(stepper.value); // 7

console.log(stepper.hasNext()); // true
console.log(stepper.setValue(16));
console.log(stepper.hasNext()); // false

console.log(stepper.setValue(5));
console.log(stepper.hasPrevious()); // true
console.log(stepper.setValue(0));
console.log(stepper.hasPrevious()); // false

console.log(stepper.setValue(16));
// uses cyclical approach
// when max is reached
// `next()` method moves a current pointer to the min value
stepper.next();
console.log(stepper.value); // 0

console.log(stepper.setValue(0));
// when current value equals to min value
// `previous()` method moves a current pointer to the max value
stepper.previous();
console.log(stepper.value); // 16

// in order to move a pointer to start value
// you can use the `first()` method
stepper.first();
console.log(stepper.value); // 0

// in order to move a pointer to start value
// you can use the `last()` method
stepper.last();
console.log(stepper.value); // 16

const obj = stepper.asObject(); // get an object representation
const clonedInstance = stepper.clone(); // get a clone
const dupInstance = stepper.dup(); // `dup` is an alias for the `clone` method

// setting the `inclusive value to false indicating that max must be greater than min
const stepper = new RangeStepper({ min: 0, max: 0, inclusive: false });
// raises `max must be greater than min`

// whether max value equal to min value
const stepper = new RangeStepper({ min: 0, max: 0 });
console.log(stepper.isSingle()); // true
const stepper = new RangeStepper({ min: 0, max: 8 });
console.log(stepper.isSingle()); // false

License

MIT © Rushan Alyautdinov

Package Sidebar

Install

npm i range-stepper

Weekly Downloads

7

Version

1.6.0

License

MIT

Unpacked Size

14.1 kB

Total Files

5

Last publish

Collaborators

  • sinventor