Project

General

Profile

1
import {Component, Input, Output, EventEmitter} from '@angular/core';
2
import { RangeFilter } from './rangeFilterHelperClasses.class';
3
import { Dates } from "../string-utils.class";
4

    
5
@Component({
6
  selector: 'range-filter',
7
  templateUrl: 'rangeFilter.component.html'
8
})
9

    
10
export class RangeFilterComponent {
11

    
12
  @Input() filter:RangeFilter;
13
  @Input() isDisabled:boolean = false;
14
  @Input() showQuickButtons:boolean = true;
15
  public _maxCharacters:number =28;
16
  public focusedInput: string = "";
17
  @Input() yearMin: number = Dates.yearMin;
18
  @Input() yearMax: number = Dates.yearMax;
19
  @Input() mandatoryRange:boolean = false;
20
  public currentYear: number = Dates.currentYear;
21

    
22
  @Output() onFilterChange = new EventEmitter();
23

    
24
  constructor() {}
25

    
26
  ngOnInit() {}
27

    
28
  public _formatTitle(title){
29
    return ((title.length > this._maxCharacters)?(title.substring(0,(this._maxCharacters - ('...').length))+"..."):title);
30
  }
31

    
32
  yearChanged(yearsSelected: number = null){
33
    if(yearsSelected != null) {
34
      this.filter.selectedFromValue = (this.currentYear - yearsSelected) + "";
35
      this.filter.selectedToValue = this.currentYear + "";
36
    }
37
    this.onFilterChange.emit({
38
      value: this.filter
39
    });
40
  }
41

    
42
  clearFilter() {
43
    this.filter.selectedFromValue = null;
44
    this.filter.selectedToValue = null;
45
    this.onFilterChange.emit({
46
      value: this.filter
47
    });
48
  }
49

    
50
  getFilterName(value){
51
    let name = value.name +" ("+ value.number.format()+")";
52
    return name;
53
  }
54

    
55
  stringToNum(value: string): number {
56
    return +(value);
57
  }
58
}
(4-4/7)