import { ChangeDetectionStrategy, Component, EventEmitter, Input, OnChanges, OnInit, Output } from '@angular/core'; import { FormControl } from '@angular/forms'; import { ToggleOption } from '@ghostfolio/common/types'; @Component({ selector: 'gf-toggle', changeDetection: ChangeDetectionStrategy.OnPush, templateUrl: './toggle.component.html', styleUrls: ['./toggle.component.scss'] }) export class ToggleComponent implements OnChanges, OnInit { public static DEFAULT_DATE_RANGE_OPTIONS: ToggleOption[] = [ { label: $localize`Today`, value: '1d' }, { label: $localize`YTD`, value: 'ytd' }, { label: $localize`1Y`, value: '1y' }, { label: $localize`5Y`, value: '5y' }, { label: $localize`Max`, value: 'max' } ]; @Input() defaultValue: string; @Input() isLoading: boolean; @Input() options: ToggleOption[]; @Output() change = new EventEmitter>(); public option = new FormControl(undefined); public constructor() {} public ngOnInit() {} public ngOnChanges() { this.option.setValue(this.defaultValue); } public onValueChange() { this.change.emit({ value: this.option.value }); } }