npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

ui-dropdownlist

v2.0.0

Published

Dropdown list as part of a larger web UI component

Downloads

4

Readme

ui-dropdownlist

Dropdown list as part of a larger web UI component

js-semistandard-style

Installation

$ npm install ui-dropdownlist --save-dev

Usage

const DropdownList = require('ui-dropdownlist');
const options = {
  // Set up options here (see below)
};

const someControl = new DropdownList(options);
someContainerElement.appendChild(someControl.element);
someControl.getValue();

Options

Type: {Object}

width

Type: {String}

Optional. Default: 100%.

Sets the width of the input element.

tabindex

Type: {Integer}

The value of tabindex attribute to be set for the DOM element. Default: 0.

validator

Type: {Function}

A function that will be used to validate the element's current value. Any truthy value returned by the function will mean the element's value is valid. Any falsy value returned by the function will mean the element's value is NOT valid.

If omitted, all element's values are treated as valid.

When called, the function will be passed the following arguments:

  • {String} val - Current element's value

onValueChange

Type: {Function | Array<Function>}

Callback function(s) that will be called every time the value of the element changes.

When called, the function will be passed the following arguments:

  • {String} val - New value of the element.

onValidationStatusChange

Type: {Function | Array<Function>}

Callback function(s) that will be called every time the validation status of the element changes.

When called, the function will be passed the following arguments:

  • {Boolean} isValid - New validation status.

API

Properties

element

Type: {HTMLSelectElement}

Returns reference to the DOM node created by the constructor.

isValid

Type: {Boolean}

Returns the current validation status of the element.

Methods

focus()

Sets input focus on the element.

Return: {undefined}

setValue(val)

Sets the element's value. If the element's item collection doesn't contain an item with val value, the selected value doesn't change.

Parameters:

  • {String} val - New value

Return: {undefined}

getValue()

Gets the current value of the element.

Return: {String}

getItems()

Gets the collection of value, label pairs of all items the element includes.

Return: {Array<String, String>}

enable()

Enables the input field.

Return: {undefined}

disable()

Disables the input field.

Return: {undefined}

addItem(val, label)

Add new item to the end of the item list.

Parameters:

  • {String} val - Value of the item.
  • {String} label - Text label of the item.

Return: {undefined}

addItemBefore(val, label, beforeVal)

Add new item before an existing item. If no item with value beforeVal is present on the item list, the new item is added to the end of the list.

Parameters:

  • {String} val - Value of the new item.
  • {String} label - Text label of the new item.
  • {String} beforeVal - Value of existing item the new item has to be added before.

Return: {undefined}

addItemAfter(val, label, afterVal)

Add new item after an existing item. If no item with value afterVal is present on the item list, the new item is added to the end of the list.

Parameters:

  • {String} val - Value of the new item.
  • {String} label - Text label of the new item.
  • {String} afterVal - Value of existing item the new item has to be added after.

Return: {undefined}

removeItem(val)

Remove an existing item from the item list.

If no item with value val is present on the item list, nothing happens.

If the item with value val is currently selected, the first item on the list will become selected.

Parameters:

  • {String} val - Value of the removed item.

Return: {undefined}

empty()

Remove all items from the item list.

Return: {undefined}