import { Component, EventEmitter, Input, Output } from '@angular/core'; import { SortField } from '../shared'; @Component({ selector: 'my-video-sort', templateUrl: './video-sort.component.html' }) export class VideoSortComponent { @Output() sort = new EventEmitter(); @Input() currentSort: SortField; sortChoices: { [ P in SortField ]: string } = { 'name': 'Name - Asc', '-name': 'Name - Desc', 'duration': 'Duration - Asc', '-duration': 'Duration - Desc', 'createdAt': 'Created Date - Asc', '-createdAt': 'Created Date - Desc', 'views': 'Views - Asc', '-views': 'Views - Desc', 'likes': 'Likes - Asc', '-likes': 'Likes - Desc' }; get choiceKeys() { return Object.keys(this.sortChoices); } getStringChoice(choiceKey: SortField) { return this.sortChoices[choiceKey]; } onSortChange() { this.sort.emit(this.currentSort); } }