UNPKG

ipsos-components

Version:

Material Design components for Angular

105 lines (85 loc) 2.31 kB
/** * @license * Copyright Google LLC All Rights Reserved. * * Use of this source code is governed by an MIT-style license that can be * found in the LICENSE file at https://angular.io/license */ import {ENTER, COMMA} from '@angular/cdk/keycodes'; import {Component} from '@angular/core'; import {MatChipInputEvent} from '@angular/material'; export interface Person { name: string; } export interface DemoColor { name: string; color: string; } @Component({ moduleId: module.id, selector: 'chips-demo', templateUrl: 'chips-demo.html', styleUrls: ['chips-demo.css'] }) export class ChipsDemo { tabIndex: number = 0; visible: boolean = true; color: string = ''; selectable: boolean = true; removable: boolean = true; addOnBlur: boolean = true; message: string = ''; // Enter, comma, semi-colon separatorKeysCodes = [ENTER, COMMA, 186]; selectedPeople = null; people: Person[] = [ { name: 'Kara' }, { name: 'Jeremy' }, { name: 'Topher' }, { name: 'Elad' }, { name: 'Kristiyan' }, { name: 'Paul' } ]; availableColors: DemoColor[] = [ { name: 'none', color: '' }, { name: 'Primary', color: 'primary' }, { name: 'Accent', color: 'accent' }, { name: 'Warn', color: 'warn' } ]; displayMessage(message: string): void { this.message = message; } add(event: MatChipInputEvent): void { let input = event.input; let value = event.value; // Add our person if ((value || '').trim()) { this.people.push({ name: value.trim() }); } // Reset the input value if (input) { input.value = ''; } } remove(person: Person): void { let index = this.people.indexOf(person); if (index >= 0) { this.people.splice(index, 1); } } removeColor(color: DemoColor) { let index = this.availableColors.indexOf(color); if (index >= 0) { this.availableColors.splice(index, 1); } index = this.selectedColors.indexOf(color.name); if (index >= 0) { this.selectedColors.splice(index, 1); } } toggleVisible(): void { this.visible = false; } selectedColors: any[] = ['Primary', 'Warn']; selectedColor = 'Accent'; }