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

@groupby/elements-autocomplete

v0.2.0

Published

## Functionality

Downloads

7

Readme

GroupBy Elements Autocomplete Component

Functionality

The Autocomplete component displays search terms related to a query term. It also dispatches events whenever these search terms are interacted with.

Term Selection

At most one term is selected at any given time. When a term is selected, the aria-selected property for the item is set to true.

The selectedIndex property determines which item is selected; this value is the 0-based index of the selected item relative to the first item of the entire results. This property can be set to change the selection. If the value is outside the range of results (including negative values), no item will be selected.

The read-only selectedId property contains the DOM ID of the currently selected item.

The selection can be changed in one of three ways:

  • Hovering over a term. Hovering over a term will change the selection immediately.
  • Using selectNext() and selectPrevious(). These methods will select the next and previous items in the list respectively. If the selection falls off one end, it will wrap around to the other end.
  • Setting the selectedIndex property. The item at the index given by selectedIndex will be selected. If there is no item at that index (i.e. if selectedIndex is negative or if it is past the end of the list), no items will be selected.

Recieved Events

This component listens for a number of events. These events are defined in the @groupby/elements-events package.

AUTOCOMPLETE_RESPONSE

Upon receiving this event, the gbe-autocomplete component will populate its results property with search terms.

Dispatched Events

This component dispatches a number of events. These events are defined in the @groupby/elements-events package.

AUTOCOMPLETE_ACTIVE_TERM

This event is dispatched when one of the search terms inside of the gbe-autocomplete component is put in the active state or hovered on.

UPDATE_SEARCH_TERM

This event is dispatched when one of the search terms inside of the gbe-autocomplete component is clicked. It will contain a flag for emitting a new search and an attribute to indicate the origin of the action was SAYT.

Customizations

  • caption: Optional attribute to create and populate an <h3> tag at the top of the Autocomplete component.
  • group: Optional attribute to add the sayt component to a grouping of related search components. The component will only act on events if they contain the same group name as the component.

Testing

The test suite for this component is contained in the test directory. To run the tests, navigate to this folder and use one of the following commands based on the desired testing flow:

  • To run the tests once:
yarn test
  • To run the tests and watch the src and test directories to rerun the tests after any changes:
yarn tdd