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

search-mat-select

v0.1.7

Published

[![Travis-CI build status](https://travis-ci.com/vinesnts/search-mat-select.svg?branch=master)](https://github.com/vinesnts/search-mat-select) [![Total npm downloads](https://img.shields.io/npm/dt/search-mat-select)](https://www.npmjs.com/package/search-m

Downloads

16

Readme

SearchMatSelect

Travis-CI build status Total npm downloads

This is a component made on top of the Mat Select component of the Material Angular library. The SearchMatSelect features a search box to find the avaliable options and a select all option, it as well offers keybord navigation for accessibility.

The source code is avaliable on Github and a demo is avaliable here.

1. How to...

  • import to your project

    • Install search-mat-select in your project.
      npm install search-mat-select
    • Then, import the SearchMatSelectModule to your app.module.ts.
      …
      import { SearchMatSelectModule } from 'search-mat-select';
      @NgModule({
      imports: [
          …
          SearchMatSelectModule,
          …
      ],
      …
    • Finally, use the component lib-search-mat-select wherever you want
      <lib-search-mat-select
        [data]="states"
        inputLabel="Brazilian States"
        [selectMultiple]="true"
        [showSelectAll]="true"
        selectAllLabel="Mark all"
        filterLabel="Search for a Brazilian state">
      </lib-search-mat-select>
  • set the select options

    Use the attribute data.

    Note: the data passed to the search-select-mat-input MUST extend from the GenericData interface avaliable in the SearchSelectMatInputComponent class.

  • set the input label

    Use the attribute inputLabel to set the label/placeholder of the closed select input.

  • add the Select All/Mark All checkbox

    Use the data binding attribute [showSelectAll] to enable showing the option.

    • [showSelectAll]="true"
    • [showSelectAll]="false"
    • Use the atribute filterLabel to set Select All checkbox label
  • choose between a one option or multiple selector

    Use the data binding attribute [selectMultiple] to switch between one option only or multiple selector.

    • [selectMultiple]="true"
    • [selectMultiple]="false"
  • change mat input appearance

    Use the appearance attribute as done in a mat input.

    • appearance="legacy"
    • appearance="standard"
    • appearance="outline"
    • appearance="fill"

    Note: Default appearance is outline

  • change mat input float label behavior

    Use the floatLabel attribute as done in a mat input

    • floatLabel="auto"
    • floatLabel="always"
  • handle events

    For now, there is only one event emitted from the SearchSelectMatInput.

    • (selectionChange)
      • This event emits GenericData[] every time an option is selected or deselected.

2. Accessibility

Navigation through keyboard is avaliable on this component, see bellow the avaliable navigation keys and shortcuts:

  • enter
    • Opens the select options.
    • Selects the hovered option.
  • up/down/left/right
    • Navigates through the options.

    Note: When clicked, the filter input will blur.

  • ctrl + s
    • Focuses the filter input.

    Note: shift + tab won't focus the filter input, instead use ctrl + s.

  • escape
    • Unfocuses the filter input.
    • Closes the select options.

    Note: tab will NOT navigate properly inside selects overall, this neither.