tommueller / ng-mat-search-bar

An Angular 2+ component for an expandable search-icon.
MIT License
37 stars 9 forks source link
angular material-design search

NgMatSearchBar

The component creates a search-icon which expands a search-field on click. See the demo for the effect: NgMatSearchBar demo

Installation

Install the dependency via npm:

npm install ng-mat-search-bar --save

or yarn

yarn add ng-mat-search-bar

and import the module into your apps app.module.ts like this:

import { NgMatSearchBarModule } from 'ng-mat-search-bar';

...

@NgModule({
  ...,
  imports: [
    ...,
    NgMatSearchBarModule
  ],
  ...
})

Also make sure that in your app.module.ts you import the BrowserAnimationsModule, otherwise the animations will not work!

You also need to add Material Icons webfont by adding

<link
  href="https://fonts.googleapis.com/icon?family=Material+Icons"
  rel="stylesheet"
/>

to your index.html.

Usage

You can use the component with its selector:

<mat-search-bar></mat-search-bar>

Events

You can subscribe to the different events the component is outputting:

Methods and properties

It also offers two public methods to open / close the searchbar:

and a property:

Reactive forms

You can use it with ReactiveFormsModule, by passing a FormControl as input: e.g

...
<mat-search-bar [formControl]="control"></mat-search-bar>
...

and in .ts file:

  ...@Component({})...
    control: FormControl = new FormControl('');
  ...

Autocomplete

You also can use it combined with Angular Materials autocomplete (https://material.angular.io/components/autocomplete/overview). Just use it as described in the Angular docs and use the mat-search-bar as the input for it. Also you can check the app.component.html/.ts for example code: https://github.com/tommueller/ng-mat-search-bar/blob/master/src/app/

Contributions

Please don't hesitate to file an issue or send in a PR if you have any improvements or found bugs.