Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

item-selection

Package Overview
Dependencies
Maintainers
1
Versions
6
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

item-selection

Manage item multi-selections.

  • 1.2.2
  • latest
  • Source
  • npm
  • Socket score

Version published
Weekly downloads
319
decreased by-55.82%
Maintainers
1
Weekly downloads
 
Created
Source

item-selection

Manage multi-<select> style selections in arrays.

Usage

Demo - Demo source code

import itemSelection from 'item-selection'

const sourceList = [ 'a', 'b', 'c', 'd' ]

let selection = itemSelection(sourceList)

// Methods behave similarly to selection operations in a <select multiple>, or
// eg. your average file manager:

selection = selection.select(0) // like clicking
selection.get() // ['a']
selection = selection.selectRange(2) // like shift+clicking
selection.get() // ['a', 'b', 'c']
selection = selection.selectToggle(1) // like ctrl+clicking
selection.get() // ['a', 'c']

An itemSelection is immutable by default, i.e. it returns a new selection object. Use import itemSelection from 'item-selection/mutable' if you want to mutate the current selection object instead.

API

selection = itemSelection(sourceList)

Creates a new selection manager object.

All mutation methods return a new selection manager object by default. If you want to mutate and reuse the same object, use import itemSelection from 'item-selection/mutable'.

selection = selection.select(index)

Creates a selection with just the item at the given index selected. Akin to clicking an item in a <select multiple> element.

If you want to add an item to the selection, use selection.add(index) instead.

Also sets the initial range index to index.

selection = selection.deselect(index)

Deselects the item at index.

selection = selection.selectToggle(index)

Selects or deselects the item at index. Akin to Ctrl+clicking.

Also sets the initial range index to index if a new item was selected. Otherwise, unsets the initial range index.

selection = selection.selectRange(start, end)

Selects the given range. Inclusive. (NB: That's different from what Array.slice does!)

selection = selection.selectRange(index)

Selects a range based on the initial range index and the index. Akin to Shift+clicking. Previously selected items that fall outside the range will be deselected.

If the initial range index was not set using select(index) or selectToggle(index), selectRange only selects the given index.

selection = selection.selectAll()

Adds all items to the selection.

selection = selection.add(index)

Adds the item at index to the selection.

Also sets the initial range index to index.

selection = selection.remove(index)

Removes the item at index from the selection.

selection = selection.clear()

Deselect all items.

selectedItems = selection.get()

Get an array of the selected items.

selectedIndices = selection.getIndices()

Get an array of the selected indices.

selection = selection.set(indices)

Set a custom array of selected indices.

Licence

MIT

Keywords

FAQs

Package last updated on 04 Dec 2019

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc