Giter Site home page Giter Site logo

pazzaz / atom-select-list Goto Github PK

View Code? Open in Web Editor NEW

This project forked from atom/atom-select-list

0.0 2.0 0.0 42 KB

An etch component to show select lists with fuzzy filtering, keyboard navigation and other cool features.

License: MIT License

JavaScript 100.00%

atom-select-list's Introduction

atom-select-list

This module is an etch component that can be used in Atom packages to show a select list with fuzzy filtering, keyboard/mouse navigation and other cool features.

Installation

npm install --save atom-select-list

Usage

After installing the module, you can simply require it and use it as a standalone component:

const SelectList = require('atom-select-list')

const usersSelectList = new SelectList({
  items: ['Alice', 'Bob', 'Carol']
})
document.body.appendChild(usersSelectList.element)

Or within another etch component:

render () {
  return (
    <SelectList items={this.items} />
  )
}

API

When creating a new instance of a select list, or when calling update on an existing one, you can supply a JavaScript object that can contain any of the following properties:

  • items: [Object]: an array containing the objects you want to show in the select list.
  • elementForItem: (item: Object) -> HTMLElement: a function that is called whenever an item needs to be displayed.
  • (Optional) maxResults: Number: the number of maximum items that are shown.
  • (Optional) filter: (items: [Object], query: String) -> [Object]: a function that allows to decide which items to show whenever the query changes. By default, it uses fuzzaldrin to filter results.
  • (Optional) filterKeyForItem: (item: Object) -> String: when filter is not provided, this function will be called to retrieve a string property on each item and that will be used to filter them.
  • (Optional) filterQuery: (query: String) -> String: a function that allows to apply a transformation to the user query and whose return value will be used to filter items.
  • (Optional) query: String: a string that will replace the contents of the query editor.
  • (Optional) order: (item1: Object, item2: Object) -> Number: a function that allows to change the order in which items are shown.
  • (Optional) emptyMessage: String: a string shown when the list is empty.
  • (Optional) errorMessage: String: a string that needs to be set when you want to notify the user that an error occurred.
  • (Optional) infoMessage: String: a string that needs to be set when you want to provide some information to the user.
  • (Optional) loadingMessage: String: a string that needs to be set when you are loading items in the background.
  • (Optional) loadingBadge: String/Number: a string or number that needs to be set when the progress status changes (e.g. a percentage showing how many items have been loaded so far).
  • (Optional) itemsClassList: [String]: an array of strings that will be added as class names to the items element.
  • (Optional) didChangeQuery: (query: String) -> Void: a function that is called when the query changes.
  • (Optional) didChangeSelection: (item: Object) -> Void: a function that is called when the selected item changes.
  • (Optional) didConfirmSelection: (item: Object) -> Void: a function that is called when the user clicks or presses enter on an item.
  • (Optional) didConfirmEmptySelection: () -> Void: a function that is called when the user presses Enter but the list is empty.
  • (Optional) didCancelSelection: () -> Void: a function that is called when the user presses Esc or the list loses focus.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.