1 import { Component, Input, forwardRef } from '@angular/core'
2 import { NG_VALUE_ACCESSOR, ControlValueAccessor } from '@angular/forms'
5 selector: 'my-select-tags',
6 styleUrls: [ './select-shared.component.scss', './select-tags.component.scss' ],
7 templateUrl: './select-tags.component.html',
10 provide: NG_VALUE_ACCESSOR,
11 useExisting: forwardRef(() => SelectTagsComponent),
16 export class SelectTagsComponent implements ControlValueAccessor {
17 @Input() availableItems: string[] = []
18 @Input() selectedItems: string[] = []
20 propagateChange = (_: any) => { /* empty */ }
22 writeValue (items: string[]) {
23 this.selectedItems = items
24 this.propagateChange(this.selectedItems)
27 registerOnChange (fn: (_: any) => void) {
28 this.propagateChange = fn
31 registerOnTouched () {
36 this.propagateChange(this.selectedItems)