UNPKG

ngx-mat-tag-input

Version:
112 lines (85 loc) 4.42 kB
# NgxMatTagInput Angular tags input based on [Angular Material](https://material.angular.io) auto-complete and chips. * Library location : `projects/ngx-mat-tag-input` directory of this repository. * Working example location : `projects/demo` directory of this repository. ## Demo * Working example location : `projects/demo` directory of this repository. * [Stackblitz](https://stackblitz.com/@adnanelamghari) ## Installation `npm i ngx-mat-tag-input` ## API `import { NgxMatTagInputModule } from 'ngx-mat-tag-input' `<br> `selector: ngx-mat-tag-input` ### @Inputs() | Input | Type | Required | Description | | --------------------- | ---------------------- | ------------------------ | ------------------------------------------------------------ | | items | array | Optional | Array of the auto-complete items | | selectedTags | array | Optional | Array of the selected items bu default | | appearance | MatFormFieldAppearance | Optional | The form-field appearance style. | | readonly | boolean | Optional, default: false | Whether the element is readonly. | | placeholder | string | Optional | The placeholder for this control. | | displayBy | string | Optional | Attribute's name to display when items are Objects | | isLoading | boolean | Optional, default: false | When true, a spinner with be displayed in the suggested list | ### @Outputs() | Output | Description | | ---------------- | ---------------------------------------------------------------- | | reset | Emits when when the user resets a form. | | ngModelChange | Emits when when the view model updates. | | change | Emits when the contents of the input have changed. | | select | Emits when the an item from the auto-complete list is selected. | | focus | Emits when the input receives focus. | | touched | Emits when the user touches the input. | ## Usage 1) Import the `NgxMatTagInputModule` in your app module. > `import { NgxMatTagInputModule } from 'ngx-mat-tag-input'` ```typescript import {BrowserModule} from '@angular/platform-browser'; import {NgModule} from '@angular/core'; import {BrowserAnimationsModule} from '@angular/platform-browser/animations'; import {AppRoutingModule} from './app-routing.module'; import {AppComponent} from './app.component'; import {NgxMatTagInputModule} from 'ngx-mat-tag-input'; @NgModule({ declarations: [ AppComponent ], imports: [ BrowserModule, BrowserAnimationsModule, AppRoutingModule, NgxMatTagInputModule ], providers: [], bootstrap: [AppComponent] }) export class AppModule { } ``` 2) Use the input `(NgxMatTagInput)` in your component. ```typescript import {Component} from '@angular/core'; @Component({ selector: 'app-root', template: ` <div class="container"> <h3>NgxMatTagInput</h3> <ngx-mat-tag-input #aa (change)="change($event)" [items]="autoCompleteTags" [selectedTags]="selectedValues" appearance="outline" placeholder="Search Javascript framework"></ngx-mat-tag-input> </div> `, styleUrls: ['./app.component.scss'] }) export class AppComponent { public autoCompleteTags = ['Angular', 'React', 'VueJs', 'Meteor', 'Ember.js', 'Aurelia', 'Backbone.js']; public selectedValues = ['Angular']; change($event) { console.log($event) } } ``` ## Build Run `ng build ngx-mat-tag-input` to build the library. The build artifacts will be stored in the `dist/ngx-mat-tag-input` directory. Use the `--prod` flag for a production build. ## Running unit tests Run `ng test ngx-mat-tag-input` to execute the unit tests via [Karma](https://karma-runner.github.io).